The payments API allows you to initiate and manage payments and vendors from your Brex business accounts.
- Create transfer
Payments API (1.0)
Request
This endpoint creates a new incoming transfer. You may use use any eligible bank account connection to fund (ACH Debit) any active Brex business account.
Reminder: You may not use the Brex API for any activity that requires a license or registration from any governmental authority without Brex's prior review and approval. This includes but is not limited to any money services business or money transmission activity.
Please review the Brex Access Agreement and contact us if you have any questions.
Counterparty Details for the transfer
The financial account id: Can be found from the List linked accounts endpoint
Receiving account details for the transfer
ID of the Brex business account: Can be found from the List business accounts endpoint
Money fields can be signed or unsigned. Fields are signed (an unsigned value will be interpreted as positive). The amount of money will be represented in the smallest denomination of the currency indicated. For example, USD 7.00 will be represented in cents with an amount of 700.
- Productionhttps://api.brex.com/v1/incoming_transfers
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v1/incoming_transfers
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X POST \
https://api.brex.com/v1/incoming_transfers \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-d '{
"counterparty": {
"type": "BANK",
"id": "string"
},
"receiving_account": {
"type": "BREX_CASH",
"id": "string"
},
"amount": {
"amount": 700,
"currency": "USD"
},
"description": "string"
}'createIncomingTransfer 200 response
Counterparty Details for the transfer - Currently only supports vendors that are returned in the response from the /vendors endpoint BOOK_TRANSFER is a limited feature. Please reach out if you are interested.
Money fields can be signed or unsigned. Fields are signed (an unsigned value will be interpreted as positive). The amount of money will be represented in the smallest denomination of the currency indicated. For example, USD 7.00 will be represented in cents with an amount of 700.
Originating account details for the transfer
PROCESSING: We have started to process the sending or receiving of this transaction. SCHEDULED: The transaction is scheduled to enter the PROCESSING status. PENDING_APPROVAL: The transaction requires approval before it can enter the SCHEDULED or PROCESSING status. FAILED: A grouping of multiple terminal states that prevented the transaction from completing. This includes a a user-cancellation, approval being denied, insufficient funds, failed verifications, etc. PROCESSED: The money movement has been fully completed, which could mean money sent has arrived.
USER_CANCELLED: The transfer was canceled. INSUFFICIENT_FUNDS: The transfer could not be sent due to insufficient funds. APPROVAL_DENIED: The transfer was not sent because it was denied. BLOCKED_BY_POSITIVE_PAY: The transfer was blocked because of the ACH debit settings.
External memo for the transfer. Payment Instructions for Wires and the Entry Description for ACH payments. Must be at most 90 characters for ACH and WIRE transactions and at most 40 characters for CHEQUES
{ "id": "string", "counterparty": { "type": "VENDOR", "payment_instrument_id": "string", "id": "string", "routing_number": "string", "account_number": "string" }, "description": "string", "payment_type": "ACH", "amount": { "amount": 700, "currency": "USD" }, "process_date": "2019-08-24", "originating_account": { "type": "BREX_CASH", "id": "string" }, "status": "PROCESSING", "cancellation_reason": "USER_CANCELLED", "estimated_delivery_date": "2019-08-24", "creator_user_id": "string", "created_at": "2019-08-24", "display_name": "string", "external_memo": "string", "is_ppro_enabled": true }
- Productionhttps://api.brex.com/v1/transfers
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v1/transfers
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X GET \
https://api.brex.com/v1/transfers \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Returns a list of transfers.
Counterparty Details for the transfer - Currently only supports vendors that are returned in the response from the /vendors endpoint BOOK_TRANSFER is a limited feature. Please reach out if you are interested.
Money fields can be signed or unsigned. Fields are signed (an unsigned value will be interpreted as positive). The amount of money will be represented in the smallest denomination of the currency indicated. For example, USD 7.00 will be represented in cents with an amount of 700.
The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents.
Originating account details for the transfer
PROCESSING: We have started to process the sending or receiving of this transaction. SCHEDULED: The transaction is scheduled to enter the PROCESSING status. PENDING_APPROVAL: The transaction requires approval before it can enter the SCHEDULED or PROCESSING status. FAILED: A grouping of multiple terminal states that prevented the transaction from completing. This includes a a user-cancellation, approval being denied, insufficient funds, failed verifications, etc. PROCESSED: The money movement has been fully completed, which could mean money sent has arrived.
USER_CANCELLED: The transfer was canceled. INSUFFICIENT_FUNDS: The transfer could not be sent due to insufficient funds. APPROVAL_DENIED: The transfer was not sent because it was denied. BLOCKED_BY_POSITIVE_PAY: The transfer was blocked because of the ACH debit settings.
External memo for the transfer. Payment Instructions for Wires and the Entry Description for ACH payments. Must be at most 90 characters for ACH and WIRE transactions and at most 40 characters for CHEQUES
{ "next_cursor": "string", "items": [ { … } ] }
Request
This endpoint creates a new transfer.
Currently, the API can only create transfers for the following payment rails:
- ACH
- DOMESTIC_WIRE
- CHEQUE
- INTERNATIONAL_WIRES
Transaction Descriptions
- For outgoing check payments, a successful transfer will return a response containing a description value with a format of
Check #<check number> to <recipient_name> - <external_memo>. - For book transfers (from one Brex Business account to another), the recipient value will have a format of
<customer_account.dba_name> - <external_memo>and the sender will have a format of<target customer account's dba name> - <external_memo>. - For other payment rails, the format will be
<counterparty_name> - <external_memo>, where Counterparty name ispayment_instrument.beneficiary_nameorcontact.nameFor vendors created from the Payments API, thecounterparty_namewill be thecompany_namefield.
Reminder: You may not use the Brex API for any activity that requires a license or registration from any governmental authority without Brex's prior review and approval. This includes but is not limited to any money services business or money transmission activity.
Please review the Brex Access Agreement and contact us if you have any questions.
Counterparty Details for the transfer
Specifies the type of the recipient. ACCOUNT_ID is the ID of a Brex Business account. PAYMENT_INSTRUMENT_ID is the ID of Payment Instrument of the receiving Brex account.
Money fields can be signed or unsigned. Fields are signed (an unsigned value will be interpreted as positive). The amount of money will be represented in the smallest denomination of the currency indicated. For example, USD 7.00 will be represented in cents with an amount of 700.
External memo for the transfer. Payment Instructions for Wires and the Entry Description for ACH payments. Must be at most 90 characters for ACH and WIRE transactions and at most 40 characters for CHEQUES
Brex originating account details. Account IDs are returned by the /accounts endpoint. This endpoint currently only supports accounts with instrument type CASH (Brex business accounts) Currently only USD transfers are supported and amount should be positive
Specifies the approval type for the transaction. MANUAL requires a cash admin to approve the transaction before disbursing funds. When not set, the default policy will apply.
- Productionhttps://api.brex.com/v1/transfers
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v1/transfers
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X POST \
https://api.brex.com/v1/transfers \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-d '{
"counterparty": {
"type": "VENDOR",
"payment_instrument_id": "string"
},
"amount": {
"amount": 700,
"currency": "USD"
},
"description": "string",
"external_memo": "string",
"originating_account": {
"type": "BREX_CASH",
"id": "string"
},
"approval_type": "MANUAL",
"is_ppro_enabled": true
}'createTransfer 200 response
Counterparty Details for the transfer - Currently only supports vendors that are returned in the response from the /vendors endpoint BOOK_TRANSFER is a limited feature. Please reach out if you are interested.
Money fields can be signed or unsigned. Fields are signed (an unsigned value will be interpreted as positive). The amount of money will be represented in the smallest denomination of the currency indicated. For example, USD 7.00 will be represented in cents with an amount of 700.
Originating account details for the transfer
PROCESSING: We have started to process the sending or receiving of this transaction. SCHEDULED: The transaction is scheduled to enter the PROCESSING status. PENDING_APPROVAL: The transaction requires approval before it can enter the SCHEDULED or PROCESSING status. FAILED: A grouping of multiple terminal states that prevented the transaction from completing. This includes a a user-cancellation, approval being denied, insufficient funds, failed verifications, etc. PROCESSED: The money movement has been fully completed, which could mean money sent has arrived.
USER_CANCELLED: The transfer was canceled. INSUFFICIENT_FUNDS: The transfer could not be sent due to insufficient funds. APPROVAL_DENIED: The transfer was not sent because it was denied. BLOCKED_BY_POSITIVE_PAY: The transfer was blocked because of the ACH debit settings.
External memo for the transfer. Payment Instructions for Wires and the Entry Description for ACH payments. Must be at most 90 characters for ACH and WIRE transactions and at most 40 characters for CHEQUES
{ "id": "string", "counterparty": { "type": "VENDOR", "payment_instrument_id": "string", "id": "string", "routing_number": "string", "account_number": "string" }, "description": "string", "payment_type": "ACH", "amount": { "amount": 700, "currency": "USD" }, "process_date": "2019-08-24", "originating_account": { "type": "BREX_CASH", "id": "string" }, "status": "PROCESSING", "cancellation_reason": "USER_CANCELLED", "estimated_delivery_date": "2019-08-24", "creator_user_id": "string", "created_at": "2019-08-24", "display_name": "string", "external_memo": "string", "is_ppro_enabled": true }
- Productionhttps://api.brex.com/v1/transfers/{id}
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v1/transfers/{id}
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X GET \
'https://api.brex.com/v1/transfers/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Returns a transfer.
Counterparty Details for the transfer - Currently only supports vendors that are returned in the response from the /vendors endpoint BOOK_TRANSFER is a limited feature. Please reach out if you are interested.
Money fields can be signed or unsigned. Fields are signed (an unsigned value will be interpreted as positive). The amount of money will be represented in the smallest denomination of the currency indicated. For example, USD 7.00 will be represented in cents with an amount of 700.
Originating account details for the transfer
PROCESSING: We have started to process the sending or receiving of this transaction. SCHEDULED: The transaction is scheduled to enter the PROCESSING status. PENDING_APPROVAL: The transaction requires approval before it can enter the SCHEDULED or PROCESSING status. FAILED: A grouping of multiple terminal states that prevented the transaction from completing. This includes a a user-cancellation, approval being denied, insufficient funds, failed verifications, etc. PROCESSED: The money movement has been fully completed, which could mean money sent has arrived.
USER_CANCELLED: The transfer was canceled. INSUFFICIENT_FUNDS: The transfer could not be sent due to insufficient funds. APPROVAL_DENIED: The transfer was not sent because it was denied. BLOCKED_BY_POSITIVE_PAY: The transfer was blocked because of the ACH debit settings.
External memo for the transfer. Payment Instructions for Wires and the Entry Description for ACH payments. Must be at most 90 characters for ACH and WIRE transactions and at most 40 characters for CHEQUES
{ "id": "string", "counterparty": { "type": "VENDOR", "payment_instrument_id": "string", "id": "string", "routing_number": "string", "account_number": "string" }, "description": "string", "payment_type": "ACH", "amount": { "amount": 700, "currency": "USD" }, "process_date": "2019-08-24", "originating_account": { "type": "BREX_CASH", "id": "string" }, "status": "PROCESSING", "cancellation_reason": "USER_CANCELLED", "estimated_delivery_date": "2019-08-24", "creator_user_id": "string", "created_at": "2019-08-24", "display_name": "string", "external_memo": "string", "is_ppro_enabled": true }