Optional ID to trace requests, if not provided, it is generated.
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.
https://try.access.worldpay.com/
https://access.worldpay.com/
- testing
https://try.access.worldpay.com/accountVerifications
- live
https://access.worldpay.com/accountVerifications
- Payload
- curl
- Python
- Java
- Node.js
- Go
- PHP
- Ruby
- C#
{ "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" } } ] }
OK response if the request is valid
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 |
{ "outcome": "fullMatch", "message": "Account Details Matched", "actualAccountHolderName": "" }