API Endpoint: Address Validation

The address-validation endpoint verifies a mailing address against USPS data and returns it standardized, with ZIP+4.

POST /api/v1/validate/address-validation

https://www.tincomply.com/api/v1/validate/address-validation

Verifies and standardizes a US mailing address against USPS records, adds the ZIP+4, county and congressional district, and lists every correction made to your input.

Request body

FieldTypeDescription
streetrequired string Street address line 1.
suite string Street address line 2, suite or unit.
city string City. Required unless zip5 is supplied.
state string Two-letter state abbreviation.
zip5 string 5-digit ZIP code.
zip4 string ZIP+4 extension.
address string Single-line address, as an alternative to the structured fields.

Response object: addressValidationResult

FieldTypeDescription
street, suite, city, state, zip5, zip4stringThe standardized address.
dpbcstringDelivery point bar code.
congressionalDistrictstringCongressional district.
countyNamestringCounty.
latitude, longitudenumberCoordinates, when available.
foundboolTrue when USPS confirmed the address.
correctionsstring[]Each change made to the input address.
messagestringHuman-readable summary of the result.
completedboolFalse when the upstream source was unavailable. The request is retried automatically; call request-details with the request id later to get the finished result.

What to do with this result

When you seeDo this
found is trueSave the standardized address and ZIP+4 back to your record. corrections lists what changed.
found is falseUSPS could not confirm the address. Ask the payee to confirm it before you mail checks or 1099s.
completed is falseThe source was unavailable. Keep the request id and call request-details later; the result fills in once the retry succeeds.

Sample request

curl -X POST https://www.tincomply.com/api/v1/validate/address-validation \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"street":"PO BOX 218","city":"YORKTOWN HEIGHTS","state":"NY","zip5":"10598"}'

Sample response

{
  "id": "Pq7rT2vWx9yZa1bC3dE5fG6h",
  "request": {
    "street": "PO BOX 218",
    "city": "YORKTOWN HEIGHTS",
    "state": "NY",
    "zip5": "10598",
    "requestDate": "2026-10-01T14:02:11Z",
    "requestedServices": "address-validation"
  },
  "addressValidationResult": {
    "street": "218 PO BOX",
    "suite": "",
    "city": "YORKTOWN HEIGHTS",
    "state": "NY",
    "zip5": "10598",
    "zip4": "0218",
    "dpbc": "18",
    "congressionalDistrict": "17",
    "countyName": "WESTCHESTER",
    "message": "Address was confirmed as valid",
    "completed": true,
    "found": true,
    "corrections": [ "PO BOX match.", "ZIP+4 corrected." ]
  }
}

Errors

Requests that cannot be processed return HTTP 400 with an object keyed by field name, each listing what was wrong. Authentication, permission and other status codes are covered in Errors & service status.

This endpoint requires an API key with the Validate permission.

See how this check works in the portal and what it costs: Address Validation