Transfers
Transfers enable the movement of funds between fiat and stablecoins, stablecoin-to-stablecoin conversions, and stablecoin-to-fiat transactions.
Each transfer requires both a source and a destination, which can be:
- Fiat sources (e.g., a bank account for ACH or wire)
- On-chain wallet addresses
Each source and destination includes:
value_type
- The currency being transferred (USD, USDC, USDT, MXN, etc.)transfer_type
- The payment rail used (Wire, ACH, Polygon, Solana, SPEI, etc.)
USD to Stablecoin (Wire Transfer)
Accept a USD deposit to mint stablecoins.
POST https://api.brale.xyz/transfers
curl --request POST \
--url https://api.brale.xyz/transfers \
--header 'Content-Type: application/vnd.api+json' \
--header 'Idempotency-Key: ABC_123_XYZ' \
--header 'authorization: Bearer YOUR_TOKEN' \
--data '{
"data": {
"amount": "10000.00",
"source": {
"value_type": "usd",
"transfer_type": "wire"
},
"destination": {
"address_id": "d7bd28e4-93e6-4313-880c-ab9178eacd3b",
"value_type": "ysbc",
"transfer_type": "solana"
}
}'
Response
When initiating a fiat to stablecoin transfer via wire, we will return a set of wire_instructions
so you can provide them to your customer.
{
"id": "transfer_123",
"status": "pending",
"amount": "10000.0",
"source": {
"transfer_type": "wire",
"value_type": "usd"
},
"destination": {
"transfer_type": "polygon",
"value_type": "ysbc",
"address_id": "d7bd28e4-93e6-4313-880c-ab9178eacd3b"
},
"wire_instructions": {
// ...Brale bank details
}
Stablecoin to USD (Wire Offramp or Payout)
Offramp your stablecoin to USD via wire transfer.
POST https://api.brale.xyz/transfers
{
"amount": "100.00",
"source_address": {
"address_id": "d7bd28e4-93e6-4313-880c-ab9178eacd3b",
"value_type": "ysbc",
"transfer_type": "Polygon"
},
"destination_bank": {
"bank_id": "bank_12345",
"value_type": "USD",
"transfer_type": "wire",
"originator_info": "Invoice #456",
"statement_descriptor": "BRL*Transaction",
"ultimate_creditor": "Jane Doe"
}
}
Stablecoin Swaps
Swap USDC to your own stablecoin (YSBC). All stablecoin swaps are 1:1 with no slippage.
POST https://api.brale.xyz/transfers
{
"amount": "100",
"source_address": {
"address_id": "string",
"value_type": "USDC",
"transfer_type": "Solana"
},
"destination_address": {
"address_id": "d7bd28e4-93e6-4313-880c-ab9178eacd3b",
"value_type": "YSBC",
"transfer_type": "Solana"
}
}
Stablecoin Payout
Process stablecoin payouts to one or many external addresses (EOAs).
POST https://api.brale.xyz/transfers
{
"amount": "500.00",
"source_address": {
"address_id": "d7bd28e4-93e6-4313-880c-ab9178eacd3b",
"value_type": "USDC",
"transfer_type": "Polygon"
},
"destination_address": {
"address_id": "recipient_wallet_id",
"value_type": "USDC",
"transfer_type": "Polygon"
}
}
Transfer Statuses
Transfers can progress through the following statuses:
- Pending - The transfer has been submitted but is not yet in progress. This may be due to Brale waiting for funds (e.g., fiat-to-stablecoin wire transfer) or an ongoing review.
- Processing - The transfer is in progress
- Complete - The transfer is finalized and funds have arrived at the destination.
- Canceled - The transfer has been canceled
- Failed - An issue prevented Brale from completing the transfer. Manual intervention may be required.
Transfer Flow - A transfer will progress from pending → processing → complete.
Transfer Limits
- Inbound ACH transactions are limited to $50,000 per transaction
- There are no limits for wire or stablecoin transactions
Updated 8 days ago