AryaPay REST API v2

Dokumentasi Integrasi API AryaPay

Integrasikan gerbang pembayaran QRIS otomatis ke dalam aplikasi, bot, toko online, atau platform Anda dengan mudah menggunakan HTTP request standar.

A. Persiapan & Autentikasi API

Sebelum dapat melakukan request ke endpoint API AryaPay, pastikan:

  1. Verifikasi Identitas (KYC): Lengkapi data KTP di menu Verifikasi KYC. Status akun harus Approved.
  2. Dapatkan Kredensial Project (Wajib): Buat project di menu Kelola Project untuk mendapatkan Project ID (contoh: PRJ_1A181F56180) dan API Key Project. Kedua parameter ini wajib disertakan pada setiap request API.

Format Parameter Autentikasi (Project ID & API Key Wajib):

Mode 1: Parameter URL / Query (Wajib Keduanya)?project=PRJ_XXXXX&apikey=ARYAPAY_XXXXX
Mode 2: HTTP Headers (Wajib Keduanya)X-PROJECT-ID: PRJ_XXXXXX-API-KEY: ARYAPAY_XXXXX

B. Mode Sandbox & Lingkungan Pengujian (Testing)

SANDBOX API

AryaPay menyediakan lingkungan Sandbox penuh agar developer dapat menguji seluruh siklus transaksi pembayaran—mulai dari pembuatan tagihan, scan QRIS uji coba, hingga pengiriman webhook callback—tanpa melibatkan uang riil dan tanpa perlu menunggu verifikasi KYC.

Format API Key SandboxARYAPAY_SB_XXXXXXXXXXXXXX

Cukup tambahkan prefix _SB_ pada API Key Anda, atau salin langsung dari menu Kelola Project.

Keunggulan Mode Sandbox
  • Tanpa Uang Asli: Transaksi bersifat virtual 100%.
  • Tanpa Syarat KYC: Akun baru langsung bisa test API.
  • Simulasi 1-Klik: Bayar instan via button atau API.
  • Live Webhook: Memicu notifikasi ke server Anda.
GET/api/balance

1. Cek Saldo Akun (Balance)

Memeriksa saldo utama dan saldo tertunda dari akun pemilik API Key.

const axios = require('axios');

const res = await axios.get('https://aryapay.com/api/balance', {
  params: {
    project: 'PRJ_your_project_id', // Wajib
    apikey: 'ARYAPAY_your_api_key'  // Wajib
  }
});
console.log(res.data);
Contoh Response JSON
{
  "project_id": "PRJ_1A181F56180",
  "project_name": "Toko Game Online",
  "username": "budi_santoso",
  "email": "budi@gmail.com",
  "balance": 150000,
  "pending_balance": 50000
}
GET / POST/api/invoice

2. Buat Tagihan QRIS (Create Invoice)

Membuat transaksi pembayaran QRIS baru dan mengembalikan payment link serta gambar QR code.

const axios = require('axios');

const res = await axios.post('https://aryapay.com/api/invoice', {
  amount: 50000
}, {
  headers: {
    'X-PROJECT-ID': 'PRJ_your_project_id', // Wajib
    'X-API-KEY': 'ARYAPAY_your_api_key'    // Wajib
  }
});
console.log(res.data);
Contoh Response JSON
{
  "status": "success",
  "invoice_id": "INV9a8b7c6d5e",
  "amount": 50000,
  "fee": 125,
  "total": 50125,
  "payment_link": "https://aryapay.com/payment/INV9a8b7c6d5e",
  "qris_image": "https://...",
  "expired_at": "2026-10-29T12:00:00.000Z"
}
GET/api/invoice/status

3. Cek Status Tagihan (Invoice Status)

Memeriksa status pembayaran sebuah invoice (pending, paid, expired, cancelled).

curl -X GET "https://aryapay.com/api/invoice/status?apikey=ARYAPAY_your_api_key&id=INV9a8b7c6d5e"
Contoh Response JSON
{
  "invoice_id": "INV9a8b7c6d5e",
  "status": "paid",
  "amount": 50000,
  "total": 50125,
  "completed_at": "2026-10-28T18:05:00.000Z"
}
POST/api/sandbox/simulate-payment

4. Simulator Pembayaran Sandbox (Payment Simulator)

Mensimulasikan pembayaran lunas pada transaksi sandbox secara instan dan memicu pengiriman Webhook Callback ke server merchant.

curl -X POST "https://aryapay.com/api/sandbox/simulate-payment" \
  -H "Content-Type: application/json" \
  -d '{"invoice_id": "INV_SB_9a8b7c6d5e"}'
Contoh Response Simulator & Status Webhook
{
  "status": "success",
  "sandbox": true,
  "message": "Pembayaran tagihan sandbox berhasil disimulasikan!",
  "invoice": {
    "id": "INV_SB_9a8b7c6d5e",
    "amount": 10000,
    "fee": 142,
    "total": 10142,
    "status": "success"
  },
  "webhook": {
    "attempted": true,
    "target_url": "https://domainanda.com/api/payment-callback",
    "success": true,
    "http_status": 200,
    "latency_ms": 134
  }
}

5. Spesifikasi Webhook Callback

Format HTTP POST request yang dikirimkan AryaPay ke server Anda saat sebuah transaksi berstatus sukses/lunas.

HTTP Request Headers
Content-Type: application/json
User-Agent: AryaPay-Sandbox-Webhook/2.0
X-AryaPay-Event: payment.success
X-AryaPay-Sandbox: true
Payload Body JSON
{
  "event": "payment.success",
  "sandbox": true,
  "data": {
    "invoice_id": "INV_SB_9a8b7c6d5e",
    "project_id": "PRJ_1A181F56180",
    "project_name": "Toko Game Online",
    "reference": "INV_SB_9a8b7c6d5e",
    "amount": 10000,
    "fee": 142,
    "total": 10142,
    "status": "success",
    "paid_at": "2026-10-28T18:30:00.000Z"
  },
  "timestamp": "2026-10-28T18:30:00.000Z"
}
Catatan Integrasi: Server Anda diharapkan merespon dengan status code 200 OK dengan body {"status": "ok"} dalam waktu maksimal 5 detik.