> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tesouro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify a cardholder account

> Perform address and card security code checks to verify a cardholder's account is valid without charging the card.

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.

<Tip type="when to use">
  **When to Use**

  <ul>
    <li>
      You need to verify a card is valid before setting up a subscription.
    </li>

    <li>
      You want to check if a card account is in good standing without charging
      the customer.
    </li>

    <li>You need to validate card details for future transactions.</li>
  </ul>
</Tip>

<Callout icon="clapperboard-play" color="#6938EF" type="scenario">
  **Scenario**

  Ben receives a promotional "one month free offer" from Maple Street Coffee, one of Clearpath Payment's acceptors. The signup form requires a credit card to be entered to run an Address and CVV check to verify that Ben's card is in good standing. Clearpath Payments performs the account verification on behalf of Maple Street Coffee.
</Callout>

### Steps

1. Call the [verifyAccount](/acquiring/reference/graphql/operations#verify-card) mutation, passing in the pertinent inputs.

   | Input                  | Description                                                                                                                                                                                                         |
   | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | `acceptorID`           | Required. 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. |
   | `transactionReference` | Required. The unique transaction identifier created by YOU to distiniguish this transaction from another.                                                                                                           |
   | `paymentMethodDetails` | Required. 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.                                                     |
   | `billToAddress`        | Optional. 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.                           |
   | `orderDetails`         | Optional. Additional details about the given order the verification is tied to.                                                                                                                                     |

<RequestExample>
  ```graphql Operation lines expandable theme={null}
  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
        }
      }
    }
  }
  ```

  ```json Variables lines theme={null}
  {
    "input": {
      "acceptorId": "05a39b14-f29f-443b-a107-da3e3e8969fb",
      "transactionReference": "68448abe-735b-4ee3-af14-d0f50a091c9b",
      "channel": "ECOMMERCE",
      "paymentMethodDetails": {
        "cardWithPanDetails": {
          "expirationMonth": "09",
          "expirationYear": "2050",
          "accountNumber": "4111110000000005",
          "paymentEntryMode": "PAYMENT_METHOD_ON_FILE",
          "paymentChannel": "ECOMM",
          "securityCode": {
            "omissionReason": "VERIFICATION_NOT_REQUESTED"
          }
        }
      }
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json title="Response" lines theme={null}
  {
    "data": {
      "verifyAccount": {
        "transactionReference": "a4c18c22-46d8-446c-8002-1503626df732"
      }
    }
  }
  ```
</ResponseExample>
