FAQ
Perguntas e respostas sobre a API de SMS em massa
39 respostas sobre contas, envio, preços, relatórios de entrega e a API, verificadas com os limites no código. Para endpoints e campos, a Referência da API tem os detalhes.
O serviço
O que é o BulkSMSAPI?
Uma API de SMS em massa para desenvolvedores: envie um texto ou um lote de até 10.000 números por solicitação para 227 países via REST, acompanhe cada mensagem com webhooks assinados e pague por mensagem a partir de um saldo pré-pago. Um console web envia campanhas de uma lista colada ou CSV sem código.
Quem usa uma API de SMS em massa?
Equipes de produto e engenharia que enviam textos de seus próprios sistemas: códigos de login e cadastro, atualizações de pedidos e entregas, lembretes de compromissos, alertas de pagamento, avisos de serviço e campanhas de marketing. Qualquer pessoa que possa fazer uma solicitação HTTPS pode usá-la.
Para quais países posso enviar?
227 países e territórios, listados com seus preços na página de preços e nas páginas de países. Uma solicitação pode misturar países: cada número é precificado pelo país ao qual pertence.
Há uma taxa mensal ou contrato?
Não. Você paga por segmento de mensagem a partir de um saldo pré-pago, e não há taxa mensal, taxa de configuração ou volume mínimo. O saldo não tem data de expiração.
Há um teste gratuito?
As contas começam com saldo zero e a primeira recarga abre tudo. A primeira recarga adiciona um bônus de até 40%, então as primeiras mensagens custam menos. Os preços são públicos, e o endpoint de estimativa e o console mostram o custo exato antes de qualquer envio.
Conta e chaves API
Como crio uma conta?
Abra Obter chave API. Seu navegador cria uma chave de conta que começa com acct_; copie-a ou salve-a como um arquivo de texto, confirme que a salvou, e a conta estará pronta. A chave da conta é o único login: não há e-mail ou senha para gerenciar.
O que acontece se eu perder minha chave de conta?
Armazenamos apenas um hash criptografado dela, então ninguém pode mostrá-la novamente, incluindo nossa equipe de suporte. Mantenha-a em um gerenciador de senhas. Enquanto você ainda estiver logado, o console continua funcionando, e você pode entrar em contato com o suporte a partir dele.
Como obtenho uma chave de API?
Na página de chaves de API do console, após a primeira recarga ser creditada. Nomeie a chave, crie-a e copie-a uma vez: ela começa com bsa_live_. Uma conta pode ter até 10 chaves ativas, cada uma com seu próprio nome e contador de limite de taxa.
Posso usar chaves diferentes para produção e staging?
Sim. Crie uma chave por aplicativo ou ambiente e dê um nome a ela. Cada chave mostra quando foi usada pela última vez, e revogar uma não afeta as outras.
Quantas contas posso criar?
Até 3 contas por endereço de rede. A maioria das equipes precisa de uma conta com várias chaves de API.
Envio de mensagens
Quantos números uma requisição pode ter?
POST /v1/batches aceita até 10.000 números por requisição, com um texto para todos ou um texto personalizado por número. O console aceita 50.000 números por campanha. Listas maiores são divididas em várias requisições.
Quão rápido as mensagens são enviadas?
A fila é processada a cada dois segundos e envia até 1.200 mensagens por minuto por conta para a rede, na ordem em que foram aceitas. Uma única mensagem geralmente é enviada em alguns segundos após a requisição.
Em qual formato os números de telefone devem estar?
E.164 internacional: um sinal de mais, o código de discagem e o número nacional, como +14155550123. Espaços, hífens, colchetes e o prefixo 00 são removidos automaticamente; duplicatas e números que não podem ser lidos são separados e não são cobrados.
Qual o tamanho máximo de uma mensagem?
Até 10 segmentos: 1.530 caracteres em GSM-7 ou 670 em Unicode. Um segmento contém 160 caracteres GSM-7 ou 70 Unicode; textos maiores são divididos em partes de 153 ou 67 caracteres e reunidos no celular.
Por que minha mensagem usou mais segmentos do que eu esperava?
Um caractere fora do alfabeto GSM-7, como uma aspas curva, um emoji ou uma letra como á ou ç, converte todo o texto para Unicode com 70 caracteres por segmento. O editor do console identifica esses caracteres, e POST /v1/estimates retorna a codificação antes do envio.
Posso agendar mensagens?
Sim. Adicione send_at a uma requisição de API ou escolha um horário no console, de 2 minutos a 45 dias no futuro. Um lote agendado pode ser cancelado até começar, e seu custo total é devolvido ao saldo.
Cada destinatário pode receber um texto diferente?
Sim. Pela API, envie um lote com mensagens, um {to, text} por destinatário. No console, cole ou faça upload de uma lista com colunas extras e use campos de mesclagem {{1}} a {{9}} no texto.
Uma linha de cancelamento é adicionada às minhas mensagens?
Defina seu texto de cancelamento em Configurações, como um link ou e-mail, e o console o adiciona aos textos de campanha quando marcado. Pela API você controla o texto completo, então adicione a linha manualmente em mensagens de marketing. Números na lista de não-envio são ignorados pelo console e API, sem cobrança.
Posso enviar uma mensagem de teste primeiro?
Sim. O console tem um envio de teste para um número antes da campanha, e pela API você pode enviar uma mensagem única para seu próprio telefone com POST /v1/messages.
Preços e pagamentos
Quanto custa um SMS?
Depende do país do número: cada país tem um preço por segmento em dólares, a partir de $0.00247 (Brasil). A página de preços e GET /v1/pricing listam todos os países.
Como o custo de um lote é calculado?
Para cada destinatário: o preço por segmento do seu país vezes os segmentos do seu texto. A soma é debitada do saldo quando a requisição é aceita, e a resposta mostra em cost.
Qual é o valor mínimo para recarga?
$40. Uma recarga pode ser qualquer valor entre $40 e $5.000. A primeira recarga adiciona um bônus de até 40%, mostrado em cada valor antes do pagamento.
Como faço o pagamento?
No console, a opção Billing abre um checkout em uma janela sobre a página. Você escolhe o valor e paga com criptomoeda, e a página de pagamento mostra o valor exato e o endereço. A página de pagamentos lista cada etapa.
Mensagens com falha são reembolsadas?
Sim. Quando uma mensagem falha, seu valor retorna automaticamente ao saldo na mesma operação, como uma linha de reembolso no registro. Um lote agendado cancelado é reembolsado integralmente.
Posso sacar meu saldo?
O saldo é usado para pagar mensagens e permanece em sua conta sem data de expiração. Reembolsos por mensagens falhas ou canceladas também retornam ao saldo.
Os preços mudam?
Os preços podem mudar quando os custos da rede mudam. A lista atual tem data, a API retorna a data com cada preço, e mensagens já aceitas mantêm o preço pelo qual foram cobradas.
Entrega e relatórios
Como sei se uma mensagem foi entregue?
Cada mensagem passa de enfileirada para enviada, depois entregue ou falha. Adicione uma URL de webhook no console para receber um evento assinado para cada status final, ou consulte GET /v1/messages/{id} e GET /v1/batches/{id}.
Como os webhooks são assinados?
No formato Standard Webhooks: cabeçalhos webhook-id, webhook-timestamp e webhook-signature, onde a assinatura é HMAC-SHA256 do id, timestamp e corpo bruto com seu segredo whsec_. A documentação tem código de verificação para Node.js, Python, PHP e Go.
E se meu endpoint de webhook estiver inativo?
Cada evento tem 10 tentativas em cerca de 24 horas, e cada tentativa é listada no console com seu status HTTP. Você também pode consultar os endpoints de mensagem a qualquer momento.
Por que uma mensagem falharia?
O celular pode estar desligado por muito tempo, o número pode não estar mais em serviço ou a rede pode recusar a mensagem. O status de falha inclui um código de erro, e o valor é reembolsado.
Por quanto tempo os registros de mensagens são mantidos?
Lotes, mensagens e o registro de saldo permanecem em sua conta e na API. O log de requisições mantém suas últimas 500 chamadas API e o log de webhooks mantém suas últimas 500 entregas.
Para desenvolvedores
Existe um SDK?
A API é JSON simples sobre HTTPS, então a biblioteca padrão de qualquer linguagem é suficiente. A documentação tem exemplos completos em curl, Node.js, Python, PHP e Go, e a especificação OpenAPI em /openapi.json gera um cliente tipado na maioria das linguagens.
Quais são os limites de taxa?
600 requisições por minuto por chave API. Cada resposta tem cabeçalhos X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset, e uma resposta 429 inclui Retry-After.
Como tentar novamente com segurança após um timeout?
Envie requisições POST com um cabeçalho Idempotency-Key e tente novamente com a mesma chave. Por 24 horas, a mesma chave e corpo retornam a primeira resposta em vez de enviar novamente.
Posso verificar preços sem uma chave API?
Sim. GET /v1/pricing e GET /v1/pricing/{country} são públicos, então uma página de checkout ou dashboard pode mostrar preços em tempo real.
Onde vejo o que meu código enviou?
O console tem um log de solicitações com o método, caminho, status e horário das suas últimas 500 chamadas à API, ao lado de lotes, mensagens e o log de webhooks.
O console
Posso enviar sem escrever código?
Sim. No console, cole números ou faça upload de um arquivo CSV com até 50.000 linhas, escreva o texto com campos de mesclagem, verifique a prévia para cada destinatário e o custo por país, e envie agora ou em um horário agendado.
O que o console mostra?
Saldo, lotes recentes com contagens em tempo real, cada lote com suas mensagens e status, recargas e o histórico, chaves de API, configurações e entregas de webhooks, o log de solicitações, a lista de preços, tickets de suporte e configurações.
Como entro em contato com o suporte?
Na página de Suporte do console. Dúvidas sobre pagamento podem ser enviadas desde o primeiro dia; os outros tópicos são liberados após a primeira recarga ser creditada.
Ainda tem uma dúvida?
Contas logadas podem abrir um ticket de suporte pelo console. Dúvidas sobre pagamento podem ser enviadas desde o primeiro dia.