Last updated: 11 September 2025 | Change log
Verify your customer's card or make a name inquiry.
Verify and validate your customer's card details to protect you against fraud.
POST  https://try.access.worldpay.com/cardVerifications
- Test (Try)https://try.access.worldpay.com/cardVerifications
 - Livehttps://access.worldpay.com/cardVerifications
 
- Payload
 - curl
 - Python
 - Java
 - Node.js
 - Go
 - PHP
 - Ruby
 - C#
 
{ "type": "cardVerification", "merchant": { "entity": "default" }, "transactionReference": "Memory265-13/08/1876", "instruction": { "nominalRetry": true, "value": { "currency": "GBP" }, "narrative": { "line1": "MindPalace", "line2": "Memory" }, "paymentInstrument": { "type": "card/plain", "cardHolderName": "Sherlock Holmes", "expiryDate": { "month": 5, "year": 2050 }, "cardNumber": "4444333322221111", "billingAddress": { "address1": "221B Baker Street", "address2": "Marylebone", "address3": "Westminster", "postalCode": "NW1 6XE", "city": "Cambridge", "countryCode": "GB" } } } }
| Parameter | Required? | Description | 
|---|---|---|
type | ✅ | Defines the type of request. Use cardVerification to verify a card or nameInquiry if you want to make a name inquiry. | 
merchant | ✅ | An object that contains information about the merchant. See full object descriptions in our API Reference | 
transactionReference | ✅ | A unique reference generated by you that is used to identify a payment throughout its lifecycle. See transaction reference format, for more details and the best practices. | 
instruction | ✅ | The object that contains all the payment information related to the verification request. See full object descriptions in our API Reference. | 
channel | ❌ | The payment channel indicates the interaction of the cardholder with you. Supply a value of moto to process an authorization as a Mail Order or Telephone Order transaction. When channel is not provided, the default is ecom One of: ecom or moto. | 
customerAgreement | ❌ | An object that contains specific customer agreements for the transaction. One of: cardOnFile, subscription, installment or unscheduled. See full object descriptions in our API Reference | 
authentication | ❌ | An object containing information about the authentication of your customer. See full object descriptions in our API Reference. | 
recipient | ❌ | The details of the recipient of the payment. See full object descriptions in our API Reference.  Recommendation  We highly recommend you supply this, if your MCC is 6012 or 6051. Sending this field ensures you remain PSD2 compliant and avoid potential acquirer refusals.   | 
You can also find the full schema and more example requests in our API Reference.
You can now make a nameInquiry for Visa cards. This allows you to check the validity of the cardholder name provided.
This is important if you make payouts so you can check that the person receiving the payout is who they say they are.
In order to make a name inquiry, your account must be enabled. Please contact your Implementation Manager.
POST  https://try.access.worldpay.com/cardVerifications
- Test (Try)https://try.access.worldpay.com/cardVerifications
 - Livehttps://access.worldpay.com/cardVerifications
 
- Payload
 - curl
 - Python
 - Java
 - Node.js
 - Go
 - PHP
 - Ruby
 - C#
 
{ "type": "nameInquiry", "merchant": { "entity": "default" }, "instruction": { "paymentInstrument": { "type": "card/plain", "cardNumber": "4444333322221111", "expiryDate": { "month": 5, "year": 2035 }, "cvc": "123" }, "cardHolder": { "firstName": "William", "middleName": "Sherlock Scott", "lastName": "Holmes" } } }
| Parameter | Required? | Description | 
|---|---|---|
type | ✅ | Defines the type of request. Use cardVerification to verify a card or nameInquiry if you want to make a name inquiry. | 
merchant | ✅ | An object that contains information about the merchant. See full object descriptions in our API Reference | 
instruction | ✅ | The object that contains all the payment information related to the verification request. See full object descriptions in our API Reference. | 
cardHolder | ✅ | The object that contains cardholder name information. See full object descriptions in our API Reference | 
lastname | ✅ | The Last name of the cardholder. Must not contain 'All spaces', 'All zeros' , ' All numeric , 'Question marks - ?'. See full object descriptions in our API Reference | 
firstname | ❌ | The First name of the cardholder. Must not contain 'All spaces', 'All zeros' , ' All numeric , 'Question marks - ?'. See full object descriptions in our API Reference | 
middlename | ❌ | The Middle name of the cardholder. Must not contain 'All spaces', 'All zeros' , ' All numeric , 'Question marks - ?'. See full object descriptions in our API Reference | 
You can also find the full schema and more example requests in our API reference.
Test cardholder name inquiry outcomes using the values below:
| Test card number | nameInquiry | riskFactors | 
|---|---|---|
| 4462030000000000 | matched | No riskFactors returned | 
| 4484070000000000 | partialMatched | A riskFactors.risk value of partialMatched is returned where riskFactors.type = nameInquiry, for the following riskFactors.detail values: 
  | 
| 4917300800000000 | notMatched | A riskFactors.risk value of notMatched is returned where riskFactors.type = nameInquiry, for the following riskFactors.detail values: 
  | 
| 4444333322221111 | notChecked | A riskFactors.risk value of notChecked is returned where riskFactors.type = nameInquiry, for the following riskFactors.detail values: 
  | 
You can optionally submit 3DS parameters for card verification requests.
To get the customer authentication object you must complete an authentication request using our 3DS API.
- Test (Try)https://try.access.worldpay.com/cardVerifications
 - Livehttps://access.worldpay.com/cardVerifications
 
- Payload
 - curl
 - Python
 - Java
 - Node.js
 - Go
 - PHP
 - Ruby
 - C#
 
{ "type": "cardVerification", "merchant": { "entity": "default" }, "transactionReference": "Memory265-13/08/1876", "instruction": { "value": { "amount": 250, "currency": "GBP" }, "narrative": { "line1": "MindPalace", "line2": "Memory" }, "paymentInstrument": { "type": "card/plain", "cardHolderName": "Sherlock Holmes", "expiryDate": { "month": 5, "year": 2050 }, "cardNumber": "4444333322221111", "billingAddress": { "address1": "221B Baker Street", "address2": "Marylebone", "address3": "Westminster", "postalCode": "NW1 6XE", "city": "Cambridge", "countryCode": "GB" }, "cvc": "101" } }, "authentication": { "threeDS": { "eci": "05", "version": "2.1.0", "authenticationValue": "MAAAAAAAAAAAAAAAAAAAAAAAAAA=", "transactionId": "c5b808e7-1de1-4069-a17b-f70d3b3b1645", "cryptogramAlgorithm": "2", "challengePreference": "challengeMandated", "authenticationFlow": "challenge", "statusReason": "11", "cancellationIndicator": "01", "networkScore": "00", "brand": "cartesBancaires" } } }
You can view the full details for our authentication object in our API Reference.
You can optionally submit Apple Pay decrypted parameters for card verification requests.
- Test (Try)https://try.access.worldpay.com/cardVerifications
 - Livehttps://access.worldpay.com/cardVerifications
 
- Payload
 - curl
 - Python
 - Java
 - Node.js
 - Go
 - PHP
 - Ruby
 - C#
 
{ "type": "cardVerification", "merchant": { "entity": "default" }, "transactionReference": "Memory265-13/08/1876", "instruction": { "value": { "amount": 250, "currency": "GBP" }, "narrative": { "line1": "MindPalace", "line2": "Memory" }, "paymentInstrument": { "type": "card/networkToken+applepay", "cardHolderName": "Sherlock Holmes", "expiryDate": { "month": 5, "year": 2050 }, "tokenNumber": "4444333322221111" } }, "authentication": { "networkToken": { "eci": "05", "cryptogram": "2.1.0" }, "threeDS": { "eci": "05", "authenticationValue": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=", "version": "2.1.0", "transactionId": "c5b808e7-1de1-4069-a17b-f70d3b3b1645" } } }
You can view the full details for the "card/networkToken+apple" paymentInstrumentin our API Reference.
We recommend you supply cvc and billingAddress to increase probability of a successful verification.
A funds transfer is a money movement for a reason other than for the purchase of goods or services. These are also referred to as Account Funding Transactions (AFTs).
Examples:
- loading a wallet with funds using a card (including stored value digital wallets and crypto or trading wallets)
 - adding funds to a pre-paid card using another card
 - sending money to another person (for example as a gift)
 
Parameters
You must include the instruction.fundsTransfer object to correctly flag a transaction as a funds transfer.
| Parameter | Required? | Description | 
|---|---|---|
instruction.fundsTransfer | ❌ | An object containing details about the transfer and the sender and recipient of funds. | 
fundsTransfer.type | ✅ | Possible values:
  | 
fundsTransfer.purpose | ❌ | Possible values:
  | 
    "instruction": {        
        "fundsTransfer": {
            "type": "transfer",
            "purpose": "crypto",
           }
      }You receive:
- a 
200(name inquiry) or201(card verification) HTTP response code - a verification 
outcome(eitherverifiedornot verified) - an issuer response code and description (
not verifiedresult only), and arefusalAdvicecode(not verifiedresult only and MasterCard is the only card that may return this) - a scheme reference for card on file only (not all issuers return this)
 - riskFactors
 - a 
paymentInstrument 
Access Worldpay returns a WP-CorrelationId in the headers of service responses. We highly recommend you log this. The WP-CorrelationId is used by us to examine individual service requests.
The paymentInstrument contains the paymentInstrument.type sent in the request at minimum. If you wish to receive more card metadata this must be enabled. For more information contact your Implementation Manager.
{
    "outcome": "verified",    
    "scheme": {
        "reference": "MCCYQ2PBT0626"
    },
    "checkedAt": "2024-06-26T14:33:22.780572Z",
    "riskFactors": [
        {
            "risk": "matched",
            "type": "cvc"
        },
        {
            "risk": "notSupplied",
            "detail": "postcode",
            "type": "avs"
        },
        {
            "risk": "notSupplied",
            "detail": "address",
            "type": "avs"
        }
    ],
    "paymentInstrument": {
        "type": "card/plain+masked",
        "countryCode": "GB",
        "cardBrand": "mastercard",
        "fundingType": "credit",
        "issuerName": "BANK OF SCOTLAND PLC",
        "category": "consumer"
    },
    "_links": {
        "cardVerifications:verification": {
            "href": "https://access.worldpay.com/cardVerifications/MjpHbzRkTGNDVnh1alJzN3NFdG1LSGZnPT06QUVTL0NCQy9QS0NTNVBhZGRpbmc6SktwM2Q0MkFsM2RORlV2NnhkendYTlFZcHlPMmxUeUs0TVlpY0srUmtBcVY4Sk1tRGJaaGVMQ3ZDWjZ0M2dJdDE3Vi94VHhFZHdZR0NXbFlXL1gxSmFUaEZXaHhzbWtzT0xHdlpBc2pPUGZ3eVE3bVRpZVNncVN2NTJRQ3c5QVo="
        }
    }
}We only return the paymentInstrument card metadata if you are enabled for this feature.
If you receive an outcome of not verified it means that your customer has failed the verification. We strongly recommend that you refuse the payment made with that payment instrument.
In case of any errors, you can get further information in our error reference.
You must store the returned location information. Failing to store the location information means the outcome of the verification is lost. You are not able to query a historic verification.
The location is stored in the href of the verifications:verification action link received on your verifications response.
We recommend you store all responses.