Skip to main content

📄 Guide

A physical card comes from an activated (ACTIVE) virtual card upgraded in place through “virtual to physical”. The PAN, expiry, CVV2 and cardId all stay the same throughout the upgrade — queries return the original virtual card’s details before activation and take effect as the physical card after it — so you never need to replace the card or migrate any targets after upgrading. For the card-state background see State machines and freezing. The four-step chain:
Virtual-to-physical card pathVirtual-to-physical card path
The shipping address hangs off the employee’s record; it is read when the virtual-to-physical application is accepted and locked as a snapshot — later address changes do not affect cards already in production.

① Upgrade application: virtual to physical

Upgrades an ACTIVE virtual card to a physical card under the same number.

Request parameters

Response data

Request and response examples

Error codes

Related webhooks: CARD_SHIPPED (dispatched) / CARD_ACTIVATED (activated).

② Tracking production and shipping

Queries the physical card’s production and shipping progress plus the tracking number.

Request parameters

Response data

Response examples (shipped / not shipped)

Error code: CARD_INVALID — the card does not exist / does not belong to your partnership.

③ Activating the physical card

Activates the physical card; the prerequisite is that the card has shipped. The endpoint is idempotent — repeated calls return the same success.

Request parameters and response

Request parameters: cardId (String, required, ≤32; the card id). Card-scoped endpoints locate by cardId alone and never carry organizationId. This is an action endpoint: data is null.

Error codes

Related webhook: CARD_ACTIVATED.

④ Setting the PIN

Sets the physical card’s PIN; the prerequisite is that the physical card has been activated.
The PIN and the identity-check fields are AES-GCM encrypted with your SK before upload — the same crypto contract as retrieve-secure-card, in the opposite direction (for the contract see Retrieving secure card details: AES/GCM/NoPadding, 128-bit tag, keyed with the SK).

Request parameters

Request and response examples

The response data carries cardId and success (Boolean, whether the PIN was set):

Error codes

Next steps