---
title: "Kirim SMS pertama Anda"
description: "Buat kunci Bird API, aktifkan negara tujuan, kirim SMS template bawaan ke ponsel Anda, dan baca kembali status pengirimannya."
canonical: "https://bird.com/id-id/dokumentasi/get-started/send-your-first-sms"
---

# Kirim SMS pertama Anda

Kirim pesan teks ke ponsel Anda sendiri dengan Bird SMS, lalu baca kembali pesan tersebut untuk melihat apakah berhasil terkirim. Panduan cepat ini menggunakan template bawaan yang menyediakan teks, kategori, dan pengirim bersama yang dipilih Bird untuk tujuan pengiriman. Anda tidak memerlukan sender ID atau registrasi pengirim untuk ini.

Sebelum memulai, pastikan dompet organisasi Anda memiliki saldo. Pengiriman SMS mengambil dana dari dompet, dan Bird menolak pengiriman yang tidak dapat ditanggung saldonya dengan `402` `WalletInsufficientBalance`. [Metode pembayaran dan dompet](/docs/knowledge-base/billing/payment-methods-wallet) menjelaskan cara mengisi ulang.

## 1. Buat kunci API

Di dashboard, buka **Platform tools** > [**Kunci API**](https://bird.com/dashboard/w/api-keys) dan buat kunci dengan cakupan `sms:write`, yang mencakup pengiriman dan pembacaan pesan. Kunci dicakupkan ke suatu region dan berbentuk seperti `bk_us1_...` atau `bk_eu1_...`. Region pada prefiks menunjukkan host API mana yang harus dipanggil: `https://us1.platform.bird.com` atau `https://eu1.platform.bird.com`.

![Halaman Kunci API di dashboard Bird, menampilkan daftar kunci beserta prefiks tersamar, cakupan, dan waktu terakhir digunakan](/images/docs/dashboard-api-keys.png)

Kunci lengkap ditampilkan **sekali saja**, pada saat pembuatan. Salin ke tempat yang aman, lalu ekspor untuk contoh cURL:

```bash
export BIRD_API_KEY="bk_us1_..."
```

## 2. Aktifkan negara tujuan

Bird mengirim SMS hanya ke negara yang diaktifkan untuk workspace Anda. Pengiriman ke negara lain gagal dengan `422` `SMSDestinationNotEnabled`. Aktifkan negara nomor telepon Anda di [**SMS** > **Destinations**](https://bird.com/dashboard/w/sms/destinations). Jika sudah ditampilkan sebagai aktif, lanjutkan ke langkah 3.

Dari terminal, [Bird CLI](/docs/cli) melakukan perubahan yang sama. Masukkan kode ISO dua huruf negara tersebut, misalnya `US` untuk Amerika Serikat. Jika login CLI Anda tidak memiliki akses ke pengaturan SMS, perintah tersebut mencetak perintah `bird auth login` untuk menambahkannya:

```bash
bird sms destinations update --destination US=true
```

Agen yang terhubung ke [server MCP](/docs/ai/mcp-server) menggunakan tool `sms_destinations_update`. API publik tidak memiliki operasi untuk destinasi. Perubahan bisa memerlukan waktu hingga satu menit untuk berlaku pada pengiriman.

## 3. Kirim pesan

Kirim template bawaan `bird_otp_verification` ke ponsel Anda. Template ini ditampilkan sebagai **"493021 is your verification code. Do not share it."** dengan nilai `code` yang Anda masukkan. Instal Bird SDK untuk bahasa Anda dengan mengikuti [quickstart SDK](/docs/get-started/quickstarts).

Di tab SDK, ganti contoh kunci API, dan ganti `+14155550100` dengan nomor ponsel Anda dalam format [E.164](https://en.wikipedia.org/wiki/E.164). Tab CLI menggunakan login Anda, dan tab cURL menggunakan `BIRD_API_KEY`.

**TypeScript**

```typescript
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const msg = await bird.sms.send({
  to: "+14155550100",
  template: { slug: "bird_otp_verification", parameters: { code: "493021" } },
});

console.log(msg.id, msg.status);
```

Examples: [TypeScript](/id-id/dokumentasi/get-started/send-your-first-sms.ts.md) · [Python](/id-id/dokumentasi/get-started/send-your-first-sms.py.md) · [Go](/id-id/dokumentasi/get-started/send-your-first-sms.go.md) · [PHP](/id-id/dokumentasi/get-started/send-your-first-sms.php.md) · [CLI](/id-id/dokumentasi/get-started/send-your-first-sms.cli.md) · [MCP](/id-id/dokumentasi/get-started/send-your-first-sms.mcp.md) · [cURL](/id-id/dokumentasi/get-started/send-your-first-sms.curl.md)

Jika kunci Anda diawali dengan `bk_eu1_`, panggil `https://eu1.platform.bird.com` sebagai gantinya.

API merespons dengan `202 Accepted` beserta pesan. `id`-nya diawali dengan `sms_`, dan `status`-nya adalah `accepted`: Bird sudah menerima pesan dan mengirimkannya secara asinkron. Simpan `id` untuk langkah berikutnya. Pesan tiba dari pengirim bersama yang dipilih Bird untuk negara Anda.

## 4. Periksa status pengiriman

Ambil pesan berdasarkan ID-nya. Pembacaan tepat setelah pengiriman dapat mengembalikan `404` sampai pesan terlihat di endpoint baca, yang terjadi sesaat setelah `202`. Baca lagi beberapa saat kemudian. Ganti `SMS_MESSAGE_ID` dengan `id` dari langkah 3, dan ganti contoh kunci API di tab SDK dengan milik Anda. SDK Go tidak memiliki method bertipe untuk membaca pesan SMS, jadi tab Go memanggil path API melalui method request `client.Get` milik SDK.

**TypeScript**

```typescript
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const msg = await bird.sms.get("SMS_MESSAGE_ID");

console.log(msg.id, msg.status);
```

Examples: [TypeScript](/id-id/dokumentasi/get-started/send-your-first-sms.ts.md) · [Python](/id-id/dokumentasi/get-started/send-your-first-sms.py.md) · [Go](/id-id/dokumentasi/get-started/send-your-first-sms.go.md) · [PHP](/id-id/dokumentasi/get-started/send-your-first-sms.php.md) · [CLI](/id-id/dokumentasi/get-started/send-your-first-sms.cli.md) · [cURL](/id-id/dokumentasi/get-started/send-your-first-sms.curl.md)

Field `status` menunjukkan posisi pesan saat ini:

- `accepted`: Bird menyimpan pesan dan belum menyerahkannya ke operator.
- `sent`: operator menerima pesan, dan `sent_at` mencatat waktu Bird menyerahkannya.
- `delivered`: operator telah mengonfirmasi pengiriman, dan `delivered_at` mencatat waktunya.
- `undelivered`, `failed`, `rejected`, atau `expired`: pesan tidak sampai ke ponsel. `last_error` memberikan alasannya, dan [Kesalahan pengiriman](/docs/guides/sms/delivery-errors) menjelaskan masing-masing.

Lakukan polling sampai status berpindah dari `accepted` dan `sent`, atau subscribe ke [event SMS](/docs/guides/sms/events) untuk menerima setiap perubahan melalui webhook. Setiap pesan juga muncul di halaman [**Messages**](https://bird.com/dashboard/w/sms/messages) beserta timeline event-nya.

## Memperbaiki pengiriman yang gagal

- **`422` `SMSDestinationNotEnabled`**: negara penerima belum diaktifkan untuk workspace Anda. Aktifkan seperti di [langkah 2](#2-aktifkan-negara-tujuan), tunggu hingga satu menit, lalu kirim ulang.
- **`402` `WalletInsufficientBalance`**: saldo wallet tidak cukup untuk pesan ini. Isi ulang wallet, lalu kirim ulang.
- **`403` `InsufficientScope`**: kunci API tidak memiliki scope `sms`. Edit scope kunci tersebut atau buat kunci baru dengan `sms:write`.

## Langkah selanjutnya

- [Mengirim SMS](/docs/guides/sms/sending-sms): kirim teks Anda sendiri dengan sender dan kategori, secara batch, dan dengan percobaan ulang yang aman.
- [Sender ID SMS](/docs/guides/sms/senders): pilih sender untuk setiap negara dan daftarkan jika negara tersebut mewajibkannya.
- [Template SMS](/docs/guides/sms/templates): katalog template bawaan beserta variabelnya.
- [Event SMS](/docs/guides/sms/events): jenis event dan pengiriman webhook untuk setiap perubahan status.
- [Referensi SMS API](/docs/api/reference/create-sms-message): skema permintaan dan respons lengkap.

## Related resources

- [Sending your first SMS](/learn/sms/sending-your-first-sms) (video)
- [One-way and two-way SMS](/explained/sms/what-is-the-difference-between-one-way-and-two-way-sms) (answer)
- [Two-way SMS](/sms-api/features/two-way) (product)
- [Build your first integration](/learn/paths/integration) (course)

[Get an implementation brief](/learn/workspace?topic=sms-replies)
