O fluxo principal (visão geral)
- Enviar com
POST /v1/sms/messages(texto entre 9 e 160 caracteres, números em E.164). - Anotar os
smsIdsda resposta 202. - Listar ou consultar por ID com
sms:read; cancelar só se ainda estiver SCHEDULED.
Pré-requisitos
- API Key com escopos:
sms:send,sms:read(e opcionalmentesms:cancelpara agendados). - Envie a API Key em toda requisição:
- Header:
Authorization: Bearer sk_live_xxxxx - ou Header:
x-api-key: sk_live_xxxxx
- Header:
1. Enviar SMS
Envie um ou mais SMS para os números informados. O texto da mensagem deve ter no mínimo 9 e no máximo 160 caracteres (espaços nas pontas são ignorados na validação). Cada destinatário consome créditos do plano. Requestschedule.sendAt:
2. Listar SMS
Liste o histórico de SMS do workspace com paginação (mesmo escopo sms:read que a consulta por ID). Filtros opcionais:fromDate, toDate (ISO 8601, campo createdAt), status (vários separados por vírgula, ex.: DELIVERED,FAILED).
Request
3. Consultar status
Obtenha o status e os dados de um SMS pelo ID. Request4. Webhooks (opcional)
Para receber notificações em tempo real, configure um webhook com eventos:sms.sent— SMS aceito e enviado ao provedor.sms.delivered— SMS entregue (DLR).sms.failed— SMS falhou no envio ou foi reportado como falha.
smsId, to, status, sentAt, deliveredAt, failedAt, etc.). Consulte WEBHOOKS_ESCOPOS.md para o formato completo.
5. Agendamento e cancelamento
Agendar: inclua no body doPOST /v1/sms/messages:
sms:cancel e chame:
Validação da mensagem
Semessage tiver entre 1 e 8 caracteres (após trim), a API responde 400 com code: SMS_MESSAGE_TOO_SHORT. O mesmo limite mínimo vale para SMS enviados pelo painel, por template (texto final após variáveis) e na fila (SMS já gravados com texto curto podem falhar ao processar).
Resumo do fluxo
- POST
/v1/sms/messagescomtoemessage→ enfileirar ou agendar SMS. - GET
/v1/sms/messages→ listar histórico com paginação e filtros (escoposms:read). - GET
/v1/sms/messages/:id→ consultar um envio pelo ID. - (Opcional) Configurar webhook para
sms.sent,sms.delivered,sms.failed. - (Opcional) Para agendados: POST
/v1/sms/messages/:id/cancelpara cancelar.
Referências
- Idempotência: use o header
Idempotency-Keyoux-idempotency-keyno envio para evitar duplicatas.
