Kirim pesan RCS
Menerima batch pesan RCS/MMS secara asinkron dengan HTTP 200 dan hasil per penerima; autentikasi Bearer atau CheckSum.
Contoh permintaan
Pilih metode autentikasi terlebih dahulu, lalu tipe pesan; ganti <YOUR_API_KEY> dengan API KEY Anda — body JSON adalah isi dalam tanda kutip tunggal -d.
Direkomendasikan: cukup satu header Authorization: Bearer <YOUR_API_KEY>, tanpa tanda tangan.
Pesan TEXT dengan satu tombol saran REPLY.
curl -X POST "https://rcsapi.tig253.com/inter-rcs/v3/rcs/message/send" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json; charset=UTF-8" \
-d '{
"productKey": "rcs_otp",
"channel": "RCS",
"sender": "BrandName",
"uid": "demo_batch_20260814_001",
"destinations": [
{ "to": "8613482734980" }
],
"message": {
"type": "TEXT",
"textMsg": {
"text": "您的验证码是 8829,5 分钟内有效",
"suggestions": [
{ "type": "REPLY", "text": "重新发送", "postbackData": "resend_otp" }
]
}
}
}'Field suggestions (pilih per tipe)
Struktur objek tombol ditentukan oleh type: semua tipe wajib membawa type, text (teks tombol, 1-25 karakter), dan postbackData (dikembalikan saat diklik, 1-2048 karakter); pilih tab di bawah untuk melihat field khusus tiap tipe.
Balasan cepat: klik hanya mengembalikan postbackData; tanpa field tambahan.
Contoh lengkap:
{
"type": "REPLY",
"text": "Konfirmasi",
"postbackData": "btn_reply_confirm"
}Kirim pesan RCS
curl -X POST "https://rcsapi.tig253.com/inter-rcs/v3/rcs/message/send" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"uid": "demo_batch_20260814_008",
"channel": "RCS",
"message": {
"mms": {
"media": {
"file": {
"url": "https://example.com/img/midautumn.jpg"
}
},
"title": "中秋礼遇",
"description": "全场礼盒 8 折,限时 3 天"
},
"type": "MMS"
},
"productKey": "mms_market",
"destinations": [
{
"to": "<PHONE>"
}
],
"sender": "YOUR_SENDER"
}'Batch berhasil diterima (HTTP 200).
{
"code": "000000",
"data": {
"uid": "demo_batch_20260814_010",
"messages": [
{
"mobile": "8613482734980",
"status": "000000",
"messageId": "msg-2c4f8e1a-a1b2c3d4e5f60718293a4b5c",
"description": "Submitted success"
},
{
"mobile": "12345",
"status": "010003",
"messageId": null,
"description": "Wrong format of phone number"
}
]
},
"message": "success",
"traceId": "d87a93e50af0437ebcc0c80774126842",
"timestamp": "2026-11-11T03:00:01.000Z"
}Contoh respons dari kontrak yang ditinjau, bukan hasil permintaan nyata.
Kirim pesan RCS atau MMS. Penerimaan berhasil mengembalikan HTTP 200 dengan code=000000, berarti diterima dan belum tentu terkirim. Mendukung autentikasi Bearer atau CheckSum; lihat halaman kode kesalahan RCS untuk daftar kode penerimaan.
Gunakan AppKey InnoPaaS sebagai Bearer token. Buat atau kelola key di halaman API keys Console. Panduan API key
Authorization
Authorizationstring<bearer>wajibParameter Header
X-Custom-TraceIdstringopsionalOptional customer trace ID, recommended globally unique; forwarded to webhook payloads (customTraceId) and NOT echoed in the send response.
256Body
application/jsonuidstringopsionalNomor batch kustom pelanggan, maksimal 64 karakter, terlampaui mengembalikan 010003. Jika tidak dikirim, sistem mengisi batchId; diteruskan ke payload push resi dan dikembalikan pada data.uid respons pengiriman.
64senderstringwajibSender ID. Wajib untuk pesan TEXT / FILE / CARD / CAROUSEL, kosong mengembalikan 010002; boleh kosong untuk TEMPLATE / MMS (pesan template memakai sender dari konfigurasi template).
channelstringwajibKanal, kirim tetap RCS (saat ini hanya diteruskan dan dicatat log, tidak dipakai untuk routing).
messageobjectwajibObjek konten pesan; field body yang wajib ditentukan oleh type.
Tampilkan atribut anak
mmsobjectopsionalBody pesan MMS, wajib saat type=MMS, digunakan bersama produk mms_notify / mms_market.
Tampilkan atribut anak
typestringopsionalTipe konten, tetap MMS, boleh diabaikan.
mediaobjectwajibObjek media.
Tampilkan atribut anak
fileobjectwajibObjek sumber daya file media utama.
Tampilkan atribut anak
urlstringwajibURL file, diawali http/https, 1-1000 karakter, file ≤100 MB.
1Panjang maksimum1000heightstringopsionalTinggi: SHORT / MEDIUM / TALL.
thumbnailobjectopsionalObjek thumbnail video, hanya berlaku untuk file video.
Tampilkan atribut anak
urlstringwajibURL thumbnail, disarankan ≤1 MB.
titlestringwajibJudul MMS.
descriptionstringopsionalDeskripsi teks MMS.
fileobjectopsionalBody pesan file, wajib saat type=FILE.
Tampilkan atribut anak
fileobjectwajibObjek sumber daya file.
Tampilkan atribut anak
urlstringwajibURL file, diawali http/https, 1-1000 karakter, file ≤100 MB.
1Panjang maksimum1000typestringopsionalTipe konten, tetap FILE, boleh diabaikan.
thumbnailobjectopsionalThumbnail video, hanya berlaku untuk file video.
Tampilkan atribut anak
urlstringwajibURL thumbnail, disarankan ≤1 MB.
suggestionsarray<object>opsionalArray tombol, maksimal 11.
Tampilkan atribut anak
urlstringopsionalOPEN_URL: URL tujuan, wajib, harus diawali http:// atau https://, 1-2048 karakter.
1Panjang maksimum2048textstringopsionalTeks tombol (terlihat pengguna), 1-25 karakter.
1Panjang maksimum25typestringopsionalTipe tombol: REPLY / OPEN_URL / DIAL_PHONE / SHOW_LOCATION / REQUEST_LOCATION / CREATE_CALENDAR_EVENT.
labelstringopsionalSHOW_LOCATION: label lokasi, opsional.
100titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, wajib, 1-100 karakter.
100endTimestringopsionalCREATE_CALENDAR_EVENT: waktu selesai, wajib, setelah waktu mulai, format sama dengan startTime.
latitudenumberopsionalSHOW_LOCATION: lintang, wajib, rentang -90~90.
longitudenumberopsionalSHOW_LOCATION: bujur, wajib, rentang -180~180.
startTimestringopsionalCREATE_CALENDAR_EVENT: waktu mulai, wajib, format yyyy-MM-dd'T'HH:mm:ss.SSSZ.
applicationstringopsionalOPEN_URL: cara membuka, BROWSER (default) atau WEBVIEW; opsional, hanya diteruskan tanpa validasi.
descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, opsional, maksimal 500 karakter.
500fallbackUrlstringopsionalREQUEST_LOCATION / CREATE_CALENDAR_EVENT: URL fallback opsional, tidak divalidasi.
phoneNumberstringopsionalDIAL_PHONE: nomor tujuan, wajib, dengan kode negara dan lolos validasi format.
postbackDatastringopsionalData yang dikembalikan apa adanya saat diklik, wajib, 1-2048 karakter.
1Panjang maksimum2048webviewViewModestringopsionalOPEN_URL dengan WEBVIEW: FULL / HALF / TALL; opsional, hanya diteruskan tanpa validasi.
typestringwajibTipe pesan: TEXT / FILE / CARD / CAROUSEL / TEMPLATE / MMS.
cardMsgobjectopsionalBody pesan kartu tunggal, wajib saat type=CARD.
Tampilkan atribut anak
typestringopsionalTipe konten, tetap CARD, boleh diabaikan.
contentobjectwajibObjek konten kartu.
Tampilkan atribut anak
mediaobjectopsionalObjek media kartu, pilih salah satu dengan title.
Tampilkan atribut anak
fileobjectwajibObjek sumber daya file media utama.
Tampilkan atribut anak
urlstringwajibURL file, diawali http/https, 1-1000 karakter, file ≤100 MB.
1Panjang maksimum1000heightstringopsionalTinggi: SHORT / MEDIUM / TALL.
thumbnailobjectopsionalObjek thumbnail video, hanya berlaku untuk file video.
Tampilkan atribut anak
urlstringwajibURL thumbnail, disarankan ≤1 MB.
titlestringopsionalJudul kartu, 1-200 karakter, pilih salah satu dengan media.
1Panjang maksimum200descriptionstringopsionalDeskripsi kartu, 1-2000 karakter.
1Panjang maksimum2000suggestionsarray<object>opsionalArray tombol di dalam kartu, maksimal 4.
Tampilkan atribut anak
urlstringopsionalOPEN_URL: URL tujuan, wajib, harus diawali http:// atau https://, 1-2048 karakter.
1Panjang maksimum2048textstringopsionalTeks tombol (terlihat pengguna), 1-25 karakter.
1Panjang maksimum25typestringopsionalTipe tombol: REPLY / OPEN_URL / DIAL_PHONE / SHOW_LOCATION / REQUEST_LOCATION / CREATE_CALENDAR_EVENT.
labelstringopsionalSHOW_LOCATION: label lokasi, opsional.
100titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, wajib, 1-100 karakter.
100endTimestringopsionalCREATE_CALENDAR_EVENT: waktu selesai, wajib, setelah waktu mulai, format sama dengan startTime.
latitudenumberopsionalSHOW_LOCATION: lintang, wajib, rentang -90~90.
longitudenumberopsionalSHOW_LOCATION: bujur, wajib, rentang -180~180.
startTimestringopsionalCREATE_CALENDAR_EVENT: waktu mulai, wajib, format yyyy-MM-dd'T'HH:mm:ss.SSSZ.
applicationstringopsionalOPEN_URL: cara membuka, BROWSER (default) atau WEBVIEW; opsional, hanya diteruskan tanpa validasi.
descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, opsional, maksimal 500 karakter.
500fallbackUrlstringopsionalREQUEST_LOCATION / CREATE_CALENDAR_EVENT: URL fallback opsional, tidak divalidasi.
phoneNumberstringopsionalDIAL_PHONE: nomor tujuan, wajib, dengan kode negara dan lolos validasi format.
postbackDatastringopsionalData yang dikembalikan apa adanya saat diklik, wajib, 1-2048 karakter.
1Panjang maksimum2048webviewViewModestringopsionalOPEN_URL dengan WEBVIEW: FULL / HALF / TALL; opsional, hanya diteruskan tanpa validasi.
alignmentstringwajibPerataan gambar: LEFT / RIGHT. Wajib dikirim (VERTICAL juga perlu dikirim).
orientationstringwajibOrientasi kartu: HORIZONTAL (gambar kiri/kanan) / VERTICAL (gambar atas/bawah).
suggestionsarray<object>opsionalArray tombol di luar kartu, maksimal 11.
Tampilkan atribut anak
urlstringopsionalOPEN_URL: URL tujuan, wajib, harus diawali http:// atau https://, 1-2048 karakter.
1Panjang maksimum2048textstringopsionalTeks tombol (terlihat pengguna), 1-25 karakter.
1Panjang maksimum25typestringopsionalTipe tombol: REPLY / OPEN_URL / DIAL_PHONE / SHOW_LOCATION / REQUEST_LOCATION / CREATE_CALENDAR_EVENT.
labelstringopsionalSHOW_LOCATION: label lokasi, opsional.
100titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, wajib, 1-100 karakter.
100endTimestringopsionalCREATE_CALENDAR_EVENT: waktu selesai, wajib, setelah waktu mulai, format sama dengan startTime.
latitudenumberopsionalSHOW_LOCATION: lintang, wajib, rentang -90~90.
longitudenumberopsionalSHOW_LOCATION: bujur, wajib, rentang -180~180.
startTimestringopsionalCREATE_CALENDAR_EVENT: waktu mulai, wajib, format yyyy-MM-dd'T'HH:mm:ss.SSSZ.
applicationstringopsionalOPEN_URL: cara membuka, BROWSER (default) atau WEBVIEW; opsional, hanya diteruskan tanpa validasi.
descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, opsional, maksimal 500 karakter.
500fallbackUrlstringopsionalREQUEST_LOCATION / CREATE_CALENDAR_EVENT: URL fallback opsional, tidak divalidasi.
phoneNumberstringopsionalDIAL_PHONE: nomor tujuan, wajib, dengan kode negara dan lolos validasi format.
postbackDatastringopsionalData yang dikembalikan apa adanya saat diklik, wajib, 1-2048 karakter.
1Panjang maksimum2048webviewViewModestringopsionalOPEN_URL dengan WEBVIEW: FULL / HALF / TALL; opsional, hanya diteruskan tanpa validasi.
textMsgobjectopsionalBody pesan teks, wajib saat type=TEXT.
Tampilkan atribut anak
textstringwajibIsi pesan teks biasa, 0-3072 karakter.
3072typestringopsionalTipe konten, tetap TEXT, boleh diabaikan.
suggestionsarray<object>opsionalArray tombol, maksimal 11.
Tampilkan atribut anak
urlstringopsionalOPEN_URL: URL tujuan, wajib, harus diawali http:// atau https://, 1-2048 karakter.
1Panjang maksimum2048textstringopsionalTeks tombol (terlihat pengguna), 1-25 karakter.
1Panjang maksimum25typestringopsionalTipe tombol: REPLY / OPEN_URL / DIAL_PHONE / SHOW_LOCATION / REQUEST_LOCATION / CREATE_CALENDAR_EVENT.
labelstringopsionalSHOW_LOCATION: label lokasi, opsional.
100titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, wajib, 1-100 karakter.
100endTimestringopsionalCREATE_CALENDAR_EVENT: waktu selesai, wajib, setelah waktu mulai, format sama dengan startTime.
latitudenumberopsionalSHOW_LOCATION: lintang, wajib, rentang -90~90.
longitudenumberopsionalSHOW_LOCATION: bujur, wajib, rentang -180~180.
startTimestringopsionalCREATE_CALENDAR_EVENT: waktu mulai, wajib, format yyyy-MM-dd'T'HH:mm:ss.SSSZ.
applicationstringopsionalOPEN_URL: cara membuka, BROWSER (default) atau WEBVIEW; opsional, hanya diteruskan tanpa validasi.
descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, opsional, maksimal 500 karakter.
500fallbackUrlstringopsionalREQUEST_LOCATION / CREATE_CALENDAR_EVENT: URL fallback opsional, tidak divalidasi.
phoneNumberstringopsionalDIAL_PHONE: nomor tujuan, wajib, dengan kode negara dan lolos validasi format.
postbackDatastringopsionalData yang dikembalikan apa adanya saat diklik, wajib, 1-2048 karakter.
1Panjang maksimum2048webviewViewModestringopsionalOPEN_URL dengan WEBVIEW: FULL / HALF / TALL; opsional, hanya diteruskan tanpa validasi.
templateobjectopsionalBody pesan template, wajib saat type=TEMPLATE. Template harus dibuat dan disetujui lebih dulu; tipe pengiriman ditentukan konfigurasi template (mendukung RCS dan MMS).
Tampilkan atribut anak
typestringopsionalTipe konten, tetap TEMPLATE, boleh diabaikan.
parametersarray<object>opsionalArray parameter template; wajib untuk template variabel, kekurangan parameter mengembalikan 150002.
Tampilkan atribut anak
namestringwajibNama parameter, sesuai placeholder {{name}} dalam template.
valuestringwajibNilai parameter.
templateIdstringwajibID template (disetujui di konsol); tidak ada mengembalikan 010005, belum disetujui mengembalikan 150008.
carouselMsgobjectopsionalBody pesan kartu karusel, wajib saat type=CAROUSEL.
Tampilkan atribut anak
typestringopsionalTipe konten, tetap CAROUSEL, boleh diabaikan.
contentsarray<object>wajibArray kartu anak, 2-10 kartu, struktur tiap kartu sama dengan konten kartu.
Tampilkan atribut anak
mediaobjectopsionalObjek media: file utama, thumbnail video opsional, tinggi opsional.
Tampilkan atribut anak
fileobjectwajibObjek sumber daya file media utama.
Tampilkan atribut anak
urlstringwajibURL file, diawali http/https, 1-1000 karakter, file ≤100 MB.
1Panjang maksimum1000heightstringopsionalTinggi: SHORT / MEDIUM / TALL.
thumbnailobjectopsionalObjek thumbnail video, hanya berlaku untuk file video.
Tampilkan atribut anak
urlstringwajibURL thumbnail, disarankan ≤1 MB.
titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, 1-100 karakter.
1Panjang maksimum200descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, 1-500 karakter.
1Panjang maksimum2000suggestionsarray<object>opsionalArray tombol di dalam kartu anak, maksimal 4.
Tampilkan atribut anak
urlstringopsionalOPEN_URL: URL tujuan, wajib, harus diawali http:// atau https://, 1-2048 karakter.
1Panjang maksimum2048textstringopsionalTeks tombol (terlihat pengguna), 1-25 karakter.
1Panjang maksimum25typestringopsionalTipe tombol: REPLY / OPEN_URL / DIAL_PHONE / SHOW_LOCATION / REQUEST_LOCATION / CREATE_CALENDAR_EVENT.
labelstringopsionalSHOW_LOCATION: label lokasi, opsional.
100titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, wajib, 1-100 karakter.
100endTimestringopsionalCREATE_CALENDAR_EVENT: waktu selesai, wajib, setelah waktu mulai, format sama dengan startTime.
latitudenumberopsionalSHOW_LOCATION: lintang, wajib, rentang -90~90.
longitudenumberopsionalSHOW_LOCATION: bujur, wajib, rentang -180~180.
startTimestringopsionalCREATE_CALENDAR_EVENT: waktu mulai, wajib, format yyyy-MM-dd'T'HH:mm:ss.SSSZ.
applicationstringopsionalOPEN_URL: cara membuka, BROWSER (default) atau WEBVIEW; opsional, hanya diteruskan tanpa validasi.
descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, opsional, maksimal 500 karakter.
500fallbackUrlstringopsionalREQUEST_LOCATION / CREATE_CALENDAR_EVENT: URL fallback opsional, tidak divalidasi.
phoneNumberstringopsionalDIAL_PHONE: nomor tujuan, wajib, dengan kode negara dan lolos validasi format.
postbackDatastringopsionalData yang dikembalikan apa adanya saat diklik, wajib, 1-2048 karakter.
1Panjang maksimum2048webviewViewModestringopsionalOPEN_URL dengan WEBVIEW: FULL / HALF / TALL; opsional, hanya diteruskan tanpa validasi.
cardWidthstringwajibLebar kartu: SMALL / MEDIUM.
suggestionsarray<object>opsionalArray tombol di luar karusel, maksimal 11.
Tampilkan atribut anak
urlstringopsionalOPEN_URL: URL tujuan, wajib, harus diawali http:// atau https://, 1-2048 karakter.
1Panjang maksimum2048textstringopsionalTeks tombol (terlihat pengguna), 1-25 karakter.
1Panjang maksimum25typestringopsionalTipe tombol: REPLY / OPEN_URL / DIAL_PHONE / SHOW_LOCATION / REQUEST_LOCATION / CREATE_CALENDAR_EVENT.
labelstringopsionalSHOW_LOCATION: label lokasi, opsional.
100titlestringopsionalCREATE_CALENDAR_EVENT: judul acara, wajib, 1-100 karakter.
100endTimestringopsionalCREATE_CALENDAR_EVENT: waktu selesai, wajib, setelah waktu mulai, format sama dengan startTime.
latitudenumberopsionalSHOW_LOCATION: lintang, wajib, rentang -90~90.
longitudenumberopsionalSHOW_LOCATION: bujur, wajib, rentang -180~180.
startTimestringopsionalCREATE_CALENDAR_EVENT: waktu mulai, wajib, format yyyy-MM-dd'T'HH:mm:ss.SSSZ.
applicationstringopsionalOPEN_URL: cara membuka, BROWSER (default) atau WEBVIEW; opsional, hanya diteruskan tanpa validasi.
descriptionstringopsionalCREATE_CALENDAR_EVENT: deskripsi acara, opsional, maksimal 500 karakter.
500fallbackUrlstringopsionalREQUEST_LOCATION / CREATE_CALENDAR_EVENT: URL fallback opsional, tidak divalidasi.
phoneNumberstringopsionalDIAL_PHONE: nomor tujuan, wajib, dengan kode negara dan lolos validasi format.
postbackDatastringopsionalData yang dikembalikan apa adanya saat diklik, wajib, 1-2048 karakter.
1Panjang maksimum2048webviewViewModestringopsionalOPEN_URL dengan WEBVIEW: FULL / HALF / TALL; opsional, hanya diteruskan tanpa validasi.
productKeystringwajibProduct key: rcs_otp (OTP) / rcs_notify (notification) / rcs_market (marketing) / mms_notify (MMS notification) / mms_market (MMS marketing). Untuk pesan template, nilai mengikuti konfigurasi template (server mengisi ulang berdasarkan templateId); nilai pada permintaan diabaikan.
smsFailoverobjectopsionalKonfigurasi fallback ke SMS teks saat pengiriman RCS gagal.
Tampilkan atribut anak
textstringwajibIsi teks SMS fallback.
senderstringwajibSender untuk SMS fallback.
destinationsarray<object>wajibDaftar penerima, minimal 1; melebihi batas permintaan tunggal mengembalikan 010012.
Tampilkan atribut anak
tostringwajibNomor ponsel dalam format internasional (dengan kode negara, hanya angka), contoh: 8613482734980.
Respons
application/jsonBatch berhasil diterima (HTTP 200).
codestringwajibKode respons enam digit, 000000 berarti operasi berhasil.
dataobjectwajibHasil bisnis: nomor batch uid dan hasil penerimaan per pesan messages; null saat seluruh permintaan gagal.
Tampilkan atribut anak
uidstringwajibNomor batch: uid yang dikirim dikembalikan apa adanya; jika tidak dikirim, mengembalikan batchId dari sistem, konsisten dengan payload push resi.
messagesarray<object>wajibHasil penerimaan per pesan.
Tampilkan atribut anak
mobilestringwajibNomor ponsel yang dikirim.
statusstringwajibHasil penerimaan satu pesan: 000000 berhasil; nilai lain adalah kode error enam digit.
messageIdstringnullopsionalID pesan (dikembalikan saat sukses untuk mengaitkan push resi; null untuk entri gagal).
descriptionstringwajibDeskripsi (Inggris): catatan sukses atau alasan gagal per item; satu field, tanpa enDescription terpisah.
messagestringwajibDeskripsi berbahasa Inggris untuk dibaca manusia, jangan dijadikan dasar logika program; sukses selalu success.
traceIdstringwajibID pelacakan dari platform (32 karakter heksadesimal), independen dari header X-Custom-TraceId.
timestampstringwajibWaktu pembuatan respons, format UTC ISO 8601, presisi milidetik, diakhiri Z.
{
"code": "000000",
"data": {
"uid": "demo_batch_20260814_010",
"messages": [
{
"mobile": "8613482734980",
"status": "000000",
"messageId": "msg-2c4f8e1a-a1b2c3d4e5f60718293a4b5c",
"description": "Submitted success"
},
{
"mobile": "12345",
"status": "010003",
"messageId": null,
"description": "Wrong format of phone number"
}
]
},
"message": "success",
"traceId": "d87a93e50af0437ebcc0c80774126842",
"timestamp": "2026-11-11T03:00:01.000Z"
}Contoh respons dari kontrak yang ditinjau, bukan hasil permintaan nyata.