Dokumentasi API Qios Payment

Referensi endpoint partner v1 - request, response, dan kode error.

Base URL https://qiospayment.biz.id/partner/v1
Struktur ini adalah fondasi awal (Phase 1). Modul products, transactions, inquiry, payment, dan webhook akan menyusul di fase berikutnya.
POST /auth/register.php application/json

Register

Mendaftarkan akun user baru. Menolak jika uid, alamat_email, atau no_handphone sudah terdaftar.

Request Body

FieldTipeKeterangan
uidstringWajib, unik, 3-20 karakter alfanumerik
nama_penggunastringWajib
alamat_emailstringWajib, format email valid
no_handphonestringWajib, 9-15 digit angka

Contoh Request

curl -X POST https://qiospayment.biz.id/partner/v1/auth/register.php \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "AHTB",
    "nama_pengguna": "Ahmad Taufik",
    "alamat_email": "ahmad@example.com",
    "no_handphone": "081234567890"
  }'
201Registrasi berhasil
{
    "status": true,
    "message": "Registrasi berhasil",
    "data": {
        "id": 872222,
        "uid": "AHTB",
        "code_merchant": "MAC-29822",
        "code_referral": "REFAHTB4821",
        "status_akun": "belum terverifikasi",
        "jenis_akun": "member"
    }
}
409Data sudah terdaftar - AUTH_001
{
    "status": false,
    "code": "AUTH_001",
    "message": "uid, alamat_email, atau no_handphone sudah terdaftar"
}
400Validasi gagal - SYS_003
{
    "status": false,
    "code": "SYS_003",
    "message": "uid wajib diisi, format alamat_email tidak valid"
}
POST /auth/create-pin.php application/json

Buat PIN

Membuat PIN baru. Hanya berhasil jika user belum pernah punya PIN sebelumnya.

Request Body

FieldTipeKeterangan
uidstringWajib
nama_penggunastringWajib, harus cocok
alamat_emailstringWajib, harus cocok
no_handphonestringWajib, harus cocok
pinstringWajib, tepat 4 digit angka

Contoh Request

curl -X POST https://qiospayment.biz.id/partner/v1/auth/create-pin.php \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "AHTB",
    "nama_pengguna": "Ahmad Taufik",
    "alamat_email": "ahmad@example.com",
    "no_handphone": "081234567890",
    "pin": "1234"
  }'
200Berhasil dibuat
{
    "status": true,
    "message": "PIN berhasil dibuat",
    "data": { "sudah_punya_pin": true }
}
409Sudah pernah buat PIN - AUTH_002
{
    "status": false,
    "code": "AUTH_002",
    "message": "User sudah memiliki PIN, tidak bisa membuat PIN baru"
}
POST /auth/verify-pin.php application/json

Verifikasi PIN

Memeriksa apakah PIN yang dimasukkan benar. Dipakai sebagai konfirmasi sebelum transaksi.

Request Body

FieldTipeKeterangan
uidstringWajib
nama_penggunastringWajib, harus cocok
alamat_emailstringWajib, harus cocok
no_handphonestringWajib, harus cocok
pinstringWajib, 4 digit angka

Contoh Request

curl -X POST https://qiospayment.biz.id/partner/v1/auth/verify-pin.php \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "AHTB",
    "nama_pengguna": "Ahmad Taufik",
    "alamat_email": "ahmad@example.com",
    "no_handphone": "081234567890",
    "pin": "1234"
  }'
200PIN benar
{
    "status": true,
    "message": "PIN benar",
    "data": { "pin_valid": true }
}
401PIN salah - AUTH_004
{
    "status": false,
    "code": "AUTH_004",
    "message": "PIN salah"
}
400Belum punya PIN - AUTH_003
{
    "status": false,
    "code": "AUTH_003",
    "message": "User belum memiliki PIN, silakan buat PIN terlebih dahulu"
}
POST /account/balance.php application/json

Cek Saldo

Mengambil saldo akun, saldo QRIS, dan poin saja - lebih ringan dibanding menarik seluruh data profil.

Request Body

FieldTipeKeterangan
uidstringWajib
nama_penggunastringWajib, harus cocok
alamat_emailstringWajib, harus cocok
no_handphonestringWajib, harus cocok

Contoh Request

curl -X POST https://qiospayment.biz.id/partner/v1/account/balance.php \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "AHTB",
    "nama_pengguna": "Ahmad Taufik",
    "alamat_email": "ahmad@example.com",
    "no_handphone": "081234567890"
  }'
200Saldo ditemukan
{
    "status": true,
    "message": "Saldo ditemukan",
    "data": {
        "saldo_akun": "150000.00",
        "saldo_qris": "50000.00",
        "poin_akun": "120"
    }
}
404Tidak ditemukan - SYS_004
{
    "status": false,
    "code": "SYS_004",
    "message": "Data tidak ditemukan"
}
POST /profile/info.php application/json

Info Profil

Menarik seluruh data profil user, termasuk saldo dan poin.

Request Body

FieldTipeKeterangan
uidstringWajib
nama_penggunastringWajib, harus cocok
alamat_emailstringWajib, harus cocok
no_handphonestringWajib, harus cocok

Contoh Request

curl -X POST https://qiospayment.biz.id/partner/v1/profile/info.php \
  -H "Content-Type: application/json" \
  -d '{
    "uid": "AHTB",
    "nama_pengguna": "Ahmad Taufik",
    "alamat_email": "ahmad@example.com",
    "no_handphone": "081234567890"
  }'
200Data ditemukan
{
    "status": true,
    "message": "Data ditemukan",
    "data": {
        "id": "872222",
        "uid": "AHTB",
        "nama_pengguna": "Ahmad Taufik",
        "alamat_email": "ahmad@example.com",
        "no_handphone": "081234567890",
        "jenis_kelamin": "L",
        "alamat_lengkap": "Jl. Merdeka No. 10",
        "saldo_akun": "150000.00",
        "saldo_qris": "50000.00",
        "poin_akun": "120",
        "code_referral": "REFAHTB4821",
        "status_akun": "belum terverifikasi",
        "jenis_akun": "member",
        "tanggal_mendaftar": "2026-08-16 05:10:22"
    }
}
404Tidak ditemukan - SYS_004
{
    "status": false,
    "code": "SYS_004",
    "message": "Data tidak ditemukan"
}

Daftar Kode Error

Setiap response gagal menyertakan field "code" agar partner bisa menangani error berdasarkan kode, bukan menebak dari teks pesan.

Umum / Sistem

CodeArtiHTTP Status
SYS_001Method tidak diizinkan405
SYS_002Kesalahan internal server500
SYS_003Validasi input gagal400
SYS_004Akun tidak ditemukan / identitas tidak cocok404

Auth

CodeArtiHTTP Status
AUTH_001uid/email/no_handphone sudah terdaftar409
AUTH_002User sudah memiliki PIN409
AUTH_003User belum memiliki PIN400
AUTH_004PIN salah401