# Refunds You can refund any payment you process with Finix, either fully or partially. You can refund buyers through the Finix Dashboard or [API](#refund-with-the-api). ## Refund Mechanics 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](/guides/after-the-payment/payouts)). If the payout is too small to cover any refunds, Finix refunds the remaining amount by debiting the seller's bank account. ## Refund with the API To refund a `Transfer` via API, [create a reversal `Transfer`](/api/transfers/createtransferreversal) with the `id` of the original `Transfer` you want to refund. Refunds in Auth and Capture Flows If you are performing [separate `Authorizations` and captures](/guides/online-payments/payment-features/auth-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`](/guides/online-payments/payment-features/auth-and-captures#void-an-authorization) instead. #### Request Example API Definition #### Response 201 Created - The Transfer was successfully reversed. A successful request returns a `201 Created` status code, with the response body containing: - `parent_transfer` represents the `Transfer` that was reversed. - `state`: - Initially set to `PENDING` to indicate that the refund is still processing. - Changes to `SUCCEEDED` when the refund is processed. - `type` set to `REVERSAL`. Example Transfer - Reversal { "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", // [!code highlight] "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", // [!code highlight] "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", // [!code highlight] "_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" } } } API Definition 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. ## Refunding Card Present Payments Refunds that include information about the original `Transfer` (i.e., the `id`) are also known as [Referenced Refunds](#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](#unreferenced-refunds) can only get processed if the cardholder swipes their card to authorize the `Transfer`. ### Referenced Refunds 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 `debit` and the transaction is in the current open batch. #### Request To perform the refund, [reverse the original Transfer](/api/transfers/createtransferreversal) on the original `Transfer`: Example API Definition #### Response 201 Created - Card-Present Transfer was successfully reversed. A successful request returns a `201 Created` status code, with the response body containing: - `state`: - Initially set to `PENDING` to indicate that the refund is still processing. - Changes to `SUCCEEDED` when the refund is processed. - `type` is set to `REVERSAL`. - Under `_links.parent`, you can find the original `Transfer` that was reversed. Example Reversed Card-Present Transfer Referencing Parent { "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", // [!code highlight] "statement_descriptor": "FIN*FINIX FLOWERS", "subtype": "API", "tags": {}, "tip_amount": null, "trace_id": "FNX9HJndPy6MvvHwRszcyPsPW", "type": "REVERSAL", // [!code highlight] "_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" } } } API Definition ### Unreferenced Refunds - Details of the original transaction are not linked to the refund. - The `Transfer` refund 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 unreference refund, [create a transfer](/api/transfers/createtransfer) 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. #### Request Example API Definition #### Response 201 Created - A new Transfer was created to process the refund. A successful request returns a `201 Created` status code, with the response body containing: - `operation_key` is set to `CARD_PRESENT_UNREFERENCED_REFUND`, mimicking the request body parameter. - `state`: - Initially set to `PENDING` to indicate that the refund is still processing. - Changes to `SUCCEEDED` when the refund is processed. - `type` is set to `CREDIT` or `DEBIT` based on the original transfer type, rather than `REVERSAL`. 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. Example Card Present Transfer without Parent Reference { "id": "TRaWgycn5FEpESUkkFaC6tMx", "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": "APc9vhYcPsRuTSpKD9KpMtPe", "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": "PIdk3BzKSmtMXAN42W6mvD3Y", "device": "DVf2H8sh4LZZC52GTUrwCPPf", "externally_funded": "UNKNOWN", "failure_code": null, "failure_message": null, "fee": 0, "idempotency_id": null, "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm", "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H", "messages": [], "operation_key": "CARD_PRESENT_UNREFERENCED_REFUND", // [!code highlight] "raw": null, "ready_to_settle_at": null, "security_code_verification": null, "source": null, "state": "SUCCEEDED", // [!code highlight] "statement_descriptor": "FIN*FINIX FLOWERS", "subtype": "API", "tags": { "order_number": "testing123" }, "trace_id": "FNXoXopxGC9Bk8cwmiHRxBUaV", "type": "CREDIT", // [!code highlight] "_links": { "application": { "href": "https://finix.sandbox-payments-api.com/applications/APeUbTUjvYb1CdPXvNcwW1wP" }, "self": { "href": "https://finix.sandbox-payments-api.com/transfers/TR7PnzegtJ1uk9Zpc7Gny7G6" }, "merchant_identity": { "href": "https://finix.sandbox-payments-api.com/identities/IDsbTBawhnLBAVeinRb84vFR" }, "device": { "href": "https://finix.sandbox-payments-api.com/devices/DVf2H8sh4LZZC52GTUrwCPPf" }, "payment_instruments": { "href": "https://finix.sandbox-payments-api.com/transfers/TR7PnzegtJ1uk9Zpc7Gny7G6/payment_instruments" }, "reversals": { "href": "https://finix.sandbox-payments-api.com/transfers/TR7PnzegtJ1uk9Zpc7Gny7G6/reversals" }, "fees": { "href": "https://finix.sandbox-payments-api.com/transfers/TR7PnzegtJ1uk9Zpc7Gny7G6/fees" }, "disputes": { "href": "https://finix.sandbox-payments-api.com/transfers/TR7PnzegtJ1uk9Zpc7Gny7G6/disputes" }, "destination": { "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIdk3BzKSmtMXAN42W6mvD3Y" }, "fee_profile": { "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPrATYzpomaTRtdo2BssRoGx" } } } API Definition