Skip to main content
SMS é o alarme no bolso: texto curto que chega em qualquer celular, sem internet e sem app. Ideal para OTP, lembrete e aviso urgente.

O que é SMS na Notifique?

É o canal para mandar texto curto (9 a 160 caracteres) direto no celular do destinatário. Você envia pelo painel ou API; a plataforma cuida da fila, das tentativas e do status de cada mensagem. Você pode:
  • Enviar códigos de verificação (OTP) e senhas de uso único
  • Lembrar consultas, entregas e prazos importantes
  • Avisar quem não usa WhatsApp ou não tem app instalado
  • Agendar envio para data e hora futuras
  • Consultar histórico e status de cada SMS
  • Receber respostas do cliente (MO) e acompanhar por webhook
Pense num bilhete colado no vidro do carro: poucas palavras, leitura imediata, sem depender de app.
Diferente do WhatsApp, SMS não usa instância (número pareado). Basta uma API Key com o escopo certo e os destinatários em formato internacional (ex.: 5511999999999, sem +).

Quando usar?

Funciona muito bem para código de verificação, lembrete urgente e cliente sem WhatsApp. Para texto longo com imagens, prefira e-mail. Campanha massiva é possível, mas SMS consome mais créditos, avalie o custo antes.

Como funciona na prática

  1. Crie uma API Key com sms:send (e sms:read / sms:cancel se for consultar ou cancelar)
  2. Envie para um ou vários números com POST /v1/sms/messages (até 500 por chamada)
  3. A plataforma enfileira, envia e atualiza o status; seu backend recebe avisos se configurou webhooks
Cada API Key pertence a um workspace. Na v1 não envie x-workspace-id. Se o header vier preenchido, a API retorna 400 (WORKSPACE_HEADER_NOT_ALLOWED).

Ciclo da mensagem

Depois do envio, o SMS passa por status como QUEUED (na fila), SENT (na operadora), DELIVERED (confirmado no celular) ou FAILED (número inválido, bloqueio, etc.). Agendamentos começam em SCHEDULED; cancelamentos viram CANCELLED. Cancelamento pela API funciona enquanto o status for QUEUED ou SCHEDULED.

O que dá para fazer

  • Enviar para 1 a 500 números internacionais por chamada
  • Agendar com schedule.sendAt
  • Consultar histórico ou um envio pelo id
  • Cancelar envio na fila ou agendado
  • Ler SMS recebidos (MO) com sms:read
  • Idempotência com header Idempotency-Key para evitar duplicata
  • Rastrear cliques em link curto (webhook sms.clicked)
  • Escolher o tipo de envio com options.speed — ver abaixo

Tipos de envio (options.speed)

SMS é o único canal em que você escolhe a rota na operadora. No painel (SMS → Novo SMS → Tipo de envio), os nomes são SMS Full, SMS Standard e SMS Slow — na API, o campo é options.speed.
Se omitir options.speed, o preço assume standard. Valor inválido → 400 (options.speed must be full, standard, slow).

Número próprio (from)

Com from (ID ou E.164 de um número ativo do workspace com SMS habilitado), a mensagem sai pela linha que você contratou — o cliente vê seu número, não o remetente compartilhado. O preço é dinâmico por país de destino — consulte smsOwnNumber.rates[] em Consulta de preços. Nesse caso options.speed não se aplica. Guia completo: SMS com número próprio.

speed não é priority

Detalhes de cobrança: Cobrança e pague pelo uso. Exemplos na API: referência SMSEnviar SMS (playground com Full, Slow, número próprio). Detalhe de campos e erros: referência da API na aba SMS.

Localização e variáveis

  • localization (mode: off | manual | ai, sourceLocale opcional) e i18n traduzem o texto por destinatário conforme o idioma do contato.
  • variables na raiz substituem placeholders {{name}} no texto (type: text).
  • Em type: template, use payload.templateId e payload.variables.
  • A resposta 202 pode incluir data.localization e, quando alguns números são pulados, data.smsSkippedRecipients.
Campos comuns de localização: Localização e i18n. Enviar por template: Enviar por template. Variáveis e placeholders: Variáveis disponíveis.

Depois do primeiro envio

  • Acompanhe entrega e falha por webhooks (sms.sent, sms.delivered, sms.failed)
  • Processe respostas com sms.received e sms.replied, guia: Mensagens recebidas
  • Teste no Sandbox com sk_test_... antes de ir para produção

Próximos passos