---
title: Transfers
editUrl: false
head: []
template: doc
prev: false
next: false
sidebar:
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

Defined in: [src/payments/client.gen.ts:31](https://github.com/slingshot/brex/blob/9dff46b5d5637a0dd072bca56d02d8a0f4425312/src/payments/client.gen.ts#L31)

## Constructors

### Constructor

> **new Transfers**(`_core`): `Transfers`

Defined in: [src/payments/client.gen.ts:32](https://github.com/slingshot/brex/blob/9dff46b5d5637a0dd072bca56d02d8a0f4425312/src/payments/client.gen.ts#L32)

#### Parameters

##### \_core

[`BrexCore`](/brex/api/index/classes/brexcore/)

#### Returns

`Transfers`

## Methods

### create()

> **create**(`body`, `options?`): `Promise`\<\{ `amount`: \{ `amount`: `number`; `currency`: `string` \| `null`; \}; `cancellation_reason?`: `"USER_CANCELLED"` \| `"INSUFFICIENT_FUNDS"` \| `"APPROVAL_DENIED"` \| `"BLOCKED_BY_POSITIVE_PAY"` \| `null`; `counterparty?`: `Omit`\<`object` & `object`, `"type"`\> \| `null`; `created_at?`: `string` \| `null`; `creator_user_id?`: `string` \| `null`; `description?`: `string` \| `null`; `display_name?`: `string` \| `null`; `estimated_delivery_date?`: `string` \| `null`; `external_memo?`: `string` \| `null`; `id`: `string`; `is_ppro_enabled?`: `boolean` \| `null`; `originating_account`: `object` & `object`; `payment_type`: `"ACH"` \| `"DOMESTIC_WIRE"` \| `"CHEQUE"` \| `"INTERNATIONAL_WIRE"` \| `"BOOK_TRANSFER"` \| `"STABLECOIN"`; `process_date?`: `string` \| `null`; `status`: `"PROCESSING"` \| `"SCHEDULED"` \| `"PENDING_APPROVAL"` \| `"FAILED"` \| `"PROCESSED"`; \}\>

Defined in: [src/payments/client.gen.ts:61](https://github.com/slingshot/brex/blob/9dff46b5d5637a0dd072bca56d02d8a0f4425312/src/payments/client.gen.ts#L61)

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 #<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 is `payment_instrument.beneficiary_name` or `contact.name`
For vendors created from the Payments API, the `counterparty_name` will be the `company_name` [field](/openapi/payments_api/#operation/createVendor!path=company_name&t=request).

**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 <a href="https://www.brex.com/legal/developer-portal/">Brex Access Agreement</a> and contact us if
you have any questions.

`POST /v1/transfers` — requires OAuth scope: `transfers`
Sends an `Idempotency-Key` header: `options.idempotencyKey`, or an auto-generated UUID.

#### Parameters

##### body

###### amount

\{ `amount`: `number`; `currency`: `string` \| `null`; \}

###### amount.amount

`number`

Format: int64

**Description**

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**

```ts
700
```

###### amount.currency

`string` \| `null`

**Description**

The type of currency, in ISO 4217 format.

**Default**

```ts
USD
```

**Example**

```ts
USD
```

###### approval_type?

`"MANUAL"` \| `null`

###### counterparty

`object` & `object` \| `object` & `object`

###### description

`string`

**Description**

Description of the transfer for internal use. Not exposed externally.

###### external_memo

`string`

**Description**

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`

**Description**

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.

###### originating_account

`Omit`\<`object` & `object`, `"type"`\>

##### options?

[`RequestOptions`](/brex/api/index/interfaces/requestoptions/)

#### Returns

`Promise`\<\{ `amount`: \{ `amount`: `number`; `currency`: `string` \| `null`; \}; `cancellation_reason?`: `"USER_CANCELLED"` \| `"INSUFFICIENT_FUNDS"` \| `"APPROVAL_DENIED"` \| `"BLOCKED_BY_POSITIVE_PAY"` \| `null`; `counterparty?`: `Omit`\<`object` & `object`, `"type"`\> \| `null`; `created_at?`: `string` \| `null`; `creator_user_id?`: `string` \| `null`; `description?`: `string` \| `null`; `display_name?`: `string` \| `null`; `estimated_delivery_date?`: `string` \| `null`; `external_memo?`: `string` \| `null`; `id`: `string`; `is_ppro_enabled?`: `boolean` \| `null`; `originating_account`: `object` & `object`; `payment_type`: `"ACH"` \| `"DOMESTIC_WIRE"` \| `"CHEQUE"` \| `"INTERNATIONAL_WIRE"` \| `"BOOK_TRANSFER"` \| `"STABLECOIN"`; `process_date?`: `string` \| `null`; `status`: `"PROCESSING"` \| `"SCHEDULED"` \| `"PENDING_APPROVAL"` \| `"FAILED"` \| `"PROCESSED"`; \}\>

***

### createIncoming()

> **createIncoming**(`body`, `options?`): `Promise`\<\{ `amount`: \{ `amount`: `number`; `currency`: `string` \| `null`; \}; `cancellation_reason?`: `"USER_CANCELLED"` \| `"INSUFFICIENT_FUNDS"` \| `"APPROVAL_DENIED"` \| `"BLOCKED_BY_POSITIVE_PAY"` \| `null`; `counterparty?`: `Omit`\<`object` & `object`, `"type"`\> \| `null`; `created_at?`: `string` \| `null`; `creator_user_id?`: `string` \| `null`; `description?`: `string` \| `null`; `display_name?`: `string` \| `null`; `estimated_delivery_date?`: `string` \| `null`; `external_memo?`: `string` \| `null`; `id`: `string`; `is_ppro_enabled?`: `boolean` \| `null`; `originating_account`: `object` & `object`; `payment_type`: `"ACH"` \| `"DOMESTIC_WIRE"` \| `"CHEQUE"` \| `"INTERNATIONAL_WIRE"` \| `"BOOK_TRANSFER"` \| `"STABLECOIN"`; `process_date?`: `string` \| `null`; `status`: `"PROCESSING"` \| `"SCHEDULED"` \| `"PENDING_APPROVAL"` \| `"FAILED"` \| `"PROCESSED"`; \}\>

Defined in: [src/payments/client.gen.ts:88](https://github.com/slingshot/brex/blob/9dff46b5d5637a0dd072bca56d02d8a0f4425312/src/payments/client.gen.ts#L88)

Create incoming transfer

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 <a href="https://www.brex.com/legal/developer-portal/">Brex Access Agreement</a> and contact us if
you have any questions.

`POST /v1/incoming_transfers` — requires OAuth scope: `incoming_transfers`
Sends an `Idempotency-Key` header: `options.idempotencyKey`, or an auto-generated UUID.

#### Parameters

##### body

###### amount

\{ `amount`: `number`; `currency`: `string` \| `null`; \}

###### amount.amount

`number`

Format: int64

**Description**

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**

```ts
700
```

###### amount.currency

`string` \| `null`

**Description**

The type of currency, in ISO 4217 format.

**Default**

```ts
USD
```

**Example**

```ts
USD
```

###### counterparty

`object` & `object`

###### description

`string`

**Description**

Description of the transfer for internal use. Not exposed externally.

###### receiving_account

`object` & `object`

##### options?

[`RequestOptions`](/brex/api/index/interfaces/requestoptions/)

#### Returns

`Promise`\<\{ `amount`: \{ `amount`: `number`; `currency`: `string` \| `null`; \}; `cancellation_reason?`: `"USER_CANCELLED"` \| `"INSUFFICIENT_FUNDS"` \| `"APPROVAL_DENIED"` \| `"BLOCKED_BY_POSITIVE_PAY"` \| `null`; `counterparty?`: `Omit`\<`object` & `object`, `"type"`\> \| `null`; `created_at?`: `string` \| `null`; `creator_user_id?`: `string` \| `null`; `description?`: `string` \| `null`; `display_name?`: `string` \| `null`; `estimated_delivery_date?`: `string` \| `null`; `external_memo?`: `string` \| `null`; `id`: `string`; `is_ppro_enabled?`: `boolean` \| `null`; `originating_account`: `object` & `object`; `payment_type`: `"ACH"` \| `"DOMESTIC_WIRE"` \| `"CHEQUE"` \| `"INTERNATIONAL_WIRE"` \| `"BOOK_TRANSFER"` \| `"STABLECOIN"`; `process_date?`: `string` \| `null`; `status`: `"PROCESSING"` \| `"SCHEDULED"` \| `"PENDING_APPROVAL"` \| `"FAILED"` \| `"PROCESSED"`; \}\>

***

### get()

> **get**(`id`, `options?`): `Promise`\<\{ `amount`: \{ `amount`: `number`; `currency`: `string` \| `null`; \}; `cancellation_reason?`: `"USER_CANCELLED"` \| `"INSUFFICIENT_FUNDS"` \| `"APPROVAL_DENIED"` \| `"BLOCKED_BY_POSITIVE_PAY"` \| `null`; `counterparty?`: `Omit`\<`object` & `object`, `"type"`\> \| `null`; `created_at?`: `string` \| `null`; `creator_user_id?`: `string` \| `null`; `description?`: `string` \| `null`; `display_name?`: `string` \| `null`; `estimated_delivery_date?`: `string` \| `null`; `external_memo?`: `string` \| `null`; `id`: `string`; `is_ppro_enabled?`: `boolean` \| `null`; `originating_account`: `object` & `object`; `payment_type`: `"ACH"` \| `"DOMESTIC_WIRE"` \| `"CHEQUE"` \| `"INTERNATIONAL_WIRE"` \| `"BOOK_TRANSFER"` \| `"STABLECOIN"`; `process_date?`: `string` \| `null`; `status`: `"PROCESSING"` \| `"SCHEDULED"` \| `"PENDING_APPROVAL"` \| `"FAILED"` \| `"PROCESSED"`; \}\>

Defined in: [src/payments/client.gen.ts:114](https://github.com/slingshot/brex/blob/9dff46b5d5637a0dd072bca56d02d8a0f4425312/src/payments/client.gen.ts#L114)

Get transfer

This endpoint gets a transfer by ID.

Currently, the API can only return transfers for the following payment rails:
- ACH
- DOMESTIC_WIRE
- CHEQUE
- INTERNATIONAL_WIRE

`GET /v1/transfers/{id}` — requires OAuth scope: `transfers.readonly`, `incoming_transfers`

#### Parameters

##### id

`string`

##### options?

[`RequestOptions`](/brex/api/index/interfaces/requestoptions/)

#### Returns

`Promise`\<\{ `amount`: \{ `amount`: `number`; `currency`: `string` \| `null`; \}; `cancellation_reason?`: `"USER_CANCELLED"` \| `"INSUFFICIENT_FUNDS"` \| `"APPROVAL_DENIED"` \| `"BLOCKED_BY_POSITIVE_PAY"` \| `null`; `counterparty?`: `Omit`\<`object` & `object`, `"type"`\> \| `null`; `created_at?`: `string` \| `null`; `creator_user_id?`: `string` \| `null`; `description?`: `string` \| `null`; `display_name?`: `string` \| `null`; `estimated_delivery_date?`: `string` \| `null`; `external_memo?`: `string` \| `null`; `id`: `string`; `is_ppro_enabled?`: `boolean` \| `null`; `originating_account`: `object` & `object`; `payment_type`: `"ACH"` \| `"DOMESTIC_WIRE"` \| `"CHEQUE"` \| `"INTERNATIONAL_WIRE"` \| `"BOOK_TRANSFER"` \| `"STABLECOIN"`; `process_date?`: `string` \| `null`; `status`: `"PROCESSING"` \| `"SCHEDULED"` \| `"PENDING_APPROVAL"` \| `"FAILED"` \| `"PROCESSED"`; \}\>

***

### list()

> **list**(`query?`, `options?`): [`PagePromise`](/brex/api/index/classes/pagepromise/)\<\{ `items`: `object`[]; `next_cursor?`: `string` \| `null`; \}\>

Defined in: [src/payments/client.gen.ts:139](https://github.com/slingshot/brex/blob/9dff46b5d5637a0dd072bca56d02d8a0f4425312/src/payments/client.gen.ts#L139)

Lists transfers

This endpoint lists existing transfers for an account.

Currently, the API can only return transfers for the following payment rails:
- ACH
- DOMESTIC_WIRE
- CHEQUE
- INTERNATIONAL_WIRE

`GET /v1/transfers` — requires OAuth scope: `transfers.readonly`, `incoming_transfers`
Await for a single page, or `for await` to iterate items across all pages.

#### Parameters

##### query?

###### cursor?

`string` \| `null`

###### limit?

`number` \| `null`

##### options?

[`RequestOptions`](/brex/api/index/interfaces/requestoptions/)

#### Returns

[`PagePromise`](/brex/api/index/classes/pagepromise/)\<\{ `items`: `object`[]; `next_cursor?`: `string` \| `null`; \}\>