Skip to main content

1

Generate Key Pair

Endpoint: POST /api/v1/onboarding/generate-keysCaller: Card Issuer Application (when user enables DRP)Request: NoneResponse:
Copy these values:
  • keyId → Steps 2, 4
  • publicKey → Step 2
  • privateKey → Step 5
2

Register User

Endpoint: POST /api/v1/onboarding/registerCaller: Card Issuer ApplicationRequest:
Response:
Copy: userId → Step 4
hashedPan is SHA-256 hash of Primary Account Number. Card issuer application computes this—DRP never sees the actual PAN.
3

Create Payment with Encrypted Receipt

Endpoint: POST /api/v1/payments/{gateway}/createCaller: Merchant POS (when user taps card)Request:
Response:
Copy: paymentId and gateway name (stripe or square) → Step 5
recipientHashedPan must match Step 2 hash
4

Grant Decrypt Access

Endpoint: POST /api/v1/keys/grant-accessCaller: Card Issuer Application (when user taps “View Receipt”)Request:
Response:
Copy: tokenId → Step 5 as accessTokenId
Token expires in 2-3 minutes
5

Decrypt Receipt

Endpoint: POST /api/v1/payments/decryptCaller: Card Issuer ApplicationRequest:
Response:

Summary


Security

End-to-End Encryption

Receipt encrypted with user’s public key. Only user’s private key can decrypt.

Zero Knowledge

DRP stores only hashed PAN. No access to account data or plaintext receipts.

User Consent

Decryption requires biometric/PIN. Tokens expire in 2-3 minutes.

Private Key Security

Stored in device secure enclave. Never transmitted over network.