Dispatch Multi-Row List Selection Menu
curl --request POST \
--url https://app.wachat.net/api/v1/send/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"instanceName": "<string>",
"number": "<string>",
"type": "interactive",
"interactive": {
"type": "list",
"title": "Digital Service Center",
"text": "Please select one of the available consultation sessions below:",
"buttonText": "View All Sessions",
"sections": [
{
"title": "Schedule Options",
"rows": [
{
"title": "Morning Session",
"description": "09:00 - 12:00 PM",
"rowId": "sesi_1"
},
{
"title": "Sesi Siang",
"description": "13:00 - 16:00 AM",
"rowId": "sesi_2"
}
]
}
],
"footerText": "Flobamora Solusi Digital"
},
"delay": 123
}
'import requests
url = "https://app.wachat.net/api/v1/send/list"
payload = {
"instanceName": "<string>",
"number": "<string>",
"type": "interactive",
"interactive": {
"type": "list",
"title": "Digital Service Center",
"text": "Please select one of the available consultation sessions below:",
"buttonText": "View All Sessions",
"sections": [
{
"title": "Schedule Options",
"rows": [
{
"title": "Morning Session",
"description": "09:00 - 12:00 PM",
"rowId": "sesi_1"
},
{
"title": "Sesi Siang",
"description": "13:00 - 16:00 AM",
"rowId": "sesi_2"
}
]
}
],
"footerText": "Flobamora Solusi Digital"
},
"delay": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
instanceName: '<string>',
number: '<string>',
type: 'interactive',
interactive: {
type: 'list',
title: 'Digital Service Center',
text: 'Please select one of the available consultation sessions below:',
buttonText: 'View All Sessions',
sections: [
{
title: 'Schedule Options',
rows: [
{title: 'Morning Session', description: '09:00 - 12:00 PM', rowId: 'sesi_1'},
{title: 'Sesi Siang', description: '13:00 - 16:00 AM', rowId: 'sesi_2'}
]
}
],
footerText: 'Flobamora Solusi Digital'
},
delay: 123
})
};
fetch('https://app.wachat.net/api/v1/send/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.wachat.net/api/v1/send/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'instanceName' => '<string>',
'number' => '<string>',
'type' => 'interactive',
'interactive' => [
'type' => 'list',
'title' => 'Digital Service Center',
'text' => 'Please select one of the available consultation sessions below:',
'buttonText' => 'View All Sessions',
'sections' => [
[
'title' => 'Schedule Options',
'rows' => [
[
'title' => 'Morning Session',
'description' => '09:00 - 12:00 PM',
'rowId' => 'sesi_1'
],
[
'title' => 'Sesi Siang',
'description' => '13:00 - 16:00 AM',
'rowId' => 'sesi_2'
]
]
]
],
'footerText' => 'Flobamora Solusi Digital'
],
'delay' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.wachat.net/api/v1/send/list"
payload := strings.NewReader("{\n \"instanceName\": \"<string>\",\n \"number\": \"<string>\",\n \"type\": \"interactive\",\n \"interactive\": {\n \"type\": \"list\",\n \"title\": \"Digital Service Center\",\n \"text\": \"Please select one of the available consultation sessions below:\",\n \"buttonText\": \"View All Sessions\",\n \"sections\": [\n {\n \"title\": \"Schedule Options\",\n \"rows\": [\n {\n \"title\": \"Morning Session\",\n \"description\": \"09:00 - 12:00 PM\",\n \"rowId\": \"sesi_1\"\n },\n {\n \"title\": \"Sesi Siang\",\n \"description\": \"13:00 - 16:00 AM\",\n \"rowId\": \"sesi_2\"\n }\n ]\n }\n ],\n \"footerText\": \"Flobamora Solusi Digital\"\n },\n \"delay\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.wachat.net/api/v1/send/list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"instanceName\": \"<string>\",\n \"number\": \"<string>\",\n \"type\": \"interactive\",\n \"interactive\": {\n \"type\": \"list\",\n \"title\": \"Digital Service Center\",\n \"text\": \"Please select one of the available consultation sessions below:\",\n \"buttonText\": \"View All Sessions\",\n \"sections\": [\n {\n \"title\": \"Schedule Options\",\n \"rows\": [\n {\n \"title\": \"Morning Session\",\n \"description\": \"09:00 - 12:00 PM\",\n \"rowId\": \"sesi_1\"\n },\n {\n \"title\": \"Sesi Siang\",\n \"description\": \"13:00 - 16:00 AM\",\n \"rowId\": \"sesi_2\"\n }\n ]\n }\n ],\n \"footerText\": \"Flobamora Solusi Digital\"\n },\n \"delay\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.wachat.net/api/v1/send/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instanceName\": \"<string>\",\n \"number\": \"<string>\",\n \"type\": \"interactive\",\n \"interactive\": {\n \"type\": \"list\",\n \"title\": \"Digital Service Center\",\n \"text\": \"Please select one of the available consultation sessions below:\",\n \"buttonText\": \"View All Sessions\",\n \"sections\": [\n {\n \"title\": \"Schedule Options\",\n \"rows\": [\n {\n \"title\": \"Morning Session\",\n \"description\": \"09:00 - 12:00 PM\",\n \"rowId\": \"sesi_1\"\n },\n {\n \"title\": \"Sesi Siang\",\n \"description\": \"13:00 - 16:00 AM\",\n \"rowId\": \"sesi_2\"\n }\n ]\n }\n ],\n \"footerText\": \"Flobamora Solusi Digital\"\n },\n \"delay\": 123\n}"
response = http.request(request)
puts response.read_bodyMessages
Send List Menu
Package granular menus, service catalogs, or support pathways beautifully inside a compact single-toggle floating drawer element that opens structured choices on user interaction.
POST
/
send
/
list
Dispatch Multi-Row List Selection Menu
curl --request POST \
--url https://app.wachat.net/api/v1/send/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"instanceName": "<string>",
"number": "<string>",
"type": "interactive",
"interactive": {
"type": "list",
"title": "Digital Service Center",
"text": "Please select one of the available consultation sessions below:",
"buttonText": "View All Sessions",
"sections": [
{
"title": "Schedule Options",
"rows": [
{
"title": "Morning Session",
"description": "09:00 - 12:00 PM",
"rowId": "sesi_1"
},
{
"title": "Sesi Siang",
"description": "13:00 - 16:00 AM",
"rowId": "sesi_2"
}
]
}
],
"footerText": "Flobamora Solusi Digital"
},
"delay": 123
}
'import requests
url = "https://app.wachat.net/api/v1/send/list"
payload = {
"instanceName": "<string>",
"number": "<string>",
"type": "interactive",
"interactive": {
"type": "list",
"title": "Digital Service Center",
"text": "Please select one of the available consultation sessions below:",
"buttonText": "View All Sessions",
"sections": [
{
"title": "Schedule Options",
"rows": [
{
"title": "Morning Session",
"description": "09:00 - 12:00 PM",
"rowId": "sesi_1"
},
{
"title": "Sesi Siang",
"description": "13:00 - 16:00 AM",
"rowId": "sesi_2"
}
]
}
],
"footerText": "Flobamora Solusi Digital"
},
"delay": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
instanceName: '<string>',
number: '<string>',
type: 'interactive',
interactive: {
type: 'list',
title: 'Digital Service Center',
text: 'Please select one of the available consultation sessions below:',
buttonText: 'View All Sessions',
sections: [
{
title: 'Schedule Options',
rows: [
{title: 'Morning Session', description: '09:00 - 12:00 PM', rowId: 'sesi_1'},
{title: 'Sesi Siang', description: '13:00 - 16:00 AM', rowId: 'sesi_2'}
]
}
],
footerText: 'Flobamora Solusi Digital'
},
delay: 123
})
};
fetch('https://app.wachat.net/api/v1/send/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.wachat.net/api/v1/send/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'instanceName' => '<string>',
'number' => '<string>',
'type' => 'interactive',
'interactive' => [
'type' => 'list',
'title' => 'Digital Service Center',
'text' => 'Please select one of the available consultation sessions below:',
'buttonText' => 'View All Sessions',
'sections' => [
[
'title' => 'Schedule Options',
'rows' => [
[
'title' => 'Morning Session',
'description' => '09:00 - 12:00 PM',
'rowId' => 'sesi_1'
],
[
'title' => 'Sesi Siang',
'description' => '13:00 - 16:00 AM',
'rowId' => 'sesi_2'
]
]
]
],
'footerText' => 'Flobamora Solusi Digital'
],
'delay' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.wachat.net/api/v1/send/list"
payload := strings.NewReader("{\n \"instanceName\": \"<string>\",\n \"number\": \"<string>\",\n \"type\": \"interactive\",\n \"interactive\": {\n \"type\": \"list\",\n \"title\": \"Digital Service Center\",\n \"text\": \"Please select one of the available consultation sessions below:\",\n \"buttonText\": \"View All Sessions\",\n \"sections\": [\n {\n \"title\": \"Schedule Options\",\n \"rows\": [\n {\n \"title\": \"Morning Session\",\n \"description\": \"09:00 - 12:00 PM\",\n \"rowId\": \"sesi_1\"\n },\n {\n \"title\": \"Sesi Siang\",\n \"description\": \"13:00 - 16:00 AM\",\n \"rowId\": \"sesi_2\"\n }\n ]\n }\n ],\n \"footerText\": \"Flobamora Solusi Digital\"\n },\n \"delay\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.wachat.net/api/v1/send/list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"instanceName\": \"<string>\",\n \"number\": \"<string>\",\n \"type\": \"interactive\",\n \"interactive\": {\n \"type\": \"list\",\n \"title\": \"Digital Service Center\",\n \"text\": \"Please select one of the available consultation sessions below:\",\n \"buttonText\": \"View All Sessions\",\n \"sections\": [\n {\n \"title\": \"Schedule Options\",\n \"rows\": [\n {\n \"title\": \"Morning Session\",\n \"description\": \"09:00 - 12:00 PM\",\n \"rowId\": \"sesi_1\"\n },\n {\n \"title\": \"Sesi Siang\",\n \"description\": \"13:00 - 16:00 AM\",\n \"rowId\": \"sesi_2\"\n }\n ]\n }\n ],\n \"footerText\": \"Flobamora Solusi Digital\"\n },\n \"delay\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.wachat.net/api/v1/send/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instanceName\": \"<string>\",\n \"number\": \"<string>\",\n \"type\": \"interactive\",\n \"interactive\": {\n \"type\": \"list\",\n \"title\": \"Digital Service Center\",\n \"text\": \"Please select one of the available consultation sessions below:\",\n \"buttonText\": \"View All Sessions\",\n \"sections\": [\n {\n \"title\": \"Schedule Options\",\n \"rows\": [\n {\n \"title\": \"Morning Session\",\n \"description\": \"09:00 - 12:00 PM\",\n \"rowId\": \"sesi_1\"\n },\n {\n \"title\": \"Sesi Siang\",\n \"description\": \"13:00 - 16:00 AM\",\n \"rowId\": \"sesi_2\"\n }\n ]\n }\n ],\n \"footerText\": \"Flobamora Solusi Digital\"\n },\n \"delay\": 123\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Authenticate your integration payloads by injecting your premium secure Wachat Account API Private Secret Key inside standard Authorization Bearer header vectors.
Body
application/json
Connected target session instance system path identity key.
Target mobile recipient parameters with structural international context.
Configure component container to interactive.
Available options:
interactive Example:
"interactive"
Show child attributes
Show child attributes
Custom organic response processing delay settings in milliseconds.
Response
200
Multi-tiered structured choice component list menu sent successfully.
⌘I
