> ## Documentation Index
> Fetch the complete documentation index at: https://www.marqeta.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create ACH source

> Create an ACH funding source for an existing account holder.

POST/fundingsources/ach

Create an ACH funding source for an existing account holder. Specify the account holder of the funding source by passing a user or business token.

The response body returns details about the account, including the verification status. Possible ACH verification status values include `ACH_VERIFIED`, `ACH_FAILED`, and `VERIFICATION_PENDING`.

## Request body

| Fields | Description |
| - | - |
| account\_number string  Required | ACH account number. **Allowable Values:**  36 char max |
| account\_type string  Required | Type of account. **Allowable Values:**  `checking`, `savings`, `corporate`, `loan` |
| bank\_name string  Optional | Name of the financial institution where the ACH account is held. **Allowable Values:**  255 char max |
| business\_token string  Optional | Unique identifier of the business account holder. This token is required if a `user_token` is not specified. **Allowable Values:**  1–36 chars |
| is\_default\_account boolean  Optional | If there are multiple funding sources, this field specifies which source is used by default in funding calls. If there is only one funding source, the system ignores this field and always uses that source. **Allowable Values:**  `true`, `false` **Default value:** `false` |
| name\_on\_account string  Required | Name on the ACH account. **Allowable Values:**  1–50 chars |
| routing\_number string  Required | Routing number for the ACH account. **Allowable Values:**  9 digits |
| token string  Optional | Unique identifier of the funding source. If you do not include a token, the system will generate one automatically. This token is necessary for use in other calls, so we recommend that rather than let the system generate one, you use a simple string that is easy to remember. This value cannot be updated. **Allowable Values:**  1–36 chars |
| user\_token string  Optional | Unique identifier of the user account holder. This token is required if a `business_token` is not specified. **Allowable Values:**  1–36 chars |
| verification\_notes string  Optional | Free-form text field for holding notes about verification. This field is returned only if `verification_override = true`. **Allowable Values:**  255 char max |
| verification\_override boolean  Optional | Allows the ACH funding source to be used, regardless of its verification status. Set this field to `true` if you can attest that you have verified the account on your own and that it will not be returned by the Federal Reserve. **NOTE:** When using `PLAID` to validate a funding source, this field is always set to `true`. **Allowable Values:**  `true`, `false` **Default value:** `false` |

## Sample request body

```json JSON lines wrap theme={null}
{
  "token": "my_user_01_fundingsource_token_01",
  "user_token": "my_user_01",
  "routing_number": "121000358",
  "name_on_account": "Jane Doe",
  "is_default_account": false,
  "account_number": "987654321",
  "account_type": "savings",
  "verification_notes": "These are my verification notes.",
  "verification_override": true
}
```

## Response body

| Fields | Description |
| - | - |
| account\_suffix string  Returned | ACH account identifier appended to the bank account number. **Allowable Values:**  255 char max |
| account\_type string  Returned | Type of account. **Allowable Values:**  `checking`, `savings`, `corporate`, `loan` |
| active boolean  Returned | Specifies whether the account is active. **Allowable Values:**  `true`, `false` |
| bank\_name string  Conditionally returned | Name of the bank holding the account. This field is returned if it exists in the resource. **Allowable Values:**  255 char max |
| business\_token string  Conditionally returned | Unique identifier of the business account holder. This token is returned if a `user_token` is not specified. **Allowable Values:**  Existing business token |
| created\_time datetime  Returned | Date and time when the resource was created, in UTC. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| date\_sent\_for\_verification datetime  Conditionally returned | Date and time in UTC when the request for account validation was sent to the third-party partner. This field is returned if it exists in the resource. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| date\_verified datetime  Conditionally returned | Date and time when the account was verified, in UTC. This field is returned if it exists in the resource. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| is\_default\_account boolean  Conditionally returned | If there are multiple funding sources, this field specifies which source is used by default in funding calls. If there is only one funding source, the system ignores this field and always uses that source. This field is returned if it exists in the resource. **Allowable Values:**  `true`, `false` |
| last\_modified\_time datetime  Returned | Date and time when the resource was last modified, in UTC. **Allowable Values:**  datetime **Format:** yyyy-MM-ddThh:mm:ssZ |
| name\_on\_account string  Returned | Name on the ACH account. **Allowable Values:**  1–50 chars |
| partner string  Conditionally returned | Name of the partner who validated the account holder. Returned when a third-party partner was used for account validation. **Allowable Values:**  `PLAID` |
| partner\_account\_link\_reference\_token string  Conditionally returned | Supplied by the account validation partner, this value is a reference to the account holder's details, such as the account number and routing number. Returned when a third-party partner was used for account validation. **Allowable Values:**  255 char max |
| token string  Returned | Unique identifier of the funding source. **Allowable Values:**  Existing funding source token |
| user\_token string  Conditionally returned | Unique identifier of the user account holder. This token is returned if a `business_token` is not specified. **Allowable Values:**  Existing user token |
| verification\_notes string  Conditionally returned | Free-form text field for holding notes about verification. This field is returned only if `verification_override = true`. **Allowable Values:**  255 char max |
| verification\_override boolean  Conditionally returned | Allows the ACH funding source to be used regardless of its verification status. This field is returned if it exists in the resource. **NOTE:** When using `PLAID` to validate a funding source, this field is always set to `true`. **Allowable Values:**  `true`, `false` |
| verification\_status string  Conditionally returned | Account verification status. This field is returned if it exists in the resource. **Allowable Values:**  `ACH_FAILED`, `ACH_VERIFIED`, `VERIFICATION_PENDING` |

## Sample response body

```json JSON lines wrap theme={null}
{
  "token": "my_user_01_fundingsource_token_01",
  "created_time": "2023-02-26T18:46:06Z",
  "last_modified_time": "2023-03-26T12:44:02Z",
  "account_suffix": "4321",
  "verification_status": "ACH_VERIFIED",
  "account_type": "savings",
  "name_on_account": "Jane Doe",
  "active": true,
  "date_sent_for_verification": "2023-02-27T07:36:05Z",
  "user_token": "my_user_01",
  "is_default_account": false,
  "date_verified": "2023-02-27T11:03:45Z",
  "verification_override": true,
  "verification_notes": "These are my verification notes."
}
```


## Related topics

- [ACH Sources Overview](https://www.marqeta.com/docs/core-api/account-holder-funding-sources/ach-sources.md)
- [Create ACH source via a partner integration](https://www.marqeta.com/docs/core-api/account-holder-funding-sources/ach-sources/create-ach-via-partner-integration.md)
- [Account Holder Funding Sources Overview](https://www.marqeta.com/docs/core-api/account-holder-funding-sources.md)
- [Account Validation via Plaid](https://www.marqeta.com/docs/developer-guides/account-validation-via-plaid.md)
- [Create ACH program source](https://www.marqeta.com/docs/core-api/program-funding-sources/create-ach-program-source.md)
