Cancel an order
Отменяет один обычный заказ или последовательный пакет до 100 ID, принадлежащих учетной записи. Каждый обычный заказ через API подходит для отмены только в течение собственного 15-секундного окна до отправки.
https://notpanel.com/api/v3action=cancelapplication/x-www-form-urlencodedorder или до 100 ID orders через запятую. Пакетный режим никогда не продлевает окно отмены заказа.Параметры
| Название | Тип | Описание |
|---|---|---|
| keyОбязательный | string | Ваш API-ключ. |
| actionОбязательный | string | Должно быть буквальной строкой «cancel». |
| orderУсловный | string | Один числовой ID обычного заказа этой учетной записи, возвращенный action=add. |
| ordersУсловный | string (CSV) | ID обычных заказов через запятую, не более 100. Ответ сохраняет порядок входных данных и возвращает успех или ошибку для каждого элемента. |
Пример запроса
Замените YOUR_API_KEY на ключ, сгенерированный на странице API в вашей панели.
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));
Пример ответа
{
"order": 7001,
"status": "Canceled",
"status_key": "cancelled",
"cancel": 1,
"refund": "0.50",
"refund_pending": 0
}Распространённые ошибки
| Статус | Тело | Причина |
|---|---|---|
| 409 | {"error":"Cancellation window has ended or the order has already started"} | Обычный заказ вышел из 15-секундного окна отмены или больше не находится в pending. Одиночный запрос возвращает 409. |
| 409 | {"error":"Order is already completed"} | Элемент уже находится в терминальном состоянии, не допускающем отмену. Повтор более ранней успешной отмены вместо этого возвращает тот же успешный результат. |
| 409 | {"error":"Order is already refunded"} | Элемент уже находится в терминальном состоянии, не допускающем отмену. Повтор более ранней успешной отмены вместо этого возвращает тот же успешный результат. |
| 404 | {"error":"Order not found"} | Этой учетной записи не принадлежит обычный заказ с таким идентификатором. Одиночный запрос возвращает 404. |
| 429 | {"error":"Rate limit exceeded for cancel"} | Достигнут лимит действия отмены. Повторите после указанной задержки; ответ имеет код 429. |