# Create an ACH transfer

**POST** `/transfers/ach`

Creates an ACH transfer between an account and a `counterparty`.

### Body Parameters

- `account_number_id` `string` _(required)_ — ID of the account number from which the transfer is sent. If no `account_number_id` is specified, the default account number on a provided `bank_account_id` is used. `account_number_id` or `bank_account_id` is required.
- `allow_overdraft` `boolean` — Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.
- `amount` `number` — Amount (in cents) of the funds that will be transferred between originator and counterparty accounts. e.g. $1.75 would be represented by 175.
- `bank_account_id` `string` _(required)_ — ID of the bank account from which the transfer is sent. If no `account_number_id` is specified, the default account number on the `bank_account_id` is used. `account_number_id` or `bank_account_id` is required.
- `company_discretionary_data` `string` — This optional field allows you to include codes (one or more), of significance only to you, to enable specialized handling of the transfer. There is no standardized interpretation for the value of the field. Maximum length: `20` characters.
- `company_entry_description` `string` — You can use this optional field to provide the Receiver with a description of the purpose of the transfer. Default value: `PAYMENT`. Maximum length: `10` characters.
- `company_name` `string` — This optional field identifies the source of the transfer and is used for descriptive purposes for the Receiver. Default value: the root entity name of your platform, or "COLUMN NA" if no root entity exists. Maximum length: `16` characters.
- `counterparty` `object` — Counterparty object to create a counterparty for the receiver of the transfer at transfer creation. Either counterparty or `counterparty_id` is required.
  - `account_number` `string` _(required)_ — The account number for the bank account.
  - `account_type` `string` _(required)_ — The type of the account number. Can be `checking` or `savings`.
  - `address` `object` _(required)_ — Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the [Fedwire character validation](/wire#valid-characters-permitted).
    - `city` `string` _(required)_ — City name
    - `country_code` `string` _(required)_ — Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)
    - `line_1` `string` _(required)_ — Street address line 1
    - `line_2` `string` — Street address line 2
    - `postal_code` `string` — Postal or ZIP code
    - `state` `string` — State or province
  - `description` `string` _(required)_ — Description of the counterparty visible only in your platform. Maximum length: `127` characters.
  - `email` `string` _(required)_ — The email address of the beneficiary.
  - `legal_id` `string` _(required)_ — The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `127` characters.
  - `legal_type` `string` _(required)_ — The legal entity type of the beneficiary. Can be `business`, `non_profit`, `individual`, or `sole_proprietor`. This field is recommended for international wire transfers, and required in some countries.
  - `local_account_number` `string` _(required)_ — The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.
  - `local_bank_code` `string` _(required)_ — The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: `63` characters.
  - `local_bank_country_code` `string` _(required)_ — The ISO 3166-1 alpha-2 country code of the beneficiary's local bank.
  - `local_bank_name` `string` _(required)_ — Name of the beneficiary's local bank.
  - `name` `string` _(required)_ — The counterparty name who owns the bank account. There is a `127` character limit for this field. For domestic wires, only the first 35 characters are included in the wire message.
  - `phone` `string` _(required)_ — The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `31` characters.
  - `routing_number` `string` _(required)_ — The routing number of the bank.
  - `routing_number_type` `string` _(required)_ — The type of the routing number. Can be `aba`, `bic`, or `other`.
  - `wire` `object` _(required)_ — Wire-specific details for this counterparty, including beneficiary information and local bank details.
    - `beneficiary_address` `object` _(required)_ — The address of the wire beneficiary.
      - `city` `string` _(required)_ — City name
      - `country_code` `string` _(required)_ — Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)
      - `line_1` `string` _(required)_ — Street address line 1
      - `line_2` `string` — Street address line 2
      - `postal_code` `string` — Postal or ZIP code
      - `state` `string` — State or province
    - `beneficiary_email` `string` _(required)_ — The email address of the wire beneficiary.
    - `beneficiary_legal_id` `string` _(required)_ — The legal identification number of the wire beneficiary (e.g. EIN or SSN).
    - `beneficiary_name` `string` _(required)_ — The name of the wire beneficiary.
    - `beneficiary_phone` `string` _(required)_ — The phone number of the wire beneficiary.
    - `beneficiary_type` `string` _(required)_ — The type of the wire beneficiary. Possible values: `individual`, `business`
    - `local_account_number` `string` _(required)_ — The local account number at the beneficiary's bank (used for international counterparties).
    - `local_bank_code` `string` _(required)_ — The local bank code of the beneficiary's bank (used for international counterparties).
  - `wire_drawdown_allowed` `boolean` _(required)_ — Whitelists counterparties for automatic approval of drawdown requests to Column via Fedwire. If `false`, all inbound drawdown requests from this counterparty will require explicit approval.
- `counterparty_id` `string` _(required)_ — ID of the counterparty that will receive the transfer. Either counterparty or `counterparty_id` is required.
- `currency_code` `string` _(required)_ — The three-letter currency code defined in ISO 4217. e.g. `USD`
- `description` `string` — Description of the transfer visible only in your platform. Maximum length: `255` characters.
- `effective_date` `string` — Date (format: `YYYY-MM-DD` ) on which the transfer will be effective
- `entry_class_code` `integer` — Standard Entry Class code of the transfer. Valid values: `CCD`, `CTX`, `CIE`, `PPD` (default), `TEL`, `WEB`
- `intermediate_financial_institutions` `array of objects` — List of intermediary financial institutions involved in an IAT (International ACH Transaction) transfer.
  - `country_code` `string` — Two-letter ISO 3166-1 alpha-2 country code of the institution
  - `identifier` `string` — Identifier of the intermediary financial institution (e.g., routing number or BIC)
  - `identifier_type` `string` — Type of identifier. Possible values: `aba`, `bic`, `iban`, `other`
  - `name` `string` — Name of the intermediary financial institution
- `payment_related_info` `string` — Provides an additional `80` characters to give details on the ACH transaction for outgoing transfers. This information will be surfaced to the RDFI.
- `receiver_id` `string` — This field contains the accounting reference number by which the Receiver is known to the Originator. It is included for further identification and for descriptive purposes. Maximum length: `15` characters.
- `receiver_name` `string` — The name of the receiver, usually the name on the bank account of the Receiver. If omitted, counterparty.name will be automatically used. Default value: beneficiary name of the counterparty. Maximum length: `22` characters for all entry class codes except CIE it is 15 characters.
- `same_day` `boolean` _(required)_ — Specify if the transfer is a same-day ACH transfer. If it is set as `true`, it takes precedence over `effective_date` and overrides it.
- `transaction_type_code` `string` — This is a required code on IAT transfers used to identify reason for payment. Possible values: `ANN`, `BUS`, `DEP`, `LOA`, `MIS`, `MOR`, `PEN`, `REM`, `RLS`, `SAL`, `TAX`
- `type` `integer` — ACH transfer type: `CREDIT` or `DEBIT`. [Learn more](/ach).
- `ultimate_beneficiary_counterparty` `object` — Counterparty object to create an ultimate beneficiary counterparty at the time of transfer creation. This is only required on outgoing IAT debits. Either `ultimate_beneficiary_counterparty` or `ultimate_beneficiary_counterparty_id` is required.
  - `account_number` `string` _(required)_ — The account number for the bank account.
  - `account_type` `string` _(required)_ — The type of the account number. Can be `checking` or `savings`.
  - `address` `object` _(required)_ — Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the [Fedwire character validation](/wire#valid-characters-permitted).
    - `city` `string` _(required)_ — City name
    - `country_code` `string` _(required)_ — Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)
    - `line_1` `string` _(required)_ — Street address line 1
    - `line_2` `string` — Street address line 2
    - `postal_code` `string` — Postal or ZIP code
    - `state` `string` — State or province
  - `description` `string` _(required)_ — Description of the counterparty visible only in your platform. Maximum length: `127` characters.
  - `email` `string` _(required)_ — The email address of the beneficiary.
  - `legal_id` `string` _(required)_ — The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `127` characters.
  - `legal_type` `string` _(required)_ — The legal entity type of the beneficiary. Can be `business`, `non_profit`, `individual`, or `sole_proprietor`. This field is recommended for international wire transfers, and required in some countries.
  - `local_account_number` `string` _(required)_ — The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.
  - `local_bank_code` `string` _(required)_ — The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: `63` characters.
  - `local_bank_country_code` `string` _(required)_ — The ISO 3166-1 alpha-2 country code of the beneficiary's local bank.
  - `local_bank_name` `string` _(required)_ — Name of the beneficiary's local bank.
  - `name` `string` _(required)_ — The counterparty name who owns the bank account. There is a `127` character limit for this field. For domestic wires, only the first 35 characters are included in the wire message.
  - `phone` `string` _(required)_ — The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `31` characters.
  - `routing_number` `string` _(required)_ — The routing number of the bank.
  - `routing_number_type` `string` _(required)_ — The type of the routing number. Can be `aba`, `bic`, or `other`.
  - `wire` `object` _(required)_ — Wire-specific details for this counterparty, including beneficiary information and local bank details.
    - `beneficiary_address` `object` _(required)_ — The address of the wire beneficiary.
      - `city` `string` _(required)_ — City name
      - `country_code` `string` _(required)_ — Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)
      - `line_1` `string` _(required)_ — Street address line 1
      - `line_2` `string` — Street address line 2
      - `postal_code` `string` — Postal or ZIP code
      - `state` `string` — State or province
    - `beneficiary_email` `string` _(required)_ — The email address of the wire beneficiary.
    - `beneficiary_legal_id` `string` _(required)_ — The legal identification number of the wire beneficiary (e.g. EIN or SSN).
    - `beneficiary_name` `string` _(required)_ — The name of the wire beneficiary.
    - `beneficiary_phone` `string` _(required)_ — The phone number of the wire beneficiary.
    - `beneficiary_type` `string` _(required)_ — The type of the wire beneficiary. Possible values: `individual`, `business`
    - `local_account_number` `string` _(required)_ — The local account number at the beneficiary's bank (used for international counterparties).
    - `local_bank_code` `string` _(required)_ — The local bank code of the beneficiary's bank (used for international counterparties).
  - `wire_drawdown_allowed` `boolean` _(required)_ — Whitelists counterparties for automatic approval of drawdown requests to Column via Fedwire. If `false`, all inbound drawdown requests from this counterparty will require explicit approval.
- `ultimate_beneficiary_counterparty_id` `string` _(required)_ — ID of the ultimate beneficiary counterparty that will receive the transfer. This is only required on outgoing IAT debits. Either `ultimate_beneficiary_counterparty` or `ultimate_beneficiary_counterparty_id` is required.
- `ultimate_originator_counterparty` `object` — Counterparty object to create an ultimate originator counterparty at the time of transfer creation. This is only required on outgoing IAT credits. Either `ultimate_originator_counterparty` or `ultimate_originator_counterparty_id` is required.
  - `account_number` `string` _(required)_ — The account number for the bank account.
  - `account_type` `string` _(required)_ — The type of the account number. Can be `checking` or `savings`.
  - `address` `object` _(required)_ — Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the [Fedwire character validation](/wire#valid-characters-permitted).
    - `city` `string` _(required)_ — City name
    - `country_code` `string` _(required)_ — Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)
    - `line_1` `string` _(required)_ — Street address line 1
    - `line_2` `string` — Street address line 2
    - `postal_code` `string` — Postal or ZIP code
    - `state` `string` — State or province
  - `description` `string` _(required)_ — Description of the counterparty visible only in your platform. Maximum length: `127` characters.
  - `email` `string` _(required)_ — The email address of the beneficiary.
  - `legal_id` `string` _(required)_ — The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `127` characters.
  - `legal_type` `string` _(required)_ — The legal entity type of the beneficiary. Can be `business`, `non_profit`, `individual`, or `sole_proprietor`. This field is recommended for international wire transfers, and required in some countries.
  - `local_account_number` `string` _(required)_ — The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.
  - `local_bank_code` `string` _(required)_ — The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: `63` characters.
  - `local_bank_country_code` `string` _(required)_ — The ISO 3166-1 alpha-2 country code of the beneficiary's local bank.
  - `local_bank_name` `string` _(required)_ — Name of the beneficiary's local bank.
  - `name` `string` _(required)_ — The counterparty name who owns the bank account. There is a `127` character limit for this field. For domestic wires, only the first 35 characters are included in the wire message.
  - `phone` `string` _(required)_ — The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `31` characters.
  - `routing_number` `string` _(required)_ — The routing number of the bank.
  - `routing_number_type` `string` _(required)_ — The type of the routing number. Can be `aba`, `bic`, or `other`.
  - `wire` `object` _(required)_ — Wire-specific details for this counterparty, including beneficiary information and local bank details.
    - `beneficiary_address` `object` _(required)_ — The address of the wire beneficiary.
      - `city` `string` _(required)_ — City name
      - `country_code` `string` _(required)_ — Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)
      - `line_1` `string` _(required)_ — Street address line 1
      - `line_2` `string` — Street address line 2
      - `postal_code` `string` — Postal or ZIP code
      - `state` `string` — State or province
    - `beneficiary_email` `string` _(required)_ — The email address of the wire beneficiary.
    - `beneficiary_legal_id` `string` _(required)_ — The legal identification number of the wire beneficiary (e.g. EIN or SSN).
    - `beneficiary_name` `string` _(required)_ — The name of the wire beneficiary.
    - `beneficiary_phone` `string` _(required)_ — The phone number of the wire beneficiary.
    - `beneficiary_type` `string` _(required)_ — The type of the wire beneficiary. Possible values: `individual`, `business`
    - `local_account_number` `string` _(required)_ — The local account number at the beneficiary's bank (used for international counterparties).
    - `local_bank_code` `string` _(required)_ — The local bank code of the beneficiary's bank (used for international counterparties).
  - `wire_drawdown_allowed` `boolean` _(required)_ — Whitelists counterparties for automatic approval of drawdown requests to Column via Fedwire. If `false`, all inbound drawdown requests from this counterparty will require explicit approval.
- `ultimate_originator_counterparty_id` `string` _(required)_ — ID of the ultimate originating counterparty that will sent the transfer. This is only required on outgoing IAT credits. Either `ultimate_originator_counterparty` or `ultimate_originator_counterparty_id` is required.

**Request**

```shell
curl 'https://api.column.com/transfers/ach' \
  -XPOST \
  -u :<YOUR API KEY> \
  -d amount=100000 \
  -d currency_code="USD" \
  -d bank_account_id="<bank_account_id>" \
  -d counterparty_id="<counterparty_id>" \
  -d type="CREDIT" \
  -d entry_class_code="CCD"
```

**Response 200**

```json
{
  "id": "acht_2HKbYE2th2sFioBxrRFOZL3IHR4",
  "iat": null,
  "type": "CREDIT",
  "amount": 100000,
  "status": "SUBMITTED",
  "is_on_us": false,
  "same_day": false,
  "company_id": "9959349647",
  "created_at": "2022-11-09T23:32:47Z",
  "settled_at": null,
  "updated_at": "2022-11-09T23:32:48Z",
  "description": "",
  "is_incoming": false,
  "receiver_id": "",
  "returned_at": null,
  "cancelled_at": null,
  "company_name": "COLUMN NA",
  "completed_at": null,
  "effective_on": "2022-11-10T08:00:00Z",
  "initiated_at": "2022-11-09T23:32:47Z",
  "nsf_deadline": null,
  "submitted_at": "2022-11-09T23:32:48Z",
  "trace_number": "121145300000005",
  "currency_code": "USD",
  "receiver_name": "CHASE ACCOUNT",
  "return_details": [],
  "acknowledged_at": null,
  "allow_overdraft": false,
  "bank_account_id": "bacc_2HKbY4W10hcBQBx5r42xMDEhv2K",
  "counterparty_id": "cpty_2HKbYBePtS8z3zK32QvwKlIoIeK",
  "idempotency_key": "",
  "entry_class_code": "PPD",
  "manual_review_at": null,
  "account_number_id": "acno_2HKbY3eq0gPP1WaQLZShDk87JC4",
  "funds_availability": "default",
  "odfi_routing_number": "121145307",
  "return_contested_at": null,
  "payment_related_info": "payment addenda for COR testing",
  "return_dishonored_at": null,
  "return_dishonored_funds_unlocked_at": null,
  "notification_of_changes": null,
  "company_entry_description": "PAYMENT",
  "reversal_pair_transfer_id": "",
  "company_discretionary_data": "",
  "ultimate_beneficiary_counterparty_id": "",
  "ultimate_originator_counterparty_id": "",
  "entry_details": {
    "transaction_code": 22,
    "transaction_code_name": "Checking Credit"
  }
}
```
