Card Verification


Use the Card Verification service to check a card is available for charging before a customer uses it to pay.

A card verification lookup will perform a zero value authorization against the card to ensure it is not fraudulent, blacklisted, expired or blocked. Essentially it lets you check whether the card and account are in good standing and available to make payment.

Payments API

Submit a payload containing the card details, such as in the example below, using a POST method to the /card-verification endpoint:

  "paymentCard": {
    "number": "4035874000424977",
    "expiryDate": {
      "month": "12",
      "year": "20"
    "securityCode": "977"
  "billingAddress": {
    "address1": "5565 Glenridge Conn",
    "city": "Atlanta",
    "postalCode": "30342",
    "country": "USA"
    "clientRequestId": "abe60a9a-68d9-481b-9231-f4249dc780f6",
    "apiTraceId": "Y5x91LTuBgbtsqfXWEr1EAAAAmM",
    "ipgTransactionId": "84614660926",
    "orderId": "R-451b2caf-057e-40ba-a6f5-6d867faf7aee",
    "transactionType": "PREAUTH",
    "paymentToken": {
        "reusable": true,
        "declineDuplicates": false,
        "brand": "VISA",
        "type": "PAYMENT_CARD"
    "transactionOrigin": "ECOM",
    "paymentMethodDetails": {
        "paymentCard": {
            "expiryDate": {
                "month": "12",
                "year": "2020"
            "bin": "403587",
            "last4": "4977",
            "brand": "VISA"
        "paymentMethodType": "PAYMENT_CARD"
    "country": "Germany",
    "terminalId": "RC103954",
    "merchantId": "881111110000228",
    "transactionTime": 1671200212,
    "approvedAmount": {
        "total": 0.00,
        "currency": "GBP",
        "components": {}
    "transactionStatus": "APPROVED",
    "approvalCode": "Y:172781:4614660926:PPX :832080",
    "schemeTransactionId": "732166657640953",
    "processor": {
        "referenceNumber": "084614660926",
        "authorizationCode": "172781",
        "responseCode": "00",
        "responseMessage": "Function performed error-free",
        "avsResponse": {
            "streetMatch": "NO_INPUT_DATA",
            "postalCodeMatch": "NO_INPUT_DATA"


Note in the above example response, the transactionStatus as APPROVED, which confirms the card details are ok to be used in a future transaction.

Want a quick overview?