POST
Returns the full PAN, CVV, and expiry, encrypted with the secretKey from Get secure key. It’s gated by a step-up confirmation — a passkey, a 2FA code, or a PIN (a program capability). The full flow:
  1. Get a secure key — keep the secretKey and cipher.
  2. For a passkey: POST .../card/{cardId}/secure/passkey-challenge to get a passkeySession and fido2options, and complete it on the device (same as a passkey login). For a 2FA code or PIN, skip this step.
  3. Call this endpoint with the cipher and a confirmation object:
    For TOTP, accessToken is the access_token from sign-in — not the id_token you send as the Authorization bearer.
  4. Decrypt the returned pan / cvc2 with the secretKey.
Never log or store the decrypted values. Render them client-side and discard them.

Authorizations

Authorization
string
header
required

The user's id_token from authentication — the ID token, not the access_token. The program and environment come from the token.

Path Parameters

customerId
string
required

The customer's id.

accountId
string
required

The account the card belongs to. A customer can have several accounts; cards are issued against one.

cardId
string
required

The card id from create / get cards.

Body

application/json
confirmation
Passkey · object
required

Step-up confirmation. Set method to passkey, totp, or pin and include that method's fields. pin is a program capability — see Program capabilities.

cipher
string

The cipher from Get secure key.

Response

Secure card data

success
boolean
Example:

true

data
object

Sensitive values, encrypted with the secretKey from Get secure key. Decrypt client-side; never log or store them.