WAVIRO API DOCUMENTATION

Introduction

Perhatikan hal-hal berikut sebelum melakukan request API

  1. Semua request dikirimkan dalam bentuk JSON
  2. Request dikirim dengan method POST
  3. Pastikan Anda telah mendapatkan akses berupa url bot dan secret key untuk mengakses API.
    Kemudian tambahkan SecretKey pada header API dengan value secret key yang
    sudah didapat
  4. Pastikan nomor tujuan diawali dengan kode negara tanpa menggunakan simbol
    plus/tambah (+). Contoh: 6282386xxxxxx (Benar), 082386xxxxxx (Salah),
    +6282386xxxxxx (Salah)
  5. Klik link ini untuk mengunduh JSON Collection Postman.
  6. Atau klik tombol dibawah untuk run dengan Postman

Send message

Berisi endpoint untuk mengirimkan pesan.

Send text message

Endpoint untuk mengirimkan pesan teks ke nomor tujuan.

POST https://bot_url/api/sendwa

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

nohp

:

{{nohp}}

Nomor WhatsApp tujuan

pesan

:

Test kirim text

Pesan yang akan dikirim

notifyurl

:

{{notifyurl}}

URL untuk menerima perubahan status pesan

Notifyurl


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent
  •  2 : Delivered
  •  3 : Read

Penting


  1. Jangan kirimkan pesan massal/broadcast ke nomor yang tidak pernah chat ke nomor WhatsApp Anda.
  2. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  3. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                                                    
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:

  1. Chatbot belum terhubung dengan WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Mengirimkan pesan yang sama ke nomor yang sama secara berturut-turut
  5. Nomor WhatsApp Tujuan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Send media message

Endpoint API untuk mengirimkan pesan media bisa berupa gambar, audio ataupun dokumen.

POST https://bot_url/api/sendmedia

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent
  •  2 : Delivered
  •  3 : Read

Penting


  1. File media yang dikirimkan tidak melebihi 16MB
  2. Jangan kirimkan pesan massal/broadcast ke nomor yang tidak pernah chat ke nomor WhatsApp Anda.
  3. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  4. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                                                    
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:

  1. Chatbot belum terhubung dengan WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Ukuran file media melebihi 16MB
  5. Mengirimkan pesan media yang sama ke nomor yang sama secara berturut-turut
  6. Nomor WhatsApp Tujuan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Send location message

Endpoint untuk mengirimkan lokasi.

POST https://bot_url/api/sendlocation

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent
  •  2 : Delivered
  •  3 : Read

Penting


  1. Jangan kirimkan pesan massal/broadcast ke nomor yang tidak pernah chat ke nomor WhatsApp Anda.
  2. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  3. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                        
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:

  1. Chatbot belum terhubung dengan WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Mengirimkan pesan yang sama ke nomor yang sama secara berturut-turut
  5. Nomor WhatsApp Tujuan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Send contact

Endpoint untuk mengirimkan kontak.

POST https://bot_url/api/sendcontact

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

nohp

:

{{nohp}}

Nomor WhatsApp tujuan

Contact

:

{{contact}}

JSON berisi data kontak.

notifyurl

:

{{notifyurl}}

URL untuk menerima perubahan status pesan

Notifyurl


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent
  •  2 : Delivered
  •  3 : Read

Penting


  1. Jangan kirimkan pesan massal/broadcast ke nomor yang tidak pernah chat ke nomor WhatsApp Anda.
  2. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  3. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                        
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:

  1. Chatbot belum terhubung dengan WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Mengirimkan pesan yang sama ke nomor yang sama secara berturut-turut
  5. Nomor WhatsApp Tujuan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Send text message to group

Endpoint untuk mengirim pesan text ke group.

POST https://bot_url/api/sendwatogroup

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent

Penting


  1. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  2. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                                                    
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:

  1. Client belum terkoneksi dengan bot WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Mengirimkan pesan yang sama ke group yang sama secara berturut-turut
  5. ID Group tujuan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Send media message to group

Endpoint untuk mengirim pesan media (gambar, audio dan dokumen) ke group.

POST https://bot_url/api/sendmediatogroup

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent

Penting


  1. File media yang dikirimkan tidak melebihi 16MB
  2. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  3. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                                                    
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:

  1. Client belum terkoneksi dengan bot WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Ukuran file media melebihi 16MB
  5. Mengirimkan pesan yang sama ke group yang sama secara berturut-turut
  6. ID Group tujuan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Send location message to group

Endpoint untuk mengirimkan lokasi ke group.

POST https://bot_url/api/sendlocationtogroup

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent

Penting


  1. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  2. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                                                    
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:

  1. Client belum terkoneksi dengan bot WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Mengirimkan pesan yang sama ke group yang sama secara berturut-turut
  5. ID Group tujuan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Send contact to group

Endpoint untuk mengirimkan kontak ke group.

POST https://bot_url/api/sendcontacttogroup

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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


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:

  • -1 : Error
  •  0 : Pending
  •  1 : Sent
  •  2 : Delivered
  •  3 : Read

Penting


  1. Jangan kirimkan pesan massal/broadcast ke nomor yang tidak pernah chat ke nomor WhatsApp Anda.
  2. Kirimkan hanya 5 pesan per menit untuk menghindari blokir dari WhatsApp.
  3. API WAVIRO mengirimkan langsung seluruh pesan yang diterima. Jadi, pembatasan pengiriman pesan WhatsApp harus dilakukan di sistem Anda.
                                        
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:

  1. Chatbot belum terhubung dengan WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
  4. Mengirimkan pesan yang sama ke nomor yang sama secara berturut-turut
  5. Nomor WhatsApp Tujuan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Group

Berisi endpoint untuk mengambil data group

Get group lists

Endpoint untuk mengambil data group.

POST https://bot_url/api/groups

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Penting


  1. Anda bisa mendapatkan data dari seluruh WA Group dimana nomor chatbot tergabung.
  2. WAVIRO hanya dapat memberikan data WA Group yang punya aktivitas. Jika ada WA Group yang datanya tidak muncul/terbaca, silakan lakukan aktivitas sederhana pada group tersebut, misal: kirim pesan chat di group, tambahkan/hapus anggota baru ke group, dll. Tunggu beberapa menit dan data WA Group akan tampil/terbaca.
  3. Jika Chatbot keluar/dikeluarkan dari WA Group tertentu, maka data WA Group tersebut akan otomatis dihapus.
                                                                    
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:

  1. Client belum terkoneksi dengan bot WhatsApp
  2. SecretKey yang digunakan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Bot

Berisi endpoint untuk mengambil QR code dan cek nomor terdaftar di WhatsApp.

Get QR code

Endpoint untuk mengampil QR code untuk login WhatsApp.

POST https://bot_url/api/getqr

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API
                                                                    
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:

  1. SecretKey yang digunakan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Check number

Endpoint API untuk mengecek nomor apakah terdaftar di WhatsApp atau tidak.

POST https://bot_url/api/checknumber

Header

Required String


SecretKey

:
Key yang digunakan untuk mengakses API

Body

Required
JSON Object

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:

  1. Client belum terkoneksi dengan bot WhatsApp
  2. SecretKey yang digunakan tidak valid
  3. Data Payload Body tidak lengkap
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}

Webhook

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"
            }
        ]
    }
}