Radar de entregas
Lista os pedidos com entrega em risco ou atrasada, avisa o cliente (com voucher opcional), dispensa alertas e mostra a pontualidade por transportadora.
O radar compara, a cada hora, a data de entrega prometida de cada pedido em andamento (pendente, em processamento, pago, enviado, em espera ou em reposição) com o que de fato aconteceu, e abre um alerta idempotente quando o pedido está em risco ou atrasado. A equipe de atendimento usa a lista para agir antes de o cliente reclamar.
Listar alertas
Devolve os alertas open e notified, do mais novo para o mais antigo, 50 por página.
/api/v1/admin/shipping/delivery-radarAdminLista os alertas do radar de entregas
Exige view_shipping ou manage_shipping.
Parâmetros de consulta
statestringat_risklatepageintegerpadrão: 1Exemplo de requisição
curl "$BASE_URL/api/v1/admin/shipping/delivery-radar?state=late" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"alerts": [
{
"id": "e7fc7f17-9eb9-4bad-ada5-10f9c667949d",
"order_id": "2ad4b8db-8268-4355-a33d-1377443843d0",
"order_number": "PEDIDO-20261009-0002",
"customer_name": "Maria Souza",
"carrier": "Correios",
"promised_delivery_at": "2026-10-24T02:59:59+00",
"risk_state": "at_risk",
"cause": "sem movimentação",
"status": "open",
"voucher_code": null
}
],
"total": 1
}Campos da resposta
alertsarrayAlertas da página. null quando não há nenhum.
iduuidorder_iduuidorder_numberstringcustomer_namestringcarrierstringpromised_delivery_atstringAAAA-MM-DDTHH:MM:SS+00).risk_statestringat_risklateat_risk ou late.causestringstatusstringopennotifiedopen ou notified.voucher_codestringnull se não houve.totalintegerAvisar o cliente
Marca o alerta como notified e dispara o aviso de atraso ao comprador (e-mail e WhatsApp, quando configurados). Com with_voucher: true, emite um voucher de uso único, válido por 30 dias, e o devolve em voucher_code. Tipo e valor vêm da configuração da loja; sem configuração, é um voucher de 10%. O voucher é gerado antes do aviso e gravado no alerta: se você avisar de novo, o mesmo código é reaproveitado.
/api/v1/admin/shipping/delivery-radar/{alertId}/notifyAdminAvisa o cliente de um alerta do radar
Exige manage_shipping.
Parâmetros de caminho
alertIduuidobrigatórioCorpo da requisição
with_voucherbooleanpadrão: falseExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/shipping/delivery-radar/$ALERT_ID/notify" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"with_voucher": true
}'Resposta
{
"status": "notified",
"voucher_code": "ATRASO-7K2M9Q"
}Campos da resposta
statusstringnotified.voucher_codestringnull se não foi emitido (sem with_voucher e sem voucher emitido antes para o alerta).Dispensar um alerta
Marca o alerta como dismissed: ele sai do radar. Use para falsos positivos ou casos já resolvidos por outro meio. Não avisa o cliente.
/api/v1/admin/shipping/delivery-radar/{alertId}/dismissAdminDispensa um alerta do radar
Exige manage_shipping. Sem corpo.
Parâmetros de caminho
alertIduuidobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/shipping/delivery-radar/$ALERT_ID/dismiss" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"status": "dismissed"
}Pontualidade por transportadora
Para as remessas entregues nos últimos days dias, de pedidos que tinham data prometida, calcula o percentual entregue dentro do prazo e o atraso médio.
/api/v1/admin/shipping/delivery-radar/slaAdminPontualidade por transportadora
Exige view_shipping ou manage_shipping.
Parâmetros de consulta
daysintegerpadrão: 30Exemplo de requisição
curl "$BASE_URL/api/v1/admin/shipping/delivery-radar/sla?days=30" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"carriers": [
{
"carrier": "Correios",
"total": 42,
"on_time_pct": 88.1,
"avg_delay_days": 0.6
}
]
}Campos da resposta
carriersarrayUma linha por transportadora, da que mais entregou para a que menos. null quando não há entregas no período.
carrierstringdesconhecido quando a remessa não informa.totalintegeron_time_pctnumberavg_delay_daysnumberErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado | {"error":"invalid or expired token"} |
| 403 | Sem o privilégio exigido | {"error":"insufficient privileges","privilege_required_any":["manage_shipping"]} |
| 400 | Avisar um alerta que não existe, ou falha ao emitir o voucher | {"error":"notify_failed","detail":"alert not found"} |
| 500 | alertId que não é UUID; falha interna | {"error":"dismiss_failed","detail":"..."} / {"error":"radar_failed","detail":"..."} / {"error":"sla_failed","detail":"..."} |
As ações exigem manage_shipping; as leituras aceitam view_shipping.