Automations
Automations allow businesses to set up automatic onramps, offramps, or stablecoin swaps that are triggered upon receiving funds—without requiring a manual transfer request.
Common Automation Flows
- Fiat to Stablecoin (Onramp) - Automatically mints stablecoins when a fiat deposit is received.
- Stablecoin to Fiat (Offramp) - Automatically converts stablecoins to fiat and withdraws to a bank account. (Coming Q1 2026)
- Stablecoin to Stablecoin (Swap) - Automatically swaps one stablecoin for another. (Coming Q1 2026)
Automations can also be created in the Brale Dashboard on the Automations tab.
Onramp Automation with Virtual Accounts
Automations provide a unique account number and routing number for wire transfers and ACH deposits. When funds are received, stablecoins are automatically minted to a pre-defined wallet address. Businesses can use automations to direct unique pre-funding coordinates to their customers, which mint stablecoins in a customer's wallet.
Here’s what happens end-to-end when you use an onramp automation:
-
Create the automation
You definesource.value_typeasUSDand set adestinationwallet and stablecoin (e.g.,SBConsolana) via the API or Dashboard. -
Virtual account is provisioned
Brale provisions a virtual account and populatessource.funding_instructionswith bank details (routing number, account number, bank name, beneficiary). -
Customer sends funds
You share those bank details with your customer. They send a wire or ACH to the virtual account - no additional API call is required. -
Stablecoins are minted automatically
When funds arrive, Brale automatically creates aTransfer(USD → stablecoin), mints the stablecoin, and sends it to thedestination.address_idconfigured on the automation. -
Track activity via Transfers
You can reconcile and monitor all onramp activity by querying Transfers for the account:
GET /accounts/{account_id}/transfers.
Creating an Automation
Create an automation to receive USD and automatically mint SBC to a Solana wallet.
POSThttps://api.brale.xyz/accounts/{account_id}/automations
{
"name": "XYZ Onramp",
"source": {
"value_type": "USD"
},
"destination": {
"address_id": "2MhCCIHulVdXrHiEuQDJvnKbSkl",
"value_type": "SBC",
"transfer_type": "Solana"
}
}
Automations are opened in a pending state and automatically transition into processing. Once virtual accounts are created and the automation is ready to use, it will transition to a completed status.
{
"id": "35kVg1llbsOBYvx9XKr9eOtsD9z",
"name": "Customer ABC Automation",
"status": "pending",
"source": {
"transfer_type": null,
"value_type": "USD"
},
"destination": {
"transfer_type": "solana",
"address_id": "35LWXNTO2jem13nXCLyciFdi162",
"value_type": "ARB"
},
"updated_at": "2025-11-20T15:56:03.531196Z",
"created_at": "2025-11-20T15:56:03.531196Z"
}
When an automation becomes active, the source.funding_instructions object is populated with the virtual account’s bank details (routing number, account number, beneficiary name, etc.). These are the coordinates you share with your customer to fund the automation.
Listing Automations for a Customer
Retrieve all automations associated with a customer Account.
GEThttps://api.brale.xyz/accounts/{account_id}/automations
{
"automations": [
{
"id": "35kVg1llbsOBYvx9XKr9eOtsD9z",
"name": "Customer ABC Automation",
"status": "active",
"source": {
"transfer_type": null,
"value_type": "USD",
"funding_instructions": {
"bank_address": "123 Example St, Example City, NY 10001",
"beneficiary_address": "456 Sandbox Ave, Suite 100, Example City, IA 50000",
"beneficiary_name": "Example Payments Inc",
"routing_number": "000111222",
"account_number": "100123456789",
"bank_name": "Example Bank",
"memo": null
}
},
"destination": {
"transfer_type": "solana",
"address_id": "35LWXNTO2jem13nXCLyciFdi162",
"value_type": "ARB"
},
"updated_at": "2025-11-20T15:56:05.017508Z",
"created_at": "2025-11-20T15:56:03.531196Z"
},
{
"id": "35kVg1llbsOBYvx9XKr9eOtsD9z",
"name": "Customer XYZ Automation",
"status": "active",
"source": {
"transfer_type": null,
"value_type": "USD",
"funding_instructions": {
"bank_address": "123 Example St, Example City, NY 10001",
"beneficiary_address": "25 Main Ave, Suite 100, Example City, IA 50000",
"beneficiary_name": "Company ABC",
"routing_number": "000111222",
"account_number": "000123456789",
"bank_name": "Example Bank",
"memo": null
}
},
"destination": {
"transfer_type": "solana",
"address_id": "35LWXNTO2jem13nXCLyciFdi162",
"value_type": "ARB"
},
"updated_at": "2025-11-20T15:56:05.017508Z",
"created_at": "2025-11-20T15:56:03.531196Z"
}
]
}
Retrieve an Automation
Retrieve a specific Automation.
GEThttps://api.brale.xyz/accounts/{account_id}/automations/{automation_id}
{
"id": "35kVg1llbsOBYvx9XKr9eOtsD9z",
"name": "Customer XYZ Automation",
"status": "active",
"source": {
"transfer_type": null,
"value_type": "USD",
"funding_instructions": {
"bank_address": "123 Example St, Example City, NY 10001",
"beneficiary_address": "25 Main Ave, Suite 100, Example City, IA 50000",
"beneficiary_name": "Company ABC",
"routing_number": "000111222",
"account_number": "000123456789",
"bank_name": "Example Bank",
"memo": null
}
},
"destination": {
"transfer_type": "solana",
"address_id": "35LWXNTO2jem13nXCLyciFdi162",
"value_type": "ARB"
},
"updated_at": "2025-11-20T15:56:05.017508Z",
"created_at": "2025-11-20T15:56:03.531196Z"
}