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

Pedidos no app do seller

Rotas de pedidos do app móvel do seller (lojista) na API compatível com a Venddor 1.0, para listar, consultar e mudar o status dos pedidos do próprio seller.

O app móvel do seller (lojista) da plataforma antiga usa um conjunto de rotas próprias, com um envelope de resposta diferente do resto desta API. Elas continuam disponíveis para os apps existentes. Cada rota devolve apenas pedidos do seller autenticado: um seller não vê nem altera pedido de outro.

Cada rota tem dois nomes que fazem a mesma coisa: o nome curto (vendor_orders, vendor_order) e o nome do app (vn_orders_list_api, vn_order_api). Use o que o seu app já usa.

O envelope das respostas

Todas as respostas desta página 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 (Access denied, Order not found, status is required...). Se o usuário autenticado não é um seller, vem "action": "logout", instruindo o app a encerrar a sessão.

GET/api/v1.0/vendor_ordersSeller

Pedidos do seller autenticado

Lista paginada dos pedidos do seller autenticado, do mais novo para o mais antigo. Autenticação: HTTP Basic ou Bearer do usuário do seller (ou de um administrador, que recebe a mensagem de que não é seller). Alias: GET /api/v1.0/vn_orders_list_api.

Parâmetros de consulta

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

Alias de vendor_orders

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

GET/api/v1.0/vendor_order/{id}Seller

Um pedido do seller

Detalhe de um pedido do seller, com os itens. Se o pedido é de outro seller, responde success: false com Access denied. Alias: GET /api/v1.0/vn_order_api/{id}.

Parâmetros de caminho

idstringobrigatório
Id do pedido (UUID).
GET/api/v1.0/vn_order_api/{id}Seller

Alias de vendor_order

Mesma rota e mesma resposta de GET vendor_order/{id}, com o nome usado pelo app.

Parâmetros de caminho

idstringobrigatório
Id do pedido (UUID).
PUT/api/v1.0/vendor_order/{id}Seller

Mudar o status de um pedido do seller

Muda o status de um pedido do seller. Passa pelas regras de status da plataforma (estoque, e-mails, histórico), validando o destino no cadastro de status da loja. Alias: PUT /api/v1.0/vn_order_api/{id}.

Parâmetros de caminho

idstringobrigatório
Id do pedido (UUID).

Corpo da requisição

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

Alias de vendor_order (PUT)

Mesma rota e mesma resposta de PUT vendor_order/{id}, com o nome usado pelo app.

Parâmetros de caminho

idstringobrigatório
Id do pedido (UUID).

Corpo da requisição

statusstringobrigatório
Novo status.

Exemplo de requisição

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

curl -u "$SELLER_EMAIL:$SELLER_API_KEY" "$BASE_URL/api/v1.0/vendor_order/$ORDER_ID"

curl -X PUT "$BASE_URL/api/v1.0/vendor_order/$ORDER_ID" \
  -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": "0932405c-a8c1-49b3-a7db-61aab4c4d666",
        "status": "shipped",
        "status_code": "S",
        "total": "232.41",
        "customer_id": "f12f30a9-cbec-40ba-98f1-b7fa8f2e8e10",
        "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": "0932405c-a8c1-49b3-a7db-61aab4c4d666",
      "status": "shipped",
      "status_code": "S",
      "total": "232.41",
      "subtotal": "230.00",
      "created_at": "2026-10-11T20:14:40Z",
      "items": [
        {
          "item_id": "ab1beb7c-f955-408a-a251-32c6ade93a95",
          "product_id": "c3f92551-9dda-4fc7-b518-353d1c4e4035",
          "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; o app deve encerrar a sessão.
data.ordersarray
(Lista) Pedidos do seller.
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[].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 todas as respostas têm HTTP 200, os erros chegam em data.success: false:

data.messageQuando
Authentication requiredSem usuário autenticado.
User is not a vendor (com action: "logout")O usuário autenticado não é um seller.
Order not foundO pedido não existe.
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.

A autenticação em si (Basic inválido, token expirado) responde HTTP 401 como nas demais rotas: {"message":"Invalid credentials","status":401}.

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

  • Alterar o status
Anterior
Sincronização com ERP
Próxima
Pedidos por token de app
Nesta página
  • O envelope das respostas
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também