Chiwa Pay

Create Payment

Membuat satu atau banyak transaksi pembayaran melalui API.

POST/api/payments

Membuat transaksi pembayaran. Request dapat berisi satu transaksi atau bulk melalui field payments.

Headers

HeaderWajibKeterangan
AuthorizationYaBearer sk_xxx
Content-TypeYaapplication/json
Idempotency-KeyTidakID unik untuk request tunggal. Untuk bulk, gunakan payments[].idempotency_key.

Body Fields

FieldTypeWajibKeterangan
amountintegerYa untuk request tunggalNominal order.
currencystringTidakDefault IDR.
payment_methodstringTidakDefault qris. Saat ini hanya qris yang didukung.
merchant_reference_idstringTidakID order di sistem merchant.
customerobjectTidakData pelanggan.
metadataobjectTidakData tambahan dari merchant.
paymentsarrayTidakDaftar transaksi untuk bulk create. Maksimal 50 item per request.
payments[].idempotency_keystringDisarankanID unik per item bulk.

Payment Method Fields

FieldKeterangan
payment_methodKode metode pembayaran. Jika dikosongkan, maka akan dianggap sebagai qris.
qris_payloadPayload pembayaran pada response QRIS.
qris_image_urlURL gambar QR pada response QRIS.

Single Request Example

cURL
curl -X POST "<origin>/api/payments" \  -H "Authorization: Bearer sk_xxx" \  -H "Content-Type: application/json" \  -H "Idempotency-Key: AMEKURUMIN12345" \  -d '{  "amount": 150000,  "payment_method": "qris",  "merchant_reference_id": "ORDER-1024",  "customer": {    "name": "Nara",    "email": "nara@example.com"  }}'

Bulk Request Example

cURL
curl -X POST "<origin>/api/payments" \  -H "Authorization: Bearer sk_xxx" \  -H "Content-Type: application/json" \  -d '{  "payments": [    {      "amount": 150000,      "payment_method": "qris",      "merchant_reference_id": "ORDER-1024",      "idempotency_key": "ORDER-1024"    },    {      "amount": 89000,      "payment_method": "qris",      "merchant_reference_id": "ORDER-1025",      "idempotency_key": "ORDER-1025"    }  ]}'

Single Response

{
  "payment": {
    "id": "f2b1d5b0-7b1f-4c5d-9c37-93f0c8f6a001",
    "reference_id": "PAY-LXAMPLE",
    "merchant_reference_id": "ORDER-1024",
    "payment_method_code": "qris",
    "provider": "gopay",
    "currency": "IDR",
    "amount": 150000,
    "fee_amount": 1050,
    "net_amount": 150000,
    "total_amount": 151050,
    "status": "pending",
    "qris_payload": "000201010212...",
    "qris_image_url": "<qris_image_url>",
    "expires_at": "2026-05-19T10:30:00Z",
    "created_at": "2026-05-19T10:00:00Z",
    "updated_at": "2026-05-19T10:00:00Z"
  }
}

Bulk Response

{
  "payments": [
    {
      "id": "f2b1d5b0-7b1f-4c5d-9c37-93f0c8f6a001",
      "reference_id": "PAY-LXAMPLE",
      "merchant_reference_id": "ORDER-1024",
      "payment_method_code": "qris",
      "amount": 150000,
      "fee_amount": 1050,
      "net_amount": 150000,
      "total_amount": 151050,
      "status": "pending",
      "expires_at": "2026-05-19T10:30:00Z"
    }
  ]
}

Response Fields

FieldKeterangan
payment.id / payments[].idUUID transaksi.
payment.reference_id / payments[].reference_idID transaksi dari Chiwa Pay.
payment.merchant_reference_idID order dari merchant.
payment.payment_method_codeMetode pembayaran.
payment.amountNominal order.
payment.fee_amountBiaya pembayaran.
payment.net_amountGross amount yang diterima merchant.
payment.total_amountNominal yang harus dibayar pelanggan.
payment.statusStatus transaksi.
payment.expires_atBatas waktu pembayaran; setelah melalui, transaksi pending menjadi expired.

Fee Payer

ValuePelanggan bayarMerchant menerima
buyeramount + fee_amountamount
merchantamountamount - fee_amount

QRIS dibuat dinamis dari provider dan divalidasi menggunakan ID transaksi provider, bukan pencocokan nominal.

HTTP Error Code

HTTPCodeKeterangan
400invalid_jsonBody bukan JSON valid.
400invalid_amountamount harus lebih dari 0.
400invalid_bulk_sizepayments harus berisi 1 sampai 50 item.
400unsupported_payment_methodPayment method tidak didukung.
400payment_create_failedTransaksi gagal dibuat.
401invalid_api_keySecret key tidak valid.
403merchant_not_approvedMerchant belum aktif.
429rate_limitedRate limit terlampaui.

Di halaman ini