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
  • Why use quoteCountryCode?
  • How it works
  • Usage scenarios
  • Sample request
  • Sample response
  • Quote accuracy by scenario
Guides

Get Price Based on User Region

Use quoteCountryCode to fetch region-accurate quotes from the Get Price API

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

How to Add a NFT Smart Contract in the Dashboard and Create a contractId

Next

How to Create a Partner Access Token

Built with

The quoteCountryCode parameter on the Get Price API lets you request a quote tied to the user’s KYC country — so the price your backend fetches always matches what the Transak Widget shows.

Only ISO Alpha-2 country codes are accepted for quoteCountryCode, for example US, FR, IT.

Why use quoteCountryCode?

Consistent Pricing

Quotes from the Get Price API match exactly what users see inside the Transak Widget — no surprises at checkout.

Region-Accurate Fees

Pricing varies by region. Passing the correct country code ensures fees, limits, and rates are calculated for the right market.

How it works

1

Identify the user's KYC country

Check whether you already have the user’s verified KYC country (passed via userData) or need to fall back to their IP-detected location.

2

Set quoteCountryCode

Include quoteCountryCode in your API request query string with the appropriate Alpha-2 code (e.g. FR for France).

3

Receive a region-adjusted quote

The API returns pricing, fees, and limits calculated specifically for that country — ready to display to the user or use for order creation.

Usage scenarios

Scenario 1: When userData query params are used to share the KYC information

When the user’s KYC information is already shared via the userData query parameter, use their KYC country directly.

Example: User’s KYC country is France -> set quoteCountryCode=FR

Scenario 2: User KYC country is unknown or userData query params are not used

If you don’t have the user’s KYC country, fall back to their IP-detected location as a best-effort approximation.

Example: If the user is located in Italy, then quoteCountryCode can be set to IT based on the user’s IP.

Sample request

$curl --request GET \
> --url 'https://api-stg.transak.com/api/v1/pricing/public/quotes?partnerApiKey=YOUR_API_KEY&fiatCurrency=USD&cryptoCurrency=ETH&isBuyOrSell=BUY&network=ethereum&paymentMethod=credit_debit_card&fiatAmount=100&quoteCountryCode=FR' \
> --header 'accept: application/json'

Sample response

1{
2 "response": {
3 "quoteId": "5b42f946-47b4-4bea-9e7e-563488d03333",
4 "conversionPrice": 1.10475627488855,
5 "marketConversionPrice": 1.1161162939576061,
6 "slippage": 1.02,
7 "fiatCurrency": "EUR",
8 "cryptoCurrency": "USDC",
9 "paymentMethod": "credit_debit_card",
10 "fiatAmount": 100,
11 "cryptoAmount": 107.68,
12 "isBuyOrSell": "BUY",
13 "network": "arbitrum",
14 "feeDecimal": 0.0253,
15 "totalFee": 2.53,
16 "feeBreakdown": [
17 { "name": "Transak fee", "value": 2.51, "id": "transak_fee", "ids": ["transak_fee"] },
18 { "name": "Network/Exchange fee", "value": 0.02, "id": "network_fee", "ids": ["network_fee"] }
19 ],
20 "nonce": 1727442044,
21 "cryptoLiquidityProvider": "transak",
22 "notes": []
23 }
24}

Quote accuracy by scenario

User FlowKYC Country CodeIP Country CodequoteCountryCodeQuote Accuracy
When the KYC and IP Country are same (see Scenario 1 above)USUSUS✅
When the KYC and IP Country are not same (see Scenario 1 above)USUKUS✅
When KYC Country is unknown (see Scenario 2 above)

Note: This might not produce the best result considering that KYC country is unknown and the user location might be different than the actual KYC Country.
N/AUKUK🟩