Webhook event

Card Status Updated

POSTCARD_STATUS_UPDATED

Fired when a card status changes (e.g., activated, frozen, unfrozen, cancelled).

Body

application/json

idstringrequired

Unique event identifier for idempotency

typestringrequired

Webhook event type

Available options:CARD_STATUS_UPDATED
dataobjectrequired
Show child attributes
idstring<uuid>required

Unique card identifier

accountIdstring<uuid>required

ID of the account the card belongs to

userIdstring<uuid>required

ID of the user the card belongs to

typestringrequired

Card type (VIRTUAL or PHYSICAL)

Available options:VIRTUALPHYSICAL
cardDesignIdstringrequired

Design the card was issued with. For a physical card this is the design on the card record, which can differ from the one produced: the plastic is made from the design chosen on the shipment, returned as cardDesignId per card on the shipment endpoints.

statusstringrequired

Current card status

Available options:ACTIVEFROZENBLOCKEDEXPIRED
blockReasonobject | nullrequired

Block reason details (only present when status is BLOCKED)

Show child attributes
typestringrequired

Machine-readable code for the block reason

Available options:CLIENT_REQUESTEDSUSPECTED_FRAUD_CVVSUSPECTED_FRAUD_EXPIRYSUSPECTED_FRAUD_PINFRAUD_ALERT_CONFIRMEDOTHER
messagestringrequired

Human-readable message for the block reason

blockLiftablebooleanrequired

Whether the current block can be lifted with the unblock endpoint. false for blocks that need First Leeward support, and for a card that holds no block.

frozenbooleanrequired

Whether the card is frozen. A block hides a freeze from status, so a card that is BLOCKED with frozen: true returns to FROZEN once the block lifts.

cardholderNamestringrequired

Cardholder name displayed on card

last4stringrequired

Last 4 digits of the card number. Use reveal endpoint for full details.

3dsChallengeMethodstringrequired

3DS challenge verification method

Available options:SMSWEBHOOK
physicalCardStatusstring | nullrequired

Physical lifecycle of the card (production + shipping + activation rollup). Defaults to NOT_ORDERED for newly created physical cards. null for virtual cards, which have no physical lifecycle.

Available options:NOT_ORDEREDREQUESTEDIN_PRODUCTIONPRODUCTION_COMPLETEDIN_TRANSITOUT_FOR_DELIVERYDELIVEREDACTIVATEDCANCELEDDELIVERY_FAILEDEXCEPTION
createdAtstringrequired

ISO 8601 timestamp of creation

updatedAtstringrequired

ISO 8601 timestamp of last update

Response

200Webhook received successfully. Return any 2xx status to acknowledge.