A CVV validation system does one narrow thing. It passes the printed security code from the card to the issuing bank inside the authorization request, and the issuer answers with a match, a mismatch, or a shrug. The merchant never checks the code itself. There is no local algorithm, no database lookup you can run, and nothing to validate offline. If you build a checkout flow that tries to "verify" the code on your own side, you have built a format check and nothing more.
People say CVV for all of them, which causes most of the confusion I run into:
They are separate values with separate uses. A checkout form that collects CVV2 has no relationship to the code in the stripe.
The issuer holds the reference value. Your gateway packages the code into the authorization message as a field, the network routes it, and the issuer compares. The result comes back as a single-character code attached to the auth response. Visa's set is typical: M for match, N for no match, P for not processed, U for unknown or unsupported, S for the code should have been supplied but wasn't.
That response arrives alongside the approval decision, not instead of it. An issuer can approve a transaction with an N and decline one with an M, depending on its own risk model.
A CVV check proves that whoever submitted the order had the card, or had seen both sides of it, at some point in the recent past. That is all. It says nothing about intent. Anyone holding a physical card can read the code off the back and pass the check, which is precisely why the check exists: it raises the cost of using a card number pulled from a database dump, since the number alone no longer clears.
The tradeoff shows up in your decline data. Strict rules on CVV2 mismatch cut fraud, and they also cut legitimate orders from customers who mistype a digit, use a virtual card with a rotating code, or shop on a spouse's account. Most teams settle on declining N outright, treating P and U as neutral, and letting AVS and velocity signals carry the rest of the decision.
PCI DSS classifies CVV2 as sensitive authentication data. You may transmit it with an authorization request and you may not store it afterward, in any form, encrypted or not. That rules out putting it in your order table, your logs, your support ticket system, or your analytics pipeline. Queue it, forward it, drop it. If a payment provider offers to store it on your behalf, read the terms carefully, because the prohibition follows the data, not the vendor.
CVV validation is one layer of a decision that also includes address verification, 3-D Secure challenges, device fingerprinting, and order velocity. On its own it is a weak signal that catches a specific, cheap attack. Combined with a challenge flow for high-risk carts, it is worth the two fields it costs you at checkout.
Two integration mistakes I see often: treating a U response as a failure and losing good orders on issuers that do not participate, and hard-declining before the address check returns. Collect both, decide once.
You will receive the digital voucher immediately.
All your data is transmitted with unbreakable SSL-RSA encryption.
You can give away, resell or keep the vouchers.
We are available for you 24 hours a day.
Be informed as soon as new vouchers are added or when there are discounts.