Address Verification Guide

The goal of this guide is to walk you through EasyPost's Address Verification services. We'll give you some background on general AVS, as well as a quick tutorial on how to verify addresses using the EasyPost API. Since this guide requires you to have some knowledge of the EasyPost API, we recommend you check out our Getting Started Guide if you haven't used EasyPost before.

Address verification works through our Address Object and our Verifications Object. Please note that EasyPost will not flag or verify any address unless the verify or verify_strict parameters are used.

When you create an Address Object for your shipment with the aforementioned parameters, you also create associated zip4 or delivery attributes. zip4 only works for U.S. addresses and is used to verify the Zip+4 code of the address. delivery checks the rest of the address to determine its deliverability, and will make minor corrections to spelling/format if applicable.

The results of the verification will show up in the Verifications Object of the Address. The possible responses are:

  • success: the address is verified successfully.
  • errors: the address can't be verified due to an error, which will include error messaging with the response.
  • details: extra data related to the verification, specifically the longitude and latitude of the address.

International AVS works slightly differently. The objects and responses are similar, but zip4 is no longer a valid input to the verify and verify_strict parameters, since international addresses don't have the USPS' Zip+4 postal code. International AVS is also a premium, stand-alone service that must be subscribed to in order to be used. If you'd like to learn more about International AVS, contact our representatives for more information.

Verifying an Address
<?php

\EasyPost\EasyPost::setApiKey($_ENV['EASYPOST_API_KEY']);

$address = \EasyPost\Address::create([
    'verify'  => true,
    'street1' => '417 Montgomery Streat',
    'street2' => '5',
    'city'    => 'SF',
    'state'   => 'CA',
    'zip'     => '94104',
    'country' => 'US',
    'company' => 'EasyPost',
    'phone'   => '415-123-4567'
]);

echo $address;
JSON Response
{
  "id": "adr_5eed63904e3f11eda352ac1f6bc7b362",
  "object": "Address",
  "created_at": "2022-10-17T17:16:00+00:00",
  "updated_at": "2022-10-17T17:16:00+00:00",
  "name": null,
  "company": "EASYPOST",
  "street1": "417 MONTGOMERY ST FL 5",
  "street2": "",
  "city": "SAN FRANCISCO",
  "state": "CA",
  "zip": "94104-1129",
  "country": "US",
  "phone": "4151234567",
  "email": null,
  "mode": "test",
  "carrier_facility": null,
  "residential": false,
  "federal_tax_id": null,
  "state_tax_id": null,
  "verifications": {
    "zip4": {
      "success": true,
      "errors": [
        {
          "code": "E.SECONDARY_INFORMATION.INVALID",
          "field": "street2",
          "message": "Invalid secondary information(Apt/Suite#)",
          "suggestion": null
        }
      ],
      "details": null
    },
    "delivery": {
      "success": true,
      "errors": [
        {
          "code": "E.SECONDARY_INFORMATION.INVALID",
          "field": "street2",
          "message": "Invalid secondary information(Apt/Suite#)",
          "suggestion": null
        }
      ],
      "details": {
        "latitude": 37.79342,
        "longitude": -122.40288,
        "time_zone": "America/Los_Angeles"
      }
    }
  }
}
Verifying an invalid Address
<?php

\EasyPost\EasyPost::setApiKey($_ENV['EASYPOST_API_KEY']);

$address = \EasyPost\Address::create([
    'street1' => 'UNDELIVERABLE ST',
    'city'    => 'San Francisco',
    'state'   => 'CA',
    'zip'     => '94104',
    'country' => 'US',
    'company' => 'EasyPost',
    'phone'   => '415-123-4567'
]);

echo $address;
JSON Response
{
  "id": "adr_20a96bfd554911ed9551ac1f6bc72124",
  "object": "Address",
  "created_at": "2022-10-26T16:13:28+00:00",
  "updated_at": "2022-10-26T16:13:28+00:00",
  "name": null,
  "company": "EasyPost",
  "street1": "UNDELIVERABLE ST",
  "street2": null,
  "city": "SAN FRANCISCO",
  "state": "CA",
  "zip": "94104",
  "country": "US",
  "phone": "4151234567",
  "email": null,
  "mode": "test",
  "carrier_facility": null,
  "residential": null,
  "federal_tax_id": null,
  "state_tax_id": null,
  "verifications": {
    "zip4": {
      "success": false,
      "errors": [
        {
          "code": "E.ADDRESS.NOT_FOUND",
          "field": "address",
          "message": "Address not found",
          "suggestion": null
        },
        {
          "code": "E.HOUSE_NUMBER.MISSING",
          "field": "street1",
          "message": "House number is missing",
          "suggestion": null
        }
      ],
      "details": null
    },
    "delivery": {
      "success": false,
      "errors": [
        {
          "code": "E.ADDRESS.NOT_FOUND",
          "field": "address",
          "message": "Address not found",
          "suggestion": null
        },
        {
          "code": "E.HOUSE_NUMBER.MISSING",
          "field": "street1",
          "message": "House number is missing",
          "suggestion": null
        }
      ],
      "details": {}
    }
  }
}
Strict-Verifying Addresses
<?php

\EasyPost\EasyPost::setApiKey($_ENV['EASYPOST_API_KEY']);

$address = \EasyPost\Address::create([
    'verify_strict'  => true,
    'street1'        => '417 MONTGOMERY ST',
    'street2'        => 'FL 5',
    'city'           => 'San Francisco',
    'state'          => 'CA',
    'zip'            => '94104',
    'country'        => 'US',
    'company'        => 'EasyPost',
    'phone'          => '415-123-4567'
]);

echo $address;
JSON Response
{
  "id": "adr_5f4e008e4e3f11eda36cac1f6bc7b362",
  "object": "Address",
  "created_at": "2022-10-17T17:16:00+00:00",
  "updated_at": "2022-10-17T17:16:00+00:00",
  "name": null,
  "company": "EASYPOST",
  "street1": "417 MONTGOMERY ST FL 5",
  "street2": "",
  "city": "SAN FRANCISCO",
  "state": "CA",
  "zip": "94104-1129",
  "country": "US",
  "phone": "4151234567",
  "email": null,
  "mode": "test",
  "carrier_facility": null,
  "residential": false,
  "federal_tax_id": null,
  "state_tax_id": null,
  "verifications": {
    "zip4": {
      "success": true,
      "errors": [
        {
          "code": "E.SECONDARY_INFORMATION.INVALID",
          "field": "street2",
          "message": "Invalid secondary information(Apt/Suite#)",
          "suggestion": null
        }
      ],
      "details": null
    },
    "delivery": {
      "success": true,
      "errors": [
        {
          "code": "E.SECONDARY_INFORMATION.INVALID",
          "field": "street2",
          "message": "Invalid secondary information(Apt/Suite#)",
          "suggestion": null
        }
      ],
      "details": {
        "latitude": 37.79342,
        "longitude": -122.40288,
        "time_zone": "America/Los_Angeles"
      }
    }
  }
}
Verify an already created Address
<?php

\EasyPost\EasyPost::setApiKey($_ENV['EASYPOST_API_KEY']);

$address = \EasyPost\Address::create([
    'street1' => '417 montgomery streat',
    'street2' => 'FL 5',
    'city'    => 'San Francisco',
    'state'   => 'CA',
    'zip'     => '94104',
    'country' => 'US',
    'company' => 'EasyPost',
    'phone'   => '415-123-4567'
]);

$address->verify();

echo $address;
JSON Response
{
  "address": {
    "id": "adr_5fdd21764e3f11edadebac1f6b0a0d1e",
    "object": "Address",
    "created_at": "2022-10-17T17:16:01+00:00",
    "updated_at": "2022-10-17T17:16:01+00:00",
    "name": null,
    "company": "EASYPOST",
    "street1": "417 MONTGOMERY ST FL 5",
    "street2": "",
    "city": "SAN FRANCISCO",
    "state": "CA",
    "zip": "94104-1129",
    "country": "US",
    "phone": "4151234567",
    "email": null,
    "mode": "test",
    "carrier_facility": null,
    "residential": false,
    "federal_tax_id": null,
    "state_tax_id": null,
    "verifications": {
      "zip4": {
        "success": true,
        "errors": [
          {
            "code": "E.SECONDARY_INFORMATION.INVALID",
            "field": "street2",
            "message": "Invalid secondary information(Apt/Suite#)",
            "suggestion": null
          }
        ],
        "details": null
      },
      "delivery": {
        "success": true,
        "errors": [
          {
            "code": "E.SECONDARY_INFORMATION.INVALID",
            "field": "street2",
            "message": "Invalid secondary information(Apt/Suite#)",
            "suggestion": null
          }
        ],
        "details": {
          "latitude": 37.79342,
          "longitude": -122.40288,
          "time_zone": "America/Los_Angeles"
        }
      }
    }
  }
}