Enviar pedido
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-order \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>"
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/send-order"
payload = {
"phone": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>"
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
order: {
currency: '<string>',
products: [{name: '<string>', value: 123, quantity: 123, productId: '<string>'}],
discount: 123,
tax: 123,
shipping: 123
}
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/send-order', 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.z-api.io/instances/{instanceId}/token/{token}/send-order",
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' => '<string>',
'order' => [
'currency' => '<string>',
'products' => [
[
'name' => '<string>',
'value' => 123,
'quantity' => 123,
'productId' => '<string>'
]
],
'discount' => 123,
'tax' => 123,
'shipping' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"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.z-api.io/instances/{instanceId}/token/{token}/send-order"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
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.z-api.io/instances/{instanceId}/token/{token}/send-order")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/send-order")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}"
response = http.request(request)
puts response.read_bodyMessages
Enviar pedido
Envia uma mensagem de pedido com produtos do catálogo ou customizados
POST
/
instances
/
{instanceId}
/
token
/
{token}
/
send-order
Enviar pedido
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-order \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"phone": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>"
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/send-order"
payload = {
"phone": "<string>",
"order": {
"currency": "<string>",
"products": [
{
"name": "<string>",
"value": 123,
"quantity": 123,
"productId": "<string>"
}
],
"discount": 123,
"tax": 123,
"shipping": 123
}
}
headers = {
"Client-Token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Client-Token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phone: '<string>',
order: {
currency: '<string>',
products: [{name: '<string>', value: 123, quantity: 123, productId: '<string>'}],
discount: 123,
tax: 123,
shipping: 123
}
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/send-order', 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.z-api.io/instances/{instanceId}/token/{token}/send-order",
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' => '<string>',
'order' => [
'currency' => '<string>',
'products' => [
[
'name' => '<string>',
'value' => 123,
'quantity' => 123,
'productId' => '<string>'
]
],
'discount' => 123,
'tax' => 123,
'shipping' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Client-Token: <api-key>",
"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.z-api.io/instances/{instanceId}/token/{token}/send-order"
payload := strings.NewReader("{\n \"phone\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Client-Token", "<api-key>")
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.z-api.io/instances/{instanceId}/token/{token}/send-order")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"phone\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/send-order")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Client-Token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phone\": \"<string>\",\n \"order\": {\n \"currency\": \"<string>\",\n \"products\": [\n {\n \"name\": \"<string>\",\n \"value\": 123,\n \"quantity\": 123,\n \"productId\": \"<string>\"\n }\n ],\n \"discount\": 123,\n \"tax\": 123,\n \"shipping\": 123\n }\n}"
response = http.request(request)
puts response.read_bodyConceituação
Neste método você poderá enviar mensagens de pedidos, contendo produtos do seu catálogo ou customizados no momento do envio. Esta mensagem é a mesma que é enviada quando você clica no botão “Aceitar pedido” ou “Enviar cobrança”.Disponível apenas para contas business do WhatsApp. Produtos sem
productId são tratados como itens customizados.Exemplo no WhatsApp

Atributos
Header
ID da sua instância. Disponível no painel Z-API em Instâncias.
Token da sua instância Z-API.
Obrigatórios
Telefone do destinatário no formato DDI DDD NÚMERO. Ex: 551199999999
Dados do pedido
Mostrar Propriedades
Mostrar Propriedades
Código da moeda (ex: BRL)
Valor de desconto
Valor de imposto
Valor de frete
Opcionais
Configurações de pagamento
Request Body
Com produtos do catálogo e pagamento:{
"phone": "554499999999",
"order": {
"currency": "BRL",
"discount": 10,
"tax": 10,
"shipping": 5,
"products": [
{
"productId": "23940797548900636",
"name": "Nome do produto",
"value": 10,
"quantity": 2
}
]
},
"paymentSettings": {
"pix": {
"key": "Chave PIX",
"keyType": "cpf",
"name": "Nome da chave"
},
"card": {
"enabled": true
}
}
}
{
"phone": "554499999999",
"order": {
"currency": "BRL",
"products": [
{
"name": "Nome do produto",
"value": 150,
"quantity": 1
}
]
}
}
Response
200
{
"zaapId": "3999984263738042930CD6ECDE9VDWSA",
"messageId": "D241XXXX732339502B68",
"id": "D241XXXX732339502B68"
}
405
Neste caso certifique que esteja enviando corretamente a especificação do método, ou seja verifique se você enviou o POST ou GET conforme especificado no início deste tópico.415
Caso você receba um erro 415, certifique de adicionar na headers da requisição o “Content-Type” do objeto que você está enviando, em sua grande maioria “application/json”.⌘I