Follow CDYNE Blog on WordPress.com
Header Image -

Tag Archives

19 Articles

Addresses are Complicated…

Verification vs. Correction

A common misunderstanding about what CDYNE Postal Address Verification service does has to do with the difference between verification and correction. Verification simply says something is correct or it isn’t. We can easily verify 2 + 2 = 4, likewise 3 + 3 = 4 fails verification. Verification makes no attempt to fix what is false. It is a simple statement that something is correct or it isn’t.

Correction on the other hand takes a statement and tries to make it true and that is a much more complicated process. Take the above example: 3 + 3 = 4; we can correct that to 3 + 1 = 4 OR 3 + 3 = 6. Both corrections are true but which statement was originally intended is unclear. To properly correct we need more information.

CDYNE PAV is certified by the United States Postal Service under a program called CASS (Coding Accuracy Support System). CASS rules require that our software take an input address and verify it exists in the USPS databases. Of course there is more to it than that. There is standardization, limited spelling correction, and certain inexact matches are allowed, but ultimately following CASS rules is about verification not correction.

This is best summed up by an excerpt from the USPS Address Matching Guidelines documentation:

“…the main goal of all address-matching software
should be to make THE MATCH — not just any match”

When an attempt is made to match an input to the database, if a match cannot be found, or it is unclear which address the input should match, the input fails verification. It is also important to point out that failing verification does not mean an address cannot be delivered, but mailing out something without a verified address may take longer, it might go to the wrong location, it might be returned undeliverable, or it might be lost in the system.

Addresses are Complicated…

Addresses are a mess. One of the greatest contributing factors to this is that the USPS has no control over city, street names, or street numbering. City borders move, streets are renamed, and numberings can change based on local and state government decisions.

Furthermore each municipality may create its own way of making addresses. For instance in Wisconsin the following addresses is common:

S90 W13970 Boxhorn
DrMuskego, WI 53150

In this case S90 W13970 are actually latitude and longitude coordinates.

To counter this USPS has developed its own collection of identifiers that it uses to expedite the movement of mail:

Finance numbers are typically assigned to a single post office and contain multiple zip codes.  For the most part it isn’t necessary for anyone outside the USPS to know about finance numbers, but they are convenient for creating a collection of addresses to verify a single address against.

Zip codes are usually a collection of routes used to deliver mail, but may also be a collection of PO boxes, a unique number for a single business, etc. It is important to recognize that while zip codes are often thought about as regions they really are a group of places mail can be delivered. As such they can overlap or even be discontinuous.

Plus 4 values further subdivide a zip code into areas like a city block.

Delivery point number, which is only added after an address has been fully verified, signifies a particular location that receives mail.

The USPS has created and assigned these numbers for one reason only: to make delivering a piece of mail as easy as possible.

Address verification is the process of taking the input address, finding the best match in the USPS database, and returning the address found in the database.

Street Information Broken Down

Typical street information can be broken down into parts. While most addresses follow this format there are many that don’t and have to be handled separately. Consider the following prototype:

1234 N Main Street S Apt 101

Primary number (1234)Typically the primary number is the first element and contains sequential alphanumeric information. Most often the input is checked to be in a range of values for verification. This value is present in almost all addresses and cannot be corrected, it’s either wrong or its right.

Pre-Directional (N) – The pre-directional can be one of the 4 cardinal directions or one of the 4 ordinals. This value isn’t always present and correction for it follows a very narrow set of rules.

Street Name (Main) – The street name is present in almost all addresses. It often contains more than one word and can be the most loosely matched too.

Suffix (Street) – The suffix is the “type” of street: Avenue, Road, Parkway, etc. Like the pre and post directionals it can only be corrected in a limited fashion, must match a set of values, and is abbreviated. While you will usually see a suffix it is sometimes missing.

Post-Directional (S) –The post-directional can be one of the 4 cardinal directions or one of the 4 ordinals. This value isn’t always present and correction for it follows a very narrow set of rules.

Secondary Abbreviation (Apt) – The secondary abbreviation is typically one of a collection of possible values: Apt (Apartment), Ofc (Office), Flr (Floor), Ste (Suite), etc. If all other address information matches this will be corrected to the database value if possible.

Secondary Number (101) – The secondary like the primary number contains alphanumeric information that is typically part of a sequence. It also cannot be corrected.

The Process

All address verification starts with the City, State, and Zip Code data; commonly referred to as the last line. From this information a list of finance numbers is built, and the finance numbers are separated into 8 categories:

The table above shows the priority of address matches in each finance number. For instance a match found in a Finance number that matches the City, State and ZIP in the input address would have higher priority than a match that is in a finance number that only matches the City and State of the input address. It’s important to note that a street address must match at least two pieces of the last line data, the only exception is when a zip 5 is the only piece of last line data provided.

Next a list of street names is pulled for all of the relevant finance numbers. There can be tens of thousands of street names and all of these must be compared to the input street name which can be ambiguous itself. A list of all possible addresses is generated from possible matching street names.

An attempt is then made to match the input address to one of the addresses in the list. If a single match is found it is returned, if multiple matches are found some tie breaking is attempted but if no single match can be determined the address fails verification.

Just because an address fails verification does not mean it is undeliverable. The post office may still attempt to deliver the piece of mail but it will most likely take longer to deliver, if it is delivered at all.

Click here for more information about PAV, or get a free trial key to test the API for free.

2 views

CDYNE PAV Infographic

Companies can save money on lost production and postage fees simply by running their addresses through a CASS certified program like CDYNE PAV, which verifies the deliverability of addresses. The API compares your addresses against the USPS database and will let you know if they are deliverable. Click here (opens a PDF) to see the importance of address data quality, some reasons for bad addresses, and the return on investment when validating the accuracy of your address lists.

Click here for more information about PAV, or get a free trial key to test the API for free.

2 views

Send SMS to Over 200 Countries & 800 Carriers

SMS Notify! supports text messaging worldwide with the potential to reach over 5 billion people globally.  You can reach this network of mobile users by purchasing a UK DID for assignment to your SMS Notify! license key. When you pass a phone number with 011 + the country code, the API will automatically use the UK DIDs assigned to the license key for sending the text messages.

Unicode Support

Another great feature is Unicode support. Unicode is a standard for handling text in all writing systems, and allows you to send text messages in many languages. It provides a unique number for every character, and allows text data to pass through many systems regardless of the platform, computer program, or programming language used. You should note that that the receiving device determines which characters it will display. While it may support Unicode, it may not display all Unicode characters.

Unicode covers any language that can be written in a script (e.g. Latin, Greek, Cyrillic, Han, etc.), which is an inventory of graphical symbols.  For example, a single script such as Latin may be used to write hundreds of languages (e.g. English, Spanish, and West Germanic), whereas a single language like Japanese may use multiple scripts including Han, Hiragana, and Katakana.

Which Encoding Does SMS Notify! Support?

To send Unicode messages using SMS Notify!, set the IsUnicode parameter to True in the AdvancedSMSSend method. The API supports UTF-16, which is a character encoding for Unicode. Unicode text messages are 70 characters per transaction. Non-Unicode messages are 160 characters.
By default the IsUnicode parameter is set to False. In this instance, SMS Notify! supports Latin-9, or ISO/IEC 8859-15 encoding which are 160 characters per transaction.

A Couple of Tips for Sending International Text Messages

  • 011 + country code + phone number in the PhoneNumber parameter when sending messages outside of the U.S. and Canada. SMS Notify! will automatically send from your International DIDs.
  • Some international carriers use spam-filters which block messages based on content. Check out the Carrier Restrictions tab (Excel doc) for more details.

 

Contact CDYNE for more information about Extended International SMS coverage.

Test SMS Notify! API for free.

18 views

PAV Delivery Point Data Returns

A valuable benefit of using PAV is to check whether or not an address is deliverable in order to receive barcode discounts. PAV includes DPV (Delivery Point Validation), which is the USPS process for verifying deliverability. A delivery point is a single point at which mail is delivered (e.g., a mail slot, PO Box, or mailbox). It is not the same as a street address. In fact,  an address can contain multiple delivery points such as an apartment building or business office with numerous suites. The USPS defines DPV as a specific set of digits between 00 and 99. Combined with the ZIP+4 code, a delivery point gives each deliverable address a unique identifier. Delivery points are encoded in barcodes, which allows automated sorting for the USPS.

Developers can utilize PAV to return detailed mailing industry information including DPV data returns. This data is accessed when using the “VerifyAddressAdvanced” method and setting the “MailingIndustryInfo” parameter to True. The following are example address input and outputs.

Input: 505 independence parkway, suite 300, chesapeake, va, 23320

Output: 505 INDEPENDENCE PKWY STE 300, CHESAPEAKE, VA, 23320-5178

  • DeliveryPoint = 75
  • DpvConfirmationIndicator = Y
  • DpvCrmaIndicator = N
  • DpvFootnote1 = AA
  • DpvFootnote2 = BB
  • DpvFootnote3 = Null

In this example, the unique identifier and delivery point is 23320517875 (ZIP+4+delivery point). PAV confirms this address does have a delivery point and mail can be delivered there (DpvConfirmationIndicator = Y). The DpvCrmaIndicator = N means that the address is not associated with a valid CRMA, which stands for Commercial Mail Receiving Agency, and is also known as a Private Mailbox (PMB) operator. The DPV footnotes indicate the address has been matched to the ZIP+4 file (AA) and all components of the address were matched to DPV (BB).

The keys below show all available PAV data results.

DPV Confirmation Indicator Key

  1. Y – Address was DPV confirmed for both primary and, if present, secondary numbers
  2. D – Address was DPV confirmed for the primary number only, and secondary number information was missing
  3. S – Address was DPV confirmed for the primary number only, and secondary number information was present but unconfirmed
  4. N – Both primary and, if present, secondary number information failed to DPV confirm

DPV CMRA Indicator Key (CMRA = commercial mail receiving agent)

  1. Y – Address was found in the CMRA table
  2. N – Address was not found in CMRA table

DPV Footnotes Key

  1. AA – Input address matched to the ZIP+4 file
  2. A1 – Input address not matched to the ZIP+4 file
  3. BB – Input address matched to DPV (all components)
  4. CC – Input address primary number matched to DPV but secondary number not matched (present but invalid)
  5. F1 – Input address matched to a Military address
  6. G1 – Input address matched to a General Delivery address
  7. N1 – Input address primary number matched to DPV, but address is missing secondary number
  8. M1 – Input address primary number missing
  9. M3 – Input address primary number invalid
  10. P1 – Input address missing PO, RR, or HC box number
  11. P3 – Input address PO, RR, or HC box number invalid
  12. RR – Input address matched to CMRA and PMB (postal mailbox) designator present (PMB 123 or # 123)
  13. R1 – Input address matched to CMRA but PMB (postal mailbox) designator not present (PMB 123 or # 123)
  14. U1 – Input address matched to a unique ZIP code
3 views

CDYNE Launches International Address Verification

Today CDYNE launched PAV-I, an international postal address verification API which validates addresses for over 240 countries. Businesses with an international market presence can ensure data quality for their customer base without any prior knowledge of international address formats or foreign characters. One of the great features of PAV-I is that it takes the guesswork out of the many address formats that exist worldwide. We are excited about this new offering because it complements CDYNE’s existing PAV API, which is CASS Certified™ for US postal addresses, and now verifies Canadian addresses at no additional cost.

TRANSLITERATE ADDRESSES FROM ONE ALPHABET TO ANOTHER

PAV-I supports 9 writing systems and will transliterate address data for Latin, Cyrillic, Greek, Hebrew, Japanese Kanji, Chinese, Arabic, Thai, and Korean Hangul. For example, if you input a Japanese address in English characters, you have the option to request the validated address in either English or Japanese Kanji.

We will use the address 3-24-20, YOKODAI ISOGO-KU YOKOHAMA, 2350045, JAPAN to highlight the transliteration capabilities of PAV-I. The default setting for transliteration is false. When set to true, the verified address will output to the native language if it is supported. The only exception to this is the country output field, which will return in English.

Address entered with native output set to true:

Input Address: 3-24-20 YOKODAI ISOGO-KU YOKOHAMA 2350045 JAPAN

Output Results: A RESCODE of “1” and OUTPUTSTATUS of “C” combined means the address was successfully matched or parsed and has been corrected to match the reference data. The corrected and transliterated address is output both in the ADDR field as well as the individual address fields. As mentioned earlier, the COUNTRY output field will return in English and does not transliterate.

The last output field MATCHLVL returned a “2,” which signifies verification down to the street level. These output returns are meaningful because they provide a record of any corrections that were made to your addresses along with the level to which the addresses were verified. The following MATCHLVL returns are available:

  • 0 – No Match
  • 1 – Town, City, Locality, Municipality, Suburb
  • 2 – Street
  • 3 – Premise (Building)
  • 4 – Organisation (Varies by country, Business or Administrative Entity)

 

Address entered with native output set to false:

Input Address: 3-24-20 YOKODAI ISOGO-KU YOKOHAMA 2350045 JAPAN

Output Results: A RESCODE of “1” and OUTPUTSTATUS of “C” combined means the address was successfully matched or parsed and has been corrected to match the reference data.

INNOVATIVE PARSING ABILITY

PAV-I has the ability to parse addresses entered in one or many fields. Using multiple address fields for input is useful when you are familiar with international addresses and the specific elements of the input address. If uncertain of the specific address elements, inputting information in the wrong fields may complicate or confuse matching.

To illustrate this, let’s use the address Rose House, 51-59 Circular Road, Isle of Man, IM1 1AZ, United Kingdom to show how this address can be entered using fielded or unfielded input.

Address entered with unfielded input:

Input Address: Rose House, 51-59 Circular Road, Isle of Man, IM1 1AZ, United Kingdom

Output Results: A RESCODE of “1” and OUTPUTSTATUS of “V” combined means the address was successfully matched or parsed and has been verified mailable with no change.

Address entered with fielded input:

Input Address: Rose House, 51-59 Circular Road, IM1 1AZ, United Kingdom

Output Results: In this case, “Isle of Man” was not included in the input data. As a result, RESCODE  “1” and OUTPUTSTATUS “C” was returned (the address was successfully matched or parsed and has been corrected to match the reference data).

PAV-I VERIFICATION CODES

Addresses are verified with a RESCODE and an OUTPUTSTATUS. The RESCODE returns data based on whether the address was successfully matched or not. The OUTPUTSTATUS provides extra details regarding the verification or correction that occurred when verifying the address.

RESCODE
OUTPUT STATUS DETAILS
0 Internal Error Occurred (Contact CDYNE)
1 V Address was successfully matched or parsed and has been verified mailable with no change
1 C Address was successfully matched or parsed and has been corrected to match reference data.
1 P Address was successfully parsed but there is no matching reference data.
2 N There were no hits found and address was not matched or parsed. (This is also returned if an attempt is made to verify an unsupported country.)
3 P Insufficient input details (Too many possible matches)
4 Ambiguous result (Many possible address results)

 

For more information about CDYNE PAV-I API, please contact an account representative at 1-800-984-3710, inquire by email, or initiate a chat for more details.

Or sign up for a free trial license key to test CDYNE PAV-I API.

Developers find CDYNE PAV-I API integration details on the CDYNE developer’s wiki

16 views

CDYNE PAV Now Offers Full Canadian Address Verification

CDYNE’s Postal Address Verification API now fully validates Canadian addresses. You can standardize, correct, and verify US and Canadian addresses in one step. The API has been renamed PAV, and is the perfect complement to the PAV-I API, which standardizes and validates international addresses.

There are two supported operations for Canadian address verification: VerifyAddress and VerifyAddressAdvanced. Only two return codes apply to Canadian addresses. A return code of 200 means that the address was verified. A return code of 202 means that the input address is confirmed for all components except for the secondary number. A return code of 10 means that the address could not be found or verified.

If you have Canadian addresses with missing zip codes, PAV can append the zip code of the address as long as the Canadian province name has been abbreviated at input. Please see image below for an example.

We will use the address 75 University Ave West, Waterloo, ON to emphasize PAV’s ability to append a missing zip code.

Address input with missing zip code:

Address output with appended zip code:

As you can see, the correct zip code has been added and the address yields a return code of 200, meaning that the address is verified.  The address is now prepared for optimum delivery as suggested by the Canada Post with the output address properly parsed in upper case fonts and the zip code separated after the first three characters.

For more information about CDYNE PAV, please contact an account representative at 1-800-984-3710, inquire by email, or initiate a chat for more details.

Or sign up for a free trial license key to test CDYNE PAV.

Developers find CDYNE PAV API integration details on the CDYNE developer’s wiki.

1 view