Cancel an order
Cancela un pedido ordinario o un lote secuencial de hasta 100 ID pertenecientes a la cuenta. Cada pedido ordinario por API solo puede cancelarse durante su propia ventana de gracia de 15 segundos antes del envío.
https://notpanel.com/api/v3action=cancelapplication/x-www-form-urlencodedorder o ID orders separados por comas, hasta 100. El modo por lotes nunca amplía la ventana de cancelación de un pedido.Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| keyObligatorio | string | Tu clave de API. |
| actionObligatorio | string | Debe ser la cadena literal "cancel". |
| orderCondicional | string | Un ID numérico de pedido ordinario perteneciente a la cuenta devuelto por action=add. |
| ordersCondicional | string (CSV) | ID de pedidos ordinarios separados por comas, máximo 100. La respuesta conserva el orden de entrada y devuelve el éxito o error de cada elemento. |
Ejemplo de petición
Reemplaza YOUR_API_KEY por la clave generada en la página de API de tu panel.
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));
Ejemplo de respuesta
{
"order": 7001,
"status": "Canceled",
"status_key": "cancelled",
"cancel": 1,
"refund": "0.50",
"refund_pending": 0
}Errores comunes
| Estado | Cuerpo | Causa |
|---|---|---|
| 409 | {"error":"Cancellation window has ended or the order has already started"} | El pedido normal salió de su ventana de cancelación de 15 segundos o ya no está pendiente. La solicitud individual devuelve 409. |
| 409 | {"error":"Order is already completed"} | El elemento ya se encuentra en un estado terminal no cancelable. Un reintento de una cancelación anterior correcta devuelve en cambio ese mismo resultado correcto. |
| 409 | {"error":"Order is already refunded"} | El elemento ya se encuentra en un estado terminal no cancelable. Un reintento de una cancelación anterior correcta devuelve en cambio ese mismo resultado correcto. |
| 404 | {"error":"Order not found"} | Ningún pedido ordinario con ese identificador pertenece a esta cuenta. Una solicitud individual devuelve 404. |
| 429 | {"error":"Rate limit exceeded for cancel"} | Se alcanzó el límite de la acción de cancelación. Reintenta tras la demora indicada; la respuesta es 429. |