> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# MENA channels onboarding: WhatsApp and SMS

> Ordered onboarding playbook for Middle East and North Africa senders — pick the right channel per market, prepare sender identity and KYC, get Arabic-first WhatsApp templates approved, navigate the SMS send path and its error codes, and set up quiet hours and local compliance controls.

# MENA channels onboarding: WhatsApp and SMS

This guide walks you end to end through the Middle East and North Africa channels — WhatsApp in the Gulf, SMS everywhere, voice where it is legal — from first sender readiness through send, delivery, and the error handling you will actually see. It complements the per-channel references ([WhatsApp](/channels/whatsapp), [SMS](/channels/sms)) — those pages document the API shapes; this guide is the ordered playbook you follow the first time.

If you operate across regions, run this same playbook shape in APAC ([APAC channels onboarding](/guides/asia-channels-onboarding)) — only the market rules and channel picks differ.

## Pick the right channel per market

Do not activate every channel at once. Pick per market:

| Market                                                 | Default channel | Why                                                                                                        | Notes                                                                                                                                                      |
| ------------------------------------------------------ | --------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GCC (UAE, Saudi Arabia, Qatar, Kuwait, Bahrain, Oman)  | **WhatsApp**    | Dominant consumer share in Gulf markets — first inbox for order alerts and support.                        | Require template approval before first send. SMS is the fallback channel.                                                                                  |
| North Africa (Egypt, Morocco, Algeria, Tunisia, Libya) | **SMS**         | Reliable reach where WhatsApp registration and template approval move slower.                              | Alphanumeric sender-id is not regulator-guaranteed in most of these markets — test sender-id behavior with a few sends before committing at scale.         |
| Levant (Jordan, Lebanon, Iraq)                         | **SMS**         | Legal two-way marketing is tightly restricted or blocked; WhatsApp template approval is the workable path. | Expect sender-id registration steps in Jordan; blocked marketing in Lebanon and Iraq.                                                                      |
| All markets                                            | **Voice**       | OTP calls and order-delivery calling where voice is permitted.                                             | Legal only in GCC and Egypt; blocked as a marketing channel across North Africa and the Levant. See [country capabilities](/numbers/country-capabilities). |

If you are unsure, start with WhatsApp in the GCC and SMS elsewhere — then add the second channel per market once the first is stable.

## 1. Sender and KYC readiness

Sender-identity and organization KYC gate everything downstream, so land them before you write a single message:

1. Complete [Organization KYC onboarding](/guides/organization-kyc-onboarding) — the organization profile, legal entity, and the documents a carrier-facing sender will ask you for. Saudi Arabia and the UAE are the strictest sender-identity regimes in the region; KYC holds there stall both SMS sender-id registration and WhatsApp Business Account review.
2. Check [Country capabilities](/numbers/country-capabilities) for the exact markets you send into — it tells you whether two-way SMS, voice, and WhatsApp are open per country before you buy numbers or register sender-ids.
3. Register your alphanumeric SMS sender-id per market where you intend to use one. In the GCC this is usually **pre-registered with the carrier through your organization documents** — budget days to weeks, not hours. In most North African markets sender-id is **dynamic or numeric** — receivers see a phone number, not a brand. Test sender-id behavior in each market before you bulk-send.
4. For WhatsApp, connect your Business Account in [WhatsApp getting started](/guides/whatsapp/getting-started) — the WABA review is where KYC and brand pages get re-checked; a mismatch there is the single most common MENA stall.

Sender identity rules are ownership rules — you own the organization documents and registrations; Orbit stores what you connect.

## 2. WhatsApp — template approval for Arabic-first markets

WhatsApp in MENA is template-first: you cannot send free-form marketing text — every outbound opens with an approved template. Plan template creation before you plan campaigns.

1. Open the [WhatsApp template creation walkthrough](/guides/whatsapp/templates-create-approve) — name the template, set the category (`MARKETING`, `UTILITY`, `AUTHENTICATION`), and write the body. Arabic or bilingual Arabic-English templates usually pass review faster than English-only in Gulf markets, because Meta's reviewers validate against local-language normativity — keep the body human, not transliterated.
2. Use the right script. Meta accepts the Arabic alphabet (plus digits and common punctuation). Avoid mixing scripts inside a single body — right-to-left and left-to-right text re-order unpredictably in variable placeholders. If you must include a Latin product name, put it in a fixed literal, not a `{{variable}}`.
3. Keep the variable count low. Each added `{{n}}` is another rejection-review vector; [template variable count limits](/troubleshooting/whatsapp-template-var-count) covers the failure shape.
4. Wait for approval before you send — no send path works until the template is `APPROVED`. Rejection reasons are most often a `MISLEADING` sample or a variable that does not match the sample — read [WhatsApp template troubleshooting](/troubleshooting/whatsapp-template) before you re-submit.

Approval typically lands in minutes to hours; budget a day in GCC markets where local review queues stretch.

## 3. SMS — the send path and the errors you will actually see

SMS in MENA goes through the standard send endpoint — one `POST /api/v1/messages` against your sender identity, with the body in plain text or Unicode for Arabic.

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages \
  -H "X-API-Key: dv_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+971501234567",
    "body": "Your order has shipped.",
    "channel": "sms"
  }'
```

| Field     | Required | Description                                                                                                                                                                                           |
| --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `to`      | yes      | E.164 recipient — MENA numbers must carry the country code (+971, +966, +20, etc.).                                                                                                                   |
| `body`    | yes      | Message text. Arabic is Unicode — a character costs more per segment than GSM-7, so Arabic bodies paginate earlier than English; re-check the segment preview on the compose screen before bulk send. |
| `channel` | no       | Use `sms` for the MENA default channel; WhatsApp templates go on the WhatsApp channel.                                                                                                                |

A `202 Accepted` means queued; terminal `delivered` / `failed` arrive on the delivery-status webhook (or on `GET /messages/{id}` if you do not subscribe).

Common SMS failure shapes in MENA:

| Code                    | HTTP | Cause                                                                        | Fix                                                                                                                                  |
| ----------------------- | ---- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `INVALID_RECIPIENT`     | 422  | `to` misses the country code or is malformed.                                | Send in E.164; check the market's numbering plan in [Country capabilities](/numbers/country-capabilities).                           |
| `VALIDATION_ERROR`      | 422  | Body/channel malformed; sender-id not registered for the destination market. | Register the sender-id per market or drop the field; confirm the sms channel is intended.                                            |
| `SENDER_NOT_REGISTERED` | 422  | GCC sender-id pre-registration missing.                                      | Complete the sender-id registration with your carrier; see [Sender resolution errors](/troubleshooting/sender-resolution-errors).    |
| `RATE_LIMITED`          | 429  | Over the per-tenant throughput ceiling.                                      | Honour `Retry-After`; stage bulk sends through [Campaigns](/api-reference/endpoints/campaigns).                                      |
| `MESSAGE_SEND_FAILED`   | 502  | Carrier rejected or upstream timeout.                                        | Check `metadata.classified_error_code` on the message row before support; re-check number validity with a [Lookup](/numbers/lookup). |
| `KYC_HOLD`              | 403  | Organization KYC incomplete for the destination.                             | Finish [Organization KYC onboarding](/guides/organization-kyc-onboarding) and re-send.                                               |

Read the full send path in [Send and receive messages](/guides/send-receive-messages) and the machine-readable statuses on the message row before you branch anything on label strings.

## 4. Quiet hours and local compliance pointers

Every compliance control on Orbit is tenant-owned and fail-open: you — not the platform — decide the windows you will not send in, and the platform applies them to your traffic only when you opt in. A few controls matter specifically in MENA:

* **Quiet hours** — define a recipient-local sending window (for example, no marketing SMS 21:00–08:00) per market in [Campaign limits and quiet hours](/guides/campaign-limits-quiet-hours). Because quiet hours fail open, an unset window never blocks a send — set the window only for the markets where you want one.
* **Country-level requirements** — [Country requirements](/compliance/country-requirements) lists per-market legal duties (sender registration duties in Saudi, opt-in requirements in Egypt, voice marketing bans in North Africa). These are your obligations to fill in; Orbit's compliance checklists make the country rules visible without hard-gating them.
* **Frequency caps** — use [Frequency caps](/guides/frequency-caps) to avoid over-sending in markets with low SMS tolerance; caps are tenant-side and default off.
* **Consent and DNC** — wire opt-out handling through [Consent management](/compliance/consent-management) and [DNC scrub](/compliance/dnc-scrub) where local law requires it.

## 5. Troubleshooting accordions

<AccordionGroup>
  <Accordion title="WhatsApp template rejected — MISLEADING or VARIABLE_MISMATCH">
    Arabic templates most often fail on a variable that no longer matches the approved sample. Re-check the template body and sample exactly, keep variables to one or two, and re-submit. If you need to localize, create a separate Arabic template rather than mixing languages — see [WhatsApp template troubleshooting](/troubleshooting/whatsapp-template).
  </Accordion>

  <Accordion title="Sender-id shows as a phone number instead of my brand">
    Most of North Africa does not carry regulator-guaranteed alphanumeric sender-id. Receivers see a numeric sender even where you registered one elsewhere. This is expected — register sender-id per market where required, and do not bulk-send until you have validated what a recipient actually sees. See [Sender resolution errors](/troubleshooting/sender-resolution-errors).
  </Accordion>

  <Accordion title="Send blocked by KYC hold in Saudi / UAE">
    GCC sender regimes require complete organization KYC before any sender registration. A hold means the onboarding checklist is incomplete — finish [Organization KYC onboarding](/guides/organization-kyc-onboarding), then retry the send.
  </Accordion>

  <Accordion title="SMS delivered as failed — submitted_no_receipt">
    In North Africa the carrier DLR path is lossy; `submitted_no_receipt` does not always mean the handset did not get the message. Read [Message status lifecycle](/concepts/delivery-lifecycle) before you re-send — a `submitted_no_receipt` row can still flip to `delivered`.
  </Accordion>

  <Accordion title="WhatsApp 24-hour window expired before my reply">
    Inbound replies must be answered inside the 24-hour customer-service window; after it closes, you must open with a template again. Manage windows deliberately in high-volume markets — see [WhatsApp 24h window](/guides/whatsapp/24h-window).
  </Accordion>
</AccordionGroup>

## See also

* [APAC channels onboarding](/guides/asia-channels-onboarding) — the same playbook shape in APAC (LINE / WeChat).
* [WhatsApp getting started](/guides/whatsapp/getting-started) — the WABA connect path.
* [Send and receive messages](/guides/send-receive-messages) — the cross-channel send pattern.
* [Country capabilities](/numbers/country-capabilities) — per-market channel coverage.
