# ACH verification

Successful account verification outcome.

Endpoint: POST /achVerifications
Version: 6
Security: BasicAuth

## Header parameters:

  - `Accept` (string, required)
    Example: "application/vnd.worldpay.achVerifications-v6+json"

  - `Content-Type` (string, required)
    Example: "application/vnd.worldpay.achVerifications-v6+json"

## Request fields (application/vnd.worldpay.achVerifications-v6+json):

  - `merchant` (object, required)

  - `merchant.entity` (string, required)
    Used to route the verification request in Access Worldpay, created as part of on-boarding.

  - `paymentInstrument` (object, required)

  - `paymentInstrument.type` (string, required)
    The type of payment instrument, must be "bankAccountUS" for ACH.

  - `paymentInstrument.accountType` (string, required)
    Possible values: checking, savings, corporate, corporateSavings.
    Enum: "checking", "savings", "corporate", "corporateSavings"

  - `paymentInstrument.accountNumber` (string, required)
    Account number of direct debit account.

  - `paymentInstrument.routingNumber` (string, required)
    Routing number of direct debit account.

  - `paymentInstrument.companyName` (string)
    Company name if a corporate account.

  - `paymentInstrument.billToAddress` (object, required)

  - `paymentInstrument.billToAddress.firstName` (string, required)
    given name
    Example: "Alice"

  - `paymentInstrument.billToAddress.lastName` (string, required)
    surname
    Example: "Holmes"

  - `paymentInstrument.billToAddress.address1` (string, required)
    An identifier for the address1 being used. If included you must send at least: [address1,  city, countyCode, postalCode].

  - `paymentInstrument.billToAddress.address2` (string)
    An identifier for the address2 being used.

  - `paymentInstrument.billToAddress.address3` (string)
    An identifier for the address3 being used.

  - `paymentInstrument.billToAddress.city` (string, required)
    An identifier for the city being used.

  - `paymentInstrument.billToAddress.region` (string, required)
    An identifier for the region being used.

  - `paymentInstrument.billToAddress.postalCode` (string, required)
    Recipient's postal code.
    Example: "NW1 6XE"

  - `paymentInstrument.billToAddress.countryCode` (string, required)
    The alpha-2 ISO-3166 country code of the address.
    Example: "GB"

  - `paymentInstrument.billToAddress.telephoneNumber` (string, required)
    An identifier for the telephoneNumber being used.

  - `transactionReference` (string, required)

## Response 201 fields (application/vnd.worldpay.achVerifications-v6+json):

  - `outcome` (string, required)
    This field indicates the status of the transaction.
    Enum: "verified", "not verified"

  - `description` (string)

  - `checkedAt` (string, required)
    Example: "2024-03-26T19:38:29.543195Z"

## Response 400 fields (application/json):

  - `errorName` (string, required)
    A machine and human readable error type for clarity and semantic understanding of the error.
    Enum: "internalErrorOccurred", "headerIsMissing", "headerHasInvalidValue", "bodyIsEmpty", "bodyIsNotJson", "bodyDoesNotMatchSchema"

  - `message` (string, required)
    A human readable message giving a corrective action for the error.  This is not for machine consumption
    Example: "A JSON body matching the expected schema must be provided."

  - `validationErrors` (array)
    If there were field validation errors, they will be collected in this array

  - `validationErrors.errorName` (string, required)
    A machine and human readable error type for clarity and semantic understanding of the error.
    Enum: "fieldIsMissing", "fieldMustBeString", "fieldMustBeNumber", "fieldMustBeInteger", "fieldMustBeBoolean", "fieldMustBeObject", "fieldMustBeArray", "fieldIsNull", "fieldIsEmpty", "fieldHasInvalidValue", "fieldIsNotAllowed", "numberIsTooSmall", "integerIsTooLarge", "stringIsTooShort", "stringIsTooLong", "stringFailedRegexCheck", "panFailedLuhnCheck", "dateHasInvalidFormat"

  - `validationErrors.message` (string, required)
    A human readable message giving a corrective action for the error.  This is not for machine consumption
    Example: "Field at path is not allowed."

  - `validationErrors.jsonPath` (string)
    This field represents the JSON path of the element within the request body associated with the error.
    Example: "$.transactionRef"

  - `headerName` (string)
    If the header is missing or does not contain an expected value, this field will be populated with the incorrect header name.
    Example: "Content-Type"

## Response 401 fields (application/json):

  - `errorName` (string, required)
    A machine and human readable error type for clarity and semantic understanding of the error.
    Example: "accessDenied"

  - `message` (string, required)
    A human readable message giving a corrective action for the error.  This is not for machine consumption
    Example: "Access to the requested resource has been denied"

## Response 404 fields (application/vnd.worldpay.cardVerifications-v6+json):

  - `errorName` (string, required)
    A machine and human readable error type for clarity and semantic understanding of the error.
    Enum: "resourceNotFound"

  - `message` (string, required)
    A human readable message giving a corrective action for the error.  This is not for machine consumption
    Example: "Unable to verify the historic outcome from the data provided"

## Response 415 fields (application/json):

  - `errorName` (string, required)
    A machine and human readable error type for clarity and semantic understanding of the error.
    Example: "headerHasInvalidValue"

  - `message` (string, required)
    A human readable message giving a corrective action for the error.  This is not for machine consumption
    Example: "A valid header must be provided."

  - `headerName` (string)
    If the header is missing or does not contain an expected value, this field will be populated with the incorrect header name.
    Example: "Content-Type"

## Response 500 fields (application/json):

  - `errorName` (string, required)
    A machine and human readable error type for clarity and semantic understanding of the error.
    Enum: "internalServerError"

  - `message` (string, required)
    A human readable message giving a corrective action for the error.  This is not for machine consumption
    Example: "An internal server error occurred"


