Semua endpoint memakai base URL https://qris.adipmusic.my.id. Endpoint bertanda 🔒 butuh header Authorization: Bearer <API_KEY> — ambil API key dari dashboard.
Buat QRIS dinamis dengan nominal tertentu dari QRIS statis yang sudah kamu upload.
curl -X POST https://qris.adipmusic.my.id/api/qris/generate \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"amount": 50000,
"order_id": "INV-001",
"webhook_url": "https://your-server.com/webhook",
"callback_url": "https://your-site.com/thanks"
}'Response:
{
"success": true,
"qris": "00020101021226610018ID.CO.QRIS.WWW...",
"qr_image": "data:image/svg+xml;base64,...",
"amount": 50000,
"expires_at": "2026-10-02T20:22:00.000Z",
"order_id": "INV-001",
"code": "A1B2C3D4E5F6"
}Simpan QRIS statis tokomu. Bisa kirim string QRIS langsung, atau upload gambar (JPG/PNG/BMP/TIFF/GIF, maks 1,5 MB).
curl -X POST https://qris.adipmusic.my.id/api/qris/upload \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "qris_string": "000201010211..." }'
# atau upload gambar:
curl -X POST https://qris.adipmusic.my.id/api/qris/upload \
-H "Authorization: Bearer <API_KEY>" \
-F "file=@qris-toko.png"Buat payment link publik yang bisa dibagikan ke pelanggan.
curl -X POST https://qris.adipmusic.my.id/api/qris/payment-link \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "amount": 100000, "order_id": "INV-002" }'Response:
{
"success": true,
"payment_link": {
"id": 12,
"link_code": "EC6Y6DQXGJW5",
"order_id": "INV-002",
"url": "https://qris.adipmusic.my.id/p/EC6Y6DQXGJW5",
"amount": 100000,
"webhook_url": null,
"callback_url": null,
"expires_at": "2026-10-02T20:32:00.000Z"
}
}Tandai order sebagai lunas setelah kamu memastikan dana masuk di e-wallet/bank. Webhook akan dikirim otomatis bila webhook_url terpasang.
curl -X POST https://qris.adipmusic.my.id/api/orders/INV-001/verify \ -H "Authorization: Bearer <API_KEY>"
Batalkan order yang masih berstatus pending.
curl -X POST https://qris.adipmusic.my.id/api/orders/INV-001/cancel \ -H "Authorization: Bearer <API_KEY>"
Endpoint publik — dipanggil saat pelanggan menekan tombol "Saya Sudah Bayar" di halaman pembayaran. Tidak butuh API key.
curl -X POST https://qris.adipmusic.my.id/api/pay/EC6Y6DQXGJW5/confirm
Setiap order terverifikasi, kami POST JSON ke webhook_url milikmu dengan signature HMAC-SHA256 di header X-TQ-Signature. Verifikasi signature memakai webhook secret dari dashboard.
// Contoh verifikasi signature (Node.js)
const crypto = require("crypto");
function validSignature(rawBody, signature, secret) {
const hmac = crypto.createHmac("sha256", secret)
.update(rawBody, "utf8").digest("hex");
return crypto.timingSafeEqual(
Buffer.from(hmac), Buffer.from(signature)
);
}order_id.
| KODE | ARTI |
|---|---|
| 400 | Parameter tidak valid (mis. nominal kosong atau format salah). |
| 401 | API key hilang atau tidak valid. |
| 404 | Order / kode pembayaran tidak ditemukan atau sudah kedaluwarsa. |
| 409 | Order ID sudah dipakai, atau order sudah tidak berstatus pending. |
| 429 | Kuota harian habis. Upgrade ke Premium untuk 1000 request/hari. |