Output & Result Codes
The engine returns structured records rich with corrected components and result codes. This page explains how to tell whether an address assigned and how to interpret the most important codes.
Output records
Each processed record returns a structured result (JSON or XML) containing the corrected address components plus a large set of result and enhancement fields. Most field names are self-explanatory, and most informational fields are T/F, Y/N, or blank — where blank generally means the component wasn't presented for lookup, or the address didn't assign.
Assigned vs. unassigned
Two fields tell you the outcome of a record at a glance:
ErrStat— holds a status code when the address assigned, or an error (fault) code when it didn't.Fault_Code— holds the error code when the address is unassigned, and is blank when the address assigned.
In short: a blank fault code means a clean assignment; a populated fault code tells you why the address could not be assigned.
Status codes
When an address assigns, the status code describes how the assigned address differs from the input. It is a positional code — each character position reports on a different group of components, so you can tell exactly what the engine changed:
| Position | Reports changes to |
|---|---|
| 1st | Whether the address line was truncated to fit your field. |
| 2nd | City, state, ZIP, and ZIP+4. |
| 3rd | Primary name, directionals, and suffix. |
| 4th | County number, CART (carrier route), DPBC, and unit designator. |
| 5th | LOT, LOT order, and Puerto Rican urbanization. |
| 6th | Reserved for future use. |
Within each position, a 0 means no significant difference, and other values encode which specific components changed. The exact per-position value tables are documented in the SDK reference material.
Fault codes
When an address does not assign, the fault code explains why. A representative selection:
| Code | Meaning |
|---|---|
| E101 | Last line is bad or missing. |
| E212 | No city and bad ZIP/postal code. |
| E302 | No primary address line parsed. |
| E420 | Primary range is missing. |
| E429 | Bad city; can't select an address match. |
| E430 | Possible address-line matches too close to choose one. |
| E502 | Input record entirely blank. |
| E505 | Address does not exist in the USPS directories (undeliverable). |
| E600 | Marked by USPS as unsuitable for delivery of mail. |
| E601 | Primary address number did not DPV-confirm; ZIP+4 was removed. |
Key result indicators
Beyond assignment, several fields characterize the matched address:
| Field | Tells you |
|---|---|
Address_Type | The kind of record matched (firm, general delivery, high-rise, military, PO box, rural route, street, unique). A trailing "D" marks a default-level assignment that could be finer with more input. |
DPV_Status | Whether the delivery point is confirmed: Y (confirmed), N (not a valid delivery point), S (secondary invalid), D (secondary missing), L (false-positive lock), blank (not evaluated). |
LACS_Indicator | LACSLink conversion status: Y (converted), N (looked up, not converted), S (converted, secondary dropped), F (false-positive lock), blank (not attempted). |
RDI_Indicator | Residential delivery indicator: Y (residential) or N (nonresidential). |
SuiteLINK_Return_Code | SuiteLink result: A (secondary added), 00 (no match), blank (not attempted). |
Delivery_Type and Record_Type) carry different value sets depending on which output group they appear in — the CASS output versus the DSF2 output. Always interpret a field in the context of its output section.Geocoding assignment levels
When geocoding is enabled, the assignment level tells you how precisely a coordinate was placed:
| Level | Precision |
|---|---|
| PRE | Primary Range Exact — the exact address location. The most precise result. |
| PRI | Primary Range Interpolated — interpolated within the address range. |
| L1–L4 | Locality — city, town, or suburb level. |
| P1 | Postcode — 5-digit ZIP level. |
| P2P | Postcode partial — full 5-digit ZIP plus the first characters of ZIP+4. |
| PF | Postcode full — full 9-digit ZIP, when available. |
A separate centroid match level reports the precision of centroid latitude/longitude assignment. See the Address IQ geocoding overview for the concepts behind address-level and centroid geocoding.