Available Event Types
| Event Type | Description |
|---|---|
kyc.status.changed | KYC verification status has changed |
card.activated | A card has been activated |
transaction.cleared | A transaction has cleared |
Additional event types will be added as the platform grows. Contact your account team to discuss events relevant to your integration.
Subscription Patterns
When configuring your webhook, you can subscribe using three pattern styles:| Pattern | Description | Example |
|---|---|---|
| Exact Match | Subscribe to one specific event | kyc.status.changed |
| Category Wildcard | Subscribe to all events in a category | card.* (matches card.activated) |
| Global Wildcard | Subscribe to all events | * |
card.* means your webhook will automatically receive new card event types as they are introduced, without needing to update your subscription.
Standard Payload Structure
Every webhook event, regardless of type, follows the same top-level structure:| Field | Type | Required | Description |
|---|---|---|---|
api_version | string | Yes | API version — currently "v1" |
event_id | string (UUID) | Yes | Unique identifier for this event. Use for idempotency. |
event_category | string | Yes | Category of the event (e.g., "kyc", "card") |
event_type | string | Yes | Specific event type (e.g., "kyc.status.changed") |
user_id | string (UUID) | Yes | Baanx internal identifier for the user |
user_external_id | string | No | Your external user identifier, if provided during onboarding |
event_object_id | string | Yes | ID of the object that changed |
event_object_status | string | No | Current status of the changed object |
event_object_changes | object | No | Before/after values of the fields that changed |
event_object | object | Yes | Event-specific data — contents vary by event type |
occurred_at | string (ISO 8601) | Yes | Timestamp of when the event occurred |
Example Payload
User Identification
Every webhook includesuser_id, the Baanx internal identifier for the user. If you provided an external user ID when onboarding the user, it will also be present as user_external_id in all webhook events for that user.
user_external_id is set once during user onboarding and remains consistent across all webhooks for that user.The event_object_changes Field
When a field changes, event_object_changes provides a before/after snapshot as a two-element array — [previous_value, new_value]:
Idempotency
Events may occasionally be delivered more than once due to retries or network conditions. Always useevent_id as an idempotency key to avoid processing the same event twice:
Next Steps
KYC Events
Full reference for KYC status payloads, status values, and failure codes
Security & Verification
How to verify the signature on every incoming webhook