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

FieldTipeWajibKeterangan
namestringYaNama customer/warung/outlet/cabang/kasir.
phone_numberstringYaNomor telepon unik customer pada mitra.
emailstringYaEmail customer. Harus valid dan unik per mitra.
device_idstringTidakID 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

HTTPKondisiMessage
200Profil berhasil dimuat atau akun yang sudah ada berhasil disinkronkan.OK atau Akun berhasil disinkronisasi.
201Akun baru berhasil dibuat.Akun berhasil disinkronisasi.
400Request 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.
401Secret key/token salah atau tidak sesuai.Akses ditolak..., Token wajib diisi., atau Token tidak valid.
500Profil belum dapat dimuat karena saldo/koin atau gangguan sistem.Profil belum dapat dimuat. Silakan coba lagi nanti. atau mengikuti pesan error server.