How does address verification work?

Address verification by nature is not reliable. The main reason is because of Suite Numbers and Apartment Numbers, which are never stored in a 'standardized' way on the issuer's systems. Basically, addresses are typically split between address line 1 and address line 2, so take an address like this:

123 Main Street Suite 54 Gainesville, FL 32606

Now, with credit card processing, only address line 1 and the zipcode are verified. Now if you validate 123 Main Street Suite 54 as the street address, but the suite was put on address line 2 in the issuer's systems, street matching will fail. Vica-versa is true as well, if it was stored all in address line 1, and you verified only '123 Main Street' you would also get a street verification failure. There is no way to know how the issuer has stored the data.

To add to that, most of the time, PO Boxes will not resolve correctly (for unknown reasons).

The only thing you can do to help address verification is to ensure any numeric values are in numeric form (E.g. 'One' should be represented as '1', and 'First' should be represented as '1'). Only the numerics of the address are validated, so if the prior example is stored in the issuers system entirely in address line 1, simply passing '12354' would yield the same result as '123 Main Street Suite 54'.

Unfortunately there is no way to ensure the street matching will work and we strongly recommend that you only rely on a validated zipcode. Basically, the responses you should treat as GOOD from Monetra in an AVS result are: GOOD, STREET, and blank ('') or UNKNOWN. BAD and ZIP results should be treated as AVS failures.