How it works
Generate a deposit address per player
Call the generate-address endpoint with the player’s internal ID as the
label. Each address is permanent, so you only need to generate it once per player per asset. Store it and display it whenever the player initiates a deposit.Player sends crypto
Display the wallet address in your deposit flow. The player sends crypto from any external wallet or exchange.
Receive a webhook and credit the balance
Breet sends a webhook when the deposit is confirmed on-chain. Parse the payload and credit the player’s betting balance.
Player withdraws winnings
When a player requests a withdrawal, call
POST /payments/withdraw/address to send stablecoins to their wallet, or POST /payments/withdraw/bank/{id} to settle to a bank account.Generate a deposit address
ASSET_ID with the asset the player wants to deposit (e.g., USDT, BTC). The label field ties the address to a specific player for automatic reconciliation. Each address is permanent, so you only need to generate it once per player per asset.
What Breet handles
- Generating unique deposit addresses per player
- Monitoring blockchains for incoming deposits
- Sending real-time webhook notifications
- Processing stablecoin withdrawals to player wallets
- Auto-settlement to local bank accounts (NGN or GHS)
What you handle
- Displaying deposit addresses and QR codes in your platform
- Listening for and processing webhook events
- Crediting and debiting player balances
- Managing withdrawal requests and payout logic
- Enforcing your platform’s deposit and withdrawal limits
Example user journey
- Chidi opens a betting platform and taps Deposit.
- He selects USDT on Tron as his deposit method.
- If this is Chidi’s first deposit, the platform calls Breet’s generate-address endpoint and stores the returned TRC-20 wallet address. For future deposits, the platform displays the same saved address since it is permanent.
- Chidi sends 100 USDT from his exchange account.
- Breet detects the deposit and sends a
trade.completedwebhook. - The platform credits 100 USDT to Chidi’s betting balance.
- After a winning streak, Chidi requests a withdrawal of 250 USDT.
- The platform calls
POST /payments/withdraw/addressto send 250 USDT to Chidi’s personal wallet. - Chidi receives the stablecoins and a
withdrawal.completedwebhook confirms the payout.
FAQ
Can players withdraw in crypto?
Can players withdraw in crypto?
Yes. Use
POST /payments/withdraw/address to send stablecoins (USDT or USDC) to any wallet address the player provides. You can also settle winnings to a bank account using POST /payments/withdraw/bank/{id}.Can I generate a unique address per player?
Can I generate a unique address per player?
Yes. Each call to the generate-address endpoint returns a new address. Use the
label field to tag it with the player’s ID so incoming deposits are automatically mapped to the correct account.Is there a minimum deposit amount?
Is there a minimum deposit amount?
Deposits below the network’s minimum threshold may be flagged. Breet sends a
trade.flagged webhook when a deposit falls below the asset minimum. Check the supported assets page for minimum amounts.How do I handle deposits during downtime?
How do I handle deposits during downtime?
Breet monitors the blockchain independently of your platform’s availability. If your webhook endpoint is unreachable, Breet retries delivery using an exponential backoff schedule. See webhook retries for the full retry timeline.