POST/api/invoices
Body
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
amount | integer | Ya | Nominal rupiah. Batas bawaan 1.000 sampai 5.000.000 (lihat limits di /api/me). |
order_id | string | Tidak | ID pesanan di sistemmu, maksimal 64 karakter dan unik per merchant. Bila kosong dibuatkan otomatis. |
description | string | Tidak | Deskripsi singkat, maksimal 120 karakter. |
redirect_url | string | Tidak | URL https tujuan setelah pembayaran lunas. |
Respons 201
{
"id": "9f2c1a7b3e5d8a41c0b2",
"order_id": "INV-1001",
"amount": 25000,
"total": 25000,
"status": "pending",
"expires_at": 1767225600,
"pay_url": "https://pay.tokomu.id/pay.html?id=9f2c1a7b3e5d8a41c0b2"
}
totaladalah nominal yang harus dibayar pelanggan sesuai QR.expires_atadalah batas waktu QR (bawaan 10 menit setelah dibuat).
Galat
| Kode | Pesan | Penyebab |
|---|---|---|
422 | amount harus bilangan bulat antara … | Nominal di luar batas atau bukan bilangan bulat |
422 | redirect_url harus memakai https | URL tidak https atau tidak valid |
409 | order_id sudah dipakai | order_id yang sama sudah ada di akunmu |
409 | Nominal yang sama sedang menunggu pembayaran… | Ada invoice menunggu dengan nominal yang sama |
429 | Terlalu banyak invoice dibuat… | Lebih dari 30 invoice per menit |
502 | pesan dari gateway | Gateway QRIS gagal membuat QR |
Mengapa nominal sama ditolak?
QRIS dicocokkan lewat nominal. Jika dua invoice menunggu dengan nominal sama, satu pembayaran tidak bisa dibedakan miliknya yang mana. Karena itu, selama ada invoice menunggu dengan nominal tersebut (milik merchant mana pun), pembuatan yang baru ditolak dengan 409.
Strategi umum: tangkap
409 lalu tambahkan selisih kecil pada nominal, atau tampilkan invoice yang sudah ada kepada pelanggan.