Refunds for Bank Transfer Payments
Process secure and efficient bank transfer refunds through Localpayment. Our guide explains how to use our automated system to manage refunds.
Overview
Refunds allow you to return funds from a completed Bank Transfer payin back to the original payer. When you issue a refund, the funds are debited from your Localpayment account balance and dispersed back to the customer. This means you must have sufficient balance available in your account at the time of processing. If your balance is not enough, you can either add funds via a wire-in or transfer funds from another Localpayment account before approving the refund.
When Refunds Apply
Refunds are available in scenarios such as:
The payer requests their money back.
A purchase is canceled after the payment has been completed.
You need to return funds due to operational, compliance, or customer service reasons.
Conditions for Refunds
Refunds can only be created when:
The payin status is Completed.
The refund amount equals the total payment amount (partial refunds are not supported).
Please note that all refunds initiated via the Localpayment Dashboard require approval.
User Roles
To create or approve a refund, your user account must have the necessary permissions. The tables below describe the default user roles capable of these actions.
Refund Types
Refunds can be processed in two flows:
Direct Refunds
Direct refunds require only the externalId
of the original transaction. No additional payer details are needed. You can issue a direct refund via API or Dashboard.
Supported products:
Data-Required Refunds
Data-required refunds require additional payer and bank details in the request body. You can issue a data-required refund via API or Dashboard.
Refunds must always be sent back to the same originating account used in the initial payment. Refunds to different accounts are not permitted.
Supported products:
Alternative Payment Methods (APMs)
Method-Specific Requirements
Some payment methods have additional refund restrictions:
Chile
Virtual Accounts:
Low-Value Transactions (Up to CLP 7,000,000): Refunds can be processed without restrictions using the Direct Refund flow.
High-Value Transactions (Above CLP 7,000,000): Refunds must be processed using the Data-Required Refunds flow. The only exception is for transactions originating from Banco Security accounts; these are to be processed through the Direct Refund flow.
México
Virtual Accounts:
Refund Availability: Refunds are not currently available for payments processed through Banco Azteca in Mexico.
Refund a Payment
Refunds can be requested via API or Dashboard.
Create a Refund via Localpayment API
To request a refund through the API, send a PATCH
request to the refund endpoint with the required information. The API supports both refund flows: Direct Refunds (only externalId
required) and Data-Required Refunds (additional beneficiary and bank details required).
Endpoint
PATCH
{api_base_url}api/payin/{externalId}/refund
Headers
Authorization
string
Required
Bearer token for authentication.
Path Parameters
externalId
string
Required
Unique ID of the original transaction.
Request Body
comment
string
Optional
Optional comment about the refund.
beneficiary
object
Required
Beneficiary details.
beneficiary.type
string
Required
Beneficiary type (INDIVIDUAL
/ COMPANY
).
beneficiary.name
string
Required
First name of the beneficiary.
beneficiary.lastName
string
Required
Last name of the beneficiary. Required only for INDIVIDUAL
beneficiary.document.type
string
Required
Document type of the beneficiary.
beneficiary.document.id
string
Required
Document ID of the beneficiary.
beneficiary.bank.name
string
Required
Name of the beneficiary’s bank.
beneficiary.bank.branch.code
string
Optional
Branch code. Only mandatory for Brazilian bank accounts.
beneficiary.bank.branch.name
string
Optional
Branch name. Only mandatory for Brazilian bank accounts.
beneficiary.bank.account.number
string
Required
Account number of the beneficiary
Request Example
curl --location --request PATCH 'https://api.stage.localpayment.com/api/payin/{{externalId}}/refund' \
--header 'x-client-code: 0000' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <your_access_token>' \
--data '{
}'
Response Example
{
"externalId": "1c364061-1f3d-4b94-c270-bf915c22e8f5",
"internalId": "8a9abd31-31e0-429a-32a6-cca8b9e1e536",
"status": {
"code": "902",
"description": "REFUNDED",
"detail": "The payin was refunded"
}
}
Error Handling
Common errors when issuing refunds via API:
400 Bad Request: Missing or invalid beneficiary data (for data-required flow).
403 Forbidden: Missing or invalid permissions.
404 Not Found: The externalId does not exist.
Create a Refund via Localpayment Dashboard
Refunds can also be created via Localpayment Dashboard (with the proper user role). The Dashboard supports both refund flows: Direct Refunds and Data-Required Refunds. If additional information is required (Data-Required Refunds), the system will prompt you to provide the necessary beneficiary and bank details during the refund request process.
Steps:
Access your Localpayment Dashboard.
Click "PayIn".
Click "Refunds".
Click "Create Refund".
Click "Manual" to create one refund, or Batch to process multiple refunds at once.
Choose the Client, Country, Account Number, Payment Method (Bank Transfer) and Date Range.
You may also search directly by
externalId
.
Click "Search."
Select the transactions to refund.
Click "Create Refund".
Review the refund details. If additional data is required, the system will prompt you.
Click Confirm to submit the refund request or Cancel to discard it.
A confirmation screen will display refund details.
Click Close to return to the dashboard.
Click Expand to view full details.
Click Authorizations to go to pending refund approvals.
Approve a Refund
All refunds must be reviewed and approved by a user with the appropriate role.
Steps to approve or reject a refund:
Access your Localpayment Dashboard.
Click "PayIn".
Click "Refunds".
Click "Pending Authorization".
Select the Client, Country, and Date Range.
You may also search directly by
externalId
.
Click "Search."
Select the transaction to refund and click "Authorize" to approve the refund, or Discard to reject it.
Review the refund detail and click "Yes."
Check your email and enter the confirmation code you received.
This code must be entered in the Dashboard to finalize and approve the refund. The refund will not be processed until this step is completed.
Click "Authorize".
A confirmation message will appear.
Webhooks
Localpayment sends webhook notifications whenever a refund is Completed.
Key points:
Ensure your webhook endpoint is configured in the Dashboard.
Refund statuses can also be checked via API or Dashboard reports.
Related Resources
Last updated
Was this helpful?