RCS is being upgraded

RCS Business Messaging — lepiej wyglądające rodzeństwo SMS.

Karty rozszerzone, sugerowane odpowiedzi, brandowany nadawca, potwierdzenia odczytu. Powrót do SMS jednym atrybutem. Ta sama autoryzacja, ta sama idempotentność, te same webhooki jak w każdym innym kanale Bird — bo ten sam zespół inżynierów zbudował je wszystkie.

rcs.ts
200 · 0.6s
import { BirdClient } from "@bird/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 minut od npm install do pierwszej wysyłki

Wyślij wiadomość rich z języka, którego już używasz.

SDK w każdym popularnym środowisku uruchomieniowym. Pierwsza wysyłka trafia na autoryzowany numer testowy (+15005550006) i automatycznie przełącza się na SMS — więc test CI nie wymaga telefonu obsługującego RCS.

1
2
3
4
5
6
7
8
9
import { BirdClient } from "@bird/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();

Dziesięć prymitywów między "text" a prawdziwym interfejsem aplikacji.

RCS to bogatszy protokół niż SMS. Udostępniamy tę funkcjonalność jako prymitywy, a nie jako kanwę dla projektanta.

  1. 01

    Karty rozszerzone

    Tytuł, podtytuł, obraz główny i do 4 akcji na kartę. Karuzela do 10 kart w jednej wiadomości.

  2. 02

    Sugerowane odpowiedzi

    Chipy "dotknij, aby odpowiedzieć", które wysyłają znany ciąg znaków do Twojego webhooka. Żadnego zgadywania NLU po Twojej stronie.

  3. 03

    Brandowany nadawca

    Zweryfikowana tożsamość firmy z logo, kolorem i krótkim opisem w nagłówku czatu na urządzeniu.

  4. 04

    Potwierdzenia odczytu i pisanie

    Stany dostarczenia, odczytu i "pisze" jako webhooki — ten sam format koperty co w każdym innym kanale.

  5. 05

    Powrót do SMS jednym atrybutem

    Przekaż fallback: "sms". Jeśli urządzenie nie obsługuje RCS, transparentnie wyślemy wariant tekstowy.

  6. 06

    Interaktywne postbacki

    Dotknięcia przycisków wracają jako zdarzenia rcs.replied z ustawionym przez Ciebie ciągiem postback. Podłącz do maszyny stanów.

  7. 07

    Załączniki multimedialne

    Obrazy, wideo do 100 MB, audio, PDF, vCard. Hostujemy zasób i serwujemy podpisany URL z TTL.

  8. 08

    Dwukierunkowa konwersacja

    Odpowiedzi użytkowników przychodzą jako webhooki podpisane HMAC. Ten sam format co przychodzące SMS i WhatsApp.

  9. 09

    Bramkowanie operatora i urządzenia

    Sprawdzamy obsługę RCS przed wysyłką. Jeśli urządzenie jest offline lub nie obsługuje RCS, automatycznie przełączamy na SMS.

  10. 10

    Ta sama autoryzacja, ten sam format błędów

    Jeden klucz API dla RCS, SMS, Email, WhatsApp, Voice. Jeden rejestr typów błędów dla wszystkich kanałów.

Dlaczego rozwijamy RCS

Bo w 2026 roku najtańszy kanał i najbogatszy powinny być tą samą wysyłką.

Urządzenia z RCS otrzymują kartę rozszerzoną; wszyscy pozostali dostają wariant SMS wygenerowany z tego samego payloadu. Obsługujemy SMS od dziesięciu lat przez 240 bezpośrednich połączeń z operatorami; RCS to ta sama warstwa routingu z bogatszym typem payloadu i flagą fallbacku. Szczerze o zasięgu: dziś RCS działa u operatorów w USA (T-Mobile, Verizon, AT&T) i w Brazylii; UE i APAC rozszerzą się w 2026 roku. Poza tym zasięgiem pracę wykonuje flaga fallbacku.

rcs.ts
200 · 0.6s
import { BirdClient } from "@bird/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..."

Każda zmiana stanu to webhook.

Payloady podpisane HMAC, zabezpieczone przed powtórzeniami, idempotentne. Ten sam format w każdym kanale Bird — naucz się jednego, znasz wszystkie.

POST /webhooks/bird
signed
{
  "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
  }
}

Harmonogram ponownych prób: 5s, 30s, 5m, 30m, 2h, 6h, 12h. Po ostatniej próbie wiadomość trafia do kolejki dead-letter; każde zdarzenie z kolejki dead-letter można ponownie odtworzyć z panelu lub API.

  • rcs.queuedZaakceptowane przez API i w kolejce do wysyłki.
  • rcs.sentPrzekazane do bramki RBM operatora.
  • rcs.deliveredUrządzenie potwierdziło odbiór wiadomości rich.
  • rcs.readOdbiorca przeczytał wiadomość (jeśli potwierdzenia odczytu są włączone).
  • rcs.repliedUżytkownik dotknął sugerowanej odpowiedzi lub wysłał odpowiedź w formie dowolnego tekstu.
  • rcs.fellbackUrządzenie nie obsługiwało RCS; zamiast tego wysłano wariant SMS.
  • rcs.failedTrwały błąd przed wysłaniem (nieprawidłowy odbiorca, odrzucenie przez operatora).

Jeśli zintegrowałeś SMS, to zintegrowałeś też RCS.

Ta sama autoryzacja, ten sam kontrakt idempotentności, ta sama struktura błędów, ten sam format webhooków. Różnica tkwi w ładunku — nie w sposobie wywołania.

RCS.

rcs
await bird.rcs.send({
  to:       "+15005550006",
  card:     { title: "Your code", subtitle: `Code: ${code}` },
  fallback: "sms",
});

Prawdziwa karta na urządzeniach obsługujących RCS. Poza zasięgiem flaga fallbacku kieruje ten sam ładunek przez SMS.

SMS.

sms
await bird.sms.send({
  from: "Bird",
  to:   "+15005550006",
  text: `Your code is ${code}.`,
});

Skieruj się bezpośrednio na ścieżkę SMS, gdy chcesz to zrobić jawnie. Ta sama autoryzacja, te same webhooki, ta sama idempotentność.

Od 0,005 $ za wiadomość + opłaty operatorskie.

Naliczane za dostarczoną wiadomość RCS. Opłaty operatorskie za wiadomości rich są przekazywane i widoczne jako osobne pozycje na fakturze. Wiadomości SMS wysłane jako fallback są rozliczane według stawki SMS dla kraju docelowego. Bez opłaty platformowej, bez opłaty za stanowisko.

Zacznij od jednego kanału.
Dodaj kolejne, gdy będziesz gotowy.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i weryfikacji nadawcy.

RozpocznijPrzeczytaj dokumentacjęlub

Using Claude Code, Cursor, or Codex? Point it at our hosted MCP server: curated Bird tools, a browser sign-in, and no API key. Or install the bird-ai plugin.

Cursor