# Verify a beneficiary account

Endpoint: POST /accountVerifications
Version: 2025-01-01
Security: basicAuth

## Header parameters:

  - `WP-Api-Version` (string, required)
    Example: "2025-01-01"

  - `WP-CorrelationId` (string)
    Optional ID to trace requests, if not provided, it is generated.
    Example: "15cd16b2-7b82-41cb-9b11-21be9dacad88"

## Request fields (application/json):

  - `merchant` (object, required)

  - `merchant.entity` (string, required)
    Your entity reference created as part of on-boarding. Used to route the request in Access Worldpay.
    Example: "default"

  - `instructions` (array, required)
    {% admonition type="info" name="Note" %} Currently only one instruction is accepted.{% /admonition %}

  - `instructions.party` (object, required)

  - `instructions.party.type` (string, required)
    The type of this party. Only beneficiary type is accepted.
    Example: "beneficiary"

  - `instructions.party.payoutInstrument` (object, required)
    A object that holds details of your payout instrument.  {% admonition type="info" name="Note" %} View our [bank coverage guide](/products/account-verifications/coverage) for country specific requirements.{% /admonition %}

  - `instructions.party.payoutInstrument.type` (string)
    The type of the payoutInstrument.
    Example: "bankAccount"

  - `instructions.party.payoutInstrument.currency` (string)
    The currency in [ISO 4217 currency format](/products/reference/supported-countries-currencies#iso-currency-codes).
    Example: "GBP"

  - `instructions.party.payoutInstrument.iban` (string)
    Beneficiary IBAN. You must either provide iban or accountNumber.
    Example: "GB41CITI18500818404062"

  - `instructions.party.payoutInstrument.accountNumber` (number)
    Example: 123456

  - `instructions.party.payoutInstrument.accountHolderName` (string)
    Full name of the beneficiary. accountHolderName is a mandatory element of the request body when firstName and lastName are missing.
    Example: "John Smith"

  - `instructions.party.payoutInstrument.accountType` (string, required)
    Type of the account bank.
    Enum: "checking", "savings", "moneyMarket", "certificateOfDeposit", "vista", "other"

  - `instructions.party.payoutInstrument.bankCode` (string)
    The code of the bank which must be exactly six digits.
    Example: "184758"

  - `instructions.party.payoutInstrument.bankName` (string)
    Example: "Demo Bank"

  - `instructions.party.payoutInstrument.branchCode` (string)
    Example: 1234

  - `instructions.party.payoutInstrument.swiftBic` (string)
    Example: "DBbic01"

  - `instructions.party.payoutInstrument.address` (object, required)

  - `instructions.party.payoutInstrument.address.type` (string)
    Identifies the type of this address.
    Enum: "home", "business", "poBox", "other"

  - `instructions.party.payoutInstrument.address.address1` (string)
    The address. Must consist of at least two letters, two words, and one number.

  - `instructions.party.payoutInstrument.address.address2` (string)
    Line two of the address.

  - `instructions.party.payoutInstrument.address.city` (string)
    The city of this address.

  - `instructions.party.payoutInstrument.address.postalCode` (string)
    The postal code of this address.

  - `instructions.party.payoutInstrument.address.countryCode` (string, required)
    The country code specified in ISO 3166-1 Alpha-2 country code.
    Example: "GB"

  - `instructions.party.personalDetails` (object, required)

  - `instructions.party.personalDetails.type` (string)
    What the party represents:
personal - an individual 
company - a corporation     or partnership with multiple owners..
    Example: "personal"

  - `instructions.party.personalDetails.title` (string)
    The title for this person.
    Enum: "mr", "mrs", "miss", "ms", "dr", "mx", "misc"

  - `instructions.party.personalDetails.firstName` (string)
    First name of the beneficiary. firstName and lastName are mandatory elements of the request body when accountHolderName is missing.
    Example: "John"

  - `instructions.party.personalDetails.middleName` (string)
    Middle name name of the beneficiary.

  - `instructions.party.personalDetails.lastName` (string)
    Last name name of the beneficiary.
    Example: "Smith"

  - `instructions.party.personalDetails.dateOfBirth` (string)
    The date the person was born.

  - `instructions.party.personalDetails.companyName` (string)
    Company name. companyName must be provided if accountHolderName is not present and type is company.

  - `instructions.party.personalDetails.dateOfIncorporation` (string)
    The incorporation date for the company.

  - `instructions.party.personalDetails.email` (string)
    An email address for this party.

  - `instructions.party.personalDetails.phones` (array)
    A list of phone numbers associated with this party.

  - `instructions.party.personalDetails.phones.number` (string)
    The phone number, without dashes.
    Example: "4281234"

  - `instructions.party.personalDetails.phones.prefix` (string)
    The dialing prefix for the phone number.
    Example: "44"

  - `instructions.expandableKeyValuePairs` (object,null)
    JSON object of key-value pairs used to supply additional data. The keys and values that you might need to process an account payout to a specific destination, are communicated during the on-boarding process. Duplicate key names are not allowed.

## Response 200 fields (application/json):

  - `outcome` (string, required)
    All possible outcomes and description can be found in the below table: 
|outcome|message| 
|---|---|
|fullMatch|Account Details Matched|
|businessAccountNameMatched|Account name matches but the account is a business account, not a personal account|
|partialMatch|Close match found|
|businessAccountCloseMatch|Close match found for account name but the account is a business account, not a personal account|
|noMatch|Account name and account type do not match|
|accountDoesNotExist|Account does not exist|
|noResponse|The bank did not respond to the account name check request. Try again later.|
||Unexpected system error occurred. Try again later.|
|accountNotSupported|Account does not support account name check requests|
|accountSwitched|The account has been switched using the Current Account Switching Service|
|notEnrolled|The account name check could not be completed as the bank does not accept account name check requests|
|wrongParticipant|The account name check cannot be completed for the account number and sort code provided|
|secondaryAccountIdNotFound|The secondary account id is not valid|
|personalAccountNameMatched|The account name matches but the account is a personal account, not a business account|
|personalAccountCloseMatch|Close match found for account name but the account is a personal account, not a business account|
|accountActive|Account is active but Name match unavailable for this account|
|cannotValidate|Unable to Validate the Account Details|
|accountClosed|The Account is either Closed or Unavailable to receive payments|

  - `message` (string)
    Description message.

  - `actualAccountHolderName` (string)
    Account owner name after the payload is processed. Availability is subject to market standard.

## Response 400 fields (application/json):

  - `validationErrors` (array, required)
    Object containing details of validation errors occurred

  - `validationErrors.queryParameter` (string, required)
    Parameter for which the error occurred.

  - `validationErrors.errorName` (string, required)
    Unique name of the validation error.

  - `validationErrors.message` (string, required)
    Error description message.

  - `errorName` (string, required)
    The unique error name.

  - `message` (string, required)
    Error description message.

## Response 401 fields (application/json):

  - `errorName` (string, required)
    The unique error name.

  - `message` (string, required)
    Error description message.

## Response 403 fields (application/json):

  - `errorName` (string, required)
    The unique error name.

  - `message` (string, required)
    Error description message.

## Response 500 fields (application/json):

  - `errorName` (string, required)
    The unique error name.

  - `message` (string, required)
    Error description message.


