Skip to main content
POST
Create an Automation
Use the playground below to try this endpoint directly, or review the OpenAPI details in the right panel.

Source configuration

Set source.value_type to USD and omit source.transfer_type. A USD Automation is not tied to a single deposit rail. Its virtual account accepts the inbound rails enabled for it, such as wire, ACH, and FedNow (on accounts with FedNow enabled). Responses may return source.transfer_type: null. The rail used for each deposit appears on the resulting Transfer in source.transfer_type, for example fednow_credit. This is a Transfer response value, not an Automation setting. See Receive FedNow deposits.

Branded Automations

You can optionally include a brand object in the request body to select the verified identity (business or individual) that appears as the beneficiary on the automation’s funding instructions. Both custodial and transactional business or individual accounts can be used as brand.account_id, subject to applicable verification and program eligibility. See Branded Automations for the account-type matrix and ownership rules.
Default behavior is unchanged. If you omit brand, the beneficiary on funding instructions defaults to Brale. If you include brand.account_id, the beneficiary reflects that account’s verified business or individual identity instead.
The automation is still created under the account in the request path (/accounts/{account_id}/automations). brand.account_id does not change which account owns the automation — it only selects the identity shown on the funding instructions.
Testnet branding. With testnet credentials, you can create branded Automations using a business or individual account you have access to, without completing mainnet KYB/KYC or enabling that account for mainnet. Testnet funding instructions contain placeholder banking details and cannot receive real deposits. To fund a testnet Automation, use Simulate an Automation deposit. Mainnet verification requirements are unchanged.

Example: branded automation request (business account)

Example: branded automation request (individual account)

Pass the account_id of an individual account to render that person’s legal name and address as the beneficiary. On mainnet, the individual account must be KYC-verified. See Individual accounts for how to create one.

Excerpt from retrieving the Automation after it becomes active

This partial response shows only the branded fields. It is not the immediate create response, and it does not contain usable banking instructions. Brale populates the full source.funding_instructions once the Automation becomes active.
Once the Automation becomes active, source.funding_instructions.beneficiary_name and beneficiary_address in the response reflect the branded account’s verified identity (business name and address, or individual legal name and address). For more details on how branded Automations work, see the Automations concept page.

Authorizations

Authorization
string
header
required

Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the "Authorization: Bearer " header.

Headers

Idempotency-Key
string
required

A unique string used to prevent duplicate operations. Each POST request must use a new idempotency key. Use a UUIDv4 string. Example: idemp-123e4567-e89b-12d3-a456-426614174000

Path Parameters

account_id
string<ksuid>
required

The ID of the account

Pattern: ^[a-zA-Z0-9]{27}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

Body

application/json
name
string
required
Example:

"XYZ Onramp"

source
AutomationCreateSource · object
required

The funding source to configure when creating an automation. Set value_type: USD to accept fiat deposits. Do not send funding instructions. Brale populates source.funding_instructions in the Automation response once the automation becomes active.

destination
AutomationDestination · object
required

The destination wallet that receives minted stablecoins when the automation is funded.

brand
AutomationBrand · object

Optional. Selects the verified identity shown as the beneficiary on the automation's funding instructions. Pass the account_id of your own account or a managed account (business or individual). Both custodial and transactional accounts can be used, subject to applicable verification and program eligibility. The automation is still created under the account in the request path; brand.account_id only controls the identity rendered on the funding instructions. If omitted, Brale is the default beneficiary.

Response

201 - */*

Automation successfully created

id
string<ksuid>
Pattern: ^[a-zA-Z0-9]{27}$
Example:

"2VcUIIsgARwVbEGlIYbhg6fGG57"

name
string
Example:

"XYZ Onramp"

status
enum<string>

The current lifecycle state of the automation.

Available options:
pending,
active,
disabled,
archived
Example:

"active"

source
AutomationSource · object

The funding source for the automation. Set value_type: USD to accept fiat deposits. You do not need to select a deposit rail: a USD Automation's virtual account accepts the inbound rails enabled for your account (wire, ACH, and FedNow where enabled). When the automation becomes active, funding_instructions is populated with the virtual account details to share with the payer. This is Automation configuration. The rail of each deposit is reported on the resulting Transfer's source.transfer_type (for example, fednow_credit), not here.

destination
AutomationDestination · object

The destination wallet that receives minted stablecoins when the automation is funded.

created_at
string<date-time>
Example:

"2024-01-15T12:34:56Z"

updated_at
string<date-time>
Example:

"2024-01-15T12:34:56Z"

brand
AutomationBrand · object

Optional. Selects the verified identity shown as the beneficiary on the automation's funding instructions. Pass the account_id of your own account or a managed account (business or individual). Both custodial and transactional accounts can be used, subject to applicable verification and program eligibility. The automation is still created under the account in the request path; brand.account_id only controls the identity rendered on the funding instructions. If omitted, Brale is the default beneficiary.