Follow CDYNE Blog on
Header Image -

Tag Archives

32 Articles

Thanksgiving Leftovers

Thanksgiving Leftovers
Thanksgiving Leftovers

Come Thursday night the age-old question of what to do with all the leftovers rears its untimely head. One solution is to send it home with your guests…of course. After all the day is meant for giving.

But not long after said guests trickle out, the Black Friday frenzy begins. With retail stores opening their doors at outrageous hours, there’s obviously no time to stop for lunch. So why not pack up some of your leftovers while scrolling through your CDYNE SMS Notify! powered texts for a promotion or two.


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.


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.


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.


Short Code Text Messaging Compliance

Short code text messaging is an excellent way to reach your customer and consumer base with relevant and time-sensitive information because text messages have a sense of urgency compared with other methods of communication. But it is important to note that text messaging is a permission-based medium that requires the sender to obtain the recipient’s consent to send SMS to their handset. Because consumers pay to receive text messages, the wireless carriers regulate the industry and create rules for interacting with recipients through SMS. CTIA is the International Association for the Wireless Telecommunications Industry that monitors text messaging for the carriers and issues violation notices. Non-compliant text messaging can result in citations, suspension, or termination of your short code campaign. The CTIA published a Compliance Handbook, effective June 2012, which clarifies the industry compliance rules, opt-in, and mobile campaign deployment.

Call to Action

A call to action is is an opportunity for a business to successfully capture a mobile number and an invitation for a consumer to provide their cell phone number in order to subscribe to content. Several examples include on-site signage, print advertisements, or a web page. The wireless industry requires that a call to action contains five pieces of information including:

Product description and quantity

What will the recipient receive by providing their cell number? And how often? (e.g. Receive account alerts 2-3/month)

Program identification

What is the name of the business, or the text messaging initiative? (e.g. Dr. O’s Medical Alerts)

Opt-out instructions

Include the keyword in bold that recipients must text to stop receiving messages. (e.g. Text STOP to unsubscribe)

Message and data rates may apply

Customers should know that carriers may charge them for these text messages. (e.g. Message & Data rates may apply)

Links to privacy policy and terms and conditions

Dedicated short code users must create a privacy policy. Shared short code users can use the policy drafted by CDYNE for each shared short code. Terms and conditions must be posted online. (e.g. Privacy Policy and Terms & Conditions)

Opt-In: Even if You Already Have a Business Relationship

It’s worth mentioning here that existing business relationships and the purchase of opt-in lists do not automatically allow a company to send text messages to those mobile numbers. For example, if you already communicate with customers via email, you must still get their permission to receive text messages. Or if you collect mobile numbers during an online transaction or other method – this does not count as an opt-in. Automatic enrollment in multiple programs is not allowed, and the CTIA requires a dedicated opt-in for each program. The CTIA  Compliance Handbook outlines four examples for capturing opt-in. In all opt-in scenarios, consent to receive text messages must be clear and accurate at the time the mobile number is given.

  • Enter a phone number online,
  • Click a button on a mobile Webpage,
  • Send an MO message containing an advertised keyword, or
  • Sign up at a point-of-sale location


The reason behind all the rules and regulations is to eliminate unsolicited text messages, or SPAM. The CTIA Compliance Handbook defines unsolicited messages as, “All messages delivered before a user opts in or after a user receives confirmation of opt-out, and any message delivered in excess of the quantity advertised, are considered spam.”

For more information about the laws that address SPAM, read the FCC’s guide titled “Spam: Unwanted Text Messages and Email.”

CDYNE supports only the sending of opt-in text messages from the SMS Notify! API for both short codes and DIDs.  In an effort to ensure that all text messaging sent through CDYNE SMS Notify! API is conducted responsibly, please read the Responsible Use Guidelines.

Contact CDYNE for more information about short codes.

Test SMS Notify! API for free.


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