Webhooks

Receive automatic payout updates and final status notifications from Bamboo. Implement a webhook endpoint to securely process payout confirmation events.

Merchants can implement a webhook to receive notifications about the final status of their payouts. This allows automatic reconciliation and status updates within your system once Bamboo completes the payout.

💡

Notifications are sent only for the following statuses: Held, Paid, Declined, and Rejected.


Supported Statuses

StatusCodeDescription
HELD7The payout is under manual review by the Compliance team.
PAID1The payout has been successfully processed. This is a final status.
DECLINED8The payout was declined due to structural validation or Compliance rules.
REJECTED4The payout was rejected. Possible reasons include invalid bank account data or exceeded limits.

For a complete list of payout states, refer to the Payout Status guide.


Webhook Service Specifications

The webhook must be an HTTP/REST service capable of receiving POST requests from Bamboo’s servers.

FieldDescription
URLDefined by the merchant.
API TypePublic
MethodPOST
ResponseHTTP Status Code (200 = received successfully)

Notification Parameters

ParameterTypeDescription
payoutIdintegerInternal ID of the payout generated by Bamboo.
referencestringUnique identifier defined by the merchant during payout creation.
isoCountrystringCountry ISO code in format ISO 3166-1 alpha-2.
createddatetimeDate and time when the payout was requested.
lastUpdatedatetimeDate and time when the payout status was last updated.
statusintegerCurrent status code of the payout.
statusDescriptionstringDescription of the final payout status. See Payout Status.
errorCodestringInternal error code if the payout failed. See Error Codes.
errorDescriptionstringDescription of the error if the payout failed.
amountobjectAmount and currency originally requested.
localAmountobjectAmount and currency converted to local value.
exchangeRatenumberExchange rate applied to the payout.
payeeobjectInformation about the recipient or beneficiary.
descriptionstringDescription or reason provided in the payout request.
ℹ️

For company payouts, the payload includes companyName instead of firstName and lastName.


Example Notification

Status: Paid

{
  "payoutId": 987654,
  "reference": "payout-2025-0001",
  "isoCountry": "CO",
  "created": "2025-10-14T10:30:00Z",
  "lastUpdate": "2025-10-14T10:32:10Z",
  "status": 1,
  "statusDescription": "Paid",
  "amount": {
    "value": 1000.00,
    "currency": "USD"
  },
  "localAmount": {
    "value": 4065000.00,
    "currency": "COP"
  },
  "exchangeRate": 4065,
  "payee": {
    "firstName": "María",
    "lastName": "González",
    "bankName": "Bancolombia",
    "accountNumber": "1234567890"
  },
  "description": "Freelancer payment - October"
}