Overview
Payaza provides separate flows for two types of payment reversals:- Refunds — merchant-initiated reversals of completed transactions. You initiate these when a customer requests a return or the order cannot be fulfilled.
- Chargebacks — customer-initiated disputes raised through their card issuer. Payaza notifies you and you can accept or reject the dispute through the API.
Key Requirements
Use your public API key encoded in Base64. See the Authentication guide for setup instructions.
Endpoints
Refunds
| Method | Endpoint | Description |
|---|---|---|
POST | /refund-chargeback/refund/merchant/api/refund | Initiate a refund on a completed transaction |
GET | /refund-chargeback/refund/merchant/api/refund_history | List refund history with optional date/status filters |
Chargebacks
| Method | Endpoint | Description |
|---|---|---|
GET | /refund-chargeback/chargeback/merchant/api/chargeback_requests | List open and resolved chargeback requests |
POST | /refund-chargeback/chargeback/merchant/api/accept_reject_chargeback | Accept or reject a chargeback dispute |
GET | /refund-chargeback/chargeback/merchant/api/chargeback_transaction_history | Full transaction-level chargeback history |
Refund flow
Identify the transaction
Retrieve the
transaction_reference of the completed transaction you want to refund. Verify the transaction status is "Completed" before initiating a refund.Submit the refund
Call the Refund endpoint with the
transaction_reference and the amount to refund. Partial refunds are supported — the refund_amount must not exceed the original transaction amount.Initiate a refund
List refund history
cURL
| Parameter | Required | Description |
|---|---|---|
page | Yes | Page number (starts at 1) |
size | Yes | Records per page |
refund_status | Yes | Filter by status: SUCCESS, Initialized |
from | No | Start date — format YYYY-MM-DD |
to | No | End date — format YYYY-MM-DD |
currency | No | Filter by currency code (e.g. NGN, USD) |
Chargeback flow
Receive the chargeback notification
Payaza notifies you of a new chargeback via a webhook, or you can poll the List Chargeback Requests endpoint to check for open disputes.
Review the dispute
Examine the transaction details, order records, and any evidence that the transaction was legitimate and authorized by the cardholder.
List chargeback requests
Retrieve all open and resolved chargeback requests for your account.cURL
Accept or reject a chargeback
Respond to a chargeback with your decision. Use"ACCEPT" to concede the dispute and allow the reversal, or "REJECT" to contest it with a reason.
cURL
| Parameter | Type | Required | Description |
|---|---|---|---|
chargeback_reference | string | Yes | The chargeback reference from the List Chargeback Requests response |
decision | string | Yes | Your response — "ACCEPT" or "REJECT" |
reason | string | Yes | Explanation supporting your decision |
Chargeback transaction history
Retrieve a full transaction-level history of all chargeback activity on your account.cURL
Best practices
- Restrict access — Only authorized roles (e.g. finance ops, not frontline support) should be able to initiate refunds or respond to chargebacks
- Keep an audit trail — Log every refund initiation and chargeback response, including who triggered it and when
- Align with customer support tools — Connect refund and chargeback statuses to your CRM or ticketing system so support agents have real-time visibility
- Respond to chargebacks promptly — Card networks impose time limits for merchant responses; missing the window typically results in an automatic loss
What’s next
Card Collections
Understand the original card charge flow before handling reversals.
Auth, Capture & Void
Void a pre-authorization before capture to avoid the need for a refund.