Account Webhooks
Receive real-time notifications when account lifecycle events occur.
Overview
When you provide a webhookUrl during account creation, your endpoint receives POST notifications for account lifecycle events — status changes, activation confirmations, and more. This applies to all account types: virtual, card, bancolombia, US, and polygon.
Card accounts also receive transaction-specific webhooks (purchases, refunds, rejections). See the Card Webhooks section for those events.
Setting Up Webhooks
Pass a webhookUrl when creating any account:
Your endpoint must:
- Accept
POSTrequests with a JSON body - Respond with a
2xxstatus code to acknowledge receipt - Be publicly accessible (no authentication required on your side)
Webhook Payload
All account lifecycle events share this structure:
Events
account.activated
Fired when an account transitions from creation_in_progress to active after on-chain settlement is confirmed. This is the signal that the account is fully operational — funds can be received and sent.
Handling Webhooks
With Idempotency
Webhook delivery uses idempotency keys, but your handler should still be idempotent — processing the same event twice must produce the same result:
The in-memory Set above is for illustration only. In production, use a persistent store (database, Redis) to track processed events across restarts and instances.
Account Lifecycle and Webhooks
The account.activated event fires on the creation_in_progress → active transition, which occurs after the on-chain batch settlement (controller registration and initial funding) is confirmed.
Best Practices
- Respond quickly: Return
200immediately, then process asynchronously. Long-running handlers may cause delivery timeouts. - Be idempotent: The same event may be delivered more than once. Use the combination of
account_urn + event_type + timestampas a deduplication key. - Use HTTPS: Always use HTTPS URLs to protect webhook payloads in transit.
- Log everything: Log incoming payloads for debugging and audit trails.
- Handle unknown events: New event types may be added. Don't fail on unrecognized
event_typevalues — log and acknowledge them. - Monitor failures: If your endpoint returns non-2xx responses repeatedly, webhook delivery may be paused. Monitor your endpoint's health.
Next Steps
- State Machines — Full account lifecycle documentation
- Virtual Accounts — Virtual account creation and management
- Virtual Cards — Card-specific transaction webhooks
- Transfers — Transfer funds between accounts