Y
YNA PAY DOCS V2.0
Dashboard Ambil API Key
API REFERENCE V2.0 • PRODUCTION READY

Dokumentasi API YNA PAY

Panduan integrasi resmi untuk menerima pembayaran QRIS Dinamis otomatis pada Bot WhatsApp, Bot Telegram, Web Store, dan Aplikasi Anda. Semua response menggunakan format standar JSON.

Base URL API
api.ynapay.my.id
Autentikasi
Header: X-Api-Key
Data Format
JSON (application/json)
Rate Limit
120 Req / Menit

🔑 Autentikasi Kunci API (API Key)

Setiap permintaan ke seluruh endpoint /api/v2/* wajib menyertakan X-Api-Key pada header request. Dapatkan API Key unik Anda dari Dashboard User menu API & Webhook.

Header Autentikasi Wajib
X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

⚠️ Format & Kode Error

Jika terjadi kegagalan (misalnya API key salah, nominal tidak valid, atau rate limit terlampaui), server YNA PAY akan mengembalikan format error JSON standar.

Contoh Response Error (400 Bad Request) 400 ERROR
{
  "status": "error",
  "message": "Nominal pembayaran minimal Rp1.000."
}
POST /api/v2/qris/create

Membuat invoice baru dan menghasilkan QRIS Dinamis instan otomatis. Nominal amount adalah jumlah dana yang ingin Anda terima utuh.

Parameter Request (JSON Body)

FieldTipeStatusDeskripsi
amount Number Wajib Nominal transaksi dalam Rupiah (contoh: 50000).
note String Opsional Catatan transaksi / nama produk (maksimal 200 karakter).
customer_name String Opsional Nama pembeli / username pelanggan Anda.
curl -X POST https://api.ynapay.my.id/api/v2/qris/create \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "amount": 50000,
    "note": "Pembelian Akun Premium #123",
    "customer_name": "Yuna"
  }'
Contoh Response Sukses (200 OK) 200 SUCCESS
{
  "status": "success",
  "data": {
    "ref_no": "YNA-QR-20260826-87421",
    "amount": 50000,
    "fee": 350,
    "total_amount": 50350,
    "qr_string": "00020101021126570011ID.DANA.WWW0118936009153827135233...",
    "qr_image_url": "https://api.ynapay.my.id/api/v2/qris/image/YNA-QR-20260826-87421.png",
    "status": "PENDING",
    "expired_at": "2026-08-26T04:20:00.000Z"
  }
}
GET /api/v2/qris/status/:refNo

Mengecek status pembayaran QRIS terkini secara real-time berdasarkan nomor referensi transaksi (ref_no).

curl -X GET https://api.ynapay.my.id/api/v2/qris/status/YNA-QR-20260826-87421 \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx"
Contoh Response Status Sukses 200 SUCCESS
{
  "status": "success",
  "data": {
    "ref_no": "YNA-QR-20260826-87421",
    "amount": 50000,
    "total_amount": 50350,
    "status": "SUCCESS",
    "paid_at": "2026-08-26T04:12:30.000Z",
    "customer_name": "Yuna",
    "created_at": "2026-08-26T04:05:00.000Z"
  }
}
GET /api/v2/transactions

Mengambil daftar seluruh riwayat transaksi merchant Anda dengan dukungan pagination (page & limit) serta filter status.

curl -X GET "https://api.ynapay.my.id/api/v2/transactions?page=1&limit=10&status=SUCCESS" \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx"
GET /api/v2/balance

Mengambil informasi saldo akun merchant Anda saat ini, termasuk saldo siap ditarik, saldo tertahan, dan total penarikan.

curl -X GET https://api.ynapay.my.id/api/v2/balance \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx"
POST /api/v2/deposit

Membuat tagihan deposit saldo otomatis via QRIS. Dana langsung masuk ke saldo akun Anda seketika setelah pembayaran diselesaikan.

curl -X POST https://api.ynapay.my.id/api/v2/deposit \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx" \
  -d '{ "amount": 100000 }'
GET /api/v2/deposits

Melihat histori seluruh pengajuan top-up deposit saldo akun Anda beserta status pembayarannya.

cURL Request
curl -X GET https://api.ynapay.my.id/api/v2/deposits \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx"
GET /api/v2/payment-channels

Mengambil daftar channel bank & e-wallet aktif yang tersedia untuk metode pencairan withdraw saldo merchant.

cURL Request
curl -X GET https://api.ynapay.my.id/api/v2/payment-channels \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx"
PUT /api/v2/settings/callback-url

Mengubah atau mendaftarkan Callback Webhook URL tujuan yang akan menerima HTTP POST notifikasi otomatis saat pembayaran lunas.

cURL Request
curl -X PUT https://api.ynapay.my.id/api/v2/settings/callback-url \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx" \
  -d '{ "callback_url": "https://domain-anda.com/api/webhook" }'
GET /api/v2/webhook-logs

Mengambil histori log pengiriman notifikasi webhook ke server Anda lengkap dengan status HTTP response server Anda.

cURL Request
curl -X GET https://api.ynapay.my.id/api/v2/webhook-logs \
  -H "X-Api-Key: yna-xxxxxxxxxxxxxxxxxxxx"

🔔 Format Notifikasi Webhook Otomatis

Saat pelanggan Anda berhasil membayar QRIS, server YNA PAY akan secara instan mengirimkan notifikasi HTTP POST ke Callback URL yang Anda daftarkan di dashboard.

Payload Notifikasi Webhook yang Diterima Server Anda POST PAYLOAD
{
  "event": "PAYMENT_SUCCESS",
  "ref_no": "YNA-QR-20260826-87421",
  "amount": 50000,
  "total_amount": 50350,
  "status": "SUCCESS",
  "paid_at": "2026-08-26T04:12:30.000Z",
  "note": "Pembelian Akun Premium #123",
  "signature": "a6b7c8d9e0f1..."
}
💡 Tips Respon Webhook: Pastikan endpoint server Anda mengembalikan HTTP status 200 OK dengan body {"status":"OK"} agar sistem YNA PAY mencatat notifikasi berhasil terkirim.