Cards add two webhook event types on top of Grid’s existing webhook infrastructure. Signature verification (Documentation Index
Fetch the complete documentation index at: https://grid.lightspark.com/llms.txt
Use this file to discover all available pages before exploring further.
X-Grid-Signature) and
retry behavior are identical to the rest of Grid — see
Authentication and
Webhooks for the underlying mechanics.
Card-transaction lifecycle events are not card-specific webhooks —
they ride on the generic transaction webhook stream (a follow-up
extends the Transaction model with a card destination type).
Event types
| Type | Fires on |
|---|---|
CARD.STATE_CHANGE | PENDING_ISSUE → ACTIVE, → CLOSED (ISSUER_REJECTED), and every subsequent ACTIVE ⇄ FROZEN and → CLOSED transition. |
CARD.FUNDING_SOURCE_CHANGE | Whenever PATCH /cards/{id} updates the fundingSources array. |
id is unique per delivery and safe to use for idempotency.
CARD.STATE_CHANGE
Thedata payload is the post-change Card resource. Example —
activation after issuance:
state: "ACTIVE"afterPENDING_ISSUE— the card is live; surfacepanEmbedUrlto the cardholder.state: "CLOSED",stateReason: "ISSUER_REJECTED"— the issuer rejected provisioning; offer to issue a new card.state: "FROZEN"/state: "ACTIVE"— reflect the freeze toggle in your UI.state: "CLOSED",stateReason: "CLOSED_BY_PLATFORM"— close confirmed; stop showing the card.
CARD.FUNDING_SOURCE_CHANGE
Fires whenever aPATCH /cards/{id} call changes the fundingSources
array. The data payload is the full Card resource with the
post-change fundingSources, so a consumer that only cares about the
current set of bindings can replace state wholesale.
Card-transaction lifecycle
Authorization, pull, clearing, refund, andEXCEPTION transitions are
not delivered through a dedicated card webhook. They flow through
the generic transaction webhook stream that already carries
outgoing-payment lifecycle events; a follow-up PR adds the card
destination type to that stream. See
Reconciliation for the
underlying event model.
Idempotency & retries
Webhook deliveries are at-least-once. Track processedid values and
return 200 on duplicates, or return 409 and let Grid stop
retrying. Both shapes are accepted by Grid’s webhook infrastructure.