

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pesan teks seluler dengan Amazon SNS
<a name="sns-mobile-phone-number-as-subscriber"></a>

**penting**  
Panduan Pengembang SMS Amazon SNS telah diperbarui. Amazon SNS telah terintegrasi dengan [AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)pengiriman pesan SMS. Panduan ini berisi informasi terbaru tentang cara membuat, mengonfigurasi, dan mengelola pesan SMS Amazon SNS Anda.

Pesan teks seluler Amazon SNS (SMS) dirancang untuk memfasilitasi pengiriman pesan ke berbagai platform, seperti web, seluler, dan aplikasi bisnis yang mendukung SMS. Pengguna dapat mengirim pesan ke satu atau beberapa nomor telepon dengan berlangganan topik, menyederhanakan proses distribusi.

Pesan Amazon SNS dikirimkan oleh AWS Olah Pesan Pengguna Akhir SMS, yang memastikan transmisi pesan yang andal. [Di Amazon SNS APIs, Anda dapat mengatur berbagai properti seperti jenis pesan (promosi atau transaksional), [batas pengeluaran bulanan](sms_preferences.md#sms_preferences_console), [daftar opt-out](sms_manage.md#sms_manage_optout), dan pengoptimalan pengiriman pesan.](sms_preferences.md#sms_preferences_console)

AWS Olah Pesan Pengguna Akhir SMS menangani transmisi pesan ke nomor telepon tujuan melalui jaringan pasokan SMS globalnya. Ini mengelola perutean, status pengiriman, dan kepatuhan yang diperlukan dengan peraturan regional. [Untuk mengakses fitur SMS tambahan seperti izin granular, kumpulan telepon, set konfigurasi, simulator SMS, dan aturan negara, lihat Panduan Pengguna.AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/configurations.html)

![\[Ilustrasi tentang bagaimana Amazon SNS terintegrasi AWS Olah Pesan Pengguna Akhir SMS dengan untuk mengirimkan pesan teks seluler dengan andal. Pesan dapat dikirim langsung ke penerima individu atau didistribusikan ke grup melalui topik Amazon SNS. AWS Olah Pesan Pengguna Akhir SMS menangani perutean pesan, pengiriman, dan kepatuhan di seluruh jaringan globalnya, memastikan skalabilitas dan keandalan. Pengaturan ini juga memungkinkan untuk mengonfigurasi preferensi pesan, mengelola batas pengeluaran, dan melacak status pengiriman untuk mengoptimalkan AWS SMS pesan.\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/sns-sms-end-user-messaging.png)


Fitur utama berikut membantu Anda mengirim pesan SMS Amazon SNS yang dapat diskalakan dan mudah diperluas:

**[Sesuaikan preferensi pesan](sms_preferences.md)**  
Sesuaikan pengiriman SMS untuk Anda Akun AWS dengan mengatur preferensi SMS berdasarkan anggaran dan kasus penggunaan Anda. Misalnya, Anda dapat memilih apakah pesan Anda memprioritaskan efisiensi biaya atau pengiriman yang andal.

**[Tetapkan kuota pengeluaran](channels-sms-awssupport-spend-threshold.md)**  
Sesuaikan pengiriman SMS Anda dengan menentukan kuota pengeluaran atau untuk pengiriman pesan individual dan kuota pengeluaran bulanan untuk Anda. Akun AWS Jika diwajibkan oleh undang-undang dan peraturan setempat (seperti AS dan Kanada), penerima SMS [dapat](sms_manage.md#sms_manage_optout) memilih keluar, yang berarti bahwa mereka memilih untuk berhenti menerima pesan SMS dari Anda. Akun AWS Setelah penerima memilih keluar dari menerima pesan, Anda dapat, dengan batasan, memilih kembali nomor telepon sehingga Anda dapat melanjutkan pengiriman pesan.

**[Kirim pesan SMS secara global](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)**  
Amazon SNS mendukung pesan SMS di beberapa wilayah, memungkinkan Anda mengirim pesan ke lebih dari 240 negara dan wilayah.

## Bagaimana Amazon SNS mengirimkan pesan SMS saya?
<a name="sns-sms-pinpoint-integration"></a>

Saat Anda meminta Amazon SNS untuk mengirim SMS atas nama Anda, pesan dikirim menggunakan. AWS Olah Pesan Pengguna Akhir SMS Integrasi antara Amazon SNS dan AWS Olah Pesan Pengguna Akhir SMS menawarkan manfaat berikut:

**[Kebijakan IAM](sns-mobile-phone-number-getting-started.md#sns-mobile-phone-number-prerequisites)**  
Anda dapat memanfaatkan IAM dan kebijakan sumber daya untuk mengontrol dan mendistribusikan akses ke sumber daya SMS Anda di seluruh AWS layanan dan wilayah lain.

**[AWS Olah Pesan Pengguna Akhir SMS konfigurasi](https://docs.aws.amazon.com/sms-voice/latest/userguide/configurations.html)**  
Semua konfigurasi terkait ID originasi (pembuatan, pembaruan konfigurasi, penyediaan originasi baru IDs, mengubah templat pendaftaran) digunakan. AWS Olah Pesan Pengguna Akhir SMS

**[AWS Olah Pesan Pengguna Akhir SMS penagihan](https://aws.amazon.com/sns/sms-pricing/)**  
Semua penagihan SMS dilakukan. AWS Olah Pesan Pengguna Akhir SMS Anda dapat mengkonsolidasikan AWS pengeluaran Anda untuk beban kerja SMS Anda, sambil membeli dan mengelola sumber daya SMS Anda di satu lokasi pusat.

# Memulai dengan Amazon SNS SMS
<a name="sns-mobile-phone-number-getting-started"></a>

**penting**  
Panduan Pengembang SMS Amazon SNS telah diperbarui. Amazon SNS telah terintegrasi dengan [AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)pengiriman pesan SMS. Panduan ini berisi informasi terbaru tentang cara membuat, mengonfigurasi, dan mengelola pesan SMS Amazon SNS Anda.

Topik ini memandu Anda dalam mengelola kotak pasir SMS Anda dan mengonfigurasi IAM dan kebijakan berbasis sumber daya untuk memberikan Amazon SNS izin yang diperlukan untuk mengakses dan memanfaatkan. AWS Olah Pesan Pengguna Akhir SMS APIs 

## Prasyarat
<a name="sns-mobile-phone-number-prerequisites"></a>

Amazon SNS merekomendasikan untuk memperbarui kebijakan IAM Anda untuk menyertakan tindakan berikut untuk memastikan kontrol dan visibilitas komprehensif atas sumber daya Amazon SNS Anda:
+ [`AmazonSNSFullAccess`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSNSFullAccess)
+ [`AmazonSNSReadOnly`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSNSReadOnlyAccess) 

# Menggunakan kotak pasir SMS Amazon SNS
<a name="sns-sms-sandbox"></a>

Akun SMS Amazon SNS yang baru dibuat secara otomatis ditempatkan ke kotak pasir SMS untuk memastikan keamanan AWS pelanggan dan penerima dengan mengurangi risiko penipuan dan penyalahgunaan. Lingkungan ini berfungsi sebagai ruang yang aman untuk tujuan pengujian dan pengembangan. Saat beroperasi di dalam kotak pasir SMS, Anda memiliki akses ke semua fitur Amazon SNS tetapi tunduk pada batasan tertentu:
+ Anda hanya dapat mengirim pesan SMS ke nomor telepon tujuan terverifikasi.
+ Anda dapat memiliki hingga 10 nomor telepon tujuan terverifikasi.
+ Anda dapat menghapus nomor telepon tujuan hanya setelah minimal 24 jam berlalu sejak verifikasi, atau upaya verifikasi terakhir.

Setelah akun Anda keluar dari kotak pasir, pembatasan ini dihapus, dan Anda dapat mengirim pesan SMS ke penerima mana pun.

## Langkah pertama
<a name="sns-mobile-phone-number-getting-started-steps"></a>

Akun SMS Amazon SNS baru ditempatkan ke kotak pasir SMS. Gunakan langkah-langkah berikut untuk membuat dan mengelola nomor telepon di kotak pasir Anda, membuat nomor originasi dan pengirim IDs, dan mendaftarkan perusahaan Anda.

1. Tambahkan **nomor telepon tujuan** ke kotak pasir SMS. Untuk detail tentang menambahkan, mengelola, dan memindahkan nomor telepon dari kotak pasir SMS Amazon SNS, lihat. [Menambahkan dan memverifikasi nomor telepon di kotak pasir SMS Amazon SNS](sns-sms-sandbox-verifying-phone-numbers.md)

1. Buat **identitas originasi** yang dilihat penerima di perangkat mereka saat Anda mengirimi mereka pesan SMS. Untuk mempelajari lebih lanjut tentang identitas originasi, termasuk berbagai jenis yang dapat Anda gunakan, lihat dokumentasi. [Identitas originasi untuk pesan SMS Amazon SNS](channels-sms-originating-identities.md)

1. **Daftarkan** perusahaan Anda. Beberapa negara mengharuskan Anda untuk mendaftarkan identitas perusahaan Anda untuk dapat membeli nomor telepon atau pengirim IDs dan meninjau pesan yang Anda kirim ke penerima di negara mereka. Untuk informasi tentang negara mana yang memerlukan pendaftaran, lihat [Negara dan wilayah yang didukung untuk pesan SMS AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.

1. **Kirim** pesan Anda ke topik atau ponsel. Untuk informasi selengkapnya, lihat [Mengirim pesan SMS menggunakan Amazon SNS](sms_sending-overview.md).

# Menambahkan dan memverifikasi nomor telepon di kotak pasir SMS Amazon SNS
<a name="sns-sms-sandbox-verifying-phone-numbers"></a>

Sebelum Anda dapat mulai mengirim pesan SMS dari Akun AWS saat Anda berada di [kotak pasir SMS](sns-sms-sandbox.md), Anda harus menyelesaikan langkah-langkah pengaturan berikut. Ini memastikan bahwa akun Anda siap untuk pesan SMS dan nomor telepon tujuan Anda diverifikasi dengan benar.

1. Buat **[ID originasi](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-number-types.html)**. Mirip dengan akun di luar kotak pasir SMS, ID originasi diperlukan sebelum Anda dapat mengirim pesan SMS ke penerima di beberapa negara atau wilayah.

1. Tambahkan **nomor telepon tujuan** yang ingin Anda kirimi pesan di dalam kotak pasir SMS.

1. Verifikasi **nomor telepon** untuk memastikan bahwa nomor telepon tujuan valid untuk digunakan dalam pesan SMS Anda.

**Menambahkan dan memverifikasi nomor telepon tujuan**

1. Masuk ke [Konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol, pilih [wilayah yang mendukung pesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Di panel navigasi, pilih **Text messaging (SMS)** (Pesan teks).

1. Di bagian **Sandbox tujuan nomor telepon**, pilih **Tambahkan nomor telepon**.

1. Di bawah **Detail tujuan**, berikan informasi berikut, lalu pilih **Tambahkan nomor telepon**:
   + **Kode negara** dan **nomor telepon** tujuan.
   + **Bahasa** yang Anda inginkan untuk mengirim pesan verifikasi.

1. Setelah menambahkan nomor telepon, Amazon SNS akan mengirim OTP ke nomor telepon tujuan yang disediakan. OTP ini diperlukan untuk verifikasi.

1. Anda akan menerima OTP sebagai pesan SMS standar pada **nomor telepon tujuan** yang Anda berikan.
   + Jika Anda tidak menerima OTP dalam waktu 15 menit, pilih **Kirim ulang kode verifikasi** di konsol Amazon SNS.
   + Anda dapat mengirim ulang OTP hingga lima kali dalam periode 24 jam.

1. Setelah Anda menerima OTP, masukkan di kotak **Kode verifikasi** dan pilih **Verifikasi nomor telepon**.

1. Periksa **status verifikasi**.
   + Setelah berhasil memverifikasi nomor telepon, nomor telepon dan status verifikasi akan muncul di bagian **Nomor telepon tujuan Sandbox**.
   + Jika statusnya **Tertunda**, verifikasi tidak berhasil. Ini mungkin terjadi jika, misalnya, Anda tidak memasukkan kode negara dengan benar.
   + Anda hanya dapat menghapus nomor telepon yang tertunda atau terverifikasi setelah 24 jam atau lebih berlalu sejak upaya verifikasi terakhir.

1. Jika Anda ingin menggunakan nomor telepon tujuan yang sama di wilayah lain, **ulangi** langkah sebelumnya untuk setiap wilayah tempat Anda ingin menggunakannya.

## Memecahkan masalah tidak diterimanya teks OTP
<a name="sns-sms-sandbox-troubleshooting-phone-numbers"></a>

Memecahkan masalah umum yang dapat mencegah nomor telepon menerima teks OTP.
+ **Batas pengeluaran SMS Amazon SNS:** Jika Anda Akun AWS telah melampaui batas pengeluaran untuk mengirim pesan SMS, pesan lebih lanjut, termasuk teks OTP, mungkin tidak dikirimkan sampai batas meningkat atau masalah penagihan diselesaikan.
+ **Nomor telepon yang tidak dipilih untuk pemberitahuan SMS:** Di beberapa negara atau wilayah, penerima harus memilih untuk menerima pesan SMS dari kode pendek, yang biasanya digunakan untuk teks OTP. Jika nomor telepon penerima tidak dipilih, mereka tidak akan menerima teks OTP.
+ **Pembatasan atau penyaringan operator:** Beberapa operator seluler mungkin memiliki batasan atau mekanisme penyaringan yang mencegah pengiriman jenis pesan SMS tertentu, termasuk teks OTP. Ini bisa disebabkan oleh kebijakan keamanan atau tindakan anti-spam yang diterapkan oleh operator.
+ Nomor telepon tidak **valid atau salah: Jika nomor telepon** yang diberikan oleh penerima salah atau tidak valid, teks OTP tidak akan dikirimkan.
+ **Masalah jaringan:** Masalah jaringan sementara atau pemadaman dapat mencegah pengiriman pesan SMS, termasuk teks OTP, ke telepon penerima.
+ **Pengiriman tertunda:** Dalam beberapa kasus, pesan SMS mungkin mengalami keterlambatan pengiriman karena kemacetan jaringan atau faktor lainnya. Teks OTP pada akhirnya dapat dikirimkan, tetapi bisa ditunda di luar jangka waktu yang diharapkan.
+ **Penangguhan atau penghentian akun:** Jika ada masalah dengan Anda Akun AWS, seperti non-pembayaran atau pelanggaran AWS persyaratan layanan, kemampuan pengiriman pesan Amazon SNS, termasuk teks OTP, dapat ditangguhkan atau dihentikan.

# Menghapus nomor telepon dari kotak pasir SMS Amazon SNS
<a name="sns-sms-sandbox-deleting-phone-numbers"></a>

Anda dapat menghapus nomor telepon tujuan yang tertunda dan terverifikasi dari [kotak pasir SMS](sns-sms-sandbox.md).

**penting**  
Anda hanya dapat menghapus nomor telepon 24 jam setelah [memverifikasi nomor telepon](sns-sms-sandbox-verifying-phone-numbers.md), atau 24 jam setelah upaya verifikasi terakhir Anda.

**Cara menghapus nomor telepon tujuan dari sandbox SMS**

1. Masuk ke [Konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol, pilih [wilayah yang mendukung pesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html) tempat Anda menambahkan nomor telepon tujuan.

1. Di panel navigasi, pilih **Pesan teks (SMS)**.

1. Pada halaman **Pesan teks seluler (SMS)**, navigasikan ke bagian **nomor telepon tujuan Sandbox**.

1. Pilih nomor telepon tertentu yang ingin Anda hapus, lalu pilih **Hapus nomor telepon**.

1. Untuk mengonfirmasi bahwa Anda ingin menghapus nomor telepon, masukkan **delete me**, lalu pilih **Delete** (Hapus).

   Pastikan bahwa 24 jam atau lebih telah berlalu sejak Anda memverifikasi atau mencoba memverifikasi nomor telepon tujuan sebelum melanjutkan dengan penghapusan.

1. Ulangi langkah-langkah ini di setiap Wilayah tempat Anda menambahkan nomor telepon tujuan ini dan tidak akan menggunakannya lagi.

# Pindah dari kotak pasir SMS Amazon SNS
<a name="sns-sms-sandbox-moving-to-production"></a>

Memindahkan Anda Akun AWS keluar dari [kotak pasir SMS](sns-sms-sandbox.md) mengharuskan Anda menambahkan, memverifikasi, dan menguji nomor telepon tujuan terlebih dahulu. Setelah melakukan ini, buat kasus dengan AWS Dukungan.

**Untuk meminta agar AWS akun Anda dipindahkan dari kotak pasir SMS**

1. **Verifikasi nomor telepon**

   1. Saat Anda Akun AWS berada di kotak pasir SMS, buka konsol [Amazon SNS](https://console.aws.amazon.com/sns/home).

   1. Di panel navigasi, di bawah Seluler, pilih **Pesan teks (SMS)**.

   1. Di bagian nomor telepon tujuan Sandbox, [tambahkan dan verifikasi](sns-sms-sandbox-verifying-phone-numbers.md) satu atau beberapa nomor telepon tujuan. Verifikasi ini memastikan Anda berhasil mengirim dan menerima pesan.

1. **Uji penerbitan SMS**

   1. Konfirmasikan bahwa Anda dapat mengirim dan menerima pesan ke setidaknya satu nomor telepon terverifikasi. Untuk petunjuk lebih rinci tentang cara mempublikasikan pesan SMS, lihat[Menerbitkan pesan SMS ke ponsel menggunakan Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

1. **Memulai suntingan kotak pasir**

   1. Pada halaman **pesan teks seluler (SMS)** konsol Amazon SNS, di bawah **Informasi akun**, pilih **Keluar dari kotak pasir SMS**. Tindakan ini mengarahkan Anda ke [Pusat Dukungan](https://support.console.aws.amazon.com/support/home?#/case/create?issueType=service-limit-increase) Amazon dan secara otomatis membuat kasus dukungan dengan opsi **peningkatan kuota Layanan** yang dipilih.

1. **Isi formulir**

   1. Dalam formulir dukungan di bawah **Peningkatan kuota Layanan**, lakukan hal berikut:

     1. Pilih Pilih **Pesan Teks SNS** sebagai layanan.

     1. Berikan **URL situs web** atau **nama aplikasi** tempat Anda ingin mengirim pesan SMS.

     1. Tentukan jenis pesan yang akan Anda kirim: **One Time Password**, **Promotional**, atau **Transactional**.

     1. Pilih **Wilayah AWS**dari mana Anda akan mengirim pesan SMS.

     1. Buat daftar **negara** atau **wilayah** tempat Anda berencana mengirim pesan SMS.

     1. Jelaskan bagaimana pelanggan Anda **ikut serta untuk menerima pesan**.

     1. Sertakan **template pesan** apa pun yang ingin Anda gunakan.

1. **Tentukan kuota dan Wilayah**

   1. Di **Requests** (Permintaan), lakukan hal-hal berikut:

     1. Pilih **Wilayah AWS**tempat yang ingin Anda pindahkan Akun AWS.

     1. Pilih **Batas Umum** untuk **Jenis Sumber Daya**.

     1. Pilih **Exit SMS Sandbox** untuk **Kuota**.

     1. (Opsional) Untuk meminta kenaikan tambahan atau penyesuaian lainnya, pilih **Tambahkan permintaan lain** dan tentukan detail yang diperlukan.

     1. Untuk **nilai kuota Baru**, masukkan **limit** dalam USD yang Anda minta.

1. **Detail tambahan**

   1. Dalam **deskripsi Kasus**, berikan detail tambahan yang relevan dengan permintaan Anda.

   1. Di bawah **opsi Kontak**, pilih **bahasa kontak pilihan** Anda.

1. **Kirim permintaan**

   1. Pilih **Kirim** untuk mengirim permintaan Anda Dukungan.

 Dukungan Tim memberikan tanggapan awal atas permintaan Anda dalam waktu 24 jam.

Untuk mencegah sistem kami digunakan untuk mengirim konten yang tidak diinginkan atau berbahaya, kami mempertimbangkan setiap permintaan dengan hati-hati. Jika bisa, kami akan mengabulkan permintaan Anda dalam waktu 24 jam ini. Namun, jika kami memerlukan informasi tambahan dari Anda, mungkin perlu waktu lebih lama untuk menyelesaikan permintaan Anda.

Jika kasus penggunaan Anda tidak sesuai dengan kebijakan kami, kami mungkin tidak dapat mengabulkan permintaan Anda.

# Identitas originasi untuk pesan SMS Amazon SNS
<a name="channels-sms-originating-identities"></a>

**penting**  
Panduan Pengembang SMS Amazon SNS telah diperbarui. Amazon SNS telah terintegrasi dengan [AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)pengiriman pesan SMS. Panduan ini berisi informasi terbaru tentang cara membuat, mengonfigurasi, dan mengelola pesan SMS Amazon SNS Anda.

Identitas originasi untuk pesan SMS adalah pengidentifikasi yang digunakan untuk mewakili pengirim pesan SMS. Anda dapat mengidentifikasi diri Anda kepada penerima menggunakan jenis identitas asal berikut:

**Nomor Originasi**  
String numerik yang mengidentifikasi nomor telepon pengirim pesan SMS. Ada beberapa jenis nomor originasi, termasuk kode panjang (nomor telepon standar yang biasanya memiliki 10 digit atau lebih), 10 digit kode panjang (10DLC), nomor bebas pulsa (TFN) dan kode pendek (nomor telepon yang berisi antara empat dan tujuh digit).  
Support untuk nomor originasi tidak tersedia di negara-negara di mana undang-undang setempat mewajibkan penggunaan pengirim, IDs bukan nomor originasi. Bila Anda mengirim pesan SMS menggunakan nomor asal, perangkat penerima akan menunjukkan nomor asal sebagai nomor telepon pengirim. Anda dapat menentukan nomor asal yang berbeda berdadsarkan kasus penggunaan.  
Untuk informasi tambahan, lihat [Nomor telepon](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.  
**Untuk melihat daftar semua nomor originasi yang ada di AWS akun Anda, di panel navigasi konsol [Amazon SNS](https://console.aws.amazon.com/sns/home), pilih Nomor Originasi.**

**Pengirim IDs**  
Nama alfabet yang mengidentifikasi pengirim pesan SMS. Saat Anda mengirim pesan SMS menggunakan ID pengirim, dan penerima berada di area di mana autentikasi ID pengirim didukung, ID pengirim akan muncul di perangkat penerima, bukan nomor telepon Anda. ID pengirim memberikan lebih banyak informasi tentang pengirim kepada penerima SMS daripada yang diberikan oleh nomor telepon, kode panjang, atau kode pendek.  
Pengirim IDs didukung di beberapa negara dan wilayah di seluruh dunia. Di beberapa tempat, jika Anda adalah bisnis yang mengirim pesan SMS ke pelanggan individual, Anda harus menggunakan ID pengirim yang sudah didaftarkan sebelumnya ke lembaga regulasi atau grup industri. Untuk daftar lengkap negara dan wilayah yang mendukung atau memerlukan pengirim IDs, lihat [Negara dan wilayah yang didukung untuk pesan SMS AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.  
Tidak ada biaya tambahan untuk menggunakan pengirim IDs. Namun, dukungan dan persyaratan untuk otentikasi ID pengirim bervariasi menurut negara. Beberapa pasar utama (termasuk Kanada, China, dan Amerika Serikat) tidak mendukung penggunaan pengirim. IDs Beberapa area mengharuskan perusahaan yang mengirim pesan SMS ke pelanggan perorangan harus menggunakan ID pengirim yang telah terdaftar sebelumnya dengan badan pengawas atau grup industri.  
Untuk informasi tambahan, lihat [Pengirim IDs](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.

# Mengkonfigurasi pesan SMS di Amazon SNS
<a name="channels-sms-configurations"></a>

**penting**  
Panduan Pengembang SMS Amazon SNS telah diperbarui. Amazon SNS telah terintegrasi dengan [AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)pengiriman pesan SMS. Panduan ini berisi informasi terbaru tentang cara membuat, mengonfigurasi, dan mengelola pesan SMS Amazon SNS Anda.

Anda dapat menggunakan konfigurasi di Amazon SNS SMS untuk mengatur preferensi SMS agar sesuai dengan kebutuhan Anda, seperti menyesuaikan kuota pengeluaran dan mengatur pencatatan status pengiriman. Topik ini juga memberikan detail tentang cara mempublikasikan pesan SMS ke topik menggunakan konsol Amazon SNS dan AWS SDK, menangani kuota secara efisien, dan mengambil statistik terperinci tentang aktivitas SMS.

# Mengirim pesan SMS menggunakan Amazon SNS
<a name="sms_sending-overview"></a>

Bagian ini menjelaskan cara mengirim pesan SMS menggunakan Amazon SNS, termasuk memublikasikan topik, berlangganan nomor telepon ke topik, menyetel atribut pada pesan, dan memublikasikan langsung ke ponsel.

## Menerbitkan pesan SMS ke topik Amazon SNS
<a name="sms_publish-to-topic"></a>

Anda dapat menerbitkan satu pesan SMS ke banyak nomor telepon sekaligus dengan berlangganan nomor telepon tersebut ke topik Amazon SNS. Topik SNS adalah saluran komunikasi di mana Anda dapat menambahkan pelanggan dan kemudian menerbitkan pesan ke semua pelanggan tersebut. Pelanggan menerima semua pesan yang dipublikasikan ke topik sampai Anda membatalkan langganan, atau sampai pelanggan memilih untuk tidak menerima pesan SMS dari akun Anda. AWS 

### Mengirim pesan ke topik menggunakan AWS konsol
<a name="sms_publish-to-topic_console"></a>

**Cara membuat topik**

Lakukan langkah-langkah berikut jika Anda belum memiliki topik untuk dikirimi pesan SMS.

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol, pilih [wilayah yang mendukung pesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Di panel navigasi, pilih **Topics** (Topik).

1. Di halaman **Topics** (Topik), pilih **Create topic** (Buat topik).

1. Di halaman **Create topic** (Buat topik), pada **Details** (Detail), lakukan hal-hal berikut:

   1. Untuk **Type** (Jenis), pilih **Standard** (Standar).

   1. Untuk **Name** (Nama), masukkan nama topik.

   1. (Opsional) Untuk **Display name** (Nama tampilan), masukkan prefiks kustom untuk pesan SMS Anda. Ketika Anda mengirim pesan ke topik, Amazon SNS menambahkan nama tampilan diikuti tanda kurung siku (>) dan spasi. Nama tampilan tidak peka huruf besar/kecil, dan Amazon SNS mengonversi nama tampilan menjadi karakter huruf besar. Misalnya, jika nama tampilan topiknya adalah `MyTopic` dan pesannya adalah `Hello World!`, pesan tersebut akan muncul sebagai:

      ```
      MYTOPIC> Hello World!
      ```

1. Pilih **Create topic** (Buat topik). Nama topik dan Amazon Resource Name (ARN) muncul di halaman **Topics** (Topik).

**Cara membuat langganan SMS**

Anda dapat menggunakan langganan untuk mengirim pesan SMS ke beberapa penerima hanya dengan menerbitkan pesan ke topik Anda satu kali.
**catatan**  
Saat Anda mulai menggunakan Amazon SNS untuk mengirim pesan SMS, AWS akun Anda ada di kotak pasir *SMS*. Sandbox SMS menyediakan lingkungan yang aman bagi Anda untuk mencoba fitur Amazon SNS tanpa mempertaruhkan reputasi Anda sebagai pengirim SMS. Saat akun Anda berada di sandbox SMS, Anda dapat menggunakan semua fitur Amazon SNS, tetapi Anda hanya dapat mengirim pesan SMS ke nomor telepon tujuan yang terverifikasi. Untuk informasi selengkapnya, lihat [Menggunakan kotak pasir SMS Amazon SNS](sns-sms-sandbox.md).

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di panel navigasi, pilih **Subscriptions** (Langganan).

1. Di halaman **Subscriptions** (Langganan), pilih **Create subscription** (Buat langganan).

1. Di halaman **Create subscription** (Buat langganan), pada **Details** (Detail), lakukan hal berikut:

   1. Untuk **Topic ARN** (ARN topik), masukkan atau pilih Amazon Resource Name (ARN) topik yang ingin Anda kirimi pesan SMS.

   1. Untuk **Protocol** (Protokol), pilih **SMS**.

   1. Untuk **Endpoint** (Titik akhir), masukkan nomor telepon yang ingin Anda buat berlangganan ke topik Anda.

1. Pilih **Create subscription** (Buat langganan). Informasi langganan muncul di halaman **Subscriptions** (Langganan).

   Untuk menambahkan nomor telepon lainnya, ulangi langkah-langkah ini. Anda juga dapat menambahkan jenis langganan lainnya, seperti email.

**Cara mengirim pesan**

Ketika Anda menerbitkan pesan ke topik, Amazon SNS mencoba untuk mengirimkan pesan tersebut ke setiap nomor telepon yang berlangganan ke topik.

1. Di [konsol Amazon SNS](https://console.aws.amazon.com/sns/home), di halaman **Topics** (Topik), pilih nama topik yang ingin Anda kirimi pesan SMS.

1. Di halaman detail topik, pilih **Publish message** (Publikasikan pesan).

1. Di halaman **Publish message to topic** (Publikasikan pesan ke topik), di bawah **Message detail** (Detail pesan), lakukan hal berikut:

   1. Untuk **Subject** (Subjek), kosongkan bidang kecuali topik Anda berisi langganan email dan Anda ingin menerbitkannya ke langganan email dan langganan SMS. Amazon SNS menggunakan **Subject** (Subjek) yang Anda masukkan sebagai baris subjek email.

   1. (Opsional) Untuk **Time to Live (TTL)** (waktu untuk tayang), masukkan jumlah detik yang digunakan Amazon SNS untuk mengirim pesan SMS Anda ke setiap pelanggan titik akhir aplikasi seluler.

1. Di bawah **Message body** (Isi pesan), lakukan hal berikut:

   1. Untuk **Message structure** (Struktur pesan), pilih **Identical payload for all delivery protocols** (Muatan yang sama untuk semua protokol pengiriman) untuk mengirim pesan yang sama ke semua jenis protokol yang berlangganan topik Anda. Atau, pilih **Custom payload for each delivery protocol** (Muatan kustom untuk setiap protokol pengiriman) untuk menyesuaikan pesan untuk pelanggan dari jenis protokol yang berbeda. Misalnya, Anda dapat memasukkan pesan default untuk pelanggan nomor telepon dan pesan kustom untuk pelanggan email.

   1. Untuk **Message body to send to the endpoint** (Badan pesan yang akan dikirim ke titik akhir), masukkan pesan Anda, atau pesan kustom Anda per protokol pengiriman.

      Jika topik Anda memiliki nama tampilan, Amazon SNS menambahkannya ke pesan, yang menambah panjang pesan. Panjang nama tampilan adalah jumlah karakter dalam nama tersebut ditambah dua karakter untuk tanda kurung siku (>) dan ruang yang ditambahkan Amazon SNS.

      Untuk informasi tentang kuota ukuran untuk pesan SMS, lihat [Menerbitkan pesan SMS ke ponsel menggunakan Amazon SNS](#sms_publish-to-phone).

1. (Opsional) Untuk **atribut Pesan**, tambahkan metadata pesan seperti stempel waktu, tanda tangan, dan. IDs

1. Pilih **Publish message** (Publikasikan Pesan). Amazon SNS mengirimkan pesan SMS dan menampilkan pesan keberhasilan.

### Mengirim pesan ke topik menggunakan AWS SDKs
<a name="sms_publish-to-topic_sdk"></a>

Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial bersama](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) di Panduan Referensi *Alat AWS SDKs dan Alat*.

Contoh kode berikut ini menunjukkan cara untuk melakukan:
+ Buat topik Amazon SNS.
+ Berlangganan nomor telepon ke topik.
+ Publikasikan pesan SMS ke topik sehingga semua nomor telepon berlangganan menerima pesan sekaligus.

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 
Buat topik dan kembalikan ARN-nya.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CreateTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicName>

                Where:
                   topicName - The name of the topic to create (for example, mytopic).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicName = args[0];
        System.out.println("Creating a topic with name: " + topicName);
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        String arnVal = createSNSTopic(snsClient, topicName);
        System.out.println("The topic ARN is" + arnVal);
        snsClient.close();
    }

    public static String createSNSTopic(SnsClient snsClient, String topicName) {
        CreateTopicResponse result;
        try {
            CreateTopicRequest request = CreateTopicRequest.builder()
                    .name(topicName)
                    .build();

            result = snsClient.createTopic(request);
            return result.topicArn();

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
}
```
Berlangganan titik akhir ke suatu topik.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.SubscribeRequest;
import software.amazon.awssdk.services.sns.model.SubscribeResponse;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SubscribeTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicArn> <phoneNumber>

                Where:
                   topicArn - The ARN of the topic to subscribe.
                   phoneNumber - A mobile phone number that receives notifications (for example, +1XXX5550100).
                """;

        if (args.length < 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        subTextSNS(snsClient, topicArn, phoneNumber);
        snsClient.close();
    }

    public static void subTextSNS(SnsClient snsClient, String topicArn, String phoneNumber) {
        try {
            SubscribeRequest request = SubscribeRequest.builder()
                    .protocol("sms")
                    .endpoint(phoneNumber)
                    .returnSubscriptionArn(true)
                    .topicArn(topicArn)
                    .build();

            SubscribeResponse result = snsClient.subscribe(request);
            System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Tetapkan atribut pada pesan, seperti ID pengirim, harga maksimum, dan jenisnya. Atribut pesan bersifat opsional.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Publikasikan pesan ke topik. Pesan dikirim ke setiap pelanggan.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class PublishTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <message> <phoneNumber>

                Where:
                   message - The message text to send.
                   phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String message = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        pubTextSMS(snsClient, message, phoneNumber);
        snsClient.close();
    }

    public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) {
        try {
            PublishRequest request = PublishRequest.builder()
                    .message(message)
                    .phoneNumber(phoneNumber)
                    .build();

            PublishResponse result = snsClient.publish(request);
            System.out
                    .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```

------

## Menerbitkan pesan SMS ke ponsel menggunakan Amazon SNS
<a name="sms_publish-to-phone"></a>

Anda dapat menggunakan Amazon SNS untuk mengirim pesan SMS langsung ke ponsel tanpa membuat nomor telepon berlangganan ke topik Amazon SNS.

**catatan**  
Membuat nomor telepon berlangganan ke topik berguna jika Anda ingin mengirim satu pesan ke beberapa nomor telepon sekaligus. Untuk petunjuk penerbitan pesan SMS ke topik, lihat [Menerbitkan pesan SMS ke topik Amazon SNS](#sms_publish-to-topic).

Saat mengirim pesan, Anda dapat mengontrol pesan dioptimalkan atau tidak untuk biayanya atau pengiriman andal. Anda juga dapat menentukan [ID pengirim atau nomor asal](channels-sms-originating-identities.md). Jika Anda mengirim pesan secara terprogram menggunakan Amazon SNS API atau AWS SDKs, Anda dapat menentukan harga maksimum untuk pengiriman pesan.

Setiap pesan SMS dapat berisi hingga 140 byte, dan kuota karakter tergantung pada skema pengkodean. Misalnya, sebuah pesan SMS dapat berisi:
+ 160 karakter GSM
+ 140 karakter ASCII
+ 70 karakter UCS-2

Jika Anda menerbitkan pesan yang melebihi kuota ukuran, Amazon SNS mengirimkannya sebagai beberapa pesan, masing-masing sesuai dalam kuota ukuran. Pesan tidak terputus di tengah kata, melainkan di batas seluruh kata. Kuota ukuran total untuk satu tindakan penerbitan SMS adalah 1.600 byte.

Ketika Anda mengirim pesan SMS, Anda menentukan nomor telepon menggunakan format E.164, struktur penomoran telepon standar yang digunakan untuk telekomunikasi internasional. Nomor telepon yang mengikuti format ini dapat terdiri dari maksimum 15 digit bersama dengan prefiks tanda tambah (\$1) dan kode negara. Misalnya, nomor telepon AS dalam format E.164 muncul sebagai \$11. XXX5550100

### Mengirim pesan (konsol)
<a name="sms_publish_console"></a>

1. Masuk ke [Konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol, pilih [wilayah yang mendukung pesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Di panel navigasi, pilih **Text messaging (SMS)** (Pesan teks).

1. Di halaman **Mobile text messaging (SMS)** (Pesan teks seluler (SMS)), pilih **Publish text message** (Publikasikan pesan teks).

1. Di halaman **Publish text message** (Publikasikan pesan SMS), untuk **Message type** (Jenis pesan), pilih salah satu jenis berikut:
   + **Promotional** (Promosi) – Pesan tidak penting, seperti pesan pemasaran.
   + **Transactional** (Transaksional) – Pesan penting yang mendukung transaksi pelanggan, seperti kode sandi satu kali (OTP) untuk autentikasi multi-faktor.
**catatan**  
Pengaturan tingkat pesan ini menimpa jenis pesan default tingkat akun Anda. Anda dapat menetapkan jenis pesan default tingkat akun dari bagian **Text messaging preferences** (Preferensi olahpesan teks) dari halaman **Mobile text messaging (SMS)** (Olahpesan teks seluler (SMS)).

   Untuk informasi harga untuk pesan promosi dan transaksional, lihat [Harga SMS Global](https://aws.amazon.com/sns/sms-pricing/).

1. Untuk **Destination phone number** (Nomor telepon tujuan), masukkan nomor telepon yang ingin Anda kirimi pesan tersebut.

1. Untuk **Message** (Pesan), masukkan pesan yang akan dikirim.

1. (Opsional) Di bawah **Origination identities** (Identitas asal), tentukan cara mengenalkan diri Anda ke penerima:
   + Untuk menentukan **Sender ID** ID Pengirim, ketik ID kustom yang terdiri dari 3-11 karakter alfanumerik, termasuk setidaknya satu huruf dan tanpa spasi. ID pengirim ditampilkan sebagai pengirim pesan di perangkat penerima. Misalnya, Anda dapat menggunakan merek bisnis Anda untuk membuat sumber pesan lebih mudah dikenali.

     Support untuk pengirim IDs bervariasi menurut and/or wilayah negara. Misalnya, pesan yang dikirim ke nomor telepon US tidak akan menampilkan ID pengirim. Untuk negara dan wilayah yang mendukung pengirim IDs, lihat [Negara dan wilayah yang didukung untuk pesan SMS AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.

     Jika Anda tidak menentukan ID pengirim, salah satu dari berikut ini akan ditampilkan sebagai identitas asal:
     + Di negara-negara yang mendukung kode panjang, kode panjang akan ditampilkan.
     + Di negara-negara di mana hanya pengirim IDs yang didukung, *PEMBERITAHUAN* ditampilkan.

     ID pengirim tingkat pesan ini menimpa ID pengirim default Anda, yang Anda tetapkan di halaman **Text messaging preferences** (Preferensi olahpesan teks).
   + Untuk menentukan **Nomor asal**, masukkan string yang terdiri dari 5-14 nomor untuk ditampilkan sebagai nomor telepon pengirim di perangkat penerima. String ini harus cocok dengan nomor originasi yang dikonfigurasi di negara Akun AWS tujuan Anda. Nomor originasi dapat berupa nomor 10DLC, nomor bebas pulsa, kode person-to-person panjang, atau kode pendek. Untuk informasi selengkapnya, lihat [Identitas originasi untuk pesan SMS Amazon SNS](channels-sms-originating-identities.md).

     Jika Anda tidak menentukan nomor asal, Amazon SNS memilih nomor asal yang akan digunakan untuk pesan teks SMS, berdasarkan konfigurasi Akun AWS Anda.

1. Jika Anda mengirim pesan SMS ke penerima di India, perluas **Country-specific attributes** (Atribut khusus negara), dan tentukan atribut berikut:
   + **Entity ID** (ID entitas) – ID entitas atau ID entitas utama (principal entity/PE) untuk mengirim pesan SMS ke penerima di India. ID ini adalah string unik dari 1—50 karakter yang disediakan oleh Telecom Regulatory Authority of India (TRAI) untuk mengidentifikasi entitas yang Anda daftarkan di TRAI.
   + **Template ID** (ID templat) – ID templat untuk mengirim pesan SMS ke penerima di India. ID ini adalah string unik yang disediakan TRAI dari 1-50 karakter yang mengidentifikasi template yang Anda daftarkan dengan TRAI. ID templat harus dikaitkan dengan ID pengirim yang Anda tentukan untuk pesan.

   Untuk informasi lebih lanjut tentang pengiriman pesan SMS ke penerima di [India, proses pendaftaran ID pengirim India](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-sms-senderid-india.html) di *AWS Olah Pesan Pengguna Akhir SMS Panduan Pengguna*.

1. Pilih **Publish message** (Publikasikan Pesan).

**Tip**  
Untuk mengirim pesan SMS dari nomor asal, Anda juga dapat memilih **Origination numbers** (Nomor asal) di panel navigasi konsol Amazon SNS. Pilih nomor asal yang mencakup **SMS** di kolom **Capabilities** (Kemampuan), dan kemudian pilih **Publish text message** (Publikasikan pesan teks).

### Mengirim pesan (AWS SDKs)
<a name="sms_publish_sdk"></a>

Untuk mengirim pesan SMS menggunakan salah satu AWS SDKs, gunakan operasi API di SDK yang sesuai dengan `Publish` permintaan di Amazon SNS API. Dengan permintaan ini, Anda dapat mengirim pesan SMS langsung ke nomor telepon. Anda juga dapat menggunakan parameter `MessageAttributes` untuk menetapkan nilai untuk nama atribut berikut:

**`AWS.SNS.SMS.SenderID`**  
ID kustom yang berisi 3-11 karakter alfanumerik atau karakter tanda hubung (-), termasuk setidaknya satu huruf dan tidak ada spasi. ID pengirim ditampilkan sebagai pengirim pesan di perangkat penerima. Misalnya, Anda dapat menggunakan merek bisnis Anda untuk membuat sumber pesan lebih mudah dikenali.  
Support untuk pengirim IDs bervariasi menurut negara atau wilayah. Misalnya, pesan yang dikirim ke nomor telepon US tidak akan menampilkan ID pengirim. Untuk daftar negara atau wilayah yang mendukung pengirim IDs, lihat [Negara dan wilayah yang didukung untuk pesan SMS AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.  
Jika Anda tidak menentukan ID pengirim, [kode panjang](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-long-code.html)akan ditampilkan sebagai ID pengirim di negara atau wilayah yang didukung. Untuk negara atau wilayah yang memerlukan ID pengirim abjad,*PEMBERITAHUAN* muncul sebagai ID pengirim.  
Atribut tingkat pesan ini menimpa atribut tingkat akun `DefaultSenderID`, yang dapat Anda atur menggunakan permintaan `SetSMSAttributes`.

**`AWS.MM.SMS.OriginationNumber`**  
Sebuah string kustom yang terdiri dari 5–14 angka, yang dapat mencakup awalan tanda tambah (`+`) opsional. String angka ini muncul sebagai nomor telepon pengirim di perangkat penerima. String harus cocok dengan nomor originasi yang dikonfigurasi di AWS akun Anda untuk negara tujuan. Nomor originasi dapat berupa nomor 10DLC, nomor bebas pulsa, kode panjang person-to-person (P2P), atau kode pendek. Untuk informasi selengkapnya, lihat [Nomor telepon](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.  
Jika Anda tidak menentukan nomor originasi, Amazon SNS memilih nomor originasi berdasarkan konfigurasi akun Anda. AWS 

**`AWS.SNS.SMS.MaxPrice`**  
Harga maksimum dalam USD yang akan Anda gunakan untuk mengirim pesan SMS. Jika Amazon SNS menentukan bahwa mengirim pesan akan dikenakan biaya yang melebihi harga maksimum Anda, ia tidak akan mengirim pesan.  
Atribut ini tidak berpengaruh jika biaya month-to-date SMS Anda telah melebihi kuota yang ditetapkan untuk atribut tersebut`MonthlySpendLimit`. Anda dapat mengatur atribut `MonthlySpendLimit` menggunakan permintaan `SetSMSAttributes`.  
Jika Anda mengirim pesan ke topik Amazon SNS, harga maksimum berlaku untuk setiap pengiriman pesan ke setiap nomor telepon yang berlangganan topik.

**`AWS.SNS.SMS.SMSType`**  
Jenis pesan yang Anda kirim:  
+ **`Promotional`** (default) – Pesan tidak penting, seperti pesan pemasaran.
+ **`Transactional`** (Transaksional) – Pesan penting yang mendukung transaksi pelanggan, seperti kode sandi satu kali (OTP) untuk autentikasi multi-faktor.
Atribut tingkat pesan ini menimpa atribut tingkat akun `DefaultSMSType`, yang dapat Anda atur menggunakan permintaan `SetSMSAttributes`.

**`AWS.MM.SMS.EntityId`**  
Atribut ini hanya diperlukan untuk mengirim pesan SMS ke penerima di India.  
Ini merupakan ID entitas atau ID entitas utama (principal entity/PE) Anda untuk mengirim pesan SMS ke penerima di India. ID ini adalah string unik dari 1—50 karakter yang disediakan oleh Telecom Regulatory Authority of India (TRAI) untuk mengidentifikasi entitas yang Anda daftarkan di TRAI.

**`AWS.MM.SMS.TemplateId`**  
Atribut ini hanya diperlukan untuk mengirim pesan SMS ke penerima di India.  
Ini adalah templat Anda untuk mengirim pesan SMS ke penerima di India. ID ini adalah string unik yang disediakan TRAI dari 1-50 karakter yang mengidentifikasi template yang Anda daftarkan dengan TRAI. ID templat harus dikaitkan dengan ID pengirim yang Anda tentukan untuk pesan.

#### Mengirim pesan
<a name="sms_publish_sdks"></a>

Contoh kode berikut menunjukkan cara mempublikasikan pesan SMS menggunakan Amazon SNS.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples). 

```
namespace SNSMessageExample
{
    using System;
    using System.Threading.Tasks;
    using Amazon;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    public class SNSMessage
    {
        private AmazonSimpleNotificationServiceClient snsClient;

        /// <summary>
        /// Initializes a new instance of the <see cref="SNSMessage"/> class.
        /// Constructs a new SNSMessage object initializing the Amazon Simple
        /// Notification Service (Amazon SNS) client using the supplied
        /// Region endpoint.
        /// </summary>
        /// <param name="regionEndpoint">The Amazon Region endpoint to use in
        /// sending test messages with this object.</param>
        public SNSMessage(RegionEndpoint regionEndpoint)
        {
            snsClient = new AmazonSimpleNotificationServiceClient(regionEndpoint);
        }

        /// <summary>
        /// Sends the SMS message passed in the text parameter to the phone number
        /// in phoneNum.
        /// </summary>
        /// <param name="phoneNum">The ten-digit phone number to which the text
        /// message will be sent.</param>
        /// <param name="text">The text of the message to send.</param>
        /// <returns>Async task.</returns>
        public async Task SendTextMessageAsync(string phoneNum, string text)
        {
            if (string.IsNullOrEmpty(phoneNum) || string.IsNullOrEmpty(text))
            {
                return;
            }

            // Now actually send the message.
            var request = new PublishRequest
            {
                Message = text,
                PhoneNumber = phoneNum,
            };

            try
            {
                var response = await snsClient.PublishAsync(request);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error sending message: {ex}");
            }
        }
    }
}
```
+  Untuk detail API, lihat [Publikasikan](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Publish) di *Referensi AWS SDK untuk .NET API*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
/**
 * Publish SMS: use Amazon Simple Notification Service (Amazon SNS) to send an SMS text message to a phone number.
 * Note: This requires additional AWS configuration prior to running example. 
 * 
 *  NOTE: When you start using Amazon SNS to send SMS messages, your AWS account is in the SMS sandbox and you can only
 *  use verified destination phone numbers. See https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html.
 *  NOTE: If destination is in the US, you also have an additional restriction that you have use a dedicated
 *  origination ID (phone number). You can request an origination number using Amazon Pinpoint for a fee.
 *  See https://aws.amazon.com/blogs/compute/provisioning-and-using-10dlc-origination-numbers-with-amazon-sns/ 
 *  for more information. 
 * 
 *  <phone_number_value> input parameter uses E.164 format. 
 *  For example, in United States, this input value should be of the form: +12223334444
 */

//! Send an SMS text message to a phone number.
/*!
  \param message: The message to publish.
  \param phoneNumber: The phone number of the recipient in E.164 format.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::publishSms(const Aws::String &message,
                             const Aws::String &phoneNumber,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::PublishRequest request;
    request.SetMessage(message);
    request.SetPhoneNumber(phoneNumber);

    const Aws::SNS::Model::PublishOutcome outcome = snsClient.Publish(request);

    if (outcome.IsSuccess()) {
        std::cout << "Message published successfully with message id, '"
                  << outcome.GetResult().GetMessageId() << "'."
                  << std::endl;
    }
    else {
        std::cerr << "Error while publishing message "
                  << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [Publikasikan](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Publish) di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class PublishTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <message> <phoneNumber>

                Where:
                   message - The message text to send.
                   phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String message = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        pubTextSMS(snsClient, message, phoneNumber);
        snsClient.close();
    }

    public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) {
        try {
            PublishRequest request = PublishRequest.builder()
                    .message(message)
                    .phoneNumber(phoneNumber)
                    .build();

            PublishResponse result = snsClient.publish(request);
            System.out
                    .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [Publikasikan](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Publish) di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ Kotlin ]

**SDK untuk Kotlin**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun pubTextSMS(
    messageVal: String?,
    phoneNumberVal: String?,
) {
    val request =
        PublishRequest {
            message = messageVal
            phoneNumber = phoneNumberVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.publish(request)
        println("${result.messageId} message sent.")
    }
}
```
+  Untuk detail API, lihat [Menerbitkan](https://sdk.amazonaws.com/kotlin/api/latest/index.html) di *AWS SDK untuk referensi API Kotlin*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Sends a text message (SMS message) directly to a phone number using Amazon SNS.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';

try {
    $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#publish-to-a-text-message-sms-message). 
+  Untuk detail API, lihat [Publikasikan](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Publish) di *Referensi AWS SDK untuk PHP API*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    def publish_text_message(self, phone_number, message):
        """
        Publishes a text message directly to a phone number without need for a
        subscription.

        :param phone_number: The phone number that receives the message. This must be
                             in E.164 format. For example, a United States phone
                             number might be +12065550101.
        :param message: The message to send.
        :return: The ID of the message.
        """
        try:
            response = self.sns_resource.meta.client.publish(
                PhoneNumber=phone_number, Message=message
            )
            message_id = response["MessageId"]
            logger.info("Published message to %s.", phone_number)
        except ClientError:
            logger.exception("Couldn't publish message to %s.", phone_number)
            raise
        else:
            return message_id
```
+  Untuk detail API, lihat [Menerbitkan](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Publish) di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    " iv_phone_number = '+12065550101' - Phone number in E.164 format
    TRY.
        oo_result = lo_sns->publish(              " oo_result is returned for testing purposes. "
          iv_phonenumber = iv_phone_number
          iv_message = iv_message ).
        MESSAGE 'Message published to phone number.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Phone number does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Untuk detail API, lihat [Publikasikan](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) di *AWS SDK untuk referensi API SAP ABAP*. 

------

# Mengatur preferensi pesan SMS di Amazon SNS
<a name="sms_preferences"></a>

Gunakan Amazon SNS untuk menentukan preferensi untuk olahpesan SMS. Misalnya, Anda dapat menentukan jika akan mengoptimalkan pengiriman untuk biaya atau keandalan, batas pengeluaran bulanan Anda, bagaimana pengiriman dicatat, dan jika akan berlangganan laporan penggunaan SMS harian atau tidak.

Preferensi ini berlaku untuk setiap pesan SMS yang Anda kirim dari akun Anda, namun Anda dapat mengganti sebagian pesan tersebut saat mengirim pesan individual. Untuk informasi selengkapnya, lihat [Menerbitkan pesan SMS ke ponsel menggunakan Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

## Mengatur preferensi pesan SMS menggunakan Konsol Manajemen AWS
<a name="sms_preferences_console"></a>

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Pilih [wilayah yang mendukung olahpesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Pada panel navigasi, pilih **Seluler** dan kemudian **Pesan teks (SMS)**.

1. Di halaman **Mobile text messaging (SMS)** (Olahpesan teks seluler (SMS)), di bagian **Text messaging preferences**(Preferensi pesan teks), pilih **Edit**.

1. Di halaman **Edit text messaging preferences** (Edit preferensi olahpesan teks), di bagian **Details**, lakukan hal berikut:

   1. Untuk **Default message type** (Jenis pesan bawaan), pilih salah satu jenis berikut:
      + **Promosi** — Pesan non-kritis (misalnya, pemasaran). Amazon SNS mengoptimalkan pengiriman pesan agar dikenakan biaya terendah.
      + **Transaksional** (default) — Pesan penting yang mendukung transaksi pelanggan, seperti kode sandi satu kali untuk otentikasi multi-faktor. Amazon SNS mengoptimalkan pengiriman pesan agar mencapai keandalan tertinggi.

      Untuk informasi harga untuk pesan promosi dan transaksional, lihat [Harga SMS Global](https://aws.amazon.com/sns/sms-pricing/).

   1. (Opsional) Untuk **Account spend limit** (Batas pengeluaran akun), masukkan jumlah (dalam USD) yang ingin Anda gunakan untuk pengeluaran pesan SMS setiap bulannya.
**penting**  
Secara default, kuota pengeluaran diatur sebesar 1,00 USD. Jika Anda ingin meningkatkan kuota layanan, [kirimkan permintaan](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sns).
Jika jumlah yang ditetapkan di konsol tersebut melebihi kuota layanan Anda, Amazon SNS berhenti mengirimkan pesan SMS.
Karena Amazon SNS adalah sistem terdistribusi, ia berhenti mengirimkan pesan SMS dalam beberapa menit sejak kuota pengeluaran terlampaui. Selama interval ini, jika Anda terus mengirim pesan SMS, Anda mungkin akan dikenakan biaya yang melebihi kuota Anda.

1. (Opsional) Untuk **Default sender ID** (ID pengirim default), masukkan ID kustom, seperti merek bisnis Anda, yang ditampilkan sebagai pengirim di perangkat penerima.
**catatan**  
Support untuk pengirim IDs bervariasi menurut negara.

1. (Opsional) Masukkan nama **Nama bucket Amazon S3 untuk laporan penggunaan**.
**catatan**  
Kebijakan bucket Amazon S3 harus memberikan akses tulis ke Amazon SNS.

1. Pilih **Simpan perubahan**.

## Pengaturan preferensi (AWS SDKs)
<a name="sms_preferences_sdk"></a>

Untuk mengatur preferensi SMS Anda menggunakan salah satu AWS SDKs, gunakan tindakan dalam SDK yang sesuai dengan `SetSMSAttributes` permintaan di Amazon SNS API. Dengan permintaan ini, Anda menetapkan nilai ke atribut SMS yang berbeda, seperti kuota pengeluaran bulanan dan jenis SMS default Anda (promosi atau transaksional). Untuk semua atribut SMS, lihat [Mengatur SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) *Referensi API Layanan Pemberitahuan Sederhana Amazon*.

Contoh kode berikut menunjukkan cara menggunakan`SetSMSAttributes`.

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 
Cara menggunakan Amazon SNS untuk mengatur atribut DefaultSMSType .  

```
//! Set the default settings for sending SMS messages.
/*!
  \param smsType: The type of SMS message that you will send by default.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::setSMSType(const Aws::String &smsType,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SetSMSAttributesRequest request;
    request.AddAttributes("DefaultSMSType", smsType);

    const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes(
            request);

    if (outcome.IsSuccess()) {
        std::cout << "SMS Type set successfully " << std::endl;
    }
    else {
        std::cerr << "Error while setting SMS Type: '"
                  << outcome.GetError().GetMessage()
                  << "'" << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/SetSMSAttributes) di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk mengatur atribut pesan SMS**  
`set-sms-attributes`Contoh berikut menetapkan ID pengirim default untuk pesan SMS ke`MyName`.  

```
aws sns set-sms-attributes \
    --attributes DefaultSenderID=MyName
```
Perintah ini tidak menghasilkan output.  
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html) di *Referensi AWS CLI Perintah*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/SetSMSAttributes) di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Buat klien dalam modul terpisah dan ekspor klien tersebut.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Mengimpor modul SDK dan klien dan memanggil API.  

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-setattributes). 
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SetSMSAttributesCommand) di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#set-sms-attributes). 
+  Untuk detail API, lihat [Menyetel SMSAttributes](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/SetSMSAttributes) di *Referensi AWS SDK untuk PHP API*. 

------

## Menyetel preferensi pesan SMS untuk pengiriman khusus negara
<a name="sms_preferences_country_specific"></a>

Anda dapat mengelola dan mengontrol lalu lintas SMS Anda dengan mengirim pesan hanya ke negara tujuan tertentu. Ini memastikan bahwa pesan Anda dikirim hanya ke negara yang disetujui, menghindari biaya SMS yang tidak diinginkan. Petunjuk berikut menggunakan konfigurasi Protect Amazon Pinpoint untuk menentukan negara yang ingin Anda izinkan atau blokir.

1. Buka AWS SMS konsol di [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Di panel navigasi, di bawah **Ikhtisar**, di bagian **Mulai cepat**, pilih **Buat konfigurasi proteksi**.

1. Di bawah **Lindungi detail konfigurasi**, masukkan **nama yang ramah bisnis** untuk konfigurasi proteksi Anda (misalnya, Allow-Only-AU).

1. Di bawah **aturan negara SMS**, pilih kotak centang **Wilayah/Negara** untuk memblokir pengiriman pesan ke semua negara yang didukung.

1. Hapus centang kotak untuk negara tempat Anda ingin mengirim pesan. **Misalnya, untuk mengizinkan pesan hanya ke Australia, batalkan centang kotak untuk Australia.**

1. Di bagian **Lindungi asosiasi konfigurasi**, di bawah **Jenis asosiasi**, pilih **Akun default**. Ini akan memastikan bahwa konfigurasi AWS Olah Pesan Pengguna Akhir SMS Protect memengaruhi semua pesan yang dikirim melalui Amazon SNS, Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html), dan panggilan Amazon Pinpoint API. [https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html](https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html)

1. Pilih **Buat konfigurasi proteksi** untuk menyimpan pengaturan Anda.

   Pesan konfirmasi berikut ditampilkan:

   ```
   Success Protect configuration protect-abc0123456789 has been created.
   ```

1. Masuk ke [Konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. [**Publikasikan pesan**](sns-publishing.md) ke salah satu negara yang diblokir, seperti India.

   Pesan tidak akan terkirim. Anda dapat memverifikasi ini di log kegagalan pengiriman menggunakan [CloudWatch](sms_stats_cloudwatch.md). Cari grup log **sns/region/AccountID/DirectPublishToPhoneNumber/Failure**untuk respons yang mirip dengan contoh berikut:

   ```
   {
   "notification": {
   "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217",
   "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“
   },
   "delivery": {
   "destination": "+91XXXXXXXXXX",
   "smsType": "Transactional",
   "providerResponse": "Cannot deliver message to the specified destination country",
   "dwellTimeMs": 85
   },
   "status": "FAILURE"
   }
   ```

# Mengelola nomor telepon dan langganan Amazon SNS
<a name="sms_manage"></a>

Amazon SNS menyediakan beberapa pilihan untuk mengelola siapa yang menerima pesan SMS dari akun Anda. Dengan frekuensi terbatas, Anda dapat memilih nomor telepon yang telah memilih untuk tidak menerima pesan SMS dari akun Anda. Untuk berhenti mengirim pesan ke langganan SMS, Anda dapat menghapus langganan atau topik yang menerbitkan ke mereka.

## Memilih untuk tidak menerima pesan SMS
<a name="sms_manage_optout"></a>

Jika diwajibkan oleh undang-undang dan peraturan setempat (seperti AS dan Kanada), penerima SMS dapat menggunakan perangkat mereka untuk memilih keluar dengan membalas pesan dengan salah satu dari berikut ini: 
+ ARRET (Perancis)
+ CANCEL (BATALKAN)
+ END (AKHIRI)
+ OPT-OUT (memilih tidak menerima SMS)
+ OPTOUT (memilih tidak menerima SMS)
+ QUIT (BERHENTI)
+ REMOVE (HAPUS)
+ STOP (BERHENTI)
+ TD
+ UNSUBSCRIBE (BERHENTI BERLANGGANAN)

Untuk memilih keluar, penerima harus membalas [nomor originasi](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) yang sama dengan yang digunakan Amazon SNS untuk menyampaikan pesan. Setelah memilih keluar, penerima tidak akan lagi menerima pesan SMS yang dikirimkan dari Anda Akun AWS kecuali Anda memilih nomor telepon.

Jika nomor telepon berlangganan topik Amazon SNS, memilih keluar tidak menghapus langganan, tetapi pesan SMS akan gagal dikirimkan ke langganan tersebut kecuali Anda memilih nomor telepon.

## Mengelola nomor telepon dan langganan menggunakan konsol Amazon SNS
<a name="sms_manage_console"></a>

Anda dapat menggunakan konsol Amazon SNS untuk mengontrol nomor telepon mana yang menerima pesan SMS dari akun Anda.

### Memilih nomor telepon yang telah memilih keluar dari konsol Amazon SNS
<a name="sms_manage_optout_console"></a>

Anda dapat melihat nomor telepon mana yang telah dipilih untuk tidak menerima pesan SMS dari akun Anda, dan Anda dapat memilih nomor telepon ini untuk melanjutkan pengiriman pesan kepada mereka.

Anda dapat memilih nomor telepon hanya sekali setiap 30 hari.

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol tersebut, atur pemilih wilayah ke [wilayah yang mendukung olahpesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Di panel navigasi, pilih **Text messaging (SMS)** (Olahpesan teks (SMS)).

1. Pada halaman **Pesan teks seluler (SMS)**, di bagian **Nomor telepon yang dipilih keluar, nomor telepon** yang dipilih akan ditampilkan.

1. Pilih kotak centang untuk nomor telepon yang ingin Anda pilih, dan pilih **Opt in**. Nomor telepon tidak lagi memilih keluar dan akan menerima pesan SMS yang Anda kirim ke sana.

#### Menghapus langganan SMS konsol Amazon SNS
<a name="sms_manage_subscriptions_console"></a>

Menghapus langganan SMS untuk berhenti mengirim pesan SMS ke nomor telepon tersebut saat Anda menerbitkan ke topik Anda.

1. Di panel navigasi, pilih **Subscriptions** (Langganan).

1. Pilih kotak centang untuk langganan yang ingin Anda hapus. Lalu pilih **Actions** (Tindakan), dan pilih **Delete Subscriptions** (Hapus Langganan).

1. Di jendela **Delete** (Hapus), pilih **Delete** (Hapus). Amazon SNS menghapus langganan dan menampilkan pesan sukses.

#### Menghapus topik konsol Amazon SNS
<a name="sms_manage_topic_console"></a>

Menghapus topik ketika Anda tidak ingin lagi menerbitkan pesan ke titik akhir berlangganan.

1. Di panel navigasi, pilih **Topics** (Topik).

1. Pilih kotak centang untuk topik yang ingin Anda hapus. Lalu pilih **Actions** (Tindakan), dan pilih **Delete Topics** (Hapus Topik).

1. Di jendela **Delete** (Hapus), pilih **Delete** (Hapus). Amazon SNS menghapus topik dan menampilkan pesan sukses.

### Mengelola nomor telepon dan langganan menggunakan SDK AWS
<a name="sms_manage_sdk"></a>

Anda dapat menggunakan AWS SDKs untuk membuat permintaan terprogram ke Amazon SNS dan mengelola nomor telepon mana yang dapat menerima pesan SMS dari akun Anda.

Untuk menggunakan AWS SDK, Anda harus mengonfigurasinya dengan kredensi Anda. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial bersama](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) di Panduan Referensi Alat *AWS SDKs dan Alat*.

#### Melihat semua nomor telepon yang dipilih menggunakan SDK AWS
<a name="sms_view_optout_sdk"></a>

Untuk melihat semua nomor telepon yang dipilih, kirimkan `ListPhoneNumbersOptedOut` permintaan dengan Amazon SNS API.

Contoh kode berikut menunjukkan cara menggunakan`ListPhoneNumbersOptedOut`.

------
#### [ CLI ]

**AWS CLI**  
**Untuk membuat daftar opt-out pesan SMS**  
`list-phone-numbers-opted-out`Contoh berikut mencantumkan nomor telepon yang dipilih untuk tidak menerima pesan SMS.  

```
aws sns list-phone-numbers-opted-out
```
Output:  

```
{
    "phoneNumbers": [
        "+15555550100"
    ]
}
```
+  Untuk detail API, lihat [ListPhoneNumbersOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/list-phone-numbers-opted-out.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.ListPhoneNumbersOptedOutRequest;
import software.amazon.awssdk.services.sns.model.ListPhoneNumbersOptedOutResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class ListOptOut {
    public static void main(String[] args) {
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        listOpts(snsClient);
        snsClient.close();
    }

    public static void listOpts(SnsClient snsClient) {
        try {
            ListPhoneNumbersOptedOutRequest request = ListPhoneNumbersOptedOutRequest.builder().build();
            ListPhoneNumbersOptedOutResponse result = snsClient.listPhoneNumbersOptedOut(request);
            System.out.println("Status is " + result.sdkHttpResponse().statusCode() + "\n\nPhone Numbers: \n\n"
                    + result.phoneNumbers());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/ListPhoneNumbersOptedOut)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Returns a list of phone numbers that are opted out of receiving SMS messages from your AWS SNS account.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

try {
    $result = $SnSclient->listPhoneNumbersOptedOut();
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#list-opted-out-phone-numbers). 
+  Untuk detail API, lihat [ListPhoneNumbersOptedOut](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/ListPhoneNumbersOptedOut)di *Referensi AWS SDK untuk PHP API*. 

------

#### Memeriksa apakah nomor telepon dipilih keluar menggunakan SDK AWS
<a name="sms_check_optout_sdk"></a>

Untuk memeriksa apakah nomor telepon dipilih keluar, kirimkan `CheckIfPhoneNumberIsOptedOut` permintaan dengan Amazon SNS API.

Contoh kode berikut menunjukkan cara menggunakan`CheckIfPhoneNumberIsOptedOut`.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples). 

```
    using System;
    using System.Threading.Tasks;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    /// <summary>
    /// This example shows how to use the Amazon Simple Notification Service
    /// (Amazon SNS) to check whether a phone number has been opted out.
    /// </summary>
    public class IsPhoneNumOptedOut
    {
        public static async Task Main()
        {
            string phoneNumber = "+15551112222";

            IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient();

            await CheckIfOptedOutAsync(client, phoneNumber);
        }

        /// <summary>
        /// Checks to see if the supplied phone number has been opted out.
        /// </summary>
        /// <param name="client">The initialized Amazon SNS Client object used
        /// to check if the phone number has been opted out.</param>
        /// <param name="phoneNumber">A string representing the phone number
        /// to check.</param>
        public static async Task CheckIfOptedOutAsync(IAmazonSimpleNotificationService client, string phoneNumber)
        {
            var request = new CheckIfPhoneNumberIsOptedOutRequest
            {
                PhoneNumber = phoneNumber,
            };

            try
            {
                var response = await client.CheckIfPhoneNumberIsOptedOutAsync(request);

                if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
                {
                    string optOutStatus = response.IsOptedOut ? "opted out" : "not opted out.";
                    Console.WriteLine($"The phone number: {phoneNumber} is {optOutStatus}");
                }
            }
            catch (AuthorizationErrorException ex)
            {
                Console.WriteLine($"{ex.Message}");
            }
        }
    }
```
+  Untuk detail API, lihat [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)di *Referensi AWS SDK untuk .NET API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk memeriksa pesan SMS opt-out untuk nomor telepon**  
`check-if-phone-number-is-opted-out`Contoh berikut memeriksa apakah nomor telepon yang ditentukan dipilih untuk tidak menerima pesan SMS dari AWS akun saat ini.  

```
aws sns check-if-phone-number-is-opted-out \
    --phone-number +1555550100
```
Output:  

```
{
    "isOptedOut": false
}
```
+  Untuk detail API, lihat [CheckIfPhoneNumberIsOptedOut](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/check-if-phone-number-is-opted-out.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CheckIfPhoneNumberIsOptedOutRequest;
import software.amazon.awssdk.services.sns.model.CheckIfPhoneNumberIsOptedOutResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CheckOptOut {
    public static void main(String[] args) {

        final String usage = """

                Usage:    <phoneNumber>

                Where:
                   phoneNumber - The mobile phone number to look up (for example, +1XXX5550100).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String phoneNumber = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        checkPhone(snsClient, phoneNumber);
        snsClient.close();
    }

    public static void checkPhone(SnsClient snsClient, String phoneNumber) {
        try {
            CheckIfPhoneNumberIsOptedOutRequest request = CheckIfPhoneNumberIsOptedOutRequest.builder()
                    .phoneNumber(phoneNumber)
                    .build();

            CheckIfPhoneNumberIsOptedOutResponse result = snsClient.checkIfPhoneNumberIsOptedOut(request);
            System.out.println(
                    result.isOptedOut() + "Phone Number " + phoneNumber + " has Opted Out of receiving sns messages." +
                            "\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Buat klien dalam modul terpisah dan ekspor klien tersebut.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Mengimpor modul SDK dan klien dan memanggil API.  

```
import { CheckIfPhoneNumberIsOptedOutCommand } from "@aws-sdk/client-sns";

import { snsClient } from "../libs/snsClient.js";

export const checkIfPhoneNumberIsOptedOut = async (
  phoneNumber = "5555555555",
) => {
  const command = new CheckIfPhoneNumberIsOptedOutCommand({
    phoneNumber,
  });

  const response = await snsClient.send(command);
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '3341c28a-cdc8-5b39-a3ee-9fb0ee125732',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   isOptedOut: false
  // }
  return response;
};
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-checkifphonenumberisoptedout). 
+  Untuk detail API, lihat [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/CheckIfPhoneNumberIsOptedOutCommand)di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Indicates whether the phone number owner has opted out of receiving SMS messages from your AWS SNS account.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$phone = '+1XXX5550100';

try {
    $result = $SnSclient->checkIfPhoneNumberIsOptedOut([
        'phoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#check-if-a-phone-number-has-opted-out). 
+  Untuk detail API, lihat [CheckIfPhoneNumberIsOptedOut](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/CheckIfPhoneNumberIsOptedOut)di *Referensi AWS SDK untuk PHP API*. 

------

#### Memilih nomor telepon yang telah dipilih keluar menggunakan Amazon SNS API
<a name="sms_manage_optin_sdk"></a>

Untuk memilih nomor telepon, kirimkan `OptInPhoneNumber` permintaan dengan Amazon SNS API.

Anda dapat memilih nomor telepon hanya sekali setiap 30 hari.

#### Menghapus langganan SMS menggunakan SDK AWS
<a name="sms_manage_subscriptions_sdk"></a>

Untuk menghapus langganan SMS dari topik Amazon SNS, dapatkan ARN langganan dengan mengirimkan permintaan `ListSubscriptions` dengan API Amazon SNS, lalu teruskan ARN ke permintaan `Unsubscribe`.

Contoh kode berikut menunjukkan cara menggunakan`Unsubscribe`.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/TopicsAndQueues#code-examples). 
Berhenti berlangganan dari topik dengan berlangganan ARN.  

```
    /// <summary>
    /// Unsubscribe from a topic by a subscription ARN.
    /// </summary>
    /// <param name="subscriptionArn">The ARN of the subscription.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> UnsubscribeByArn(string subscriptionArn)
    {
        var unsubscribeResponse = await _amazonSNSClient.UnsubscribeAsync(
            new UnsubscribeRequest()
            {
                SubscriptionArn = subscriptionArn
            });
        return unsubscribeResponse.HttpStatusCode == HttpStatusCode.OK;
    }
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Unsubscribe) di *Referensi AWS SDK untuk .NET API*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
//! Delete a subscription to an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param subscriptionARN: The Amazon Resource Name (ARN) for an Amazon SNS topic subscription.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::unsubscribe(const Aws::String &subscriptionARN,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::UnsubscribeRequest request;
    request.SetSubscriptionArn(subscriptionARN);

    const Aws::SNS::Model::UnsubscribeOutcome outcome = snsClient.Unsubscribe(request);

    if (outcome.IsSuccess()) {
        std::cout << "Unsubscribed successfully " << std::endl;
    }
    else {
        std::cerr << "Error while unsubscribing " << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Unsubscribe) di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk berhenti berlangganan dari suatu topik**  
`unsubscribe`Contoh berikut menghapus langganan yang ditentukan dari suatu topik.  

```
aws sns unsubscribe \
    --subscription-arn arn:aws:sns:us-west-2:0123456789012:my-topic:8a21d249-4329-4871-acc6-7be709c6ea7f
```
Perintah ini tidak menghasilkan output.  
+  Untuk detail API, lihat [Berhenti berlangganan](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/unsubscribe.html) di *Referensi AWS CLI Perintah*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.UnsubscribeRequest;
import software.amazon.awssdk.services.sns.model.UnsubscribeResponse;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class Unsubscribe {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <subscriptionArn>

                Where:
                   subscriptionArn - The ARN of the subscription to delete.
                """;

        if (args.length < 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String subscriptionArn = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        unSub(snsClient, subscriptionArn);
        snsClient.close();
    }

    public static void unSub(SnsClient snsClient, String subscriptionArn) {
        try {
            UnsubscribeRequest request = UnsubscribeRequest.builder()
                    .subscriptionArn(subscriptionArn)
                    .build();

            UnsubscribeResponse result = snsClient.unsubscribe(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode()
                    + "\n\nSubscription was removed for " + request.subscriptionArn());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Unsubscribe) di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Buat klien dalam modul terpisah dan ekspor klien tersebut.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Mengimpor modul SDK dan klien dan memanggil API.  

```
import { UnsubscribeCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} subscriptionArn - The ARN of the subscription to cancel.
 */
const unsubscribe = async (
  subscriptionArn = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
) => {
  const response = await snsClient.send(
    new UnsubscribeCommand({
      SubscriptionArn: subscriptionArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '0178259a-9204-507c-b620-78a7570a44c6',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-unsubscribing). 
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/UnsubscribeCommand) di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ Kotlin ]

**SDK untuk Kotlin**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun unSub(subscriptionArnVal: String) {
    val request =
        UnsubscribeRequest {
            subscriptionArn = subscriptionArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        snsClient.unsubscribe(request)
        println("Subscription was removed for ${request.subscriptionArn}")
    }
}
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://sdk.amazonaws.com/kotlin/api/latest/index.html) di *AWS SDK untuk referensi API Kotlin*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Deletes a subscription to an Amazon SNS topic.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$subscription = 'arn:aws:sns:us-east-1:111122223333:MySubscription';

try {
    $result = $SnSclient->unsubscribe([
        'SubscriptionArn' => $subscription,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-subscribing-unsubscribing-topics.html#unsubscribe-from-a-topic). 
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Unsubscribe) di *Referensi AWS SDK untuk PHP API*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def delete_subscription(subscription):
        """
        Unsubscribes and deletes a subscription.
        """
        try:
            subscription.delete()
            logger.info("Deleted subscription %s.", subscription.arn)
        except ClientError:
            logger.exception("Couldn't delete subscription %s.", subscription.arn)
            raise
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def unsubscribe(self, subscription_arn: str) -> bool:
        """
        Unsubscribe from an SNS topic.

        :param subscription_arn: The ARN of the subscription to remove.
        :return: True if successful.
        :raises ClientError: If the unsubscribe operation fails.
        """
        try:
            self.sns_client.unsubscribe(SubscriptionArn=subscription_arn)
            
            logger.info(f"Unsubscribed: {subscription_arn}")
            return True

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            
            if error_code == 'NotFound':
                logger.warning(f"Subscription not found: {subscription_arn}")
                return True  # Already unsubscribed
            else:
                logger.error(f"Error unsubscribing: {error_code} - {e}")
                raise
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Unsubscribe) di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    TRY.
        lo_sns->unsubscribe( iv_subscriptionarn = iv_subscription_arn ).
        MESSAGE 'Subscription deleted.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Subscription does not exist.' TYPE 'E'.
      CATCH /aws1/cx_snsinvalidparameterex.
        MESSAGE 'Subscription with "PendingConfirmation" status cannot be deleted/unsubscribed. Confirm subscription before performing unsubscribe operation.' TYPE 'E'.
    ENDTRY.
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) di *AWS SDK untuk referensi SAP ABAP* API. 

------
#### [ Swift ]

**SDK para Swift**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples). 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        _ = try await snsClient.unsubscribe(
            input: UnsubscribeInput(
                subscriptionArn: arn
            )
        )

        print("Unsubscribed.")
```
+  Untuk detail API, lihat [Berhenti berlangganan](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/unsubscribe(input:)) di *AWS SDK untuk referensi Swift* API. 

------

#### Menghapus topik menggunakan SDK AWS
<a name="sms_manage_topic_sdk"></a>

Untuk menghapus topik dan semua langganannya, dapatkan ARN topik dengan mengirimkan permintaan `ListTopics` dengan API Amazon SNS, lalu teruskan ARN ke permintaan `DeleteTopic`.

Contoh kode berikut menunjukkan cara menggunakan`DeleteTopic`.

------
#### [ .NET ]

**SDK untuk .NET**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/cross-service/TopicsAndQueues#code-examples). 
Hapus topik berdasarkan topiknya ARN.  

```
    /// <summary>
    /// Delete a topic by its topic ARN.
    /// </summary>
    /// <param name="topicArn">The ARN of the topic.</param>
    /// <returns>True if successful.</returns>
    public async Task<bool> DeleteTopicByArn(string topicArn)
    {
        var deleteResponse = await _amazonSNSClient.DeleteTopicAsync(
            new DeleteTopicRequest()
            {
                TopicArn = topicArn
            });
        return deleteResponse.HttpStatusCode == HttpStatusCode.OK;
    }
```
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/DeleteTopic)di *Referensi AWS SDK untuk .NET API*. 

------
#### [ C\$1\$1 ]

**SDK untuk C\$1\$1**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
//! Delete an Amazon Simple Notification Service (Amazon SNS) topic.
/*!
  \param topicARN: The Amazon Resource Name (ARN) for an Amazon SNS topic.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::deleteTopic(const Aws::String &topicARN,
                              const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::DeleteTopicRequest request;
    request.SetTopicArn(topicARN);

    const Aws::SNS::Model::DeleteTopicOutcome outcome = snsClient.DeleteTopic(request);

    if (outcome.IsSuccess()) {
        std::cout << "Successfully deleted the Amazon SNS topic " << topicARN << std::endl;
    }
    else {
        std::cerr << "Error deleting topic " << topicARN << ":" <<
                  outcome.GetError().GetMessage() << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/DeleteTopic)di *Referensi AWS SDK untuk C\$1\$1 API*. 

------
#### [ CLI ]

**AWS CLI**  
**Untuk menghapus topik SNS**  
`delete-topic`Contoh berikut menghapus topik SNS yang ditentukan.  

```
aws sns delete-topic \
    --topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic"
```
Perintah ini tidak menghasilkan output.  
+  Untuk detail API, lihat [DeleteTopic](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/delete-topic.html)di *Referensi AWS CLI Perintah*. 

------
#### [ Go ]

**SDK untuk Go V2**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2/workflows/topics_and_queues#code-examples). 

```
import (
	"context"
	"encoding/json"
	"log"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/service/sns"
	"github.com/aws/aws-sdk-go-v2/service/sns/types"
)

// SnsActions encapsulates the Amazon Simple Notification Service (Amazon SNS) actions
// used in the examples.
type SnsActions struct {
	SnsClient *sns.Client
}



// DeleteTopic delete an Amazon SNS topic.
func (actor SnsActions) DeleteTopic(ctx context.Context, topicArn string) error {
	_, err := actor.SnsClient.DeleteTopic(ctx, &sns.DeleteTopicInput{
		TopicArn: aws.String(topicArn)})
	if err != nil {
		log.Printf("Couldn't delete topic %v. Here's why: %v\n", topicArn, err)
	}
	return err
}
```
+  Untuk detail API, lihat [DeleteTopic](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/sns#Client.DeleteTopic)di *Referensi AWS SDK untuk Go API*. 

------
#### [ Java ]

**SDK untuk Java 2.x**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.DeleteTopicRequest;
import software.amazon.awssdk.services.sns.model.DeleteTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class DeleteTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:     <topicArn>

                Where:
                   topicArn - The ARN of the topic to delete.
                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        System.out.println("Deleting a topic with name: " + topicArn);
        deleteSNSTopic(snsClient, topicArn);
        snsClient.close();
    }

    public static void deleteSNSTopic(SnsClient snsClient, String topicArn) {
        try {
            DeleteTopicRequest request = DeleteTopicRequest.builder()
                    .topicArn(topicArn)
                    .build();

            DeleteTopicResponse result = snsClient.deleteTopic(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/DeleteTopic)di *Referensi AWS SDK for Java 2.x API*. 

------
#### [ JavaScript ]

**SDK untuk JavaScript (v3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/sns#code-examples). 
Buat klien dalam modul terpisah dan ekspor klien tersebut.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Mengimpor modul SDK dan klien dan memanggil API.  

```
import { DeleteTopicCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string} topicArn - The ARN of the topic to delete.
 */
export const deleteTopic = async (topicArn = "TOPIC_ARN") => {
  const response = await snsClient.send(
    new DeleteTopicCommand({ TopicArn: topicArn }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'a10e2886-5a8f-5114-af36-75bd39498332',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
};
```
+  Untuk informasi selengkapnya, silakan lihat [Panduan Developer AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-managing-topics.html#sns-examples-managing-topics-deletetopic). 
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/DeleteTopicCommand)di *Referensi AWS SDK untuk JavaScript API*. 

------
#### [ Kotlin ]

**SDK untuk Kotlin**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun deleteSNSTopic(topicArnVal: String) {
    val request =
        DeleteTopicRequest {
            topicArn = topicArnVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        snsClient.deleteTopic(request)
        println("$topicArnVal was successfully deleted.")
    }
}
```
+  Untuk detail API, lihat [DeleteTopic](https://sdk.amazonaws.com/kotlin/api/latest/index.html)di *AWS SDK untuk referensi API Kotlin*. 

------
#### [ PHP ]

**SDK untuk PHP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Deletes an SNS topic and all its subscriptions.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic';

try {
    $result = $SnSclient->deleteTopic([
        'TopicArn' => $topic,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/DeleteTopic)di *Referensi AWS SDK untuk PHP API*. 

------
#### [ Python ]

**SDK untuk Python (Boto3)**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    @staticmethod
    def delete_topic(topic):
        """
        Deletes a topic. All subscriptions to the topic are also deleted.
        """
        try:
            topic.delete()
            logger.info("Deleted topic %s.", topic.arn)
        except ClientError:
            logger.exception("Couldn't delete topic %s.", topic.arn)
            raise
```

```
class SnsWrapper:
    """Wrapper class for managing Amazon SNS operations."""

    def __init__(self, sns_client: Any) -> None:
        """
        Initialize the SnsWrapper.

        :param sns_client: A Boto3 Amazon SNS client.
        """
        self.sns_client = sns_client

    @classmethod
    def from_client(cls) -> 'SnsWrapper':
        """
        Create an SnsWrapper instance using a default boto3 client.

        :return: An instance of this class.
        """
        sns_client = boto3.client('sns')
        return cls(sns_client)


    def delete_topic(self, topic_arn: str) -> bool:
        """
        Delete an SNS topic.

        :param topic_arn: The ARN of the topic to delete.
        :return: True if successful.
        :raises ClientError: If the topic deletion fails.
        """
        try:
            self.sns_client.delete_topic(TopicArn=topic_arn)
            
            logger.info(f"Deleted topic: {topic_arn}")
            return True

        except ClientError as e:
            error_code = e.response.get('Error', {}).get('Code', 'Unknown')
            
            if error_code == 'NotFound':
                logger.warning(f"Topic not found: {topic_arn}")
                return True  # Already deleted
            else:
                logger.error(f"Error deleting topic: {error_code} - {e}")
                raise
```
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/DeleteTopic)di *AWS SDK for Python (Boto3) Referensi* API. 

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    TRY.
        lo_sns->deletetopic( iv_topicarn = iv_topic_arn ).
        MESSAGE 'SNS topic deleted.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Topic does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Untuk detail API, lihat [DeleteTopic](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)di *AWS SDK untuk referensi SAP ABAP* API. 

------
#### [ Swift ]

**SDK para Swift**  
 Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara mengatur dan menjalankannya di [Repositori Contoh Kode AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift/example_code/sns#code-examples). 

```
import AWSSNS

        let config = try await SNSClient.SNSClientConfiguration(region: region)
        let snsClient = SNSClient(config: config)

        _ = try await snsClient.deleteTopic(
            input: DeleteTopicInput(topicArn: arn)
        )
```
+  Untuk detail API, lihat referensi [DeleteTopic AWS](https://sdk.amazonaws.com/swift/api/awssns/latest/documentation/awssns/snsclient/deletetopic(input:))*SDK untuk Swift API*. 

------

# Pemantauan aktivitas SMS Amazon SNS
<a name="sms_stats"></a>

Dengan memantau aktivitas SMS Anda, Anda dapat melacak nomor telepon tujuan, pengiriman yang sukses atau gagal, alasan kegagalan, biaya, dan informasi lainnya. Amazon SNS membantu dengan meringkas statistik di konsol, mengirim informasi ke Amazon CloudWatch, dan mengirim laporan penggunaan SMS harian ke bucket Amazon S3 yang Anda tentukan.

# Melihat statistik pengiriman SMS Amazon SNS
<a name="sms_stats_console"></a>

Anda dapat menggunakan konsol Amazon SNS untuk melihat statistik tentang pengiriman SMS terbaru Anda.

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol tersebut, atur pemilih wilayah ke [wilayah yang mendukung olahpesan SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html).

1. Di panel navigasi, pilih **Text messaging (SMS)** (Olahpesan teks (SMS)).

1. Di halaman **Text messaging (SMS)** (Olahpesan teks (SMS)), di bagian **Account stats** (Statistik akun), lihat grafik untuk pengiriman pesan SMS transaksional dan promosi Anda. Setiap grafik menunjukkan data berikut selama 15 hari sebelumnya:
   + Tingkat pengiriman (persentase pengiriman yang berhasil)
   + Terkirim (jumlah upaya pengiriman)
   + Gagal (jumlah kegagalan pengiriman)

Di halaman ini, Anda juga dapat memilih tombol **Usage** (Penggunaan) untuk membuka bucket Amazon S3 tempat Anda menyimpan laporan penggunaan harian Anda. Untuk informasi selengkapnya, lihat [Berlangganan laporan penggunaan SMS harian Amazon SNS](sms_stats_usage.md).

# Pemantauan pengiriman SMS Amazon SNS dengan CloudWatch metrik dan log Amazon
<a name="sms_stats_cloudwatch"></a>

Anda dapat menggunakan Amazon CloudWatch dan Amazon CloudWatch Logs untuk memantau pengiriman pesan SMS Anda.

## Melihat CloudWatch metrik Amazon
<a name="sms_stats_cloudwatch_metrics"></a>

Amazon SNS secara otomatis mengumpulkan metrik tentang pengiriman pesan SMS Anda dan mendorongnya ke Amazon. CloudWatch Anda dapat menggunakan CloudWatch untuk memantau metrik ini dan membuat alarm untuk mengingatkan Anda ketika metrik melewati ambang batas. Misalnya, Anda dapat memantau CloudWatch metrik untuk mempelajari tingkat pengiriman SMS dan biaya month-to-date SMS Anda.

Untuk informasi tentang CloudWatch metrik pemantauan, pengaturan CloudWatch alarm, dan jenis metrik yang tersedia, lihat. [Memantau topik Amazon SNS menggunakan CloudWatch](sns-monitoring-using-cloudwatch.md)

## Melihat CloudWatch Log
<a name="sns-viewing-cloudwatch-logs"></a>

Anda dapat mengumpulkan informasi tentang pengiriman pesan SMS yang berhasil dan tidak berhasil dengan mengaktifkan Amazon SNS untuk menulis ke Amazon Logs. CloudWatch Untuk setiap pesan SMS yang Anda kirim, Amazon SNS menulis log yang mencakup harga pesan, status keberhasilan atau kegagalan, alasan kegagalan (jika pesan gagal), waktu tunggu pesan, dan informasi lainnya.

**Untuk mengaktifkan dan melihat CloudWatch Log untuk pesan SMS Anda**

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Di menu konsol tersebut, atur pemilih wilayah ke [wilayah yang mendukung olahpesan SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Di panel navigasi, pilih **Text messaging (SMS)** (Olahpesan teks (SMS)).

1. Di halaman **Mobile text messaging (SMS)** (Olahpesan teks seluler (SMS)), di bagian **Text messaging preferences**(Preferensi pesan teks), pilih **Edit**.

1. Di halaman berikutnya, perluas bagian **Delivery status logging** (Pencatatan status pengiriman).

1. Untuk **tingkat sampel Sukses**, tentukan persentase pengiriman SMS yang berhasil di mana Amazon SNS akan menulis log CloudWatch di Log. Contoh:
   + Untuk menulis log hanya untuk pengiriman yang gagal, atur nilai ini ke 0.
   + Untuk menulis log untuk 10% dari pengiriman yang berhasil, atur nilai ke 10.

   Jika Anda tidak menentukan persentase, Amazon SNS menulis log untuk semua pengiriman yang berhasil.

1. Untuk memberikan izin yang diperlukan, lakukan salah satu hal berikut:
   + Untuk membuat peran layanan baru, pilih **Create new service role** (Buat peran layanan baru) dan kemudian **Create new roles** (Buat peran baru). Di halaman berikutnya, pilih **Allow** (Izinkan) untuk memberi Amazon SNS akses tulis ke sumber daya akun Anda.
   + Untuk menggunakan peran layanan yang ada, pilih **Use existing service role** (Gunakan peran layanan yang ada) lalu tempelkan nama ARN di kotak **IAM role for successful and failed deliveries** (Peran IAM untuk pengiriman yang berhasil dan gagal).

     Peran layanan yang Anda tentukan harus mengizinkan akses tulis ke sumber daya akun Anda. Untuk informasi selengkapnya tentang membuat peran IAM, lihat [Membuat peran untuk AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) di *Panduan Pengguna IAM*. 

1. Pilih **Simpan perubahan**.

1. Kembali ke halaman **Mobile text messaging (SMS)** (Pesan teks seluler (SMS)), masuk ke bagian **Delivery status logs** (Log status pengiriman) untuk melihat log yang tersedia.
**catatan**  
Tergantung pada operator nomor telepon tujuan, perlu waktu hingga 72 jam agar log pengiriman muncul di konsol Amazon SNS. 

## Contoh log untuk pengiriman SMS yang berhasil
<a name="example-log-successful-sms-delivery"></a>

Log status pengiriman untuk pengiriman SMS yang berhasil akan menyerupai contoh berikut:

```
{
    "notification": {
        "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf",
        "timestamp": "2016-06-28 00:40:34.558"
    },
    "delivery": {
        "phoneCarrier": "My Phone Carrier",
        "mnc": 270,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 310,
        "providerResponse": "Message has been accepted by phone carrier",
        "dwellTimeMs": 599,
        "dwellTimeMsUntilDeviceAck": 1344
    },
    "status": "SUCCESS"
}
```

## Contoh log untuk pengiriman SMS yang gagal
<a name="example-log-failed-sms-delivery"></a>

Log status pengiriman untuk pengiriman SMS yang gagal akan menyerupai contoh berikut:

```
{
    "notification": {
        "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625",
        "timestamp": "2016-06-28 00:40:34.559"
    },
    "delivery": {
        "mnc": 0,
        "numberOfMessageParts": 1,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 0,
        "providerResponse": "Unknown error attempting to reach phone",
        "dwellTimeMs": 1420,
        "dwellTimeMsUntilDeviceAck": 1692
    },
    "status": "FAILURE"
}
```

## Alasan kegagalan pengiriman SMS
<a name="sms_stats_delivery_fail_reasons"></a>

Alasan kegagalan diberikan dengan atribut `providerResponse`. Pesan SMS mungkin gagal dikirim karena alasan-alasan berikut:
+ Diblokir sebagai spam oleh operator telepon
+ Tujuan ada di daftar yang diblokir
+ Nomor telepon tidak valid
+ Isi pesan tidak valid
+ Operator telepon telah memblokir pesan ini
+ Operator telepon saat ini tidak dapat dihubungi/tidak tersedia
+ Telepon telah memblokir SMS
+ Telepon ada dalam daftar yang diblokir
+ Telepon saat ini tidak dapat dihubungi/tidak tersedia
+ Nomor telepon memilih tidak menerima pesan
+ Pengiriman ini akan melebihi harga maksimum
+ Kesalahan tak diketahui yang mencoba menjangkau telepon

# Berlangganan laporan penggunaan SMS harian Amazon SNS
<a name="sms_stats_usage"></a>

Anda dapat memantau pengiriman SMS Anda dengan berlangganan laporan penggunaan harian dari Amazon SNS. Untuk setiap hari saat Anda mengirim setidaknya satu pesan SMS, Amazon SNS mengirimkan laporan penggunaan dalam file CSV ke bucket Amazon S3 tertentu. Dibutuhkan 24 jam agar laporan penggunaan SMS tersedia di bucket Amazon S3. 

## Informasi laporan penggunaan harian
<a name="daily_usage_info"></a>

Laporan penggunaan mencakup informasi berikut untuk setiap pesan SMS yang Anda kirim dari akun Anda.

 Perhatikan bahwa laporan ini tidak menyertakan pesan yang dikirim ke penerima yang telah memilih untuk tidak menerima pesan.
+ Waktu penerbitan untuk pesan (dalam UTC)
+ ID Pesan
+ Nomor telepon tujuan
+ Jenis pesan
+ Status pengiriman
+ Harga pesan (dalam USD)
+ Jumlah bagian (pesan dibagi menjadi beberapa bagian jika terlalu panjang untuk satu pesan)
+ Jumlah total bagian

**catatan**  
Jika Amazon SNS tidak menerima jumlah bagian, kami mengatur nilainya ke nol.

## Berlangganan laporan penggunaan harian
<a name="subscribe-to-daily-usage-reports"></a>

Untuk berlangganan laporan penggunaan harian, Anda harus membuat bucket Amazon S3 dengan izin yang sesuai.

**Cara membuat bucket Amazon S3 untuk laporan penggunaan harian Anda**

1. Dari Akun AWS yang mengirim pesan SMS, masuk ke konsol [Amazon S3](https://console.aws.amazon.com/s3/).

1. Pilih **Create Bucket** (Buat Bucket).

1. Untuk **Bucket Name** (Nama Bucket), sebaiknya masukkan nama yang unik untuk akun dan organisasi Anda. Misalnya, gunakan pola `<my-bucket-prefix>-<account_id>-<org-id>`. 

   Untuk informasi tentang konvensi dan batasan untuk nama bucket, lihat [Aturan untuk Penamaan Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.

1. Pilih **Buat**.

1. Di tabel **All Buckets** (Semua Bucket), pilih nama bucket.

1. Di tab **Permission** (Izin), pilih **Bucket policy** (Kebijakan bucket).

1. Di jendela **Bucket Policy Editor** (Editor Kebijakan Bucket), berikan kebijakan yang mengizinkan perwakilan layanan Amazon SNS untuk menulis ke bucket Anda. Sebagai contoh, lihat [Contoh kebijakan bucket](#example_bucket_policy).

   Jika Anda menggunakan kebijakan contoh, ingatlah untuk mengganti *my-s3-bucket* dengan nama bucket yang Anda pilih di Langkah 3.

1. Pilih **Simpan**.

**Cara berlangganan laporan penggunaan harian**

1. Masuk ke [konsol Amazon SNS](https://console.aws.amazon.com/sns/).

1. Di panel navigasi, pilih **Text messaging (SMS)** (Olahpesan teks (SMS)).

1. Di halaman **Text messaging (SMS)** (Olahpesan teks (SMS)), di bagian **Text messaging preferences** (Preferensi olahpesan teks), pilih **Edit**.  
![\[Bagian preferensi pesan teks di konsol Amazon SNS\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/daily-usage-report1.png)

1. Di halaman **Edit text messaging preferences** (Edit preferensi olahpesan teks), di bagian **Details** (Detail), tentukan **Nama bucket Amazon S3 untuk laporan penggunaan**.  
![\[Bagian detail dari halaman Edit preferensi pesan teks di konsol Amazon SNS\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/daily-usage-report2.png)

1. Pilih **Simpan perubahan**.

### Contoh kebijakan bucket
<a name="example_bucket_policy"></a>

Kebijakan berikut mengizinkan perwakilan layanan Amazon SNS untuk melakukan tindakan `s3:PutObject`, `s3:GetBucketLocation`, dan `s3:ListBucket`.

AWS menyediakan alat untuk semua layanan dengan prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda. Ketika kepala sekolah dalam pernyataan kebijakan bucket Amazon S3 adalah masalah [wakil yang membingungkan](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Untuk membatasi wilayah dan akun tempat bucket dapat menerima laporan penggunaan harian, gunakan `aws:SourceArn` seperti yang ditunjukkan pada contoh di bawah ini. Jika Anda tidak ingin membatasi wilayah mana yang dapat menghasilkan laporan ini, gunakan `aws:SourceAccount` untuk membatasi berdasarkan akun mana yang menghasilkan laporan. Jika Anda tidak tahu ARN sumber daya, gunakan. `aws:SourceAccount`

Gunakan contoh berikut yang menyertakan perlindungan wakil yang membingungkan saat Anda membuat bucket Amazon S3 untuk menerima laporan penggunaan SMS harian dari Amazon SNS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

**catatan**  
Anda dapat menerbitkan laporan penggunaan ke bucket Amazon S3 yang dimiliki oleh Akun AWS yang ditentukan dalam elemen `Condition` di kebijakan Amazon S3. Untuk mempublikasikan laporan penggunaan ke bucket Amazon S3 yang Akun AWS dimiliki orang lain, [lihat Bagaimana cara menyalin objek Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/) dari yang lain? Akun AWS. 

### Contoh laporan penggunaan harian
<a name="example_report"></a>

Setelah Anda berlangganan laporan penggunaan harian, setiap hari, Amazon SNS menempatkan file CSV dengan data penggunaan di lokasi berikut:

```
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
```

Setiap file dapat berisi hingga 50.000 catatan. Jika catatan untuk satu hari melebihi kuota ini, Amazon SNS akan menambahkan beberapa file. Berikut adalah contoh laporan:

```
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1
2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1
```

# Meminta dukungan untuk pesan SMS Amazon SNS
<a name="channels-sms-awssupport"></a>

**penting**  
Panduan Pengembang SMS Amazon SNS telah diperbarui. Amazon SNS telah terintegrasi dengan [AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)pengiriman pesan SMS. Panduan ini berisi informasi terbaru tentang cara membuat, mengonfigurasi, dan mengelola pesan SMS Amazon SNS Anda.

Opsi SMS tertentu dengan Amazon SNS tidak tersedia untuk AWS akun Anda sampai Anda menghubungi. Dukungan Buat kasus di [Pusat AWS Dukungan](https://console.aws.amazon.com/support/home#/) untuk meminta hal-hal berikut:
+ Peningkatan ambang batas biaya pengeluaran SMS bulanan Anda

  Secara default, ambang batas pengeluaran bulanan adalah sebesar \$11,00 (USD). Ambang batas pengeluaran Anda menentukan volume pesan yang dapat Anda kirim dengan Amazon SNS. Anda dapat meminta ambang batas biaya pengeluaran yang memenuhi volume pesan bulanan yang diharapkan untuk kasus penggunaan SMS Anda.
+ Sebuah langkah dari [sandbox SMS](sns-sms-sandbox.md) agar Anda dapat mengirim pesan SMS tanpa batasan. Untuk informasi selengkapnya, lihat [Pindah dari kotak pasir SMS Amazon SNS](sns-sms-sandbox-moving-to-production.md).
+ [Nomor asal](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) khusus
+ [ID pengirim](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id.html) khusus. ID pengirim adalah ID kustom yang ditampilkan sebagai pengirim di perangkat penerima. Misalnya, Anda dapat menggunakan merek bisnis Anda untuk membuat sumber pesan lebih mudah dikenali. Support untuk pengirim IDs bervariasi menurut negara atau wilayah. Untuk informasi selengkapnya, lihat [Negara dan wilayah yang didukung untuk pesan SMS dengan AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.

# Meminta kenaikan kuota belanja SMS Amazon SNS bulanan Anda
<a name="channels-sms-awssupport-spend-threshold"></a>

Amazon SNS menyediakan kuota pengeluaran untuk membantu Anda mengelola biaya maksimum per bulan yang dikeluarkan dengan mengirim SMS menggunakan akun Anda. Kuota pengeluaran membatasi risiko Anda jika terjadi serangan berbahaya, dan mencegah aplikasi hulu Anda mengirim lebih banyak pesan dari yang diharapkan. Anda dapat mengonfigurasi Amazon SNS untuk menghentikan penerbitan pesan SMS ketika menentukan bahwa pengiriman pesan SMS akan dikenakan biaya yang melebihi kuota pengeluaran Anda untuk bulan berjalan. 

Untuk memastikan operasi Anda tidak terpengaruh, kami sarankan untuk meminta kuota pengeluaran yang cukup tinggi untuk mendukung beban kerja produksi Anda. Untuk informasi selengkapnya, lihat [Langkah 1: Buka kasing SMS Amazon SNS](#channels-sms-awssupport-spend-threshold-open). Setelah Anda menerima kuota, Anda dapat mengelola risiko Anda dengan menerapkan kuota penuh, atau nilai yang lebih kecil, seperti yang dijelaskan pada [Langkah 2: Perbarui pengaturan SMS Anda](#channels-sms-awssupport-spend-threshold-settings). Dengan menerapkan nilai yang lebih kecil, Anda dapat mengontrol pengeluaran bulanan Anda dengan opsi untuk meningkatkan jika perlu.

**penting**  
Karena Amazon SNS adalah sistem terdistribusi, ia berhenti mengirim pesan SMS dalam beberapa menit jika kuota pengeluaran terlampaui. Selama periode ini, jika Anda terus mengirim pesan SMS, Anda mungkin akan dikenakan biaya yang melebihi kuota Anda.

Kami menetapkan kuota pengeluaran untuk semua akun baru sebesar \$11,00 (USD) per bulan. Kuota ini dimaksudkan agar Anda dapat mencoba kemampuan pengiriman pesan dari Amazon SNS. Untuk meminta peningkatan kuota belanja SMS untuk akun Anda, buka kasus peningkatan kuota di AWS Support Center.

**Topics**
+ [Langkah 1: Buka kasus SMS Amazon SNS](#channels-sms-awssupport-spend-threshold-open)
+ [Langkah 2: Perbarui pengaturan SMS Anda di konsol Amazon SNS](#channels-sms-awssupport-spend-threshold-settings)

## Langkah 1: Buka kasus SMS Amazon SNS
<a name="channels-sms-awssupport-spend-threshold-open"></a>

Anda dapat meminta kenaikan kuota belanja bulanan Anda dengan membuka kasus peningkatan kuota di AWS Support Center.

**catatan**  
Beberapa bidang pada formulir permintaan ditandai sebagai "opsional." Namun, Dukungan memerlukan semua informasi yang disebutkan dalam langkah-langkah berikut untuk memproses permintaan Anda. Jika Anda tidak memberikan semua informasi yang diperlukan, Anda mungkin mengalami penundaan dalam pemrosesan permintaan Anda.

1. Masuk ke Konsol Manajemen AWS at [https://console.aws.amazon.com/](https://console.aws.amazon.com/).

1. Di menu **Dukungan**, pilih **Pusat Dukungan**.

1. Pada panel **Kasus dukungan Anda**, pilih **Buat kasus**.

1. Pilih **peningkatan batas Mencari layanan?** link, lalu lengkapi yang berikut ini:
   + Untuk **jenis Limit**, pilih **Pesan SNS Teks**.
   + (Opsional) Untuk **Menyediakan tautan ke situs atau aplikasi yang akan mengirim pesan SMS**, memberikan informasi tentang situs web, aplikasi, atau layanan yang akan mengirim pesan SMS.
   + (Opsional) Untuk **jenis pesan apa yang ingin Anda kirim**, pilih jenis pesan yang akan dikirim menggunakan kode panjang Anda:
     + **One Time Password** (Kata Sandi Satu Kali) – Pesan yang menyediakan kata sandi yang digunakan pelanggan Anda untuk melakukan autentikasi dengan situs web atau aplikasi Anda.
     + **Promotional** (Promosi) – Pesan tidak penting yang mempromosikan bisnis atau layanan Anda, seperti penawaran atau pengumuman khusus.
     + **Transactional** (Transaksional) – Pesan informasi penting yang mendukung transaksi pelanggan, seperti konfirmasi pesanan atau pemberitahuan akun. Pesan transaksional tidak boleh berisi konten promosi atau pemasaran.
   + (Opsional) Untuk ** AWS Wilayah mana Anda akan mengirim pesan, pilih** wilayah tempat Anda akan mengirim pesan.
   + (Opsional) Untuk **negara mana Anda berencana untuk mengirim pesan**, masukkan negara atau wilayah tempat Anda ingin membeli kode pendek.
   + (Opsional) Dalam **Bagaimana pelanggan Anda memilih untuk menerima pesan dari Anda**, berikan detail tentang proses keikutsertaan Anda.
   + (Opsional) Di kolom **Harap berikan templat pesan yang Anda rencanakan untuk digunakan untuk mengirim pesan ke pelanggan Anda**, sertakan templat yang akan Anda gunakan.

1. Di bawah **Permintaan**, lengkapi bagian berikut:
   + Untuk **Wilayah**, pilih Wilayah tempat Anda akan mengirim pesan. 
**catatan**  
Wilayah diperlukan di bagian **Permintaan**. Bahkan jika Anda memberikan informasi ini di bagian **Rincian kasus**, Anda juga harus memasukkannya di sini.
   + Untuk **Resource Type** (Jenis Sumber Daya), pilih **General Limits** (Batas Umum).
   + Untuk **Limit**, pilih **Kenaikan Ambang Batas Pengeluaran Akun**.

1. Untuk nilai New limit, masukkan jumlah maksimum (dalam USD) yang dapat Anda belanjakan untuk SMS setiap bulan kalender.

1. Di bawah **deskripsi Kasus**, untuk **deskripsi kasus Penggunaan**, berikan rincian berikut:
   + Situs web atau aplikasi perusahaan atau layanan yang mengirim pesan SMS.
   + Layanan yang disediakan oleh situs web atau aplikasi Anda, dan bagaimana pesan SMS Anda berkontribusi pada layanan itu.
   + Bagaimana pengguna mendaftar untuk secara sukarela menerima pesan SMS Anda di situs web, aplikasi, atau lokasi lain Anda.

   Jika kuota pengeluaran yang Anda minta (nilai yang Anda tentukan untuk **nilai kuota Baru**) melebihi \$110.000 (USD), berikan rincian tambahan berikut untuk setiap negara yang Anda kirimi pesan:
   + Baik Anda menggunakan ID pengirim atau kode pendek. Jika Anda menggunakan ID pengirim, berikan:
     + ID pengirim.
     + Apakah ID pengirim terdaftar dengan operator nirkabel di negara tersebut.
   + Maksimum yang diharapkan transactions-per-second (TPS) untuk pesan Anda.
   + Ukuran pesan rata-rata.
   + Template untuk pesan yang Anda kirim ke negara tersebut.
   + (Opsional) Kebutuhan pengkodean karakter, jika ada.

1. (Opsional) Jika Anda ingin mengirimkan permintaan lebih lanjut, pilih **Tambahkan permintaan lain**. Jika Anda menyertakan beberapa permintaan, berikan informasi yang diperlukan untuk masing-masing permintaan. Untuk informasi yang diperlukan, lihat bagian lain di dalamnya[Meminta dukungan untuk pesan SMS Amazon SNS](channels-sms-awssupport.md).

1. Di bawah **Opsi kontak**, untuk **Bahasa kontak pilihan**, pilih bahasa yang Anda inginkan untuk menerima komunikasi untuk kasus ini.

1. Setelah selesai, spilih **Kirim**.

 Dukungan Tim memberikan tanggapan awal atas permintaan Anda dalam waktu 24 jam.

Untuk mencegah sistem kami digunakan untuk mengirim konten yang tidak diinginkan atau berbahaya, kami mempertimbangkan setiap permintaan dengan hati-hati. Jika bisa, kami akan mengabulkan permintaan Anda dalam waktu 24 jam ini. Namun, jika kami memerlukan informasi tambahan dari Anda, mungkin perlu waktu lebih lama untuk menyelesaikan permintaan Anda.

Jika kasus penggunaan Anda tidak sesuai dengan kebijakan kami, kami mungkin tidak dapat mengabulkan permintaan Anda.

## Langkah 2: Perbarui pengaturan SMS Anda di konsol Amazon SNS
<a name="channels-sms-awssupport-spend-threshold-settings"></a>

Setelah kami memberi tahu Anda bahwa kuota pengeluaran bulanan Anda telah meningkat, Anda harus menyesuaikan kuota pengeluaran untuk akun Anda di konsol Amazon SNS.

**penting**  
Anda harus menyelesaikan langkah-langkah berikut atau batas pengeluaran SMS Anda tidak akan meningkat.

**Cara menyesuaikan kuota pengeluaran Anda di konsol tersebut**

1. Masuk ke [Konsol Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Buka menu navigasi kiri, perluas **Seluler**, lalu pilih **Pesan teks (SMS)**.

1. Di halaman **Mobile text messaging (SMS)** (Olahpesan teks seluler (SMS)), di bagian **Text messaging preferences**(Preferensi pesan teks), pilih **Edit**.

1. Pada halaman **Edit preferensi pesan teks**, di bagian **Detail**, masukkan batas pengeluaran SMS baru Anda di bidang **Batas pengeluaran akun**.
**catatan**  
Anda mungkin akan menerima peringatan bahwa nilai yang dimasukkan lebih besar dari batas pengeluaran default. Anda dapat mengabaikan peringatan ini. 

1. Pilih **Simpan perubahan**.
**catatan**  
Jika Anda mendapatkan kesalahan "Parameter Invalid" (Parameter Tidak Valid), periksa kontak dari Support AWS dan konfirmasikan bahwa Anda memasukkan batas pengeluaran SMS baru yang benar. Jika Anda masih mengalami masalah, buka kasing di AWS Support Center. 

Saat Anda membuat kasus Anda di Dukungan Pusat, pastikan untuk menyertakan semua informasi yang diperlukan untuk jenis permintaan yang Anda kirimkan. Jika tidak, Dukungan harus menghubungi Anda untuk mendapatkan informasi ini sebelum melanjutkan. Dengan mengirimkan kasus yang detail, Anda membantu memastikan bahwa kasus Anda terpenuhi tanpa penundaan. Untuk detail yang diperlukan untuk jenis permintaan SMS tertentu, lihat topik berikut.

 Untuk informasi selengkapnya tentang pengirim IDs, lihat dokumentasi berikut di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*:


| AWS Olah Pesan Pengguna Akhir SMS Topik | Deskripsi | 
| --- | --- | 
|  [Meminta peningkatan kuota pengeluaran](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-spend-threshold.html)  |  Kuota pengeluaran Anda menentukan berapa banyak uang yang dapat Anda keluarkan untuk mengirim pesan SMS AWS Olah Pesan Pengguna Akhir SMS setiap bulannya.  | 
|  [Buka kasus di pusat dukungan untuk ID pengirim](https://docs.aws.amazon.com/sms-voice/latest/userguide/awssupport-sender-id.html)  |  Jika Anda berencana untuk mengirim pesan ke penerima negara di mana pengirim IDs diperlukan, Anda dapat meminta ID pengirim dengan membuat kasus baru di Pusat. Dukungan   | 

# Praktik terbaik untuk pesan SMS Amazon SNS
<a name="channels-sms-best-practices"></a>

**penting**  
Panduan Pengembang SMS Amazon SNS telah diperbarui. Amazon SNS telah terintegrasi dengan [AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/what-is-service.html)pengiriman pesan SMS. Panduan ini berisi informasi terbaru tentang cara membuat, mengonfigurasi, dan mengelola pesan SMS Amazon SNS Anda.

Pengguna ponsel cenderung memiliki toleransi yang sangat rendah untuk pesan SMS yang tidak diminta. Tingkat respons untuk kampanye SMS yang tidak diminta hampir selalu rendah, dan oleh karena itu laba atas investasi Anda juga akan rendah.

Selain itu, operator ponsel terus mengaudit pengirim SMS massal. Mereka mencegah atau memblokir pesan dari nomor yang mereka tentukan untuk mengirim pesan yang tidak diminta. 

Mengirim konten yang tidak diminta juga merupakan pelanggaran [Kebijakan penggunaan AWS yang dapat diterima](https://aws.amazon.com/aup/#No_E-Mail_or_Other_Message_Abuse). Tim Amazon SNS secara rutin mengaudit kampanye SMS, dan mungkin mencegah atau memblokir kemampuan Anda untuk mengirim pesan jika tampaknya Anda mengirim pesan yang tidak diinginkan.

Akhirnya, di banyak negara, wilayah, dan yurisdiksi, ada hukuman berat untuk mengirim pesan SMS yang tidak diminta. Misalnya, di Amerika Serikat, Telephone Consumer Protection Act (TCPA) menyatakan bahwa konsumen berhak atas kerugian sebesar \$1500–\$11.500 (dibayar oleh pengirim) untuk setiap pesan yang tidak diminta yang mereka terima.

Bagian ini menjelaskan beberapa praktik terbaik yang dapat membantu Anda meningkatkan keterlibatan pelanggan dan menghindari hukuman yang mahal. Namun, perhatikan bahwa bagian ini tidak berisi nasihat hukum. Selalu konsultasikan dengan pengacara untuk mendapatkan nasihat hukum.

## Mematuhi hukum, peraturan, dan persyaratan operator
<a name="channels-sms-best-practices-understand-laws"></a>

Anda dapat menghadapi denda dan hukuman yang cukup berat jika Anda melanggar hukum dan peraturan tempat tinggal pelanggan Anda. Untuk alasan ini, sangat penting untuk memahami hukum yang terkait dengan olahpesan SMS di setiap negara atau wilayah tempat Anda berbisnis.

Daftar berikut mencakup tautan ke undang-undang utama yang berlaku untuk komunikasi SMS di pasar utama di seluruh dunia.
+ **Amerika Serikat**: Undang-Undang Perlindungan Konsumen Telepon tahun 1991, juga dikenal sebagai TCPA, berlaku untuk jenis pesan SMS tertentu. Untuk informasi selengkapnya, lihat [aturan dan regulasi](https://www.fcc.gov/document/telephone-consumer-protection-act-1991) di situs Federal Communications Commission.
+ **Britania Raya**: Peraturan Privasi dan Komunikasi Elektronik (EC Directive) 2003, juga dikenal sebagai PECR, berlaku untuk jenis pesan SMS tertentu. Untuk informasi selengkapnya, lihat [Apa itu PECR?](https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/what-are-pecr/) di situs UK Information Commissioner's Office.
+ **Uni Eropa**: Privacy and Electronic Communications Directive 2002, kadang-kadang dikenal sebagai EPrivacy Directive, berlaku untuk beberapa jenis pesan SMS. Untuk informasi selengkapnya, lihat [dokumen hukum lengkap](http://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32002L0058) di situs Europa.eu.
+ **Kanada**: Fighting Internet and Wireless Spam Act, yang lebih dikenal sebagai Hukum Anti-Spam Kanada atau CASL (Canada's Anti-Spam Law), berlaku untuk jenis pesan SMS tertentu. Untuk informasi selengkapnya, lihat [dokumen hukum lengkap](http://www.parl.ca/DocumentViewer/en/40-3/bill/C-28/first-reading) di situs Parliament of Canada.
+ **Jepang**: Act on Regulation of Transmission of Specific Electronic Mail berlaku untuk beberapa jenis pesan SMS. Untuk informasi lebih lanjut, lihat [penanggulangan Jepang terhadap spam](https://www.japaneselawtranslation.go.jp/en/laws/view/3767/en) di situs web Kementerian Dalam Negeri dan Komunikasi Jepang.

Sebagai pengirim, undang-undang ini mungkin berlaku untuk Anda bahkan jika perusahaan atau organisasi Anda tidak berbasis di salah satu negara ini. Beberapa undang-undang dalam daftar ini awalnya dibuat untuk mengatasi email atau panggilan telepon yang tidak diminta, tetapi telah ditafsirkan atau diperluas untuk diterapkan ke pesan SMS juga. Negara dan wilayah lain mungkin memiliki undang-undang sendiri terkait dengan transmisi pesan SMS. Konsultasikan dengan pengacara di setiap negara atau wilayah tempat pelanggan Anda berada untuk mendapatkan nasihat hukum.

Di banyak negara, operator lokal pada akhirnya memiliki wewenang untuk menentukan jenis arus lalu lintas melalui jaringan mereka. Ini berarti bahwa operator dapat memberlakukan pembatasan pada konten SMS yang melebihi persyaratan minimum undang-undang setempat.

## Mendapatkan izin
<a name="channels-sms-best-practices-obtain-permission"></a>

Jangan pernah mengirim pesan ke penerima yang belum secara eksplisit meminta untuk menerima jenis pesan tertentu yang ingin Anda kirim. Jangan berbagi daftar opt-in, bahkan di antara organisasi dalam perusahaan yang sama. 

Jika penerima dapat mendaftar untuk menerima pesan Anda dengan menggunakan formulir online, tambahkan sistem yang mencegah skrip otomatis berlangganan orang tanpa sepengetahuan mereka. Anda juga harus membatasi berapa kali pengguna dapat mengirimkan nomor telepon dalam satu sesi.

Saat Anda menerima permintaan keikutsertaan SMS, kirimkan pesan kepada penerima yang meminta mereka untuk mengonfirmasi bahwa mereka ingin menerima pesan dari Anda. Jangan mengirim pesan tambahan kepada penerima itu sampai mereka mengonfirmasi langganan mereka. Pesan konfirmasi langganan mungkin menyerupai contoh berikut:

`Text YES to join ExampleCorp alerts. 2 msgs/month. Msg & data rates may apply. Reply HELP for help, STOP to cancel.`

Pertahankan catatan yang mencakup tanggal, waktu, dan sumber setiap permintaan dan konfirmasi keikutsertaan menerima pesan. Hal ini mungkin berguna jika operator atau badan pengawas memintanya, dan juga dapat membantu Anda melakukan audit rutin terhadap daftar pelanggan Anda.

### Alur kerja opt-in
<a name="channels-sms-best-practices-obtain-permission-optin"></a>

Dalam beberapa kasus (seperti pendaftaran Bebas Pulsa atau Kode Singkat AS) operator seluler mengharuskan Anda untuk memberikan maket atau tangkapan layar dari seluruh alur kerja keikutsertaan Anda. Maket atau tangkapan layar harus sangat mirip dengan alur kerja opt-in yang akan diselesaikan penerima Anda. 

Maket atau tangkapan layar Anda harus mencakup semua pengungkapan yang diperlukan yang tercantum di bawah ini untuk mempertahankan tingkat kepatuhan tertinggi. 

**Pengungkapan yang diperlukan**
+ Deskripsi kasus penggunaan pesan yang akan Anda kirim melalui program Anda.
+ Ungkapan “Pesan dan tarif data mungkin berlaku.”
+ Indikasi seberapa sering penerima akan menerima pesan dari Anda. Misalnya, program pesan berulang mungkin mengatakan “satu pesan per minggu.” Kata sandi satu kali atau kasus penggunaan otentikasi multi-faktor mungkin mengatakan “frekuensi pesan bervariasi” atau “satu pesan per upaya login.”
+ Tautan ke Syarat dan Ketentuan serta dokumen Kebijakan Privasi Anda. 

**Alasan penolakan umum untuk opt-in yang tidak sesuai**
+ Jika nama perusahaan yang diberikan tidak sesuai dengan apa yang disediakan dalam mockup atau screen shot. Setiap hubungan yang tidak jelas harus dijelaskan dalam deskripsi alur kerja opt-in.
+ Jika tampaknya pesan akan dikirim ke penerima, tetapi tidak ada persetujuan yang dikumpulkan secara eksplisit sebelum melakukannya. Persetujuan eksplisit adalah persyaratan dari semua pesan.
+ Jika tampaknya menerima pesan teks diperlukan untuk mendaftar ke layanan. Ini tidak sesuai jika alur kerja tidak memberikan alternatif apa pun selain menerima pesan keikutsertaan dalam bentuk lain seperti email atau panggilan suara. 
+ Jika bahasa opt-in disajikan sepenuhnya dalam Ketentuan Layanan. Pengungkapan harus selalu disajikan kepada penerima pada saat keikutsertaan daripada disimpan di dalam dokumen kebijakan yang ditautkan. 
+ Jika pelanggan memberikan persetujuan untuk menerima satu jenis pesan dari Anda dan Anda mengirimi mereka jenis pesan teks lainnya. Misalnya mereka setuju untuk menerima kata sandi satu kali tetapi juga dikirim polling dan pesan survei.
+ Jika pengungkapan yang diperlukan (tercantum di atas) tidak disajikan kepada penerima.

Contoh berikut sesuai dengan persyaratan operator seluler untuk kasus penggunaan otentikasi multi-faktor.

![\[Sebuah step-by-step mockup dari alur kerja opt-in untuk mengaktifkan otentikasi multi-faktor (MFA) pada akun pengguna dengan. ExampleCorp Prosesnya dimulai dengan pengguna memberikan informasi akun dasar seperti nama dan email. Selanjutnya, pengguna memutuskan apakah akan mengaktifkan MFA untuk keamanan tambahan. Jika MFA diaktifkan, pengguna memilih bagaimana mereka ingin menerima token MFA, dengan opsi seperti pesan teks atau panggilan telepon. Jika pengguna memilih pesan teks, mereka menerima SMS dengan kode verifikasi. Langkah terakhir mengharuskan pengguna untuk memasukkan kode yang diterima untuk mengonfirmasi nomor telepon mereka, menyelesaikan proses keikutsertaan. Maket ini memastikan semua pengungkapan yang diperlukan disediakan untuk kepatuhan SMS.\]](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/best-practices-usecase.png)


Ini berisi teks dan gambar yang telah diselesaikan, dan ini menunjukkan seluruh alur keikutsertaan, lengkap dengan anotasi. Dalam alur keikutsertaan, pelanggan harus mengambil tindakan yang berbeda dan disengaja untuk memberikan persetujuan mereka untuk menerima pesan teks dan berisi semua pengungkapan yang diperlukan.

### Jenis alur kerja opt-in lainnya
<a name="channels-sms-best-practices-obtain-permission-other"></a>

Operator seluler juga akan menerima alur kerja opt-in di luar aplikasi dan situs web seperti opt-in verbal atau tertulis jika sesuai dengan apa yang diuraikan di atas. Alur kerja opt-in yang sesuai dan skrip verbal atau tertulis akan mengumpulkan persetujuan eksplisit dari penerima untuk menerima jenis pesan tertentu. Contohnya termasuk skrip verbal yang digunakan agen dukungan untuk mengumpulkan persetujuan sebelum merekam ke dalam database layanan atau nomor telepon yang tercantum pada selebaran promosi. Untuk memberikan mockup dari jenis alur kerja opt-in ini, Anda dapat memberikan cuplikan layar skrip opt-in, materi pemasaran, atau database tempat nomor dikumpulkan. Operator seluler mungkin memiliki pertanyaan tambahan seputar kasus penggunaan ini jika keikutsertaan tidak jelas atau kasus penggunaan melebihi volume tertentu.

## Jangan kirim ke daftar lama
<a name="channels-sms-best-practices-old-lists"></a>

Orang sering mengganti nomor telepon. Nomor telepon yang Anda kumpulkan persetujuan untuk dihubungi dua tahun lalu mungkin milik orang lain hari ini. Jangan gunakan daftar nomor telepon lama untuk program perpesanan baru; jika Anda melakukannya, Anda mungkin memiliki beberapa pesan yang gagal karena nomor tersebut tidak lagi dalam layanan, dan beberapa orang yang memilih keluar karena mereka tidak ingat memberi Anda persetujuan mereka sejak awal.

## Audit daftar pelanggan Anda
<a name="channels-sms-best-practices-audit-lists"></a>

Jika Anda mengirim kampanye SMS berulang, audit daftar pelanggan Anda secara berkala. Mengaudit daftar pelanggan Anda memastikan bahwa pelanggan yang menerima pesan Anda hanyalah mereka yang tertarik untuk menerimanya. 

Saat Anda mengaudit daftar, kirim pesan kepada setiap pelanggan yang mengingatkan mereka bahwa mereka berlangganan, dan memberi mereka informasi tentang bagaimana cara berhenti berlangganan. Pesan pengingat mungkin menyerupai contoh berikut ini:

`You're subscribed to ExampleCorp alerts. Msg & data rates may apply. Reply HELP for help, STOP to unsubscribe.`

## Simpan catatan
<a name="channels-sms-best-practices-keep-records"></a>

Simpan catatan yang menunjukkan kapan setiap pelanggan diminta untuk menerima pesan SMS dari Anda, dan pesan mana yang Anda kirim ke setiap pelanggan. Banyak negara dan wilayah di seluruh dunia mewajibkan pengirim SMS untuk menyimpan catatan ini dengan cara yang dapat dengan mudah diambil. Operator seluler juga dapat meminta informasi ini dari Anda kapan saja. Informasi yang harus Anda berikan bervariasi berdasarkan negara atau wilayah. Untuk informasi selengkapnya tentang persyaratan penyimpanan catatan, tinjau peraturan tentang olahpesan SMS komersial di setiap negara atau wilayah tempat pelanggan Anda berada.

Kadang-kadang, operator atau badan pengawas meminta kita untuk memberikan bukti bahwa pelanggan memilih untuk menerima pesan dari Anda. Dalam situasi ini, Dukungan hubungi Anda dengan daftar informasi yang dibutuhkan operator atau agensi. Jika Anda tidak dapat memberikan informasi yang diperlukan, kami dapat menghentikan sementara kemampuan Anda untuk mengirim pesan SMS tambahan.

## Buat pesan Anda jelas, jujur, dan ringkas
<a name="channels-sms-best-practices-appropriate-content"></a>

SMS adalah media yang unik. character-per-message Batas 160 berarti pesan Anda harus ringkas. Teknik yang mungkin Anda gunakan di saluran komunikasi lain, seperti email, mungkin tidak berlaku untuk saluran SMS, dan bahkan mungkin tampak tidak jujur atau menipu ketika digunakan dengan pesan SMS. Jika konten dalam pesan Anda tidak selaras dengan praktik terbaik, penerima mungkin mengabaikan pesan Anda; dalam kasus terburuk, operator seluler mungkin mengidentifikasi pesan Anda sebagai spam dan memblokir pesan future dari nomor telepon Anda.

Bagian ini memberikan beberapa tips dan ide untuk membuat badan pesan SMS yang efektif.

### Identifikasi diri Anda sebagai pengirim
<a name="channels-sms-best-practices-appropriate-content-identify"></a>

Penerima Anda harus dapat segera memberi tahu bahwa pesan berasal dari Anda. Pengirim yang mengikuti praktik terbaik ini menyertakan nama pengenal (“nama program”) di awal setiap pesan.

**Jangan lakukan ini:**  
`Your account has been accessed from a new device. Reply Y to confirm.`

**Coba ini sebagai gantinya:**  
`ExampleCorp Financial Alerts: You have logged in to your account from a new device. Reply Y to confirm, or STOP to opt-out.`

### Jangan mencoba membuat pesan Anda terlihat seperti person-to-person pesan
<a name="channels-sms-best-practices-appropriate-content-p2p"></a>

Beberapa pemasar tergoda untuk menambahkan sentuhan pribadi ke pesan SMS mereka dengan membuat pesan mereka tampak berasal dari seseorang. Namun, teknik ini mungkin membuat pesan Anda tampak seperti upaya phishing.

**Jangan lakukan ini:**  
`Hi, this is Jane. Did you know that you can save up to 50% at Example.com? Click here for more info: https://www.example.com.`

**Coba ini sebagai gantinya:**  
`ExampleCorp Offers: Save 25-50% on sale items at Example.com. Click here to browse the sale: https://www.example.com. Text STOP to opt-out.`

### Hati-hati ketika berbicara tentang uang
<a name="channels-sms-best-practices-appropriate-content-money"></a>

Scammers sering memangsa keinginan orang untuk menabung dan menerima uang. Jangan membuat penawaran tampak terlalu bagus untuk menjadi kenyataan. Jangan gunakan iming-iming uang untuk menipu orang. Jangan gunakan simbol mata uang untuk menunjukkan uang.

**Jangan lakukan ini:**  
`Save big $$$ on your next car repair by going to https://www.example.com.`

**Coba ini sebagai gantinya:**  
`ExampleCorp Offers: Your ExampleCorp insurance policy gets you discounts at 2300+ repair shops nationwide. More info at https://www.example.com. Text STOP to opt-out.`

### Gunakan hanya karakter yang diperlukan
<a name="channels-sms-best-practices-appropriate-content-characters"></a>

Merek sering cenderung melindungi merek dagang mereka dengan memasukkan simbol merek dagang seperti™ atau® dalam pesan mereka. Namun, simbol-simbol ini bukan bagian dari set standar karakter (dikenal sebagai alfabet GSM) yang dapat dimasukkan dalam pesan SMS 160 karakter. Ketika Anda mengirim pesan yang berisi salah satu karakter ini, pesan Anda secara otomatis dikirim menggunakan sistem pengkodean karakter yang berbeda, yang hanya mendukung 70 karakter per bagian pesan. Akibatnya, pesan Anda dapat dipecah menjadi beberapa bagian. Karena Anda ditagih untuk setiap bagian pesan yang Anda kirim, itu bisa dikenakan biaya lebih dari yang Anda harapkan untuk mengirim seluruh pesan. Selain itu, penerima Anda mungkin menerima beberapa pesan berurutan dari Anda, bukan satu pesan tunggal. Untuk informasi selengkapnya tentang pengkodean karakter SMS, lihat[Batas karakter SMS di Amazon SNS](#channels-sms-limitations-characters).

**Jangan lakukan ini:**  
`ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget® at example.com and use the promo code WIDGET.`

**Coba ini sebagai gantinya:**  
`ExampleCorp Alerts: Save 20% when you buy a new ExampleCorp Widget(R) at example.com and use the promo code WIDGET.`

**catatan**  
Dua contoh sebelumnya hampir identik, tetapi contoh pertama berisi simbol Merek Dagang Terdaftar (®), yang bukan bagian dari alfabet GSM. Akibatnya, contoh pertama dikirim sebagai dua bagian pesan, sedangkan contoh kedua dikirim sebagai satu bagian pesan.

### Gunakan tautan yang valid dan aman
<a name="channels-sms-best-practices-appropriate-content-links"></a>

Jika pesan Anda menyertakan tautan, periksa kembali tautan untuk memastikannya berfungsi. Uji tautan Anda di perangkat di luar jaringan perusahaan Anda untuk memastikan bahwa tautan teratasi dengan benar. Karena batas 160 karakter pesan SMS, sangat panjang URLs dapat dibagi menjadi beberapa pesan. Anda harus menggunakan domain pengalihan untuk memberikan yang dipersingkat. URLs Namun, Anda tidak boleh menggunakan layanan pemendekan tautan gratis seperti tinyurl.com atau bitly.com, karena operator cenderung memfilter pesan yang menyertakan tautan pada domain ini. Namun, Anda dapat menggunakan layanan pemendekan tautan berbayar selama tautan Anda mengarah ke domain yang didedikasikan untuk penggunaan eksklusif perusahaan atau organisasi Anda. 

**Jangan lakukan ini:**  
`Go to https://tinyurl.com/4585y8mr today for a special offer!`

**Coba ini sebagai gantinya:**  
`ExampleCorp Offers: Today only, get an exclusive deal on an ExampleCorp Widget. See https://a.co/cFKmaRG for more info. Text STOP to opt-out.`

### Batasi jumlah singkatan yang Anda gunakan
<a name="channels-sms-best-practices-appropriate-content-abbrev"></a>

Keterbatasan 160 karakter dari saluran SMS membuat beberapa pengirim percaya bahwa mereka perlu menggunakan singkatan secara ekstensif dalam pesan mereka. Namun, penggunaan singkatan yang berlebihan dapat tampak tidak profesional bagi banyak pembaca, dan dapat menyebabkan beberapa pengguna melaporkan pesan Anda sebagai spam. Sangat mungkin untuk menulis pesan yang koheren tanpa menggunakan jumlah singkatan yang berlebihan.

**Jangan lakukan ini:**  
`Get a gr8 deal on ExampleCorp widgets when u buy a 4-pack 2day.`

**Coba ini sebagai gantinya:**  
`ExampleCorp Alerts: Today only—an exclusive deal on ExampleCorp Widgets at example.com. Text STOP to opt-out.`

## Merespons dengan tepat
<a name="channels-sms-best-practices-respond-appropriately"></a>

Saat penerima membalas pesan Anda, pastikan Anda merespons dengan informasi yang berguna. Misalnya, ketika pelanggan merespons salah satu pesan Anda dengan kata kunci "HELP" (BANTUAN), kirimkan informasi tentang program langganan mereka, jumlah pesan yang akan Anda kirim setiap bulan, dan cara mereka dapat menghubungi Anda untuk informasi lebih lanjut. Respons HELP (BANTUAN) mungkin menyerupai contoh berikut:

`HELP: ExampleCorp alerts: email help@example.com or call 425-555-0199. 2 msgs/month. Msg & data rates may apply. Reply STOP to cancel.`

Ketika pelanggan membalas dengan kata kunci "STOP" (BERHENTI), beri tahu mereka bahwa mereka tidak akan menerima pesan lebih lanjut. Respons STOP (BERHENTI) mungkin menyerupai contoh berikut:

`You're unsubscribed from ExampleCorp alerts. No more messages will be sent. Reply HELP, email help@example.com, or call 425-555-0199 for more info.`

## Sesuaikan pengiriman Anda berdasarkan keterlibatan
<a name="channels-sms-best-practices-adjust-engagement"></a>

Prioritas pelanggan Anda dapat berubah seiring waktu. Jika pelanggan tidak lagi menganggap pesan Anda berguna, mereka mungkin memilih untuk tidak menerima pesan Anda sama sekali, atau bahkan melaporkan pesan Anda sebagai tidak diminta. Untuk alasan ini, penting untuk menyesuaikan praktik pengiriman berdasarkan keterlibatan pelanggan.

Untuk pelanggan yang jarang terlibat dengan pesan Anda, Anda harus menyesuaikan frekuensi pesan Anda. Misalnya, jika Anda mengirim pesan mingguan ke pelanggan yang terlibat, Anda dapat membuat rencana pengiriman bulanan terpisah untuk pelanggan yang kurang terlibat. 

Lalu, hapus pelanggan yang benar-benar tidak terlibat dari daftar pelanggan Anda. Langkah ini mencegah pelanggan frustrasi terhadap pesan Anda. Ini juga menghemat pengeluaran Anda dan membantu melindungi reputasi Anda sebagai pengirim.

## Kirim pada waktu yang tepat
<a name="channels-sms-best-practices-appropriate-times"></a>

Hanya kirim pesan selama jam kerja normal siang hari. Jika Anda mengirim pesan di waktu makan malam atau di tengah malam, ada kemungkinan bahwa pelanggan Anda akan berhenti berlangganan dari daftar Anda agar tidak terganggu. Selain itu, tidak masuk akal untuk mengirim pesan SMS ketika pelanggan Anda tidak dapat segera merespons pesan tersebut. 

Jika Anda mengirim kampanye atau perjalanan ke audiens yang sangat besar, periksa ulang tingkat throughput untuk nomor originasi Anda. Bagilah jumlah penerima dengan tingkat throughput Anda untuk menentukan berapa lama waktu yang dibutuhkan untuk mengirim pesan ke semua penerima Anda.

## Hindari keletihan lintas-saluran
<a name="channels-sms-best-practices-cross-channel-fatigue"></a>

Dalam kampanye, jika Anda menggunakan beberapa saluran komunikasi (seperti email, SMS, dan pesan push), jangan mengirim pesan yang sama di setiap saluran. Ketika Anda mengirim pesan yang sama pada saat yang sama di lebih dari satu saluran, pelanggan Anda mungkin akan menganggap perilaku pengiriman Anda mengganggu, bukan membantu.

## Gunakan kode pendek khusus
<a name="channels-sms-best-practices-dedicated-short-codes"></a>

Jika Anda menggunakan kode pendek, gunakan kode pendek terpisah untuk setiap merek dan setiap jenis pesan. Misalnya, jika perusahaan Anda memiliki dua merek, gunakan kode pendek terpisah untuk masing-masing merek. Demikian pula, jika Anda mengirim pesan transaksional dan promosi, gunakan kode pendek terpisah untuk setiap jenis pesan. Untuk mempelajari lebih lanjut tentang meminta kode pendek, lihat [Meminta kode singkat untuk pesan SMS dengan AWS Olah Pesan Pengguna Akhir SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-short-code.html) di *AWS Olah Pesan Pengguna Akhir SMS Panduan Pengguna*.

## Verifikasi nomor telepon tujuan Anda
<a name="channels-sms-best-practices-verify-destination-numbers"></a>

Saat Anda mengirim pesan SMS melalui Amazon SNS, Anda ditagih untuk setiap bagian pesan yang Anda kirim. Harga yang Anda bayar per bagian pesan bervariasi di negara atau wilayah penerima. Untuk informasi selengkapnya tentang harga SMS, lihat [Harga SMS AWS Seluruh Dunia](https://aws.amazon.com/sns/sms-pricing).

Saat Amazon SNS menerima permintaan untuk mengirim pesan SMS (sebagai hasil dari panggilan ke [SendMessages](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#SendMessages)API, atau sebagai hasil dari kampanye atau perjalanan yang diluncurkan), Anda dikenakan biaya untuk mengirim pesan tersebut. Pernyataan ini benar bahkan jika penerima yang dituju tidak benar-benar menerima pesan. Misalnya, jika nomor telepon penerima tidak lagi dalam layanan, atau jika nomor yang Anda kirimi pesan bukan nomor ponsel yang valid, Anda masih ditagih untuk mengirim pesan.

Amazon SNS menerima permintaan yang valid untuk mengirim pesan SMS dan mencoba mengirimkannya. Untuk alasan ini, Anda harus memvalidasi bahwa nomor telepon yang Anda kirimi pesan adalah nomor ponsel yang valid. Anda dapat menggunakan AWS Olah Pesan Pengguna Akhir SMS untuk mengirim pesan pengujian untuk menentukan apakah nomor telepon valid dan jenis nomornya (seperti ponsel, telepon rumah, atau VoIP). Untuk informasi selengkapnya, lihat [Mengirim pesan pengujian dengan simulator SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/getting-started-tutorial.html#getting-started-tutorial-step3) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.

## Desain dengan mempertimbangkan redundansi
<a name="channels-sms-best-practices-redundancy"></a>

Untuk program pesan penting misi, kami menyarankan Anda mengonfigurasi Amazon SNS di lebih dari satu. Wilayah AWS Amazon SNS tersedia dalam beberapa. Wilayah AWS Untuk daftar lengkap Wilayah tempat Amazon SNS tersedia, lihat. [Referensi Umum AWS](https://docs.aws.amazon.com/general/latest/gr/sns.html) 

Nomor telepon yang Anda gunakan untuk pesan SMS — termasuk kode pendek, kode panjang, nomor bebas pulsa, dan nomor 10DLC — tidak dapat direplikasi. Wilayah AWS Akibatnya, untuk menggunakan Amazon SNS di beberapa Wilayah, Anda harus meminta nomor telepon terpisah di setiap Wilayah tempat Anda ingin menggunakan Amazon SNS. Misalnya, jika Anda menggunakan kode singkat untuk mengirim pesan teks ke penerima di Amerika Serikat, Anda perlu meminta kode pendek terpisah di setiap kode Wilayah AWS yang Anda rencanakan untuk digunakan.

Di beberapa negara, Anda juga dapat menggunakan beberapa jenis nomor telepon untuk menambah redundansi. Misalnya, di Amerika Serikat, Anda dapat meminta kode pendek, nomor 10DLC, dan nomor bebas pulsa. Masing-masing jenis nomor telepon ini mengambil rute yang berbeda ke penerima. Memiliki beberapa jenis nomor telepon yang tersedia—baik dalam hal yang sama Wilayah AWS atau tersebar di beberapa Wilayah AWS lain—memberikan lapisan redundansi tambahan, yang dapat membantu meningkatkan ketahanan.

## Batas dan batasan SMS
<a name="channels-sms-best-practices-limits"></a>

Untuk batasan dan batasan [SMS, lihat batasan dan batasan SMS dan MMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations.html) di *Panduan AWS Olah Pesan Pengguna Akhir SMS Pengguna*.

## Mengelola kata kunci keluar
<a name="channels-sms-best-practices-optout-keywords"></a>

Penerima SMS dapat menggunakan perangkat mereka untuk memilih keluar dari pesan dengan membalas dengan kata kunci. Untuk informasi selengkapnya, lihat [Memilih untuk tidak menerima pesan SMS](sms_manage.md#sms_manage_optout).

## CreatePool
<a name="channels-sms-best-practices-createpool"></a>

Gunakan aksi `CreatePool` API untuk membuat kumpulan baru dan mengaitkan identitas originasi tertentu ke pool. Untuk informasi selengkapnya, lihat [CreatePool](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_CreatePool.html)di *Referensi AWS Olah Pesan Pengguna Akhir SMS API*.

## PutKeyword
<a name="channels-sms-best-practices-putkeyword"></a>

Gunakan tindakan `PutKeyword` API untuk membuat atau memperbarui konfigurasi kata kunci pada nomor telepon atau kumpulan originasi. Untuk informasi selengkapnya, lihat [PutKeyword](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_PutKeyword.html)di *Referensi AWS Olah Pesan Pengguna Akhir SMS API*.

## Mengelola pengaturan nomor
<a name="channels-sms-best-practices-number-settings"></a>

Untuk mengelola setelan kode pendek khusus dan kode panjang yang Anda minta dari AWS Support dan ditetapkan ke akun Anda, lihat [Mengubah kemampuan nomor telepon dengan AWS CLI](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-change-capabilitiy.html) masuk *AWS Olah Pesan Pengguna Akhir SMS*.

## Batas karakter SMS di Amazon SNS
<a name="channels-sms-limitations-characters"></a>

Satu pesan SMS dapat berisi hingga 140 byte informasi. Jumlah karakter yang dapat Anda sertakan dalam satu pesan SMS tergantung pada jenis karakter yang terkandung dalam pesan tersebut.

Jika pesan Anda hanya menggunakan [karakter dalam set karakter GSM 03.38](#channels-sms-limitations-characters-gsm-alphabet), juga dikenal sebagai alfabet GSM 7-bit, dapat berisi hingga 160 karakter. Jika pesan Anda berisi karakter apa pun yang berada di luar set karakter GSM 03.38, pesan tersebut dapat memiliki hingga 70 karakter. Saat Anda mengirim pesan SMS, Amazon SNS secara otomatis menentukan pengkodean yang paling efisien untuk digunakan.

Ketika pesan berisi lebih dari jumlah maksimum karakter, pesan dibagi menjadi beberapa bagian. Ketika pesan dibagi menjadi beberapa bagian, setiap bagian berisi informasi tambahan tentang bagian pesan yang mendahuluinya. Ketika perangkat penerima menerima bagian pesan yang dipisahkan dengan cara ini, ia menggunakan informasi tambahan ini untuk memastikan bahwa semua bagian pesan ditampilkan dalam urutan yang benar. Bergantung pada operator seluler dan perangkat penerima, beberapa pesan mungkin ditampilkan sebagai satu pesan, atau sebagai urutan pesan terpisah. Akibatnya jumlah karakter di setiap bagian pesan dikurangi menjadi 153 (untuk pesan yang hanya berisi karakter GSM 03.38) atau 67 (untuk pesan yang berisi karakter lain). Anda dapat memperkirakan berapa banyak bagian pesan yang berisi pesan Anda sebelum Anda mengirimnya dengan menggunakan alat kalkulator panjang SMS, beberapa di antaranya tersedia secara online. Ukuran maksimum yang didukung dari pesan apa pun adalah 1600 karakter GSM atau 630 karakter non-GSM. Untuk informasi selengkapnya tentang throughput dan ukuran pesan, lihat [batas karakter SMS di Amazon](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-limitations-mps.html) Pinpoint di Panduan Pengguna *Amazon Pinpoint*.

Untuk melihat jumlah bagian pesan untuk setiap pesan yang Anda kirim, Anda harus mengaktifkan [pengaturan aliran Acara](https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-event-streams.html) terlebih dahulu. Ketika Anda melakukannya, Amazon SNS menghasilkan `_SMS.SUCCESS` peristiwa ketika pesan dikirimkan ke penyedia seluler penerima. Catatan `_SMS.SUCCESS` acara berisi atribut yang disebut`attributes.number_of_message_parts`. Atribut ini menentukan jumlah bagian pesan yang berisi pesan.

**penting**  
Saat mengirim pesan yang berisi lebih dari satu bagian pesan, Anda akan dikenakan biaya untuk jumlah bagian pesan yang terdapat dalam pesan.

### GSM 03.38 set karakter
<a name="channels-sms-limitations-characters-gsm-alphabet"></a>

Tabel berikut mencantumkan semua karakter yang hadir dalam set karakter GSM 03.38. Jika Anda mengirim pesan yang hanya menyertakan karakter yang ditampilkan dalam tabel berikut, maka pesan tersebut dapat berisi hingga 160 karakter. 


| GSM 03.38 karakter standar | 
| --- | 
| A | B | C | D | E | F | G | H | I | J | K | L | M | 
| T | O | P | Q | R | D | T | U | V | W | X | Y | Z | 
| a | b | c | d | e | f | g | -h | saya | j | k | l | m | 
| n | o | p | q | r | detik | t | u | v | w | x | y | z | 
| à | Å | å | Ä | ä | Ç | É | é | è | ì | Ñ | ñ | ò | 
| Ø | ø | Ö | ö | ù | Ü | ü | Æ | æ | ß | 0 | 1 | 2 | 
| 3 | 4 | 5 | 6 | 7 | 8 | 9 | & | \$1 | @ | : | , | ¤ | 
| \$1 | = | \$1 | > | \$1 | - | ¡ | ¿ | ( | < | % | . | \$1 | 
| £ | ? | " | ) | § | ; | ' | / | \$1 | ¥ | Δ | Φ | Γ | 
| Λ | Ω | Π | Ψ | Σ | Θ | Ξ |  |  |  |  |  |  | 

Set karakter GSM 03.38 mencakup beberapa simbol selain yang ditunjukkan pada tabel sebelumnya. Namun, masing-masing karakter ini dihitung sebagai dua karakter karena juga mencakup karakter pelarian yang tidak terlihat:
+ ^
+ \$1
+ \$1
+ \$1
+ [
+ ]
+ \$1
+ \$1
+ €

Akhirnya, set karakter GSM 03.38 juga mencakup karakter non-cetak berikut:
+ Karakter luar angkasa.
+ Kontrol umpan baris, yang menandakan akhir dari satu baris teks dan awal baris lainnya.
+ Sebuah carriage return control, yang bergerak ke awal baris teks (biasanya mengikuti karakter line feed).
+ Kontrol pelarian, yang secara otomatis ditambahkan ke karakter dalam daftar sebelumnya.

### Contoh pesan
<a name="channels-sms-limitations-characters-example-messages"></a>

Bagian ini berisi beberapa contoh pesan SMS. Untuk setiap contoh, bagian ini menunjukkan jumlah total karakter, serta jumlah bagian pesan untuk pesan.

**Contoh 1: Pesan panjang yang hanya berisi karakter dalam alfabet GSM 03.38**  
Pesan berikut hanya berisi karakter yang ada di alfabet GSM 03.38.

`Hello Carlos. Your Example Corp. bill of $100 is now available. Autopay is scheduled for next Thursday, April 9. To view the details of your bill, go to https://example.com/bill1.`

Pesan sebelumnya berisi 180 karakter, sehingga harus dibagi menjadi beberapa bagian pesan. Ketika pesan dibagi menjadi beberapa bagian pesan, setiap bagian dapat berisi 153 karakter GSM 03.38. Akibatnya, pesan ini dikirim sebagai 2 bagian pesan.

**Contoh 2: Pesan yang berisi karakter multi-byte**  
Pesan berikut berisi beberapa karakter Mandarin, yang semuanya berada di luar alfabet GSM 03.38. 

`亚马逊公司是一家总部位于美国西雅图的跨国电子商务企业，业务起始于线上书店，不久之后商品走向多元化。杰夫·贝佐斯于1994年7月创建了这家公司。`

Pesan sebelumnya berisi 71 karakter. Namun, karena hampir semua karakter dalam pesan berada di luar alfabet GSM 03.38, itu dikirim sebagai dua bagian pesan. Masing-masing bagian pesan ini dapat berisi maksimal 67 karakter.

**Contoh 3: Pesan yang berisi satu karakter non-GSM**  
Pesan berikut berisi satu karakter yang bukan bagian dari alfabet GSM 03.38. Dalam contoh ini, karakter adalah kutipan tunggal penutup ('), yang merupakan karakter yang berbeda dari apostrof biasa ('). Aplikasi pengolah kata seperti Microsoft Word sering secara otomatis mengganti apostrof dengan menutup tanda kutip tunggal. Jika Anda menyusun pesan SMS Anda di Microsoft Word dan menempelkannya ke Amazon SNS, Anda harus menghapus karakter khusus ini dan menggantinya dengan apostrof.

`John: Your appointment with Dr. Salazar’s office is scheduled for next Thursday at 4:30pm. Reply YES to confirm, NO to reschedule.`

Pesan sebelumnya berisi 130 karakter. Namun, karena berisi karakter kutipan tunggal penutup, yang bukan bagian dari alfabet GSM 03.38, itu dikirim sebagai dua bagian pesan.

Jika Anda mengganti karakter kutipan tunggal penutup dalam pesan ini dengan tanda kutip (yang merupakan bagian dari alfabet GSM 03.38), maka pesan dikirim sebagai bagian pesan tunggal.