**Last updated**: 11 September 2025 | [**Change log**](/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-bsh.securedataplatform.com/achVerifications` ### Example request body ACH verification requests with **mandatory** fields only: Request for personal account { "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 { "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-bsh.securedataplatform.com/en-GB/merchant-support#still-need-help). For full object descriptions see our [API reference](/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](/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](/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 { "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 { "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 { "outcome":"verified", "checkedAt":"2021-09-27T18:02:16.475Z", "_links":{ "cardVerifications: verification":{ "href":"https://try.access.worldpay-bsh.securedataplatform.com/cardVerifications/{resource}" } } } Not verified { "outcome":"not verified", "description":"Invalid account number", "checkedAt":"2021-09-27T18:02:16.475Z", "_links":{ "cardVerifications: verification":{ "href":"https://try.access.worldpay-bsh.securedataplatform.com/cardVerifications/{resource}" } } }