Follow CDYNE Blog on
Header Image -

Tag Archives

52 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.


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.


SMS Notify! API Update: View, Add, & Remove Shared Short Code Keywords

Instead of calling or  requesting a keyword addition to your shared short code, you can now manage incoming keywords for your shared short code via the SMS Notify! API. Here are the new methods available:

1. GetKeywords Method

Now you can get all currently enabled keywords for a license key with the GetKeywords method.


License Key: license key to retrieve keywords for.


ReturnCode: Return code for method call.  Should always return NoError for GetKeywords().

Returns an array of KeywordResponseInfo:

  • EntryDate: DateTime in UTC of when keyword was added.
  • Keyword: Keyword.
  • ReturnCode: Return code for this keyword.  Should always return NoError for GetKeywords() method.
  • ShortCode: ShortCode that this keyword is assigned to.

2. AssignKeyword Method

This method assigns one or more keywords to a license key.


License Key: license key to assign new keywords to.

Array of KeywordRequestInfo:

  • Keyword: New keyword.
  • ShortCode: ShortCode to assign new keyword to.


ReturnCode: Return code for method call.  Should always return NoError for AssignKeywords().

Returns an array of KeywordResponseInfo:

  • EntryDate: DateTime in UTC of when keyword was added.
  • Keyword: Keyword attempting to add.
  • ReturnCode: Return code for this keyword.  Can return: ShortCodeInvalid, KeywordInvalid, KeywordAdded, ShortCodeNotAssignedToKey, KeywordAlreadyInUse, or InternalError.
  • ShortCode: ShortCode that this keyword is assigned to.

3. RemoveKeyword Method

Remove assigned keywords with this method.


License Key: license key to remove keywords from.

Array of KeywordRequestInfo:

  • Keyword: Existing keyword.
  • ShortCode: ShortCode to remove keyword from.


ReturnCode: Return code for method call.  Should always return NoError for RemoveKeywords().

Returns an array of KeywordResponseInfo:

  • EntryDate: DateTime in UTC of when keyword was added.
  • Keyword: Keyword attempting to remove.
  • ReturnCode: Return code for this keyword. Can return: ShortCodeInvalid, KeywordInvalid, KeywordRemoved, KeywordNotFound, or InternalError.
  • ShortCode: ShortCode that this keyword is assigned to.


For more information on SMS short codes in the U.S. and Canada click here. Or read What Can You Expect With a CDYNE Short Code?


CDYNE SMS Marketing Infographic

Don’t Leave Home Without It

  1. Keys? Check
  2. Purse or wallet? Check
  3. Phone? Check

Acision annual research shows that 92% of U.S. smartphone owners use SMS. Text message marketing is full of potential for communicating with and engaging your customers. It’s timely (send your message right when you need to), efficient (only 160 characters), and cost effective (just pennies per message).

Businesses use text messaging for targeted communications that include coupons, alerts, and other information relevant to their customers. Research by Frost & Sullivan shows 98% of text messages are read compared to only 29% of Tweets, 12% of Facebook posts, and 20% of emails.

For more stats about the advantages of  text messaging click here (opens a PDF) or click on the image below.

CDYNE offers SMS short codes in the U.S. and Canada. Click here to get started today! Or read What Can You Expect With a CDYNE Short Code?


What Can You Expect With a CDYNE Short Code?

1. A Dedicated Short Code Manager from Start to Launch

A CDYNE dedicated short code manager will help you provision a dedicated short code from start to finish and navigate the often changing carrier rules and requirements. They specialize in all use cases and can help with a range of topics from billing  to compliance issues. They will be your primary contact here at CDYNE to make the short code provisioning process as easy and painless as possible.

2. Extra Assurance That Your Text Messages Will Be Delivered

SMS Notify! API has a long number or DID backup system for sending text messages when short codes messages cannot be delivered. You can add a DID to the same license key that the short code is assigned to and request that this feature be turned on. Once this is done, the API will default to sending from the short code. When the system encounters a carrier that is not supported, or the carrier cannot deliver the message, SMS Notify! will automatically send the text message over the long number instead.

Some carriers support short code delivery receipts and this information is available through the SMS Notify! PostBackURL system. The API will receive the following codes and post them back to a URL you designate and can be assigned by logging into your account at The backup DID system will only be activated in the following scenarios:

Carrier Not Supported

SMS Notify! will receive a delivery receipt error code 091 – INVALID ROUTING which meant that a carrier does not currently support traffic via short code. With a backup DID in place, the API will resend the text message over the DID network, which supports all major carriers for the U.S. and Canada.

Carrier Did Not Deliver the Message

Some carriers support short code delivery receipts that indicate the message status. The following codes are used to indicate that a message could not be delivered:

005 – DELETED/UNDELIV – There are several reasons why this message status occurs including:

  • An end user’s cell phone number is blocked at carrier level
  • A message delivery was attempted, but the message could not be delivered and was deleted from carrier
  • Handset might be out of network coverage when message delivery was attempted.
  • Handset might be switched off
  • Handset might be roaming out of carrier’s supported network

023 – REJECTED – The message is rejected by the carrier.

024 – UNDELIV – The attempt to deliver the message failed. This may be cause by:

  • Handset might be out of network coverage when message delivery was attempted
  • Handset might be switched off
  • Handset might be roaming out of carrier’s supported network

3. Custom HELP and STOP Keyword Responses for Short Codes

CDYNE dedicated short codes give you the option to customize your HELP and STOP keyword text message responses as part of the short code provisioning process. By default, the API automatically handles certain system keywords. For example, when an end user texts HELP to your short code, SMS Notify! will automatically respond with the following message:

“Your Business Name”: Reply STOP to cancel. Msg&Data Rates may apply. Msg Freq per acct setup. “Your Business  #.”

There may be instances when your company is sending text messages on behalf of your clients and will require dynamic response messages so that each individual company name and contact number responds accordingly. This feature is available on request and can be set up during the short code provisioning process, or turned on anytime after your dedicated short code is live.

4. Five Free Keyword with Shared Short Codes

To get you started with shared short codes, CDYNE includes up to five free keywords with your account.

Separate companies are able to run simultaneous campaigns on a single short code with the use of keywords. A keyword is a unique phrase assigned to a short code that identifies a business campaign. For example, Dr. O’s dentist and Sal’s Pizza both use short code 55616 to communicate with their customers. Dr. O uses the keywords SMILE and CLEAN for two separate campaigns: texting SMILE to 55616 subscribes the user to appointment reminders; and the CLEAN keyword designates a special offer Dr. O’s office is running this month. Sal’s Pizza uses CHEESE so subscribers can subscribe to delivery specials. The unique keywords allow businesses to share the use of a short code.

5. Short Code Reporting

Log into your account at to view short code reports and export the information to an .xls or .csv file. You can search messages by the most recent number, date range, or phone numbers. The report shows the type of message (outgoing or incoming), the to or from recipient phone number, message status, sent date and time, the text message unique MessageID, and the text message sent or received.

CDYNE offers both shared and dedicated short codes in the U.S. and Canada. Click here to get started today!


Short Code Audits – the Necessary Evil

When it comes to short codes there are many steps involved even after the program is live. One checkpoint is the short code audit process which is managed by the CTIA to make sure a short code campaign is continuously staying in compliance within the ever changing carrier rules and regulations. The company that actually performs the audits is WMC Global.

The Monday Morning Pop Quiz

Think of the audits as a pop quiz on a Monday morning. The more you stay on top of educating yourself the better chance you have to pass. Live programs are reviewed and tested after the short codes are in production. The CTIA feels this method is more effective than routine keyword testing and program brief review used in the past because audits reflect the user experience and how they interact with these programs in real time.

The CTIA issues audits weekly for all short codes leased with the CSCA. The CTIA distributes what they call “Program Violation Notices”. A Program Violation Notice is a document notifying content providers (for example C1-02 No link to comprehensive T&C’s) that a violation has been found when testing the program. The CTIA audits short code compliancy based on the best practices included in the CTIA Playbook and the Carrier Playbooks.

The CTIA hand book states “The CTIA compiles and generates Program Violation Notices each Monday for audits performed the previous week, and audits are published as soon as they become available. Although audits might be available for review earlier, the official notice date from which the cure date is calculated is 12:00PM EST on Tuesday.”

Short Code Program Violations

Program violations are classified as Severity 0, Severity 1, or Severity 2, based on the seriousness of the infraction, with Severity 0 the most detrimental. Severity 0 is defined as extreme consumer harm with an immediate cure date. When you receive this audit you must have it fixed within hours or risk suspension or termination.  Severity 1 is considered serious consumer harm and you have 2 business days to correct the issue(s). Finally Severity 2 is moderate consumer harm and you have 5 business days to correct the issue(s). The information explained in this blog, a check list that has the violations and actions required and much more can be found in the CTIA Playbook.

Now that you know what the audit process is how do you avoid failing an audit? The CITA audits all short codes that are leased. WCG global has agents that are assigned to certain numbers and they test and audit those numbers, and it is not complaint based. Everyone is subject to being audited.

A Few Guidelines

First you need to stay educated on the different carrier rule and regulations. Your SMS provider should be giving you all the tools you need to succeed. CDYNE offers not only a dedicated short code manager to help you though the process but also educate you. We have many documents and resources to help you stay up to date with your information.  Below we have outlined some of the major parts of a short code program that can affect your audit negatively if not followed:

  1. Make sure you have a clear opt-in that fits with the program you plan to run. Be sure to describe exactly what program the end-user is interacting with. Example: “Text INFO to 00000 to sign up for CDYNE Info Alerts!”
  2. Include the amount of messages users should expect to receive. Example: “5 messages per month” or “5msg/month”
  3. The phrase “Message & Data Rates May Apply” must be included one line below the call-to-action.
  4. Instructions on how to opt-out and contact end-user support must be included and made distinguishable from the rest of the marketing copy. The words STOP and HELP must be in bold typeface. Example: Text STOP to 00000 to unsubscribe. Texts HELP to 00000 for customer support.
  5. A link to the privacy policy and terms must be included on all marketing materials (I.E. Websites, Flyers Banners and TV ads). Example:

CDYNE offers short codes in the U.S. and Canada. Click here to get started today!