RCS Business Messaging — o irmão mais bonito do SMS.
Rich cards, respostas sugeridas, remetente com marca, confirmações de leitura. Fallback para SMS num único atributo. Mesma autenticação, mesma idempotência, mesmos webhooks de qualquer outro canal Bird — porque a mesma equipa de engenharia construiu todos.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.rcs.send({
to: "+15005550006",
card: {
title: "Your order has shipped",
subtitle: "Arriving Friday, May 22",
image: "https://cdn.example.com/orders/2891.jpg",
buttons: [
{ type: "url", label: "Track package", url: "https://example.com/track/2891" },
{ type: "reply", label: "Reschedule", postback: "reschedule_2891" },
],
},
fallback: "sms",
}).safe();
if (error) throw error;
console.log(data.id);
// → "rcs_4mP82wQ9..."5 minutos do npm install ao primeiro envio
Envie uma mensagem rica na linguagem que já utiliza.
SDKs em todos os principais runtimes. O primeiro envio vai para o número de teste autorizado (+15005550006) e faz fallback para SMS automaticamente — para que o check de CI não exija um dispositivo compatível com RCS.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.rcs.send({
to: "+15005550006",
card: { title: "Hello", subtitle: "From Bird RCS" },
fallback: "sms",
}).safe();Dez primitivas entre "text" e uma verdadeira superfície de aplicação.
O RCS é um protocolo mais rico que o SMS. Expomos essa riqueza como primitivas, não como um canvas de design.
- 01
Rich cards
Título, subtítulo, imagem hero e até 4 ações por card. Carrossel de até 10 cards numa única mensagem.
- 02
Respostas sugeridas
Chips de toque para responder que enviam uma string conhecida de volta ao seu webhook. Sem adivinhação de NLU do seu lado.
- 03
Remetente com marca
Identidade empresarial verificada com logótipo, cor e descrição curta no cabeçalho do chat do dispositivo.
- 04
Confirmações de leitura e digitação
Estados de entrega, leitura e "a digitar" como webhooks — o mesmo formato de envelope de qualquer outro canal.
- 05
Fallback para SMS num único atributo
Passe fallback: "sms". Se o dispositivo não for compatível com RCS, enviamos de forma transparente a variante de texto.
- 06
Postbacks interativos
Toques em botões retornam como eventos rcs.replied com a string de postback que definiu. Ligue a uma máquina de estados.
- 07
Anexos de média
Imagens, vídeo até 100 MB, áudio, PDF, vCard. Nós alojamos o recurso e servimos um URL assinado com TTL.
- 08
Conversa bidirecional
As respostas de utilizadores chegam como webhooks assinados com HMAC. Mesmo formato que SMS e WhatsApp de entrada.
- 09
Filtragem por operadora e dispositivo
Verificamos a compatibilidade RCS antes do envio. Se o dispositivo estiver offline ou não for RCS, fazemos fallback automaticamente.
- 10
Mesma autenticação, mesmo envelope de erro
Uma chave API para RCS, SMS, Email, WhatsApp, Voice. Um único registo de tipos de erro para todos.
Por que desenvolvemos RCS
Porque em 2026 o canal mais barato e o mais rico devem ser o mesmo envio.
Dispositivos RCS recebem um rich card; todos os outros recebem a variante SMS que gerámos a partir do mesmo payload. Operamos SMS há dez anos em 240 ligações diretas a operadoras; o RCS é a mesma camada de encaminhamento com um tipo de payload mais rico e uma flag de fallback. Honestos quanto à cobertura: hoje o RCS funciona em operadoras dos EUA (T-Mobile, Verizon, AT&T) e Brasil; UE e APAC expandem ao longo de 2026. Fora dessa cobertura, a flag de fallback faz o trabalho.
import { BirdClient } from "@messagebird/sdk";
const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });
const { data, error } = await bird.rcs.send({
to: "+15005550006",
card: {
title: "Your order has shipped",
subtitle: "Arriving Friday, May 22",
image: "https://cdn.example.com/orders/2891.jpg",
buttons: [
{ type: "url", label: "Track package", url: "https://example.com/track/2891" },
{ type: "reply", label: "Reschedule", postback: "reschedule_2891" },
],
},
fallback: "sms",
}).safe();
if (error) throw error;
console.log(data.id);
// → "rcs_4mP82wQ9..."Cada mudança de estado é um webhook.
Payloads assinados com HMAC, protegidos contra replay, idempotentes. O mesmo envelope em todos os canais Bird — aprenda um e aprendeu todos.
{
"type": "rcs.delivered",
"id": "evt_7nT91x...",
"created_at": "2026-05-19T15:42:01.221Z",
"data": {
"rcs_id": "rcs_4mP82wQ9",
"to": "+15005550006",
"carrier": "T-Mobile USA",
"rich": true,
"latency_ms": 612
}
}Agenda de tentativas: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Dead-letter após a última tentativa; cada evento em dead-letter pode ser reenviado a partir do dashboard ou API.
rcs.queuedAceite pela API e em fila para envio.rcs.sentEntregue ao gateway RBM da operadora.rcs.deliveredDispositivo confirmou a receção da mensagem rica.rcs.readDestinatário leu a mensagem (se as confirmações de leitura estiverem ativadas).rcs.repliedUtilizador tocou num chip de resposta sugerida ou enviou uma resposta livre.rcs.fellbackDispositivo não era compatível com RCS; a variante SMS foi enviada em vez disso.rcs.failedFalha permanente antes do envio (destinatário inválido, rejeição da operadora).
Se já integrou SMS, já integrou RCS.
Mesma autenticação, mesmo contrato de idempotência, mesmo envelope de erro, mesmo formato de webhook. A diferença está no payload — não na forma como o chama.
RCS.
await bird.rcs.send({
to: "+15005550006",
card: { title: "Your code", subtitle: `Code: ${code}` },
fallback: "sms",
});Um verdadeiro card em dispositivos compatíveis com RCS. Fora da cobertura, a flag de fallback encaminha o mesmo payload via SMS.
SMS.
await bird.sms.send({
from: "Bird",
to: "+15005550006",
text: `Your code is ${code}.`,
});Dirija-se ao caminho SMS diretamente quando quiser ser explícito. Mesma autenticação, mesmos webhooks, mesma idempotência.
A partir de $0,005 por mensagem + taxas de operadora.
Preço por mensagem RCS entregue. As taxas de mensagem rica da operadora são repassadas e apresentadas como item discriminado na fatura. Envios de fallback SMS são cobrados à tarifa SMS do país de destino. Sem taxa de plataforma, sem taxa por utilizador.