Pedidos
Estado del pedido
Devuelve el estado actual de un pedido o de hasta 100 pedidos en el formato estándar, más campos adicionales claros: el reembolso, el motivo y si ahora se puede cancelar o reponer. La misma proyección alimenta order_details y los webhooks, así que siempre coinciden.
https://notpanel.com/api/v3action=status- Clave de API requerida
- Límite de solicitudes superado
- Cuerpo:
application/x-www-form-urlencoded
Parámetros
Siempre se envía
keystringObligatorio- Tu clave de API.
actionstringObligatoriostatusDebe ser la cadena literal "status".
Envía order u orders.
orderintegerUno de estos- Un número de pedido. Los pedidos hechos antes del 2026-08-25 aún se pueden leer con el ID que tenían entonces; la respuesta usa el número de pedido.
ordersstring (CSV)Uno de estos- Hasta 100 números de pedido separados por comas. Si se envían ambos, prevalece
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));
Sustituye YOUR_API_KEY por la clave de tu página de 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"
}Errores
- 400
{"error":"Missing required parameter: order","error_code":"MISSING_PARAMETER","retryable":false,"details":{"param":"order"}}No se envió ni order ni orders.
- 400
{"error":"Maximum 100 IDs per request","error_code":"TOO_MANY_IDS","retryable":false}Más de 100 números de pedido en orders.
- 404
{"error":"Order not found","error_code":"ORDER_NOT_FOUND","retryable":false}El pedido no existe o pertenece a otra cuenta. Ambos casos dan la misma respuesta.
Campos de la respuesta
Los cinco primeros campos mantienen la forma estándar que leen los scripts de los paneles, y order repite el número. Los demás son adiciones.
Campos de la respuesta
chargestring- Lo que te cuesta ahora el pedido, en USD, como cadena de texto. Es neto de cualquier reembolso.
start_countstring- El recuento cuando empezó la entrega, o
"0"cuando no se conoce. statusstring- La palabra de estado. Consulta Valores de estado.
remainsstring- Cantidad aún no entregada. Un pedido completado siempre muestra
"0". currencystring- Siempre
USD. orderinteger- El número de pedido.
status_keystring- Forma estable en minúsculas del estado, para la lógica.
refundstring- Dinero devuelto a tu billetera por este pedido, como texto;
0.00cuando no se ha devuelto nada. reason_codestring | null- Por qué terminó el pedido como terminó, o
null. Consulta Códigos de motivo. reasonstring | null- Una frase fija en inglés para
reason_code, onull. can_cancelbooleantruecuando ahora se puede cancelar, de forma instantánea o como solicitud.cancel_availablebooleantruemientras el pedido se puede cancelar ahora con reembolso completo: en los primeros segundos tras crearlo o mientras espera sin haberse enviado.cancel_statestring | nullrequestedorefusedtras una solicitud de cancelación; en otro casonull.can_refillbooleantruecuando ahora se puede solicitar una reposición.refill_available_atstring | null- Cuándo será posible la próxima reposición, o
null. updated_atstring- Cuándo cambió el pedido por última vez.
Valores de estado
- Pending
status_key=pendingPending— aceptado y todavía no enviado. Durante los primeros 15 segundos el pedido se puede cancelar gratis. - Processing
status_key=processingProcessing— enviado y a la espera de que empiece la entrega. Un pedido cuyo envío no está confirmado también aparece como en procesamiento. - In progress
status_key=in_progressEntrega en curso.
- Completed
status_key=completedCompleted— entregado por completo.remainses siempre"0". - Partial
status_key=partialPartial— se entregó una parte del pedido y el resto se reembolsó. Puede haber reposición disponible. - Canceled
status_key=cancelledCanceled— no se entregará nada más y el cargo se reembolsó total o parcialmente.reason_codeindica por qué.
Códigos de motivo
Cuando un pedido termina antes de tiempo, reason_code indica por qué y reason contiene la frase fija. El dinero está en refund, nunca en la frase. Trata un código desconocido como un motivo genérico: se pueden añadir códigos nuevos.
Códigos de motivo y frases
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.
Reembolsos y cargo
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"
}Muchos pedidos a la vez
Con orders la respuesta es un objeto indexado por cada ID solicitado. Cada ID recibe su objeto de estado o un objeto de error, y el estado HTTP sigue siendo 200. Hasta 100 ID por solicitud.
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"
}
}