**Last updated**: 11 March 2026 | [**Change log**](/access/products/card-verifications/changelog/)

## ACH verification

ACH verification gives you the ability to perform a verification against a US bank account.

### ACH verification request

`POST`  `https://try.access.worldpay.com/achVerifications`

### Example request body

ACH verification requests with **mandatory** fields only:

Request for personal account

```json
{
  "merchant": {
    "entity": "default"
  },
  "transactionReference": "1234567",
  "paymentInstrument": {
    "type": "bankAccountUS",
    "accountType": "checking",
    "accountNumber": "1234567890",
    "routingNumber": "011400495",
    "billToAddress": {
      "firstName": "John",
      "lastName": "Smith",
      "address1": "address1",
      "city": "city",
      "region": "state",
      "postalCode": "postalCode",
      "countryCode": "US",
      "telephoneNumber": "4085551212"
    }
  }
}
```

Request for corporate account

```json
{
  "merchant": {
    "entity": "default"
  },
  "transactionReference": "1234567",
  "paymentInstrument": {
    "type": "bankAccountUS",
    "accountType": "corporateSavings",
    "accountNumber": "1234567890",
    "routingNumber": "011400495",
    "companyName": "companyName",
    "billToAddress": {
      "address1": "address1",
      "city": "city",
      "region": "state",
      "postalCode": "postalCode",
      "countryCode": "US",
      "telephoneNumber": "4085551212"
    }
  }
}
```

#### Descriptions of your **mandatory** ACH verification request parameters:

| Parameter | Required? | Description |
|  --- | --- | --- |
| `merchant.entity` | ✅ | Direct your verification to assist with billing, reporting and reconciliation. For more information contact your [Relationship Manager](https://www.worldpay.com/en-GB/merchant-support#still-need-help). For full object descriptions see our [API reference](/access/products/card-verifications/openapi/other/ach#other/ach/t=request&path=merchant). |
| `transactionReference` | ✅ | A **unique** reference generated by you that is used to identify a payment throughout its lifecycle. For full object descriptions see our [API reference](/access/products/card-verifications/openapi/other/ach#other/ach/t=request&path=transactionreference). |
| `paymentInstrument` | ✅ | An object that contains your customer's payment details. For full object descriptions see our [API reference](/access/products/card-verifications/openapi/other/ach#other/ach/t=request&path=paymentinstrument). |
| `paymentInstrument.type` | ✅ | An object that contains your customer's payment type. The only allowed value is: `bankAccountUS` |
| `paymentInstrument.accountType` | ✅ | An object that contains your customer's payment account type. For **Personal Account** possible values:`checking``savings`For Corporate Account possible values: `corporate``corporateSavings` |
| `paymentInstrument.accountNumber` | ✅ | An object that contains your customer's bank account number. |
| `paymentInstrument.routingNumber` | ✅ | An object that contains your customer's bank routing number. |
| `paymentInstrument.companyName` | ✅ | An object that contains your customer's company name. This is a mandatory field for **Corporate Account** and must not be supplied for **Personal Account**. |
| `paymentInstrument.billToAddress` | ✅ | An object containing the bill to address information. Mandatory fields include: `address1``city``region``postalCode``countryCode``telephoneNumber` |
| `billToAddress.firstName` | ✅ | An object that contains your customer's first name. This is a mandatory field for **Personal Account**. |
| `billToAddress.lastName` | ✅ | An object that contains your customer's last name. This is a mandatory field for **Personal Account**. |


### Optional fields in an ACH verification request

details
summary
Optional fields and descriptions
ACH verification requests with **optional and mandatory** fields:

Complete request for personal account

```json
{
  "merchant": {
    "entity": "default"
  },
  "transactionReference": "1234567",
  "paymentInstrument": {
    "type": "bankAccountUS",
    "accountType": "checking",
    "accountNumber": "1234567890",
    "routingNumber": "011400495",
    "billToAddress": {
      "firstName": "John",
      "lastName": "Smith",
      "address1": "address1",
      "address2": "address2",
      "address3": "address3",
      "city": "city",
      "region": "state",
      "postalCode": "postalCode",
      "countryCode": "US",
      "telephoneNumber": "4085551212"
    }
  }
}
```

Complete request for corporate account

```json
{
  "merchant": {
    "entity": "default"
  },
  "transactionReference": "1234567",
  "paymentInstrument": {
    "type": "bankAccountUS",
    "accountType": "corporateSavings",
    "accountNumber": "1234567890",
    "routingNumber": "011400495",
    "companyName": "companyName",
    "billToAddress": {
      "firstName": "John",
      "lastName": "Smith",
      "address1": "address1",
      "address2": "address2",
      "address3": "address3",
      "city": "city",
      "region": "state",
      "postalCode": "postalCode",
      "countryCode": "US",
      "telephoneNumber": "4085551212"
    }
  }
}
```

Descriptions of your **optional** ACH verification request parameters:

| Parameter | Required? | Description |
|  --- | --- | --- |
| `paymentInstrument.billToAddress` | ❌ | An object containing the bill to address information. Optional fields includes: `address2``address3` |
| `billToAddress.firstName` | ❌ | An object that contains your customer's first name. This is an optional field for Corporate Account. |
| `billToAddress.lastName` | ❌ | An object that contains your customer's last name. This is an optional field for Corporate Account. |


### ACH verification response

In your response is a `201` HTTP response code and the historic `outcome` of the verification.

`outcome`:

- `verified`
- `not verified`


Verified

```json
{
   "outcome":"verified",
   "checkedAt":"2021-09-27T18:02:16.475Z",
   "_links":{
      "cardVerifications: verification":{
         "href":"https://try.access.worldpay.com/cardVerifications/{resource}"
      }
   }
}
```

Not verified

```json
{
   "outcome":"not verified",
   "description":"Invalid account number",
   "checkedAt":"2021-09-27T18:02:16.475Z",
   "_links":{
      "cardVerifications: verification":{
         "href":"https://try.access.worldpay.com/cardVerifications/{resource}"
      }
   }
}
```