Skip to main content
Account verifications allow you perform address and card security code checks on a cardholder’s account to ensure it is in good standing, without actually charging an amount to the card. These are especially helpful on subscription purchases where you want to verify the card before adding it to the customer’s profile for future billing. By verifying a cardholder’s account before the initial authorization request, you help to reduce fraud and chargebacks. Account verification should not be confused with “zero-dollar” or “zero-value” authorization, which is another practice for verifying cards without charging them that is no longer allowed by the card brands and subject to additional fees.
When to Use
  • You need to verify a card is valid before setting up a subscription.
  • You want to check if a card account is in good standing without charging the customer.
  • You need to validate card details for future transactions.
ScenarioBen receives a promotional one month free offer from CoolTechGear.com’s keyboard subscription service. The signup form requires a credit card to be entered to run an Address and CVV check to verify that Ben’s card account is in good standing.

Steps

  1. Call the verifyAccount mutation, passing in the pertinent inputs.
    InputDescription
    acceptorIDRequired. The unique, 36 character identifier assigned to the entity providing the goods or services to the cardholder. Other processors may refer to this as the Merchant ID (MID), Outlet ID, or Customer number.
    transactionReferenceRequired. The unique transaction identifier created by YOU to distiniguish this transaction from another.
    paymentMethodDetailsRequired. Includes the pertinent payment method details you want to verify, whether the customer is paying with a card if the details are saved within a token.
    billToAddressOptional. The billing address associated with the payment method. This information is not required to run the mutation, but an address verification check cannot be perfromed without it.
    orderDetailsOptional. Additional details about the given order the verification is tied to.
mutation createAccountVerification($input: VerifyAccountInput!) {
  verifyAccount(verifyAccountInput: $input) {
    verifyAccountResponse {
      status: __typename
      transactionId
      paymentId
      systemTraceAuditNumber
    }
    errors {
      errorType: __typename
      ... on ValidationFailureError {
        fieldName
        fieldPath
        valueInError
      }
      ... on IGraphQlError {
        message
        transactionId
        processorResponseCode
      }
    }
  }
}
{
  "data": {
    "verifyAccount": {
      "transactionReference": "a4c18c22-46d8-446c-8002-1503626df732"
    }
  }
}
Run in Playground