# Template WhatsApp Official: variabel, tombol, dan kode OTP.

Template dibuat dan disetujui di WhatsApp Official › Template (atau diajukan lewat `POST /api/v2/templates`). Lewat API, Anda mengirim nama template dan isi variabelnya. `GET /api/v2/templates` menampilkan variabel yang perlu diisi per template.

Sumber: https://klikflow.id/docs/api/template-dan-otp

## Variabel

Template bernama (`{{nama}}`, `{{orderid}}`) diisi dengan objek; template bernomor (`{{1}}`, `{{2}}`) dengan array sesuai urutan.

```
{
  "channel": "whatsapp_official",
  "to": "6281234567890",
  "type": "template",
  "template": {
    "name": "konfirmasi_pesanan",
    "language": "id",
    "variables": { "nama": "Rina", "orderid": "INV-2207" },
    "button_url": "INV-2207"
  }
}
```

- `header_variables`: variabel judul teks.
- `media_url`: link https untuk judul gambar, video, atau dokumen.
- `button_url`: akhiran link tombol website dinamis.
- `coupon_code`: kode untuk tombol salin kupon, maksimal 15 karakter.
- `language` boleh dikosongkan bila template hanya ada dalam satu bahasa.

## Kode OTP

Kode OTP dibuat dan dicek oleh sistem Anda (login, daftar, checkout). Klik Flow hanya mengirimkannya lewat template Autentikasi yang sudah disetujui.

```
curl -X POST "https://klikflow.id/api/v2/messages" \
  -H "Authorization: Bearer KUNCI_API" \
  -H "Idempotency-Key: 0b8d6c1e-2f4a-4e7b-9c3d-5a6b7c8d9e0f" \
  -H "Content-Type: application/json" \
  -d '{"channel":"whatsapp_official","to":"6281234567890","type":"otp","otp":{"template":"kode_login","code":"482913"}}'
```

- Kode 1–15 huruf, angka, atau tanda `-`.
- Kode diisi ke teks pesan dan tombol Salin kode sekaligus.
- Kode tidak disimpan Klik Flow; di Inbox dan log tampil tersembunyi.
- Pakai Idempotency-Key baru untuk setiap kode baru, agar kode lama tidak terkirim ulang.

## Nama template

Huruf kecil, angka, dan garis bawah, maksimal 512 karakter. Spasi dan tanda `-` di pembuat template otomatis menjadi `_`.
