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

# Add Bank Account

> Suggest Edits

A bank account plays an important role in transaction processing between the payer and payee. When using the
registration API, you have the option to include the user's bank account information along with their personal
information.

If, for some reason, the bank information was not provided during the registration API process, you can still request to
add the bank account information for the person or business using this API. Additionally, if the existing bank account
information for the person or business is not accessible in our system, you can add new bank account information through
this API.

This API includes a path parameter **`<user_uuid>`**, which refers to the unique identifier of the registered business
or individual that was obtained from the registration API.

***

### Account/Routing Validation

Our ACH API supports **account and routing number validation** to prevent failed transactions and fund reversals. This
validation is performed by setting the `validate_account_routing` flag to **true** when adding a bank account to an
existing user.

### Validation Results:

* **valid:** The account and routing number are valid, and the account is added successfully.
* **invalid:** The account or routing number is invalid, and the account is not added to the application. This returns
  an HTTP response code - 406
* **not\_validated:** Validation could not be completed, but the account is still added to the application.

***

### Billing

Our ACH API supports associating specific billable events with a particular merchant, enabling precise attribution for
billing purposes. This feature allows you to link the **UUID** of a user tied to a merchant *(a business that has
undergone KYB verification)* to the billing event recorded for the API call.

To attribute the billing event to a merchant, include the following parameter in your request payload:

* **billing\_merchant\_user\_uuid:** The unique identifier (UUID) of the user associated with the merchant to whom this billable event should be attributed.

By leveraging this parameter, you can ensure accurate and detailed tracking of billable events across your integrations.

***

### Endpoint

POST   **/3p/api/v1/bank-account/\{user\_uuid}**

### Request Payload

<CodeGroup>
  ```json json theme={"system"}
  {
    "biling_merchant_user_uuid": "0bfecb72-4284-4f0d-be7d-082ae3331938",
  	"custom": {
  	    "account_number": "12345678901234",
  	    "routing_number": "056008849",
  	    "account_name": "Jack Jones",
  	    "account_type": "checking", 
  	    "valid_account_routing": true
  	}
  }
  ```
</CodeGroup>

| Fields                         | Type    | Is Required | Description                                                                                               |
| ------------------------------ | ------- | ----------- | --------------------------------------------------------------------------------------------------------- |
| **plaid.access\_token**        | string  |             | Plaid user access token                                                                                   |
| **plaid.account\_id**          | string  |             | Plaid user account id                                                                                     |
| **custom.account\_number**     | string  |             | Bank account number *maximum of 17 characters*                                                            |
| **custom.routing\_number**     | string  |             | Bank account routing number *9-digit ABA routing transit number associated with the account*              |
| **custom.account\_name**       | string  |             | Name of account in bank                                                                                   |
| **custom.account\_type**       | string  |             | Bank account type *Possible values: savings checking*                                                     |
| **validate\_account\_routing** | boolean | No          | Perform validation on the account and routing number. If validation fails, the account will not be added. |

### Response Object

<CodeGroup>
  ```json (201) When new bank account added theme={"system"}
  {
      "status": true,
      "message": "Bank account has been added.",
      "data": {
          "uuid": "9bb541c4-05bc-48f8-8bcd-fd0fe5c903d7",
          "account_number": "12345678901234",
          "routing_number": "056008849",
          "account_name": "Jack Jones",
          "account_type": "checking",
          "aggregator_type": "manual",
          "created_at": "2024-04-02 03:19:07",
          "is_default": true,
          "valid_account": "valid"
      },
      "errors": []
  }
  ```

  ```json (200) For existing bank account theme={"system"}
  {
      "status": true,
      "message": "We found a matching bank account associated with your account.",
      "data": {
          "uuid": "9bb541c4-05bc-48f8-8bcd-fd0fe5c903d7",
          "account_number": "12345678901234",
          "routing_number": "056008849",
          "account_name": "Jack Jones",
          "account_type": "checking",
          "aggregator_type": "manual",
          "created_at": "2024-04-02 03:19:07",
          "is_default": true
      },
      "errors": []
  }
  ```
</CodeGroup>

### Errors & Warnings

| Code | Reason                             | Message                                                                  |
| ---- | ---------------------------------- | ------------------------------------------------------------------------ |
| 401  |                                    |                                                                          |
| 403  |                                    |                                                                          |
| 406  | Invalid Account or Routing Number  | The account or routing number provided is invalid                        |
| 406  | Billing Merchant User UUID invalid | The requested billing merchant user uuid does not exist.                 |
| 406  | Billing Merchant Deleted           | The billing merchant is deleted and cannot be used for billing purposes. |
| 422  |                                    |                                                                          |
