CASS is a user journey certified by United States Postal ServiceĀ® in accordance with CASS Cycle O standards. The search type is meant to be used for address correction, verification and standardization. It enables users to cleanse, verify, and standardize their addresses, both in real-time and batch mode. CASS user journey is designed to overcome a significant degree of variation, fix misspellings and erroneous information, fill in omitted components and normalize incorrect formatting.
USPS suggest a standardized 5 line address format for CASS processing:
We recommend following the same structure for your address input forms.
There are two ways that this search type can be implemented into your solution. If an accurate match could not be found, the integrator can choose whether to return the address as it was entered by the user.
The CASS search type may be used with no user interaction required after an initial search has been submitted. This allows an integrator to hide the fact that there is any address management occurring within an application from the user.
This implementation of using the Cass search type means that addresses that are entered will be simply verified as being correct (Verified match) or not verified as being correct (Interaction required or None).
The recommended workflow is:
The relevant address and enrichment components can be stored in your database if required.
The CASS search type may be used with minimal interaction required after an initial search has been submitted. This does not require the use of suggestions, but may require a single confirmation by the user if the service is not highly confident in the match.
This method of using the CASS engine means that addresses that are entered will either be:
The recommended workflow is:
The relevant address and enrichment components can be stored in your database if required.
The typical search process for CASS is as follows:
DoCassSearch
action which returns a SearchResult
object that will contain a FormattedAddress
object, as well as VerifyLevel
.VerifyLevel
is high enough before using the returned address.There are two ways that the CASS engine can be used within an address capture environment:
The CASS search type may be used with no user interaction required after an initial search has been submitted.
This implementation of using the CASS search type means that addresses that are entered will be simply verified as being correct (Verified match) or not verified as being correct (Interaction required or None).
The CASS search type may be used with minimal interaction required after an initial search has been submitted. This does not require the use of suggestions, but may require a single confirmation by the user if the service is not highly confident in the match.
This method of using the CASS engine means that addresses that are entered will either be:
In this CASS search, the full address is used in the search. Providing the user enters all the information correctly and information exists in the dataset, VerifyLevel=Verified is returned. Let's use "Gails Limo Service, 607 E Blanco Rd, Unit 831, Boerne TX 78006" as an example address. The address format of the generated request must conform to USPS defined format. The format can be found in the default official CASS layout CASSOfficialFormat in the qawserve.ini file and is also explained above.
As this example is no Puerto Rican address, address line 2 will be empty. You can see that we supplied a space for address line 2, you can also leave it blank as well. Furthermore, USPS suggest to use an all capitals format for CASS processing.
<web:QACassSearch>
<web:Layout>CASSOfficialFormat</web:Layout>
<web:Search>GAILS LIMO SERVICE, ,607 E BLANCO RD,UNIT 831,BOERNE TX 78006</web:Search>
</web:QACassSearch>
The following address is returned:
<qas:QASearchResult VerifyLevel="Verified" xmlns:qas="http://www.qas.com/web-2013-12">
<qas:QAAddress DPVStatus="DPVConfirmed">
<qas:AddressLine LineContent="Address">
<qas:Label>ZIP Code</qas:Label>
<qas:Line>78006</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>+4 code</qas:Label>
<qas:Line>4036</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>City name</qas:Label>
<qas:Line>Boerne</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>State code</qas:Label>
<qas:Line>TX</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>Urbanization</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>Building/firm name</qas:Label>
<qas:Line>Gails Limo Service</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>PMB</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Primary Delivery Address Line</qas:Label>
<qas:Line>607 E BLANCO RD UNIT 831</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Secondary Delivery Address Line</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPC</qas:Label>
<qas:Line>06</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Carrier Route</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Record Type</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Link Indicator</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Link Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Indicator</qas:Label>
<qas:Line></qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>SuiteLink Indicator</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>SuiteLink Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Footnotes</qas:Label>
<qas:Line>AABBPB</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Confirmation Ind</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>CMRA Confirmation Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Drop Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Seed Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Vacant Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No-Stat Ind</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Non Delivery Day Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Non Delivery Day Values</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No-Stat Reason Code</qas:Label>
<qas:Line>05</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No Secure Location Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Door Not Accessible Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Throwback Ind</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>PBSA Ind</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Enhanced Return Code</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>EWS Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Match Type</qas:Label>
<qas:Line>E</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>POB Only Delivery Zone Flag</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Input ZIP Valid Flag</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Enhanced line of Travel (eLOT) Sequence Number</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Enhanced line of Travel (eLOT) A/D Answer</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Residential Delivery Indicator</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
</qas:QAAddress>
</qas:QASearchResult>
In this CASS search, the full address is used in the search. Providing the user enters all the information correctly, but the primary number is invalid, VerifyLevel=InterractionRequired is returned. Let's use "910 N Manhattan Ave,Manhattan KS 66502-7039" as an example address. The address format of the generated request must conform to USPS defined format. The format can be found in the default official CASS layout CASSOfficialFormat in the qawserve.ini file and is also explained above.
As this example has no building or firm name, is not Puerto Rican address, and also has no secondary information, address lines 1, 2, and 4 will be empty. You can see that we supplied a space for address line 4, you can also leave it blank as well as shown for address lines 1 and 2. Furthermore, USPS suggest to use an all capitals format for CASS processing.
<web:QACassSearch>
<web:Layout>CASSOfficialFormat</web:Layout>
<web:Search>,,910 N MANHATTAN AVE, ,MANHATTAN KS 66502-7039</web:Search>
</web:QACassSearch>
The following address is returned:
<qas:QASearchResult VerifyLevel="InteractionRequired" xmlns:qas="http://www.qas.com/web-2013-12">
<qas:QAAddress DPVStatus="DPVNotConfirmed">
<qas:AddressLine LineContent="Address">
<qas:Label>ZIP Code</qas:Label>
<qas:Line>66502</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>+4 code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>City name</qas:Label>
<qas:Line>Manhattan</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>State code</qas:Label>
<qas:Line>KS</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>Urbanization</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>Building/firm name</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>PMB</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Primary Delivery Address Line</qas:Label>
<qas:Line>910 N MANHATTAN AVE</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Secondary Delivery Address Line</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPC</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Carrier Route</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Record Type</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Link Indicator</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Link Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Indicator</qas:Label>
<qas:Line></qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>SuiteLink Indicator</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>SuiteLink Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Footnotes</qas:Label>
<qas:Line>AAM3</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Confirmation Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>CMRA Confirmation Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Drop Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Seed Ind</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Vacant Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No-Stat Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Non Delivery Day Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Non Delivery Day Values</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No-Stat Reason Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No Secure Location Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Door Not Accessible Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Throwback Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>PBSA Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Enhanced Return Code</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>EWS Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Match Type</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>POB Only Delivery Zone Flag</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Input ZIP Valid Flag</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Enhanced line of Travel (eLOT) Sequence Number</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Enhanced line of Travel (eLOT) A/D Answer</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Residential Delivery Indicator</qas:Label>
<qas:Line></qas:Line>
</qas:AddressLine>
</qas:QAAddress>
</qas:QASearchResult>
In this CASS search, the full address is used in the search. Providing the user enters all the information correctly, but the information does not exists in the dataset, a VerifyLevel=None is returned. Let's use "BUZON 1361,LARES PR 00669" as an example address. The address format of the generated request must conform to USPS defined format. The format can be found in the default official CASS layout CASSOfficialFormat in the qawserve.ini file and is also explained above.
As this example has no building or firm name as well as no secondary information, address lines 1 and 4 will be empty. It is a Puerto Rican address, but no urbanization is supplied, so address line 2 is also empty. You can see that we supplied a space for address line 4, you can also leave it blank as well as shown for address lines 1 and 2. Furthermore, USPS suggest to use an all capitals format for CASS processing.
<web:QACassSearch>
<web:Layout>CASSOfficialFormat</web:Layout>
<web:Search>,,BUZON 1361, ,LARES PR 00669</web:Search>
</web:QACassSearch>
The following address is returned:
<qas:QASearchResult VerifyLevel="None" xmlns:qas="http://www.qas.com/web-2013-12">
<qas:QAAddress DPVStatus="DPVNotConfirmed">
<qas:AddressLine LineContent="Address">
<qas:Label>ZIP Code</qas:Label>
<qas:Line>00669</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>+4 code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>City name</qas:Label>
<qas:Line>Lares</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>State code</qas:Label>
<qas:Line>PR</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>Urbanization</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>Building/firm name</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="Address">
<qas:Label>PMB</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Primary Delivery Address Line</qas:Label>
<qas:Line>BUZON 1361</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Secondary Delivery Address Line</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPC</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Carrier Route</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Record Type</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Link Indicator</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Link Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>LACS Indicator</qas:Label>
<qas:Line></qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>SuiteLink Indicator</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>SuiteLink Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Footnotes</qas:Label>
<qas:Line>A1</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Confirmation Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>CMRA Confirmation Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Drop Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Seed Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Vacant Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No-Stat Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Non Delivery Day Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Non Delivery Day Values</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No-Stat Reason Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV No Secure Location Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Door Not Accessible Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Throwback Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>PBSA Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>DPV Enhanced Return Code</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>EWS Ind</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Match Type</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>POB Only Delivery Zone Flag</qas:Label>
<qas:Line>N</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Input ZIP Valid Flag</qas:Label>
<qas:Line>Y</qas:Line>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Enhanced line of Travel (eLOT) Sequence Number</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Enhanced line of Travel (eLOT) A/D Answer</qas:Label>
<qas:Line/>
</qas:AddressLine>
<qas:AddressLine LineContent="DataPlus">
<qas:Label>Residential Delivery Indicator</qas:Label>
<qas:Line></qas:Line>
</qas:AddressLine>
</qas:QAAddress>
</qas:QASearchResult>