curl --request POST \
--url https://api.brale.xyz/accounts/{account_id}/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"amount": {
"value": "2500",
"currency": "USD"
},
"source": {
"address_id": "addr_ach_debit",
"value_type": "USD",
"transfer_type": "ach_debit"
},
"destination": {
"address_id": "addr_solana_internal",
"value_type": "SBC",
"transfer_type": "solana"
}
}
'{
"id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"status": "pending",
"failure": null,
"source": {
"value_type": "USD",
"transfer_type": "wire",
"address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"financial_institution_id": "<string>",
"wire_memo": "<string>",
"transaction_id": "0xdd5646ea…",
"payment_details": {
"received_at": "2026-04-07T00:01:24.514000Z",
"sender_name": "Originator Name",
"sender_bank_name": "JPMorgan Chase Bank",
"sender_bank_routing_number": "000000123",
"payment_reference": "Simulated Wire",
"imad": "20260406XOIZJDPP953495",
"trace_number": "021000029876543"
}
},
"destination": {
"value_type": "USD",
"transfer_type": "wire",
"address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"financial_institution_id": "<string>",
"wire_memo": "<string>",
"transaction_id": "0xdd5646ea…",
"payment_details": {
"received_at": "2026-04-07T00:01:24.514000Z",
"sender_name": "Originator Name",
"sender_bank_name": "JPMorgan Chase Bank",
"sender_bank_routing_number": "000000123",
"payment_reference": "Simulated Wire",
"imad": "20260406XOIZJDPP953495",
"trace_number": "021000029876543"
}
},
"amount": {
"value": "11234.88",
"currency": "USD"
},
"note": null,
"automation_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"funding_simulated": true,
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}Create a new transfer
Creates a new transfer using the specified source and destination details.
curl --request POST \
--url https://api.brale.xyz/accounts/{account_id}/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"amount": {
"value": "2500",
"currency": "USD"
},
"source": {
"address_id": "addr_ach_debit",
"value_type": "USD",
"transfer_type": "ach_debit"
},
"destination": {
"address_id": "addr_solana_internal",
"value_type": "SBC",
"transfer_type": "solana"
}
}
'{
"id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"status": "pending",
"failure": null,
"source": {
"value_type": "USD",
"transfer_type": "wire",
"address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"financial_institution_id": "<string>",
"wire_memo": "<string>",
"transaction_id": "0xdd5646ea…",
"payment_details": {
"received_at": "2026-04-07T00:01:24.514000Z",
"sender_name": "Originator Name",
"sender_bank_name": "JPMorgan Chase Bank",
"sender_bank_routing_number": "000000123",
"payment_reference": "Simulated Wire",
"imad": "20260406XOIZJDPP953495",
"trace_number": "021000029876543"
}
},
"destination": {
"value_type": "USD",
"transfer_type": "wire",
"address_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"financial_institution_id": "<string>",
"wire_memo": "<string>",
"transaction_id": "0xdd5646ea…",
"payment_details": {
"received_at": "2026-04-07T00:01:24.514000Z",
"sender_name": "Originator Name",
"sender_bank_name": "JPMorgan Chase Bank",
"sender_bank_routing_number": "000000123",
"payment_reference": "Simulated Wire",
"imad": "20260406XOIZJDPP953495",
"trace_number": "021000029876543"
}
},
"amount": {
"value": "11234.88",
"currency": "USD"
},
"note": null,
"automation_id": "2VcUIIsgARwVbEGlIYbhg6fGG57",
"funding_simulated": true,
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z"
}Authorizations
Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the "Authorization: Bearer " header.
Headers
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
The ID of the account
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
Body
Response
Transfer successfully created
A money movement between a source and a destination. Returned by the create, get, and list transfer endpoints. The same shape is used everywhere a Transfer is exposed to API consumers.
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
Lifecycle stage of the transfer
pending, processing, complete, canceled, failed "pending"
Structured failure details for a failed transfer. Usually null. Populated when status is failed and Brale has structured failure details for the transfer — most commonly for ACH returns and other rail/provider failures. Clients should not assume failure is always present for every failed transfer; check for null before reading nested fields.
Show child attributes
Show child attributes
null
One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like transaction_id and payment_details are populated by Brale as the underlying leg settles.
Show child attributes
Show child attributes
One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like transaction_id and payment_details are populated by Brale as the underlying leg settles.
Show child attributes
Show child attributes
Monetary value with explicit currency
Show child attributes
Show child attributes
Optional free-form note attached to the transfer.
null
ID of the Automation that created this transfer, when applicable. Omitted for transfers created directly via the API.
^[a-zA-Z0-9]{26}$"2VcUIIsgARwVbEGlIYbhg6fGG57"
Set to true when the source funding for this transfer was simulated in a test environment rather than coming from a real payment. Not present for production transfers.
"2026-01-01T00:00:00Z"
"2026-01-01T00:00:00Z"
Was this page helpful?