Status Server
Memeriksa...
Status Sesi GoPay
Memeriksa...
Menunggu API Key
Mutasi Bulan Ini
| Waktu | Order ID | Issuer | Status | Nominal |
|---|---|---|---|---|
| Klik "Muat Ulang" untuk mengambil data mutasi. | ||||
Generator QRIS Dinamis
QRIS yang dibuat akan muncul di sini
Log Aktivitas Sistem
Dokumentasi API & Webhook
Berikut adalah panduan lengkap untuk integrasi API ke website atau aplikasi utama Anda.
Konfigurasi Dasar
- Main URL (Base URL): (
https://gopay.bts-stores.my.id) - Autentikasi: Wajib menyertakan Header
x-api-key: [API_KEY_ANDA]pada setiap request. - Format Request POST: Pastikan menggunakan header
Content-Type: application/json.
/create-qris
Digunakan untuk men-generate string QRIS dinamis baru beserta link halaman checkout HTML interaktif.
amount(Integer / Wajib): Nominal transaksi tanpa titik. (Contoh:50000)
{
"amount": 50000
}
{
"success": true,
"data": {
"qris_id": "a8f7b2c1",
"trx_id": "TRX-9X87B2C1",
"qris_url": "https://gopay.domain.com/qr/a8f7b2c1",
"qris_code": "000201010212...",
"amount": 50000,
"expires_at": "2026-08-13T14:00:00.000Z",
"expires_in": "5 menit"
}
}
/transactions
Mengambil riwayat mutasi transaksi (pembayaran masuk) berdasarkan rentang waktu tertentu langsung dari GoPay.
startTime(Integer / Opsional): Waktu awal mutasi dalam format Unix Timestamp Detik.endTime(Integer / Opsional): Waktu akhir mutasi. Default adalah waktu saat ini.pageSize(Integer / Opsional): Batas limit data mutasi yang ditarik. Default: 20.
GET /transactions?pageSize=5&startTime=1712345678Shortcut Praktis:
Gunakan endpoint GET /transactions/all untuk menarik 100 transaksi terbaru di bulan ini secara otomatis tanpa perlu mengisi startTime.
{
"success": true,
"total_amount": "50000",
"data": {
"transactions": [
{
"amount": 50000,
"status": "success",
"time": "2026-08-13T13:50:00Z",
"issuer": "BCA / GoPay",
"order_id": "TRX-9X87B2C1",
"transaction_id": "GOPAY-12345"
}
]
}
}
/check-payment
Mencari transaksi yang cocok berdasarkan nominal dan timestamp. Setiap transaksi hanya bisa diklaim 1x per trx_id (anti klaim ganda, termasuk untuk dua payment dengan nominal sama).
amount(Number / Wajib): Nominal transaksi yang dicari. (Contoh:25000)trx_id(String / Wajib): TRX-ID dari /create-qris — scope klaim agar tidak tabrakan dengan payment nominal sama (sangat direkomendasikan).startTime(String / Opsional): Timestamp ISO awal pencarian. Default: 24 jam lalu.api_key(String / Wajib): API Key kamu.
GET /check-payment?amount=25000&trx_id=TRX-A3F8K2M9&api_key=RAHASIA
{
"success": true,
"paid": true,
"transaction": {
"transaction_id": "gopay-internal-tx-id",
"order_id": "GOPAY-1234567890",
"amount": 25000,
"payer_issuer": "GoPay / BCA",
"payment_type": "QRIS",
"transaction_time": "2026-07-24T00:15:12.000Z"
}
}
Webhook adalah notifikasi *real-time* yang akan dipanggil (ditembakkan) oleh Gateway API ini ke server website/aplikasi Anda setiap kali ada pembayaran QRIS yang terdeteksi LUNAS (berhasil).
- Buatlah endpoint API penerima Webhook di server website utama Anda. (Contoh URL:
https://toko-anda.com/api/gopay-callback). Endpoint ini harus dapat menerima method POST. - Buka file
.envpada hosting API Gateway ini, kemudian tambahkan variabel konfigurasi Webhook:
WEBHOOK_URL=https://toko-anda.com/api/gopay-callback - Restart Node.js dari cPanel agar sistem membaca URL baru. Selesai.
{
"success": true,
"event": "payment.success",
"data": {
"transaction_id": "GOPAY-12345",
"order_id": "TRX-9X87B2C1",
"amount": 50000,
"payer_issuer": "BCA / GoPay",
"payment_type": "GOPAY_INSTORE",
"transaction_time": "2026-08-13T13:50:00Z"
},
"timestamp": "2026-08-13T13:50:05.123Z"
}
Tips: Di sistem backend website Anda, tangkap payload data.order_id dan ubah status tagihan user di database Anda menjadi Lunas/Selesai secara otomatis.