> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Bank account verification extension contract reference

> Learn about the requirements to implement the bank account verification extension.

The bank account verification extension enables real-time verification of bank account information. This extension can only be used to verify U.S. bank accounts with American Bankers Association routing numbers.

With this extension, you can add special bank account data fields to documents. When a recipient fills out those fields, Docusign sends a request to an external bank account verification service. If the account information is not valid, the recipient is prompted to correct the data.

> **Note**
>
> This extension verifies specific types of values. See [Connected fields extension overview](/extension-apps/extension-apps-101/supported-extensions/connected-fields) for information about an extension that can verify any type of value against an organization’s system of record.

You can include this extension when you [register an extension app](/extension-apps/build-an-extension-app/register). If you register the extension app [using a form](/extension-apps/build-an-extension-app/register/use-form), select the **Data Verification** extension in the form-based UI. Then select a verification type of **Bank Account**.

![Bank account verification form-based registration](/_fern-files/_img/f294bdc7ac79e80c3b9c0fb18438725703c04cd7dbe80888e780c109b3c54264.webp)

If you register the extension app [using an app manifest file](/extension-apps/build-an-extension-app/register/use-manifest), set the `extensions.template` value in your app manifest to `Verify.Version4.BankAccount`.

This extension has one action. The action name you specify when you register an extension app depends on whether you register the app using a form or using an app manifest file. The app manifest file value listed here appears in the `actions.template` property.

| Form-Based Action Name     | App Manifest File Value       |
| -------------------------- | ----------------------------- |
| Verify Bank Account Number | `Verify.Version4.BankAccount` |

You provide the details required for action execution when you register an extension app. See [Update extension and action settings](/extension-apps/build-an-extension-app/register/use-form/integration-details#update-extension-and-action-settings) for information about defining actions using the form-based registration process. See [Action schema](/extension-apps/extension-app-reference/app-manifest-reference/action) for information about action properties in the app manifest file.

## Action contracts

#### Verify Bank Account Number (Verify.Version4.BankAccount)

The bank account verification contract describes the parameters that Docusign will pass to the external bank verification service as well as the parameters expected in the response. You specify the URL for the bank verification service in the action definition in the form-based UI or in the extension app manifest.

Verify Bank Account Number is the label for this action that appears when you register an extension app [using a form](/extension-apps/build-an-extension-app/register/use-form). If you register your extension app [using an app manifest file](/extension-apps/build-an-extension-app/register/use-manifest), the `actions.template` property value for this action is `Verify.Version4.BankAccount`.

### HTTP method

This action initiates a POST request to the external API service.

### Request

```text
{
	"accountNumber": "A1234567890",
	"accountType": "savings",
	"routingNumber": "A1234567890"
}
```

| Property        | Type     | Required? | Description                                                        |
| --------------- | -------- | --------- | ------------------------------------------------------------------ |
| `accountNumber` | `string` | Yes       | The account number of the bank account.                            |
| `accountType`   | `string` | Yes       | The type of bank account. Possible values:- `checking`
- `savings` |
| `routingNumber` | `string` | Yes       | The routing number of the bank account.                            |

### Response Successful case

```json
{
   "verified": true,
   "responseCode": 'VERIFIED',
   "providerResponseCode": 'OK',
}
```

##### Unsuccessful case

```json
{
   "verified": false,
   "responseCode": 'NOT_VERIFIED',
   "providerResponseCode": 'FAILED_BECAUSE_REASONS',
}
```

| Property               | Type      | Occurrence | Description                                                                                                        |
| ---------------------- | --------- | ---------- | ------------------------------------------------------------------------------------------------------------------ |
| `verified`             | `boolean` | Required   | Whether the bank account was successfully verified.                                                                |
| `responseCode`         | `string`  | Required   | Contains a code that indicates the type of response. If verification failed, this code will contain an error code. |
| `providerResponseCode` | `string`  | Optional   | Contains response code produced from the app indicating the reasons for success or failure.                        |

## Next steps

* [See an example manifest for a bank account verification app.](/extension-apps/build-an-extension-app/example-use-case)