Antarmuka API Template
Membuat Template
Endpoint
POST https://otp.api.engagelab.cc/v1/template-configs
Autentikasi
Gunakan HTTP Basic Authentication dengan menambahkan Authorization di HTTP Header:
Authorization: Basic ${base64_auth_string}
base64_auth_string dihasilkan dengan algoritma: base64(dev_key:dev_secret)
Contoh Permintaan
Header Permintaan
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
{
"template_id": "test-template-1",
"description": "Test Template 1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "Brand Name",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1,
"template_default_config": {
"contain_security": false,
"contain_expire": false
}
},
"sms_config": {
"template_type": 2,
"template_default_config": {
"contain_security": false,
"contain_expire": false
},
"template_custom_config": {
"custom_sub_type": "authentication",
"custom_content": "xxx",
"custom_country_codes": "HK,PH"
}
},
"voice_config": {
"template_type": 1,
"template_default_config": {
"contain_security": false,
"contain_expire": false
}
},
"email_config": {
"template_name": "Email Template Name",
"template_custom_configs": [{
"language": "default",
"pre_from_name": "test",
"pre_from_mail": "test@test.com",
"pre_subject": "test",
"template_content": "Konten template email preset, wajib diisi. Variabel kustom seperti {{self}}, kode verifikasi adalah {{code}}",
"pre_param_map": {
"self": "Ini adalah nilai preset untuk variabel self"
}
}]
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
}
}
Parameter Permintaan
Objek permintaan dalam format JSON, pastikan header permintaan menyertakan Content-Type: application/json.
| Parameter | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| template_id | String | Wajib | ID template kustom, unik, maksimal 128 karakter |
| description | String | Opsional | Deskripsi template, maksimal 255 karakter |
| send_channel_strategy | String | Wajib | Strategi template. Nilai saluran tunggal: whatsapp/sms/email/voice. Multi-saluran gunakan |
| brand_name | String | Opsional | Tanda tangan merek, menggantikan variabel brand pada beberapa template. Maksimal 2-10 karakter |
| verify_code_config | Object | Wajib Kondisional | Konfigurasi kode verifikasi, wajib jika template berisi jenis kode verifikasi |
| verify_code_config.verify_code_type | Integer | Wajib | Jenis kode verifikasi, rentang [1,7]. 1-Angka/2-Huruf kecil/4-Huruf besar. Bisa digabung (misal, 3=angka+huruf kecil) |
| verify_code_config.verify_code_len | Integer | Wajib | Panjang kode verifikasi, rentang [4,10] |
| verify_code_config.verify_code_ttl | Integer | Wajib | Masa berlaku kode verifikasi, menit, rentang [1,10]. Jika strategi termasuk WhatsApp, hanya boleh 1, 5, atau 10 |
| whatsapp_config | Object | Wajib Kondisional | Konfigurasi WhatsApp, wajib jika strategi penyaluran termasuk WhatsApp |
| whatsapp_config.template_type | Integer | Wajib | Jenis template WhatsApp, hanya mendukung default, nilai tetap 1 |
| whatsapp_config.template_default_config | Object | Wajib Kondisional | Konfigurasi template default WhatsApp, wajib untuk template default |
| sms_config | Object | Wajib Kondisional | Konfigurasi SMS, wajib jika strategi penyaluran termasuk SMS |
| sms_config.template_type | Integer | Wajib | Jenis template SMS, 1-Default/2-Kustom |
| sms_config.template_default_config | Object | Wajib Kondisional | Konfigurasi default SMS, wajib untuk template default |
| sms_config.template_custom_config | Object | Wajib Kondisional | Konfigurasi kustom SMS, wajib untuk template kustom |
| sms_config.template_custom_config.custom_sub_type | String | Wajib | Jenis kustom: authentication/marketing/utility |
| sms_config.template_custom_config.custom_content | String | Wajib | Konten template kustom. Untuk authentication wajib ada variabel {{code}} |
| sms_config.template_custom_config.custom_country_codes | String | Opsional | Kode negara tujuan, dipisahkan koma, referensi saat peninjauan template |
| voice_config | Object | Wajib Kondisional | Konfigurasi Voice, wajib jika strategi penyaluran termasuk Voice |
| voice_config.template_type | Integer | Wajib | Jenis template Voice, hanya mendukung default, nilai tetap 1 |
| voice_config.template_default_config | Object | Wajib Kondisional | Konfigurasi default Voice, wajib untuk template default |
| email_config | Object | Wajib Kondisional | Konfigurasi Email, wajib jika strategi penyaluran termasuk Email |
| email_config.template_name | String | Wajib | Nama template Email |
| email_config.template_custom_configs | Array | Wajib Kondisional | Konfigurasi kustom Email, wajib untuk tipe kustom, mendukung multi-bahasa |
| email_config.template_custom_configs.language | String | Wajib | Bahasa, default adalah default. Konten template dapat dicocokkan berdasarkan parameter bahasa saat pengiriman |
| email_config.template_custom_configs.pre_from_name | String | Opsional | Nama pengirim preset |
| email_config.template_custom_configs.pre_from_mail | String | Wajib | Email pengirim preset |
| email_config.template_custom_configs.pre_subject | String | Wajib | Subjek email preset |
| email_config.template_custom_configs.template_content | String | Wajib | Konten email, mendukung HTML. Variabel harus diapit dengan {{}} |
| email_config.template_custom_configs.pre_param_map | Object | Opsional | Nilai default variabel email. Dinyatakan pasangan key-value, nilai string |
| pwa_config | Object | Opsional | Konfigurasi PWA, opsional |
| pwa_config.pwa_platform | String | Opsional | Platform PWA yang digunakan. Untuk nilai spesifik, hubungi dukungan teknis |
| pwa_config.pwa_code | String | Opsional | Kode pada platform PWA yang digunakan |
Parameter Respons
| Field | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| code | Integer | Wajib | Kode error, 0 berarti sukses, lainnya gagal |
| message | String | Wajib | Pesan hasil eksekusi |
Respons Sukses
{
"code": 0,
"message": "success"
}
Respons Gagal
{
"code": 3003,
"message": "not contains any channel config"
}
Kode Error
| Kode Error | HTTP Code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan internal |
| 2001 | 401 | Autentikasi gagal, token salah |
| 2002 | 401 | Autentikasi gagal, token kedaluwarsa/dinonaktifkan |
| 2004 | 403 | Tidak memiliki izin akses API ini |
| 3001 | 400 | Format parameter permintaan tidak valid, cek format JSON |
| 3002 | 400 | Parameter permintaan tidak valid, cek ketentuan |
| 3003 | 400 | Kesalahan parameter bisnis, cek message untuk detail |
Hapus Template
Endpoint
DELETE /v1/template-configs/{templateId}
Autentikasi
Gunakan HTTP Basic Authentication dengan menambahkan Authorization di HTTP Header:
Authorization: Basic ${base64_auth_string}
base64_auth_string dihasilkan dengan algoritma: base64(dev_key:dev_secret)
Contoh Permintaan
Header Permintaan
DELETE /v1/template-configs/{templateId} HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
Tidak ada
Parameter Permintaan
{templateId} pada URL adalah ID template yang akan dihapus.
Parameter Respons
| Field | Tipe | Opsi | Deskripsi |
|---|---|---|---|
| code | Integer | Wajib | Kode error, 0 berarti sukses, lainnya gagal |
| message | String | Wajib | Pesan hasil eksekusi |
Respons Sukses
{
"code": 0,
"message": "success"
}
Respons Gagal
{
"code": 4001,
"message": "config not exist"
}
Kode Error
| Kode Error | HTTP Code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan internal |
| 2001 | 401 | Autentikasi gagal, token salah |
| 2002 | 401 | Autentikasi gagal, token kedaluwarsa/dinonaktifkan |
| 2004 | 403 | Tidak memiliki izin akses API ini |
| 3001 | 400 | Format parameter permintaan tidak valid, cek format JSON |
| 3002 | 400 | Parameter permintaan tidak valid, cek ketentuan |
| 4001 | 400 | Template tidak ditemukan |
Dapatkan Daftar Seluruh Template
API ini belum mendukung paginasi dan akan mengembalikan daftar singkat seluruh template, umumnya tanpa konten spesifik. Untuk detail konten, gunakan API detail.
Endpoint
GET /v1/template-configs
Autentikasi
Gunakan HTTP Basic Authentication. Tambahkan Authorization di HTTP Header:
Authorization: Basic ${base64_auth_string}
base64_auth_string dihasilkan dengan algoritma: base64(dev_key:dev_secret)
Contoh Permintaan
Header Permintaan
GET /v1/template-configs HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
Tidak ada
Parameter Permintaan
Tidak ada
Respons Sukses
[{
"template_id": "test-template-1",
"description": "Test Template 1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "Brand Name",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1
},
"sms_config": {
"template_type": 2,
"template_parts": 1
},
"voice_config": {
"template_type": 1
},
"email_config": {
"template_name": "Email Template Name"
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
},
"created_time": 1234567890,
"status": 1,
"audit_remark": "xx"
}]
Respons Gagal
{
"code": 4001,
"message": "config not exist"
}
Kode Error
| Kode Error | HTTP Code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan Internal |
| 2001 | 401 | Autentikasi gagal, token salah |
| 2002 | 401 | Autentikasi gagal, token kedaluwarsa/dinonaktifkan |
| 2004 | 403 | Tidak memiliki izin akses API ini |
| 4001 | 400 | Template tidak ditemukan |
Dapatkan Detail Template
Endpoint
GET /v1/template-configs/{templateId}
Autentikasi
Gunakan HTTP Basic Authentication. Tambahkan Authorization di HTTP Header:
Authorization: Basic ${base64_auth_string}
base64_auth_string dihasilkan dengan algoritma: base64(dev_key:dev_secret)
Contoh Permintaan
Header Permintaan
GET /v1/template-configs/custom-template-id HTTP/1.1
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Body Permintaan
Tidak ada
Parameter Permintaan
{templateId} pada URL adalah ID template yang ingin diambil.
Respons Sukses
{
"template_id": "test-template-1",
"description": "Test Template 1",
"send_channel_strategy": "whatsapp|sms",
"brand_name": "Brand Name",
"verify_code_config": {
"verify_code_type": 1,
"verify_code_len": 6,
"verify_code_ttl": 1
},
"whatsapp_config": {
"template_type": 1
},
"sms_config": {
"template_type": 2,
"template_parts": 1,
"template_custom_config": {
"custom_sub_type": "authentication",
"custom_content": "xxx"
}
},
"voice_config": {
"template_type": 1
},
"email_config": {
"template_name": "Email Template Name",
"template_custom_configs": [{
"language": "default",
"pre_from_name": "test",
"pre_from_mail": "test@test.com",
"pre_subject": "test",
"template_content": "Konten template email preset, wajib diisi. Variabel kustom seperti {{self}}, kode verifikasi adalah {{code}}",
"pre_param_map": {
"self": "Ini adalah nilai default untuk variabel self"
}
}]
},
"pwa_config": {
"pwa_platform": "xx",
"pwa_code": "xx"
},
"created_time": 1234567890,
"status": 1,
"audit_remark": "xx"
}
Respons Gagal
{
"code": 4001,
"message": "config not exist"
}
Kode Error
| Kode Error | HTTP Code | Deskripsi |
|---|---|---|
| 1000 | 500 | Kesalahan Internal |
| 2001 | 401 | Autentikasi gagal, token salah |
| 2002 | 401 | Autentikasi gagal, token kedaluwarsa/dinonaktifkan |
| 2004 | 403 | Tidak memiliki izin akses API ini |
| 4001 | 400 | Template tidak ditemukan |










