Itens, reembolso e histórico sem versão
Lê os itens, pede o reembolso e consulta o histórico de status de um pedido em /api/orders/{id}/..., com ids decimais.
Três consultas e ações auxiliares do pedido, na forma da API 1.0 sem o prefixo de versão. Os ids no caminho e na resposta são decimais em string (o UUID também é aceito). As regras completas estão em Consultar pedido, Reembolsos e Histórico do pedido. Todas exigem um administrador.
/api/orders/{id}/productsAdminItens de um pedido, forma sem versão
Devolve só as linhas do pedido, no mesmo formato de products do detalhe. É o atalho que conectores de ERP e de marketplace usam para ler os itens sem baixar o pedido inteiro.
Parâmetros de caminho
idstringobrigatório/api/orders/{id}/refundAdminReembolsar um pedido, forma sem versão
Pede ao gateway que devolva o valor do pedido. Sem amount, devolve o saldo ainda não reembolsado. O corpo é opcional. Se o pedido não tem cobrança confirmada no gateway (pagamento na entrega, pedido de teste), nenhum dinheiro se move: a plataforma grava um registro manual só para auditoria e a resposta é 200 com refund_transaction vazio. Chave de API de seller só estorna pedidos da própria loja.
Parâmetros de caminho
idstringobrigatórioCorpo da requisição (opcional)
amountinteger1000 = R$ 10,00), mesmo nesta API que usa string decimal nas respostas. Zero, negativo ou omitido devolve o saldo restante. Valor acima do saldo é limitado ao saldo./api/orders/{id}/status-historyAdminHistórico de status de um pedido, forma sem versão
Devolve as mudanças de status, da mais antiga para a mais recente. Mudanças de pagamento não entram: o log é só de status do pedido.
Parâmetros de caminho
idstringobrigatórioExemplo de requisição
curl "$BASE_URL/api/orders/1794666195/products" -u "$EMAIL:$API_KEY"
curl -X POST "$BASE_URL/api/orders/1794666195/refund" \
-u "$EMAIL:$API_KEY" -H "Content-Type: application/json" \
-d '{"amount":1000}'
curl "$BASE_URL/api/orders/1794666195/status-history" -u "$EMAIL:$API_KEY"Resposta
{
"products": [
{
"item_id": "607887120",
"product_id": "592384622",
"product": "Doc Bulk Caneca",
"product_code": "DOCBULK-002",
"price": "49.90",
"amount": 1,
"discount": "7.24",
"subtotal": "49.90",
"total": "42.66"
}
]
}{
"order_id": "1794666195",
"refund_transaction": "re_9Vq2kLxYzNwB41pD",
"amount": "10.00"
}{
"history": [
{ "changed_at": 1791752125, "changed_by": "", "from_status": "O", "to_status": "O", "notes": "order_created" },
{ "changed_at": 1791752798, "changed_by": "d4613dde-ac7a-431c-9232-50d8cd6ad5fc", "from_status": "O", "to_status": "P", "notes": "" }
]
}Campos da resposta
products[].item_idstringproducts[].product_idstringproducts[].productstringproducts[].product_codestringproducts[].pricestringproducts[].amountintegerproducts[].discountstringproducts[].subtotalstringproducts[].totalstringorder_idstringrefund_transactionstringamountstring"10.00"), ao contrário do amount da requisição.history[].changed_atintegerhistory[].changed_bystringhistory[].from_statusstringhistory[].to_statusstringhistory[].notesstringorder_created na criação).Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Valor ou estorno recusado pelo gateway; pedido já totalmente reembolsado | {"message":"order ... has already been fully refunded (refunded: ..., total: ...)","status":400} |
| 400 | {id} em formato inválido | {"message":"Invalid id","status":400} |
| 401 | Sem credenciais, chave inválida ou token expirado | {"message":"Invalid credentials","status":401} |
| 403 | Usuário que não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 404 | {id} decimal que não corresponde a nenhum pedido | {"message":"Not found","status":404} |
| 500 | Pedido inexistente (UUID válido que não existe) | {"error":"internal server error"} |
| 501 | A loja não tem serviço de pagamentos ligado | {"message":"refund not implemented: payments service not wired","status":501} |