v1.0

Dokumentasi API Payinaja

Integrasikan sistem pembayaran QRIS ke dalam aplikasi Anda.

NAVIGASI CEPAT

Base URL

https://payinaja.web.id/api/v1

Autentikasi

Setiap request wajib menyertakan API Key di header. Dapatkan di halaman API Key Management.

HEADER x-api-key
FORMAT sk_live_xxxx...

Contoh Penggunaan:

curl -X POST https://payinaja.web.id/api/v1/qris/create \
  -H "x-api-key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"amount": 15000}'

Kode HTTP Response

Code Arti Penjelasan
200 Sukses Request berhasil diproses.
400 Bad Request Parameter tidak valid (nominal kurang dari minimum, dll).
401 Unauthorized API Key tidak ada atau salah.
404 Not Found Transaksi tidak ditemukan.
500 Server Error Kesalahan server, coba lagi nanti.
POST /api/v1/qris/create
Buat Pembayaran QRIS

Membuat QR Code dinamis untuk menerima pembayaran. QRIS berlaku 15 menit.

Request Body (JSON)
Parameter Tipe Wajib Keterangan
amount Integer Ya Nominal tagihan (Rp). Min Rp 100. Fee 0.7% otomatis.
reference_id String Tidak ID referensi dari sistem Anda (invoice dll).
customer_name String Tidak Nama pelanggan untuk pencatatan.
Contoh Request
curl -X POST https://payinaja.web.id/api/v1/qris/create \
  -H "x-api-key: sk_live_XXXXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 15000,
    "reference_id": "INV-001",
    "customer_name": "Budi Santoso"
  }'
Response 200 OK
{
  "success": true,
  "message": "QRIS berhasil dibuat",
  "data": {
    "payinaja_trx_id": "TRX-1774870130449-6ND",
    "merchant_ref": "INV-001",
    "amount_requested": 15000,
    "fee": 105,
    "total_amount": 15105,
    "qris_string": "000201010212...",
    "qris_image_url": "https://quickchart.io/qr?text=...&size=300",
    "status": "pending"
  }
}
GET /api/v1/transaction/{trx_id}
Cek Status Transaksi

Mengecek status pembayaran. Gunakan ini untuk polling setelah membuat QRIS.

Path Parameter
Parameter Tipe Keterangan
trx_id String Nilai payinaja_trx_id dari response buat QRIS.
Contoh Request
curl -X GET https://payinaja.web.id/api/v1/transaction/TRX-1774870130449-6ND \
  -H "x-api-key: sk_live_XXXXXX"
Response 200 OK
{
  "success": true,
  "data": {
    "trx_id": "TRX-1774870130449-6ND",
    "merchant_ref": "INV-001",
    "status": "success",
    "net_amount": 15000,
    "fee": 105,
    "total_amount": 15105,
    "payment_method": "QRIS",
    "created_at": "2026-03-30T11:29:35+00:00"
  }
}
Nilai Field status
Nilai Arti
pending Menunggu pembayaran atau belum terkonfirmasi.
success Pembayaran berhasil, saldo merchant sudah bertambah.
failed Pembayaran gagal atau kadaluarsa.
GET /api/v1/transactions
Riwayat Transaksi

Daftar transaksi terbaru milik akun Anda.

Query Parameter
Parameter Tipe Default Keterangan
limit Integer 10 Jumlah transaksi yang ingin diambil.
Contoh Request
curl -X GET "https://payinaja.web.id/api/v1/transactions?limit=5" \
  -H "x-api-key: sk_live_XXXXXX"
Response 200 OK
{
  "success": true,
  "data": [
    {
      "trx_id": "TRX-1774870130449-6ND",
      "type": "deposit",
      "amount": 15105,
      "status": "success",
      "payment_method": "QRIS",
      "created_at": "2026-03-30T11:29:35+00:00"
    }
  ]
}
GET /api/v1/profile
Profil & Saldo Akun

Ambil informasi profil dan saldo merchant Anda.

Contoh Request
curl -X GET https://payinaja.web.id/api/v1/profile \
  -H "x-api-key: sk_live_XXXXXX"
Response 200 OK
{
  "success": true,
  "data": {
    "full_name": "Budi Santoso",
    "email": "[email protected]",
    "phone": "081234567890",
    "balance": 250000,
    "status": "approved"
  }
}

Tips & Keamanan

Tips Testing
  • Gunakan nominal kecil (Rp 100) untuk test.
  • Simpan payinaja_trx_id untuk polling status.
  • Cek /profile untuk verifikasi API Key.
  • Gunakan reference_id unik per transaksi.
Keamanan
  • Jangan bagikan API Key ke siapapun.
  • Simpan API Key di environment variable.
  • Jika Key bocor, segera regenerate.
  • Selalu gunakan HTTPS di production.
Payinaja API v1.0 — Dokumentasi berlaku untuk semua merchant terdaftar.