Skip to content

Tokens & card data ​

digid pay is token-only by construction. A full card number exists in exactly one place during checkout — inside digid pay Secure Fields, the hosted tokenization iframes rendered on your page. What leaves those fields is a token; what your servers, digid pay systems, logs and database ever see is that token and payment metadata. Never a PAN.

The model ​

mermaid
sequenceDiagram
    participant Shopper
    participant Your page
    participant Secure Fields
    participant Vault as digid pay tokenization vault
    participant digidpay as digid pay API
    Shopper->>Secure Fields: types card details
    Secure Fields->>Vault: card data (never touches your DOM or servers)
    Vault-->>Secure Fields: payment token
    Secure Fields-->>Your page: token + brand + last4
    Your page->>digidpay: confirm PaymentIntent with token

What merchants never touch ​

  • A full PAN — never in your DOM, logs, database, or requests.
  • CVV — never stored anywhere after the Secure Fields capture.
  • Raw card-number API fields — the digid pay API rejects any number-shaped 13–19 digit field in payment requests (including in sandbox). There is no path to submit a raw card through the API.

What you do receive ​

ValuePurpose
payment_method token (pmt_…)Confirms a PaymentIntent; never usable to retrieve the card.
Brand (visa, mastercard, …)UI/branding only.
Last four digitsReceipt / display confirmation.

The PAN-pattern ban ​

digid pay systems run PAN-pattern scrubbers across logs (the same rule that guards production applies in sandbox — rule R3). There is no code path, log, export or repository that may contain a PAN. The API contract itself refuses card-number fields so the boundary is enforced at the edge, not only in policy.

Why your PCI burden stays low ​

Because card entry happens entirely inside the digid pay tokenization vault — never in your DOM or on your servers — your own checkout qualifies for the lowest SAQ class. Our PCI posture page spells out the merchant wording; digid pay operates as a service provider under its own self-assessment with an empty card-data environment.

Token lifecycle ​

LifecycleNote
CreatedWhen Secure Fields tokenizes a card (per capture or on-file).
UsedTo confirm a PaymentIntent.
Expired / invalidFailed confirmations surface expired_token, invalid_token, or used_token — a token can only charge what it was created for.

Rules of thumb ​

  1. Never log request bodies that could contain token-adjacent card metadata.
  2. Never attempt to build your own card form — that defeats the model.
  3. Treat pmt_ tokens as single-purpose: mint fresh from Secure Fields for each checkout, and use on-file tokens only for the flows that document them.
  4. If a vendor asks you for a raw PAN to "test", stop — that is not how digid pay works (see Sandbox rules).

Further reading ​

digid pay — built in Europe.