Identity Verification (IDVerify)

The ID Verify service confirms the identity of a cardholder by validating personal information and government-issued identifiers against authoritative identity data sources. It is commonly used when additional identity assurance is required, such as during account registration, high-risk transactions, or regulatory compliance workflows.

The service evaluates the relationship between the payment card and the identity attributes provided in the request, returning structured verification results for each attribute.

What ID Verify Evaluates

ID Verify can validate multiple types of identity information in a single request.

Identity attributes

  • Cardholder name

  • Email address

  • Phone number

Government or official identifiers

  • Driver’s license (DRIVERLICENSE)

  • Passport (PASSPORT)

  • National identity number (NATIONALIDENTITY)

  • Tax identification number (TAX)

Providing multiple identifiers and attributes increases the confidence level of the verification results.

Required vs Optional Fields

Only a minimal amount of card information is required to execute an ID verification request.

Required fields

Field

Description

cardNumber

Payment card number associated with the identity

cardExpiryDate

Card expiration date in YYYY-MM format

Common optional fields

Field

Purpose

cardHolderName

Cardholder first, middle, and last name

cardHolderEmailAddress

Email address associated with the identity

cardHolderPhoneNumber

Phone number associated with the identity

cardHolderIds

Government-issued identity numbers

Optional identity attributes improve verification coverage and result accuracy.

Understanding Verification Results

Each verification check returns a standardized decision value indicating the outcome of the comparison.

Result

Meaning

MATCH

The submitted value matches authoritative records

PARTIAL_MATCH

Some components match but not all

NO_MATCH

The value does not match available records

NOT_PROCESSED

The verification was not executed

NOT_SUPPORTED

The provided identifier type is not supported

UNKNOWN

The verification result could not be determined

Name Verification

When a cardHolderName is supplied, the service evaluates each component of the name independently and returns both component-level and overall results.

Returned fields include:

  • firstNameAccountMatchDecision

  • middleNameAccountMatchDecision

  • lastNameAccountMatchDecision

  • nameMatchDecision (overall evaluation)

  • nameResult (whether the name verification was performed)

This allows integrations to determine whether discrepancies exist in specific parts of the name.

Identity Document Verification

If government-issued identifiers are provided in cardHolderIds, the response returns a verification result for each identifier type.

Example structure:

"idVerification": {
  "DRIVERLICENSE": "MATCH",
  "TAX": "MATCH"
}

Each identifier is evaluated independently.

Partial vs Full Identity Verification

The strength of identity verification depends on the amount of information provided.

Verification Level

Description

Minimal

Only card data provided

Partial

Card data plus one or more identity attributes

Full

Government ID numbers combined with personal attributes

Providing additional identity attributes improves verification reliability.

Common Identity Verification Use Cases

ID Verify can be integrated into several points of a transaction or onboarding workflow.

Account Registration Verification

Platforms may use ID Verify during new account creation to confirm that the cardholder identity matches the information provided by the user. This helps reduce fake account creation and identity fraud.

High-Risk Transaction Verification

For transactions that exceed a predefined risk threshold or purchase amount, merchants can perform an additional identity verification step before approving the transaction.

Payment Method Ownership Confirmation

ID Verify can be used to confirm that the person submitting a payment card is also the legitimate cardholder by comparing identity attributes such as name, phone, and email.

Regulatory Identity Checks

Some industries require identity verification for compliance purposes. ID Verify can assist in validating government-issued identifiers as part of a broader compliance or Know Your Customer (KYC) process.

Privacy and Compliance Considerations

Identity verification requests may include sensitive personal information. Integrations should follow appropriate data protection practices:

  • Transmit requests only over HTTPS

  • Limit storage of identity data whenever possible

  • Apply access controls to logs and monitoring systems

  • Ensure compliance with applicable privacy regulations

Endpoint

POST /api/v1/idverify

This endpoint returns verification results along with billing information for the ID verification service.

Example Request

{
  "clientReferenceId": 123,
  "cardNumber": "4321432143214321",
  "cardExpiryDate": "2028-12",
  "cardHolderEmailAddress": "test@example.com",
  "cardHolderPhoneNumber": "+13105551234",
  "cardHolderName": {
    "lastName": "Doe",
    "firstName": "John",
    "middleName": "Q",
    "ownerType": "PRIMARY"
  },
  "cardHolderIds": {
    "DRIVERLICENSE": "B1234567",
    "TAX": "123-45-6789"
  }
}

Example Response

{
  "isSuccess": true,
  "idVerifyResponse": {
    "cardHolderEmailAddressVerificationResults": "MATCH",
    "cardHolderNameVerificationResult": {
      "firstNameAccountMatchDecision": "MATCH",
      "lastNameAccountMatchDecision": "MATCH",
      "middleNameAccountMatchDecision": "NO_MATCH",
      "nameMatchDecision": "PARTIAL_MATCH",
      "nameResult": "PERFORMED"
    },
    "cardHolderPhoneNumberVerificationResults": "MATCH",
    "idVerification": {
      "DRIVERLICENSE": "MATCH",
      "TAX": "MATCH"
    }
  },
  "billing": {
    "items": [
      {
        "feeType": "ID_VERIFY",
        "fee": {
          "currency": "USD",
          "amount": 1.0000
        },
        "completed": true
      }
    ],
    "remainingBalance": {
      "currency": "USD",
      "amount": 99.0000
    },
    "amountAuthorized": {
      "currency": "USD",
      "amount": 1.0000
    },
    "amountClosed": {
      "currency": "USD",
      "amount": 1.0000
    }
  },
  "errors": null
}