# Decodificador de PDU SMPP.

- URL canónico: https://www.broadnet.me/pt/tools/smpp-pdu-decoder
- Idioma: pt
- Última atualização: 2026-10-21
- Editor: BroadNet (https://www.broadnet.me)
- Versão Markdown da página, gerada a partir da página publicada.

SMPP v3.4 · funciona no seu navegador

Cole o hexadecimal de um PDU SMPP v3.4 para decodificar o seu cabeçalho de 16 bytes — command_length, command_id (com o nome), command_status e sequence_number — e ver o layout obrigatório de campos do corpo para submit_sm e deliver_sm. Nada sai do seu dispositivo.

16 bytes

Experimente um exemplo

command_length

16 0x00000010

command_id

enquire_link 0x00000015

command_status

0x00000000

ESME_ROK — No error

sequence_number

1 0x00000001

Corpo (0 bytes após o cabeçalho de 16 bytes)

PDU apenas com cabeçalho — sem corpo (típico de enquire_link, unbind e da maioria das confirmações _resp).

A resposta curta

## O que é um PDU SMPP?

Um PDU (Unidade de Dados de Protocolo) é uma única mensagem SMPP no fio. Todo PDU — um bind, um submit_sm, um relatório de entrega, um enquire_link — começa com o mesmo cabeçalho de 16 bytes composto por quatro inteiros de 32 bits big-endian: command_length (o comprimento total em bytes incluindo o cabeçalho), command_id (qual operação é), command_status (o resultado, que é 0 / ESME_ROK numa resposta bem-sucedida) e sequence_number (usado para associar uma resposta ao seu pedido). Quaisquer campos do corpo seguem o cabeçalho.

### O layout do cabeçalho de 16 bytes

| Bytes | Campo | Significado |
|---|---|---|
| 0–3 | command_length | Comprimento total do PDU em octetos, cabeçalho incluído. |
| 4–7 | command_id | Identifica a operação (ex. 0x00000004 = submit_sm). |
| 8–11 | command_status | Código de resultado; 0 = ESME_ROK. Só relevante em respostas. |
| 12–15 | sequence_number | Correlaciona um pedido com a sua resposta. |

### Campos do corpo submit_sm / deliver_sm

Após o cabeçalho, um submit_sm ou deliver_sm transporta os seus campos obrigatórios numa ordem fixa, opcionalmente seguidos de parâmetros TLV (opcionais). Esta ferramenta lista a ordem; não analisa totalmente as cadeias C-Octet de comprimento variável, pois os seus limites dependem dos terminadores nulos e do campo sm_length.

| Campo | Tipo | Significado |
|---|---|---|
| service_type | C-Octet String | Indica o serviço de aplicação SMS (nulo = predefinido). |
| source_addr_ton | Integer (1) | Tipo de número do remetente. |
| source_addr_npi | Integer (1) | Indicador do plano de numeração do remetente. |
| source_addr | C-Octet String | Endereço do originador da mensagem. |
| dest_addr_ton | Integer (1) | Tipo de número do destinatário. |
| dest_addr_npi | Integer (1) | Indicador do plano de numeração do destinatário. |
| destination_addr | C-Octet String | MSISDN / código curto de destino. |
| esm_class | Integer (1) | Modo e tipo de mensagem (ex. 0x04 = relatório de entrega). |
| protocol_id | Integer (1) | Identificador de protocolo (específico da rede). |
| priority_flag | Integer (1) | Nível de prioridade da mensagem. |
| schedule_delivery_time | C-Octet String | Hora de entrega agendada (nulo = imediato). |
| validity_period | C-Octet String | Período de validade da mensagem (nulo = predefinido). |
| registered_delivery | Integer (1) | Se é solicitado um relatório de entrega (DLR). |
| replace_if_present_flag | Integer (1) | Substituir uma mensagem existente, se presente. |
| data_coding | Integer (1) | Esquema de codificação (0 = GSM-7, 8 = UCS-2). |
| sm_default_msg_id | Integer (1) | Identificador de mensagem predefinido. |
| sm_length | Integer (1) | Comprimento em octetos do campo short_message. |
| short_message | Octet String | A carga útil da mensagem (até 254 octetos). |

## Perguntas frequentes

**Quais são os quatro campos do cabeçalho SMPP?**

Todo PDU SMPP começa com um cabeçalho de 16 bytes composto por quatro inteiros de 32 bits big-endian: command_length (comprimento total do PDU em octetos, incluindo o cabeçalho), command_id (a operação, como 0x00000004 para submit_sm), command_status (o código de resultado, 0 = ESME_ROK) e sequence_number (que correlaciona uma resposta com o seu pedido original).

**Por que motivo command_status é normalmente 0 nos meus pedidos?**

command_status só é relevante em PDUs de resposta e generic_nack. Em PDUs de pedido (submit_sm, bind, enquire_link) é reservado e deve ser definido como 0. Um valor diferente de zero num _resp indica um erro — por exemplo, 0x00000058 é ESME_RTHROTTLED.

**Os inteiros do SMPP são big-endian?**

Sim. O SMPP codifica inteiros multi-octeto na ordem de bytes de rede (big-endian, byte mais significativo primeiro). Este decodificador lê cada campo de cabeçalho de 4 bytes como um inteiro sem sinal de 32 bits big-endian.

**Esta ferramenta decodifica o texto da mensagem?**

Decodifica o cabeçalho fixo de 16 bytes e lista a ordem dos campos do corpo para submit_sm e deliver_sm, mas não analisa completamente o corpo de comprimento variável em valores individuais. As cadeias C-Octet terminam em nulo e o comprimento de short_message é transportado em sm_length, pelo que uma análise completa do corpo depende desses limites — esta ferramenta mantém-se no layout de cabeçalho baseado na norma.

**Onde posso pesquisar um command_status que não reconheço?**

Utilize a referência de códigos de erro do SMPP, que lista cada valor command_status do SMPP v3.4 pelo nome hexadecimal e simbólico, com um significado em linguagem simples e a causa e correção prováveis.

[Códigos de erro SMPP Pesquise cada valor command_status com causa e correção.](https://www.broadnet.me/pt/tools/smpp-error-codes) [Decodificador de DLR SMPP Decodifique um relatório de entrega a partir de um PDU deliver_sm.](https://www.broadnet.me/pt/tools/dlr-decoder) [Protocolo SMPP Como se encaixam binds, janelas e PDUs.](https://www.broadnet.me/pt/answers/smpp-protocol)

## Precisa de um bind SMPP real?

A BroadNet oferece ligações SMPP 3.4 diretas juntamente com uma API REST e webhooks de entrega em 200+ países. Fale com a nossa equipa sobre débito e encaminhamento.

[Centro de programadores](https://www.broadnet.me/pt/developers) [Contactar vendas](https://www.broadnet.me/pt/contact)
