Skip to main content

Transak - Fiat On/Off-Ramp

The Transak plugin adds a Buy/Sell crypto page to your exchange. Users get a quote, then complete the purchase or sale on Transak's hosted checkout with a card, bank transfer or local payment method. Transak handles the payment, its own identity checks and the delivery of the crypto, so your exchange never handles fiat.

What you need​

  • The Enterprise plan on HollaEx Cloud.
  • A Transak partner account from the Transak partner dashboard, with an API key and API secret. Staging (test) and production credentials are different.
  • The coins you want to offer listed on your exchange. Only coins that both Transak and your exchange support appear on the page.
One buy page only

The Banxa plugin uses the same /buy-crypto page. Install Transak or Banxa, not both.

Set it up​

  1. In the Transak partner dashboard, get your API key and API secret.
  2. Also in the Transak partner dashboard, add your exchange's domain (for example exchange.com) to the allowed domains. If you don't, Transak refuses to show its checkout.
  3. Install transak from Operator Controls → Exchange → Plugins.
  4. Open the plugin, enter the settings below and save. Start with the staging values to test.
  5. Sign in to your exchange as a test user, open Buy/Sell crypto and request a quote.
  6. When you're ready to go live, switch the environment and the three Transak URLs to production, and enter your production API key and secret.
SettingWhat it does
api_keySecret, from Transak. Your Transak API key. Required.
api_secretSecret, from Transak. Your Transak API secret. The plugin uses it to get short-lived access tokens itself, so you don't have to renew anything by hand. Required.
access_tokenDeprecated. Leave it empty and use api_secret. A token pasted here expires after a week, and every checkout then fails.
transak_environmentSTAGING or PRODUCTION. Default STAGING.
transak_api_urlTransak's API address. Default is staging. For production, use https://api.transak.com
transak_gateway_urlTransak's gateway address, used to open checkout sessions. Default is staging. For production, use https://api-gateway.transak.com
transak_widget_urlTransak's checkout address. Default is staging. For production, use https://global.transak.com
transak_fiat_currenciesOptional. The fiat currencies to offer, comma separated, for example USD,EUR,GBP. Leave it empty to offer every fiat currency Transak allows, including ones it adds later.
transak_referrer_domainOptional. The domain you registered with Transak, for example exchange.com. If empty, it's taken from your exchange URL, which is only right if that URL is your public website and not your API address.
transak_redirect_urlOptional. Where users return after checkout. It must be allowed in your Transak dashboard. If empty, your exchange URL is used.
sumsub_kyc_relianceOptional, off by default. See Reuse Sumsub verification.
sumsub_app_tokenSecret, from Sumsub. Only used when sumsub_kyc_reliance is on.
sumsub_secret_keySecret, from Sumsub. Only used when sumsub_kyc_reliance is on.
sumsub_api_urlSumsub's API address. Default https://api.sumsub.com

What your users see​

The Buy/Sell crypto page appears in your exchange's navigation. The user chooses to buy or sell, picks a fiat currency, a coin and a payment method, and enters an amount. The page shows the rate, the fees and the payment method's limits. Before leaving your exchange, the user has to accept a disclaimer saying that Transak, a third party, completes the order.

  • Buying: the crypto goes to the user's own deposit address on your exchange, which the plugin creates if needed. The user can't change the address on Transak's checkout.
  • Selling: the user completes the sale on Transak's checkout. The plugin doesn't take the crypto out of the user's exchange balance itself, so run a test sale on staging to see the steps your users follow.

The same page shows the user's Transak orders from the last 90 days.

How it works​

  • Only users who have completed identity verification on your exchange can buy or sell. Sub-accounts can't.
  • Transak runs its own identity checks, payments, fraud checks and delivery. For problems with an order, users contact Transak.
  • Once a purchase is complete, Transak sends the crypto to the user's deposit address, and it's credited like any other deposit.

Reuse Sumsub verification​

If your exchange verifies users with the Sumsub plugin, you can share a user's approved Sumsub verification with Transak, so they don't have to verify again at Transak (Transak calls this KYC Reliance).

  1. Ask Transak to turn on KYC Reliance for your account.
  2. In Sumsub, add Transak as a recipient under Reusable Identity.
  3. In the plugin, turn on sumsub_kyc_reliance and enter your Sumsub app token and secret key. They can be the same ones the Sumsub plugin uses.

Users without an approved Sumsub verification still go through Transak's own checks. If sharing fails, the checkout fails and the user sees "Could not share your identity verification with Transak. Please try again later."

Troubleshooting​

  • Transak's checkout doesn't open, or says the domain isn't allowed: add your exchange's domain to the allowed domains in the Transak partner dashboard, and check transak_referrer_domain.
  • "Transak rejected the access token": set api_secret and clear access_token.
  • "Complete identity verification before buying or selling crypto.": the user hasn't completed identity verification on your exchange.
  • A coin is missing from the page: it must be listed on your exchange and offered by Transak for your account.
  • Credentials don't work: check that the API key and secret match the environment the URLs point to. Staging keys don't work in production.

Need help? Open a ticket from your HollaEx dashboard.