EXCEPTION path.
The event model
For each card authorization, Grid produces:- One parent
CardTransaction— created at auth time, persists for the life of the transaction. - Pulls — debits against the funding source that fund approved auths and any post-hoc settlements.
- Clearings — the network’s confirmation that funds have moved.
- Refunds — merchant-initiated
RETURNevents.
pullSummary, settlementSummary, and refundSummary.
You don’t see per-child rows on the list endpoint — they’re summarized
on the parent.
Status transitions
RETURN does not move the status. The transaction stays
SETTLED and the returned value appears in refundedAmount.
Every transition is delivered via the generic transaction webhook
stream carrying the post-change parent (a follow-up extends the
Transaction model with a card destination type — see
Webhooks).
The over-auth path
The most common non-trivial flow is the over-auth (e.g. restaurant tip). The auth comes in at 15.00.- Auth approved → one pull for $12.50 → parent is
AUTHORIZED. - Clearing for 2.50 → parent is
SETTLEDwithpullSummary.count = 2,settlementSummary.totalAmount = 1500.
authorizedAmount: 1250,
settledAmount: 1500, and two pulls in its pullSummary.
The EXCEPTION path
An exception happens when the card network has already moved funds for a settlement but Grid can’t pull the matching amount from the funding source — typically because the cardholder’s balance no longer covers the post-hoc difference. Signal to watch: a transaction webhook withstatus: "EXCEPTION" for
a card-destination transaction. The payload includes the full parent
record, so your dashboard’s exception view is driven entirely by
webhook deliveries — there’s no list endpoint to poll.
Exceptions don’t roll back automatically. The standard response is to
top up the funding source (or move the customer to a state where their
balance can be collected) and contact Lightspark support to drive the
exception to resolution.
Idempotency on webhooks
Every transaction webhook carries a uniqueid. Track processed
webhook IDs and treat duplicates as no-ops — Grid retries failed
deliveries, and your reconciliation should be safe under at-least-once
delivery.
See Webhooks for signature
verification and the full payload shape.