Skip to main content

Overview

PIN operations use a secure token-based flow that keeps sensitive data completely isolated from your application. Card details and PIN viewing are delivered as secure images, while PIN setting uses hosted pages. You never handle or store sensitive PIN data.
Never attempt to handle, store, or transmit PIN data directly in your application. Always use the token-based flow.

Security Architecture

Token-Based Flow

Sensitive operations follow a simple pattern:
1

Generate Token

Request a single-use, time-limited token from the API
2

Display Secure Content

For viewing: Display secure image. For setting: Use PCI-compliant hosted page
3

Token Expires

Token is invalidated after use or timeout (~10 minutes)

Benefits

PCI Compliance

No sensitive data touches your infrastructure

Zero Liability

Reduces security audit scope

Built-in Security

Session management and expiration

User Trust

Industry-standard secure pages

Viewing Card Details

Display full card information (PAN, CVV, expiry) as a secure image. The card details are never transmitted to or stored by your application.

Step 1: Generate Details Token

Request Parameters

object
Optional styling to match your brand. If omitted, default styling is applied.

Response

string
Single-use token valid for ~10 minutes
string
URL that renders card details as a secure image. Use as src attribute of an <img> tag.
Security: Treat imageUrl as highly sensitive. Never log or store it. Use HTTPS only and display in secure contexts.

Step 2: Display Card Image

Complete React Implementation

Viewing PIN

Display the card PIN as a secure image. The PIN is never transmitted to or stored by your application.

Step 1: Generate PIN Token

Request Parameters

object
Optional styling to match your brand. If omitted, default styling is applied.

Response

string
Single-use token valid for ~10 minutes
string
URL that renders PIN as a secure image. Use as src attribute of an <img> tag.
Security: Treat imageUrl as highly sensitive. Never log or store it. Display only in authenticated, secure contexts.

Step 2: Display PIN Image

Complete React Implementation

Setting/Changing PIN

Allow users to create or change their PIN through a secure hosted page.

Step 1: Generate Set PIN Token

Request Parameters

Same as PIN viewing, with identical customCss options.

Response

Set PIN hosted page includes built-in validation for PIN requirements (4 digits, no sequential patterns, etc.)

Step 2: Display Set PIN Page

Complete PIN Management Component

Sequence Diagrams

View Card Details Flow

View PIN Flow

Set PIN Flow

Customization Examples

Dark Theme

Light Theme

Brand Theme

Security Best Practices

Token Handling

Never store tokens in localStorage or sessionStorage
Use tokens immediately after generation
Don’t reuse tokens - generate new ones for each operation
Implement token expiration handling

Image URL Security

Image URLs contain sensitive data. Never log, cache, or store them. Use HTTPS only and display only in authenticated contexts.

iframe Security (Set PIN Only)

For PIN setting operations that use hosted pages:

Origin Verification (Set PIN Only)

Only needed for PIN setting hosted pages:

Content Security Policy

Troubleshooting

Cause: Token has ~10 minute lifetimeSolution: Generate token only when user clicks action button
Cause: Token expired, already used, or network issueSolution: Implement error handling and retry logic
Cause: Color contrast issues or invalid hex codesSolution: Ensure valid hex codes and sufficient contrast
Cause: Origin verification failing or listener not attachedSolution: Verify origin and ensure listener is active (only applies to set-PIN hosted page)
Cause: PIN changes not allowed on frozen cardsSolution: Check card status and disable PIN change button

Next Steps

Transaction History

View and manage card transactions

Card Management

Freeze, unfreeze, and control cards

Order Cards

Issue new virtual cards

API Reference

Complete API documentation