Gift Cards

What a CVV verification test actually is

A CVV verification test checks whether your payment integration reads and validates the card security code correctly. The CVV, sometimes called CVV2, CVC2, or CID depending on the network, is the 3-digit code on the back of most cards or the 4-digit code on the front of American Express. You test it by sending transactions through a sandbox with known test card numbers and confirming that your code handles each response: match, no match, not provided.

What you do not do is test with real card numbers. There is no legitimate reason to collect live CVV data for testing, and no legitimate market where CVV numbers are bought or sold. If someone offers to sell you CVVs, that is stolen card data, and using it is a crime under wire fraud and identity theft statutes.

How the test flow works

Every processor I have worked with follows the same shape.

  1. Use the processor's published test card numbers in test mode. Stripe, Adyen, Braintree, and Authorize.net all publish theirs.
  2. Send the code in the right field. It goes in the authorization request, never in a stored profile.
  3. Read the response code. Issuers return a CVV result separately from the approval or decline.
  4. Trigger the failure cases on purpose. A wrong CVV should decline, not silently pass.
  5. Log the result code, not the CVV value. See PCI DSS below.

The results you should see

Most gateways map the issuer response to a short set: match, no match, not processed, not present, and issuer unable to verify. Card networks differ in naming. Visa returns CVV2 results, Mastercard returns CVC2, Amex returns CID. Your code should treat all of them as three states: pass, fail, unknown. Unknown is the one people get wrong. If the issuer never checked the code, you should not treat that as a pass.

What PCI DSS says about storage

PCI DSS Requirement 3.2 prohibits storing the CVV after authorization, even encrypted. You cannot test against a production database that holds CVV values, because a compliant database does not hold them. Any test plan that depends on stored CVVs is broken by design. That constraint is the reason sandbox testing exists.

Common mistakes

  • Testing only the happy path. A match on the first try proves little.
  • Putting the CVV in a URL parameter or a log line. That is how card data ends up in analytics tools.
  • Treating a decline as always a CVV failure. Address verification and 3-D Secure produce separate results.
  • Assuming all networks send the same code. Amex is different from Visa.
  • Skipping the "not provided" case, which is common on recurring and card-on-file charges.

What to check before you go live

Run each failure state through your full stack, not just the API call. Confirm the customer sees a clear message, that the decline reason is stored, and that no card data lands in your logs. Then repeat the test on mobile and on any hosted checkout page. If your integration writes the CVV to a temporary file for debugging, remove that before release. It is the single most common finding in a first PCI review.

If you ever need to report card fraud, the FTC takes reports through IdentityTheft.gov, and your acquirer wants to hear about fraud patterns early.


Fast digital delivery

You will receive the digital voucher immediately.

Secure Payment

All your data is transmitted with unbreakable SSL-RSA encryption.

Suitable for giving away

You can give away, resell or keep the vouchers.

24/7 customer support

We are available for you 24 hours a day.

ProtectedGiftCards.com Newsletter

Be informed as soon as new vouchers are added or when there are discounts.

Read our complete guide: Buy CVV in 2025: A Buyer's Guide to Prices, Pitfalls, and Avoiding Scams