Dokumentasi API Gateway

Platform ini memungkinkan aplikasi Anda mencetak kode QRIS Dinamis standar nasional dengan nominal rupiah presisi dan memverifikasi mutasi saldo secara otomatis dan real-time.

Production Base URL
https://payment.titiksenyapstudio.id

Autentikasi API Key

Semua permintaan ke endpoint merchant wajib menyertakan header HTTP X-Api-Key. Kunci ini digenerate melalui Dashboard → Services.

X-Api-Key: ts_live_a1b2c3d4e5f6g7h8...

Langkah Cepat (3 Menit)

1
Buat Tagihan
Panggil POST /create-qris dengan nominal pembayaran. Dapatkan qris_url.
2
Tampilkan ke Pembeli
Buka qris_url di browser pembeli atau render kode QR di aplikasi Anda.
3
Terima Konfirmasi
Gateway mengirim Webhook POST otomatis ke server Anda saat dana masuk.
POST/create-qris

Generate QRIS Dinamis

Membuat tagihan QRIS baru dengan nominal rupiah tertentu. Berlaku selama 5 menit.

curl -X POST https://payment.titiksenyapstudio.id/create-qris \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: ts_live_YOUR_API_KEY" \
  -d '{
    "amount": 25000,
    "redirect_url": "https://tokosaya.com/selesai"
  }'
GET/check-payment

Verifikasi Pembayaran Masuk

Memverifikasi apakah pembayaran untuk nominal dan transaksi tertentu telah berhasil diterima.

curl -X GET "https://payment.titiksenyapstudio.id/check-payment?amount=25000&trx_id=TRX-7BXDJHW7" \
  -H "X-Api-Key: ts_live_YOUR_API_KEY"

Webhook Callbacks

Gateway mengirimkan HTTP POST otomatis ke URL webhook service Anda saat transaksi diselesaikan oleh pembeli.

{ "event": "payment.settled", "qris_id": "vab54ovn", "trx_id": "TRX-7BXDJHW7", "amount": 25000, "status": "PAID", "paid_at": "2026-10-21T05:16:30.000Z", "payer_issuer": "BCA Mobile", "provider_transaction_id": "TX-9921849102" }

Kode Status & Error

Kode HTTPArtiSolusi
200 OKSuksesPermintaan berhasil diproses.
400 Bad RequestParameter SalahCek kelengkapan amount atau format payload.
401 UnauthorizedAPI Key SalahHeader X-Api-Key salah atau dicabut.
410 GoneKedaluwarsaBatas waktu pembayaran 5 menit habis. Buat tagihan baru.
429 Rate LimitTerlalu Banyak RequestBeri jeda antar request ke server.