API to API
Customer
Profile dan provisioning akun customer/warung/outlet/cabang/kasir mitra.
Customer
Terakhir diperbarui: 28 Agustus 2026.
Customer mewakili akun yang akan bertransaksi. Di sisi mitra, akun ini bisa disebut warung, outlet, cabang, kasir, atau anak mitra.
Provision Account
Endpoint ini membuat atau menyinkronkan akun customer/warung/outlet/cabang/kasir di bawah mitra. Jika phone_number sudah ada pada mitra yang sama, endpoint mengembalikan token untuk akun tersebut.
POST /client/v2/customer/provision_account
X-SECRET-KEY: {partner_secret_key}
Content-Type: application/json
{
"name": "Toko Koffiesoft",
"phone_number": "082340378657",
"email": "[email protected]",
"device_id": "web-pos-01"
}
Field
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
name | string | Ya | Nama customer/warung/outlet/cabang/kasir. |
phone_number | string | Ya | Nomor telepon unik customer pada mitra. |
email | string | Ya | Email customer. Harus valid dan unik per mitra. |
device_id | string | Tidak | ID device/aplikasi mitra. Default client-api-pos. |
Success Response
{
"status": true,
"message": "Akun berhasil disinkronisasi.",
"data": {
"customer_id": 62211,
"token": "o8coocg8k0ss4wcgk0o8........"
}
}
Get Profile
Endpoint ini mengambil profil akun dari token yang sedang digunakan.
GET /client/v2/customer/profile
Authorization: Bearer o8coocg8k0ss4wcgk0o8........
X-SECRET-KEY: {partner_secret_key}
Success Response
{
"status": true,
"message": "OK",
"data": {
"customer": {
"id": 62211,
"name": "Toko Koffiesoft",
"email": "[email protected]",
"phone_number": "082340378657",
"identity_number": null,
"level": 2,
"referral_code": "ABC1234",
"registered_at": "2026-08-18 10:00:00"
},
"balance": {
"available": 80000
},
"coin": {
"note": "Konversi koin: 2 koin = Rp1.",
"available": 20000,
"available_value": 10000
}
}
}
Response Codes
| HTTP | Kondisi | Message |
|---|---|---|
200 | Profil berhasil dimuat atau akun yang sudah ada berhasil disinkronkan. | OK atau Akun berhasil disinkronisasi. |
201 | Akun baru berhasil dibuat. | Akun berhasil disinkronisasi. |
400 | Request provision tidak valid: field wajib kosong atau email sudah digunakan akun lain. | Data tidak lengkap. atau Email yang digunakan sudah terdaftar pada akun lain. Silakan gunakan email yang berbeda. |
401 | Secret key/token salah atau tidak sesuai. | Akses ditolak..., Token wajib diisi., atau Token tidak valid. |
500 | Profil belum dapat dimuat karena saldo/koin atau gangguan sistem. | Profil belum dapat dimuat. Silakan coba lagi nanti. atau mengikuti pesan error server. |