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 a assinatura cancelada. Instâncias pagas, pendentes, com boleto pendente, em processo de cancelamento ou em retentativa de pagamento não são elegíveis.
- Não está em trial. Um trial precisa expirar naturalmente ou ser cancelado antes.
- Já passou da carência de 40 dias contados da data de cancelamento da assinatura.
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_IN_GRACE_PERIOD",
"reason": "Cannot delete instance because it is still in the grace period of 40 days after cancellation"
},
{
"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_IS_TRIAL | A instância está em trial. O trial precisa expirar ou ser cancelado antes. |
INSTANCE_NOT_ELIGIBLE | A assinatura ainda está ativa ou não está cancelada. |
INSTANCE_IN_GRACE_PERIOD | A instância foi cancelada há menos de 40 dias. |
INSTANCE_PAYMENT_STATUS_MISSING | Não foi possível determinar o status de pagamento da instância. |
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"
}