Entregue alertas de pedidos, lembretes e notificações por SMS.
Alcance seus clientes no celular com atualizações de envio, lembretes de reserva e alertas de conta a partir de um número de telefone registrado ou de um remetente de marca. A Bird retorna a codificação de caracteres e a contagem de segmentos no aceite, evita mensagens duplicadas quando seu app tenta novamente uma solicitação que expirou e transmite as atualizações de entrega da operadora para o seu webhook.
Seu pedido nº 4821 está pronto para retirada.
Mensagem
Detalhes
A entrega é um recibo da operadora. Ela não comprova que alguém leu a mensagem.
Seu pedido nº 4821 está pronto para retirada.
Mensagem
Detalhes
A entrega é um recibo da operadora. Ela não comprova que alguém leu a mensagem.
Seu pedido nº 4821 está pronto para retirada.
Mensagem
Detalhes
A entrega é um recibo da operadora. Ela não comprova que alguém leu a mensagem.
Envie sua primeira mensagem em minutos.
Teste com segurança antes de enviar mensagens a clientes reais.
Com a API de SMS da Bird, uma única chamada do seu backend envia uma confirmação de pedido, uma atualização de entrega ou um alerta de agendamento. Antes de enviar mensagens a clientes reais, direcione os envios de teste para o número sandbox dos EUA +15005550006 a partir de um remetente ativo nos EUA. Assim, você valida sua integração e o tratamento de webhooks sem entregar mensagens a um aparelho real.
// Install the SDK
// npm install @messagebird/sdk
const msg = await bird.sms.send({
from: "+15557654321",
to: "+14155550100",
text: "Your verification code is 123456.",
category: "authentication",
});
console.log(msg.id, msg.status);Precisa verificar um usuário no login ou no checkout? Em vez de gerar e armazenar códigos de verificação de uso único por conta própria, use o Bird Verify para emitir, expirar e checar códigos de verificação automaticamente.
Mantenha a entrega de SMS previsível em produção.
Evite cobranças inesperadas por segmento, mensagens duplicadas em novas tentativas de rede e falhas silenciosas da operadora.
- 01
Veja a contagem de segmentos direto na resposta.
Cada envio aceito retorna a codificação de caracteres aplicada e a contagem de segmentos. Você também pode testar textos de rascunho na calculadora de segmentos antes de publicar um novo modelo.
- 02
Trabalhe com GSM-7 e Unicode sem adivinhação.
Mensagens GSM-7 padrão cabem em um único segmento de 160 caracteres. Textos com emoji ou alfabetos não latinos passam automaticamente para Unicode, com 70 unidades por segmento. Mensagens mais longas são divididas corretamente e remontadas como uma única mensagem no celular do cliente.
- 03
Envie até 100 mensagens personalizadas em uma chamada.
Dispare uma fila de lembretes de agendamento ou alertas de turno em uma única solicitação em lote. A Bird valida o lote antecipadamente para que entradas malformadas falhem rápido e depois acompanha a entrega da operadora separadamente para cada destinatário.
- 04
Tente novamente solicitações expiradas sem enviar mensagens em dobro.
Inclua uma chave de idempotência quando seu worker enviar uma mensagem. Se um timeout de rede gerar uma nova tentativa com a mesma chave e o mesmo payload, a Bird repete a resposta original em vez de enfileirar uma mensagem duplicada.
- 05
Saiba quando a operadora entrega ou rejeita uma mensagem.
Receba webhooks assinados à medida que a mensagem passa de aceita para enviada, entregue ou com falha. Assim, seu app pode atualizar o status do pedido ou recorrer a outro canal quando um número estiver inacessível.
Migre do Twilio com poucas linhas de código.
Associe seus números remetentes, campos de destinatário e handlers de webhook existentes à Bird sem redesenhar seu serviço de notificações. Sincronize sua lista de descadastro e valide a entrega com o número sandbox antes de migrar o tráfego real.
import twilio from "twilio";
const client = twilio(accountSid, authToken);
await client.messages.create({
from: "+14155550172",
to: "+15005550006",
body: "Your code is 123456.",
});import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
await bird.sms.send({
from: "+14155550172",
to: "+15005550006",
text: "Your code is 123456.",
category: "authentication",
});Identifique mensagens com vários segmentos antes que elas aumentem sua fatura.
Uma única aspa curva, um emoji ou um caractere acentuado no nome de um cliente pode mudar a mensagem da codificação GSM-7, com 160 caracteres, para Unicode, com 70 unidades, dividindo uma mensagem em vários segmentos cobrados. A Bird retorna a contagem de caracteres, a codificação e o total de segmentos na resposta do envio, para que sua equipe identifique cedo os modelos mais caros.
const { data, error } = await bird.sms.send({
from: "Bird",
to: "+31612345678",
text: "Your code is 123456.",
category: "authentication",
}).safe();
if (error) throw error;
console.log(data.segments);
// → { characters: 20, count: 1, encoding: "GSM_7BIT" }
Envie até 100 lembretes personalizados em uma única solicitação.
Quando uma tarefa agendada envia os lembretes de agendamento de amanhã ou atualizações da janela de entrega, agrupe até 100 mensagens em uma única chamada à API em vez de percorrer solicitações individuais. Cada destinatário recebe sua própria mensagem personalizada e um status de entrega independente. A validação antecipada detecta entradas malformadas antes de o lote entrar na fila.
const { data: batch, error } = await bird.sms
.sendBatch(
users.map((u) => ({
from: "Bird",
to: u.phone,
text: `Hi ${u.name}, your appointment is tomorrow at ${u.time}.`,
})),
)
.safe();
if (error) throw error;
console.log(`queued ${batch.data.length} messages`);Acompanhe a entrega da operadora e trate mensagens com falha em tempo real.
Como a passagem para a operadora acontece de forma assíncrona depois que sua chamada de envio é bem-sucedida, a Bird publica eventos de webhook assinados conforme a mensagem avança. Atualize seu banco de dados quando a mensagem chegar ao aparelho ou, quando a entrega falhar, acione um e-mail alternativo e sinalize números inválidos.
import { bird } from "@/lib/bird";
export async function POST(req: Request) {
const event = bird.webhooks.unwrap(
await req.text(),
Object.fromEntries(req.headers),
);
switch (event.type) {
case "sms.delivered":
await markDelivered(event.data.sms_id);
break;
case "sms.failed":
await flag(event.data.to, event.data.error?.description);
break;
}
return new Response(null, { status: 204 });
}Cada evento de falha inclui o motivo específico, para que você diferencie problemas temporários do aparelho de números inválidos. Respostas de descadastro como STOP suprimem automaticamente futuros envios de marketing, enquanto falhas comuns de entrega mantêm intacto o consentimento do destinatário.
sms.acceptedA Bird aceitou sua solicitação e colocou a mensagem na fila para roteamento pela operadora.sms.sentA Bird repassou a mensagem para a operadora móvel de destino.sms.deliveredA operadora de destino confirmou a entrega no aparelho do destinatário.sms.failedNão foi possível entregar a mensagem. O evento inclui o motivo do erro, para que seu app possa alertar o suporte ou tentar outro canal.
Aprofunde-se nos guias para desenvolvedores.
Verifique webhooks assinados, proteja seus workers de envio contra mensagens duplicadas com chaves de idempotência e use a referência de erros para tratar automaticamente números inválidos ou destinos desativados.
Perguntas antes de começar
Eu escolho o remetente?
Como as tentativas evitam uma mensagem duplicada?
Aceito significa entregue?
Um lote é o mesmo que um broadcast?
O restante da plataforma SMS
Provisione números remetentes, receba respostas de clientes e monitore a entrega da operadora no mesmo espaço de trabalho.
Escale sem
perder o controle.
Organize equipes em espaços de trabalho, controle o acesso à API e rastreie alterações nos logs de auditoria.
Organização
Harbor
O acesso permanece no espaço de trabalho.
Produção/Chaves de API
Agente de entrega
AtivoAlex Lee
Admin
Hoje · UTC
Log de auditoria
Organização
Harbor
O acesso permanece no espaço de trabalho.
Produção/Chaves de API
Agente de entrega
AtivoAlex Lee
Admin
Hoje · UTC
Log de auditoria
Organização
Harbor
O acesso permanece no espaço de trabalho.
Produção/Chaves de API
Agente de entrega
AtivoAlex Lee
Admin
Hoje · UTC
Log de auditoria