Status and lock are separate
status describes where the card is in its lifecycle. Whether it can authorize right now is a separate question, answered by its lock fields. A locked card still reports status: ACTIVE.
LOCKED and CLOSED_EXPIRED are not status values.
Telling a locked card from an open one
ReadauthorizationSetting:
A card is usable only when
status is ACTIVE and no lock applies.
After lockDate passes
The card stays ACTIVE but declines as locked. It doesn’t become EXPIRED. You can reopen a multi-use card:
- call
unlockVirtualCard, optionally passing a new lock date; or - call
setVirtualCardLockDatewith a future date, or clear it.
Reading a card’s current state and limit
QuerygetVirtualCards, filtered to the card:
initialAmount is the amount requested when the card was created. It never changes, so it isn’t the current limit. Read the current limit from the authorizationSetting limit that matches the card’s duration.Changing the limit
SendspendLimit and spendLimitDuration together on editVirtualCard. Sending only spendLimit may not apply the change. Confirm it by re-reading authorizationSetting, not initialAmount.
Closing a card permanently
There is no public mutation to cancel a card. For a temporary stop, uselockVirtualCard. To cancel permanently, contact support with the virtualCardId. VC-0008 UNABLE_TO_CANCEL comes from that support-side process.
When a card is cancelled, its unspent funded balance goes back through the refund process. Authorizations that haven’t cleared are cleaned up with the card’s purchase; timing depends on the network. Locking a card doesn’t release its balance.