You can refund any payment you process with Finix, either fully or partially. You can refund buyers through the Finix Dashboard or API.
When you initiate a refund, the request is processed immediately and cannot be canceled. While there are no additional fees to process refunds, please note that the original processing and platform fees are not refunded.
Your customers will typically see the refund credited to their account within 5-10 business days, depending on their bank. In some cases, especially when refunds are issued shortly after the original charge, they may appear as reversals instead of refunds. A reversal removes the original charge from the customer's statement rather than showing up as a separate credit.
You can issue multiple partial refunds for a single transfer, but the total amount refunded cannot exceed the original transaction amount.
Similar to Transfers and capture requests, refunds appear as debits in Settlements (see Payouts). If the payout is too small to cover any refunds, Finix refunds the remaining amount by debiting the seller's bank account.
To refund a Transfer via API, create a reversal Transfer with the id of the original Transfer you want to refund.
If you are performing separate Authorizations and captures, you'll need to refund the Transfer that was created as part of capturing the Authorization. If you haven't captured it yet, void the Authorization instead.
- Sandbox serverhttps://finix.sandbox-payments-api.com/transfers/{transfer_id}/reversals
- Production serverhttps://finix.live-payments-api.com/transfers/{transfer_id}/reversals
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/transfers/TRnErBfrHLgdAi3BqAkWLN27/reversals \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-d '{
"refund_amount": 662154,
"tags": {
"test": "Refund"
}
}'A successful request returns a 201 Created status code, with the response body containing:
parent_transferrepresents theTransferthat was reversed.state:- Initially set to
PENDINGto indicate that the refund is still processing. - Changes to
SUCCEEDEDwhen the refund is processed.
- Initially set to
typeset toREVERSAL.
{
"id": "TRi87Kgx6NdZFXkQtLXQ9NMJ",
"created_at": "2025-08-05T17:22:50.40Z",
"updated_at": "2025-08-05T17:22:50.44Z",
"additional_buyer_charges": null,
"additional_healthcare_data": null,
"additional_purchase_data": null,
"address_verification": null,
"amount": 50,
"amount_requested": 50,
"application": "APc9vhYcPsRuTSpKD9KpMtPe",
"currency": "USD",
"destination": "PImXAVgkKVshKWWHUk4xXbve",
"externally_funded": "UNKNOWN",
"failure_code": null,
"failure_message": null,
"fee": 0,
"fee_profile": "FPmtT4MYmiAs1qjLjneQmk4d",
"idempotency_id": null,
"merchant": "MUcgYZswyRfqSSbvMsxuaHxZ",
"merchant_identity": "IDgCoio3FfaMSKPNM35atXPU",
"messages": [],
"operation_key": "CARD_NOT_PRESENT_REFUND",
"parent_transfer": "TRjAnCNNSxDCW8GDsxYobHHe",
"parent_transfer_trace_id": null,
"raw": null,
"ready_to_settle_at": null,
"receipt_last_printed_at": null,
"security_code_verification": null,
"source": null,
"split_transfers": [],
"state": "PENDING",
"statement_descriptor": "FLX*FINIX FLOWERS",
"subtype": "API",
"supplemental_fee": null,
"tags": {
"test": "Refund"
},
"tip_amount": null,
"trace_id": "d1cb23da-3368-473d-bf8e-68d8e093839b",
"type": "REVERSAL",
"_links": {
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
},
"self": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRi87Kgx6NdZFXkQtLXQ9NMJ"
},
"parent": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRjAnCNNSxDCW8GDsxYobHHe"
},
"destination": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PImXAVgkKVshKWWHUk4xXbve"
},
"merchant_identity": {
"href": "https://finix.sandbox-payments-api.com/identities/IDgCoio3FfaMSKPNM35atXPU"
},
"payment_instruments": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRi87Kgx6NdZFXkQtLXQ9NMJ/payment_instruments"
},
"fee_profile": {
"href": "https://finix.sandbox-payments-api.com/fee_profiles/FPmtT4MYmiAs1qjLjneQmk4d"
}
}
}The state will be SUCCEEDED when the refund finishes processing. Buyers will see the refund returned as a credit within 5-10 business days, depending on their bank. Refunds can’t get canceled once processed.
Refunds that include information about the original Transfer (i.e., the id) are also known as Referenced Refunds. These refund requests reference their original transactions explicitly.
For transactions where a card got physically used, Finix also enables merchants to create refunds without the information of the original Transfer. These Unreferenced Refunds can only get processed if the cardholder swipes their card to authorize the Transfer.
Below are the different scenarios that outline whether a user needs to swipe their card for a refund.
- Included in the open batch or not, the payment type was
credit, and the transaction is within 45 days. - If the payment type was
debitand the transaction is in the current open batch.
To perform the refund, reverse the original Transfer on the original Transfer:
- Sandbox serverhttps://finix.sandbox-payments-api.com/transfers/{transfer_id}/reversals
- Production serverhttps://finix.live-payments-api.com/transfers/{transfer_id}/reversals
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/transfers/TRnErBfrHLgdAi3BqAkWLN27/reversals \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-d '{
"device": "DVtk6E4eWHsMzgZXvFaaUigM",
"refund_amount": 150
}'A successful request returns a 201 Created status code, with the response body containing:
state:- Initially set to
PENDINGto indicate that the refund is still processing. - Changes to
SUCCEEDEDwhen the refund is processed.
- Initially set to
typeis set toREVERSAL.- Under
_links.parent, you can find the originalTransferthat was reversed.
{
"id": "TRh57kBu89GbiaPmQ243DMUV",
"created_at": "2024-12-23T05:54:03.62Z",
"updated_at": "2024-12-23T05:54:03.62Z",
"additional_buyer_charges": null,
"additional_healthcare_data": null,
"additional_purchase_data": null,
"address_verification": null,
"amount": 150,
"amount_requested": 150,
"application": "APeUbTUjvYb1CdPXvNcwW1wP",
"card_present_details": {
"emv_data": null,
"masked_account_number": null,
"name": null,
"brand": null,
"entry_mode": null,
"payment_type": "NONE",
"approval_code": null
},
"currency": "USD",
"destination": "PInUwPXf1MYj7xJ8jfmdksa5",
"device": "DVtk6E4eWHsMzgZXvFaaUigM",
"externally_funded": "UNKNOWN",
"failure_code": null,
"failure_message": null,
"fee": 0,
"idempotency_id": null,
"merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
"merchant_identity": "IDsbTBawhnLBAVeinRb84vFR",
"messages": [],
"raw": null,
"ready_to_settle_at": null,
"receipt_last_printed_at": null,
"security_code_verification": null,
"source": null,
"state": "SUCCEEDED",
"statement_descriptor": "FIN*FINIX FLOWERS",
"subtype": "API",
"tags": {},
"tip_amount": null,
"trace_id": "FNX9HJndPy6MvvHwRszcyPsPW",
"type": "REVERSAL",
"_links": {
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APeUbTUjvYb1CdPXvNcwW1wP"
},
"self": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRh57kBu89GbiaPmQ243DMUV"
},
"parent": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRn9pzzn1NVLdwwBwVrqSwAX"
},
"destination": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PInUwPXf1MYj7xJ8jfmdksa5"
},
"merchant_identity": {
"href": "https://finix.sandbox-payments-api.com/identities/IDsbTBawhnLBAVeinRb84vFR"
},
"payment_instruments": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRh57kBu89GbiaPmQ243DMUV/payment_instruments"
},
"fee_profile": {
"href": "https://finix.sandbox-payments-api.com/fee_profiles/FPrATYzpomaTRtdo2BssRoGx"
}
}
}- Details of the original transaction are not linked to the refund.
- The
Transferrefund essentially acts as a separate transaction, requiring the cardholder to swipe their card again. Unreferenced refunds are only available for transactions where a card got physically swiped. - Card-not-present transactions do not support unreferenced refunds (e.g., eCommerce transactions).
To perform the unreferenced refund, create a transfer with operation_key: CARD_PRESENT_UNREFERENCED_REFUND.
- If the payment type is debit and the transaction is no longer in the batch.
- If the payment type is credit and the transaction is no longer in the batch and older than 45 days.
- Sandbox serverhttps://finix.sandbox-payments-api.com/transfers
- Production serverhttps://finix.live-payments-api.com/transfers
curl -i -X POST \
-u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
https://finix.sandbox-payments-api.com/transfers \
-H 'Content-Type: application/json' \
-H 'Finix-Version: 2022-02-01' \
-d '{
"amount": 150,
"currency": "USD",
"device": "DVoDo7F6yYCnX2d6Fj9hvsd",
"operation_key": "CARD_PRESENT_UNREFERENCED_REFUND"
}'A successful request returns a 201 Created status code, with the response body containing:
operation_keyis set toCARD_PRESENT_UNREFERENCED_REFUND, mimicking the request body parameter.state:- Initially set to
PENDINGto indicate that the refund is still processing. - Changes to
SUCCEEDEDwhen the refund is processed.
- Initially set to
typeis set toCREDITorDEBITbased on the original transfer type, rather thanREVERSAL.
Unlike referenced refunds, there is no _links.parent property to indicate the parent transfer, as a new Transfer was created instead of reversing an existing one.
{
"id": "TRo5JpCqMY26ufvRdTJ8715j",
"created_at": "2025-11-19T20:31:16.48Z",
"updated_at": "2025-11-19T20:31:16.48Z",
"additional_buyer_charges": null,
"additional_healthcare_data": null,
"additional_purchase_data": null,
"address_verification": null,
"amount": 150,
"amount_requested": 150,
"application": "APc9vhYcPsRuTSpKD9KpMtPe",
"card_present_details": {
"emv_data": {
"application_identifier": "A0000000041010",
"application_label": "Mastercard Debit",
"application_preferred_name": null,
"application_transaction_counter": "01D2",
"cryptogram": "ARQC 579B6893AADF6245",
"issuer_code_table_index": null,
"network_emv_response": null,
"pin_verified": false,
"tags": null
},
"masked_account_number": "523499******4130",
"name": null,
"brand": "UNKNOWN",
"entry_mode": "CONTACTLESS",
"payment_type": "CREDIT",
"approval_code": "674313",
"digital_signature_file_id": null
},
"currency": "USD",
"destination": "PInqirmUHFh1FmPNa8reirAb",
"device": "DVoDo7F6yYCnX2d6Fj9hvsd",
"externally_funded": "UNKNOWN",
"failure_code": null,
"failure_message": null,
"fee": 0,
"fee_profile": "FPmtT4MYmiAs1qjLjneQmk4d",
"idempotency_id": null,
"ip_address_details": null,
"merchant": "MUsMvN47nRtdgUkE23SRHDC6",
"merchant_identity": "IDgu8uaRpVnfSEcRcZFXqpjK",
"messages": [],
"network_details": null,
"operation_key": "CARD_PRESENT_UNREFERENCED_REFUND",
"parent_transfer": null,
"parent_transfer_trace_id": null,
"raw": null,
"ready_to_settle_at": "2025-11-20T20:32:38.76Z",
"receipt_last_printed_at": null,
"security_code_verification": null,
"source": null,
"split_transfers": [],
"state": "SUCCEEDED",
"statement_descriptor": "FLX*FINIX FLOWERS",
"subtype": "API",
"supplemental_fee": null,
"tags": {},
"third_party_details": null,
"tip_amount": null,
"trace_id": "23f1fdf9-2783-4bbe-8de2-afd7a7502aad",
"type": "CREDIT",
"_links": {
"application": {
"href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
},
"self": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRo5JpCqMY26ufvRdTJ8715j"
},
"merchant_identity": {
"href": "https://finix.sandbox-payments-api.com/identities/IDgu8uaRpVnfSEcRcZFXqpjK"
},
"device": {
"href": "https://finix.sandbox-payments-api.com/devices/DVoDo7F6yYCnX2d6Fj9hvsd"
},
"payment_instruments": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRo5JpCqMY26ufvRdTJ8715j/payment_instruments"
},
"reversals": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRo5JpCqMY26ufvRdTJ8715j/reversals"
},
"fees": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRo5JpCqMY26ufvRdTJ8715j/fees"
},
"disputes": {
"href": "https://finix.sandbox-payments-api.com/transfers/TRo5JpCqMY26ufvRdTJ8715j/disputes"
},
"destination": {
"href": "https://finix.sandbox-payments-api.com/payment_instruments/PInqirmUHFh1FmPNa8reirAb"
},
"fee_profile": {
"href": "https://finix.sandbox-payments-api.com/fee_profiles/FPmtT4MYmiAs1qjLjneQmk4d"
}
}
}