EST. 2012 CODEGO GROUP LTD · MALTA EUIPO 018922174 PCI DSS · ADSIGO 2025 CARD DATA REVEAL SDK · v1 SAQ-D → SAQ-A · 14× FEWER CONTROLS VENDOR-AGNOSTIC · MARQETA · GALILEO · STRIPE · BIN SPONSORS
Codego · Card Reveal SDK · v1 Vol. XII · Product brief / PCI scope reduction ● Self-service sandbox · Vendor-agnostic
01

Show card details.
Stay out
of PCI scope.

The Card Data Reveal SDK lets your application display the full PAN, CVV and expiry date to a cardholder — without your servers, your application, or your developers ever touching the card data. A cross-origin iframe served by Codego's PCI‑DSS certified infrastructure renders the card to the end-user's browser. Browser Same-Origin Policy guarantees your code cannot read it. Drop from SAQ-D (300+ controls) to SAQ-A (22 controls) — without changing card issuer.

(A) PCI controls
22SAQ-A
(B) vs SAQ-D
14× fewer
(C) Token lifetime
5minutes
(D) Sandbox sign-up
<30seconds
02
The problem
Why showing a PAN is so expensive
4 pain points

A single line of card data,
a six-figure audit.

If your application ever stores, processes or transmits a full PAN — even to render it once on screen — you are inside the PCI DSS cardholder data environment. That means SAQ-D, a Level 1 QSA engagement, quarterly ASV scans, annual penetration tests, ongoing monitoring, and roughly $50,000 to $200,000 per year in compliance overhead — before you write a single line of product code.

A · Cost

$50k–$200k / year

Enterprise PCI DSS Level 1 compliance: QSA audit, ASV scans, pen-tests, monitoring, dedicated security staff. Recurring annually.

B · Time

6–12 months blocked

New card programmes routinely sit in the queue for half a year while compliance, infrastructure and processes catch up to a PCI Level 1 posture.

C · Scope creep

300+ controls (SAQ-D)

The full SAQ-D questionnaire pulls in adjacent systems — logging, backups, dev workstations. Auditors keep finding more in scope.

D · Lock-in

Issuer dependency

Most reveal SDKs ship from a single issuer (Marqeta.js, Stripe Issuing Elements, Galileo MyCardInfo) — you adopt the SDK only by adopting the issuer.

03
How it works
Two API calls, one iframe
5 steps · 2 endpoints

Cross-origin iframe.
Same-Origin Policy does the rest.

The technical guarantee is not policy — it is the browser. When your page embeds a cross-origin iframe from cardview.codegotech.com, the browser refuses to let your JavaScript read inside it. That is the same boundary that prevents arbitrary websites from reading your Gmail inbox. The PAN renders to pixels inside an isolated DOM, visible to your user but inaccessible to your code.

01 · Request

POST /getCardInfo

Your backend calls the Card Reveal API with the cardholder's identifier, your tenant credentials and the card ID. No card data is sent.

02 · Token

One-time URL

Codego returns a single-use 64-hex token bound to that exact card and user, valid 5 minutes. Token is SHA-256 hashed at rest; raw value never persists.

03 · Iframe

Your page embeds it

Your frontend drops <iframe src="cardview.../v/<token>"> into the page. The browser fetches the iframe directly from Codego.

04 · Render

PAN renders client-side

The iframe receives the encrypted payload, decrypts it inside the browser context, and renders the PAN, CVV, holder and expiry as pixels.

05 · Auto-clear

60-second DOM wipe

The viewer clears its own DOM after 60 seconds, blocks print and screenshot shortcuts, and revokes the token on first view. Replay returns 403.

Sample request

curl -X POST https://cardapi.codegotech.com/getCardInfo \
  -H "Content-Type: application/json" \
  -d '{
    "authkey":       "<tenant_api_key>",
    "authekey":      "<base64(user:pass)>",
    "whitelabel_id": "<your_tenant_id>",
    "user_id":       "<end_user_id>",
    "web_token":     "<session_token>",
    "cid":           "<card_id>"
  }'

# response
{
  "status": true,
  "token":     "f5b3...c801",
  "image_url": "https://cardview.codegotech.com/v/f5b3...c801"
}

Open the sandbox docs → Free key, no credit card. Same payload as production.

04
PCI scope reduction
SAQ-D vs SAQ-A · what actually changes
SAQ comparison

From 300+ controls
to 22.

SAQ-D (without Card Reveal)
Stores or transmits cardholder data · 300+ controls · Level 1 audit · $50k–$200k/year
SAQ-A (with Card Reveal)
Fully outsourced to PCI-DSS provider · 22 controls · self-assessment · ~$5k–$15k/year
Cardholder data in your environment
Zero. Your servers never receive PAN, CVV or expiry.
Iframe isolation guarantee
Browser Same-Origin Policy. Same standard that protects bank sessions, Gmail, GitHub OAuth.
Card data at rest
AES-256-GCM. Token SHA-256 hashed. Encrypted payload nulled after first view.
Card data in transit
TLS 1.2+ to Codego. Tenant origin never decrypts.
Replay protection
Atomic single-use UPDATE in DB. Second visit returns 403.
Audit log
Every issue / view / denial logged with IP, UA, timestamp.
05
Vendor-agnostic
Bring your own card issuer
Codego or any issuer

Works with cards issued by
anyone.

Most reveal SDKs are tied to a specific issuer — adopt the SDK by adopting the issuer. The Codego Card Reveal SDK is different. We retrieve the PAN from your existing issuer's authoritative source on each request. You don't need to migrate your card portfolio. You don't need to operate a token vault. You don't need to switch BIN sponsor.

A · Codego

Native integration

If your cards are issued under a Codego BIN programme, the reveal SDK is enabled with a single admin toggle. Zero additional integration.

B · Major processors

Marqeta · Galileo · Thredd

Pre-built connectors for the largest US and EU processors. We call their secure-element API on your behalf and serve the result through our viewer.

C · Big platforms

Stripe Issuing · Adyen

Compatible with reveal endpoints on Stripe Issuing and Adyen Card Issuing. Your card programme stays where it is.

D · BIN sponsors

Custom issuer or sponsor

If your issuer or BIN sponsor exposes a PAN-retrieval API, we build the connector — typically in 2–3 engineering days. Talk to us.

06
Use cases
Who builds with this
4 categories

For teams that
ship cards.

A · Neobank

Show card in app

Display the virtual card to the user before the plastic arrives. Tap to copy CVV, see expiry, all under your app brand — no PCI footprint.

B · Expense / B2B

Reveal corporate cards

Show an employee or vendor their assigned card number for online booking. Single-use viewer, audit-logged, with IP and origin allowlists.

C · Marketplaces

Virtual-card payouts

Push-to-card payout workflows where the recipient sees their freshly issued virtual card. Tokenised, time-bounded, single-view.

D · Crypto on/off-ramp

Show on-ramp card

Crypto-funded cards rendered in your wallet UI. No vault, no SAQ-D, no engineering team turned compliance team.

07
How it compares
Codego Card Reveal SDK vs the category
5 providers

Alternative to Skyflow, VGS, Basis Theory.

Skyflow, Very Good Security and Basis Theory are PCI vaults — you move your card data into their store. Marqeta.js, Stripe Issuing Elements and Galileo MyCardInfo are reveal SDKs from card issuers — you can only use them if you're already their issuing customer. The Codego SDK sits in a different position: iframe reveal on top of your existing issuer, with no vault migration.

Skyflow / VGS / Basis Theory
PCI vault — you migrate card data into their store. Cross-vendor by design but vault-centric.
Marqeta.js · Stripe Issuing Elements · Galileo MyCardInfo
Issuer-bundled reveal SDK — only available to that issuer's customers. Effective lock-in.
Codego Card Reveal SDK
Iframe SDK, vendor-agnostic, no vault. We read from your existing issuer's PAN-retrieval API.
Built by a licensed issuer
Codego operates BIN programmes, holds PCI DSS Level 1 certification (Adsigo 2025), and underwrites the entire stack.
Try without a sales call
Free self-service sandbox at sandbox-cardapi.codegotech.com. Same payload as production.
08
Frequently asked
6 questions
6 Q&A

Card Reveal SDK FAQ.

Q1.How does the Card Reveal SDK reduce PCI DSS scope?
The cardholder's PAN, CVV and expiry are rendered inside a cross-origin iframe served by Codego's PCI-DSS certified infrastructure. Your application embeds the iframe but, because the browser's Same-Origin Policy blocks cross-origin DOM access, your JavaScript can never read the card data. The tenant environment never receives, stores or transmits cardholder data — which moves your assessment from SAQ-D (300+ controls) to SAQ-A (22 controls).
Q2.Does this work with card issuers other than Codego?
Yes. The SDK is vendor-agnostic. If your cards are issued by Marqeta, Galileo, Thredd, Paymentology, Stripe Issuing or your own BIN sponsor, Codego retrieves the PAN from the issuer's secure-element API on your behalf and renders it through the same viewer. You don't need to switch issuer to use the reveal SDK.
Q3.What is SAQ-A vs SAQ-D?
SAQ (Self-Assessment Questionnaire) is the PCI DSS attestation form. SAQ-D applies to merchants who store, process or transmit cardholder data: 300+ controls, full QSA audit, typically $30,000–$200,000 per year. SAQ-A applies to merchants who fully outsource cardholder data handling to a PCI-DSS-certified third party: 22 controls, simplified self-assessment, dramatically lower compliance cost.
Q4.How is this different from Skyflow, VGS or Basis Theory?
Skyflow, Very Good Security and Basis Theory are PCI vaults — you store the PAN with them. Codego Card Reveal SDK does not require you to move your card vault: we read from your issuer's authoritative source on each request. We also have a licensed European issuer entity, so we can underwrite the entire stack (BIN sponsorship + reveal SDK) on top of our own infrastructure, with no separate vendor relationship.
Q5.How fast can I integrate?
Sandbox sign-up is self-service: create a key, copy the curl example, embed the iframe. End-to-end integration typically takes 1–2 engineering days. Production access requires a compliance review (your card programme details + integration scope) and is usually granted within 5 business days.
Q6.What protections are in place to prevent card data leakage?
AES-256-GCM at rest, TLS 1.2+ in transit. Tokens are single-use, expire in 5 minutes, and are stored as SHA-256 hashes (the raw token never persists). The viewer auto-clears the DOM after 60 seconds, blocks print and common screenshot shortcuts, and uses cross-origin iframe isolation. IP allowlist per tenant, rate limits, full audit log.
09
Get started
Free sandbox now · production access in 5 business days
2 paths

Try it now,
no sales call.

Free self-service sandbox. Sign up with your email, get a key in 30 seconds, fire your first request immediately. The sandbox returns 4 hard-coded test cards (Visa, Mastercard, Amex, Visa Declined) and uses the exact same payload as production — when you're ready, change one URL and you're live.

Codego Group LTD · Malta · Est. 2012
EUIPO 018922174 · PCI DSS Level 1 by Adsigo, 2025

Self-service

Try the sandbox

Free key, no credit card, 30-second sign-up. Embed the iframe in your dev environment today.

Get sandbox key Read sandbox docs
Production

Talk to sales

For tenant-level allowlists, custom issuer connectors and production credentials. Response within 24 hours.

Open programme banking@codegotech.com
RL
Related at Codego
Other parts of the Codego stack
5 pages

Continue
exploring.

A · Issuing

Card issuing

Programmatic Visa and Mastercard card issuing — Codego BIN programmes.

B · Processing

Card processor

Authorisation, clearing and settlement layer underneath the card SDK.

C · BaaS

Banking as a Service

Full banking infrastructure — IBAN, SEPA, SWIFT, cards in one stack.

D · Reference

What is PCI DSS?

Scope, levels, SAQ types, what triggers SAQ-D vs SAQ-A.

E · Sandbox

Sandbox developer docs

Free self-service sandbox · test cards · production-identical payload.