type field. The data shape depends on the type.
When subscribing, you can list specific types ("card.created"), prefix wildcards ("card.*"), or the catch-all ("*").
Cards
card.created
A new card was created via POST /api/v1/cards.
card.updated
A card’s balance or status changed (for example, a transaction settled and reduced the balance, or the card transitioned to IN_USE).
card.closed
A card was closed — either by an explicit DELETE /api/v1/cards/:id call, or automatically after the balance reached zero.
reason is one of manual (closed via API/CLI) or balance_exhausted (auto-closed when the balance hit zero).
Cardholders
cardholder.created
A new cardholder was created via POST /api/v1/cardholders.
cardholder.updated
A cardholder was updated via PATCH /api/v1/cardholders/:id. The updated_fields array lists which fields were changed in that request.
cardholder_onboarding_session.completed
A hosted onboarding session finished: the end user verified their email and consented, and a cardholder in your organization is now linked to their AgentCard account. claimed_existing_cardholder is true when an existing cardholder was claimed (in that case no separate cardholder.created event fires).
Transactions
Transaction events all share the same payload shape. Thestatus and type together tell you exactly where the transaction is in its lifecycle.
transaction.authorized
A merchant authorization succeeded. Funds are held against the card; balance is reduced.
transaction.declined
The authorization was declined by the network or the issuer. No funds were held. The decline_reason field carries the reason code.
transaction.cleared
A prior authorization has settled. The amount may differ slightly from the authorization (e.g. tips).
transaction.voided
An authorization was voided before settlement. The held amount is released back to the card balance.
Balance
balance.low
The card’s remaining balance dropped to $10 or less but is still positive. Useful for top-up or warning workflows. Fires at most once per transaction; the card may still be used until balance hits zero.
Subscription wildcards
Each event has a noun-scoped prefix. Use these in yourenabled_events list to subscribe to families:
| Pattern | Matches |
|---|---|
card.* | card.created, card.updated, card.closed |
cardholder.* | cardholder.created, cardholder.updated |
cardholder_onboarding_session.* | cardholder_onboarding_session.completed |
transaction.* | transaction.authorized, .declined, .cleared, .voided |
balance.* | balance.low |
* | All event types |