Skip to main content

Card encryption (JWE)

Sensitive card data is delivered on GET /partner/cards/{card_id}. Default tenant mode: card_payload=jwe. Do not expect PAN / CVV / JWE in webhooks — always fetch via GET.

Keys

These keys are separate. Do not reuse the signing key for JWE.

Algorithm

Compact JWE:
  • alg: ECDH-ES
  • enc: A256GCM
  • Empty encrypted key segment (compact form has .. between protected header and IV)
Protected header example (IMBA does not put kid in the JWE header):
Your key id (if you use one in your keystore) is for your selection only.

Response shape (JWE mode)

Decrypt card_encrypted with your X25519 private key. Plaintext JSON typically includes number, cvv, expiration, holder, card_id, currency, status.

Plaintext mode

If IMBA enables card_payload=plaintext for your tenant, secrets appear under card instead of card_encrypted. Prefer JWE in production. Never log secrets.