# Lista de Verificação de Integração SMPP

- URL canónico: https://www.broadnet.me/pt/guides/smpp-integration-checklist
- Idioma: pt
- Editor: BroadNet (https://www.broadnet.me)
- Versão Markdown da página, gerada a partir da página publicada.

Protocolos e API Checklist gratuito

Uma lista de verificação de campo para integrar o SMPP v3.4/v5.0: tipos de bind, TLV opcionais, tratamento de relatórios de entrega, keepalives enquire_link, throttling, TLS, e um plano de testes pré-produção.

33 pontos de verificação 5 min de leitura Atualizado em 14 de julho de 2026

Receber o PDF por e-mail

Para programadores e engenheiros de mensagens que configuram um novo bind SMPP.

O que há dentro

1. 01Configuração de sessão e bind
2. 02Submissão de mensagens (submit_sm)
3. 03Parâmetros opcionais (TLVs) que vale a pena configurar
4. 04Tratamento de relatórios de entrega (DLR)
5. 05Keepalive e controlo de fluxo
6. 06Segurança do transporte (TLS)
7. 07Plano de testes pré-produção

[Ver todos os guias](https://www.broadnet.me/pt/guides)

Em resumo

O SMPP (Short Message Peer-to-Peer) é o protocolo binário que a maioria dos agregadores e operadoras disponibiliza para mensagens A2P de alto débito. Uma integração limpa tem menos a ver com escrever PDUs e mais com acertar nos pormenores operacionais: escolher o modo de bind correto, respeitar os limites de janela e throttle, analisar os relatórios de entrega de forma fiável, manter a sessão viva, e proteger o transporte. Trabalhe de cima para baixo — cada grupo é um ponto de controlo que pode validar antes de promover um bind para produção.

O checklist

## Avance item por item e marque conforme concluir.

Diagrama Uma sessão SMPP entre a sua plataforma e BroadNet

A sua plataforma (ESME)

BroadNet SMSC

Uma conexão TCP/TLS persistente

1. `bind_transceiver` Abrir e autenticar a sessão
2. `bind_transceiver_resp` Sessão aceita
3. `submit_sm` Enviar uma mensagem
4. `submit_sm_resp` Aceito, ID da mensagem devolvida
5. `deliver_sm` Relatório de entrega ou mensagem recebida
6. `deliver_sm_resp` Confirmado
7. `enquire_link` Keepalive em modo ocioso

01

### Configuração de sessão e bind

Escolha o modo de bind correto para a direção do seu tráfego e confirme a versão de protocolo negociada antes de enviar uma única mensagem.

- Confirme a versão do SMPP — v3.4 para a maioria das rotas, v5.0 onde o fornecedor suporte o estado de congestionamento e TLVs melhorados. A v5.0 é compatível com versões anteriores; não assuma que as funcionalidades estão disponíveis até o bind_resp o confirmar.
- Escolha o tipo de bind correto por sessão. transmissor (apenas MT), recetor (apenas DLR/MO), ou transcetor (ambos numa única sessão). Prefira o transcetor para reduzir a metade o número de ligações onde o fornecedor o permita.
- Configure o system_id, password, system_type e address_range exatamente como aprovisionados. Um address_range incompatível bloqueia silenciosamente o encaminhamento de MO/DLR em binds de recetor.
- Acorde por escrito com o fornecedor o número de binds concorrentes e o TPS por bind. Abrir mais binds do que os aprovisionados é a causa mais comum de uma conta limitada (throttled) ou suspensa.
- Trate explicitamente os códigos de estado do bind_resp — repita a tentativa em ESME_RALYBND e recue em ESME_RBINDFAIL. Nunca repita um bind falhado em ciclo contínuo; use recuo exponencial com jitter.

02

### Submissão de mensagens (submit_sm)

- Configure corretamente source_addr_ton / source_addr_npi e dest_addr_ton / dest_addr_npi para sender IDs alfanuméricos vs numéricos. Remetente alfanumérico → TON 5 (alfanumérico); MSISDN internacional → TON 1, NPI 1.
- Escolha o data_coding correto: GSM de 7 bits (0), 8 bits (4), ou UCS-2 (8) para Unicode. Misturar codificações sem configurar o data_coding causa mojibake e segmentação incorreta.
- Implemente a concatenação de mensagens longas via UDH ou os TLVs opcionais SAR (sar_msg_ref_num, sar_total_segments, sar_segment_seqnum). Escolha um método e mantenha-o consistente; algumas rotas rejeitam UDH, outras rejeitam os TLVs SAR.
- Solicite relatórios de entrega com registered_delivery = 1 apenas onde os consuma. Solicitar DLRs que não são processados desperdiça débito e pode gerar avisos por parte do fornecedor.
- Respeite a semântica de validity_period e schedule_delivery_time para o seu caso de uso (OTP = validade curta). Os OTP de curta duração devem transportar um validity_period apertado para que as mensagens obsoletas não sejam entregues tarde.

03

### Parâmetros opcionais (TLVs) que vale a pena configurar

- message_payload — para cargas úteis que excedam o limite do campo short_message. Não preencha simultaneamente short_message e message_payload; os fornecedores rejeitam isso.
- TLVs sar_* — concatenação baseada em normas sem bytes UDH no corpo.
- dest_addr_subunit / source_addr_subunit — onde a rota o exija para o encaminhamento ao telemóvel.
- Transporte metadados fornecidos pelo cliente apenas em TLVs aprovados pelo fornecedor. TLVs personalizados fora do intervalo acordado são frequentemente removidos ou causam erros de análise a jusante.

04

### Tratamento de relatórios de entrega (DLR)

Os relatórios de entrega chegam como PDUs deliver_sm e são a espinha dorsal da sua reconciliação e dos relatórios de qualidade.

- Analise o recibo a partir do campo short_message do deliver_sm: id, sub, dlvrd, data de submissão, data de conclusão, stat, err. O campo `stat` (DELIVRD, UNDELIV, EXPIRED, REJECTD, etc.) é o seu estado final.
- Correlacione os DLR com a sua submissão usando o formato de message_id do fornecedor, não apenas o texto do recibo. O message_id pode ser devolvido em hexadecimal no submit_resp mas em decimal no DLR — normalize ambos.
- Trate os recibos intermédios (não finais) separadamente dos estados finais. O bit 0x04 do esm_class marca um relatório de entrega; só os valores finais de `stat` devem fechar uma mensagem.
- Devolva sempre um deliver_sm_resp — um DLR não confirmado é reenviado e pode bloquear a janela. Responda prontamente mesmo que o processamento a jusante seja assíncrono.
- Associe os códigos de erro da operadora a uma taxonomia normalizada (assinante ausente, telemóvel ocupado, bloqueado por spam, número inválido). Os códigos de erro em bruto variam por rota; uma taxonomia normalizada torna a qualidade comparável entre rotas.

05

### Keepalive e controlo de fluxo

- Envie enquire_link num temporizador de inatividade (normalmente 30–60s) e trate uma resposta enquire_link_resp em falta como uma sessão morta. É a única forma fiável de detetar uma ligação TCP semiaberta.
- Implemente a janela SMPP: limite os PDUs pendentes sem confirmação e pause as submissões quando a janela estiver cheia. Disparar submit_sm às cegas para além da janela é o que desencadeia o ESME_RTHROTTLED.
- Recue perante o ESME_RTHROTTLED (0x58) em vez de repetir a tentativa imediatamente. Acrescente jitter para que as tempestades de reconexão não se sincronizem entre trabalhadores.
- Respeite unbind / unbind_resp para um encerramento controlado; reconecte com recuo em caso de desconexões inesperadas.

06

### Segurança do transporte (TLS)

- Use SMPP sobre TLS onde o fornecedor o disponibilize; desative os binds em texto simples em produção. O SMPP não tem encriptação nativa — o TLS é o controlo ao nível do transporte.
- Fixe (pin) ou valide a cadeia de certificados do servidor e imponha TLS 1.2+. Rejeite certificados expirados ou autoassinados; não desative a verificação 'para funcionar'.
- Restrinja os binds a IPs de origem numa lista de permissões em ambos os lados. A lista de IPs permitidos é um controlo padrão da operadora e uma forma rápida de conter fugas de credenciais.
- Rode as credenciais SMPP com regularidade e guarde-as num gestor de segredos, nunca no código.

07

### Plano de testes pré-produção

- Envie para um MSISDN de teste real em cada rota-alvo e confirme a receção no telemóvel de ponta a ponta.
- Verifique o ciclo completo do DLR para os resultados entregue, não entregue, expirado e rejeitado.
- Teste mensagens longas (multissegmento) e conteúdo Unicode (UCS-2) em cada rota.
- Faça testes de carga no TPS aprovisionado e confirme o comportamento controlado no limite da janela/throttle.
- Simule uma ligação interrompida a meio da janela e confirme uma reconexão limpa sem submissões duplicadas. A idempotência na repetição impede a faturação duplicada e a entrega duplicada ao telemóvel.
- Confirme a monitorização: estado do bind, ocupação da janela, latência de submissão/DLR, e taxas de códigos de erro alertam todas.

Referências

- [Especificação SMPP v3.4](https://smpp.org/SMPP_v3_4_Issue1_2.pdf)
- [Especificação SMPP v5.0](https://smpp.org/SMPP_v5.pdf)
- [3GPP TS 23.040 — Realização técnica do SMS](https://www.3gpp.org/dynareport/23040.htm)

Normas e referências regulatórias citadas neste guia. A BroadNet é membro associado da GSMA e membro do MEF e opera mensagens de nível de operadora desde 2003.

Related

- [Consulta de códigos de erro SMPP (ferramenta gratuita)](https://www.broadnet.me/pt/tools/smpp-error-codes)
- [Descodificador de DLR (ferramenta gratuita)](https://www.broadnet.me/pt/tools/dlr-decoder)
- [O que é o SMPP?](https://www.broadnet.me/pt/answers/what-is-smpp)
- [Protocolo SMPP — análise aprofundada](https://www.broadnet.me/pt/answers/smpp-protocol)
- [Documentação para programadores](https://www.broadnet.me/pt/developers)

Guarde uma cópia

## Quer isso num PDF para partilhar?

Receba no seu e-mail para partilhar com a equipa — sem spam, uma única mensagem.

Receber o PDF por e-mail

Receber o PDF

## Envie-me “Lista de Verificação de Integração SMPP” por e-mail.

Enviaremos para o seu e-mail um PDF limpo e pronto para imprimir desta checklist, para você partilhar com a equipa ou guardar para a sua RFP. Um engenheiro de mensagens só entrará em contacto se você pedir — sem spam de vendas.

- PDF para impressão, uma página por secção
- Todo o conteúdo desta página, formatado para partilhar
- Opcional: uma conversa com um engenheiro da BroadNet

Prefere não informar seu e-mail? Use Imprimir / salvar como PDF acima — a checklist completa está nesta página.

Linha direta · resposta no prazo de um dia útil

## Envie-me “Lista de Verificação de Integração SMPP”

Diga-nos para onde enviar. Enviaremos o PDF por e-mail e só entraremos em contacto se você pedir.

1. 1 Quem
2. 2 Necessidade
3. 3 Contexto
