VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

Pedidos do cliente

Como a loja ou o aplicativo consulta, acompanha e age nos pedidos do cliente logado.

Esta área é a API que uma loja virtual ou um aplicativo chama em nome de um cliente logado: ver os próprios pedidos, abrir o detalhe de um deles, baixar a fatura, pedir cancelamento, acompanhar o envio, retomar um pagamento que falhou, avaliar o que comprou e comprar de novo. Quem chama não é um administrador nem um seller (lojista): é o JWT de um cliente, o mesmo que o login da vitrine devolve.

Pontos-chave
  • Toda rota (menos Status de pedido, Consultar pedido e as de Retomar pagamento, que também aceitam visitante) exige Authorization: Bearer <token do cliente>.
  • O cliente só enxerga os próprios pedidos. Pedido de outra pessoa responde 404, nunca 403, para não revelar que o id existe.
  • Valores em dinheiro são inteiros em centavos (5266 = R$ 52,66). Não há campos com valores decimais em texto: some e compare sempre os inteiros.
  • Ids são UUID em string.
  • Várias rotas dependem de um módulo ou de uma configuração da loja. Quando desligadas respondem 403 module_disabled ou 404, e isso não é erro do seu código.

Como funciona

O ciclo de vida do pedido, do ponto de vista do cliente

O pedido nasce no checkout (Criar pedido ou, para quem não tem conta, Pedido de visitante). A partir daí a loja ou o seller move o status; o cliente só observa e, em momentos específicos, age.

Pendente→Processando→Enviado→Entregue→Concluído
Código (status_text)O que o cliente vêO que o cliente pode fazer
pendingPedido recebido, aguardando pagamento.Pagar de novo ou trocar a forma de pagamento (Retomar pagamento); pedir cancelamento, se a loja permitir.
paid / processingPagamento confirmado, pedido em preparação.Acompanhar; pedir cancelamento dentro da regra da loja.
on_holdParado pela loja, à espera de algo.Aguardar.
shippedPacote saiu da loja.Ver rastreio (Acompanhar o envio).
delivered / completedEntregue e concluído.Baixar fatura e nota fiscal, avaliar os produtos, pedir devolução ou abrir contestação, comprar de novo.
cancelled, failedCancelado ou pagamento recusado. O estoque volta.Comprar de novo.
refunded, chargebackDinheiro devolvido, ou pagamento contestado no cartão.Nada; é estado final.

Essa é a instalação padrão. Cada loja pode renomear, esconder e criar status, e trocar as letras: o status do pedido é uma letra, e a tradução fica no cadastro público de Status de pedido. Para o catálogo completo e as regras de mudança de status do lado da loja, veja a seção de pedidos do guia rápido.

Fluxo típico de um aplicativo

  1. Entrar

    Faça o login do cliente (Login) e guarde o token. Todas as chamadas abaixo levam esse token.

  2. Listar e abrir

    Meus pedidos alimenta a tela de histórico; ao tocar em um pedido, Consultar pedido traz o detalhe.

  3. Agir conforme o estado

    Pedido pendente: Retomar pagamento. Pedido a caminho: Acompanhar o envio. Pedido entregue: Fatura, Nota fiscal, Avaliações e Devoluções.

  4. Arrependimento

    Cancelar pedido consulta primeiro se a loja aceita cancelamento naquele estado e só então pede.

Conceitos-chave

Quem pode ver o quê (propriedade do pedido)

O token do cliente identifica quem ele é, e todas as rotas filtram por isso. Um pedido é visível para o cliente quando: (1) o customer_id do pedido é o dele; (2) o pedido foi feito como visitante com o mesmo e-mail do cliente (esse pedido abre pelo id, mas não aparece na lista, que filtra só por customer_id); ou (3) a conta dele pertence a uma conta corporativa (vários usuários do mesmo CNPJ, ou membros de uma organização que pode ver os pedidos dela), caso em que a lista e o detalhe mostram os pedidos dos usuários vinculados. Fora disso a resposta é 404 order not found.

Regras um pouco mais estritas

Acompanhar o envio (fulfillment) só aceita o dono direto (customer_id); Nota fiscal e Cancelar pedido aceitam o dono direto ou o e-mail do visitante, mas não a conta corporativa. Devoluções e Contestações só enxergam pedidos em que o customer_id é o do cliente.

Logado ou visitante

A loja pode permitir comprar sem conta (configuração da loja). O visitante cria o pedido pela rota de pedido de visitante e depois só tem três portas de volta: Consultar pedido com ?email=, o rastreamento por número e e-mail e o link de retomada de pagamento (token ou e-mail). Todo o resto desta seção exige token de cliente. Se o visitante criar uma conta com o mesmo e-mail, os pedidos antigos passam a abrir pelo id com o token dele (mas não entram na lista).

Pedido pai e sub-pedidos

Uma compra com produtos de mais de um seller vira um pedido pai (o que o cliente paga) e um sub-pedido por seller (o que cada seller separa e envia). A lista de pedidos do cliente mostra só os pais; os sub-pedidos vêm em Acompanhar o envio.

O que depende de módulo ou configuração

RotaDepende deQuando desligado
GET /orders/{id}/trackingmódulo order-status-flow403 module_disabled
GET /orders/{id}/correios/trackingmódulo correios-shipping403 module_disabled
GET /orders/{id}/fulfillmentmódulo fulfillment403 module_disabled
GET /orders/{id}/nfe*módulo focusnfe403 module_disabled
GET /orders/{id}/reviewable, POST .../reviewmódulo product-reviews403 module_disabled
POST /orders/{id}/invoice/sendconfiguração customer_invoice_email (padrão desligada)404 not found
POST /orders/{id}/cancelconfiguração de cancelamento pelo cliente409 cancellation_not_available
/returns*, POST /orders/{id}/returnmódulo returns403 module_disabled

Endpoints

Método e caminhoPara quêAutenticaçãoPágina
GET /api/v1/storefront/ordersLista os pedidos do clienteclienteMeus pedidos
POST /api/v1/storefront/ordersCria o pedido a partir do carrinhoclienteCriar pedido
GET /api/v1/storefront/orders/{id}Detalhe de um pedidocliente ou visitanteConsultar pedido
POST /api/v1/storefront/orders/trackBusca por número e e-mailpúblicaConsultar pedido
GET /api/v1/storefront/order-statusesCadastro de status da lojapúblicaStatus de pedido
GET /api/v1/storefront/orders/{id}/cancellationPode cancelar? De que jeito?clienteCancelar pedido
POST /api/v1/storefront/orders/{id}/cancelCancela ou pede cancelamentoclienteCancelar pedido
GET /api/v1/storefront/orders/{id}/invoiceFatura em JSON ou HTMLclienteFatura do pedido
GET /api/v1/storefront/orders/{id}/invoice.pdfFatura em PDFclienteFatura do pedido
POST /api/v1/storefront/orders/{id}/invoice/sendEnvia a fatura por e-mailclienteFatura do pedido
GET /api/v1/storefront/orders/{id}/nfeDados da NF-eclienteNota fiscal (NF-e)
GET /api/v1/storefront/orders/{id}/nfe/xmlXML da NF-eclienteNota fiscal (NF-e)
GET /api/v1/storefront/orders/{id}/nfe/danfeDANFE em PDFclienteNota fiscal (NF-e)
GET /api/v1/storefront/orders/{id}/trackingEtapas e linha do tempoclienteAcompanhar o envio
GET /api/v1/storefront/orders/{id}/correios/trackingRastreio dos Correios por volumeclienteAcompanhar o envio
GET /api/v1/storefront/orders/{id}/fulfillmentRemessas do pedidoclienteAcompanhar o envio
GET /api/v1/storefront/orders/{id}/sub-ordersSub-pedidos por sellerclienteAcompanhar o envio
GET /api/v1/storefront/orders/{id}/payment-retryDá para pagar de novo?cliente ou visitanteRetomar pagamento
POST /api/v1/storefront/orders/{id}/payment-retryPaga de novocliente ou visitanteRetomar pagamento
POST /api/v1/storefront/orders/{id}/payment-retry/cancelDesiste e cancela o pedidocliente ou visitanteRetomar pagamento
GET /api/v1/storefront/orders/{id}/reviewableQue itens dá para avaliarclienteAvaliar o que comprou
POST /api/v1/storefront/orders/{id}/items/{productID}/reviewAvalia um itemclienteAvaliar o que comprou
POST /api/v1/storefront/orders/{orderId}/reorderPõe os itens de volta no carrinhoclienteComprar de novo

Devoluções, contestações, perfil, endereços e preferências do cliente estão nas seções Devoluções e contestações e Conta do cliente.

Erros comuns

Os erros que mais aparecem
  1. Usar o token de outra coisa. Um token de administrador ou de seller funciona como usuário comum nas rotas do cliente, mas só enxerga os pedidos daquele usuário. Para listar pedidos da loja use a API de administração.
  2. Tratar 404 como bug. Em pedido que não é seu, 404 order not found é a resposta correta.
  3. Somar centavos como reais. total: 5266 é R$ 52,66. Divida por 100 só na hora de exibir.
  4. Ler preço e quantidade da lista. O items de Meus pedidos é só uma prévia (nome e imagem); quantity e unit_price vêm zerados ali. Use o detalhe.
  5. Fixar a letra do status no código. O pode ser outra coisa em outra loja. Leia o cadastro em Status de pedido.
  6. Chamar uma rota de módulo desligado. Trate 403 module_disabled escondendo o botão, não mostrando erro ao cliente.
  7. Reenviar a criação sem idempotency_key. Um clique duplo pode criar dois pedidos; veja Criar pedido.

Próximos passos

Meus pedidos
Liste e filtre o histórico do cliente.
Criar pedido
Transforme o carrinho em pedido.
Devoluções e contestações
O que fazer depois que o pedido chegou.
Conta do cliente
Perfil, endereços e preferências.
Anterior
Oferta pós-compra
Próxima
Meus pedidos
Nesta página
  • Como funciona
  • O ciclo de vida do pedido, do ponto de vista do cliente
  • Fluxo típico de um aplicativo
  • Conceitos-chave
  • Quem pode ver o quê (propriedade do pedido)
  • Logado ou visitante
  • Pedido pai e sub-pedidos
  • O que depende de módulo ou configuração
  • Endpoints
  • Erros comuns
  • Próximos passos