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

Pedidos do app do seller sem versão

As rotas de pedidos do app móvel do seller em /api/vendor_orders, /api/vendor_order e /api/vn_*, para listar, consultar e mudar o status dos pedidos do próprio seller.

O app móvel do seller (lojista) da plataforma antiga usa rotas próprias, com um envelope de resposta diferente do resto da API 1.0. Esta página documenta as formas sem o prefixo /v1.0 dessas rotas; as formas com /api/v1.0 estão em Pedidos no app do seller e o comportamento é o mesmo, com uma diferença importante nos ids (veja o aviso).

Cada rota devolve apenas pedidos do seller autenticado. Cada operação tem dois nomes: o curto (vendor_orders, vendor_order) e o do app (vn_orders_list_api, vn_order_api).

Nesta forma a lista devolve ids decimais, mas o detalhe só entende UUID

Em /api/... a lista devolve order_id e customer_id como números decimais em string. Já GET e PUT em /api/vendor_order/{id} e /api/vn_order_api/{id} não traduzem o {id} do caminho: eles esperam o UUID do pedido. Um app que pegue o order_id da lista e o use no caminho vai chamar com um id que a rota não entende. Obtenha o UUID pela forma /api/v1.0/vendor_orders e use-o no detalhe. Um id que não corresponde a nenhum pedido (o decimal da lista, ou um UUID que não existe) não recebe o envelope: o servidor responde HTTP 500 em texto simples.

O envelope das respostas

Todas as respostas do app têm HTTP 200, inclusive os erros. O sucesso ou a falha está dentro do corpo:

json
{ "status": 200, "data": { "success": true, "message": "" } }

Quando data.success é false, data.message explica o problema. Se o usuário autenticado não é um seller, ou a conta do seller não está ativa, vem também "action": "logout", instruindo o app a encerrar a sessão.

GET/api/vendor_ordersSeller

Pedidos do seller autenticado, forma sem versão

Lista paginada dos pedidos do seller, do mais novo para o mais antigo.

Parâmetros de consulta

pageintegerpadrão: 1
Página.
items_per_pageintegerpadrão: 10
Itens por página, de 1 a 250. Fora disso vale 10.
GET/api/vn_orders_list_apiSeller

Pedidos do seller, nome do app

Mesma rota e mesma resposta de vendor_orders, com o nome usado pelo app.

Parâmetros de consulta

pageintegerpadrão: 1
Página.
items_per_pageintegerpadrão: 10
Itens por página, de 1 a 250.
GET/api/vendor_order/{id}Seller

Um pedido do seller, forma sem versão

Detalhe de um pedido do seller, com os itens. Se o pedido é de outro seller, responde success: false com Access denied. No GET, o número legível do pedido (PEDIDO-...) também é aceito no lugar do UUID.

Parâmetros de caminho

idstringobrigatório
UUID do pedido. O id decimal da lista não é traduzido aqui.
GET/api/vn_order_api/{id}Seller

Um pedido do seller, nome do app

Mesma rota e mesma resposta de GET vendor_order/{id}.

Parâmetros de caminho

idstringobrigatório
UUID do pedido.
PUT/api/vendor_order/{id}Seller

Mudar o status de um pedido do seller, forma sem versão

Muda o status de um pedido do seller. Passa pelas regras de status da plataforma (estoque, e-mails, histórico) e valida o destino no cadastro de status da loja.

Parâmetros de caminho

idstringobrigatório
UUID do pedido.

Corpo da requisição

statusstringobrigatório
Novo status: código (shipped) ou letra (S) do cadastro de status da loja.
PUT/api/vn_order_api/{id}Seller

Mudar o status de um pedido do seller, nome do app

Mesma rota e mesma resposta de PUT vendor_order/{id}.

Parâmetros de caminho

idstringobrigatório
UUID do pedido.

Corpo da requisição

statusstringobrigatório
Novo status, por código ou letra.

Exemplo de requisição

bash
curl -u "$SELLER_EMAIL:$SELLER_API_KEY" "$BASE_URL/api/vendor_orders?page=1&items_per_page=20"

curl -u "$SELLER_EMAIL:$SELLER_API_KEY" "$BASE_URL/api/vendor_order/$ORDER_UUID"

curl -X PUT "$BASE_URL/api/vendor_order/$ORDER_UUID" \
  -u "$SELLER_EMAIL:$SELLER_API_KEY" -H "Content-Type: application/json" \
  -d '{"status":"shipped"}'

Resposta

200Lista de pedidos do seller
json
{
  "status": 200,
  "data": {
    "success": true,
    "message": "",
    "orders": [
      {
        "order_id": "1794666195",
        "status": "shipped",
        "status_code": "S",
        "total": "232.41",
        "customer_id": "642412737",
        "created_at": "2026-10-11T20:14:40Z"
      }
    ],
    "search": { "page": 1, "items_per_page": 10, "total_items": 1 }
  }
}
200Detalhe do pedido
json
{
  "status": 200,
  "data": {
    "success": true,
    "message": "",
    "order": {
      "order_id": "1794666195",
      "status": "shipped",
      "status_code": "S",
      "total": "232.41",
      "subtotal": "230.00",
      "created_at": "2026-10-11T20:14:40Z",
      "items": [
        {
          "item_id": "607887120",
          "product_id": "592384622",
          "product": "Notebook Slim Rosa",
          "quantity": 2,
          "price": "115.00",
          "subtotal": "230.00"
        }
      ]
    }
  }
}
200Status alterado
json
{ "status": 200, "data": { "success": true, "message": "Order status updated" } }

Campos da resposta

statusinteger
Sempre 200, o código do envelope.
data.successboolean
true se a operação deu certo. É este campo, e não o HTTP, que diz se funcionou.
data.messagestring
Mensagem de erro, ou vazia no sucesso (a mudança de status devolve Order status updated).
data.actionstring
logout quando o usuário não é um seller ou a conta do seller não está ativa; o app deve encerrar a sessão.
data.ordersarray
(Lista) Pedidos do seller.
data.orders[].order_idstring
Id do pedido, decimal em string nesta forma.
data.orders[].statusstring
Código longo do status (shipped).
data.orders[].status_codestring
Letra equivalente na tabela padrão (S). Em status personalizados da loja pode não refletir a letra da loja; prefira status.
data.orders[].totalstring
Total em string decimal.
data.orders[].customer_idstring
Cliente, decimal em string nesta forma.
data.orders[].created_atstring
Criação, RFC 3339.
data.searchobject
(Lista) Paginação: page, items_per_page, total_items.
data.orderobject
(Detalhe) O pedido, com items (item_id, product_id, product, quantity, price, subtotal).

Erros

Como as respostas do app têm HTTP 200, os erros chegam em data.success: false:

data.messageQuando
Authentication requiredSem usuário autenticado.
No vendor assigned to this account (com action: "logout")A consulta do seller do usuário falhou.
User is not a vendor (com action: "logout")O usuário autenticado não é um seller (por exemplo, um administrador).
Vendor account is not active (com action: "logout")A conta do seller não está ativa.
Failed to load ordersFalha ao ler a lista.
Order not foundA leitura do pedido falhou com erro.
Access deniedO pedido é de outro seller.
status is requiredPUT sem status.
Status update failed: ...O destino não existe no cadastro, a transição não é permitida, ou o estorno falhou.
StatusQuandoCorpo
401Credencial inválida ou ausente{"message":"Invalid credentials","status":401}
500{id} que não corresponde a nenhum pedido (UUID inexistente ou decimal)internal server error em texto simples
Confira data.success, não o HTTP

Um app que só olha o status HTTP trata como sucesso um Access denied ou um Status update failed. Sempre leia data.success antes de seguir.

Veja também

  • Pedidos no app do seller (forma com versão)
  • Alterar o status
  • Coleção de pedidos
Anterior
Ganchos de ERP sem versão
Próxima
Rastreio por token de app
Nesta página
  • O envelope das respostas
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também