Skip to main content
You need three things from whoever runs your gateway: a base URL, an HTTP login, and a password. If your login was set up for SMPP it will not work here — that is a deliberate separation, not a bug.

Send one message

A success carries the id you will see again on every receipt:
Quote the destination. "to": 61491570006 is valid JSON and loses any leading zero before the parser ever sees it. Always send it as a string.

Check it worked before you debug

Two calls, neither of which sends anything or costs anything:
/secure/rate prices a message without sending it and counts against no rate limit — the cheapest way to confirm a destination is routable and priced before you send anything real.

The three things that refuse a first message

In the order you are likely to hit them:
1

403 Authentication failure

Wrong password, unknown login — or an SMPP login, which cannot use this API at all. The message is identical for all three.
2

403 not an approved sender ID

Your account has sender-ID approval enforced and the from you sent is not on the list. Omitting from uses your login name, which is usually not approved either.
3

402 Insufficient credit

Prepaid, and the balance will not cover it. Nothing was sent and nothing was charged.

Then what?

A 200 means accepted for routing, not delivered — the submit response is sent before routing runs. To find out what actually happened, ask for a receipt:

Delivery receipts

The payload, the levels, and how to correlate on messageId.

Every field

Defaults, refusals and the advanced parameters.