Refunds for Alternative Payment Methods
Overview
This endpoint allows you to process refunds for completed purchases made with Alternative Payment Methods (APMs) that don’t natively support this feature. Bamboo processes these refunds through an Instant Payout to your customer’s bank account, providing an unmatched SLA for claim resolution.
For details on authentication, url request and basic refund parameters, refer to our refunds operation guide.

Request Parameters
Include the following specific fields in the MetadataIn
object of your Refund request to process an APM Refund.
Customer Information
Payee data is necessary to process a Refund via a Payout, for purchases where these parameters (Customer Name and Document) haven’t been defined, they should be sent in the Refund Request.
Parameter | Type | Mandatory | Description |
---|---|---|---|
MetadataIn → CustomerFirstName | string | Yes | Customer’s first name receiving the refund (from Customer.FirstName in the Purchase) |
MetadataIn → CustomerLastName | string | Yes | Customer’s last name receiving the refund (from Customer.LastName in the Purchase) |
MetadataIn → CustomerDocumentType | string | Yes | Customer’s document type (Format: DOCUMENT.COUNTRY ) |
MetadataIn → CustomerDocumentNumber | string | Yes | Customer’s document number |
MetadataIn → CustomerEmail | string | Yes1 | Customer’s email for notifications and bank data collection |
MetadataIn → CustomerPhoneNumber | string | Yes1 | Customer’s phone number for notifications and bank data collection |
Bank Account Information
Required when merchants collect bank account information through their own claims process, in case these parameters are not received it’s necessary to provide Customer’s contact data.
Parameter | Type | Mandatory | Description |
---|---|---|---|
MetadataIn → RefundBankID | string | Yes | Refund recipient’s bank code. See bank list |
MetadataIn → RefundBankAccountType | string | Yes | Refund recipient’s Bank Account type: 1 for Checking, 2 for Savings |
MetadataIn → RefundBankAccountNumber | string | Yes | Refund Recipient’s Bank Account number |
Additional Configuration
Allows customization of your customer’s experience when Bamboo manages the bank data collection.
Parameter | Type | Mandatory | Description |
---|---|---|---|
MetadataIn → MerchantLogoURL | string | No | URL of merchant’s logo for notifications and web forms |
MetadataIn → ResponseURL-Success | string | No | Success page URL after customer completes bank data form |
MetadataIn → ResponseURL-Failure | string | No | Error page URL for failed bank data collection |
Request Examples
Bank Data Provided by Merchant
{
"Amount":"25000",
"MetadataIn": {
"Description": "Refund due to order cancellation",
"CustomerFirstName": "Miguel",
"CustomerLastName": "Moreno",
"CustomerDocumentNumber": "52960268",
"CustomerDocumentType": "CC.CO",
"RefundBankID": "1040",
"RefundBankAccountType": "2",
"RefundBankAccountNumber": "9876543467"
}
}
Bank Data provided by Customer / Payee
{
"Amount":"25000",
"MetadataIn": {
"Description": "Refund due to order cancellation",
"CustomerFirstName": "Miguel",
"CustomerLastName": "Moreno",
"CustomerDocumentNumber": "52960268",
"CustomerDocumentType": "CC.CO",
"CustomerPhoneNumber":"3188060418",
"CustomerEmail": "mmoreno@mail.com",
"PayInMerchantLogoURL": "https://www.merchant.com/logo.png",
"ResponseURL-Success": "https://www.merchant.com/refund/123456/ok.html",
"ResponseURL-Failure": "https://www.merchant.com/refund/123456/error.html"
}
}
Response Example
{
"TransactionId": "79632697147789184",
"Result": "COMPLETED",
"Status": "PENDING",
"ErrorCode": null,
"ErrorDescription": null,
"Created": "2025-02-02T15:58:13.840",
"AuthorizationDate": "2025-02-02T15:58:14.120",
"AuthorizationCode": "79632697147789184",
"Amount": 25000,
"Currency": "COP",
"MetadataOut"{}
}
Important Notes
- Pending Status: APM refunds remain in
PENDING
status while the bank transfer is being processed. - Final Result: The final refund result will be notified through the Transaction webhook.
- Status Updates: You can check the latest refund status using the GET Transaction operation with the
Transaction ID
you get in the refund request response.
