Um pedido sem versão
Consulta, altera e cancela um pedido em /api/orders/{id}, a forma da API 1.0 sem o prefixo de versão; inclui as rotas POST que só respondem 405.
/api/orders/{id} é o mesmo recurso de /api/v1.0/orders/{id}, com id decimal no caminho e em toda a resposta. O {id} aceita também o UUID. Os campos e as regras completos estão em Consultar pedido, Alterar pedido, Alterar o status e Cancelar e excluir. Todas as rotas exigem um administrador.
/api/orders/{id}AdminConsultar um pedido, forma sem versão
Devolve o pedido completo: totais, endereços (user_data), itens (products), pagamento e sub-pedidos.
Parâmetros de caminho
idstringobrigatório0 ou vazio responde 400./api/orders/{id}AdminAlterar um pedido ou mudar seu status, forma sem versão
A mesma rota atende dois usos, escolhidos pelas chaves do corpo. Se o corpo tem apenas status, notify_user, notify_department e/ou notify_vendor, é uma mudança de status. Com qualquer outra chave (inclusive uma desconhecida), é uma alteração de dados; chaves desconhecidas são ignoradas.
Parâmetros de caminho
idstringobrigatórioCorpo da requisição
statusstringO, P, C, D, F, I, B) e qualquer outra letra vira pending.notify_userstringYNtruefalse10notify_departmentstringnotify_vendorstringnotesstring"" limpa. HTML é removido.admin_notesstringtracking_numberstringshipping_methodstringpayment_idstringlink_notastringcodigo_pedido_erpstring/api/orders/{id}AdminCancelar um pedido, forma sem versão
Move o pedido para cancelado (I) e responde 204 sem corpo. Só pedidos pendentes, em processamento, pagos, em espera ou falhos podem ser cancelados. Não estorna o pagamento no gateway: se o pedido estava pago, devolva o dinheiro à parte (Reembolso). Chave de API de seller (não administrador) recebe sempre 404.
Parâmetros de caminho
idstringobrigatório/api/orders/{id}AdminNão executa nada: responde 405 (POST não leva id)
Existe só para responder 405 Method Not Allowed, com o cabeçalho Allow: GET, PUT, DELETE e corpo vazio. Para criar um pedido use POST /api/orders; para alterar, PUT /api/orders/{id}.
Parâmetros de caminho
idstringobrigatório/api/v1.0/orders/{id}AdminNão executa nada: responde 405 (POST não leva id), forma com versão
Igual a POST /api/orders/{id}: 405, Allow: GET, PUT, DELETE, corpo vazio.
Parâmetros de caminho
idstringobrigatórioExemplo de requisição
curl "$BASE_URL/api/orders/1794666195" -u "$EMAIL:$API_KEY"
curl -X PUT "$BASE_URL/api/orders/1794666195" \
-u "$EMAIL:$API_KEY" -H "Content-Type: application/json" \
-d '{"tracking_number":"BR987654321BR","admin_notes":"Pedido conferido"}'
curl -X PUT "$BASE_URL/api/orders/1794666195" \
-u "$EMAIL:$API_KEY" -H "Content-Type: application/json" \
-d '{"status":"S"}'
curl -X DELETE "$BASE_URL/api/orders/1794666195" -u "$EMAIL:$API_KEY"Resposta
{
"order_id": "1794666195",
"order_number": "PILOT-20261011-0009",
"is_parent_order": "N",
"parent_order_id": "",
"suborder_ids": [],
"user_id": "642412737",
"company_id": "496868694",
"email": "docs.cliente.api@example.com",
"phone": "11987654321",
"status": "C",
"timestamp": 1791752125,
"currency": "BRL",
"lang_code": "pt-BR",
"subtotal": "49.90",
"discount": "7.24",
"shipping_cost": "10.00",
"total": "52.66",
"payment_method": { "payment": "pix", "payment_id": "pix" },
"payment_info": { "payment_method": "pix", "payment_status": "pending" },
"shipping": [{ "rate": "10.00", "shipping": "Entrega Padrão", "shipping_id": "Entrega Padrão" }],
"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" }
],
"user_data": {
"firstname": "Docs", "lastname": "Cliente", "email": "docs.cliente.api@example.com",
"b_address": "Avenida Paulista, 1000 Apto 52", "b_city": "São Paulo", "b_state": "SP", "b_zipcode": "01310-100", "b_country": "BR",
"s_address": "Avenida Paulista, 1000 Apto 52", "s_city": "São Paulo", "s_state": "SP", "s_zipcode": "01310-100", "s_country": "BR"
}
}HTTP/1.1 204 No ContentCampos da resposta
order_idstringstatusstringtimestampintegeruser_idstringcompany_idstringsubtotalstringtotalstringpayment_methodobjectpayment (nome) e payment_id (código da forma de pagamento).payment_infoobjectpayment_method e payment_status.shippingarrayrate (valor) e shipping (nome).productsarrayitem_id, product_id, product, product_code, price, amount, discount, subtotal, total.user_dataobjectb_*) e entrega (s_*), nome e e-mail.suborder_idsarrayErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | {id} igual a 0 ou vazio | {"error":"invalid id parameter"} |
| 400 | {id} em formato inválido (nem decimal nem UUID) | {"message":"Invalid id","status":400} |
| 400 | (PUT) corpo que não é JSON | {"message":"Invalid JSON: ...","status":400} |
| 400 | (DELETE) o pedido já está cancelado ou num status que não cancela | {"message":"invalid_transition: from cancelled to cancelled","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 | O pedido não existe, ou {id} decimal que não corresponde a nenhum registro | {"message":"Order not found","status":404} ou {"message":"Not found","status":404} |
| 405 | POST /api/orders/{id} e POST /api/v1.0/orders/{id} | corpo vazio, cabeçalho Allow: GET, PUT, DELETE |