SRPCOM Logo SRPCOM Payment Gateway
Dashboard
Dokumentasi Developer v2.0

SRPCOM Multi-Provider Payment Gateway API

API Payment Gateway mandiri untuk mengotomasi penerimaan pembayaran QRIS Merchant toko Anda. Mendukung multi-saluran terintegrasi: ShopeePay Partner dan GoPay Merchant / GoBiz. Seluruh pembayaran pelanggan langsung masuk 100% ke saldo akun toko Anda tanpa potongan komisi (0% MDR), verifikasi auto-cek mutasi realtime hitungan detik, serta Webhook Callback otomatis untuk Bot Telegram dan Website E-Commerce.

0% Potongan MDR
Uang pembayaran 100% utuh masuk langsung ke akun ShopeePay & GoPay toko Anda.
Realtime Auto-Cek
Poller otomatis memeriksa mutasi masuk setiap 3-5 detik tanpa perlu upload bukti transfer.
Universal Dynamic QRIS
Standar EMVCo nasional, dapat di-scan dari BCA, Mandiri, BRI, DANA, OVO, GoPay, dan semua e-wallet.
Keamanan & Otorisasi

Autentikasi Header API

Semua request API diamankan menggunakan HTTP Bearer Token atau header X-API-Key. API Key dapat disalin dari Dashboard pada profil akun Anda.

HTTP Header Autentikasi
Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Catatan Penting: Jangan pernah membagikan API Key Anda di sisi front-end publik. Gunakan API Key hanya di server backend Anda atau bot backend.
Universal Endpoint

Cek Status Tagihan QRIS Universal

Endpoint cerdas yang otomatis mendeteksi provider (ShopeePay maupun GoPay) berdasarkan nomor referensi order_sn tanpa perlu membedakan endpoint.

GET /api/qris/status?order_sn={order_sn}
cURL Request
curl -X GET "https://pg.srpcom.store/api/qris/status?order_sn=GP261017001" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx"
Response JSON (Lunas)
{
  "success": true,
  "data": {
    "provider": "gopay",
    "order_sn": "GP261017001",
    "amount": 10000,
    "transaction_status": "paid",
    "paid": true,
    "paid_at": "2026-10-17T11:32:15.000Z",
    "expiry_time": "2026-10-17 11:45:00"
  }
}
Kategori API: Provider ShopeePay
ShopeePay Provider

Status Koneksi ShopeePay

Periksa status konektivitas akun Shopee Partner dan validitas token sesi toko Anda.

GET /api/shopeepay/status
cURL Request
curl -X GET "https://pg.srpcom.store/api/shopeepay/status" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx"
Response JSON (200 OK)
{
  "success": true,
  "message": "ShopeePay status",
  "data": {
    "connected": true,
    "token_valid": true,
    "store_id": "23194546"
  }
}
ShopeePay Provider

Buat QRIS Dinamis ShopeePay

Membuat tagihan QRIS ShopeePay resmi dengan nominal pembayaran terkunci. Sistem mengembalikan string mentah EMVCo, URL gambar QR, Base64 Image, dan link checkout kasir siap pakai.

POST /api/shopeepay/qris/create
cURL Request
curl -X POST "https://pg.srpcom.store/api/shopeepay/qris/create" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25000,
    "callback_url": "https://tokoanda.com/api/webhook"
  }'
Response JSON (200 OK)
{
  "success": true,
  "message": "QRIS created successfully",
  "data": {
    "amount": 25000,
    "order_sn": "261016891912832788",
    "nmid": "ID1026532949231",
    "qr_string": "00020101021126610016ID.CO.SHOPEE.WWW0118936009180023194546...",
    "qr_url": "https://pg.srpcom.store/api/shopeepay/qr/261016891912832788",
    "qr_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
    "checkout_url": "https://pg.srpcom.store/checkout.html?order_sn=261016891912832788",
    "transaction_time": "2026-10-17 11:30:00",
    "expiry_time": "2026-10-17 11:45:00"
  }
}
Tips Gambar QR Langsung: Properti qr_url mengembalikan file gambar murni (image/png) yang dapat langsung dipasang ke tag HTML <img src="..." /> atau dikirim ke WhatsApp / Bot Telegram.
ShopeePay Provider

Cek Status Tagihan ShopeePay

Periksa status pembayaran tagihan ShopeePay berdasarkan nomor referensi order_sn.

GET /api/shopeepay/qris/status?order_sn={order_sn}
cURL Request
curl -X GET "https://pg.srpcom.store/api/shopeepay/qris/status?order_sn=261016891912832788" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx"
Response JSON (LUNAS)
{
  "success": true,
  "message": "QRIS status retrieved",
  "data": {
    "order_sn": "261016891912832788",
    "amount": 25000,
    "transaction_status": "paid",
    "paid": true,
    "paid_at": "2026-10-17T11:32:15.000Z",
    "expiry_time": "2026-10-17 11:45:00"
  }
}
ShopeePay Provider

Riwayat Mutasi ShopeePay

Mengambil daftar mutasi masuk terbaru langsung dari akun Shopee Partner toko Anda.

GET /api/shopeepay/transactions?limit=10
cURL Request
curl -X GET "https://pg.srpcom.store/api/shopeepay/transactions?limit=5" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx"
Kategori API: Provider GoPay
GoPay Provider

Buat QRIS Dinamis GoPay

Membuat tagihan QRIS Dinamis akun GoPay Kasir toko Anda dengan tag standar EMVCo (COM.GO-JEK.WWW) dan nominal pembayaran terkunci.

POST /api/gopay/qris/create
cURL Request
curl -X POST "https://pg.srpcom.store/api/gopay/qris/create" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 10000,
    "order_sn": "GP261017001",
    "expiry_minutes": 15,
    "callback_url": "https://tokoanda.com/api/webhook"
  }'
Response JSON (200 OK)
{
  "success": true,
  "message": "QRIS GoPay created successfully",
  "data": {
    "provider": "gopay",
    "amount": 10000,
    "order_sn": "GP261017001",
    "nmid": "ID1024324307148",
    "qr_string": "00020101021126610014COM.GO-JEK.WWW...",
    "qr_url": "https://pg.srpcom.store/api/gopay/qr/GP261017001",
    "qr_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
    "checkout_url": "https://pg.srpcom.store/checkout.html?provider=gopay&order_sn=GP261017001",
    "transaction_time": "2026-10-17 11:30:00",
    "expiry_time": "2026-10-17 11:45:00"
  }
}
Tips Gambar QR Langsung: Properti qr_url mengembalikan file gambar murni (image/png) yang dapat langsung dipasang ke tag HTML <img src="..." /> atau dikirim ke WhatsApp / Bot Telegram.
GoPay Provider

Cek Status Tagihan GoPay

Periksa apakah invoice transaksi GoPay sudah dibayar lunas atau telah kedaluwarsa.

GET /api/gopay/qris/status?order_sn={order_sn}
cURL Request
curl -X GET "https://pg.srpcom.store/api/gopay/qris/status?order_sn=GP261017001" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx"
Response JSON (LUNAS)
{
  "success": true,
  "message": "GoPay status retrieved",
  "data": {
    "provider": "gopay",
    "order_sn": "GP261017001",
    "amount": 10000,
    "transaction_status": "paid",
    "paid": true,
    "paid_at": "2026-10-17T11:32:15.000Z",
    "expiry_time": "2026-10-17 11:45:00"
  }
}
GoPay Provider

Riwayat Mutasi Masuk GoPay

Mengambil daftar mutasi masuk terbaru langsung dari GoBiz / GoPay Merchant.

GET /api/gopay/transactions?limit=10
cURL Request
curl -X GET "https://pg.srpcom.store/api/gopay/transactions?limit=5" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx"
GoPay Provider

Batalkan Tagihan GoPay

Membatalkan tagihan transaksi pending sehingga pelanggan tidak lagi dapat membayarnya.

POST /api/gopay/qris/cancel
cURL Request
curl -X POST "https://pg.srpcom.store/api/gopay/qris/cancel" \
  -H "Authorization: Bearer srp_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "order_sn": "GP261017001"
  }'
Standar HTTP & Keamanan

Kode Respons Status & Batasan Rate Limit

Gateway menggunakan kode status HTTP standar untuk mengindikasikan keberhasilan atau kegagalan request API Anda.

Daftar HTTP Status Codes
Kode Status Penjelasan & Penyebab
200 OK Permintaan berhasil diproses dan mengembalikan data yang diminta.
400 Bad Request Parameter input tidak valid, nominal kurang dari Rp 1, atau format JSON salah.
401 Unauthorized Header Authorization atau X-API-Key hilang, keliru, atau telah direset.
403 Forbidden (Expired) Masa sewa API akun toko Anda telah habis atau akun dinonaktifkan sementara. Pengguna dapat memperpanjang sewa di dashboard.
429 Too Many Requests Request melebihi batas Rate Limiting server untuk mencegah serangan spam.
503 Service Unavailable Server sedang dalam Maintenance Mode (pemeliharaan) atau sesi upstream merchant toko sedang terputus.
Contoh Response HTTP 403 (Masa Sewa Habis):
{
  "success": false,
  "expired": true,
  "message": "Masa sewa API Anda telah habis. Silakan perpanjang sewa di https://pg.srpcom.store"
}
Kebijakan Rate Limiting (Anti-Spam Guard)

Untuk menjaga stabilitas dan kecepatan latensi server, gateway menerapkan batas frekuensi request berbasis IP client:

  • General API Endpoints (Status, Mutasi): Maksimal 120 request / menit.
  • Create QRIS Endpoints (ShopeePay & GoPay Generate): Maksimal 20 invoice / menit.
Integrasi Otomatis

Webhook Callback Realtime

Gateway otomatis mengirimkan HTTP POST payload ke URL Webhook yang Anda daftarkan di dashboard ketika mutasi pembayaran pelanggan berhasil diverifikasi (baik dari ShopeePay maupun GoPay).

Payload Notifikasi Webhook (POST ke URL Merchant Anda)
{
  "event": "payment.success",
  "provider": "gopay", // atau "shopeepay"
  "timestamp": "2026-10-17T11:32:15.000Z",
  "data": {
    "order_sn": "GP261017001",
    "amount": 10000,
    "transaction_status": "settled",
    "paid_at": "2026-10-17T11:32:15.000Z",
    "nmid": "ID1024324307148"
  }
}
Verifikasi Keamanan Signature (HMAC-SHA256)

Setiap request Webhook menyertakan header X-Webhook-Signature yang dienkripsi menggunakan HMAC-SHA256 berbasis API Key Anda untuk memastikan callback berasal asli dari server SRPCOM Payment Gateway.

Contoh Verifikasi Signature (Node.js Express / PHP)
// Node.js Express
const expected = crypto.createHmac('sha256', API_KEY).update(JSON.stringify(req.body)).digest('hex');
if (req.headers['x-webhook-signature'] !== expected) return res.status(401).send('Invalid signature');

// PHP
$raw = file_get_contents('php://input');
$expected = hash_hmac('sha256', $raw, $API_KEY);
if ($_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] !== $expected) { http_response_code(401); exit('Invalid signature'); }
Integrasi Toko Online

Integrasi Bot Telegram

Mendukung notifikasi instan langsung ke HP pemilik toko (@SRPCOMPGbot) maupun pembuatan custom bot jualan otomatis.

Notifikasi Instan ke HP Kasir (@SRPCOMPGbot) — Bebas Ribet Tanpa Koding!

Bagi pemilik toko yang hanya ingin menerima laporan uang masuk seketika di ponsel: Anda tidak perlu membuat bot sendiri. Cukup buka Telegram, cari bot resmi @SRPCOMPGbot, klik Start, lalu tempel ID Telegram Anda pada tab ShopeePay / GoPay di Dashboard. Setiap ada pembayaran QRIS lunas, bot akan langsung mengirim notifikasi bunyi ke HP Anda!

Custom Bot Toko / E-Commerce Bot

Jika Anda developer yang ingin membuat bot jualan otomatis sendiri yang dapat men-generate QRIS bagi pembeli:

bot.js (Telegraf)
const { Telegraf } = require('telegraf');
const axios = require('axios');

const bot = new Telegraf('YOUR_TELEGRAM_BOT_TOKEN');
const GATEWAY_URL = 'https://pg.srpcom.store';
const API_KEY = 'srp_xxxxxxxxxxxxxxxxxxxxxxxx';

// Command: /beli 10000
bot.command('beli', async (ctx) => {
  const parts = ctx.message.text.split(' ');
  const amount = parseInt(parts[1], 10) || 10000;

  try {
    ctx.reply('⏳ Menyiapkan QRIS pembayaran...');

    // 1. Generate QRIS via Gateway (Bisa GoPay / ShopeePay)
    const response = await axios.post(`${GATEWAY_URL}/api/gopay/qris/create`, {
      amount: amount
    }, {
      headers: { 'Authorization': `Bearer ${API_KEY}` }
    });

    const { order_sn, qr_url, checkout_url } = response.data.data;

    // 2. Kirim gambar QRIS ke pembeli di Telegram
    const caption = `💳 *Invoice Pembayaran QRIS Dinamis*\n\n` +
      `• *ID Referensi:* \`${order_sn}\`\n` +
      `• *Total Tagihan:* Rp ${amount.toLocaleString('id-ID')}\n\n` +
      `Silakan scan QRIS di atas menggunakan GoPay, ShopeePay, BCA, Mandiri, atau e-wallet lainnya.\n\n` +
      `🔗 [Buka Kasir Web](${checkout_url})`;

    await ctx.replyWithPhoto(qr_url, {
      caption: caption,
      parse_mode: 'Markdown'
    });

    // 3. Polling status universal otomatis setiap 5 detik hingga lunas
    const timer = setInterval(async () => {
      try {
        const check = await axios.get(`${GATEWAY_URL}/api/qris/status?order_sn=${order_sn}`, {
          headers: { 'Authorization': `Bearer ${API_KEY}` }
        });

        if (check.data.data && check.data.data.paid) {
          clearInterval(timer);
          ctx.reply(`✅ *Pembayaran Berhasil Diterima!*\n\nNominal: Rp ${amount.toLocaleString('id-ID')}\nOrder SN: \`${order_sn}\`\nPesanan Anda segera diproses!`, {
            parse_mode: 'Markdown'
          });
        }
      } catch (err) {}
    }, 5000);

    // Timeout 15 menit
    setTimeout(() => clearInterval(timer), 15 * 60 * 1000);

  } catch (err) {
    ctx.reply('❌ Gagal membuat invoice: ' + (err.response?.data?.message || err.message));
  }
});

bot.launch().then(() => console.log('Bot Telegram aktif!'));
Halaman Bayar Siap Pakai

Halaman Kasir Web Universal

Setiap kali QRIS dibuat, gateway otomatis menyediakan link kasir responsif yang siap dikirimkan ke pembeli tanpa Anda harus membuat UI sendiri.

Format URL Kasir:
https://pg.srpcom.store/pay/:order_sn

Halaman kasir ini otomatis mendeteksi provider transaksi secara adaptif: jika tagihan dibuat melalui GoPay, halaman akan menampilkan logo resmi GoPay dan aksen hijau. Jika melalui ShopeePay, halaman akan menampilkan logo resmi ShopeePay dan aksen oranye. Tersedia tombol Simpan QR dan Cek Pembayaran Realtime.

Aplikasi Android & IoT Kasir

Integrasi Speaker Kasir (SRPCOM Soundbox)

Aplikasi Android SRPCOM Soundbox mengubah smartphone atau tablet Android di toko Anda menjadi speaker suara otomatis ("Pembayaran QRIS Rp 10.000 Berhasil Diterima!") yang terhubung ke speaker Bluetooth atau speaker internal tanpa perlu menyewa alat Soundbox fisik yang mahal.

GET /api/soundbox/verify

Memvalidasi API Key toko dan memeriksa status koneksi serta masa sewa aktif aplikasi kasir.

GET /api/soundbox/transactions?limit=20

Mengambil daftar transaksi lunas terbaru toko untuk diumumkan secara otomatis oleh suara kasir.

Download Aplikasi SRPCOM Soundbox (Android)
Versi Android APK siap pasang di kasir toko Anda.
Unduh APK Kasir