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:
{ "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.
/api/v1.0/vendor_ordersSellerPedidos 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: 1items_per_pageintegerpadrão: 10/api/v1.0/vn_orders_list_apiSellerAlias de vendor_orders
Mesma rota e mesma resposta de vendor_orders, com o nome usado pelo app.
/api/v1.0/vendor_order/{id}SellerUm 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/api/v1.0/vn_order_api/{id}SellerAlias 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/api/v1.0/vendor_order/{id}SellerMudar 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órioCorpo da requisição
statusstringobrigatórioshipped) ou letra (S) do cadastro de status da loja./api/v1.0/vn_order_api/{id}SellerAlias 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órioCorpo da requisição
statusstringobrigatórioExemplo de requisição
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
{
"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 }
}
}{
"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"
}
]
}
}
}{ "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; o app deve encerrar a sessão.data.ordersarraydata.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[].created_atstringdata.searchobjectpage, items_per_page, total_items.data.orderobjectitems (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.message | Quando |
|---|---|
Authentication required | Sem usuário autenticado. |
User is not a vendor (com action: "logout") | O usuário autenticado não é um seller. |
Order not found | O pedido não existe. |
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. |
A autenticação em si (Basic inválido, token expirado) responde HTTP 401 como nas demais rotas: {"message":"Invalid credentials","status":401}.