---
title: "Verify bank account"
method: POST
path: "/bank-accounts/verify"
tags: ["bank"]
---

# Verify bank account

`POST /bank-accounts/verify`

Use this method to verify a customer's bank account details.  

In the request, send the customer's bank account details. Our gateway can verify the following types of bank details:  
- Automated Clearing House (ACH) details  
- Pre-Authorized Debit (PAD) details  

In the response, our gateway indicates if the account details are valid and if you should use them in follow-on actions.

## Headers

- `Authorization` string, required
- `Idempotency-Key` string, uuid, required

## Request body

- BankAccountVerificationRequest
  - `processingTerminalId` string, required — Unique identifier that we assigned to the terminal.
  - `bankAccount` union, required — Polymorphic object that contains bank account information. The value of the type field determines which variant you should use: - `ach` - Automated Clearing House (ACH) details - `pad` - Pre-authorized debit (PAD) details
    - object — Object that contains information about the payment details for the customer’s automated clearing house (ACH) transactions.
      - `type` 'ach', required — Discriminator value: ach
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** For bank account details, send a value for accountType.
      - `secCode` 'web' | 'tel' | 'ccd' | 'ppd' — Indicates how the customer authorized the ACH transaction. Send one of the following values: - `web` – Online transaction. - `tel` – Telephone transaction. - `ccd` – Corporate credit or debit entry for a business bank account. - `ppd` – Pre-arranged transaction. **Note:** This field is mandatory for ACH payments and unreferenced refunds.
      - `nameOnAccount` string, required — Customer's name.
      - `accountNumber` string, required — Customer’s bank account number. **Note:** In responses, our gateway shows only the last four digits of the account number, for example, `*****5929`.
      - `routingNumber` string, required — Nine-digit number that identifies the customer's bank.
    - object — Object that contains information about the payment details for the customer’s preauthorized electronic debit (PAD) transactions.
      - `type` 'pad', required — Discriminator value: pad
      - `accountType` 'checking' | 'savings' — Indicates the customer’s account type. **Note:** For bank account details, send a value for accountType.
      - `nameOnAccount` string, required — Customer's name.
      - `accountNumber` string, required — Customer's account number. **Note:** In responses, our gateway shows only the last four digits of the account number, for example, `*****5929`.
      - `transitNumber` string, required — Five-digit number that identifies the customer's bank branch.
      - `institutionNumber` string, required — Three-digit number that identifies the customer's bank.

## Response `200`

Successful request. Returns the verification status of the customer's bank account details.

- BankAccountVerificationResult
  - `processingTerminalId` string, required — Unique identifier that we assigned to the terminal.
  - `verified` boolean, required — Indicates if the customer's bank account details are valid. - `true` - Account details are valid. - `false` - Account details are not valid.

## Other responses

- `400` — Validation error
- `401` — Identity could not be verified
- `403` — Do not have permissions to perform this action
- `404` — Resource not found
- `406` — Not acceptable
- `409` — Conflict
- `415` — Unsupported media type
- `500` — An error has occured

---

[API](https://skmtc.dev/payroc/apis/schema.md) · [All operations](https://skmtc.dev/payroc/apis/schema/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/payroc/schema/revisions/1d9d3e305945/schema)
