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

# Address verification system

export const Acquirer = ({content}) => <Tooltip tip="The bank or PSP that acquires funds on behalf of a business when an end user makes a payment on its platform. Mangopay acts as an acquirer for platforms using its services. ">
        {content}
    </Tooltip>;

Address verification system (AVS) is an anti-fraud tool used in the UK, US, and Canada for online payments by Visa, Mastercard, and AMEX.

The system checks with the <Acquirer content="acquiring" /> bank if the address of the cardholder matches the billing address (provided via the API in the pay-in call). The acquiring bank provides a score as a result of this verification.

Based on the score provided by the bank, Mangopay provides a specific value in the `AVSResult` parameter for you to act upon.

<table>
  <thead>
    <tr>
      <th class="header">AVS Result</th>
      <th class="header">Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td class="table-content">FULL\_MATCH</td>
      <td class="table-content">The user `Address` and the address registered on the bank side are exactly the same.</td>
    </tr>

    <tr>
      <td class="table-content">ADDRESS\_MATCH\_ONLY</td>
      <td class="table-content">Only the street names are a match (`AddressLine1` and `AddressLine2`). Postal codes don’t match.</td>
    </tr>

    <tr>
      <td class="table-content">POSTAL\_CODE\_MATCH\_ONLY</td>
      <td class="table-content">Only the postal codes are a match (`PostalCode`). The street names don't match.</td>
    </tr>

    <tr>
      <td class="table-content">NO\_MATCH</td>
      <td class="table-content">Both street names and postal codes don’t match.</td>
    </tr>

    <tr>
      <td class="table-content">NO\_CHECK</td>

      <td class="table-content">
        No check has been done.

        This may be due to:

        * A lack of information (no `Address` provided)
        * A non-compatible card
        * An unavailability of the AVS service on the bank side.

        This status is also used for 3DS payments until the payment has been validated on the customer side (AVS check given when status = SUCCEEDED)
      </td>
    </tr>
  </tbody>
</table>

<Check>
  **Best practice - Implement an AVS result-based payment flow**

  In order to make the most of this feature:

  * Make the user `Address` mandatory in your implementation
  * Adapt your flow by adding conditions dependent on the AVS result.

  One of the ways to use the AVS feature is to rely on the preauthorized pay-in. Steps would be as follows:

  * Make a preauthorization
  * Check the `AVSResult` Capture the preauthorized funds based on the AVS result
</Check>

### Related resources

<CardGroup>
  <Card title="Testing" href="/testing/mocks/avs">
    Test AVS using mocks
  </Card>
</CardGroup>
