Ir para o conteúdo
OmniChannels.ai

APIs e SMPP

Como conectar a um fornecedor de SMS via SMPP?

Atualizado em

Resposta curta

Para conectar a um fornecedor de SMS via SMPP, solicite um bind, registre seus IPs de origem e abra uma conexão TLS no host e na porta informados. Envie bind_transceiver com seu system_id e senha, envie mensagens com submit_sm, confirme cada relatório deliver_sm e envie enquire_link regularmente para manter a sessão ativa.

O que o fornecedor entrega a você

O acesso SMPP normalmente é configurado pelo fornecedor, não em autoatendimento. Informe os países de destino, os IDs de remetente (Sender IDs), o volume de pico esperado e os IPs públicos de onde você vai se conectar.

ItemO que é
Host e porta TLSOnde o seu cliente se conecta
system_id e senhaCredenciais do bind; guarde como segredos
system_typeEm geral vazio, a menos que o fornecedor defina um valor
Binds e throughputQuantas sessões você pode abrir e a taxa acordada por bind
Lista de IPs liberadosSó IPs de origem registrados conseguem fazer bind

Abra e mantenha a sessão

Um bind transceiver envia e recebe na mesma sessão. Use binds transmitter e receiver separados só se o seu cliente exigir.

  1. Abra uma conexão TLS no host e na porta recebidos.
  2. Envie bind_transceiver com system_id e senha e aguarde bind_transceiver_resp com command_status 0.
  3. Envie cada mensagem com submit_sm e guarde o message_id do submit_sm_resp.
  4. Receba os relatórios de entrega como deliver_sm e responda a cada um com deliver_sm_resp.
  5. Envie enquire_link quando a sessão estiver ociosa e reconecte com backoff se as respostas pararem.
  6. Encerre com unbind e aguarde o unbind_resp.

Quais campos do submit_sm causam mais rejeições?

  • source_addr_ton e source_addr_npi: 5 e 0 para ID de remetente alfanumérico, 1 e 1 para número internacional.
  • destination_addr: código do país mais o número, sem sinal de mais nem zeros à esquerda.
  • data_coding: 0 para o alfabeto padrão GSM-7, 8 para UCS-2 (árabe, emoji e outras escritas).
  • registered_delivery: 1 para solicitar relatório de entrega.
  • short_message comporta até 254 octetos; para conteúdo maior, use o TLV message_payload com sm_length 0, nunca os dois.

Erros comuns de bind e envio

A OmniChannels.ai configura binds SMPP 3.4 sobre TLS por conta, com IPs de origem liberados, e revendedores e parceiros de atacado podem ter binds dedicados.

command_statusCausa provávelSolução
ESME_RBINDFAILsystem_id errado ou IP não liberadoVerifique as credenciais e o IP de origem
ESME_RINVPASWDSenha erradaVerifique as credenciais
ESME_RINVSRCADRID de remetente ou seu TON/NPI inválidoCorrija o remetente e o TON/NPI
ESME_RTHROTTLEDEnvio acima da taxa acordadaReduza o ritmo e tente de novo com backoff

Fontes oficiais