Refunds & Cancellations
Refund a paid payment in full or in part. Cancel a payment that has not been paid yet to close a link before it expires.
Which one do you need?
RefundThe customer already paid.
CancelThe customer never paid.
Create a refund
POST
/merchant/refunds| Parameter | Type | Required | Description |
|---|---|---|---|
paymentId | string | Required | The payment to refund. Must be PAID or PARTIAL_REFUND. |
amountMinor | string | Required | Amount in minor units. Cannot exceed the remaining refundable balance. |
reason | string | Optional | Free text, shown in your dashboard and audit log. |
bash
curl https://api.binkpay.net/merchant/refunds \
-H "Authorization: Bearer sk_test_..." \
-d '{
"paymentId": "pay_8f2a1c",
"amountMinor": "5000",
"reason": "Customer requested cancellation"
}'Partial refunds are cumulative
Several partial refunds against one payment are allowed while the total stays within the captured amount. Status becomes PARTIAL_REFUND after the first, and REFUNDED once fully refunded.
Refund statuses
A refund carries its own status, separate from the payment it belongs to.
| Status | Meaning | What to do |
|---|---|---|
| PENDING | Submitted to the rail, not yet settled | Wait — no action needed |
| COMPLETED | Funds returned to the customer | Close the case |
| REJECTED | The rail declined the refund | Contact support with the refund id |
GET
/merchant/refundsReturns your company's refunds, newest first.
Cancel an unpaid payment
POST
/merchant/payments/:id/cancelA paid payment cannot be cancelled
Cancel works only while the payment is still pending. Once the customer has paid, the only route back is a refund.
Was this page helpful?
