> ## 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.

# South Asia and Indochina channels onboarding: SMS and WhatsApp

> Ordered onboarding playbook for Bangladesh, Pakistan, Sri Lanka, Nepal, Cambodia, Myanmar, and Laos — read each market's sender-identity rule from the country-rules endpoint, register sender IDs through the carrying operator or aggregator, extend the opt-out vocabulary with local stop keywords, set recipient-local quiet hours, and assemble the KYC pack per market.

# South Asia and Indochina channels onboarding: SMS and WhatsApp

This guide is the ordered onboarding path for South Asian and Indochinese destinations — Bangladesh (BD), Pakistan (PK), Sri Lanka (LK), Nepal (NP), Cambodia (KH), Myanmar (MM), and Laos (LA). It complements the per-channel references ([SMS](https://docs.orbit.devotel.io/channels/sms.md), [WhatsApp](https://docs.orbit.devotel.io/channels/whatsapp.md)) — those document the API shapes; this guide is the ordered playbook you follow the first time.

Every neighboring band has its own playbook — [MENA](https://docs.orbit.devotel.io/guides/mena-channels-onboarding.md), [Sub-Saharan Africa](https://docs.orbit.devotel.io/guides/sub-saharan-africa-channels-onboarding.md), [LATAM](https://docs.orbit.devotel.io/guides/latam-channels-onboarding.md), [APAC](https://docs.orbit.devotel.io/guides/asia-channels-onboarding.md) — and this page is their counterpart for the Indian subcontinent and mainland Southeast Asia. Regulation moves faster here than docs do; wherever this page and the live country-rules row disagree, the row wins.

## Pick the right channel per market

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

| Market | First channel | Strong second | Notes |
| - | - | - | - |
| Bangladesh (BD) | **SMS** | WhatsApp | Alphanumeric sender-id is common practice; registration usually runs through the carrying operator or aggregator. |
| Pakistan (PK) | **SMS** | WhatsApp | The PTA filters promotional traffic at the network level — transactional and OTP traffic is the dependable lane until your sender posture is cleared. |
| Sri Lanka (LK) | **SMS** | WhatsApp | Sender-id acceptance is operator-level; there is no single regulator portal that clears a brand across all operators. |
| Nepal (NP) | **SMS** | WhatsApp | Operator-level acceptance; confirm what a recipient handset actually renders before you commit at scale. |
| Cambodia (KH) | **SMS** | WhatsApp | Alphanumeric sender-ids deliver widely with light registration; validate per operator anyway. |
| Myanmar (MM) | **SMS** | WhatsApp | Network filtering varies with the political situation — expect stricter content scrutiny than the regional norm. |
| Laos (LA) | **SMS** | WhatsApp | The smallest mobile base of the seven; numeric or alphanumeric delivery is operator-dependent. |

SMS reaches every handset class across all seven markets; add WhatsApp once SMS is stable and your Meta Business review has cleared per market. Voice is restricted in parts of the region — several of these markets limit promotional voice calling and number stock varies — so check [Country capabilities](https://docs.orbit.devotel.io/numbers/country-capabilities.md) for the exact per-market voice posture before you plan voice traffic; where voice is open, OTP and alert calling follow the standard [voice channel](https://docs.orbit.devotel.io/channels/voice.md).

## 1. Read the row first: sender-identity rule per market

Sender-identity regimes differ market to market — some require pre-registration through the operator or aggregator, others accept sender-ids at operator level. One endpoint answers the "what does this destination require" question — `GET /api/v1/compliance/country-rules` — the same read-only reference backing Orbit's send-time posture:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/country-rules?channel=sms&country=BD" \
  -H "X-API-Key: dv_live_sk_..."
```

Read the `registration` value per target market and plan from it. The per-market orientation:

| Market | Regulator | Common sender-id practice |
| - | - | - |
| Bangladesh (BD) | BTRC | Alphanumeric; pre-registration commonly via operator or aggregator |
| Pakistan (PK) | PTA | Alphanumeric; operator-level registration; promotional SMS filtered at network level |
| Sri Lanka (LK) | TRCSL | Alphanumeric; operator-level acceptance |
| Nepal (NP) | NTA | Alphanumeric; operator-level acceptance |
| Cambodia (KH) | TERC | Alphanumeric widely delivered; operator-level acceptance |
| Myanmar (MM) | PTD | Alphanumeric; operator-level acceptance; heightened content filtering |
| Laos (LA) | MTC | Numeric or alphanumeric; operator-level acceptance |

The practice column orients you; the live row governs. The `registration` value on the current `GET /api/v1/compliance/country-rules` response — not this page — is the status your sends run under, and where it reads `required`, finish the registration before your first send. The [Sender-ID pre-registration choosing matrix](https://docs.orbit.devotel.io/guides/sender-id-country-matrix.md) walks the same read-at-choose-time habit over this endpoint; run it here before you commit to a market. Registration is granted by the carrier, aggregator, or regulator — not by Orbit; a market listed here is not necessarily enabled on your account until you opt in.

## 2. Consent posture and local stop keywords

Consent is yours to collect and prove: Orbit stores the posture you opt into and applies it to your traffic only. In these markets, promotional consent practice runs through the operator or aggregator that carries your traffic — keep dated opt-in records per contact regardless of channel.

Opt-out handling is tenant-owned. The shipped stop vocabulary covers English plus a set of European and Middle Eastern languages (see the [Opt-Out Keyword Alias Table](https://docs.orbit.devotel.io/compliance/opt-out-keyword-alias-table.md)) — none of the seven markets' primary languages ship in the seeded set today, so add the local vocabulary yourself as custom rules on that same page. Matching normalises Unicode and folds case, so native-script and romanized forms both fire once added. Defensible additions per language:

| Language | Stop keywords to add | Markets |
| - | - | - |
| Bangla | `থামুন`, `বন্ধ`, `THAMUN`, `BONDHO` | BD |
| Urdu | `روکیں`, `بند`, `ROKAIN`, `BAND` | PK |
| Sinhala | `නවත්වන්න`, `NAWATHWANNA` | LK |
| Nepali | `रोक`, `बन्द`, `ROK`, `BAND` | NP |
| Khmer | `ឈប់`, `CHHOP` | KH |
| Burmese | `ရပ်တန့်`, `YATTAN` | MM |
| Lao | `ຢຸດ`, `YUT` | LA |

These are starting points you own and extend — your counsel and your traffic decide the final list, and the alias table page shows how an addition propagates across SMS, WhatsApp, and RCS. Keep `STOP` honoured in every market regardless: it is the universal fallback your contacts will type.

## 3. Quiet hours in recipient-local time

The seven markets sit at seven different offsets, none with daylight saving: Pakistan UTC+5, Sri Lanka UTC+5:30, Nepal UTC+5:45, Bangladesh UTC+6, Myanmar UTC+6:30, Cambodia and Laos UTC+7. Quiet hours on Orbit are tenant-owned and default open — nothing blocks your traffic until you set a window — so set a sending window per market in recipient-local time via [Quiet hours configuration](https://docs.orbit.devotel.io/guides/quiet-hours-configuration.md). A single regional window will mistime at least half the band: Nepal's +5:45 alone guarantees it. A conservative convention for marketing traffic is no sends before 09:00 or after 21:00 recipient-local unless local practice says otherwise; leave the window open for OTP and time-critical traffic.

## 4. KYC document pack per market

Sender registration across the region is organization-document driven, and where registration runs through an operator or aggregator the pack is exactly what they will ask you for. The checklist lives in [Organization KYC onboarding](https://docs.orbit.devotel.io/guides/organization-kyc-onboarding.md); attach documents under the roles defined by the [KYC identity model](https://docs.orbit.devotel.io/compliance/kyc-identity-model.md) so one upload serves every market profile:

* **All markets** — certificate of incorporation (`business_doc`), a director sign-off letter naming the brand and the sender-id (`authorization`), government ID of the signatory (`id_proof`), and a live website or brand page matching the sender-id.
* **Bangladesh, Pakistan, Sri Lanka** — add the operator or aggregator registration filing against the brand once granted; the carrying operator will not advance a sender-id without its own paperwork.
* **Nepal, Cambodia, Laos** — a named point of contact with a reachable email speeds operator-level acceptance.
* **Myanmar** — expect the carrying operator to re-check use case on top of the standard pack; keep campaign samples ready.

Sender identity rules are ownership rules — you own the organization documents and registrations; Orbit stores what you connect. KYC holds surface on the send path as `KYC_HOLD` (403) until the checklist completes.

## 5. Numbers and regulated purchase packets

Where a market needs dedicated numbers rather than sender-ids — or where you want local presence for two-way traffic — [Regulated number purchase packets](https://docs.orbit.devotel.io/guides/regulated-number-purchase-packets.md) lists the documents each purchase asks for, and [Country capabilities](https://docs.orbit.devotel.io/numbers/country-capabilities.md) shows which number types are in stock per market. Stock in these seven markets is thinner than in the GCC or Europe: order early and treat provisioning lead time as part of the launch plan.

## 6. What Orbit does not do

* **No platform mandate.** Orbit does not gate these markets at platform level and does not decide your compliance posture for you. Quiet hours, consent, frequency caps, and keyword rules are tenant-owned controls that default open; the platform applies the rules you opt into, in the markets you opt into.
* **No legal advice.** This page documents how Orbit's controls map onto common practice in these markets; it is documentation, not legal advice. Regulatory positions in South Asia and Indochina move — confirm the current posture with your counsel and the live country-rules row before you scale.
* **No substitute for the row.** Everything above defers to `GET /api/v1/compliance/country-rules` and to your operator agreements; where this page and the row disagree, the row wins.

## 7. Troubleshooting accordions

> [accordion] Sender-id renders as a numeric sender in BD or NP
>
> Operator-level acceptance means rendering varies by operator even when your registration cleared. Run one live send per operator mix and read what the handset shows before bulk send. See [Sender resolution errors](https://docs.orbit.devotel.io/troubleshooting/sender-resolution-errors.md).

> [accordion] Promotional SMS to Pakistan fails while OTP delivers
>
> PTA-level filtering blocks promotional content at the network edge; transactional and OTP traffic is treated differently. Keep promotional bodies on their own counsel-approved posture — do not disguise marketing traffic as transactional to route around the filter.

> [accordion] Recipient typed a local-language stop keyword and keeps receiving messages
>
> The seeded alias set does not cover Bangla, Urdu, Sinhala, Nepali, Khmer, Burmese, or Lao today. Add the keywords from section 2 as custom rules on the [Opt-Out Keyword Alias Table](https://docs.orbit.devotel.io/compliance/opt-out-keyword-alias-table.md); additions apply to every inbound-reply-capable number in your workspace.

> [accordion] KYC\_HOLD (403) blocks the first send
>
> The organization KYC checklist is incomplete for the destination. Finish [Organization KYC onboarding](https://docs.orbit.devotel.io/guides/organization-kyc-onboarding.md) with the market's pack from section 4, then retry the send.

> [accordion] Sends land outside local daytime in Nepal or Myanmar
>
> Quarter-hour offsets (UTC+5:45, UTC+6:30) break region-wide windows. Set quiet hours per market in recipient-local time per section 3 — defaults are open, so an unset window never blocked anything; it simply was not set.

## See also

* [MENA channels onboarding](https://docs.orbit.devotel.io/guides/mena-channels-onboarding.md), [Sub-Saharan Africa channels onboarding](https://docs.orbit.devotel.io/guides/sub-saharan-africa-channels-onboarding.md) — the neighboring regional playbooks.
* [APAC channels onboarding](https://docs.orbit.devotel.io/guides/asia-channels-onboarding.md) — LINE, WeChat, and Kakao coverage east of this page.
* [Sender-ID pre-registration matrix](https://docs.orbit.devotel.io/guides/sender-id-country-matrix.md) — the generic choose-time read over the country-rules endpoint.
* [Opt-Out Keyword Alias Table](https://docs.orbit.devotel.io/compliance/opt-out-keyword-alias-table.md) — the shipped stop vocabulary and how to extend it.
* [Quiet hours configuration](https://docs.orbit.devotel.io/guides/quiet-hours-configuration.md) — recipient-local sending windows.
* [Country capabilities](https://docs.orbit.devotel.io/numbers/country-capabilities.md) — per-market channel, voice, and number-type coverage.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.