# Why are my SMS failing in Saudi Arabia?

> SMS to Saudi Arabia (KSA) usually fails because the sender ID is not registered with the CST (formerly CITC), the message reads as marketing sent outside permitted hours, or the number or encoding is wrong. KSA enforces strict sender-ID registration and content rules — unregistered or non-compliant traffic is blocked. Register the sender ID through a licensed route, respect marketing quiet hours, and format numbers as 9665XXXXXXXX.

- Canonical URL: https://www.broadnet.me/developers/troubleshooting-saudi-delivery
- Language: en
- Last updated: 2026-10-21
- Publisher: BroadNet (https://www.broadnet.me)

## Sender ID not registered with the CST

Saudi Arabia's regulator, the Communications, Space & Technology Commission (CST, formerly CITC), mandates that every A2P sender ID be registered, and STC, Mobily, and Zain KSA only deliver on that basis. An unregistered sender ID returns HTTP06 (Invalid Sender ID) or is dropped by the network. BroadNet handles CST registration — send only with the approved sender ID in sid. The parameter names (sid, mno, type) and HTTPxx error codes on this page are those of the legacy HTTP API (/websmpp); on the Bearer REST API (POST /sms/sendSms) the equivalents are senderId, destinationNumber and messageType (UNICODE for Arabic).

- CST (ex-CITC) requires registered A2P sender IDs.
- STC, Mobily, Zain KSA deliver on registered routes only.
- Unregistered → HTTP06 or a network drop.
- Send with the CST-approved sender ID in sid.

## Marketing content and quiet hours

KSA separates transactional and promotional traffic and restricts marketing to permitted daytime hours, with promotional messages typically requiring a distinct registered sender ID and honoured opt-out. A promotional message sent under a transactional sender ID, or outside permitted hours, can be filtered. Keep transactional strictly informational, run marketing on an opted-in list, and use the correct sender ID for each stream.

- Transactional and marketing are treated separately.
- Marketing is limited to permitted daytime hours.
- Promotional traffic needs a distinct sender ID + opt-out.
- Don't send promo content under a transactional sender ID.

## Number format and Arabic encoding

Put destination numbers in mno as country code 966 plus the national number, digits only, dropping any leading 0, +, or 00 — otherwise you get HTTP09 (Invalid Destination Address). For Arabic content use type=4 (70 characters per segment) or type=2 for Unicode; type=1 corrupts Arabic. Send UTF-8 and URL-encoded.

- Format: 966 + national number, digits only (e.g. 9665XXXXXXXX).
- Malformed numbers → HTTP09.
- Arabic: type=4 (70 chars); Unicode: type=2; never type=1 for Arabic.
- Body must be UTF-8 and URL-encoded.

## Confirm delivery and balance

Check the DLR before assuming success: DELIVRD vs UNDELIV, matched by MessageId or BatchId, via your webhook or a status pull (legacy HTTP API: /websmpp/websmsstatus). If an entire batch fails to move, verify credits — HTTP18 is insufficient balance — and confirm the route and sender ID are approved for KSA.

- Read the DLR Status (DELIVRD / UNDELIV).
- Pull status on demand (legacy HTTP API: /websmpp/websmsstatus) if webhooks aren't set.
- Whole-batch failure can be HTTP18 (insufficient credits).
- Re-confirm the sender ID is CST-approved for KSA.

## Related

- [Sender ID registration — KSA (CST)](https://www.broadnet.me/answers/sender-id-registration-ksa-cst)
- [SMS API reference](https://www.broadnet.me/developers/api)
- [PDPL (KSA) explained](https://www.broadnet.me/answers/pdpl-ksa-explained)
- [What is a DLR?](https://www.broadnet.me/answers/what-is-dlr)
