Data de entrega
Estima a data de chegada de um produto, ou de vários de uma vez, considerando preparo, horário de corte e dias úteis.
A janela de entrega é o módulo que transforma "prazo em dias" numa data: considera quanto tempo a loja leva para separar o pedido, até que horas ela ainda despacha no mesmo dia, e pula fins de semana e feriados. O resultado é o que a vitrine mostra como "Receba até quinta, 15/out".
Data de um produto
/api/v1/storefront/delivery-estimatePúblicaData estimada de entrega de um produto
Estima a data em que um produto chega, somando o tempo de preparo da loja, o horário de corte, o calendário de dias úteis e feriados e o prazo do método. Exige o módulo delivery-window.
Parâmetros de consulta
product_iduuidpostal_codestringshipping_method_iduuidmin_daysintegermax_daysintegermin_days/max_days para a data bater com o prazo de uma cotação em tempo real.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/delivery-estimate?product_id=22fbd12a-1b6e-41ea-a84f-4d9cf06c8766&postal_code=01310100"Resposta
{
"earliest_date": "2026-10-15",
"latest_date": "2026-10-16",
"business_days": 2,
"business_days_min": 2,
"display_text": "qui., 15 de out.",
"display_format": "date_range"
}Campos da resposta
earliest_datestringYYYY-MM-DD.latest_datestringYYYY-MM-DD.business_daysintegerbusiness_days_minintegerdisplay_textstringdisplay_formatstringdate_rangebusiness_dayshiddendate_range (mostrar a data), business_days (mostrar "X-Y dias úteis") ou hidden (nunca mostrar data de calendário).buy_by_datestringYYYY-MM-DD), só em janelas de dia fixo. Ausente nas demais.fixed_windowbooleantrue) quando a data vem da regra de dia fixo, que conta dias corridos (sem feriados nem horário de corte).Erros
| Status | Quando | Corpo |
|---|---|---|
| 403 | Módulo delivery-window desligado na loja. | {"error":"module_disabled","module":"delivery-window"} |
| 500 | Falha ao calcular a data (por exemplo product_id que não é UUID). | {"error":"failed to calculate delivery estimate","detail":"..."} |
Promessa em lote
/api/v1/storefront/delivery-promisePúblicaPromessa de entrega em lote
Para listagens e carrinho: resolve, numa só chamada, a promessa mais cedo de cada produto para um CEP. Produto sem método elegível simplesmente não aparece no resultado (sem selo, sem erro). Exige o módulo delivery-window.
Corpo da requisição
postal_codestringobrigatóriopromises vazio (sem chute nacional).product_idsuuid[]obrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/storefront/delivery-promise" \
-H "Content-Type: application/json" \
-d '{
"postal_code": "01310-100",
"product_ids": [
"22fbd12a-1b6e-41ea-a84f-4d9cf06c8766"
]
}'Resposta
{
"postal_code": "01310-100",
"promises": {
"22fbd12a-1b6e-41ea-a84f-4d9cf06c8766": {
"delivery_date": "2026-10-15",
"formatted": "quinta, 15/out",
"method_id": "85e87a54-dcee-4947-8cfa-f6406f2f3cbb",
"method_name": "Motoboy",
"cutoff_at": "2026-10-11T14:00:00-03:00",
"ships_today": false,
"display_format": "date_range"
}
}
}Campos da resposta
postal_codestringpromisesobjectpromises.{id}.delivery_datestringYYYY-MM-DD.promises.{id}.formattedstringpromises.{id}.method_iduuidpromises.{id}.method_namestringpromises.{id}.cutoff_atstringpromises.{id}.ships_todaybooleantrue quando um pedido feito agora ainda é despachado hoje.promises.{id}.display_formatstringdisplay_format acima. A data só deve aparecer em date_range.Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON. | {"error":"invalid request body","detail":"..."} |
| 403 | Módulo delivery-window desligado na loja. | {"error":"module_disabled","module":"delivery-window"} |
| 500 | Falha ao calcular as promessas. | {"error":"failed to calculate delivery promises","detail":"..."} |