Deletando instâncias em lote
curl --request POST \
--url https://api.z-api.io/instances/integrator/on-demand/batch-delete \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"instances": [
{
"id": "<string>",
"token": "<string>"
}
]
}
'import requests
url = "https://api.z-api.io/instances/integrator/on-demand/batch-delete"
payload = { "instances": [
{
"id": "<string>",
"token": "<string>"
}
] }
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({instances: [{id: '<string>', token: '<string>'}]})
};
fetch('https://api.z-api.io/instances/integrator/on-demand/batch-delete', 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/integrator/on-demand/batch-delete",
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([
'instances' => [
[
'id' => '<string>',
'token' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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/integrator/on-demand/batch-delete"
payload := strings.NewReader("{\n \"instances\": [\n {\n \"id\": \"<string>\",\n \"token\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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/integrator/on-demand/batch-delete")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"instances\": [\n {\n \"id\": \"<string>\",\n \"token\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/integrator/on-demand/batch-delete")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instances\": [\n {\n \"id\": \"<string>\",\n \"token\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyPartners
Deletando instâncias em lote
Deleta várias instâncias vinculadas à sua conta de parceiro integrador em uma única requisição
POST
/
instances
/
integrator
/
on-demand
/
batch-delete
Deletando instâncias em lote
curl --request POST \
--url https://api.z-api.io/instances/integrator/on-demand/batch-delete \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"instances": [
{
"id": "<string>",
"token": "<string>"
}
]
}
'import requests
url = "https://api.z-api.io/instances/integrator/on-demand/batch-delete"
payload = { "instances": [
{
"id": "<string>",
"token": "<string>"
}
] }
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({instances: [{id: '<string>', token: '<string>'}]})
};
fetch('https://api.z-api.io/instances/integrator/on-demand/batch-delete', 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/integrator/on-demand/batch-delete",
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([
'instances' => [
[
'id' => '<string>',
'token' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"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/integrator/on-demand/batch-delete"
payload := strings.NewReader("{\n \"instances\": [\n {\n \"id\": \"<string>\",\n \"token\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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/integrator/on-demand/batch-delete")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"instances\": [\n {\n \"id\": \"<string>\",\n \"token\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.z-api.io/instances/integrator/on-demand/batch-delete")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"instances\": [\n {\n \"id\": \"<string>\",\n \"token\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyConceituação
Método utilizado para deletar várias instâncias vinculadas à sua conta em uma única requisição. Para deletar apenas uma instância, use Deletando uma instância.Para utilizar os endpoints de Partner, informe o Token de Parceiro no campo Authorization, no formato:
Bearer <Partner-Token>Não é necessário enviar o Client-Token nessas requisições.Envie no máximo 100 instâncias por requisição. Para volumes maiores, divida a operação em várias chamadas.
Cada instância da lista é avaliada individualmente. Uma instância recusada não impede que as demais sejam deletadas: a resposta informa o resultado de cada uma.
Regras de elegibilidade
Uma instância só é deletada quando atende a todas as condições abaixo:- Está desconectada do WhatsApp e do celular.
- Está com status de pagamento pendente, trial ou cancelado. Instâncias pagas, com boleto pendente, em processo de cancelamento, em retentativa de pagamento ou sem status de pagamento definido não são elegíveis.
- Se estiver pendente, não tem assinatura pendente. Cancele a assinatura antes de deletar a instância.
Atributos
Header
string
obrigatório
Token de parceiro no formato
Bearer <Partner-Token>Obrigatórios
array
obrigatório
Request Body
{
"instances": [
{
"id": "instanceId",
"token": "instanceToken"
}
]
}
Response
200
O camporesults traz uma entrada por instância enviada, na mesma ordem da requisição.
{
"total": 3,
"deleted": 1,
"rejected": 2,
"results": [
{
"id": "3C7A1B2C3D4E5F6A",
"status": "deleted",
"type": null,
"reason": null
},
{
"id": "3C7B2C3D4E5F6A7B",
"status": "rejected",
"type": "INSTANCE_HAS_ACTIVE_SUBSCRIPTION",
"reason": "Cannot delete instance because it has a pending subscription. Cancel the subscription first"
},
{
"id": "3C7C3D4E5F6A7B8C",
"status": "rejected",
"type": "INSTANCE_NOT_FOUND",
"reason": "Instance not found"
}
]
}
Motivos de recusa
Cada item recusado traz umtype que identifica a regra que bloqueou a exclusão.
| type | Quando acontece |
|---|---|
INSTANCE_STILL_CONNECTED | A instância ainda está conectada ao WhatsApp ou ao celular. |
INSTANCE_PAYMENT_STATUS_MISSING | A instância não tem status de pagamento definido. |
INSTANCE_NOT_ELIGIBLE | O status de pagamento não é pendente, trial nem cancelado (por exemplo: paga, boleto pendente, em processo de cancelamento ou em retentativa de pagamento). |
INSTANCE_HAS_ACTIVE_SUBSCRIPTION | A instância está pendente e tem assinatura pendente. Cancele a assinatura antes de deletar. |
INSTANCE_NOT_FOUND | Não existe instância para o par id e token informado. |
INTEGRATION_ERROR | Falha ao comunicar com o provedor de pagamento. |
INTERNAL_ERROR | Falha inesperada ao deletar a instância. |
400
A lista de instâncias veio vazia ou acima do limite de 100 por requisição.{
"message": "Maximum of 100 instances per batch"
}
401
O header Authorization não foi enviado ou o Token de Parceiro é inválido.{
"message": "Authorization token is empty"
}