How it works
Generate a deposit address
Call the generate-address endpoint for a specific asset. Each address is permanent and unique to your user. You can also label the address using a unique identifier.
Show the address to your user
Display the wallet address in your app’s funding flow. The user sends crypto from any external wallet.
Receive a webhook notification
When the transaction is detected on-chain, Breet sends a webhook to your server with the deposit details, amount, and status.
Credit the user's balance
Parse the webhook payload, match it to the user, and credit their in-app balance.
Settle funds (optional)
This step is optional and depends on how you want to handle funds after a deposit:
- Without auto-settlement: deposits are converted and held in your wallet in your chosen currency (USD, NGN, or GHS). You can view the balance on your dashboard and withdraw manually whenever you’re ready.
- With per-address auto-settlement: each deposit is automatically converted and paid out to the bank account linked to that specific address. Enable it via the API. See the auto-settlement guide.
- With business-wide auto-settlement: all deposits across all addresses are automatically withdrawn to a single destination (bank account or stablecoin address). Enable it from your dashboard under Settings > Automatic Settlement.
Generate a deposit address
ASSET_ID with the identifier for the crypto asset you want to accept (e.g., BTC, ETH, USDT). Use the label field to tag addresses with your internal user ID for easy reconciliation. Each address is permanent, so you only need to generate it once per user per asset. Store the address and display it whenever the user wants to deposit.
What Breet handles
- Generating and managing deposit wallet addresses
- Monitoring blockchains for incoming transactions
- Sending webhook notifications with transaction details
- Converting crypto to local fiat via auto-settlement
- Payouts to linked bank accounts
What you handle
- Displaying the deposit address and instructions to your user
- Listening for and processing webhook events from Breet
- Mapping deposits to user accounts using the
labelordestinationAddress - Crediting user balances in your application
- Communicating deposit status to your users
Example user journey
- Adeola opens her fintech app and taps Fund account.
- She selects USDT on Solana as the funding method.
- If this is Adeola’s first deposit, the app calls Breet’s generate-address endpoint and stores the returned address. For future deposits, the app displays the same saved address since it is permanent.
- Adeola copies the address and sends 50 USDT from her personal wallet.
- Breet detects the transaction and sends a
trade.completedwebhook to the fintech app. - The app credits 50 USDT (or whatever equivalent) to Adeola’s balance.
- Adeola sees the funds in her account and can spend, save, or transfer them.
FAQ
Do users interact with Breet directly?
Do users interact with Breet directly?
No. Breet operates entirely behind the scenes. Your users see your app’s interface, branding, and messaging throughout the funding flow. Breet provides the infrastructure and you control the experience.
Can I support multiple currencies per user?
Can I support multiple currencies per user?
Yes. Call the generate-address endpoint once per asset to create a separate deposit address for each currency. A single user can have addresses for BTC, ETH, USDT, and any other supported asset simultaneously.
How fast are deposits credited?
How fast are deposits credited?
Deposit speed depends on blockchain confirmation times. Breet sends a
trade.pending webhook as soon as the transaction is detected (mostly instantly), followed by trade.completed once it reaches the required number of confirmations. Most stablecoin deposits on fast networks like Solana complete within seconds.Can I set up auto-settlement for all deposits?
Can I set up auto-settlement for all deposits?
Yes. Link a bank account to a wallet address and enable auto-settlement via
PUT /trades/wallets/{id}/auto-settlement. Every deposit to that address will automatically convert to NGN or GHS and settle to the linked bank account. You can also enable business-wide auto-settlement from your dashboard. See the auto-settlement guide for the full details.