Cek Status Order

Gunakan endpoint ini untuk mengecek status transaksi berdasarkan trx_id (Transaction ID internal Tokopay) atau ref_id (reference ID milik merchant). Jika keduanya diisi, sistem akan memprioritaskan trx_id.

Request

Parameter Contoh Tipe Wajib Keterangan
merchant_id M231214XWKGJ698 String Ya Merchant ID Anda
secret YOUR_SECRET_KEY String Ya Secret Key Anda (dapat dilihat di dashboard merchant)
trx_id TP2026060401234567 String Salah satu Transaction ID internal Tokopay. Wajib diisi jika
ref_id
tidak diisi. Direkomendasikan karena lookup lebih cepat.
ref_id ORDER-001 String Salah satu Reference ID milik merchant. Wajib diisi jika
trx_id
tidak diisi. Digunakan bersama
merchant_id
untuk memastikan keunikan.
# Menggunakan trx_id (direkomendasikan)
curl -G "https://api.tokopay.id/v1/check-order" \
--data-urlencode "merchant_id=M231214XWKGJ698" \
--data-urlencode "secret=YOUR_SECRET_KEY" \
--data-urlencode "trx_id=TP2026060401234567"

# Menggunakan ref_id
curl -G "https://api.tokopay.id/v1/check-order" \
--data-urlencode "merchant_id=M231214XWKGJ698" \
--data-urlencode "secret=YOUR_SECRET_KEY" \
--data-urlencode "ref_id=ORDER-001"

Response

Response Sukses

{
  "status": 1,
  "rc": 200,
  "message": "Data Found",
  "data": {
    "trx_id": "TP2026060401234567",
    "reff_id": "ORDER-001",
    "merchant_id": "M231214XWKGJ698",
    "nama_toko": "Toko Saya",
    "logo_toko": "https://...",
    "favicon": "https://...",
    "kode_channel": "QRIS",
    "nama_channel": "QRIS",
    "panduan_bayar": "Scan QR di aplikasi e-wallet/m-banking",
    "logo_payment_channel": "https://...",
    "nama_payment_channel": "QRIS",
    "kategori_name": "QRIS",
    "cs_name": "Customer",
    "cs_email": "[email protected]",
    "cs_phone": "082299887766",
    "nominal": 10000,
    "jumlah_bayar": 10500,
    "status": "Success",
    "redirect_url": "https://tokopay.id/?success=true",
    "created_at": "2026-06-04 13:00:00",
    "updated_at": "2026-06-04 13:01:30",
    "expired_at": "2026-06-05 13:00:00",
    "expired_ts": 1717920000
  },
  "ts": 1717481400
}

Field data

Field Tipe Keterangan
trx_idStringTransaction ID internal Tokopay
reff_idStringReference ID milik merchant
merchant_idStringID merchant pemilik transaksi
nama_tokoStringNama toko merchant
logo_tokoStringURL logo merchant
faviconStringURL favicon merchant
kode_channelStringKode payment channel (contoh:
QRIS
,
BCAVA
)
nama_channelStringNama channel display
panduan_bayarStringInstruksi pembayaran untuk customer
logo_payment_channelStringURL logo payment channel
nama_payment_channelStringNama payment channel
kategori_nameStringKategori metode pembayaran (contoh:
QRIS
,
VA
,
E-Money
)
cs_nameStringNama customer
cs_emailStringEmail customer
cs_phoneStringNomor HP customer
nominalIntNominal transaksi (Rupiah)
jumlah_bayarIntTotal yang harus dibayar customer (sudah termasuk biaya admin)
statusStringStatus transaksi — lihat tabel di bawah
redirect_urlStringURL redirect setelah pembayaran sukses
created_atStringTimestamp transaksi dibuat (
YYYY-MM-DD HH:mm:ss
)
updated_atStringTimestamp update terakhir
expired_atStringWaktu expired (
YYYY-MM-DD HH:mm:ss
)
expired_tsIntWaktu expired (Unix timestamp)

Nilai status

Nilai Keterangan
Unpaid
Transaksi dibuat, menunggu pembayaran
Success
Pembayaran berhasil diterima
Completed
Transaksi sudah diselesaikan (post-process)
Proses Callback
Sedang proses callback ke merchant
Failed
Transaksi gagal
Anggap transaksi sukses apabila status bernilai "Success" atau "Completed".

Response Error

{ "status": 0, "rc": 500, "error_msg": "Required merchant_id" }
{ "status": 0, "rc": 500, "error_msg": "Required secret" }
{ "status": 0, "rc": 500, "error_msg": "Required ref_id or trx_id" }
{ "status": 0, "rc": 500, "error_msg": "Merchant not found" }
{ "status": 0, "rc": 500, "error_msg": "Secret not valid" }
{ "status": 0, "rc": 500, "error_msg": "Data Not Found" }
{ "status": 0, "rc": 500, "error_msg": "Merchant id not match with this transaction" }

Catatan

  • Polling status: Boleh polling endpoint ini untuk update status transaksi (misalnya tiap 5–10 detik di halaman pembayaran).
  • Hentikan polling jika status sudah Success, Completed, atau Failed — status tidak akan berubah lagi.
  • Prioritas lookup: Jika trx_id dan ref_id keduanya diisi, sistem akan memprioritaskan trx_id.
  • Pilih trx_id jika merchant sudah menyimpannya di sistem internal — lookup lebih cepat dan tidak memerlukan kombinasi dengan merchant_id.