Send product
curl --request POST \
--url https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "5511999999999",
"catalogPhone": "5511999999999",
"productId": "7190654897637620"
}
'import requests
url = "https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product"
payload = {
"phone": "5511999999999",
"catalogPhone": "5511999999999",
"productId": "7190654897637620"
}
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({
phone: '5511999999999',
catalogPhone: '5511999999999',
productId: '7190654897637620'
})
};
fetch('https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product', 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://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product",
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([
'phone' => '5511999999999',
'catalogPhone' => '5511999999999',
'productId' => '7190654897637620'
]),
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://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product"
payload := strings.NewReader("{\n \"phone\": \"5511999999999\",\n \"catalogPhone\": \"5511999999999\",\n \"productId\": \"7190654897637620\"\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://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"5511999999999\",\n \"catalogPhone\": \"5511999999999\",\n \"productId\": \"7190654897637620\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product")
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 \"phone\": \"5511999999999\",\n \"catalogPhone\": \"5511999999999\",\n \"productId\": \"7190654897637620\"\n}"
response = http.request(request)
puts response.read_body{
"zaapId": "3999984263738042930CD6ECDE9VDWSA",
"messageId": "D241XXXX732339502B68",
"id": "D241XXXX732339502B68"
}{
"error": 405,
"message": "Method not allowed"
}{
"error": 415,
"message": "Unsupported media type"
}Mensagens
Enviar produto
Envie produtos do catálogo do WhatsApp Business
POST
/
send-product
Send product
curl --request POST \
--url https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "5511999999999",
"catalogPhone": "5511999999999",
"productId": "7190654897637620"
}
'import requests
url = "https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product"
payload = {
"phone": "5511999999999",
"catalogPhone": "5511999999999",
"productId": "7190654897637620"
}
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({
phone: '5511999999999',
catalogPhone: '5511999999999',
productId: '7190654897637620'
})
};
fetch('https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product', 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://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product",
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([
'phone' => '5511999999999',
'catalogPhone' => '5511999999999',
'productId' => '7190654897637620'
]),
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://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product"
payload := strings.NewReader("{\n \"phone\": \"5511999999999\",\n \"catalogPhone\": \"5511999999999\",\n \"productId\": \"7190654897637620\"\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://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"5511999999999\",\n \"catalogPhone\": \"5511999999999\",\n \"productId\": \"7190654897637620\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.omni.z-api.io/channels/{channel_id}/token/{channel_token}/send-product")
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 \"phone\": \"5511999999999\",\n \"catalogPhone\": \"5511999999999\",\n \"productId\": \"7190654897637620\"\n}"
response = http.request(request)
puts response.read_body{
"zaapId": "3999984263738042930CD6ECDE9VDWSA",
"messageId": "D241XXXX732339502B68",
"id": "D241XXXX732339502B68"
}{
"error": 405,
"message": "Method not allowed"
}{
"error": 415,
"message": "Unsupported media type"
}Conceituação
Método para envio de produtos cadastrados no catálogo do WhatsApp Business. O produto deve estar previamente cadastrado no catálogo da conta business. OproductId pode ser obtido via API de listagem de produtos ou pelo webhook de produtos.
Este recurso requer uma conta WhatsApp Business com catálogo configurado.
Autorizações
Secret Key generated in the Omni Z-API Security panel
Corpo
application/json