Agendamentos de entrega
Lista as entregas marcadas, lê o agendamento de um pedido e cancela um agendamento para liberar a vaga.
Um agendamento liga um pedido a uma janela em uma data. Quem cria é o cliente, no checkout; o administrador consulta e, se preciso, cancela. Estas rotas servem à equipe de expedição: ver o que sai amanhã, achar a data combinada de um pedido e liberar uma vaga.
Listar entregas agendadas
/api/v1/admin/delivery/scheduledAdminLista as entregas agendadas
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Parâmetros de consulta
datestringYYYY-MM-DD. Atalho para date_from e date_to iguais.date_fromstringYYYY-MM-DD.date_tostringYYYY-MM-DD.statusstringscheduleddeliveredcancelledscheduled, delivered ou cancelled (ou S, V, I). Valor desconhecido devolve lista vazia.pageintegerpadrão: 1per_pageintegerpadrão: 20Exemplo de requisição
curl "$BASE_URL/api/v1/admin/delivery/scheduled?date=2026-07-20&status=scheduled" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"deliveries": [
{
"id": "a6fe3946-2350-42a6-87c3-598df29a3a6d",
"order_id": "a4ff49de-f235-48f9-8959-d7aa4ef9feb4",
"slot_id": "17b60b02-d01b-419d-8faa-d09ff8a00940",
"delivery_date": "2026-07-20T00:00:00Z",
"time_window": "08:00 - 12:00",
"status": "scheduled",
"created_at": "2026-07-12T18:18:33.533426Z",
"updated_at": "2026-07-12T18:18:33.533426Z",
"shipping_method_name": "Entrega Padrão",
"start_time": "08:00",
"end_time": "12:00",
"customer_name": "Maria Souza",
"customer_email": "maria.souza@example.com"
}
],
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}Campos da resposta
deliveriesarraydeliveries[].iduuiddeliveries[].order_iduuiddeliveries[].slot_iduuiddeliveries[].delivery_datestringdeliveries[].time_windowstringHH:MM - HH:MM, copiada da janela no momento da reserva.deliveries[].statusstringscheduleddeliveredcancelledscheduled, delivered ou cancelled.deliveries[].shipping_method_namestringdeliveries[].start_timestringdeliveries[].end_timestringdeliveries[].customer_namestringdeliveries[].customer_emailstringdeliveries[].created_atstringdeliveries[].updated_atstringpageintegerper_pageintegertotalintegertotal_pagesintegerAgendamento de um pedido
/api/v1/admin/delivery/schedule/{orderID}AdminLê o agendamento de um pedido
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Parâmetros de caminho
orderIDuuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/admin/delivery/schedule/$ORDER_ID" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "a6fe3946-2350-42a6-87c3-598df29a3a6d",
"order_id": "a4ff49de-f235-48f9-8959-d7aa4ef9feb4",
"slot_id": "17b60b02-d01b-419d-8faa-d09ff8a00940",
"delivery_date": "2026-07-20T00:00:00Z",
"time_window": "08:00 - 12:00",
"status": "scheduled",
"created_at": "2026-07-12T18:18:33.533426Z",
"updated_at": "2026-07-12T18:18:33.533426Z",
"shipping_method_name": "Entrega Padrão"
}Cancelar um agendamento
Muda o agendamento de scheduled para cancelled, o que libera a vaga daquela janela naquela data. Só agendamentos em scheduled podem ser cancelados. O cliente não é avisado e o pedido não muda.
/api/v1/admin/delivery/schedule/{id}/cancelAdminCancela um agendamento de entrega
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado. Sem corpo.
Parâmetros de caminho
iduuidobrigatórioid da listagem), não do pedido.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/delivery/schedule/$SCHEDULE_ID/cancel" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"message": "delivery schedule cancelled"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado | {"error":"invalid or expired token"} |
| 403 | Sem o privilégio manage_shipping | {"error":"insufficient privileges","privilege_required_any":["manage_shipping"]} |
| 403 | Módulo delivery-scheduling desligado | {"error":"module_disabled","module":"delivery-scheduling"} |
| 400 | orderID ou id que não é UUID | {"error":"invalid orderID","detail":"orderID must be a valid UUID"} |
| 404 | O pedido não tem agendamento | {"error":"no delivery schedule found for this order"} |
| 500 | Cancelar um agendamento que não existe ou que já não está scheduled | {"error":"failed to cancel delivery schedule","detail":"delivery schedule not found or not in scheduled status"} |