RCS jest ulepszany

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

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

rcs.ts
200 · 0.6s
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 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 wiadomość trafia na zatwierdzony numer testowy (+15005550006) i automatycznie przełącza się na SMS, więc sprawdzenie CI nie wymaga telefonu obsługującego RCS.

1
2
3
4
5
6
7
8
9
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();

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

  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 "@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..."

Każda zmiana stanu to webhook.

Ładunki podpisane HMAC, zabezpieczone przed powtórzeniem, idempotentne. Ta sama struktura na każdym kanale Bird: poznaj jeden, a znasz je 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óżni się ładunek, nie sposób 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}.`,
  category: "authentication",
});

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.

Używasz Claude Code, Cursor lub Codex? Skopiuj prompt konfiguracyjny, a Twój agent zainstaluje za Ciebie Bird CLI i umiejętności. Wybierz swój:

Cursor