Заказы
Статус заказа
Возвращает текущее состояние одного заказа или до 100 заказов в стандартном формате плюс понятные дополнительные поля: возврат, причину и возможность отмены или восполнения прямо сейчас. Одна и та же проекция питает order_details и вебхуки, поэтому они всегда совпадают.
https://notpanel.com/api/v3action=status- Требуется API-ключ
- Превышен лимит запросов
- Тело:
application/x-www-form-urlencoded
Параметры
Передаётся всегда
keystringОбязательный- Ваш API-ключ.
actionstringОбязательныйstatusДолжно быть буквальной строкой «status».
Передайте order или orders.
orderintegerОдно из них- Один номер заказа. Заказы, оформленные до 2026-08-25, по-прежнему можно читать по идентификатору, который они имели тогда; в ответе используется номер заказа.
ordersstring (CSV)Одно из них- До 100 номеров заказов через запятую. Если переданы оба, приоритет у
orders.
curl -X POST https://notpanel.com/api/v3 \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=YOUR_API_KEY&action=status&order=1234568"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: "status",
order: "1234568",
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://notpanel.com/api/v3",
data={
"key": "YOUR_API_KEY",
"action": "status",
"order": "1234568",
},
)
print(res.json())<?php
$body = http_build_query([
'key' => 'YOUR_API_KEY',
'action' => 'status',
'order' => '1234568',
]);
$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));
Замените YOUR_API_KEY ключом со страницы API.
{
"charge": "0.87",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD",
"order": 1234568,
"status_key": "partial",
"refund": "0.13",
"reason_code": "partially_delivered",
"reason": "Part of the order was delivered. The rest was refunded.",
"can_cancel": false,
"cancel_available": false,
"cancel_state": null,
"can_refill": true,
"refill_available_at": null,
"updated_at": "2026-10-03T12:00:00Z"
}Ошибки
- 400
{"error":"Missing required parameter: order","error_code":"MISSING_PARAMETER","retryable":false,"details":{"param":"order"}}Не передан ни order, ни orders.
- 400
{"error":"Maximum 100 IDs per request","error_code":"TOO_MANY_IDS","retryable":false}В orders больше 100 номеров заказов.
- 404
{"error":"Order not found","error_code":"ORDER_NOT_FOUND","retryable":false}Заказа не существует или он принадлежит другому аккаунту. В обоих случаях ответ одинаков.
Поля ответа
Первые пять полей сохраняют стандартную форму, которую читают скрипты панелей, а order повторяет номер. Остальные — дополнения.
Поля ответа
chargestring- Сколько заказ стоит вам сейчас, в USD, в виде строки. Указано за вычетом любого возврата.
start_countstring- Счётчик на начало выполнения или
"0", если он неизвестен. statusstring- Слово статуса. См. «Значения статуса».
remainsstring- Количество, ещё не выполненное. У выполненного заказа всегда
"0". currencystring- Всегда
USD. orderinteger- Номер заказа.
status_keystring- Постоянная форма статуса в нижнем регистре, для логики.
refundstring- Деньги, возвращённые на ваш кошелёк за этот заказ, строкой;
0.00, если ничего не возвращено. reason_codestring | null- Почему заказ завершился именно так, или
null. См. «Коды причин». reasonstring | null- Фиксированная английская фраза для
reason_codeилиnull. can_cancelbooleantrue, когда отмена возможна прямо сейчас — мгновенная или как запрос.cancel_availablebooleantrue, пока заказ можно отменить прямо сейчас с полным возвратом: в первые секунды после оформления или пока он ждёт и ещё не был отправлен.cancel_statestring | nullrequestedилиrefusedпосле запроса на отмену, иначеnull.can_refillbooleantrue, когда сейчас можно запросить восполнение.refill_available_atstring | null- Когда станет возможным следующее восполнение, или
null. updated_atstring- Когда заказ менялся в последний раз.
Значения статуса
- Pending
status_key=pendingPending— принят и ещё не отправлен. В течение первых 15 с заказ можно отменить бесплатно. - Processing
status_key=processingProcessing— отправлен и ожидает начала выполнения. Заказ, отправка которого не подтверждена, тоже отображается как обрабатываемый. - In progress
status_key=in_progressДоставка в процессе.
- Completed
status_key=completedCompleted— выполнен полностью.remainsвсегда равен"0". - Partial
status_key=partialPartial— часть заказа выполнена, остаток возвращён. Может быть доступно восполнение. - Canceled
status_key=cancelledCanceled— больше ничего не будет выполнено, а оплата возвращена полностью или частично.reason_codeобъясняет причину.
Коды причин
Когда заказ завершается досрочно, reason_code объясняет причину, а reason содержит фиксированную фразу. Деньги указаны в refund, но никогда не в фразе. Считайте неизвестный код общей причиной: могут добавляться новые коды.
Коды причин и фразы
customer_canceled- You canceled this order. The charge was refunded.
canceled_on_request- Canceled at your request. The charge was refunded.
canceled_on_request_partial- Canceled at your request. Part of the order was delivered. The rest was refunded.
canceled_overdue- Canceled because it took too long. The charge was refunded.
delivery_canceled- This order was canceled. The charge was refunded.
partially_delivered- Part of the order was delivered. The rest was refunded.
link_invalid- The link is wrong or private. The charge was refunded.
link_busy- This link already had an active order. The charge was refunded.
service_unavailable- The service was not available. The charge was refunded.
quantity_rejected- The quantity was not accepted. The charge was refunded.
details_rejected- The order details were not accepted. The charge was refunded.
price_changed- The price changed before the order started. The charge was refunded.
start_failed- The order could not be started. The charge was refunded.
not_started_in_time- The order could not be started in time. The charge was refunded.
admin_refund- Refunded by support.
admin_completed- Marked completed by support.
legacy_canceled- Canceled.
legacy_refunded- Refunded.
Возвраты и стоимость
key=YOUR_API_KEY&action=status&order=1234569{
"charge": "0.00",
"start_count": "0",
"status": "Canceled",
"remains": "1000",
"currency": "USD",
"order": 1234569,
"status_key": "cancelled",
"refund": "1.20",
"reason_code": "customer_canceled",
"reason": "You canceled this order. The charge was refunded.",
"can_cancel": false,
"cancel_available": false,
"cancel_state": null,
"can_refill": false,
"refill_available_at": null,
"updated_at": "2026-10-03T10:00:09Z"
}Много заказов сразу
С orders ответ — объект с ключами по каждому запрошенному идентификатору. Каждый идентификатор получает свой объект статуса или объект ошибки, а HTTP-статус остаётся 200. До 100 идентификаторов в одном запросе.
key=YOUR_API_KEY&action=status&orders=1234567,1234568,999{
"999": {
"error": "Order not found",
"error_code": "ORDER_NOT_FOUND",
"retryable": false
},
"1234567": {
"charge": "1.20",
"start_count": "3572",
"status": "Completed",
"remains": "0",
"currency": "USD",
"order": 1234567,
"status_key": "completed",
"refund": "0.00",
"reason_code": null,
"reason": null,
"can_cancel": false,
"cancel_available": false,
"cancel_state": null,
"can_refill": false,
"refill_available_at": "2026-10-03T18:35:00Z",
"updated_at": "2026-10-03T12:35:00Z"
},
"1234568": {
"charge": "0.87",
"start_count": "3572",
"status": "Partial",
"remains": "157",
"currency": "USD",
"order": 1234568,
"status_key": "partial",
"refund": "0.13",
"reason_code": "partially_delivered",
"reason": "Part of the order was delivered. The rest was refunded.",
"can_cancel": false,
"cancel_available": false,
"cancel_state": null,
"can_refill": true,
"refill_available_at": null,
"updated_at": "2026-10-03T12:00:00Z"
}
}