For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dashboard
DocsAPI Reference
DocsAPI Reference
    • What is Transak
  • Features
    • Auth Reliance
    • KYC Reliance using Sumsub
    • Webhooks
    • WebSockets
  • Products Overview
    • On Ramp
    • Off Ramp
    • NFT Checkout
  • Integration Options
    • API
  • Customization Options
    • Query Parameters
    • Customizing theme using query parameters
  • Guides
    • How To Create a Partner Dashboard Account
    • How to Add Partner Fees and Set Up Partner Payouts
    • How to Test using Sandbox Credentials
    • How to Test ACH Pull Transaction in Sandbox
    • How to Test Apple Pay in Sandbox
    • How to Track Order Status
    • Transak Different KYC Levels
    • How to Submit FCA Requirements
    • How to Use Advanced Query Params
    • How to Create a Widget URL with Parameters and Test Different Scenarios
    • How to Generate Calldata for NFT Checkout
    • How to Add NFT Smart Contract in the Dashboard and Create a contractId
    • Get Price based on User Region
    • How to Create Partner Access Token
    • How to Decrypt the Webhook Payload
    • How to add MCP Server for Transak Documentation
    • Widget with API Customization
    • Integration Update - Mandatory Migration to API based Transak Widget URL
    • Biconomy: Simplified Onboarding Using MEE-Compatible Smart Accounts
    • Partner FAQs
    • Need Help?
Dashboard
LogoLogo
On this page
  • Who Should Use This?
  • Key Capabilities
  • Partner Integration Prerequisites
  • Current Limitations & Known Constraints
  • API Overview
Integration Options

Whitelabel API

A complete API solution for building custom on/off ramp experiences.

||View as Markdown|
Was this page helpful?
Edit this page
Previous

NFT Checkout

Next

Redirection

Built with

The Transak Whitelabel API enables partners to integrate Transak products directly into their own platforms using APIs, without displaying any third-party user interface (such as the Transak Widget).

Partners maintain complete control over the user interface and end-to-end user journey, while Transak manages the backend complexities through APIs, including KYC, compliance, liquidity, payment processing, and fraud management.

Who Should Use This?

This solution is ideal for partners who want to fully own and control the E2E user journey, including the user interface, experience, and flow.

Wallets

Integrate fiat on/off-ramps directly into wallet interfaces for seamless user experience.

DEXs or CEXs

Enable users to buy and sell crypto within your exchange platform using fiat.

DApps

Add fiat payment options to decentralized applications for broader user accessibility.

Fintech Apps

Power remittances, neobanks, and cross-border payment solutions with crypto rails.

Key Capabilities

Build and control the complete user journey, from authentication and KYC to order creation and tracking, without any third-party UI.

Multi-Asset & Multi-Chain Support

Access 136+ cryptocurrencies across 45+ blockchains in 64+ countries with transparent pricing via Lookup APIs.

Automated Order Management

Create and track orders programmatically using REST APIs, Webhooks, and WebSockets.

Compliance & Risk Management

Transak handles KYC, AML, transaction monitoring, and regulatory compliance.

KYC Reliance Via Sumsub

Reuse your existing KYC data with Transak through Sumsub for faster onboarding.

Partner Integration Prerequisites

1

Contact & Request Whitelabel APIs access

Follow the steps in the Need help in Integration section to reach us. Then raise the request to enable Whitelabel APIs for your API key and share your public IP addresses with Transak for whitelisting to use our APIs in your backend.

2

Start Whitelabel API Integration

Start by designing and implementing the complete user flow, including error handling. See the Lookup API reference to begin.

3

Include Transak's Terms & Conditions

You must include Transak’s Terms of Service within their own Terms & Conditions. End users must be able to review and acknowledge Transak’s T&C as part of the user journey.

Current Limitations & Known Constraints

ProductSupportedLimitations
On RampYes

Card / Apple Pay: Semi-widget flow required. Navigate to Transak’s Widget to add cards and place orders.

Google Pay: Not supported.

Bank Transfers: Fully supported through APIs.

Lite KYC: Fully supported through APIs (Personal & Address details).

Standard KYC: Navigate to Transak’s provider widget to upload Document ID Proof and conduct Liveness checks.

Off RampNo

NA

NFT CheckoutNo

NA

KYC Reliance Via SumsubYes

Not supported for US KYC users

Transak Stream - Off RampNo

NA

Transak Stream - On RampNo

NA

Whitelabel APIs are to be called only from the partner backend and subjected to the whitelisting of partner IP addresses. Direct API calls from the frontend apps are not supported.

API Overview

Lookup

Lookup APIs provide public reference data that you can use before initiating a session. Use them to populate currency selectors, validate supported regions, and fetch real-time quotes — no authentication required.

Get Crypto Currencies
Returns a list of supported crypto assets with network and symbol details.
Get Fiat Currencies
Returns all supported fiat currencies along with their default locale mappings.
Get Countries
Returns supported countries and any applicable regional restrictions.
Get Quote
Returns a real-time quote with the expected amount and fee breakdown.
User
Login Flow
Not Logged In Flow
Logged In User Flow Chart
1

Lookup

Fetch all required data before presenting the order form.

Get Fiat Currencies
Fetch supported fiat currencies and payment methods.
Get Crypto Currencies
Fetch available crypto assets and networks.
Get Quote
Pass values from the steps above to get a real-time quote.
2

Get User Details

Pass the existing User Access Token to Get User Details to fetch the user’s KYC status. Route the user as follows:

ConditionNext step

response = 200 and data.kyc.status === “APPROVED”

Proceed to Create Order — Bank Transfer, Create Order — Cards, or Create Order — Apple Pay flow

response = 200 and data.kyc.status === “NOT_SUBMITTED”

Proceed to KYC Flow

response = 200 and data.kyc.status === “ADDITIONAL_FORMS_REQUIRED”

Proceed to Additional KYC Flow

response = 401

Proceed to Not Logged In Flow — the User Access Token is missing, expired, or invalid. Re-authenticate using the Not Logged In Flow tab (Send User OTP → Verify User OTP).

KYC

This document provides a detailed explanation of KYC flows, covering Simple KYC, Standard KYC and Enhanced KYC, along with the required API interactions and processes. KYC is a mandatory step in compliance with regulatory requirements before users can place orders on Transak.

KYC Flow Chart

KYC Chart
KYC TypeRequirements
Simple KYCPersonal Details, Address Details, SSN (for US users only), FCA (for UK users only)
Standard KYCPersonal Details, Address Details, SSN (for US users only), FCA (for UK users only), ID Proof Upload, Liveness Check (Selfie)
Enhanced KYCPersonal Details, Address Details, SSN (for US users only), FCA (for UK users only), Source of Income, Proof Document Upload, ID Proof Upload, Liveness Check (Selfie)

Fetch KYC Requirement Based on Quote ID

The KYC requirements are determined dynamically using the quote ID. Transak supports multi-level KYC, meaning different users may have different requirements based on country, regulations, and transaction limits.

When fetching KYC Requirement, there can be three status -

KYC StatusDescription
APPROVEDKYC is done and approved by Transak. User can proceed with the order creation flow.
SUBMITTEDKYC personal and address details or additional forms are submitted.
NOT_SUBMITTEDKYC personal and address details are not submitted.
ADDITIONAL_FORMS_REQUIREDAll details are submitted but some more additional requirements need to be fulfilled for KYC approval.
  • Personal Details → First name, last name, email, and mobile number.
  • Address Details → User’s residential details (address, city, state, zip code).
  • Purpose of Usage → Used for compliance with regulations.
  • ID Proof → Required only if Standard or Enhanced KYC is needed.
  • SSN → Required only for US KYC users.
  • FCA → Required only for UK KYC users.
  • Source of Income → Required only if Enhanced KYC is needed.
  • Proof Document → Required only if Enhanced KYC is needed.

All forms must be submitted in the sequence provided in the Get Additional Requirements API.

KYC Flow - Step-by-Step Guide

1

Fetch KYC Status

Call Get KYC Requirement with the quoteId to fetch current status of the user’s KYC.

ConditionNext step

data.kyc.status = APPROVED

Move forward with the Create Order Flow

data.kyc.status = NOT_SUBMITTED

Follow Step 2

data.kyc.status = ADDITIONAL_FORMS_REQUIRED

Follow Step 3

2

Patch User Details

Call Patch User Details to collect and submit the user’s personal and address information.

Once submitted, return to Step 1 to re-fetch the updated KYC status.

3

Get Additional Requirements

Call Get Additional Requirements to check which forms still need to be completed.

Check if additional information must be provided for KYC Approval. Multiple forms may appear and must be submitted in the sequence provided in the API response:

  1. If type = PURPOSE_OF_USAGE → Follow Step 4
  2. If type = IDPROOF → Follow Step 5
  3. If type = US_SSN → Follow Step 6
  4. If type = FCA → Follow Step 7
  5. If type = SOURCE_OF_INCOME → Follow Step 8
  6. If type = DOCUMENT_PROOF → Follow Step 9
4

Post Purpose of Usage

Call Update Purpose of Usage to record the user’s reason for buying crypto.

5

Complete ID Proof & Liveness Check (For Standard KYC)

Redirect the user to the Transak-hosted KYC Widget using the kycUrl returned in the Additional Requirements response.

ID Proof Upload
action

Upload a photo ID — Passport, Driver’s License, or National ID

Liveness Check
action

Submit a selfie for real-time identity validation

6

Submit SSN (US Users Only)

Call Submit SSN to validate the user’s identity using their Social Security Number.

7

Submit FCA (UK Users Only)

FCA (Financial Conduct Authority) compliance is required for all UK users. The flow covers three sequential steps — investor categorization, a compliance agreement, and a risk assessment.

See the dedicated guide for the full API sequence, status handling, and step-by-step integration details:

How to Submit KYC FCA Requirements
8

Submit Source of Income (For Enhanced KYC)

Call Submit Source of Income to capture the user’s primary income source. Required for higher transaction limits.

9

Upload Proof Document (For Enhanced KYC)

Call Upload Proof Document to submit supporting documentation for the income source selected in the previous step.

Different KYC Levels Guide

KYC TypeKYC StatusUser StatusAction
nullNOT_SUBMITTEDACTIVECall GET KYC Requirement API → Complete KYC Forms
SIMPLESUBMITTEDACTIVEPoll GET User Details API
SIMPLEAPPROVEDACTIVECall GET KYC Requirement API → If APPROVED place order → If ADDITIONAL_FORMS_REQUIRED call Get Additional Requirements API → If NOT_SUBMITTED patch user details
SIMPLEREJECTEDACTIVECall GET KYC Requirement API → If ADDITIONAL_FORMS_REQUIRED call Get Additional Requirements API → If NOT_SUBMITTED patch user details
STANDARDSUBMITTEDACTIVEPoll GET User Details API
STANDARDAPPROVEDACTIVECall GET KYC Requirement API → If APPROVED place order → If ADDITIONAL_FORMS_REQUIRED call Get Additional Requirements API
STANDARDREJECTEDACTIVECall GET KYC Requirement API → If APPROVED place order → If ADDITIONAL_FORMS_REQUIRED call Get Additional Requirements API → If NOT_SUBMITTED patch user details
STANDARDREJECTEDDISABLEDShow static screen — Contact Support
ENHANCEDSUBMITTEDACTIVEPoll GET User Details API
ENHANCEDAPPROVEDACTIVECall GET KYC Requirement API → If APPROVED place order
ENHANCEDREJECTEDACTIVECall GET KYC Requirement API → If APPROVED place order → If ADDITIONAL_FORMS_REQUIRED call Get Additional Requirements API → If NOT_SUBMITTED patch user details
ENHANCEDREJECTEDDISABLEDShow static screen — Contact Support
KYC Reliance
KYC Reliance Flow Chart

API Sequence

1

Get KYC Reliance Quote

Call Get KYC Reliance Quote with kycShareTokenProvider and kycShareToken alongside the common fields used in the standard Get Quote API.

On success, you will receive a quoteId to use in the next step.

2

Get KYC Reliance Status

Call Get KYC Reliance Status with the quoteId and kycShareToken to fetch the user’s KYC status, then route accordingly:

kycStatus
FAILED · 401 · 500

Generate a new KYC Share Token and repeat from Step 1.

kycStatus
IMPORTED · DONE

Proceed to Get KYC Steps.

Things to Consider

  1. KYC Reliance supports only SumSub providers, and more are coming soon.
  2. KYC Reliance supports only Standard KYC as the default process, where Document ID and Selfie checks are mandatory. The partners should pass the Document ID and Selfie documents to get the complete whitelabel experience to onboard their users seamlessly as per the steps mentioned in the docs.
  3. Purpose Of Purchase is a mandatory step in Transak’s KYC system, even for KYC Reliance flows.
  4. Refer to the detailed step-by-step guide to generating the KYC Share token using SumSub docs.
Orders
Bank Transfer
Cards
Apple Pay
Open Banking
Bank Transfer Flow Chart
1

Get KYC Requirement

Call Get KYC Requirement with the quoteId to fetch the user’s KYC status and route accordingly:

WhenNext step

data.kyc.status = APPROVED

No further steps in the KYC process. Proceed to Get User Limits.

data.kyc.status = NOT_SUBMITTED

User details need to be submitted. Proceed to Patch User Details.

data.kyc.status = ADDITIONAL_FORMS_REQUIRED

More steps in the KYC process are required. Proceed to Get Additional Requirements.

2

Get User Limits

Call Get User Limits with paymentMethod = bank_transfer and fiatCurrency to fetch the user’s monthly, daily, and yearly limits along with available limits to place an order.

On success → proceed to Get Active Orders.

3

Get Active Orders

Call Get Active Orders to check for any existing pending orders. Transak doesn’t support placing multiple orders simultaneously.

activeOrder
exists

Proceed to Cancel Order

activeOrder
not exists

Proceed to Create Order

4

Create Order

Call Create Order passing quoteId, paymentInstrumentId (payment method), and walletAddress.

Case 1
status = AWAITING_PAYMENT_FROM_USER · errorMessage = null

Proceed to Confirm Payment

Case 2
status = AWAITING_PAYMENT_FROM_USER · errorMessage = Order exists

Cancel Order → repeat Get User Limits

Case 3
statusCode = 400 · message = Order exists

Get Quote → repeat Get User Limits

5

Confirm Payment

Call Confirm Payment with orderId and paymentMethod to confirm the bank transfer.

On success → proceed to Get Order By ID.

6

Cancel Order

Call Cancel Order with orderId and cancelReason to cancel a pending order.

Cancel before re-ordering

This step is only required when an existing active order is detected. After cancellation, return to Get User Limits to start a fresh order.

7

Get Order By ID

Call Get Order By ID with orderId to poll the final order status.