Skip to main content
Queues a single message to one destination and returns the id you will see on its receipt.
A 200 means accepted for routing, not delivered. The submit response is sent before routing runs, so the outcome can only reach you as a delivery receipt.

Fields

Advanced

coding values

Anything else in 0–14 is accepted and decoded as UTF-8. 15 and above is a 400. The value is passed to the carrier unchanged, so it chooses how the body is encoded, not merely how it is counted.

Errors particular to this endpoint

The shared errors — 401, 403 Authentication failure, 415, 429 — are on API errors.

Three fields that are commonly got wrong

If you are working from an older specification, check these three before anything else — each fails on the first call:
  1. custom_tlvs is an object, not an array of pairs.
  2. validity_period is an integer of minutes, not a string.
  3. product exists, and is absent from some older specs.

Field names

_ and - are the same character to this API — dlr_url and dlr-url are one field, and sending both is a 400 rather than last-one-wins. custom_tlvs is the exception and keeps its underscore; custom-tlvs is an unknown argument.

Sending one message

The same fields, with the reasoning.

Custom TLVs

The grammar, and the decimal tag that fails silently.