Paymenku Docs
Referensi APIAksi transaksi

Refund transaksi

POST
/transaction/refund

Mengembalikan dana transaksi yang sudah paid.

  • Hanya transaksi paid yang dapat di-refund; status lain dibalas 422.
  • refund_amount tidak boleh melebihi nominal transaksi.
  • Di produksi, refund hanya tersedia untuk sebagian transaksi e-wallet.
  • Transaksi sandbox di-refund secara lokal tanpa memanggil penyedia dan tanpa memotong saldo nyata.

Status berubah menjadi refunded. Saldo merchant di debit sebesar refund_amount bila saldo mencukupi.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Kirim kunci API sebagai bearer token pada header Authorization, dengan format Bearer YOUR_APIKEY.

Ada dua jenis kunci:

  • sk_live_ — produksi. Transaksi nyata, dan butuh KYC yang sudah disetujui.
  • sk_test_ — sandbox. Tanpa perpindahan dana, tanpa syarat KYC.

Ambil kunci di Dashboard Merchant, menu Settings lalu API Keys.

Kunci API adalah kredensial rahasia: simpan di environment variable atau secret manager. Jangan pernah menaruhnya di frontend, aplikasi mobile, atau repositori publik.

Request Body

application/json
  1. body
trx_id*string

ID transaksi Paymenku.

refund_amount*number

Nominal yang dikembalikan, tidak melebihi nominal transaksi.

Range1 <= value
reason?string

Alasan refund, diteruskan ke penyedia.

Lengthlength <= 255

Response Body

Refund diterima.

application/json
  1. response
status?string
message?string
data?
Example Request
curl -X POST 'https://paymenku.com/api/v1/transaction/refund' \  -H 'Content-Type: application/json' \  -d '{  "trx_id": "IDP202610271005426934",  "refund_amount": 25950,  "reason": "Pesanan dibatalkan pelanggan"}'
Example Response
{  "status": "success",  "message": "Transaction refunded successfully",  "data": {    "trx_id": "IDP202610271005426934",    "status": "refunded",    "refund_amount": 25950,    "merchant_refund_no": "REF20261027104512345678"  }}