Perhatikan hal-hal berikut sebelum melakukan request API
Berisi endpoint untuk mengirimkan pesan.
Endpoint untuk mengirimkan pesan teks ke nomor tujuan.
POST https://bot_url/api/sendwa
Required String
SecretKey
:nohp
:{{nohp}}
Nomor WhatsApp tujuan
pesan
:Test kirim text
Pesan yang akan dikirim
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 3
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendwa HTTP/1.1
Host: {{bot_url}}
secretkey: {{secret_key}}
Content-Type: application/json
{
"nohp": "628123xxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendwa',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"nohp": "628123xxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url"
}',
CURLOPT_HTTPHEADER => array(
'secretkey:{{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendwa' \
--header 'secretkey: {{secret_key}}' \
--header 'Content-Type: application/json' \
--data '{
"nohp": "628123xxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url"
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB02B7BEAD27AFA278E",
"status": 0,
"type": "text",
"timestamp": 1678849330,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint API untuk mengirimkan pesan media bisa berupa gambar, audio ataupun dokumen.
POST https://bot_url/api/sendmedia
Required String
SecretKey
:nohp
:{{nohp}}
Nomor WhatsApp tujuan
pesan
:Test kirim text
Pesan yang akan dikirim
mediaurl
:{{mediaurl}}
URL media yang akan dikirim
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 3
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendmedia HTTP/1.1
Host: {{bot_url}}
secretkey:{{secret_key}}
Content-Type: application/json
{
"nohp": "628123xxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url",
"mediaurl": "https://yourdomain/yourmedia.pdf"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendmedia',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"nohp": "628123xxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url",
"mediaurl": "https://yourdomain/yourmedia.pdf"
}',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}}',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendmedia' \
--header 'secretkey: {{secret_key}}' \
--header 'Content-Type: application/json' \
--data '{
"nohp": "628123xxxxxx",
"pesan": "Test kirim text",
"notifyurl":"https://yourdomain/your_notify_url",
"mediaurl":"https://yourdomain/yourmedia.pdf"
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB0A66BA470D58E12C1",
"status": 0,
"type": "image",
"timestamp": 1678852941,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint untuk mengirimkan lokasi.
POST https://bot_url/api/sendlocation
Required String
SecretKey
:nohp
:{{nohp}}
Nomor WhatsApp tujuan
latitude
:0.525960
Latitude
longitude
:101.426866
Longitude
pesan
:Kantor Pusat
Caption untuk lokasi
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 3
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendlocation HTTP/1.1
Host: {{bot_url}}
secretkey: {{secret_key}}
Content-Type: application/json
{
"nohp" :"628123xxxxxx",
"latitude" :"0.525960",
"longitude" :"101.426866",
"pesan" : "Kantor Pusat",
"notifyurl" :"https://yourdomain/your_notify_url"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendlocation',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"nohp" :"628123xxxxxx",
"latitude" :"0.525960",
"longitude" :"101.426866",
"pesan" : "Kantor Pusat",
"notifyurl" :"https://yourdomain/your_notify_url"
}',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendlocation' \
--header 'secretkey: {{secret_key}}' \
--header 'Content-Type: application/json' \
--data '{
"nohp" :"628123xxxxxx",
"latitude" :"0.525960",
"longitude" :"101.426866",
"pesan" : "Kantor Pusat",
"notifyurl" : "https://yourdomain/your_notify_url"
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB08F8CEA28CD2EDD18",
"status": 0,
"type": "chat",
"timestamp": 1678869569,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint untuk mengirimkan kontak.
POST https://bot_url/api/sendcontact
Required String
SecretKey
:nohp
:{{nohp}}
Nomor WhatsApp tujuan
Contact
:{{contact}}
JSON berisi data kontak.
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 3
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendlocation HTTP/1.1
Host: {{bot_url}}
secretkey: {{secret_key}}
Content-Type: application/json
{
"nohp": "628123xxxxxx",
"notifyurl" : "https://yourdomain/your_notify_url",
"contact" : {
"name":"Test",
"numbers":[
"628124xxxxxx","628125xxxxxx","628126xxxxxx"
]
}
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendcontact',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"nohp": "628123xxxxxx",
"notifyurl" : "https://yourdomain/your_notify_url"
,
"contact" : {
"name":"Test",
"numbers":[
"628124xxxxxx","628125xxxxxx","628126xxxxxx"
]
}
}',
CURLOPT_HTTPHEADER => array(
'secretkey:{{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendcontact' \
--header 'secretKey: {{secret_key}}' \
--header 'Content-Type: application/json' \
--data '{
"nohp": "628123xxxxxx",
"notifyurl" : "https://yourdomain/your_notify_url"
,
"contact" : {
"name":"Test",
"numbers":[
"628124xxxxxx","628125xxxxxx","628126xxxxxx"
]
}
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB08F8CEA28CD2EDD18",
"status": 0,
"type": "vcard",
"timestamp": 1678869569,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint untuk mengirim pesan text ke group.
POST https://bot_url/api/sendwatogroup
Required String
SecretKey
:groupid
:{{groupid}}
ID Group tujuan
(Lihat Cara mendapatkan ID Group)
pesan
:Test kirim text
Pesan yang akan dikirim
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 1
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendwatogroup HTTP/1.1
Host: {{bot_url}}
secretkey:{{secret_key}}
Content-Type: application/json
{
"groupid": "120363xxxxxxxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendwatogroup',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"groupid": "120363xxxxxxxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url"
}',
CURLOPT_HTTPHEADER => array(
'secretkey:{{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendwatogroup' \
--header 'secretkey: {{secret_key}};' \
--header 'Content-Type: application/json' \
--data '{
"groupid": "120363xxxxxxxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url"
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB0AE9AE7A8C0845C53",
"status": 0,
"type": "chat",
"timestamp": 1678862008,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint untuk mengirim pesan media (gambar, audio dan dokumen) ke group.
POST https://bot_url/api/sendmediatogroup
Required String
SecretKey
:groupid
:{{groupid}}
ID Group tujuan
(Lihat Cara mendapatkan ID Group)
pesan
:Test kirim text
Pesan yang akan dikirim
mediaurl
:{{mediaurl}}
URL media yang akan dikirim
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 1
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendmediatogroup HTTP/1.1
Host: {{bot_url}}
secretkey:{{secret_key}}
Content-Type: application/json
{
"groupid": "120363xxxxxxxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url",
"mediaurl": "https://yourdomain/yourmedia.pdf"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendmediatogroup',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"groupid": "120363xxxxxxxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url",
"mediaurl": "https://yourdomain/yourmedia.pdf"
}',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendmediatogroup' \
--header 'secretkey: {{secret_key}}' \
--header 'Content-Type: application/json' \
--data '{
"groupid": "120363xxxxxxxxxxx",
"pesan": "Test kirim text",
"notifyurl": "https://yourdomain/your_notify_url",
"mediaurl": "https://yourdomain/yourmedia.pdf"
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB0DA4559BA1BEE7F70",
"status": 0,
"type": "image",
"timestamp": 1678862815,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint untuk mengirimkan lokasi ke group.
POST https://bot_url/api/sendlocationtogroup
Required String
SecretKey
:groupid
:{{groupid}}
ID Group tujuan
(Lihat Cara mendapatkan ID Group)
latitude
:0.525960
Latitude
longitude
:101.426866
Longitude
pesan
:Kantor Pusat
Caption untuk lokasi
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 1
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendlocationtogroup HTTP/1.1
Host: {{bot_url}}
secretkey: {{secret_key}}
Content-Type: application/json
{
"groupid" : "120363xxxxxxxxxxx",
"latitude" : "0.525960",
"longitude" : "101.426866",
"pesan" : "Kantor Pusat",
"notifyurl" : "https://yourdomain/your_notify_url"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendlocationtogroup',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"groupid" : "120363xxxxxxxxxxx",
"latitude" : "0.525960",
"longitude" : "101.426866",
"pesan" : "Kantor Pusat",
"notifyurl" : "https://yourdomain/your_notify_url"
}',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendlocationtogroup' \
--header 'secretkey: {{secret_key}};' \
--header 'Content-Type: application/json' \
--data '{
"groupid" : "120363xxxxxxxxxxx",
"latitude" : "0.525960",
"longitude" : "101.426866",
"pesan" : "Kantor Pusat",
"notifyurl" : "https://yourdomain/your_notify_url"
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB0052E20AFAFC1A87F",
"status": 0,
"type": "chat",
"timestamp": 1678870288,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint untuk mengirimkan kontak ke group.
POST https://bot_url/api/sendcontacttogroup
Required String
SecretKey
:groupid
:{{groupid}}
ID Group tujuan
(Lihat Cara mendapatkan ID Group)
Contact
:{{contact}}
Data kontak yaitu nama dan nomor telepon.
notifyurl
:{{notifyurl}}
URL untuk menerima perubahan status pesan
Notifyurl tidak wajib dimasukkan ke dalam payload body, notifyurl berfungsi menerima perubahan status pesan yang akan dikirimkan oleh Chatbot
Contoh payload yang dikirimkan oleh Chatbot ke notifyurl
{
"msgid": "3EB020B4DBA916EB3379",
"ack": 3
}
msgid adalah ID pesan yang mengalami perubahan status.
ack adalah kode dari status pengiriman pesan.
Berikut ini list ack yang dikirimkan Chatbot:
POST /api/sendlocation HTTP/1.1
Host: {{bot_url}}
secretkey: {{secret_key}}
Content-Type: application/json
{
"groupid": "120363xxxxxxxxxxx",
"notifyurl" : "https://yourdomain/your_notify_url",
"contact" : {
"name":"Test",
"numbers":[
"628124xxxxxx","628125xxxxxx","628126xxxxxx"
]
}
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/sendcontact',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"groupid": "120363xxxxxxxxxxx",
"notifyurl" : "https://yourdomain/your_notify_url"
,
"contact" : {
"name":"Test",
"numbers":[
"628124xxxxxx","628125xxxxxx","628126xxxxxx"
]
}
}',
CURLOPT_HTTPHEADER => array(
'secretkey:{{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/sendcontact' \
--header 'secretKey: {{secret_key}}' \
--header 'Content-Type: application/json' \
--data '{
"groupid": "120363xxxxxxxxxxx",
"notifyurl" : "https://yourdomain/your_notify_url"
,
"contact" : {
"name":"Test",
"numbers":[
"628124xxxxxx","628125xxxxxx","628126xxxxxx"
]
}
}'
Status: 200 OK
Pesan berhasil dikirim
{
"success": true,
"message": {
"id": "3EB08F8CEA28CD2EDD18",
"status": 0,
"type": "vcard",
"timestamp": 1678869569,
"from": "[email protected]",
"to": "[email protected]"
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Berisi endpoint untuk mengambil data group
Endpoint untuk mengambil data group.
POST https://bot_url/api/groups
Required String
SecretKey
:
POST /api/groups HTTP/1.1
Host: {{bot_url}}
secretkey: {{secretkey}}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/groups',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}} '
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location --request POST 'https://{{bot_url}}/api/groups' \
--header 'secretkey: {{secret_key}}' \
--data ''
Status: 200 OK
Data group berhasil diambil
{
"success": true,
"message": [
{
"groupid": "120363xxxxxxxxxxx",
"groupname": "test",
"grouplastchat": 1678975656
},
{
"groupid": "120364xxxxxxxxxxx",
"groupname": "test 2",
"grouplastchat": 1678975657
}
]
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Berisi endpoint untuk mengambil QR code dan cek nomor terdaftar di WhatsApp.
Endpoint untuk mengampil QR code untuk login WhatsApp.
POST https://bot_url/api/getqr
Required String
SecretKey
:
POST /api/getqr/ HTTP/1.1
Host: {{bot_url}}
secretkey: {{secretkey}}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/getqr/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}} '
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location --request POST 'https://{{bot_url}}/api/getqr/' \
--header 'secretkey: {{secret_key}}' \
--data ''
Status: 200 OK
Berhasil mengambil QR code.
Jika client sudah terhubung dengan WhatsApp maka API akan memberikan response seperti berikut.
{
"success": true,
"message": {
"isAuthenticated": true,
"number": "6283xxxxxxxxx",
"name": "6283xxxxxxxxx",
"qrcode": ""
}
}
Jika client tidak terhubung dengan WhatsApp maka API akan memberikan response seperti berikut.
{
"success": true,
"message": {
"isAuthenticated": false,
"qrcode": "2@cuTD5E9F,0S3s8oo08PKOx8PPvlO0/HxOG8jPxEk="
}
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Endpoint API untuk mengecek nomor apakah terdaftar di WhatsApp atau tidak.
POST https://bot_url/api/checknumber
Required String
SecretKey
:nohp
:{{nohp}}
Nomor yang akan di cek
POST /api/checknumber HTTP/1.1
Host: {{bot_url}}
secretkey: {{secret_key}}
Content-Type: application/json
{
"nohp":"628123xxxxxx"
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{bot_url}}/api/checknumber',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"nohp":"628123xxxxxx"
}',
CURLOPT_HTTPHEADER => array(
'secretkey: {{secret_key}} ',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl --location 'https://{{bot_url}}/api/checknumber' \
--header 'secretkey: {{secret_key}};' \
--header 'Content-Type: application/json' \
--data '{
"nohp":"628123xxxxxx"
}'
Status: 200 OK
Berhasil mengecek nomor WhatsApp
{
"success": true,
"message": true
}
Status: 400 Bad Request
Penyebab gagal:
{
"success": false,
"errorMessage": "[Pesan Error]"
}
Anda dapat meneruskan sebagian atau seluruh chat dari pelanggan ke URL webhook yang ditentukan. Chat dengan kata kunci tertentu bisa diarahkan ke URL yang berbeda. Anda bisa set lebih dari satu kata kunci melalui menu Webhook Settings.
User-input: 'penawaran#Jhon Doe#[email protected]'
Adapun request yang akan dikirimkan oleh bot ke URL webhook yang Anda tentukan adalah sebagai berikut:
[POST] Payload
{
"keyword": "penawaran#",
"data": [
"Jhon Doe",
"[email protected]"
],
"webhookkey": "YourSecretWebhookKey",
"from": "6282386xxxxxx"
}
Untuk alasan keamanan, pastikan Anda telah mendapatkan Webhook Key dan menggunakan nya sebagai validasi pada source code Anda nanti. Request ini akan dikirimkan pada URL yang telah Anda cantumkan pada Bot Command sebelumnya.
Berikut ini adalah contoh bagaimana menghandle webhook dengan menggunakan bahasa pemrograman PHP
//Example with PHP
$json_params = file_get_contents("php://input");
$data = json_decode($json_params, TRUE);
$token = $data['webhookkey'];
$type = strtolower($data['keyword']);
$key = {{your_webhook_key}}; // Chat Bot API Token
$response = array();
if($token == $key){
if($type == "penawaran"){
//Masukkan proses yang Anda ingin kan disini
// Sample
$hasNoError = true;
if($hasNoError){
$message['type'] = "message";
$message['content'] = "Masukkan pesan berhasil disini";
$response[] = $message;
}else{
$message['type'] = "message";
$message['content'] = "Masukkan pesan error disini";
$response[] = $message;
}
}else if($type == "otherType"){
//Masukkan proses yang Anda ingin kan disini
// Sample
$hasNoError = true;
if($hasNoError){
$message['type'] = "message";
$message['content'] = "Masukkan pesan berhasil disini";
$response[] = $message;
}else{
$message['type'] = "message";
$message['content'] = "Masukkan pesan error disini";
$response[] = $message;
}
}else{
$message['type'] = "message";
$message['content'] = "Kata kunci tidak terdaftar";
$response[] = $message;
}
header_remove();
header('HTTP/1.1 200 Created');
header('Content-Type: application/json');
$replyObj['reply'] = $response;
$res['success'] = true;
$res['message'] = $response;
print json_encode($res);
}else{
header_remove();
header('HTTP/1.1 200 Created');
header('Content-Type: application/json');
$res['success'] = false;
$res['message'] = "Unauthorized";
print json_
}
Berikut ini format Response yang harus diberikan oleh webhook
Response
{
"success": true,
"message": {
"reply": [
{
"type": "message",
"content": "Webhook Response"
},
{
"type": "message",
"content": "Webhook Response"
},
{
"type": "message",
"content": "Webhook Response"
}
]
}
}
Chatbot akan mengirimkan response sesuai dengan data yang ada pada Array Object "Reply". Adapun Response Webhook yang dapat dikirimkan oleh Chatbot antara lain bisa mengirimkan pesan Text, Lokasi dan Pesan Media (Audio, Dokumen, dan Gambar) dengan maksimal 16MB. Berikut ini Contoh Response nya:
Response
{
"success": true,
"message": {
"reply": [
{
"type": "message",
"content": "Webhook Response"
},
{
"type": "location",
"content": [
{
"coordinate": "{{latitude}}-{{longitude}}"
}
]
},
{
"type": "audio",
"content": "https://yourdomain/your_audio_file.mp3"
},
{
"type": "image",
"content": "https://yourdomain/your_image_file.png"
},
{
"type": "document",
"content": "https://yourdomain/your_document_file.pdf"
}
]
}
}