Skip to main content

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

Read authorizationSetting: 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 setVirtualCardLockDate with a future date, or clear it.

Reading a card’s current state and limit

Query getVirtualCards, 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

Send spendLimit 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, use lockVirtualCard. 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.