BroadNet
Fundamentals BroadNet answer

UDH — User Data Header in SMS explained

Last reviewed 2 min readReviewed by BroadNet engineering
Quick answer

UDH (User Data Header) is the 6-byte (or longer) prefix attached to the body of an SMS to carry control information — most importantly the concatenation header that tells the recipient handset how to stitch a multi-part long SMS back together. UDH is also how WAP push, OTA SIM update messages, and binary SMS payloads are framed. Without UDH, SMS would have remained a strictly 160-character protocol.

Plain-language definitionVendor-neutralReviewed May 28, 2026
The long answer

Everything worth knowing, nothing that isn't.

§01

What it actually does

When an SMS exceeds 160 GSM-7 characters (or 70 UCS-2), the sender's stack splits it into multiple segments and prefixes each segment with a UDH containing: a Concatenation Header Indicator (0x00), the concatenation reference number (so the handset knows which segments belong together), the total segment count, and the current segment index. The recipient handset reassembles the segments in order and displays them as a single message. The UDH consumes 6 bytes of the message body, so each concatenated segment carries 153 GSM-7 characters (or 67 UCS-2) instead of the unconcatenated 160 (or 70).

§02

Why it matters commercially

UDH controls how a long SMS is billed. Most aggregators bill per segment, not per logical message — a 320-character GSM-7 message is 3 billable segments (153 + 153 + 14). For high-volume SMS senders, UDH-aware composition (keeping marketing copy below 160 GSM-7 chars, normalising punctuation away from UCS-2-forcing characters) directly cuts spend. UDH also enables binary SMS use cases — OTA SIM updates, WAP push, MMS notification — that some platforms still depend on.

§03

Operational and integration angle

Most modern aggregators auto-handle UDH concatenation: you submit a single long message string, the platform fragments and stitches UDH itself, and the recipient handset reassembles. Some legacy integrations require the sender to handle UDH manually (one submit_sm per segment, with the UDH hand-crafted). When debugging long-SMS display issues — wrong segment order, missing chunks, character corruption at segment boundaries — UDH is almost always the culprit.

§04

Privacy and compliance considerations

UDH itself is metadata, not message body content, and is not in PDPL/GDPR scope on its own. But UDH-carrying binary SMS (OTA SIM update commands, WAP push payloads) can carry sensitive content — OTA SIM keys, push URLs containing tokens. Treat UDH-framed binary SMS with the same care as any other authenticated channel: TLS in transit, access-controlled logs, and audit on any system that injects raw UDH-bearing submit_sm.

BNWritten by the BroadNet engineering team·Operating carrier-grade messaging since 2003, headquartered in Dubai·Editorial standards
Build with this

Need help wiring this up?

The pages below are the products and integration guides that put this concept on the wire. If you'd rather walk through it live, our engineering team takes calls same-day during MENA working hours.

Talk to our engineering team
Feedback

Was this answer helpful?

Your vote helps us prioritise which answers to expand with examples, diagrams, and code snippets.

Was this answer helpful?
Thanks — noted. We'll keep this answer maintained.
Got it. Tell us what was missing — send a quick note.

How we write and review content

Still need help?

Talk to a real engineer about your build.

We reply within one business day, and production accounts get 24/7 support. Our solutions engineers ship code, not scripts.

$ curl -X POST https://api.broadnet.me/sms/sendSms
Response SLA
Test-access requestsReply within 1 business day
Production24 / 7 · < 15 min
Operator NOC24 / 7 · pager