*** 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.