KYC Reliance using APIs

Submit partner-completed Standard KYC data to Transak over a sequential API flow

View as Markdown

KYC Reliance using APIs lets you submit KYC already completed on your platform, so end-users don’t have to repeat KYC for Transak.

If you’ve already verified a user through Sumsub, Onfido, or any other provider your platform uses send that verified data to Transak via the KYC Reliance using APIs. Transak validates the submission and relies on your KYC instead of re-running KYC from scratch.

This eliminates duplicate KYC for end-users cutting friction and drop-off while maintaining Transak’s compliance requirements.

KYC Comparison (KYC Reliance (API) vs. Sumsub vs. Transak Widget)

KYC Reliance (API)KYC Reliance (Sumsub)Transak Widget KYC
Use caseUse this when KYC has already been completed on your platform and you don’t want users to repeat the same KYC process on Transak.Use when you rely on Sumsub for KYC and want Transak to use the same KYC data using Sumsub.Use when users complete KYC directly inside the Transak widget using the Transak KYC Provider.
Identity checksPass User’s KYC information to Transak and Transak verifies users information using via KYC Reliance using APIsTransak verifies users data from the Sumsub token shared with Transak via Sumsub integrationTransak verifies users within the widget with the Transak KYC Provider
Data flowPartner sends all user data (profile details, documents, biometrics) via KYC Reliance using APIsUser completes KYC in Sumsub, data is shared with Transak via Sumsub integrationWidget collects user data and documents directly from the user
Supported KYC levelsStandard KYC onlyStandard KYC onlyLite KYC, Standard KYC & Enhanced KYC

Our Solution

Provider agnostic

Partners are not limited to a single KYC vendor. They can collect KYC data using providers like Sumsub, Onfido, and map that data via Transak’s KYC Reliance using APIs.

Aggregated payloads

All required data such as personal details, address, purpose of usage, and country-specific ID documents can be submitted together in a single API call, instead of multiple calls.

No duplicate UX in the partner’s app

Users who have already completed KYC on the partner’s platform do not need to repeat the same process in Transak. Their verified profile can be reused seamlessly across Transak products.

Seamless experience & Faster onboarding

User KYC data verified on your platform is submitted to Transak via KYC Reliance using APIs. This means users who have already been verified on your platform can proceed directly to the order—without any KYC screens appearing in the white-label flows.

How to integrate?

1

Whitelist Your API Keys

Action
Follow the steps in the Need help in Integration section
Request API key whitelisting and ask to enable KYC Reliance using APIs for your API key
Share your public IP addresses with Transak for whitelisting to use our APIs in your backend
2

Submit user details (profile, address, purpose, and ID Document details)

Call the Identity Details API with a single combined payload.

This should include the following data:

Personal Details (required)

KeySub KeyTest data
personalDetailsfirstNameJane
lastNameDoe
dob1998-01-01
mobileNumber+33791112345
addressDetailsaddressLine1170 Rue du Faubourg Saint-Denis
countryCodeFR
postCode75010
stateParis
cityParis
addressLine2optional

PURPOSE OF USAGE (required)

keydescription
purposeList*"Buying/selling crypto for investments",
"Buying NFTs",
"Buying crypto to use a web3 protocol"

TIN Details (optional)

keydescription
documentType*[US_SSN, PAN_NUMBER]
documentNumber*tax identification number

Use the same allowed purposeList values as existing API contract. Country-specific tax ID details are required only when applicable, for example PAN_NUMBER for India or US_SSN for the United States.

3

Submit identity documents

Call the Document Details API with this below fields:

KeyDescription
idType*Type of Document IDs (see Supported Document IDs section below)
idCountryCode*Country code where the document was issued
idNumber*Document identification number
frontImage*Front image of the document (base64, max 5MB)
backImageBack image of the document (base64, max 5MB) (optional)
4

Submit biometrics (selfie and liveness)

Call the Biometrics Details API to submit the user’s biometric verification media.

Both values must be base64-encoded and sent as data URIs. See Supported formats for the accepted file types.

data:<mime-type>;base64,<base64_encoded_data>

Example: data:image/png;base64,<base64_encoded_data>

Either both or any other can be submitted for selfie and liveness to complete the KYC submission.

Supported Formats

Media typeAccepted formats
Selfie Image (document ID front/back, selfie)JPEG PNG WEBP
liveness VideoMP4

Supported Document IDs

idTypeAccepted documents
PASSPORTpassport
DRIVING_LICENCEdriving_licence, DriversLicense
ID_CARDnational_identity_card, AadharCard
PROOF_OF_RESIDENCEbank_statement, resident_permit, utility_bill, payslip
VISAvisa
UNKNOWNAny other value not listed above

Field Validation

Personal & Address Fields

FieldConstraint
firstName / lastName1–50 characters. ASCII only.
Cannot contain ^ ! # $ % * = < > ; { }
addressLine13–200 characters. ASCII only. Cannot contain ! $ % ^ * = < >
addressLine2Optional Same character restrictions as addressLine1
city2–50 characters
state2–100 characters
postCodeMust be a valid postal code for the given countryCode
dobISO 8601 date (YYYY-MM-DD). User must be ≥ 18 and < 150 years old
mobileNumberMust be a valid international phone number (E.164 format, e.g. +33791112345)

Tin Details

ValueApplicable countrydocumentNumber format
US_SSNUS9 digits (e.g. 123456789)
PAN_NUMBERIND10-character alphanumeric (e.g. ABCDE1234F)

How to encode images and video as Base64

All document images, selfies, and liveness media should be sent as Base64-encoded strings.

  • The encoded value must be a single continuous string (no line breaks or spaces).
  • Ensure the full file is encoded — do not truncate the string.

Encode a file as Base64 (example snippets)

Node.js
1const fs = require('fs');
2
3// Supported image formats: JPEG, PNG, WEBP
4// Supported video format: MP4
5const filePath = './id-front.jpg';
6const mimeType = 'image/jpeg'; // e.g. image/png, image/webp, video/mp4
7
8const base64Data = fs.readFileSync(filePath, { encoding: 'base64' });
9const encoded = `data:${mimeType};base64,${base64Data}`;
10// Send `encoded` in the API request body

How does it work?

KYC Reliance Using API

Current Limitations

The KYC Reliance API must be called only from the partner’s backend. and subjected to the whitelisting of partner IP addresses. Direct API calls from the frontend apps are not supported.

API Overview