***
title: Query Parameters
slug: customization/query-parameters
subtitle: >-
Customize On-Ramp, Off-Ramp, and NFT Checkout experiences with query
parameters
max-toc-depth: 3
----------------
**Query Parameters** help partners customize the Transak experience across **On-Ramp, Off-Ramp, and NFT Checkout** flows.
Pass the supported parameters in the `widgetParams` of the [Create Widget URL API](/api/public/create-widget-url) to customize the user flow.
`apiKey` and `referrerDomain` are mandatory for all products.
```bash {9}
curl --request POST \
--url https://api-gateway-stg.transak.com/api/v2/auth/session \
--header 'access-token: YOUR_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--data '{
"widgetParams": {
"apiKey": "YOUR_API_KEY",
"referrerDomain": "yourdomain.com",
// Add any other supported parameters here
}
}'
```
Controls the visual look, layout, and product mode of the widget.
PRODUCTION JS SDK>}>
Switches between `STAGING` and `PRODUCTION` environments.
100% JS SDK>}>
Height of the widget iFrame.
100% JS SDK>}>
Width of the widget iFrame.
BUY SELL>}>
Widget primary color in hex (e.g. `#000000`). Used for buttons, links, and highlights.
system BUY SELL>}>
Defaults to the user's system theme when not set.
false BUY SELL>}>
When `true`, hides the menu options completely.
BUY,SELL BUY SELL>}>
Services to display: `BUY` (on-ramp only), `SELL` (off-ramp only), or `BUY,SELL` (both). Order controls which tab appears first. SELL must be enabled in the partner portal.
Controls everything visible on the exchange screen — title, currencies, amounts, networks, payment methods, and fee display.
**General**
BUY SELL>}>
Custom title for the exchange screen. Cannot be changed when both BUY and SELL are active simultaneously.
false BUY SELL>}>
When `true`, skips the exchange screen entirely. Requires `fiatCurrency`, `network`, `paymentMethod`, and `cryptoCurrencyCode` for BUY; additionally `cryptoAmount` for SELL.
false BUY SELL>}>
When `true`, hides the fee breakdown and shows only the total fee. Ignored if your fee exceeds 1%.
**Fiat Currency**
BUY SELL>}>
Fiat currency code (e.g. `GBP`). Customer **cannot** change.
BUY SELL>}>
Default fiat currency; customer can change. Skipped if `fiatCurrency` or `countryCode` is passed. Use alongside `defaultFiatAmount`, not `fiatAmount`.
BUY>}>
Fixed fiat amount. Customer **cannot** change. Skipped if `fiatCurrency` or `countryCode` is not passed.
BUY>}>
Default fiat amount; customer can change. Skipped if `fiatCurrency`/`countryCode` not passed, or if `fiatAmount` is set.
BUY SELL>}>
[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code (e.g. `IN`). Sets fiat currency based on country. Skipped if `fiatCurrency` is passed.
BUY SELL>}>
Comma-separated fiat currencies to hide from the dropdown (e.g. `GBP,EUR`). Skipped if `fiatCurrency` or `countryCode` is passed.
**Crypto Currency**
ETH BUY SELL>}>
Crypto currency code (e.g. `DAI`). Customer **cannot** change. See [supported cryptocurrencies](https://transak.com/crypto-coverage).
BUY SELL>}>
Default cryptocurrency; customer can change. Skipped if `cryptoCurrencyCode` is passed.
BUY SELL>}>
Comma-separated allowed cryptos (e.g. `ETH,DAI,USDT`). Skipped if `cryptoCurrencyCode` is passed.
BUY SELL>}>
Default crypto amount. Skipped if `cryptoCurrencyCode` is not set, or if `fiatCurrency` + `fiatAmount`/`defaultFiatAmount` are passed. Must be within min/max limits.
SELL>}>
Fixed crypto amount to sell (e.g. `0.5678`). Customer **cannot** change.
**Networks**
BUY SELL>}>
Single allowed network (e.g. `ethereum`). Skipped if `networks` is passed.
BUY SELL>}>
Comma-separated list of allowed networks (e.g. `ethereum,polygon`).
BUY SELL>}>
Default network (e.g. `polygon`). Customer can still select another.
**Payment Methods**
BUY SELL>}>
Payment method to lock in. Customer **cannot** select another. See [payment method list in ](/api/public/get-fiat-currencies).
BUY SELL>}>
Default payment method; customer can change. Skipped if `paymentMethod` is passed. See [payment method list](/api/public/get-fiat-currencies).
BUY SELL>}>
Comma-separated payment methods to hide (e.g. `gbp_bank_transfer,sepa_bank_transfer`).
Controls the destination wallet address for purchased crypto.
BUY>}>
Destination wallet address (e.g. `0x8634...`). Customer can edit. Pass `cryptoCurrencyCode` or `network` alongside.
BUY>}>
Multiple wallet addresses keyed by network/coin in JSON format. Skipped if `walletAddress` is passed. See [example](/guides/how-to-use-advanced-query-params#wallet-configuration).
false BUY>}>
When `true`, customer cannot edit the destination address. Requires `walletAddress` or `walletAddressesData`.
false SELL>}>
Enables wallet redirection for off-ramp flows. See [details](/guides/how-to-use-advanced-query-params#wallet-configuration).
Pre-fills customer identity data to streamline or skip the KYC form.
BUY SELL>}>
Customer email (e.g. `user@mail.com`). URL-encode if it contains special characters.
BUY SELL>}>
User details (name, address, date of birth). If all fields are provided, the customer won't be prompted to enter them. See [example](/guides/how-to-use-advanced-query-params#user-identity--kyc).
false BUY SELL>}>
When `true`, auto-fills the email field without skipping the KYC screen. Ignored if `email` or `userData` is not passed.
Session control, partner tracking IDs, and post-transaction redirects.
BUY SELL>}>
Your domain URL. Used with `apiKey` to identify and track your project.
JS SDK>}>
One-time signed URL from the [Create Widget URL](/api/public/create-widget-url) API. Encapsulates all other parameters securely.
BUY SELL>}>
Your internal order ID returned in webhook callbacks (e.g. `5e2f559511a9de`).
BUY SELL>}>
Your internal customer ID returned in webhook callbacks (e.g. `23487492`).
BUY SELL>}>
URL to redirect to after the transaction completes. Must be a valid `https://` URL. See [details](/guides/how-to-use-advanced-query-params#redirects--tracking).
Core parameters required for any NFT Checkout integration.
Pass as `true` to enable NFT Checkout mode.
The calldata to pass to your smart contract. [How to generate calldata](/guides/how-to-generate-calldata-for-nft-checkout). **Note:** If the function accepts a user wallet address, use Transak's smart contract address. See [example](/products/nft-checkout#transak-smart-contract-addresses).
Unique identifier for your smart contract address and network combination. Generate via [dashboard.transak.com](https://dashboard.transak.com). Staging: whitelisted immediately. Production: requires smart contract audit review.
The cryptocurrency your smart contract accepts. See [supported cryptocurrencies](https://transak.com/crypto-coverage).
Gas limit to execute the transaction on your smart contract. See [Ethereum Gas Docs](https://ethereum.org/en/developers/docs/gas/) for EVM chains. **Cannot be 0.**
NFT data array (Base64-encoded, single element). Fields: `imageURL` (optional), `nftName` (optional), `collectionAddress`, `tokenID` (array), `price` (absolute crypto value), `quantity`, `nftType` (`ERC721` or `ERC1155`). Length of `price` and `tokenID` arrays must equal `quantity`. See [example](/guides/how-to-use-advanced-query-params#nft-checkout-parameters).
Destination wallet, fiat currency, and payment method controls for the NFT purchase flow.
**Wallet**
Blockchain address where the purchased NFT will be sent. Users can edit. Pass `cryptoCurrencyCode` or `network` to ensure a valid address.
When `true`, customer cannot change the destination address. Requires `walletAddress`.
**Fiat Currency**
Fiat currency code for the NFT purchase (e.g. `GBP`). If unsupported, widget loads with all supported currencies.
Default fiat currency; customer can change. Skipped if `fiatCurrency` or `countryCode` is passed.
[ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code (e.g. `IN`). Skipped if `fiatCurrency` is passed.
**Payment Methods**
Payment method to lock in (e.g. `credit_debit_card`). Customer cannot select another. See [payment method list](/customization/control-fiat-crypto-options#payment-method).
Default payment method; customer can change. Skipped if `paymentMethod` is passed.
Comma-separated list of payment methods to hide (e.g. `credit_debit_card`).
Pre-fill customer data to streamline KYC, and set partner-level tracking identifiers.
**User Identity**
Email to identify the customer. URL-encode if it contains special characters.
User details (name, address, date of birth). If all fields are provided, the customer won't be prompted to enter them. See [example](/guides/how-to-use-advanced-query-params#user-identity--kyc).
**Tracking**
Your internal order ID (e.g. `5e2f559511a9de`). Returned in webhook callbacks.
Your internal customer ID (e.g. `23487492`). Returned in webhook callbacks.
Visual customization options for the NFT Checkout widget.
Widget primary color in hex (without `#`, e.g. `000000`). Used for buttons, links, and highlighted text.
Defaults to the user's system theme when not set.
Custom title for the exchange screen (e.g. `Buy NFT`).
When `true`, hides menu options completely.
When `true`, shows only the total fee instead of the full breakdown. Ignored if your fee exceeds 1%.
100% JS SDK>}>
Height of the widget iFrame.
100% JS SDK>}>
Width of the widget iFrame.