Receive asynchronous updates for purchases and refunds using the Bamboo Transaction Webhook. Includes full transaction and customer details.
The Transaction Webhook notifies merchants asynchronously about the final status of any transaction processed through Bamboo, including purchases and refunds. It provides complete details for reconciliation, auditing, and post-settlement analysis.
Notification Parameters
| Parameter | Type | Description |
|---|---|---|
TransactionId | integer | Unique identifier of the transaction. |
TransactionType | string | Transaction type: Purchase or Refund. |
TransactionStatusId | integer | Internal identifier of the transaction status. |
Status | string | Current transaction status (e.g., Approved, Rejected). |
ErrorCode | string | Error code if the transaction failed. |
Amount | number | Transaction amount. |
Currency | string | Currency in ISO-4217 format. |
Installments | integer | Number of installments if applicable. |
UniqueId | string | Merchant-defined unique identifier for reconciliation. |
Description | string | Description of the transaction result. |
TargetCountryIso | string | Country where the transaction was processed (ISO-3166-1). |
Created | date | Date and time when the transaction was created (ISO-8601 format). |
Customer | object | Information of the payer. |
PaymentMedia | object | Payment method details (brand, type, issuer). |
Example: Purchase Notification
{
"TransactionId": 379245,
"TransactionType": "Purchase",
"TransactionStatusId": 4,
"Status": "Rejected",
"ErrorCode": "TR301",
"Amount": 5000,
"Currency": "UYU",
"Installments": "1",
"UniqueId": "",
"Order": "1",
"Description": "Description",
"UrlNotify": "https://dummystore.com/checkout/notifications",
"TargetCountryIso": "UY",
"Created": "2024-02-07T18:10:45.667",
"MetadataOut": { },
"Customer": {
"CustomerId": 321559,
"Email": "[email protected]",
"DocumentTypeId": 1,
"DocNumber": "52960268",
"LastName": "Cardenas Contreras",
"FirstName": "Rocio"
},
"PaymentMedia": {
"PaymentMediaId": 2,
"Brand": "MasterCard",
"PaymentMediaType": "CreditCard",
"IssuerBank": "ADMINISTRADORA DE TARJETAS DE CREDITO, (A.T.C.), S.A.",
"Bin": "558900",
"Last4": "0001",
"Owner": "JOHN DOE"
}
}Example: Refund for APM - Notification
{
"TransactionId": 148906700189999616,
"TransactionType": "Refund",
"TransactionStatusId": 1,
"Status": "Approved",
"Description": "Automation Test",
"ApprovalCode": "10",
"AdditionalData": null,
"ErrorCode": null,
"Created": "2025-02-14T21:42:03.88",
"UrlNotify": null,
"TargetCountryIso": "CO",
"Customer": {
"CustomerId": 148905131889422016,
"Email": "[email protected]",
"DocumentTypeId": 11,
"DocNumber": "1234567890",
"LastName": "Torres",
"FirstName": "Lisseth"
},
"PaymentMedia": {
"PaymentMediaId": 538,
"Brand": "PseAvanza",
"PaymentMediaType": "BankTransfer",
"IssuerBank": null,
"Bin": null,
"Last4": null,
"Owner": null
},
"UniqueId": "",
"Order": "Automation-999",
"Amount": -2058800,
"Installments": 1,
"Currency": "COP",
"MetadataOut": {
"RefundBankAccountNumber": "132132********2132",
"RefundBankId": "1063",
"RefundBankName": "BANCO FINANDINA S.A.",
"RefundBankAccountType": "Saving"
}
}
Response Expected
The merchant’s webhook endpoint must return HTTP 200 (OK) to confirm that the notification was successfully received and processed. If Bamboo receives any other status code or no response, the notification will be retried according to the Retry Policy.
| Response Code | Meaning |
|---|---|
200 | Notification successfully received and processed. |
4xx | Client-side error (invalid endpoint, payload rejection, or failed signature validation). |
5xx | Temporary server error. Bamboo will retry the notification automatically. |
