v1.0 — Live

GoMerch Pro API

Integrasikan pembayaran QRIS ke dalam bot Telegram, website, atau aplikasi Anda. Buat deposit, pantau status pembayaran secara real-time, dan kelola riwayat transaksi melalui API yang sederhana dan powerful.

https://go-pay.yilzi.tech
HTTPS Only
JSON Response

Authentication

Semua request harus menyertakan API key

Setiap request ke API memerlukan header x-api-key yang berisi API key Anda. API key bisa dibuat dari Dashboard setelah login.

Header
x-api-key: gm_your_api_key_here

Jangan bagikan API key Anda. Jika API key bocor, segera hapus dari dashboard dan buat yang baru. Token GoBiz merchant tersimpan di server dan otomatis di-refresh ketika expired.

POST /v1/deposit/create

Buat deposit QRIS baru. Server akan menghasilkan QR code dinamis dari string QRIS statis yang Anda berikan. Deposit berlaku selama 30 menit sebelum otomatis expired.

Request Body

Parameter Type Required Deskripsi
amount integer Yes Nominal pembayaran dalam Rupiah (contoh: 50000)
static_qr string Optional String QRIS statis milik merchant Anda. Opsional jika QRIS Statis sudah disimpan melalui menu Settings di Dashboard.
Request Example
curl -X POST https://go-pay.yilzi.tech/v1/deposit/create \
  -H "Content-Type: application/json" \
  -H "x-api-key: gm_your_api_key" \
  -d '{
    "amount": 50000,
    "static_qr": "00020101021126670016..."
  }'
Response — 200 OK
{
  "success": true,
  "data": {
    "deposit_id": "DEP-1717148400-A1B2C3D4",
    "amount": 50000,
    "qr_image_url": "https://go-pay.yilzi.tech/v1/qris/image/DEP-...",
    "qr_string": "00020101021254...",
    "status": "PENDING",
    "created_at": "2026-05-31T10:00:00.000Z",
    "expired_at": "2026-05-31T10:30:00.000Z"
  }
}
POST /v1/deposit/status

Cek status pembayaran deposit. Jika masih PENDING, server akan secara real-time mengecek ke jurnal transaksi GoBiz untuk mencocokkan pembayaran.

Request Body

ParameterTypeRequiredDeskripsi
deposit_id string Yes ID deposit yang didapat dari create deposit
Request Example
curl -X POST https://go-pay.yilzi.tech/v1/deposit/status \
  -H "Content-Type: application/json" \
  -H "x-api-key: gm_your_api_key" \
  -d '{
    "deposit_id": "DEP-1717148400-A1B2C3D4"
  }'
Response — Paid
{
  "success": true,
  "data": {
    "deposit_id": "DEP-1717148400-A1B2C3D4",
    "amount": 50000,
    "status": "PAID",
    "created_at": "2026-05-31T10:00:00.000Z",
    "paid_at": "2026-05-31T10:05:12.000Z",
    "payment_data": {
      "reference_id": "TXN-...",
      "payment_type": "qris"
    }
  }
}

Possible Status Values

PENDING PAID EXPIRED CANCELLED
POST /v1/deposit/cancel

Batalkan deposit yang masih berstatus PENDING. Deposit yang sudah PAID, EXPIRED, atau CANCELLED tidak bisa dibatalkan.

Request Body

ParameterTypeRequiredDeskripsi
deposit_id string Yes ID deposit yang ingin dibatalkan
Request Example
curl -X POST https://go-pay.yilzi.tech/v1/deposit/cancel \
  -H "Content-Type: application/json" \
  -H "x-api-key: gm_your_api_key" \
  -d '{
    "deposit_id": "DEP-1717148400-A1B2C3D4"
  }'
Response — 200 OK
{
  "success": true,
  "data": {
    "deposit_id": "DEP-1717148400-A1B2C3D4",
    "amount": 50000,
    "status": "CANCELLED",
    "cancelled_at": "2026-05-31T10:03:45.000Z"
  }
}
POST /v1/deposit/history

Ambil riwayat semua deposit yang dibuat menggunakan API key Anda. Bisa difilter berdasarkan status dan dibatasi jumlahnya.

Request Body

ParameterTypeRequiredDeskripsi
limit integer No Jumlah maksimal data (default: 50, max: 100)
status string No Filter status: PENDING, PAID, EXPIRED, CANCELLED
Request Example
curl -X POST https://go-pay.yilzi.tech/v1/deposit/history \
  -H "Content-Type: application/json" \
  -H "x-api-key: gm_your_api_key" \
  -d '{
    "limit": 10,
    "status": "PAID"
  }'
Response — 200 OK
{
  "success": true,
  "data": {
    "total": 2,
    "deposits": [
      {
        "deposit_id": "DEP-...",
        "amount": 50000,
        "status": "PAID",
        "created_at": "...",
        "paid_at": "..."
      }
    ]
  }
}
GET /v1/qris/image/:deposit_id

Ambil gambar QR code dari deposit. Endpoint ini tidak memerlukan API key sehingga bisa langsung di-embed di halaman web atau dikirim sebagai gambar di bot.

URL Parameters

ParameterTypeRequiredDeskripsi
deposit_id string Yes ID deposit (bagian dari URL path)
Usage Example
<!-- Embed di HTML -->
<img src="https://go-pay.yilzi.tech/v1/qris/image/DEP-1717148400-A1B2C3D4" />

# Download via curl
curl -o qris.png https://go-pay.yilzi.tech/v1/qris/image/DEP-1717148400-A1B2C3D4

Response berupa file image/png (bukan JSON). Cocok untuk langsung di-embed sebagai <img> tag atau dikirim sebagai photo di bot Telegram.

HTTP Status Codes

CodeStatusDeskripsi
200 OK Request berhasil
400 Bad Request Parameter tidak lengkap atau tidak valid
401 Unauthorized API key tidak valid atau expired
403 Forbidden Tidak punya akses ke resource ini
404 Not Found Deposit tidak ditemukan
500 Server Error Kesalahan internal server

Error Codes

Kode error dalam field "code" pada response

// Error response format
{
  "success": false,
  "error": "Deskripsi error",
  "code": "ERROR_CODE"
}
CodeDeskripsi
MISSING_API_KEY Header x-api-key tidak ditemukan
INVALID_API_KEY API key tidak valid atau tidak terdaftar
TOKEN_EXPIRED Token merchant expired, perlu regenerate API key
MISSING_PARAMS Parameter wajib tidak lengkap
INVALID_AMOUNT Nominal tidak valid (harus angka positif)
NOT_FOUND Deposit tidak ditemukan
FORBIDDEN Tidak punya akses ke deposit milik API key lain
CANNOT_CANCEL Deposit sudah PAID/EXPIRED/CANCELLED, tidak bisa dibatalkan