Membuat Templat Pesan Baru
Endpoint ini digunakan untuk membuat dan mengirimkan templat pesan WhatsApp baru ke Meta untuk melalui proses peninjauan (review). Setelah templat disetujui oleh Meta, Anda dapat menggunakannya untuk mengirim pesan kepada pelanggan.
🛜 Endpoint
POST /v1/templates
📦 Request Body (JSON)
{
"name": "promo_diskon_baru",
"category": "MARKETING",
"language": "id",
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Promo Spesial!"
},
{
"type": "BODY",
"text": "Halo {{1}}, nikmati diskon khusus {{2}}% untuk semua produk. Gunakan kode: {{3}}."
},
{
"type": "FOOTER",
"text": "Kirim STOP untuk berhenti berlangganan."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Tertarik!"
},
{
"type": "URL",
"text": "Kunjungi Situs",
"url": "https://kirem.co.id/promo"
}
]
}
]
}
📋 Penjelasan Field
| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
name |
String | Ya | Nama unik templat (hanya huruf kecil, angka, dan garis bawah; contoh: promo_diskon_baru) |
category |
String | Ya | Kategori templat (lihat tabel di bawah) |
language |
String | Ya | Kode bahasa templat (contoh: id untuk Bahasa Indonesia, en untuk Inggris) |
components |
Array | Ya | Daftar komponen penyusun templat |
🏷️ Kategori Templat
| Kategori | Keterangan | Contoh Penggunaan |
|---|---|---|
MARKETING |
Pemasaran dan promosi | Diskon, penawaran khusus, pengumuman produk baru |
UTILITY |
Transaksi dan pemberitahuan | Konfirmasi pesanan, pengingat janji temu, pembaruan akun |
AUTHENTICATION |
Kode keamanan dan OTP | Kode verifikasi login, OTP transaksi |
🧩 Tipe Komponen
HEADER (Opsional)
Bagian atas templat. Dapat berupa teks atau media.
| Format | Keterangan |
|---|---|
TEXT |
Header teks biasa (maksimal 60 karakter) |
IMAGE |
Header berupa gambar (sertakan URL contoh gambar) |
VIDEO |
Header berupa video (sertakan URL contoh video) |
DOCUMENT |
Header berupa dokumen (sertakan URL contoh dokumen) |
{
"type": "HEADER",
"format": "IMAGE",
"example": {
"header_handle": ["https://contoh.com/banner.jpg"]
}
}
BODY (Wajib)
Isi utama pesan. Mendukung parameter variabel dengan format {{1}}, {{2}}, dan seterusnya. Parameter ini akan diganti dengan nilai aktual saat pengiriman.
{
"type": "BODY",
"text": "Halo {{1}}, pesanan Anda #{{2}} sedang diproses."
}
FOOTER (Opsional)
Catatan kaki di bagian bawah pesan (maksimal 60 karakter).
{
"type": "FOOTER",
"text": "Balas STOP untuk berhenti."
}
BUTTONS (Opsional)
Tombol aksi interaktif. Maksimal 2 tombol per templat.
| Tipe Tombol | Keterangan |
|---|---|
QUICK_REPLY |
Tombol balasan cepat — mengirimkan teks yang telah ditentukan ke bisnis |
URL |
Tombol tautan — membuka URL di browser ponsel pelanggan |
{
"type": "BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Ya, lanjutkan"
},
{
"type": "URL",
"text": "Lihat Detail",
"url": "https://kirem.co.id/pesanan/123"
}
]
}
🚦 Contoh cURL Request
curl -X POST https://api.kirem.co/v1/templates \
-H "Authorization: Bearer kirem_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "konfirmasi_pesanan",
"category": "UTILITY",
"language": "id",
"components": [
{
"type": "BODY",
"text": "Halo {{1}}, pesanan Anda #{{2}} telah dikonfirmasi. Estimasi pengiriman: {{3}} hari kerja."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Lacak Pesanan"
},
{
"type": "URL",
"text": "Lihat Status",
"url": "https://kirem.co.id/pesanan/{{2}}"
}
]
}
]
}'
✅ Respons Sukses (200 OK)
{
"status": 200,
"message": "Template created successfully",
"data": {
"id": "194819481948194",
"status": "PENDING",
"category": "UTILITY"
}
}
| Field | Keterangan |
|---|---|
data.id |
ID unik templat yang baru dibuat |
data.status |
Status awal selalu PENDING — menunggu peninjauan Meta |
data.category |
Kategori templat yang didaftarkan |
⚠️ Proses Peninjauan Meta
- Setelah templat dibuat, status akan menjadi
PENDING. - Meta akan meninjau templat dalam waktu 24–48 jam.
- Jika disetujui, status berubah menjadi
APPROVEDdan templat siap digunakan. - Jika ditolak, status menjadi
REJECTED. Periksa alasan penolakan dan perbaiki konten templat sebelum mengirim ulang. - Gunakan endpoint List Templates untuk memantau status persetujuan.
⚠️ Aturan Penamaan
- Nama templat hanya boleh mengandung huruf kecil, angka, dan garis bawah (
_). - Tidak boleh mengandung spasi atau karakter khusus lainnya.
- Nama harus unik — tidak boleh sama dengan templat yang sudah ada.