Webhook Event Types
Araucaria emits three categories of events: connection events, account events, and transaction events.
Connection Events
Emitted when a connection's status changes. Each event corresponds to a state in the connection lifecycle.
| Event Type | Description |
|---|---|
| connection.created | Connection created, waiting for credentials |
| connection.credentials_submitted | User submitted credentials via widget |
| connection.verifying | Worker is verifying credentials with the bank |
| connection.connected | Successfully connected, accounts available |
| connection.mfa_required | Bank requires multi-factor authentication |
| connection.failed_auth | Invalid credentials provided |
| connection.error | Unexpected error during connection |
| connection.disconnected | Connection was disconnected |
Account Events
Emitted when account data changes. Fetch the latest data when receiving these events.
| Event Type | Description |
|---|---|
| accounts.updated | Account data has been updated, fetch latest transactions |
Transaction Events
Emitted when transaction data changes. Use these to keep your local transaction records in sync.
| Event Type | Description |
|---|---|
| transaction.deleted | A transaction was removed during deduplication or correction |
Connection Event Payload
json
{
"id": "evt_01HXYZ...",
"type": "connection.connected",
"created_at": "2026-01-20T14:30:00.000Z",
"data": {
"eventId": "evt_01HXYZ...",
"type": "connection.connected",
"occurredAt": "2026-01-20T14:30:00.000Z",
"clientId": "cli_01H8X9KQWERTY12345",
"connectionId": "conn_01H8X9ABCDEF67890",
"previousStatus": "verifying",
"error": null
}
}
Account Event Payload
json
{
"id": "evt_01HXYZ...",
"type": "accounts.updated",
"created_at": "2026-01-20T14:30:00.000Z",
"data": {
"eventId": "evt_01HXYZ...",
"type": "accounts.updated",
"occurredAt": "2026-01-20T14:30:00.000Z",
"clientId": "cli_01H8X9KQWERTY12345",
"connectionId": "conn_01H8X9ABCDEF67890",
"accountId": "acc_01H8X9KQWERTY12345"
}
}
Transaction Event Payload
json
{
"id": "evt_01HXYZ...",
"type": "transaction.deleted",
"created_at": "2026-01-20T14:30:00.000Z",
"data": {
"eventId": "evt_01HXYZ...",
"type": "transaction.deleted",
"occurredAt": "2026-01-20T14:30:00.000Z",
"clientId": "cli_01H8X9KQWERTY12345",
"connectionId": "conn_01H8X9ABCDEF67890",
"accountId": "acc_01H8X9KQWERTY12345",
"transactionId": "txn_01H8X9KQWERTY12345"
}
}
💡 Next Steps
When you receive
When you receive
When you receive
connection.connected, call GET /v1/connections/{connectionId}/accounts to retrieve accounts.When you receive
accounts.updated, call GET /v1/accounts/{accountId} for the updated balance and GET /v1/accounts/{accountId}/transactions for new transactions.When you receive
transaction.deleted, remove the transaction from your local records if you store them.