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).
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:
{ "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.
/api/vendor_ordersSellerPedidos 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: 1items_per_pageintegerpadrão: 10/api/vn_orders_list_apiSellerPedidos 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: 1items_per_pageintegerpadrão: 10/api/vendor_order/{id}SellerUm 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/api/vn_order_api/{id}SellerUm pedido do seller, nome do app
Mesma rota e mesma resposta de GET vendor_order/{id}.
Parâmetros de caminho
idstringobrigatório/api/vendor_order/{id}SellerMudar 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órioCorpo da requisição
statusstringobrigatórioshipped) ou letra (S) do cadastro de status da loja./api/vn_order_api/{id}SellerMudar 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órioCorpo da requisição
statusstringobrigatórioExemplo de requisição
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
{
"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 }
}
}{
"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"
}
]
}
}
}{ "status": 200, "data": { "success": true, "message": "Order status updated" } }Campos da resposta
statusinteger200, o código do envelope.data.successbooleantrue se a operação deu certo. É este campo, e não o HTTP, que diz se funcionou.data.messagestringOrder status updated).data.actionstringlogout 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.ordersarraydata.orders[].order_idstringdata.orders[].statusstringshipped).data.orders[].status_codestringS). Em status personalizados da loja pode não refletir a letra da loja; prefira status.data.orders[].totalstringdata.orders[].customer_idstringdata.orders[].created_atstringdata.searchobjectpage, items_per_page, total_items.data.orderobjectitems (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.message | Quando |
|---|---|
Authentication required | Sem 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 orders | Falha ao ler a lista. |
Order not found | A leitura do pedido falhou com erro. |
Access denied | O pedido é de outro seller. |
status is required | PUT sem status. |
Status update failed: ... | O destino não existe no cadastro, a transição não é permitida, ou o estorno falhou. |
| Status | Quando | Corpo |
|---|---|---|
| 401 | Credencial 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 |