# 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. ## 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.