Refunds
On Flutterwave, you can refund a transaction easily with the API. To initiate a refund, send a request to the refund endpoint with the transaction ID in the URL. You can also specify the amount to be refunded in the body if you wish to make a partial refund. The refund amount will be deducted from your available balance. Additionally, you can attach a note to the refund by specifying comments
.
// Install with: npm i flutterwave-node-v3
const Flutterwave = require('flutterwave-node-v3');
const flw = new Flutterwave(process.env.FLW_PUBLIC_KEY, process.env.FLW_SECRET_KEY);
const response = await flw.Transaction.refund({
id: transactionId,
amount: amountToRefund,
comments: "Product out of stock.",
});
# Install with: gem install flutterwave_sdk
require 'flutterwave_sdk'
flw = Flutterwave.new(ENV["FLW_PUBLIC_KEY"], ENV["FLW_SECRET_KEY"], ENV["FLW_ENCRYPTION_KEY"])
transactions = Transactions.new(flw)
response = transactions.initiate_a_refund {
id: transaction_id,
amount: amount_to_refund,
comments: "Product out of stock.",
}
print response
curl --request POST 'https://api.flutterwave.com/v3/transactions/75923/refund' \
--header 'Authorization: Bearer YOUR_SECRET_KEY'\
--header 'Content-Type: application/json'\
--data-raw '{
"amount": 6900,
"comments": "Product out of stock."
}'
This will initiate the refund process and you'll get a response like this:
{
"status": "success",
"message": "Transaction refund initiated",
"data": {
"id": 75923,
"account_id": 73362,
"tx_id": 908790,
"flw_ref": "URF_1577867664541_3572735",
"wallet_id": 74639,
"amount_refunded": 6900,
"status": "completed",
"destination": "payment_source",
"meta": {
"source": "availablebalance"
},
"created_at": "2021-01-24T09:18:37.366Z"
}
}
Refunded transactions can have different status which depend on the payment type. Here are other refund status
Refund status | Explanation |
---|---|
completed | General status for completed refunds for cards and other payment types. |
completed-bank-transfer | Status for completed bank transfer refunds. |
completed-momo | Refund status for completed mobile money transactions. |
completed-mpgs | Refund status for completed card transactions. |
completed-offline | Status for refunds completed manually outside of the Flutterwave application eg Point-of-Sale or cash transactions. |
completed-preauth | A subset of completed-mpgs . This is the refund status of preauth card transactions. |
pending-momo | Status for pending mobile money refunds. |
processing | Status for refunds that are currently being treated. This is a transient state between initiated and completed refunds. |