Transaction Notification

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

The data structure is modular. Below you will find the parameter breakdown separated by objects.

ParameterTypeDescription
TransactionIdNumberUnique transaction identifier within Bamboo Payments.
UniqueIdStringUnique alphanumeric identifier generated by the merchant to identify the transaction and prevent double charging.
OrderStringMerchant's internal reference or purchase order ID.
TransactionTypeStringType of operation (e.g., PURCHASE, REFUND).
StatusStringCore status string (e.g., APPROVED, PENDING, REJECTED).
DescriptionStringOptional description provided by the merchant or returned by the acquirer/processor.
ApprovalCodeStringAuthorization code provided by the processing network or bank.
AmountNumberTotal transaction amount represented in minor units (e.g., cents, without decimal separators. E.g., 1000 represents 10.00).
CurrencyStringThree-letter ISO 4217 currency code (e.g., ARS, USD, CLP).
InstallmentsNumberNumber of installments chosen for the transaction (cards).
MetadataOutObjectKey-value dictionary containing dynamic response properties returned by the local payment provider.
AdditionalDataObjectKey-value store containing dynamic parameters (varies based on country and method).
ErrorCodeStringError code alphanumeric representation if the transaction fails.
CreatedStringISO 8601 timestamp (YYYY-MM-DDTHH:mm:ss.SSSZ) indicating transaction creation.
UrlNotifyStringThe target merchant URL where this notification is delivered.
TargetCountryIsoStringTwo-letter ISO country code where processing took place (e.g., AR, MX, CL).
CustomerObjectContains identity and contact information of the end-buyer. See Customer Object.
PaymentMediaObjectContains technical properties of the payment vehicle used. See PaymentMedia Object.
VirtualAccountObjectOptional. Included only if processed via bank transfer to a dynamic virtual account. See VirtualAccount Object.

Customer Object

ParameterTypeDescription
CustomerIdNumberUnique identifier for the customer record in Bamboo.
EmailStringCustomer's primary contact email address.
DocumentAbbreviationStringLocalized acronym for the identification document type (e.g., RUT, CPF, CUIT).
DocNumberStringAlphanumeric string representing the customer's legal identification number.
FirstNameStringGiven name(s) of the customer.
LastNameStringFamily name(s) of the customer.

PaymentMedia Object

ParameterTypeDescription
PaymentMediaTypeStringBroad categorization of the funding vehicle (e.g., CreditCard, DebitCard, Cash, Transfer).
BrandStringBrand name or provider network processing the fund (e.g., Visa, MasterCard, OXXO, BIND).
IssuerBankStringName of the issuing bank entity (applicable mostly for cards).
BinStringThe first 6 digits of the card number (Bank Identification Number).
Last4StringThe final 4 digits of the card number.
OwnerStringThe cardholder's full name exactly as printed on the card.

VirtualAccount Object

ParameterTypeDescription
VirtualAccountIdNumberInternal platform ID managing this specific virtual ledger/sub-account.
StatusStringLifecycle status of the virtual account when processing (e.g., ACTIVE).
OwnershipModelStringDefines entity alignment for compliance frameworks (BAMBOO_OWNED, MERCHANT_OWNED, NAMED_ACCOUNT).
UniqueIdStringCustom tracking reference assigned by the merchant during deployment.
PaymentInstrumentObjectBanking network routing properties. See PaymentInstrument Object.
AccountOwnerObjectLegal identity backing the specific sub-account ledger. See AccountOwner Object.

PaymentInstrument Object

ParameterTypeDescription
TypeStringNational banking standard format tag (e.g., CLABE, CVU, CBU).
BankAccountStringComplete unmasked routing string, CBU, or account code receiving the transfer.
BankNameStringName or short acronym of the local custodian clearing bank (e.g., STP, BIND).
BankAccountHolderStringRegistered descriptor name of the account in the banking network interface.

AccountOwner Object

ParameterTypeDescription
TypeStringClassification of entity type owning the balance (COMPANY or INDIVIDUAL).
BusinessNameStringCorporate registration name (populated only if Type is COMPANY).
FirstNameStringGiven name of the owner (populated only if Type is INDIVIDUAL).
LastNameStringSurname of the owner (populated only if Type is INDIVIDUAL).
DocumentNumberStringFiscal registration string or document digits (e.g., CUIT, RFC, RUT).
DocumentTypeStringCountry-specific category tag for the provided fiscal document.
EmailStringRegistered notification email address linked to the sub-merchant owner.
PhoneNumberStringContact phone string conforming to international E.164 standardization.


Response Examples

Select the corresponding tab below to view the payload structure based on the payment method used for the transaction.

{
  "TransactionId": 379245,
  "TransactionType": "Purchase",
  "Status": "Rejected",
  "ErrorCode": "TR301",
  "Amount": 5000,
  "Currency": "UYU",
  "Installments": "1",
  "UniqueId": "123456",
  "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]",
    "DocumentAbbreviation": "RUT.UY",
    "DocNumber": "52960268",
    "LastName": "Cardenas Contreras",
    "FirstName": "Rocio"
  },
  "PaymentMedia": {
    "PaymentMediaType": "CreditCard",
    "Brand": "MasterCard",
    "IssuerBank": "ADMINISTRADORA DE TARJETAS DE CREDITO, (A.T.C.), S.A.",
    "Bin": "558900",
    "Last4": "0001",
    "Owner": "JOHN DOE"
  }
}
{
    "TransactionId": 148906700189999616,
    "TransactionType": "Refund",
    "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]",
        "DocumentAbbreviation": "CC.CO",
        "DocNumber": "1234567890",
        "LastName": "Torres",
        "FirstName": "Lisseth"
    },
    "PaymentMedia": {
        "PaymentMediaType": "BankTransfer",
        "Brand": "PseAvanza",
        "IssuerBank": null,
        "Bin": null,
        "Last4": null,
        "Owner": null
    },
    "Amount": -2058800,
    "Installments": 1,
    "Currency": "COP",
    "MetadataOut": {
        "RefundBankAccountNumber": "132132********2132",
        "RefundBankId": "1063",
        "RefundBankName": "BANCO FINANDINA S.A.",
        "RefundBankAccountType": "Saving"
    }
}
{
  "TransactionId": 326050278602283616,
  "TransactionType": "PURCHASE",
  "Status": "APPROVED",
  "Description": null,
  "ApprovalCode": "AUTH123",
  "AdditionalData": null,
  "ErrorCode": null,
  "Created": "2026-06-18T17:27:29.1724957Z",
  "UrlNotify": null,
  "TargetCountryIso": "MX",
  "Amount": 1769,
  "Currency": "MXN",
  "Customer": {
    "CustomerId": 326050278602283616,
    "Email": "[email protected]",
    "DocumentAbbreviation": "RFC.MX",
    "DocNumber": "12345678",
    "LastName": "Doe",
    "FirstName": "John"
  },
  "PaymentMedia": {
    "PaymentMediaType": "BankTransfer",
    "Brand": "SPEI",
  },
  "VirtualAccount": {
    "VirtualAccountId": 325330756438165568,
    "Status": "ACTIVE",
    "OwnershipModel": "BAMBOO_OWNED",
    "UniqueId": "ref-500224",
    "PaymentInstrument": {
      "Type": "CLABE",
      "BankAccount": "31182538978110004784",
      "BankName": "STP",
      "BankAccountHolder": "ACME Corp - Bamboo Payments"
    },
    "AccountOwner": {
      "Type": "COMPANY",
      "BusinessName": "Acme Corp 2",
      "FirstName": null,
      "LastName": null,
      "DocumentNumber": "123456789",
      "DocumentType": "RUT",
      "Email": "[email protected]",
      "PhoneNumber": "+59899123456"
    }
  }
}

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 CodeMeaning
200Notification successfully received and processed.
4xxClient-side error (invalid endpoint, payload rejection, or failed signature validation).
5xxTemporary server error. Bamboo will retry the notification automatically.

Next Steps