API Reference

Delivery Receipt Codes and Troubleshooting

When should I expect a final delivery receipt?

  • Successful delivery: normally a few seconds to a few minutes, unless the first attempts to reach the handset fail.
  • Unsuccessful delivery (after retries): normally up to three days. However, we will wait a maximum of 14 days for a delivery receipt from an operator.

If the mobile operator did not acknowledge the message request, nor responded in any further way, we will send you a delivery receipt after seven days identifying this issue. During this time we will have used a retry strategy if we don't believe the operator received the request.

What can I do if I don't get a delivery receipt?

You can query for the message status using the Get Message Status operation. Ensure that your original message request included a request for us to return delivery receipts.

When won't I get a delivery receipt?

You will not receive a delivery receipt if the mobile operator acknowledged they received the message, we expected a further deliver receipt, but the operator did not provide one.

I have a US or Canadian landline / VMN and I never seem to receive delivery receipts with code "4"

For US and Canadian landlines and virtual mobile numbers, the operators only return a subset of the delivery receipts you can receive for short codes. They will not return a code 4 "Message delivered". Instead, you should treat code 0 as a successful message delivery.

How should I interpret delivery receipt data for a multipart message?

If you message was split into multiple parts, then you will receive a delivery receipt for each part. Each part shares the same ticket ID. The delivery receipt will identify how many parts were used for the message and will identify which part is the receipt is for (totalSegments and segmentNumber).

However, for Get Message Status requests, we return the delivery status for each part in the same response. You will receive data about each part, including an individual receipt code and description, and you will also receive a summary receipt code and description. This code will help indicate the current status of the entire message:

Code 830, "Partial message delivery failure", means that at least one of the message parts has not been successfully delivered.

Code 831, "Awaiting complete message delivery status", means that the mobile operator has not returned a delivery receipt for one or more of the message parts. For example, you will get this code if one message part was successfully delivered but we do not have a receipt for the second part. However, if any message part fails delivery, then code 830 is returned.

Any other code means that the result for all parts of the message is the same. For example, if it is a "success" code of 0 or 4 then all parts were successfully delivered; if it is the same code to indicate a problem then all parts experienced the same problem.

Delivery receipt codes

Status code

Status description

Notes

0

Message sent

OpenMarket successfully sent the message to the mobile operator.

In some situations the mobile operator will not return any further update than this receipt (e.g. for a message sent using a US landline). If this is your final delivery receipt, treat this as a "successful" delivery.

Retryable: n/a

2

Message received

OpenMarket has accepted and processed your message request but has yet to forward it to the mobile operator.

You will only receive this receipt code in the response to a Get Message Status request. You are very unlikely to see this code unless you rapidly perform the request after submitting the message.

This code is not returned for final delivery receipts.

Retryable: n/a

3

Message accepted by mobile operator. Awaiting receipt

OpenMarket has sent the message to the mobile operator. We are still waiting for a response.

You will only receive this receipt code in the response to a Get Message Status request. This code is not returned for final delivery receipts.

Retryable: n/a

4

Message delivered

The mobile operator successfully delivered the message to the end user.

Retryable: n/a

341

Value of mobileOperatorID does not exist

Your request specified a value for mobileOperatorId that is not one of the pre-defined IDs.

For a list of the valid IDs, see Mobile Operator IDs.

Retryable: no

345

Mobile operator not found for the destination address

OpenMarket performed an operator lookup for the end user's number and found that the number is not registered with any mobile operators.

Note that the region in which we perform the lookup will depend on your messaging use cases — if you are only provisioned for US and Canadian messaging then we will only perform an operator lookup with the US and Canadian mobile operators. Therefore, requests to mobile numbers based in other destinations (like the UK) would come back with this error.

Retryable: no

351

Invalid destination address

Mobile operators send us this delivery receipt for a variety of reasons. Unfortunately, these different error conditions are mixed between ones you could retry or not, based on the operator's own use of this code.

If you are messaging anywhere outside of the US, we cannot refine the issue further, other than knowing that the message was sent using the right encoding to the correct mobile operator.

OpenMarket has received more information from the US mobile operators. When messaging a US end user, the possible reasons can be one of:

  • Any operator: The mobile number is not on the mobile operator's network.
  • Any operator: The mobile number has been deactivated. Check the Deact reports on Customer Center.
  • AT&T, T-Mobile, and MetroPCS: The phone number belongs to a prepaid user who does not have enough credit to receive an SMS.
  • T-Mobile only: The end user is not provisioned to receive SMS from all short codes (or from specific short codes).
  • T-Mobile only: The end user is on a MVNO connected via T-Mobile. T-Mobile does not deliver SMS messages from short codes to end users on MVNOs.

In general, mobile operators do not want SMS senders to retry MT messages that have failed with error code 351. However, given the range of different possible root causes, we think it is reasonable to retry some of these messages.

Here is our suggested behavior for US messaging:

  • Perform a number preview request to confirm that the number is on the mobile operator's network.
  • Check the Deact reports to ensure the number is still live
  • For T-Mobile specifically, you could retry the message using a US VMN or other number
  • If desired, retry the message using a slow retry method; for example, retrying once every day for up to 7 days

Retryable: conditional

355

Message text is too long

OpenMarket did not forward the message to the mobile operator. This is because the message required multiple SMS parts, and your request did not specify to create a multipart or truncated message. This is set using mlc in your request. By default, mlc is set to reject messages; to change this behavior add mlc with either the option truncate or segment (creates a multipart message).

Retryable: no

375

Source address is blocked or is not provisioned

Either your message originator is currently blocked from sending messages, or you have tried to use a message originator that is not provisioned. For example, with US and Canadian messaging, your message originator must be provisioned with OpenMarket and the mobile operators.

Talk to your OpenMarket account manager if you are unsure why you received this error.

Retryable: no

560

Mobile operator blocking the end user from this short code

Returned for US messaging only.

This is commonly returned by Verizon when it has blocked the end user from receiving messages from specific short codes.

Retryable: no

561

Content blocked by mobile operator for this end user

Returned for US messaging only.

This error usually occurs for Verizon MTs in cases where the content rating assigned by Verizon to the short code is not compatible with the content filtering rating on the end user's account.

Retryable: no

562

Short code not provisioned with mobile operator

Returned for US messaging only.

The mobile operator rejected the message as the short code is not provisioned for their network.

Contact your OpenMarket account manager if you believe that you are provisioned for the operator, or if you want to begin provisioning.

Retryable: no

563

Short code expired with mobile operator

Returned for US messaging only.

The mobile operator rejected the message as the short code is no longer enabled for their network.

Contact your OpenMarket account manager if you believe that your short code should still be live with the operator, or if you want to re-provision.

Retryable: no

564

Short code blocked by mobile operator

Returned for US messaging only.

The mobile operator rejected the message as the short code is currently blocked from sending messages across their network.

Contact your OpenMarket account manager if you are unaware of why you have received this error.

Retryable: no

565

End users connected to this MVNO cannot receive short code messages

Returned for US messaging only.

The mobile operator rejected the message as the end user is connected to their network via a mobile virtual network operator (MVNO). This restriction is on short code messages.

Retryable: no

566

Destination address blocked by mobile operator

Returned for US messaging only.

The mobile operator is blocking the phone number from receiving messages from short codes. This is likely due to the end user's account being suspended or barred in some way.

Retryable: no

568

Destination address not provisioned for SMS

Returned for US messaging only. Currently Verizon numbers only.

Verizon offers plans to end users that do not include SMS.

Retryable: no

569

Destination address suspended by mobile operator

Returned for US messaging only. Currently Verizon numbers only.

Verizon has suspended the end user's account (most likely for non-payment). However, the number has not yet been deactivated.

Retryable: no

571

Program ID rejected by mobile operator

Returned for US messaging only.

The program ID in the message request is not provisioned with the mobile operator.

Contact your account manager if you receive this error and believe that your program is provisioned or active with the mobile operator.

Retryable: no

572

Program ID is not provisioned for this mobile operator or is not active

Returned for US messaging only.

OpenMarket has determined (before forwarding the message) that the program ID in the message request is not provisioned or currently active with the mobile operator.

Contact your account manager if you receive this error and believe that your program is provisioned or active with the mobile operator.

Retryable: no

573

Short code blocked by end user

Returned for US messaging only.

The end user has asked their mobile operator to block any messages sent from your short code. Additional messages from the same short code must not be sent to the phone number unless the end user opts in again.

Retryable: no

574

New subscriptions for this short code are blocked by mobile operator

Returned for US messaging only.

Indicates that for a given short code, new subscribers are not allowed to receive or send messages. However, existing subscribers are still allowed to receive and send messages.

This error is returned by Sprint and Virgin Mobile USA.

Contact your OpenMarket account manager if you are unaware of why you have received this error.

Retryable: no

576

Program ID blocked by mobile operator

Returned for US messaging only.

The mobile operator recognized the program ID but is currently blocking requests that use this ID.

Contact your OpenMarket account manager if you are unaware of why you have received this error.

Retryable: no

581

End user out of prepay credit

The end user does not have enough credit on their phone account to receive the message.

You may retry every 24 hours for no more than seven days.

Retryable: yes

588

Invalid T-Mobile US end user. Causes: account out of credit or suspended; content blocked; or not a T-Mobile subscriber

Returned for US messaging to T-Mobile only.

Here is our suggested behavior:

  • Perform a number preview request to confirm that the number is on the mobile operator's network.
  • If the number is on T-Mobile, if desired you could retry the message using a slow retry method; for example, retrying once every day for up to 7 days

Retryable: no

593

Cannot determine which message originator to use

OpenMarket could not determine either the message originator to use or the interaction type for your message. This error occurs if you do not include one or more of: source address, ton, or interaction, and you have:

  • Multiple short codes provisioned for the same country
  • Both a number and an alphanumeric string available for a region but have not specified the interaction type you'd like.

OpenMarket will not arbitrarily pick values to use. For more information see Using Automated Originator Selection .

Retryable: no

597

Account has no provisioned address that can reach destination

This error occurs if your message request does not include a source address (e.g. your message originator) and there is no pre-provisioned address suitable for messaging the end user.

For example, this could occur if your normal messaging is to the UK only and you message another international number without having a default originator set for messaging to that region (or globally).

Contact your OpenMarket account manager if you want to add a default originator for messaging to any new regions.

Retryable: no

598

Interaction not supported for message destination

This error can occur if you set interaction to two-way. In some countries, OpenMarket supports one-way only.

See our Coverage Map.

Retryable: no

599

Values conflict for source address and interaction

Your request specified an interaction and message originator that are incompatible. For example, you will receive this error if you specify "two-way" but your originator is an alphanumeric string, like "ACME123".

Retryable: no

600

Mobile operator <mobileOperatorID> does not support WAP Push

This error can occur when sending a WAP Push to a US or Canadian end user. Not all mobile operators in this region support or allow WAP Push messages.

We suggest resending the URL as plain text in an SMS message, as most smartphones will turn this into a hyperlink.

Retryable: no

601

Your account is not provisioned for global two-way SMS

The message request had set interaction to two-way, however, your business account is not provisioned for global two-way messaging. The provisioning options are:

  • US and Canada messaging
  • Global one-way (all regions aside from the US and Canada)
  • Global two-way (all regions aside from the US and Canada)

Note that you do not need to set a value for interaction for US and Canada messaging.

Contact your OpenMarket account manager if you need global two-way messaging provisioned.

Retryable: no

603 Content blocked by user opt-out (MO: STOP)

This code can be returned in a delivery receipt for an MT originating from a North American, SMS-enabled toll-free number or an SMS-enabled landline number. Messaging can resume to the end user when he or she opts back in to your content.

Retryable: no

810

Failed message delivery

The mobile operator accepted the message, but has informed us that message delivery failed. They do not want retries of the same message.

Unfortunately this message may be returned for a variety of reasons, which the mobile operator has decided not to distinguish between.

Retryable: no

811

Message expired before it reached handset

OpenMarket and/or the mobile operator attempted to deliver the message to the end user for the duration of the MT validity period. However, the message never reached the end user's handset.

You can set a validity period in the MT message request. If you did not supply a validity period in the MT, MT delivery is generally retried for up to three days before expiring the MT.

Retryable: yes

815

Message submitted to but not acknowledged by mobile operator

When OpenMarket sends a message to a mobile operator, we expect to receive an asynchronous reply confirming that the message was received. If we don't receive a response (and after using our retry strategy) then we will return this error to you.

It is possible that the end user may have received one or more of the same message (or not received the message at all).

Retryable: yes

830

Partial message delivery failure

This means that at least one part of a multipart message has not been successfully delivered.

You can receive this receipt code in the response to a Get Message Status request. However, this code is not returned for final delivery receipts.

Retryable: n/a

831

Awaiting complete message delivery status

This means that we have not received delivery receipt data for at least one part of a multipart message.

For example, you will get this code if one message part has been successfully delivered but we do not have a receipt for the second message part. However, if any message part has failed delivery, then code 830 is returned.

You can receive this receipt code in the response to a Get Message Status request. However, this code is not returned for final delivery receipts.

Retryable: n/a

1010

Temporary system error

This error is returned when OpenMarket was unable to process the finish processing the request. Your message was not sent. You can retry your request in intervales of 10 seconds or more, and contact OpenMarket Support if you continue to receive this error.

Retryable: yes

1020

Temporary mobile operator system error

The mobile operator is experiencing an outage or system error that should resolve itself shortly.

If retries fail beyond the recommended retry period please contact OpenMarket Support for assistance troubleshooting.

Retryable: yes

1030

Non-retryable mobile operator system error

The mobile operator is experiencing an outage or system error during which they do not want messages retried.

Check the system status as reported by OpenMarket via email and on Customer Center, and use a slow retry strategy to test for connectivity; e.g. one request attempt every 20 minutes.

Retryable: no

3041

US standard rate message blocked by the OpenMarket deactivated numbers firewall

Returned for US messaging only.

The phone number is on a list of deactivated numbers, originally provided by the mobile operator.

If your request included mobileOperatorId, then try an operator lookup to see whether the number was ported.

If your request didn't include mobileOperatorId, then we will already have performed an operator lookup. In this case, the number was not ported to a new operator, and is completely deactivated. It is important that you don't send further messages to the number.

For more information see Handling Deactivated Phone Numbers.

Retryable: no