Reservas de estoque
Lista, cria e libera reservas que separam unidades do saldo para pedidos e compromissos manuais.
Listar reservas
Uma reserva separa unidades do saldo para que não sejam prometidas duas vezes. Quando um pedido do seller é criado a plataforma reserva os itens sozinha; você também pode reservar na mão. A lista traz as duas origens.
/api/v1/vendor/erp/inventory/reservationsSellerLista as reservas de estoque
Parâmetros de consulta
statusstringreservedreleasedcommittedpageintegerpadrão: 1per_pageintegerpadrão: 20Exemplo de requisição: Listar reservas
curl "$BASE_URL/api/v1/vendor/erp/inventory/reservations?status=reserved" \
-H "Authorization: Bearer $TOKEN"Resposta: Listar reservas
{
"reservations": [
{
"id": "61f7b821-50a5-41a0-a30e-274532a26d1c",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"product_id": "c3f92551-9dda-4fc7-b518-353d1c4e4035",
"product_name": "Notebook Slim Rosa",
"warehouse_id": "8204b8b8-e7e2-4b96-bba8-5a937fe001c8",
"order_id": null,
"quantity": 2,
"status": "reserved",
"reference": "Evento da loja",
"created_at": "2026-10-11T14:30:00Z",
"released_at": null
}
],
"total": 1
}Campos da resposta
reservationsarrayReservas da página.
iduuidvendor_iduuidproduct_iduuidproduct_namestringwarehouse_iduuidorder_iduuidnull em reserva manual.quantityintegerstatusstringreservedreleasedcommittedreferencestringorder.created_atdatetimereleased_atdatetimereserved. null enquanto reservada.totalintegerErros: Listar reservas
| Status | Quando | Corpo |
|---|---|---|
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Reservar estoque
Reserva unidades de um produto num depósito, por exemplo para um evento ou uma venda combinada fora da plataforma. Diferente da reserva automática de pedido, esta recusa a operação se o disponível for menor que o pedido.
/api/v1/vendor/erp/inventory/reservationsSellerReserva estoque manualmente
Corpo da requisição
product_iduuidobrigatóriowarehouse_iduuidobrigatórioquantityintegerobrigatórioreferencestringExemplo de requisição: Reservar estoque
curl -X POST "$BASE_URL/api/v1/vendor/erp/inventory/reservations" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"product_id": "c3f92551-9dda-4fc7-b518-353d1c4e4035",
"warehouse_id": "8204b8b8-e7e2-4b96-bba8-5a937fe001c8",
"quantity": 2,
"reference": "Evento da loja"
}'Resposta: Reservar estoque
{
"id": "61f7b821-50a5-41a0-a30e-274532a26d1c",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"product_id": "c3f92551-9dda-4fc7-b518-353d1c4e4035",
"product_name": "Notebook Slim Rosa",
"warehouse_id": "8204b8b8-e7e2-4b96-bba8-5a937fe001c8",
"order_id": null,
"quantity": 2,
"status": "reserved",
"reference": "Evento da loja",
"created_at": "2026-10-11T14:30:00Z",
"released_at": null
}Campos da resposta
iduuidvendor_iduuidproduct_iduuidproduct_namestringwarehouse_iduuidorder_iduuidnull em reserva manual.quantityintegerstatusstringreservedreleasedcommittedreferencestringorder.created_atdatetimereleased_atdatetimereserved. null enquanto reservada.Erros: Reservar estoque
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | Falta product_id ou warehouse_id. | {"error":"vendorerp: product_id and warehouse_id required"} |
| 400 | quantity menor ou igual a zero. | {"error":"vendorerp: quantity must be positive"} |
| 400 | O disponível (saldo menos reservado) é menor que quantity. | {"error":"vendorerp: insufficient available stock"} |
| 404 | O depósito não existe ou é de outro seller. | {"error":"warehouse not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Liberar reserva
Devolve ao disponível as unidades de uma reserva em estado reserved. Só reservas ainda abertas podem ser liberadas; uma já liberada ou já consumida responde 404.
/api/v1/vendor/erp/inventory/reservations/{id}/releaseSellerLibera uma reserva
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: Liberar reserva
curl -X POST "$BASE_URL/api/v1/vendor/erp/inventory/reservations/3f6c1c1e-8d0b-4a55-9a52-1d6f6a4a7b10/release" \
-H "Authorization: Bearer $TOKEN"Resposta: Liberar reserva
{
"message": "reservation released"
}Campos da resposta
messagestringreservation released.Erros: Liberar reserva
| Status | Quando | Corpo |
|---|---|---|
| 404 | Não existe, é de outro seller, ou já saiu do estado reserved. | {"error":"reservation not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |