Dokumentasi API PPOB

Semua endpoint menggunakan metode POST, format JSON atau form-urlencoded, dan parameter apikey.

1. Get Layanan

URL: https://payqris.web.id/api/ppob

ParameterWajibKeterangan
apikeyYaApikey akun reseller.
actionYagetlayanan
kategoriTidakFilter berdasarkan nama kategori, contoh Mobile Legends. Pencarian tidak membedakan huruf besar/kecil. Alias: category.
cURL
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=getlayanan"
cURL — filter kategori
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=getlayanan" \
  -d "kategori=Mobile Legends"
Respon sukses
{
  "status": true,
  "data": [
    {
      "id": 1,
      "produk": "game",
      "kategori": "Mobile Legends",
      "layanan": "3 Diamond",
      "status": "active",
      "amount": {
        "basic": 10000,
        "reseller": 9500
      }
    }
  ]
}
Respon error
{
  "status": false,
  "data": {
    "pesan": "Apikey tidak valid."
  }
}
2. Order PPOB

URL: https://payqris.web.id/api/ppob

ParameterWajibKeterangan
apikeyYaApikey akun reseller.
actionYaorder
idYaID layanan dari endpoint getlayanan. Parameter layanan juga diterima.
targetYaTarget default layanan.
zoneSesuai layananWajib untuk target User ID + Zone. Target provider dikirim sebagai gabungan target + zone.
qtySesuai layananWajib untuk Bebas Nominal. Berisi nominal/qty.

Untuk layanan biasa cukup isi target. Untuk layanan zone isi target dan zone. Untuk layanan bebas nominal isi target dan qty.

cURL — target biasa
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=order" \
  -d "id=1" \
  -d "target=08123456789"
cURL — target + zone
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=order" \
  -d "id=1" \
  -d "target=123456789" \
  -d "zone=1234"
cURL — bebas nominal
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=order" \
  -d "id=1" \
  -d "target=08123456789" \
  -d "qty=50000"
Respon sukses
{
  "status": true,
  "data": {
    "id": "1234567890",
    "status": "pending",
    "price": 10000
  }
}
Respon error
{
  "status": false,
  "data": {
    "pesan": "Zone wajib diisi untuk layanan ini."
  }
}
Harga dan saldo: akun reseller/admin dipotong amount.reseller (harga provider), sedangkan akun basic dipotong amount.basic (harga jual). Nilai price pada respon adalah jumlah yang benar-benar dipotong.
3. Cek Status Order PPOB

URL: https://payqris.web.id/api/ppob

Gunakan ID yang dikembalikan oleh order. Untuk status pending/processing, endpoint akan melakukan sinkronisasi ke provider Okeconnect terlebih dahulu. Status final tidak memanggil provider ulang.

ParameterWajibKeterangan
apikeyYaApikey akun.
actionYastatus, cekstatus, atau check_status.
idYaID order dari respon order. Alias: order_id/oid.
cURL
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=status" \
  -d "id=1234567890"
Respon sukses — pending
{
  "status": true,
  "data": {
    "id": "1234567890",
    "provider_id": "TRX123",
    "layanan": "Pulsa 10.000",
    "target": "08123456789",
    "price": 10000,
    "status": "pending",
    "message": "Transaksi sedang diproses.",
    "refund": false
  }
}
Respon sukses — selesai/refund
{
  "status": true,
  "data": {
    "id": "1234567890",
    "provider_id": "TRX123",
    "layanan": "Pulsa 10.000",
    "target": "08123456789",
    "price": 9500,
    "status": "success",
    "message": "SN: 1234567890123456",
    "refund": false
  }
}
Respon error
{
  "status": false,
  "data": { "pesan": "Order tidak ditemukan." }
}
4. Validasi Nickname Public

Endpoint ini memeriksa nickname/region melalui konfigurasi NeoXR. Saldo hanya diperiksa sebagai syarat akses; saldo tidak dikurangi.

URL: https://payqris.web.id/api/ppob

ParameterWajibKeterangan
apikeyYaApikey akun.
actionYavalidasi_nickname
id_validasiYaKode validasi public, bukan kode NeoXR. Daftar kode: lihat list kode validasi public.
targetYaID game yang akan divalidasi.
zoneSesuai kodeWajib jika kode memakai parameter ID + Zone.
cURL — ID
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=validasi_nickname" \
  -d "id_validasi=MLBB" \
  -d "target=123456789"
cURL — ID + Zone
curl -X POST "https://payqris.web.id/api/ppob" \
  -d "apikey=APIKEY_ANDA" \
  -d "action=validasi_nickname" \
  -d "id_validasi=MLBB" \
  -d "target=123456789" \
  -d "zone=1234"
Respon sukses — nama biasa (path result: data.username)
{
  "status": true,
  "data": {
    "kode_validasi": "MLBB",
    "target": "123456789",
    "zone": "",
    "result": "nama",
    "saldo_dikurangi": false
  }
}
Respon sukses — cek region (path result: data)
{
  "status": true,
  "data": {
    "kode_validasi": "GAME_REGION",
    "target": "123456789",
    "zone": "",
    "result": {
      "username": "nama",
      "region": "ID"
    },
    "saldo_dikurangi": false
  }
}
Respon error
{
  "status": false,
  "data": {
    "pesan": "Saldo tidak mencukupi untuk menggunakan validasi ini."
  }
}
© Copyright PayQRIS.