β¬οΈ Transak Stream
π Overview
Transak Off-Ramp Stream is the latest innovation in crypto off-ramping, allowing users to receive fiat directly into their bank accounts/cards with just one click. As simple as sending crypto from one wallet to another, Transak Stream makes moving between crypto and fiat seamless and intuitive. With Transak's APIs, apps and platforms can build Streams into their workflows, enabling smooth, one-click flows for their users.
Transak Off-Ramp Stream Perfect for: Remittances, payroll systems, e-commerce payouts, and any app needing instant crypto-to-fiat conversion.
β‘ How It Works: User Experience
Imagine a user wants to withdraw $1,000 USDC from their Web3 wallet:
- Click the "Withdraw to Bank" button in their wallet
- Send USDC to their dedicated Transak wallet address (auto-created)
- Wait ~1 minute for fiat to land in their bank account
- Done β No extra apps, no complex forms
That's it. No redirects. No confusion. This smooth, hassle-free process redefines the off-ramp experience, making it incredibly user-friendly while giving wallet partners a competitive advantage.
π Key Features
| Quick Configuration | Configure your integration in minutes with just query parameters |
| Dedicated Wallet | Each user gets a personal Multi-Stream-Wallet for easy management |
| Fast Settlement | Send crypto from any wallet to your user's dedicated wallet address to Off-Ramp in under one minute. |
| Multiple Payment Methods | Supports SEPA, FPS, and card withdrawals. |
| Global Coverage | Users can set a default crypto and network that are currently supported with Off Ramp . |
| Flexible Crypto Support | Supports all the countries supported for Off Ramp |
π Product Flow
Transak Off-Ramp Stream consists of three main flows and can be configured to your apps in 3 easy steps.
| Step 1οΈβ£ | Step 2οΈβ£ | Step 3οΈβ£ |
|---|---|---|
| Integration | Wallet Setup | Crypto Transfer Flow |
Integrate Transak Off-Ramp Stream
Step 1: Choose your Integration Type that are supported by Transak.
Select how you want to integrate Transak Stream:
- π₯ Web Integration
- π±Mobile Integration
Step 2: Pass the Mandatory Query Params
Pass these required parameters to initialize Transak Stream:
| Mandatory query parameters | Value |
|---|---|
| apiKey | your_api_key |
| environment | staging/production |
| referrerDomain | yourdomain.com |
| isTransakStreamOffRamp | true |
| cryptoCurrencyCode | USDT(sample) |
| network | ethereum(sample) |
Step 3: Transak Stream flow will be loaded and ready to set up. Please refer the Code Samples and Flow Demo
Refer to the Create Widget URL guide to obtain the
widgetUrllink.
π» Code Samples
import { Transak } from "@transak/ui-js-sdk";
import { useEffect } from "react";
const InstantOffRampEventsSDK = () => {
useEffect(() => {
const transak = new Transak({
widgetUrl: "https://global-stg.transak.com?apiKey=YOUR_API_KEY&sessionId=<YOUR_SESSION_ID>", // (Required)
});
transak.init();
// The .close() method contains the callback data for the Transak Stream for a user.
Transak.on(Transak.EVENTS.TRANSAK_WIDGET_CLOSE, (eventData) => {
console.log(Transak.EVENTS.TRANSAK_WIDGET_CLOSE, eventData);
transak.close();
});
return () => {
transak.cleanup();
};
}, []);
return <div id="transakMount" />;
};
export default InstantOffRampEventsSDK;
https://global.transak.com/?apiKey=<YOUR_API_KEY>&sessionId=<YOUR_SESSION_ID> <body>
<div>
<iframe
id="transak-iframe"
title="Transak"
src="https://global-stg.transak.com/?apiKey=YOUR_API_KEY&sessionId=<YOUR_SESSION_ID>
allow="camera;microphone;fullscreen;payment"
style="height: 650px; width: 400px; border: none"/>
</div>
<script>
const iframe = document.getElementById("transak-iframe");
const handleMessage = (event) => {
if (!iframe || event.source !== iframe.contentWindow || !event.data?.event_id)
return;
if (event.data.event_id === "TRANSAK_WIDGET_CLOSE") {
console.log("TRANSAK_WIDGET_CLOSE", event.data.data);
}
};
window.addEventListener("message", handleMessage);
window.addEventListener("unload", () => {
window.removeEventListener("message", handleMessage);
});
</script>
</body>Transak Stream callbacks:
When a user completes an off-ramp transaction, you'll receive a callback with details:
| Integration Type | Callback | Message |
|---|---|---|
| Browser Redirection | Redirection URL | The callbacks that are received for the Browser Redirection type in the form of Redirection URL. |
| SDK & iFrame | { "crypto": "ETH", "isTransakStreamOffRamp": "true", "network": "ethereum", "offRampStreamWalletAddress": "0x617d4XXXXXXXXXXXXXXXXXXXXDEE4F4", "withdrawalInstrument": "6V27", "withdrawalMethod": "BANK_ACCOUNT" } | The callback data can be fetched from the Transak.EVENTS.TRANSAK_WIDGET_CLOSE events for SDK and event listener for iFrame method. Refer here for the code samples. |
Callback Parameters:
| Field | Value (Eg) | Message |
|---|---|---|
crypto | ETH | The cryptocurrency code |
isTransakStreamOffRamp | true | Boolean to define the Transak Stream flow |
network | ethereum | The network of a token |
offRampStreamWalletAddress | 0x617d4XXXXXXXXXXXXXXXXXXXXDEE4F4 | Dedicated wallet address of the user created for Transak Stream |
withdrawalInstrument | 6V27 | Last four digits of the selected payment method |
withdrawalMethod | BANK_ACCOUNT | Selected Payment method type. |
π³ Wallet Setup Flow
β Wallet Setup Flow Video
New User Flow
βΏ Crypto Transfer Flow
β Crypto Transfer Flow Video
Crypto Transfer Flow
π§ͺ Test It Out - In Transak Widget
This feature is currently live in Transak Widget - Link. Access Level: Level 2 (Standard) KYC verified users only.
![]() | In Transak Widget:** Click "Transak Off-Ramp Stream" from the Hamburger Menu and click Transak Off-Ramp Stream |
![]() | The Transak Off-Ramp Stream flow wallets can be configured by clicking the Explore Now option from the banner. |
Updated 9 days ago

