API
Payment API
Payment API

API Documentation

API pembayaran untuk membuat QRIS dinamis, memeriksa status pembayaran, melihat saldo Member, dan melihat riwayat transaksi.

BASE URL https://your-domain.com

Authentication

Endpoint yang membutuhkan autentikasi harus mengirim API Key melalui HTTP header X-API-Key.

Header
X-API-Key: YOUR_API_KEY

API Key dapat dilihat oleh Member/Owner pada Dashboard.

Contoh request
curl https://your-domain.com/api/v1/member/balance \
  -H "X-API-Key: YOUR_API_KEY"
POST /api/v1/qris/create
Membuat transaksi QRIS dinamis untuk Buyer melalui Payment API.

Request Body

Parameter Type Required Keterangan
amount integer Yes Nominal pembayaran.
customer_name string No Nama Buyer.
customer_email string No Email Buyer.
customer_phone string No Nomor telepon Buyer.

Contoh Request

curl -X POST https://your-domain.com/api/v1/qris/create \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 2000,
    "customer_name": "Buyer",
    "customer_email": "buyer@example.com"
  }'

Response

{
  "success": true,
  "message": "QRIS berhasil dibuat.",
  "data": {
    "deposit_id": 10,
    "order_id": "DEP-XXXXXXXX",
    "reference": "DEV-XXXXXXXX",
    "amount": 2000,
    "fee": 764,
    "net_amount": 2000,
    "method": "qris",
    "status": "unpaid",
    "qr_string": "..."
  }
}
GET /api/v1/qris/{depositId}
Mengecek status pembayaran QRIS berdasarkan deposit ID.

Path Parameter

Parameter Type Keterangan
depositId integer ID transaksi pada Payment API.

Contoh Request

curl https://your-domain.com/api/v1/qris/10 \
  -H "X-API-Key: YOUR_API_KEY"

Response PAID

{
  "success": true,
  "message": "Status transaksi berhasil diperiksa.",
  "data": {
    "deposit_id": 10,
    "order_id": "DEP-XXXXXXXX",
    "reference": "DEV-XXXXXXXX",
    "amount": 2000,
    "fee": 764,
    "net_amount": 2000,
    "method": "qris",
    "status": "paid",
    "paid_at": "2026-08-29T18:28:43.000000Z"
  }
}
GET /api/v1/member/balance
Mengambil saldo Member/Owner berdasarkan API Key yang digunakan.

Contoh Request

curl https://your-domain.com/api/v1/member/balance \
  -H "X-API-Key: YOUR_API_KEY"

Response

{
  "success": true,
  "message": "Saldo berhasil diperiksa.",
  "data": {
    "user_id": 1,
    "balance": 12000
  }
}
GET /api/v1/member/transactions
Mengambil riwayat transaksi milik Member/Owner.

Query Parameter

Parameter Type Default Keterangan
page integer 1 Nomor halaman.
per_page integer 20 Maksimal 100 transaksi per halaman.

Contoh Request

curl "https://your-domain.com/api/v1/member/transactions?per_page=20" \
  -H "X-API-Key: YOUR_API_KEY"

Response

{
  "success": true,
  "message": "Riwayat transaksi berhasil diambil.",
  "data": {
    "current_page": 1,
    "data": [
      {
        "id": 10,
        "order_id": "DEP-XXXXXXXX",
        "reference": "DEV-XXXXXXXX",
        "amount": 2000,
        "fee": 764,
        "net_amount": 2000,
        "method": "qris",
        "status": "paid",
        "paid_at": "2026-08-29T18:28:43.000000Z",
        "created_at": "2026-08-29T18:26:29.000000Z"
      }
    ]
  }
}

Transaction Status

Status transaksi yang digunakan Payment API.

unpaid
QRIS dibuat tetapi belum dibayar.
paid
Pembayaran berhasil.
failed
Transaksi gagal.
pending
Transaksi masih diproses.
Alur pembayaran

Bot membuat QRIS melalui POST /api/v1/qris/create . Buyer melakukan pembayaran. Tripay mengirim callback ke Payment API. Setelah pembayaran tervalidasi, transaksi menjadi paid dan saldo Member diperbarui melalui ledger.