The refund request endpoint allow you to refund a charge that has previously been processed but not yet refunded. Funds will be refunded to the credit / debit card or mobile money wallet that was originally charged.
The ability to process a refund has the following limitations:
The URL to our RequestRefund API is either:
Bearer Token : Use token generated during authentication.
Accept: The response format, which is required for operations with a response body.
Content-Type: The request format, which is required for operations with a request body.
Parameter | Required | Description |
---|---|---|
Accept | Required |
Should be set to application/json |
Content-Type | Required |
Should be set to application/json |
Parameter | Type | Required | Description |
---|---|---|---|
confirmation_code | String | Required |
This refers to payment confirmation code that was returned by the processor |
amount | Float | Required |
Amount to be refunded. |
username | String | Required |
Identity of the user who has initiated the refund. |
remarks | String | Required |
A brief description on the reason for the refund. |
{ "confirmation_code": "AA11BB22", "amount": "100.00", "username": "John Doe", "remarks": "Service not offered" }
After successfully placing a refund request, a request will be sent to our finance team to start processing the refund.
Name | Type | Description |
---|---|---|
error | Integer | 200 - Refund received successfully and is being processed. 500 - Refund rejected. |
message | String | A brief summary of the response received. |
Status 200 mean your request to process the refund has been received successfully. However, please note that this does not mean the refund has been effected. Pesapal has to get the go ahead from the merchant before finalising the refund.
Status 500 mean your request to process the refund was rejected for one reason or another. Refer to the error message for more details.
{ "status": "200", "message": "Refund request successfully" }