Skip to content
CardTools

AVS & CVV Result Codes

Address and security-code check results in plain English, including which ones are fraud signals.

Runs entirely in your browser. Nothing you paste is uploaded, logged or stored.

Try:

AVS — address verification result

CodeMeaning
Match
YAddress and 5-digit postal code both matchok
XAddress and 9-digit postal code both matchok
DAddress and postal code both match (international)ok
MAddress and postal code both match (international)ok
FAddress and postal code both match (UK)ok
Partial
AAddress matches, postal code does notwarn
BAddress matches, postal code not verified (international)warn
PPostal code matches, address not verified (international)warn
W9-digit postal code matches, address does notwarn
Z5-digit postal code matches, address does notwarn
No match
NNeither address nor postal code matchesbad
CNeither address nor postal code verified (international)bad
Not checked
EAVS data invalid, or not permitted for this card typebad
GIssuer does not participate in AVS (typically non-US)
IAddress not verified (international)
RRetry — the AVS system was unavailablewarn
SAVS not supported by the issuer
UAddress information unavailable at the issuer

CVV / CVC / CID result

CodeMeaning
MCVV matchedokThe security code you sent is correct.
NCVV did not matchbadA strong fraud signal for a card-not-present transaction, even when the authorisation is approved.
PNot processedwarnThe code was sent but the issuer did not check it.
SCVV should be on the card but the merchant said it was absentwarn
UIssuer not certified, or has not supplied keys
XNo response from the scheme
(empty)No CVV providedNothing was sent. Not the same as a failed check.
These are the values Visa and Mastercard publish for acquirers. Gateways frequently add their own letters and occasionally reuse standard ones differently — always cross-check your gateway's documentation before wiring these into decision logic.

A CVV mismatch on an approved transaction

This surprises people constantly: an authorisation can come back approved with a CVV result of N. The two checks are independent. The issuer approved the funds and separately told you the security code was wrong.

That combination is a strong fraud signal for a card-not-present transaction, and most risk teams treat it as a decline regardless of the authorisation outcome. If you are only reading DE 39 and ignoring the CVV result, you are leaving that signal on the floor. Reverse the authorisation rather than just abandoning it, or you will hold the cardholder's funds.

AVS is mostly a US and UK signal

Address verification depends on the issuer holding and checking address data, and outside the US, Canada and the UK many issuers simply do not participate. A result of G, S or U means "not checked", not "failed" — declining on those will reject large volumes of perfectly good international traffic.

This is the most common AVS mistake: treating an absence of confirmation as evidence of fraud. N is a genuine mismatch. U is silence.

Partial matches need a policy

Z (postal code matches, address does not) and A (address matches, postal code does not) are where judgement lives. Many merchants accept Z and reject A, on the reasoning that a postal code is harder to guess than a street address and easier to mistype. Whatever you choose, choose deliberately — the default in most gateways is to accept everything.

Where the results arrive

Usually in ISO 8583 DE 44, additional response data, whose internal layout is processor-specific — the AVS result is often the first character and the CVV result a later one. Modern gateway APIs surface them as named fields instead, which is a mercy.

One thing worth stating plainly: never store the CVV after authorisation. Not encrypted, not hashed, not "temporarily". PCI DSS prohibits it outright, and unlike a PAN there is no compliant way to retain it.

More ISO 8583 tools