Refunds

You can refund your customers directly by using the Paystack Refund API

Creating a refund

You'll just need to send a POST request to the Create RefundAPI endpoint and pass the transaction ID or reference in the transaction field.

To initiate a partial refund, you enter the amount you want to refund in the amount field.

Maximum refund amount
The refund amount must not be more than the original transaction amount.
Show Response
1curl https://api.paystack.co/refund
2 -H 'authorization: Bearer YOUR_SECRET_KEY'
3 -H 'cache-control: no-cache'
4 -H 'content-type: application/json'
5 -d '{ "transaction":"qufywna9w9a5d8v", "amount":"10000" }
6 -X POST
7
1{
2 "status": true,
3 "message": "Refund has been queued for processing",
4 "data": {
5 "transaction": {
6 "id": 627178582,
7 "reference": "qufywna9w9a5d8v",
8 "amount": 20000,
9 "paid_at": "2020-04-17T14:41:37.000Z",
10 "channel": "card",
11 "currency": "NGN",
12 "authorization": {
13 "exp_month": null,
14 "exp_year": null,
15 "account_name": null
16 },
17 "customer": {},
18 "plan": {},
19 "subaccount": {},
20 "order_id": null,
21 "paidAt": "2020-04-17T14:41:37.000Z"
22 },
23 "integration": 428626,
24 "deducted_amount": 0,
25 "channel": null,
26 "merchant_note": "Refund for transaction qufywna9w9a5d8v by [email protected]",
27 "customer_note": "Refund for transaction qufywna9w9a5d8v",
28 "status": "pending",
29 "refunded_by": "[email protected]",
30 "expected_at": "2020-05-28T11:12:17.606Z",
31 "currency": "NGN",
32 "domain": "test",
33 "amount": 10000,
34 "fully_deducted": false,
35 "id": 747680,
36 "createdAt": "2020-05-19T11:12:17.756Z",
37 "updatedAt": "2020-05-19T11:12:17.756Z"
38 }
39}

List Refunds

To pull a list of your refunds, you can use the List RefundsAPI endpoint.

Show Response
1curl https://api.paystack.co/refund
2-H 'authorization: Bearer YOUR_SECRET_KEY'
3-H 'cache-control: no-cache'
4-H 'content-type: application/json'
5-X GET
1{
2 "status": true,
3 "message": "Refunds retrieved",
4 "data": [
5 {
6 "integration": 428626,
7 "transaction": 627178582,
8 "dispute": null,
9 "settlement": null,
10 "id": 747680,
11 "domain": "test",
12 "currency": "NGN",
13 "amount": 10000,
14 "status": "processed",
15 "refunded_at": null,
16 "refunded_by": "[email protected]",
17 "customer_note": "Refund for transaction qufywna9w9a5d8v",
18 "merchant_note": "Refund for transaction qufywna9w9a5d8v by [email protected]",
19 "deducted_amount": 10000,
20 "fully_deducted": true,
21 "createdAt": "2020-05-19T11:12:17.000Z"
22 },
23 {
24 "integration": 428626,
25 "transaction": 640672957,
26 "dispute": null,
27 "settlement": null,
28 "id": 742609,
29 "domain": "test",
30 "currency": "NGN",
31 "amount": 20000,
32 "status": "processed",
33 "refunded_at": null,
34 "refunded_by": "[email protected]",
35 "customer_note": "blah blah",
36 "merchant_note": "yada yada",
37 "deducted_amount": 20000,
38 "fully_deducted": true,
39 "createdAt": "2020-04-30T10:43:47.000Z"
40 }
41 ],
42 "meta": {
43 "total": 2,
44 "skipped": 0,
45 "perPage": 50,
46 "page": 1,
47 "pageCount": 1
48 }
49}