Cards

Block card

POSThttps://api.firstleeward.com/v0/cards/:id/block

Blocks a card. A block is the hard stop - a compromised card, a dispute, an account on hold - while freeze is the soft toggle a cardholder flips. A blocked card declines everything: online, in-store, and ATM. Blocking a frozen card keeps the freeze, so the card returns to FROZEN when the block lifts. Idempotent, and a block placed by First Leeward is never replaced: if the card already carries a block with blockLiftable: false, that reason stays and the card remains one only First Leeward support can unblock.

Authorizations

Authorizationstring · headerrequired

API key as Bearer token, e.g. Bearer YOUR_API_KEY

Headers

Leeward-Versionenum<string>required

API version (YYYY-MM-DD). Available option: 2026-09-18

Path Parameters

idstring<uuid>required

Response

200Card resource
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

400Card operation not allowed in current status
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired
404Card not found
errorobjectrequired
Show child attributes
codestringrequired
messagestringrequired
detailobject | nullrequired