Cancel an order
Cancela um pedido comum ou um lote sequencial de até 100 IDs pertencentes à conta. Cada pedido comum via API só é elegível durante sua própria janela de 15 segundos antes do envio.
https://notpanel.com/api/v3action=cancelapplication/x-www-form-urlencodedorder ou IDs orders separados por vírgula, até 100. O modo em lote nunca amplia a janela de cancelamento de um pedido.Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| keyObrigatório | string | Sua chave de API. |
| actionObrigatório | string | Deve ser a string literal "cancel". |
| orderCondicional | string | Um ID numérico de pedido comum pertencente à conta retornado por action=add. |
| ordersCondicional | string (CSV) | IDs de pedidos comuns separados por vírgula, no máximo 100. A resposta mantém a ordem de entrada e retorna sucesso ou erro por item. |
Exemplo de requisição
Substitua YOUR_API_KEY pela chave gerada na página de API do seu painel.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=cancel&order=7001"const res = await fetch("https://notpanel.com/api/v3", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
key: "YOUR_API_KEY",
action: "cancel",
order: "7001",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "cancel",
"order": "7001",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'cancel',
'order' => '7001',
]);
$response = file_get_contents('https://notpanel.com/api/v3', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => $body,
'ignore_errors' => true,
],
]));
print_r(json_decode($response, true));
Exemplo de resposta
{
"order": 7001,
"status": "Canceled",
"status_key": "cancelled",
"cancel": 1,
"refund": "0.50",
"refund_pending": 0
}Erros comuns
| Status | Corpo | Causa |
|---|---|---|
| 409 | {"error":"Cancellation window has ended or the order has already started"} | O pedido comum saiu da janela de cancelamento de 15 segundos ou já não está pendente. O pedido individual devolve 409. |
| 409 | {"error":"Order is already completed"} | O item já está num estado terminal não cancelável. Uma nova tentativa de um cancelamento anterior bem-sucedido devolve o mesmo resultado bem-sucedido. |
| 409 | {"error":"Order is already refunded"} | O item já está num estado terminal não cancelável. Uma nova tentativa de um cancelamento anterior bem-sucedido devolve o mesmo resultado bem-sucedido. |
| 404 | {"error":"Order not found"} | Nenhum pedido comum com esse identificador pertence a esta conta. Uma solicitação individual retorna 404. |
| 429 | {"error":"Rate limit exceeded for cancel"} | O limite da ação de cancelamento foi atingido. Repita após o atraso indicado; a resposta é 429. |