---
title: "ACH Verify"
method: POST
path: "/ach/verify"
tags: ["ACH"]
---

# ACH Verify

`POST /ach/verify`

Used to verify an ach bank account prior to sending an ACH sale/refund transaction.

**Integration Methods:**
- Host Direct

See the [Integration Methods](/guides/quickstart#integration-methods) and [URLs Section](/guides/quickstart#urls) sections of the Development Quick Start guide for details regarding each processing option.

## Headers

- `InterfaceVersion` string, required
- `InterfaceName` string, required
- `CompanyName` string, required
- `AccessToken` string, uuid, required

## Request body

- object
  - `dateTime` string, ISO 8601, required — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
  - `ach` object, required
    - `accountNumber` string, required — Bank Account Number. Do not include any dashes, spaces, or additional zeros.
    - `routingNumber` string, required — The routing number identifying the bank.
    - `accountType` string, required — Bank account type Value | Description ------|--------------- PC | Personal Checking PS | Personal Savings CC | Corporate Checking CS | Corporate Savings
    - `verificationType` 'P', required — The type of verification used to validate the account. Value | Description ------|--------------- P | Prenotification
    - `accountHolderName` string, required — ACH account holder's name
  - `sourceIp` string, required — Public source IP Address where the request originates, not the IP Address of the web server.
  - `transaction` object
    - `vendorReference` string — Optional field for information that can be searched in the merchant portal.

## Response `200`

Transaction was processed

- object
  - `result` object[]
    - `dateTime` string, ISO 8601 — The date and time in ISO 8601 format including the timezone offset (yyyy-mm-ddThh:mm:ss.nnn+hh:mm). Must be sent as the local date/time of the merchant. For example, a request processed at a merchant in the Pacific time zone at 9:18am on April 15th 2021 would be sent as 2021-04-15T09:18:23.283-07:00
    - `token` TokenACH
      - `value` string, required — The token representing the customer's bank account credentials.
      - `type` 'ACH' — Specifies the type of token. Value = `ACH`
    - `transaction` object
      - `authSource` 'A' — In a response, a code returned by the processor to indicate which host issued the response. Value | Description -------|---------------------------- A | APM (Online)
      - `responseCode` 'P' — Code indicating the Shift4 host response. Value | Description | Details -------|-------------|-------- P | Pending | The ACH transaction is pending
      - `vendorReference` string — Optional field for information that can be searched in the merchant portal.
    - `merchant` MerchantResponse
      - `mid` number — The merchant ID associated with the merchant account.
      - `name` string — The merchant’s business name as configured with Shift4.
    - `notificationId` string, uuid — Notification ID value generated by Shift4 and returned in the response. Used for matching webhook notifications back to their original request.
    - `server` Server
      - `name` string — The name of the server that processed the request.

## Other responses

- `400` — Error
- `504` — Timeout

---

[API](https://skmtc.dev/shift4/apis/shift4-payment-api.md) · [All operations](https://skmtc.dev/shift4/apis/shift4-payment-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/shift4/shift4-payment-api/revisions/2f85c87cc9e5/schema)
