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

Pedidos: rotas sem versão e app do seller

As rotas de pedidos da Venddor 1.0 sem o prefixo de versão, os ganchos de ERP, o app móvel do seller e o rastreio por token de app.

A seção Pedidos documenta as rotas /api/v1.0/orders.... A plataforma antiga, porém, respondia também sem o prefixo de versão (/api/orders), e os conectores de ERP, o app móvel do seller e os apps de terceiros foram escritos contra esses endereços. Esta seção cobre o que sobrou: as formas sem versão, os ganchos de ERP (extra_order_fields, orders_ext, order_limit), as rotas do app do seller e o rastreio por token de app.

A regra de ouro: o código é o mesmo. GET /api/orders e GET /api/v1.0/orders chamam o mesmo tratamento e devolvem o mesmo pedido; o que muda é a forma dos ids. Por isso as páginas desta seção são curtas e apontam para as páginas de Pedidos quando a regra é a mesma.

Pontos-chave
  • Na forma /api/... (sem versão), todo id sai e entra como número decimal em string ("1794666195"), derivado do UUID. Em /api/v1.0 são UUID.
  • As rotas de pedido exigem um administrador (HTTP Basic e-mail:chave_de_api ou Bearer <JWT>). As do app do seller exigem um usuário seller. As de rastreio aceitam só token de app (vat_...).
  • PUT /api/orders e POST /api/orders/{id} existem apenas para responder 405 Method Not Allowed.
  • O app do seller responde HTTP 200 mesmo nos erros; leia data.success.
  • Estas rotas existem para quem já tem conectores escritos contra os endereços sem versão. Em uma integração nova, prefira a forma com /api/v1.0, documentada em Pedidos.

Como funciona

ERP lista os pedidos novos→Cria a venda no ERP→orders_ext confirma a importação→extra_order_fields devolve a nota→order_limit sincroniza o crédito

Um conector de ERP típico usa as formas sem versão assim:

  1. Buscar os pedidos

    Coleção de pedidos lista os pedidos por status e data. Guarde o order_id decimal de cada um.

  2. Ler e alterar um pedido

    Um pedido devolve o detalhe, aceita alterações de dados e cancela. Itens, reembolso e histórico cobrem as consultas auxiliares.

  3. Devolver dados do ERP

    Ganchos de ERP grava o número do pedido no ERP, a nota fiscal e o limite de crédito do cliente.

  4. Acompanhar o envio

    Rastreio por token de app deixa um sistema externo consultar o rastreio sem usuário administrador.

Conceitos-chave

Ids decimais na forma sem versão

Em /api/... o servidor troca cada UUID de entidade por um número decimal de até 32 bits, em toda a resposta, e aceita esses números na entrada (caminho, consulta e corpo). É só uma outra grafia do mesmo registro: o UUID continua sendo aceito. Não misture as duas formas no mesmo cliente. A tradução vale para order_id, user_id, product_id, company_id, item_id e outros campos terminados em _id; payment_id (um código) e status não são traduzidos.

A tradução do caminho só vale para alguns nomes de recurso (orders, extra_order_fields, entre outros). Em orders_ext/{id} ela não vale; em vendor_order/{id} e vn_order_api/{id} também não: veja as páginas.

Rotas que só respondem 405

PUT /api/orders (sem id) e POST /api/orders/{id} (com id) não executam nada. Elas devolvem 405 Method Not Allowed com o cabeçalho Allow e corpo vazio, para que um cliente que tente o método errado receba uma resposta clara em vez de 404. Para criar, use POST /api/orders; para alterar, PUT /api/orders/{id}.

Os três públicos desta seção

Quem chamaCredencialRotas
Conector de ERP, integradorAdministrador: Basic e-mail:chave_de_api ou Bearer/api/orders..., extra_order_fields, orders_ext, order_limit
App móvel do sellerUsuário seller: Basic ou Bearervendor_orders, vendor_order, vn_*
Sistema de terceirosToken de app vat_... com escopo read_orders/api/admin/order-tracking..., /api/admin/orders/{id}/tracking

Dinheiro, datas e status

Dinheiro é string decimal ("52.66"). Datas são Unix timestamp (segundos) nas rotas de pedido e RFC 3339 no app do seller. O status das rotas de pedido é uma letra do cadastro da loja (O, P, C...); no app do seller vem o código longo (shipped) e a letra em status_code.

Endpoints

RotaAutenticaçãoPara que servePágina
GET /api/ordersadministradorLista pedidosColeção de pedidos
POST /api/ordersadministradorCria um pedidoColeção de pedidos
PUT /api/orders, PUT /api/v1.0/ordersadministradorSó responde 405Coleção de pedidos
GET, PUT, DELETE /api/orders/{id}administradorConsulta, altera, cancelaUm pedido
POST /api/orders/{id}, POST /api/v1.0/orders/{id}administradorSó responde 405Um pedido
GET /api/orders/{id}/productsadministradorItens do pedidoItens, reembolso e histórico
POST /api/orders/{id}/refundadministradorReembolsaItens, reembolso e histórico
GET /api/orders/{id}/status-historyadministradorHistórico de statusItens, reembolso e histórico
PUT /api/extra_order_fields/{order_id}administradorGrava dados da nota fiscalGanchos de ERP
PUT /api/orders_ext/{id}administradorGrava o número do pedido no ERPGanchos de ERP
PUT /api/v1.0/order_limit, PUT /api/order_limitadministradorDefine o limite de crédito de um clienteGanchos de ERP
GET /api/vendor_orders, GET /api/vn_orders_list_apisellerPedidos do sellerApp do seller
GET, PUT /api/vendor_order/{id}, GET, PUT /api/vn_order_api/{id}sellerUm pedido do seller; muda o statusApp do seller
GET /api/admin/order-tracking, GET /api/admin/order-tracking/{id}token de appRastreio por CNPJ ou por pedidoRastreio por token de app
GET /api/admin/orders/{id}/trackingtoken de appResumo do rastreioRastreio por token de app

Erros comuns

  • Misturar /api/orders com ids UUID em uma parte do cliente e decimais em outra. Funciona, mas dificulta a conciliação. Escolha uma forma.
  • Usar PUT /api/orders para alterar. Sem o id no caminho a resposta é 405. O id vai na URL: PUT /api/orders/{id}.
  • Mudar status junto com outros campos no PUT /api/orders/{id}. O status passa por uma tabela antiga de 7 letras e pode virar pending. Mande o status sozinho (veja Alterar o status).
  • Reenviar extra_order_fields. Cada envio cria outro registro; a chamada não é idempotente.
  • Usar orders_ext sem o status U no cadastro de status da loja: responde 409.
  • No app do seller, ler só o HTTP. Toda resposta é 200; o resultado está em data.success.
  • Usar um JWT de usuário nas rotas de rastreio. Elas aceitam só token de app e respondem 401 app_token_required.

Próximos passos

Coleção de pedidos
Listar e criar pedidos sem o prefixo de versão.
Ganchos de ERP
Número do ERP, nota fiscal e limite de crédito.
App do seller
Pedidos do seller nas rotas do app móvel.
Pedidos (API 1.0)
O contrato completo de cada operação.
Anterior
Nomes alternativos do fechamento
Próxima
Coleção de pedidos sem versão
Nesta página
  • Como funciona
  • Conceitos-chave
  • Ids decimais na forma sem versão
  • Rotas que só respondem 405
  • Os três públicos desta seção
  • Dinheiro, datas e status
  • Endpoints
  • Erros comuns
  • Próximos passos