# Create transfer 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 # to - . * For book transfers (from one Brex Business account to another), the recipient value will have a format of - and the sender will have a format of - . * For other payment rails, the format will be - , where Counterparty name is payment_instrument.beneficiary_name or contact.name For vendors created from the Payments API, the counterparty_name will be the company_name field. 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. Endpoint: POST /v1/transfers Version: 1.0 Security: OAuth2 ## Header parameters: - `Idempotency-Key` (string, required) ## Request fields (application/json): - `counterparty` (object, required) Counterparty Details for the transfer - `amount` (object, required) 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. - `amount.amount` (integer, required) The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Example: 700 - `amount.currency` (string,null) The type of currency, in ISO 4217 format. Example: "USD" - `description` (string, required) Description of the transfer for internal use. Not exposed externally. - `external_memo` (string, required) 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 - `originating_account` (object, required) Originating account details for the transfer - `approval_type` (string,null) 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. Enum: "MANUAL" - `is_ppro_enabled` (boolean) When set to true, add Principal Protection (PPRO) to the transaction. PPRO means Brex will cover any fees charged by intemediary or receiving banks. PPRO charges will be billed separately in a monthly statement. PPRO is only available for international wire transactions. ## Response 200 fields (application/json): - `id` (string, required) Unique ID associated with the transfer - `counterparty` (object,null) 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. - `description` (string,null) Description of the transfer - `payment_type` (string, required) Enum: "ACH", "DOMESTIC_WIRE", "CHEQUE", "INTERNATIONAL_WIRE", "BOOK_TRANSFER", "STABLECOIN" - `amount` (object, required) 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. - `amount.amount` (integer, required) The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Example: 700 - `amount.currency` (string,null) The type of currency, in ISO 4217 format. Example: "USD" - `process_date` (string,null) Transaction processing date - `originating_account` (object, required) Originating account details for the transfer - `status` (string, required) 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. Enum: "PROCESSING", "SCHEDULED", "PENDING_APPROVAL", "FAILED", "PROCESSED" - `cancellation_reason` (string,null) 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. Enum: "USER_CANCELLED", "INSUFFICIENT_FUNDS", "APPROVAL_DENIED", "BLOCKED_BY_POSITIVE_PAY" - `estimated_delivery_date` (string,null) Estimated delivery date for transfer - `creator_user_id` (string,null) User ID of the transfer initiator - `created_at` (string,null) Date of transfer creation - `display_name` (string,null) Human readable name for the transaction - `external_memo` (string,null) 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 - `is_ppro_enabled` (boolean,null) If Principal Protection (PPRO) is enabled