Skip to content

Beneficiary Account Verifications (BAV) (2025-10-01)

Verify that the bank details of your beneficiary are valid before sending a payout.

Authentication Header

  Authorization: {your_credentials}
  WP-Api-Version: 2025-10-01

Replace {your_credentials} with your base64-encoded Basic Auth username and password given to you by your Implementation Manager.

You must use the Authorization header for any request you send to our Beneficiary Account Verifications API, unless you are using client certificate authenticating with SSL/TLS.

DNS Whitelisting

Whitelist the following URLs:

  • https://try.access.worldpay.com/
  • https://access.worldpay.com/

Please ensure you use DNS whitelisting, not explicit IP whitelisting. When you make a request within Access Worldpay, you should always cache the response returned.

Download OpenAPI description
Languages
Servers
testing

https://try.access.worldpay.com/

live

https://access.worldpay.com/

Verify a beneficiary account

Request

Security
basicAuth
Headers
WP-Api-Versionstringrequired
Example: 2025-10-01
WP-CorrelationIdstring

Optional ID to trace requests, if not provided, it is generated.

Example: 15cd16b2-7b82-41cb-9b11-21be9dacad88
Bodyapplication/json
merchantobjectrequired
entitystringrequired

Your entity reference created as part of on-boarding. Used to route the request in Access Worldpay.

Example: "default"
instructionsobjectrequired
partyobjectrequired
expandableKeyValuePairsobject
application/json
{ "merchant": { "entity": "default" }, "instructions": [ { "party": { "type": "beneficiary", "payoutInstrument": { "type": "bankAccount", "currency": "GBP", "iban": "GB41CITI18500818404062", "accountHolderName": "John Smith", "accountNumber": "123456", "bankCode": "184758", "bankName": "Demo Bank", "branchCode": "1234", "swiftBic": "DBbic01", "accountType": "checking", "address": { "type": "personal", "address1": "Main Bvd", "address2": "No 1", "city": "London", "postalCode": "012345", "countryCode": "GB" } }, "personalDetails": { "type": "personal", "title": "Mr", "firstName": "John", "middleName": "", "lastName": "Smith", "dateOfBirth": "2000-01-01", "companyName": "Co Name", "dateOfIncorporation": "2025-01-01", "email": "john@domain.com", "phones": [ { "number": "7777777777", "prefix": "44" } ] } }, "expandableKeyValuePairs": { "key": "value" } } ] }

Responses

OK response if the request is valid

Bodyapplication/json
outcomestringrequired

All possible outcomes and description can be found in the below table:

outcomemessage
fullMatchAccount Details Matched
businessAccountNameMatchedAccount name matches but the account is a business account, not a personal account
partialMatchClose match found
businessAccountCloseMatchClose match found for account name but the account is a business account, not a personal account
noMatchAccount name and account type do not match
accountDoesNotExistAccount does not exist
noResponseThe bank did not respond to the account name check request. Try again later.
Unexpected system error occurred. Try again later.
accountNotSupportedAccount does not support account name check requests
accountSwitchedThe account has been switched using the Current Account Switching Service
notEnrolledThe account name check could not be completed as the bank does not accept account name check requests
wrongParticipantThe account name check cannot be completed for the account number and sort code provided
secondaryAccountIdNotFoundThe secondary account id is not valid
personalAccountNameMatchedThe account name matches but the account is a personal account, not a business account
personalAccountCloseMatchClose match found for account name but the account is a personal account, not a business account
accountActiveAccount is active but Name match unavailable for this account
cannotValidateUnable to Validate the Account Details
accountClosedThe Account is either Closed or Unavailable to receive payments
messagestring

Description message.

actualAccountHolderNamestring

Account owner name after the payload is processed. Availability is subject to market standard.

Response
application/json
{ "outcome": "fullMatch", "message": "Account Details Matched", "actualAccountHolderName": "" }