RCS sedang ditingkatkan

RCS Business Messaging — saudara SMS yang lebih keren.

Rich cards, suggested replies, branded sender, read receipts. Fall back to SMS in one attribute. Same auth, same idempotency, same webhooks as every other Bird channel, because the same engineering team built them all.

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 menit dari npm install ke pengiriman pertama

Kirim rich message dari bahasa pemrograman yang sudah Anda gunakan.

SDKs in every major runtime. The first send goes to the sanctioned test number (+15005550006) and falls back to SMS automatically, so the CI check doesn't require an RCS-capable handset.

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();

Sepuluh primitif antara "text" dan permukaan aplikasi nyata.

RCS adalah protokol yang lebih kaya dari SMS. Kami mengekspos kekayaan tersebut sebagai primitif, bukan sebagai kanvas desainer.

  1. 01

    Rich card

    Judul, subjudul, hero image, dan hingga 4 aksi per kartu. Carousel hingga 10 kartu dalam satu pesan.

  2. 02

    Suggested reply

    Chip tap-to-reply yang mengirim string yang diketahui kembali ke webhook Anda. Tidak perlu tebak-tebakan NLU di sisi Anda.

  3. 03

    Pengirim bermerek

    Identitas bisnis terverifikasi dengan logo, warna, dan deskripsi singkat di header chat perangkat.

  4. 04

    Tanda dibaca dan mengetik

    Delivery, read, and "is typing" states as webhooks, the same envelope shape as every other channel.

  5. 05

    Fallback ke SMS dalam satu atribut

    Kirim fallback: "sms". Jika perangkat tidak berkemampuan RCS, kami secara transparan mengirim varian teks.

  6. 06

    Postback interaktif

    Ketukan tombol kembali sebagai event rcs.replied dengan string postback yang Anda atur. Hubungkan ke state machine.

  7. 07

    Lampiran media

    Gambar, video hingga 100MB, audio, PDF, vCard. Kami menghosting aset dan menyajikan signed URL dengan TTL.

  8. 08

    Percakapan dua arah

    Balasan masuk dari pengguna tiba sebagai webhook bertanda tangan HMAC. Format yang sama seperti SMS dan WhatsApp masuk.

  9. 09

    Gating operator dan perangkat

    Kami memeriksa kemampuan RCS sebelum mengirim. Jika perangkat offline atau non-RCS, kami otomatis fallback.

  10. 10

    Auth yang sama, envelope error yang sama

    Satu API key untuk RCS, SMS, Email, WhatsApp, Voice. Satu registri tipe error untuk semuanya.

Mengapa kami membangun RCS

Karena di tahun 2026, channel termurah dan terkaya seharusnya dalam satu pengiriman yang sama.

Perangkat RCS mendapat rich card; yang lainnya mendapat varian SMS yang kami buat dari payload yang sama. Kami telah menjalankan SMS selama sepuluh tahun melalui 240 koneksi langsung ke operator; RCS adalah lapisan routing yang sama dengan tipe payload yang lebih kaya dan flag fallback. Jujur soal jangkauan: saat ini RCS tersedia di operator AS (T-Mobile, Verizon, AT&T) dan Brasil; EU dan APAC berkembang sepanjang 2026. Di luar jangkauan itu, flag fallback yang bekerja.

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

Setiap perubahan status adalah webhook.

HMAC-signed payloads, replay-protected, idempotent. The same envelope on every Bird channel: learn one, you've learned them all.

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
  }
}

Jadwal retry: 5d, 30d, 5m, 30m, 2j, 6j, 12j. Dead-letter setelah percobaan terakhir; setiap event dead-letter dapat di-replay dari dashboard atau API.

  • rcs.queuedDiterima oleh API dan diantrikan untuk pengiriman.
  • rcs.sentDiserahkan ke gateway RBM operator.
  • rcs.deliveredPerangkat mengonfirmasi penerimaan rich message.
  • rcs.readPenerima membaca pesan (jika tanda dibaca diaktifkan).
  • rcs.repliedPengguna mengetuk chip suggested-reply atau mengirim balasan bebas.
  • rcs.fellbackPerangkat tidak berkemampuan RCS; varian SMS dikirim sebagai gantinya.
  • rcs.failedKegagalan permanen sebelum pengiriman (penerima tidak valid, penolakan operator).

Jika Anda sudah mengintegrasikan SMS, Anda sudah mengintegrasikan RCS.

Same auth, same idempotency contract, same error envelope, same webhook shape. The difference is the payload, not how you call it.

RCS.

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

Kartu nyata di perangkat berkemampuan RCS. Di luar jangkauan, flag fallback mengarahkan payload yang sama melalui SMS.

SMS.

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

Langsung ke jalur SMS ketika Anda menginginkannya secara eksplisit. Auth yang sama, webhook yang sama, idempotensi yang sama.

Mulai dari $0,005 per pesan + biaya operator.

Dihitung per pesan RCS yang terkirim. Biaya rich message operator bersifat pass-through dan ditampilkan per item di tagihan. Pengiriman fallback SMS ditagih sesuai tarif SMS untuk negara tujuan. Tanpa biaya platform, tanpa biaya per pengguna.

Mulai dengan satu channel.
Tambahkan yang lain saat Anda siap.

API key uji coba langsung tersedia untuk Anda. Akses produksi terbuka setelah Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Menggunakan Claude Code, Cursor, atau Codex? Salin prompt pengaturan dan agen Anda akan menginstal Bird CLI dan skill untuk Anda. Pilih milik Anda:

Cursor