Registration via Invitation
Pada ekosistem Frog Cloud, Administrator (melalui Backoffice) memiliki hak prerogatif untuk mengundang pengguna secara eksklusif agar bergabung sebagai akun tingkat tinggi (Postpaid / Pascabayar).
Karena inisiasi pendaftaran dilakukan oleh sistem, alur yang dilalui oleh calon pengguna (Customer) di Frontend berbeda dari pendaftaran publik biasa. Mereka tidak perlu melakukan pendaftaran email dari nol, melainkan hanya perlu mengklaim undangan mereka dan melengkapi profil.
Diagram Alur Undangan
Urutan Integrasi API untuk Frontend
Step 1: Memverifikasi Tautan Undangan (Auto-Login)
Ketika pengguna mengeklik tautan undangan dari email mereka, tautan tersebut akan membuka halaman aplikasi Frontend Anda dan menyertakan parameter code di URL-nya (contoh: https://frogcloud.com/accept-invite?code=abc123xyz...).
Frontend harus merespons dengan membaca nilai code tersebut dan memanggil API verifikasi.
POST /api/auth/invitation/verify
Content-Type: application/json
{
"code": "abc123xyz..."
}
Kondisi & Tindakan:
- Sukses (200 OK): Kode unik dinyatakan sah. Secara teknis, API ini bertindak layaknya endpoint Login. Backend akan langsung membalas dengan Header
Set-Cookieyang berisi otentikasi JWT. Pengguna kini berstatus logged in, tetapi akun mereka masih dalam status "Belum Lengkap". Frontend wajib mengalihkan pengguna ke halaman Form Lengkapi Profil. - Error (400 Bad Request): Tautan tidak valid, format rusak, atau masa berlaku undangan telah habis. Tampilkan pesan kesalahan statis di halaman tersebut dan sarankan pengguna untuk menghubungi kontak Admin (Support).
Step 2: Melengkapi Profil Akun (Register)
Pada tahap ini, pengguna telah memiliki Cookies (sesi aktif), sehingga pemanggilan API berikutnya secara otomatis berada dalam jalur terautentikasi.
Pengguna kini dihadapkan pada antarmuka pendaftaran untuk memilih tipe akun (Personal/Bisnis), mengisi alamat lengkap, serta menentukan Password yang akan mereka gunakan untuk login normal di kemudian hari.
POST /api/auth/invitation/register
Content-Type: application/json
{
"account_type": "B",
"password": "PasswordKuat123!",
"personal": {
"first_name": "Budi",
"last_name": "Santoso",
"country_id": "ID",
"province_id": "31",
"city_id": "3173",
"address": "Jl. Teknologi No.1",
"phone": "+6281234567890"
},
"business": {
"name": "PT. Nusantara Tech",
"phone": "+62215551234",
"country_id": "ID",
"province_id": "31",
"city_id": "3173",
"address": "Gedung Cyber",
"tax_number": "01.234.567.8-901.000"
}
}
Catatan Pengisian Form: Properti objek
businesshanya wajib diisi jika pengguna memilihaccount_typebertipeB(Bisnis). Selain itu, hierarki data wilayah (country, province, city) wajib menggunakan mekanisme rantai (chaining) API Lookup seperti pada form registrasi biasa.
Kondisi & Tindakan:
- Sukses (200 OK): Data profil berhasil disimpan dan password diterapkan. Akun pengguna kini resmi berstatus "Aktif" secara penuh. Frontend dapat menampilkan pesan sambutan selamat datang dan membuka akses fitur lengkap di Dashboard.
- Error (400 Bad Request): Terdapat form yang melanggar aturan validasi (contoh: password kurang dari 8 karakter, atau format nomor telepon salah). Tampilkan pesan error terkait tepat di bawah kolom input yang bermasalah.