Dokumentasi API
Selamat datang di dokumentasi API GoPay Gateway. Integrasikan gateway pembayaran QRIS otomatis ke dalam aplikasi, web, atau bot Telegram Anda secara mandiri dalam hitungan menit.
Layanan kami bekerja dengan membungkus QRIS statis GoPay Merchant Anda dan memformatnya menjadi QRIS dinamis bernominal khusus sesuai nilai transaksi. Hal ini membantu memverifikasi setiap pembayaran masuk secara akurat tanpa biaya per transaksi.
Mulai Cepat
Ikuti 3 langkah mudah di bawah ini untuk mulai menerima pembayaran otomatis:
Daftar akun di platform kami dan dapatkan kunci rahasia unik Anda melalui halaman Pengaturan API Key.
Salin string QRIS statis dari aplikasi GoBiz / GoPay Merchant Anda dan simpan di menu Setup QRIS.
Gunakan REST endpoints yang tercantum di bawah untuk mulai memicu pembuatan QRIS dinamis.
Autentikasi
Semua panggilan API Anda harus diautentikasi menggunakan API Key unik yang telah terdaftar. Kami menyediakan dua metode untuk mengirimkan API Key tersebut:
Jaga kerahasiaan API Key Anda. Jangan pernah membagikan API Key Anda di client-side JavaScript, repository publik, atau ke pihak ketiga mana pun.
API Reference
Berikut adalah spesifikasi endpoint yang tersedia untuk melakukan integrasi pembayaran.
Endpoint ini digunakan untuk membuat pesanan baru dan menghasilkan string QRIS Dinamis berserta gambar QR code instan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
| amount wajib | integer | Jumlah nominal pembayaran dalam Rupiah. Minimum Rp 100 dan maksimum Rp 50.000.000. |
| ref_id opsional | string | ID referensi internal dari sistem Anda (misal: ID order web Anda). |
| description opsional | string | Deskripsi singkat transaksi untuk pelacakan. |
| expired_minutes opsional | integer | Masa berlaku QR code dalam hitungan menit. Default adalah 15 menit. |
curl -X POST "http://localhost:8080/api/create_order.php" \
-H "Content-Type: application/json" \
-H "X-API-Key: gpg_live_xxxxxxxxxxxx" \
-d '{
"amount": 150000,
"ref_id": "ORDER-001",
"description": "Pembelian Produk A",
"expired_minutes": 15
}'
{
"status": "success",
"code": 200,
"message": "Order berhasil dibuat. Tampilkan QR kepada pelanggan.",
"data": {
"order_id": "GPG-B2E8D1-20260611161500",
"transaction_id": 128,
"ref_id": "ORDER-001",
"merchant_name": "Toko Budi Online",
"amount": 150000,
"amount_formatted": "Rp 150.000",
"qr_string": "00020101021226...",
"qr_url": "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=...",
"status": "pending",
"description": "Pembelian Produk A",
"expired_minutes": 15,
"expires_at": "2026-06-11 16:30:00",
"created_at": "2026-06-11 16:15:00"
}
}
Endpoint ini digunakan untuk memantau atau mendeteksi status transaksi berdasarkan `order_id` yang didapatkan pada proses pembuatan pesanan.
| Parameter | Tipe | Deskripsi |
|---|---|---|
| order_id wajib | string | ID Order unik yang didapatkan dari respons pembuatan order (contoh: `GPG-xxxx-xxxx`). |
curl -X GET "http://localhost:8080/api/check_status.php?order_id=GPG-B2E8D1-20260611161500"
{
"status": "success",
"code": 200,
"message": "Success",
"data": {
"order_id": "GPG-B2E8D1-20260611161500",
"merchant_name": "Toko Budi Online",
"ref_id": "ORDER-001",
"amount": 150000,
"amount_formatted": "Rp 150.000",
"qr_string": "00020101021226...",
"qr_url": "https://...",
"status": "paid", // status: pending | paid | expired | failed
"description": "Pembelian Produk A",
"expired_minutes": 15,
"expires_at": "2026-06-11 16:30:00",
"created_at": "2026-06-11 16:15:00",
"paid_at": "2026-06-11 16:18:22"
}
}
Endpoint ini digunakan untuk mensimulasikan pembaruan status transaksi secara manual atau bertindak sebagai webhook simulasi dari server Anda ke gateway.
| Parameter | Tipe | Deskripsi |
|---|---|---|
| order_id wajib | string | ID Order unik dari sistem (contoh: `GPG-xxxx-xxxx`). |
| status wajib | string | Status baru yang ingin diubah. Pilihan status: `paid`, `failed`, `expired`, `pending`. |
curl -X POST "http://localhost:8080/api/update_status.php" \
-H "Content-Type: application/json" \
-H "X-API-Key: gpg_live_xxxxxxxxxxxx" \
-d '{
"order_id": "GPG-B2E8D1-20260611161500",
"status": "paid"
}'
Otomasi MacroDroid
MacroDroid adalah aplikasi otomasi Android gratis yang sangat andal untuk mendeteksi notifikasi masuk dari aplikasi GoBiz atau GoPay Merchant dan secara otomatis meneruskannya ke server GoPay Gateway Anda.
MacroDroid bekerja di latar belakang HP Anda secara mandiri tanpa memerlukan server eksternal, sepenuhnya gratis, dan mendukung Mode Offline menggunakan kabel USB debugging agar data notifikasi dikirim langsung ke komputer/laptop tanpa kuota internet.
Dua Mode Operasional
Anda dapat mengkonfigurasi MacroDroid dalam salah satu dari dua mode koneksi berikut:
HP terhubung internet/Wi-Fi dan mengirimkan data langsung ke URL domain publik server Anda. Sangat praktis untuk server cloud/VPS.
HP terhubung via kabel USB ke laptop/komputer. Menggunakan perintah adb reverse untuk meneruskan notifikasi ke localhost Anda tanpa kuota data/Wi-Fi.
Langkah-langkah Setup MacroDroid
Persiapan Aplikasi & HP
Unduh aplikasi MacroDroid - Device Automation (oleh ArloSoft) melalui Google Play Store di HP Android Anda.
Buka aplikasi, ikuti petunjuk awal untuk memberikan izin Notification Access (Akses Notifikasi).
⚠️ Penting (Optimasi Baterai): Buka Pengaturan HP Anda → Aplikasi → MacroDroid → Penggunaan Baterai → ubah ke Tidak Dibatasi (Unrestricted) agar Android tidak menutup paksa MacroDroid saat layar HP mati.
Buat Makro Baru
Buka MacroDroid → Ketuk tombol Add Macro (Tambah Makro) → Tulis nama makro di bagian atas, misalnya GoPay Gateway Forwarder.
Setup Trigger (Pemicu Notifikasi)
Pada kolom merah (Triggers), ketuk tombol (+) dan konfigurasi sebagai berikut:
- Pilih Device State → Notification → Notification Received.
- Pilih opsi Select Application(s) → Centang aplikasi GoBiz dan/atau GoPay Merchant, lalu klik OK.
- Pilih opsi Text Content → Centang Any (Apapun), lalu ketuk OK.
Setup Action (HTTP Request POST)
Pada kolom biru (Actions), ketuk tombol (+) dan konfigurasi aksi HTTP Request:
- Pilih Applications → HTTP Request.
- Atur tipe Method ke:
POST. - Masukkan **URL Endpoint**:
- Mode Online:
http://localhost:8080/api/notify_payment.php - Mode Offline (USB):
http://127.0.0.1/api/notify_payment.php
- Mode Online:
| Headers |
X-API-Key: "gpg_live_xxxxxxxxxxxx" Content-Type: "application/json" |
| Request Body (Raw) | {"text": "{not_text}"} |
💡 Ketuk tombol [..] di atas keyboard HP Anda pada MacroDroid untuk memasukkan parameter {not_text} (Notification Text) secara otomatis.
Simpan & Aktifkan
Ketuk ikon centang di kanan bawah MacroDroid untuk menyimpan makro Anda. Pastikan sakelar makro di sudut kanan atas berada pada posisi ON (Aktif).
Panduan Tambahan: Setup Mode Offline (Lewat Kabel USB)
Dengan mode ini, Anda tidak perlu terhubung ke jaringan internet/kuota Wi-Fi di HP Anda. Notifikasi akan diteruskan langsung ke server lokal (misalnya XAMPP) di laptop/komputer Anda menggunakan kabel data USB.
Langkah A: Aktifkan USB Debugging di HP Android Anda
- Buka Pengaturan HP → Tentang Ponsel (About Phone).
- Ketuk Nomor Bentukan (Build Number) sebanyak 7 kali berturut-turut untuk mengaktifkan Opsi Pengembang.
- Kembali ke Pengaturan utama → buka Opsi Pengembang (Developer Options).
- Cari dan aktifkan opsi USB Debugging (Mendebug USB).
- Hubungkan HP Anda ke laptop/komputer menggunakan kabel data USB. Berikan izin mendebug komputer pada dialog pop-up yang muncul di layar HP.
Langkah B: Jalankan Reverse Port Forwarding via ADB
Pastikan laptop Anda telah menginstal driver ADB (Android Debug Bridge) atau file adb.exe dari SDK Platform Tools Android.
Buka Terminal / Command Prompt / PowerShell di laptop Anda, lalu jalankan perintah berikut:
adb reverse tcp:80 tcp:80
Jika server lokal XAMPP Anda berjalan di port non-standar (misalnya port 8080), sesuaikan perintahnya menjadi: adb reverse tcp:8080 tcp:8080 dan ubah URL HTTP Request di MacroDroid Anda menjadi http://127.0.0.1:8080/api/notify_payment.php.