Criar/editar produto
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/products \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"price": 123,
"currency": "<string>",
"description": "<string>",
"images": [
{}
]
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/products"
payload = {
"name": "<string>",
"price": 123,
"currency": "<string>",
"description": "<string>",
"images": [{}]
}
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({
name: '<string>',
price: 123,
currency: '<string>',
description: '<string>',
images: [{}]
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/products', 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}/products",
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([
'name' => '<string>',
'price' => 123,
'currency' => '<string>',
'description' => '<string>',
'images' => [
[
]
]
]),
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}/products"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"price\": 123,\n \"currency\": \"<string>\",\n \"description\": \"<string>\",\n \"images\": [\n {}\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}/products")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"price\": 123,\n \"currency\": \"<string>\",\n \"description\": \"<string>\",\n \"images\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/products")
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 \"name\": \"<string>\",\n \"price\": 123,\n \"currency\": \"<string>\",\n \"description\": \"<string>\",\n \"images\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>"
}WhatsApp Business
Criar/editar produto
Cadastra ou atualiza um produto no catálogo
POST
/
instances
/
{instanceId}
/
token
/
{token}
/
products
Criar/editar produto
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/products \
--header 'Client-Token: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"price": 123,
"currency": "<string>",
"description": "<string>",
"images": [
{}
]
}
'import requests
url = "https://api.z-api.io/instances/{instanceId}/token/{token}/products"
payload = {
"name": "<string>",
"price": 123,
"currency": "<string>",
"description": "<string>",
"images": [{}]
}
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({
name: '<string>',
price: 123,
currency: '<string>',
description: '<string>',
images: [{}]
})
};
fetch('https://api.z-api.io/instances/{instanceId}/token/{token}/products', 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}/products",
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([
'name' => '<string>',
'price' => 123,
'currency' => '<string>',
'description' => '<string>',
'images' => [
[
]
]
]),
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}/products"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"price\": 123,\n \"currency\": \"<string>\",\n \"description\": \"<string>\",\n \"images\": [\n {}\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}/products")
.header("Client-Token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"price\": 123,\n \"currency\": \"<string>\",\n \"description\": \"<string>\",\n \"images\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/{instanceId}/token/{token}/products")
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 \"name\": \"<string>\",\n \"price\": 123,\n \"currency\": \"<string>\",\n \"description\": \"<string>\",\n \"images\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>"
}Conceituação
Nesse método você será capaz de cadastrar e atualizar um produto no seu catálogo.Atributos
Header
string
obrigatório
ID da sua instância. Disponível no painel Z-API em Instâncias.
string
obrigatório
Token da sua instância Z-API.
Obrigatórios
string
obrigatório
Nome do produto
integer
obrigatório
Preço do produto
string
obrigatório
Tipo de moeda (ex: BRL)
string
obrigatório
Descrição do produto
array
obrigatório
URLs das imagens do produto
Opcionais
boolean
Ocultar produto no catálogo
integer
Preço promocional
string
ID do produto
string
URL do produto
Request Body
{
"currency": "BRL",
"description": "Uma descrição do produto",
"images": ["https://avatars.githubusercontent.com/u/60630101?s=200&v=4"],
"isHidden": false,
"name": "Meu primeiro produto",
"price": 20,
"salePrice": 18,
"retailerId": "002",
"url": "https://z-api.io"
}
Response
200
string
ID do produto criado/atualizado
{
"id": "4741575945866725"
}
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