> For a complete page index, fetch https://docs.transak.com/llms.txt # Query Parameters **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 } }' ``` #### On/Off Ramp #### Widget Appearance Controls the visual look, layout, and product mode of the widget. **`environment`** — default: PRODUCTION JS SDK Switches between `STAGING` and `PRODUCTION` environments. --- **`widgetHeight`** `string` — default: 100% JS SDK Height of the widget iFrame. --- **`widgetWidth`** `string` — default: 100% JS SDK Width of the widget iFrame. --- **`themeColor`** `string` — default: BUY SELL Widget primary color in hex (e.g. `#000000`). Used for buttons, links, and highlights. --- **`colorMode`** `'LIGHT' | 'DARK'` — default: system BUY SELL Defaults to the user's system theme when not set. --- **`hideMenu`** `boolean` — default: false BUY SELL When `true`, hides the menu options completely. --- **`productsAvailed`** `string` — default: 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. --- #### Exchange Screen Controls everything visible on the exchange screen — title, currencies, amounts, networks, payment methods, and fee display. **General** **`exchangeScreenTitle`** `string` — default: BUY SELL Custom title for the exchange screen. Cannot be changed when both BUY and SELL are active simultaneously. --- **`hideExchangeScreen`** `boolean` — default: false BUY SELL When `true`, skips the exchange screen entirely. Requires `fiatCurrency`, `network`, `paymentMethod`, and `cryptoCurrencyCode` for BUY; additionally `cryptoAmount` for SELL. --- **`isFeeCalculationHidden`** `boolean` — default: false BUY SELL When `true`, hides the fee breakdown and shows only the total fee. Ignored if your fee exceeds 1%. --- **Fiat Currency** **`fiatCurrency`** `string` — default: BUY SELL Fiat currency code (e.g. `GBP`). Customer **cannot** change. --- **`defaultFiatCurrency`** `string` — default: BUY SELL Default fiat currency; customer can change. Skipped if `fiatCurrency` or `countryCode` is passed. Use alongside `defaultFiatAmount`, not `fiatAmount`. --- **`fiatAmount`** `number` — default: BUY Fixed fiat amount. Customer **cannot** change. Skipped if `fiatCurrency` or `countryCode` is not passed. --- **`defaultFiatAmount`** `number` — default: BUY Default fiat amount; customer can change. Skipped if `fiatCurrency`/`countryCode` not passed, or if `fiatAmount` is set. --- **`countryCode`** `string` — default: BUY SELL [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code (e.g. `US`). Sets fiat currency based on country. Skipped if `fiatCurrency` is passed. --- **`excludeFiatCurrencies`** `string` — default: BUY SELL Comma-separated fiat currencies to hide from the dropdown (e.g. `GBP,USD`). Skipped if `fiatCurrency` or `countryCode` is passed. --- **Crypto Currency** **`cryptoCurrencyCode`** `string` — default: ETH BUY SELL Crypto currency code (e.g. `DAI`). Customer **cannot** change. See [supported cryptocurrencies](https://transak.com/crypto-coverage). --- **`defaultCryptoCurrency`** `string` — default: BUY SELL Default cryptocurrency; customer can change. Skipped if `cryptoCurrencyCode` is passed. --- **`cryptoCurrencyList`** `string` — default: BUY SELL Comma-separated allowed cryptos (e.g. `ETH,DAI,USDT`). Skipped if `cryptoCurrencyCode` is passed. --- **`defaultCryptoAmount`** `number` — default: BUY SELL Default crypto amount. Skipped if `cryptoCurrencyCode` is not set, or if `fiatCurrency` + `fiatAmount`/`defaultFiatAmount` are passed. Must be within min/max limits. --- **`cryptoAmount`** `number` — default: SELL Fixed crypto amount to sell (e.g. `0.5678`). Customer **cannot** change. --- **Networks** **`network`** `string` — default: BUY SELL Single allowed network (e.g. `ethereum`). Skipped if `networks` is passed. --- **`networks`** `string` — default: BUY SELL Comma-separated list of allowed networks (e.g. `ethereum,polygon`). --- **`defaultNetwork`** `string` — default: BUY SELL Default network (e.g. `polygon`). Customer can still select another. --- **Payment Methods** **`paymentMethod`** `string` — default: BUY SELL Payment method to lock in. Customer **cannot** select another. See [payment method list in ](/api/public/get-fiat-currencies). --- **`defaultPaymentMethod`** `string` — default: BUY SELL Default payment method; customer can change. Skipped if `paymentMethod` is passed. See [payment method list](/api/public/get-fiat-currencies). --- **`disablePaymentMethods`** `string` — default: BUY SELL Array of payment methods to hide (e.g. `["gbp_bank_transfer"]`). see all the payment methods [payment method list](/api/public/get-fiat-currencies). --- #### Wallet Address Controls the destination wallet address for purchased crypto. **`walletAddress`** `string` — default: BUY Destination wallet address (e.g. `0x8634...`). Customer can edit. Pass `cryptoCurrencyCode` or `network` alongside. --- **`walletAddressesData`** `object` — default: 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). --- **`disableWalletAddressForm`** `boolean` — default: false BUY When `true`, customer cannot edit the destination address. Requires `walletAddress` or `walletAddressesData`. --- **`walletRedirection`** `boolean` — default: false SELL Enables wallet redirection for off-ramp flows. See [details](/guides/how-to-use-advanced-query-params#wallet-configuration). --- #### KYC & User Identity Pre-fills customer identity data to streamline or skip the KYC form. **`email`** `string` — default: BUY SELL Customer email (e.g. `user@mail.com`). URL-encode if it contains special characters. --- **`userData`** `object` — default: 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). --- **`isAutoFillUserData`** `boolean` — default: false BUY SELL When `true`, auto-fills the email field without skipping the KYC screen. Ignored if `email` or `userData` is not passed. --- #### Advanced — Tracking, Redirects & Session Session control, partner tracking IDs, and post-transaction redirects. **`referrerDomain`** `string` — required, default: BUY SELL Your domain URL. Used with `apiKey` to identify and track your project. --- **`widgetUrl`** `string` — default: JS SDK One-time signed URL from the [Create Widget URL](/api/public/create-widget-url) API. Encapsulates all other parameters securely. --- **`partnerOrderId`** `string` — default: BUY SELL Your internal order ID returned in webhook callbacks (e.g. `5e2f559511a9de`). --- **`partnerCustomerId`** `string` — default: BUY SELL Your internal customer ID returned in webhook callbacks (e.g. `23487492`). --- **`redirectURL`** `string` — default: 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). > **Info** > > The URL must be a **plain URL**. For example, `https://yourdomain.com/thank-you` is valid, while `https%3A%2F%2Fyourdomain.com%2Fthank-you` is invalid. --- #### NFT Checkout #### NFT Configuration Core parameters required for any NFT Checkout integration. **`isNFT`** `boolean` — required Pass as `true` to enable NFT Checkout mode. --- **`calldata`** `string` — required 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). --- **`contractId`** `string` — required 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. --- **`cryptoCurrencyCode`** `string` — required The cryptocurrency your smart contract accepts. See [supported cryptocurrencies](https://transak.com/crypto-coverage). --- **`estimatedGasLimit`** `number` — required 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.** --- **`nftData`** `array` — required Pass NFT details as an array of JSON objects. 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#nftdata). --- #### Wallet, Fiat & Payment Destination wallet, fiat currency, and payment method controls for the NFT purchase flow. **Wallet** **`walletAddress`** `string` Blockchain address where the purchased NFT will be sent. Users can edit. Pass `cryptoCurrencyCode` or `network` to ensure a valid address. --- **`disableWalletAddressForm`** `boolean` — default: false When `true`, customer cannot change the destination address. Requires `walletAddress`. --- **Fiat Currency** **`fiatCurrency`** `string` Fiat currency code for the NFT purchase (e.g. `GBP`). If unsupported, widget loads with all supported currencies. --- **`defaultFiatCurrency`** `string` Default fiat currency; customer can change. Skipped if `fiatCurrency` or `countryCode` is passed. --- **`countryCode`** `string` [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code (e.g. `US`). Skipped if `fiatCurrency` is passed. --- **Payment Methods** **`paymentMethod`** `string` 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). --- **`defaultPaymentMethod`** `string` Default payment method; customer can change. Skipped if `paymentMethod` is passed. --- **`disablePaymentMethods`** `string` Comma-separated list of payment methods to hide (e.g. `credit_debit_card`). --- #### User Identity & Tracking Pre-fill customer data to streamline KYC, and set partner-level tracking identifiers. **User Identity** **`email`** `string` Email to identify the customer. URL-encode if it contains special characters. --- **`userData`** `object` 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** **`partnerOrderId`** `string` Your internal order ID (e.g. `5e2f559511a9de`). Returned in webhook callbacks. --- **`partnerCustomerId`** `string` Your internal customer ID (e.g. `23487492`). Returned in webhook callbacks. --- #### Widget Appearance Visual customization options for the NFT Checkout widget. **`themeColor`** `string` Widget primary color in hex (without `#`, e.g. `000000`). Used for buttons, links, and highlighted text. --- **`colorMode`** `'LIGHT' | 'DARK'` — default: system Defaults to the user's system theme when not set. --- **`exchangeScreenTitle`** `string` Custom title for the exchange screen (e.g. `Buy NFT`). --- **`hideMenu`** `boolean` — default: false When `true`, hides menu options completely. --- **`isFeeCalculationHidden`** `boolean` — default: false When `true`, shows only the total fee instead of the full breakdown. Ignored if your fee exceeds 1%. --- **`widgetHeight`** `string` — default: 100% JS SDK Height of the widget iFrame. --- **`widgetWidth`** `string` — default: 100% JS SDK Width of the widget iFrame. --- > Customize On-Ramp, Off-Ramp, and NFT Checkout experiences with query parameters