Skip to main content

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:
  1. Create the automation
    You define source.value_type as USD and set a destination wallet and stablecoin (e.g., SBC on solana) via the API or Dashboard.
  2. Virtual account is provisioned
    Brale provisions a virtual account and populates source.funding_instructions with bank details (routing number, account number, bank name, beneficiary).
  3. 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.
  4. Stablecoins are minted automatically
    When funds arrive, Brale automatically creates a Transfer (USD → stablecoin), mints the stablecoin, and sends it to the destination.address_id configured on the automation.
  5. 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. POST https://api.brale.xyz/accounts/{account_id}/automations
Request
{
  "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.
Response
{
  "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.

Branded Automations

Branded Automations let you control the beneficiary name shown on funding instructions for a virtual account. With Branded Automations, you can control which business name appears on funding instructions by adding a brand object to the create request:
FieldWhereTypeDescription
brandBodyobject{ "account_id": "<ACCOUNT_ID>" } — your own account or a managed account whose business name and address will appear as the beneficiary on wire and ACH funding instructions.
Request
{
  "name": "XYZ Onramp",
  "source": { "value_type": "USD" },
  "destination": {
    "address_id": "2MhCCIHulVdXrHiEuQDJvnKbSkl",
    "value_type": "SBC",
    "transfer_type": "Solana"
  },
  "brand": { "account_id": "<ACCOUNT_ID>" }
}
When the automation becomes active, beneficiary_name in source.funding_instructions will reflect that account’s business name.

Listing Automations for a Customer

Retrieve all automations associated with a customer Account. GET https://api.brale.xyz/accounts/{account_id}/automations
Response
{
  "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. GET https://api.brale.xyz/accounts/{account_id}/automations/{automation_id}
Response
{
  "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"
}