South Africa · +27 · billed in ZAR

SMS API in South Africa

A REST API for SMS to South Africa numbers, with South Africa's sender rules applied automatically and every message showing the carrier that carried it. Point your SDK at southafrica.woyra.io.

SMS in South Africa: the rules

Alphanumeric sender IDs allowed

POPIA governs personal information. Opt-out must be honoured within a reasonable period and free of charge.

Opt-out keywords honoured automatically: STOP, UNSUBSCRIBE, CANCEL, END, QUIT.

Endpoint, currency, data

Endpoint
southafrica.woyra.io
Currency
ZAR
Dialling code
+27
Data region
global
Price
$0.0069 per US segment; African rates per country

Global

Your first SMS call from South Africa

curl -X POST https://southafrica.woyra.io/v1/messages \
  -H "Authorization: Bearer $WOYRA_KEY" \
  -H 'Idempotency-Key: order-4821' \
  -H 'Content-Type: application/json' \
  -d '{
    "channel": "sms",
    "to": "+27712345678",
    "from": "YOURBRAND",
    "body": "Your order 4821 is out for delivery.",
    "routing": {"strategy": "conversion_optimized", "max_cost_usd": 0.03}
  }'

The same key works on every endpoint. Calling southafrica.woyra.io applies South Africa's rules and, where residency requires it, keeps the data in the global region.

What sending sms to South Africa involves

Alphanumeric sender IDs, no registration · billed in ZAR · global data region

Your brand name, from the first send

South Africa allows an alphanumeric sender, and asks for no registration to use one. Set `from` to your brand and the message arrives under it. Nothing to file, nothing to wait for, which is the exception rather than the rule in this part of the world.

Opt-outs, honoured without your code

A recipient in South Africa who replies STOP, UNSUBSCRIBE, CANCEL, END, QUIT is suppressed on your account immediately, and the next send to them is refused rather than delivered. You write nothing for this; it is the law in most markets and the right behaviour in all of them.

Which carrier carried it, and why

Every message to South Africa records the carrier it went out on, the score that carrier held at the time, the reason it was chosen and what it cost. It is on the message in the API response and in your logs. Carriers are scored on whether codes are actually entered, not on whether a receipt said OK.

Prepaid, with a cap you set

An account on the South Africa endpoint is billed in US dollars today. Billing in ZAR is where this is going, and it is a real advantage when it arrives, but a converted price needs a published rate behind it and there is not one yet, so we quote one currency rather than invent a second. Funds are reserved at the published price when a message is accepted and settled when it is delivered; a message we never deliver is never charged for, and a hard spend cap you set is enforced rather than invoiced.

Questions about South Africa

Can I use an alphanumeric sender ID in South Africa?

South Africa allows alphanumeric sender IDs, so a message can arrive from your brand name rather than a number, with no registration needed.

Which opt-out keywords are honoured in South Africa?

STOP, UNSUBSCRIBE, CANCEL, END, QUIT. A recipient who replies with one is suppressed on your account automatically.

What currency am I billed in for South Africa?

ZAR, prepaid, with a hard spend cap you set per project.

Where does the data of a recipient in South Africa live?

Global

What does a South Africa phone number look like in the API?

E.164: a plus, the country code +27, then the subscriber number, as in +27712345678. Woyra strips spaces, hyphens, brackets and a leading 00, but it will not guess a missing country code, because the same digits belong to a different subscriber in every country.

Which endpoint should I call for South Africa?

southafrica.woyra.io, though the same API key works on every endpoint Woyra runs. Which one you call decides the compliance rules applied, the currency you are billed in, and — where residency requires it — which data plane answers.

Also in South Africa