> ## 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 via a partner integration

> Create an ACH funding source for an existing account holder by using a third-party partner to handle account validation and provide PII account data.

POST/fundingsources/ach/partner

Create an ACH funding source for an existing account holder by using a third-party partner to handle account validation and provide PII account data. Because you don't handle any personally identifiable information (PII) yourself, using a third party when creating the funding source enables you to bypass the regulatory and compliance measures related to capturing, storing, and transmitting PII.

With this endpoint, you can create a US-based funding source—either a checking account or a savings account—for a program or user without passing bank account details such as the account number or routing number to Marqeta. Instead, validating account data and account verification is handled by the third-party partner you specify, and a secure token (i.e., a Plaid `processor_token`) is shared across partners. By using a secure account verification platform to provide immediate verification, you shorten the wait time until the ACH funding source is ready and avoid managing the microdeposit-based account verification process.

To create an ACH funding source for an existing account holder without validating through a third party, see [Create ACH source](https://www.marqeta.com/docs/core-api/account-holder-funding-sources/ach-sources/create-ach-source.md).

> [!NOTE]
>
> **Note**\
> This endpoint assumes that you already have established a relationship with both Marqeta and the third-party account validation partner you want to use. In addition, you must explicitly authorize the sharing of information with the third-party partner, and enable Marqeta as a processor for your integration. For more information, contact your Marqeta representative.

## Request body

| Fields | Description |
| - | - |
| partner string  Required | 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  Required | 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 |
| user\_token string  Optional | 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. This token is required if a `business_token` is not specified. Send a `GET` request to `/users` to retrieve user tokens. **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` |
| 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 |

## Sample request body

```json JSON lines wrap theme={null}
{
  "token": "my_user_01_fundingsource_token_01",
  "user_token": "my_user_01",
  "is_default_account": false,
  "partner": "PLAID",
  "partner_account_link_reference_token": "processor-sandbox-reference-token"
}
```

## 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.",
  "partner": "PLAID",
  "partner_account_link_reference_token": "processor-sandbox-reference-token"
}
```


## Related topics

- [ACH Sources Overview](https://www.marqeta.com/docs/core-api/account-holder-funding-sources/ach-sources.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)
- [Partner Integrations](https://www.marqeta.com/docs/developer-guides/partner-integrations.md)
- [Create ACH source](https://www.marqeta.com/docs/core-api/account-holder-funding-sources/ach-sources/create-ach-source.md)
