Saldos por endereço
Consulta o saldo por endereço, registra contagens físicas, move unidades entre endereços e lê o histórico desses lançamentos.
Listar saldos por endereço
Mostra quantas unidades de cada produto há em cada endereço. Só aparecem endereços não apagados. Não há paginação.
/api/v1/vendor/erp/wms/stockSellerLista o saldo por endereço
Parâmetros de consulta
warehouse_iduuidlocation_iduuidproduct_iduuidExemplo de requisição: Listar saldos por endereço
Resposta: Listar saldos por endereço
Campos da resposta
stockarrayLinhas de saldo.
iduuidvendor_iduuidlocation_iduuidlocation_codestringlocation_typestringaisleshelfbinwarehouse_iduuidwarehouse_namestringproduct_iduuidproduct_namestringqtyintegerupdated_atdatetimetotalintegerErros: Listar saldos por endereço
| Status | Quando | Corpo |
|---|---|---|
| 500 | Um filtro de id não é um UUID válido (a plataforma devolve 500, não 400). | {"error":"failed to list bin stock","detail":"o valor \"xyz\" não é um uuid válido. Envie o identificador completo, com os 36 caracteres e os hífens. Corrija o campo e reenvie."} |
| 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"} |
Registrar contagem
Informa quantas unidades de um produto existem de fato num endereço (inventário). O saldo do endereço passa a ser exatamente qty. Se a contagem difere do esperado, a diferença também é lançada como ajuste no saldo do depósito do ERP de estoque.
/api/v1/vendor/erp/wms/stock/countSellerRegistra uma contagem física
Corpo da requisição
location_iduuidobrigatórioproduct_iduuidobrigatórioqtyintegerobrigatórioExemplo de requisição: Registrar contagem
Resposta: Registrar contagem
Campos da resposta
iduuidvendor_iduuidlocation_iduuidlocation_codestringlocation_typestringaisleshelfbinwarehouse_iduuidwarehouse_namestringproduct_iduuidproduct_namestringqtyintegerupdated_atdatetimeErros: Registrar contagem
| 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 | location_id ausente. | {"error":"vendorerp: location_id required"} |
| 400 | product_id ausente. | {"error":"vendorerp: product_id required"} |
| 400 | qty negativa. | {"error":"vendorerp: qty must be >= 0"} |
| 404 | O endereço não existe ou é de outro seller. | {"error":"location 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"} |
Mover entre endereços
Tira unidades de um endereço e põe em outro, na mesma transação. Se os dois endereços estão em depósitos diferentes, a plataforma também transfere o saldo entre os depósitos no ERP de estoque.
/api/v1/vendor/erp/wms/stock/moveSellerMove unidades entre endereços
Corpo da requisição
product_iduuidobrigatóriofrom_location_iduuidobrigatórioto_location_iduuidobrigatórioqtyintegerobrigatórioExemplo de requisição: Mover entre endereços
Resposta: Mover entre endereços
Campos da resposta
iduuidvendor_iduuidlocation_iduuidlocation_codestringlocation_typestringaisleshelfbinwarehouse_iduuidwarehouse_namestringproduct_iduuidproduct_namestringqtyintegerupdated_atdatetimeErros: Mover entre endereços
| 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 um dos endereços. | {"error":"vendorerp: from_location_id and to_location_id required"} |
| 400 | Origem igual ao destino. | {"error":"vendorerp: from and to must differ"} |
| 400 | qty menor ou igual a zero. | {"error":"vendorerp: qty must be positive"} |
| 400 | A origem não tem unidades suficientes do produto. | {"error":"insufficient stock at source location"} |
| 404 | O endereço não existe ou é de outro seller. | {"error":"location 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"} |
Listar histórico
O histórico guarda cada contagem e cada movimentação entre endereços, do mais novo para o mais antigo.
/api/v1/vendor/erp/wms/movementsSellerLista o histórico de lançamentos de endereço
Parâmetros de consulta
warehouse_iduuidlocation_iduuidproduct_iduuidkindstringcountmove_inmove_outpageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição: Listar histórico
Resposta: Listar histórico
Campos da resposta
movementsarrayLançamentos da página.
iduuidvendor_iduuidlocation_iduuidlocation_codestringwarehouse_iduuidwarehouse_namestringproduct_iduuidproduct_namestringkindstringcountmove_inmove_outdeltaintegerbalance_afterintegerexpected_qtyintegercount: o saldo que o sistema esperava antes da contagem. Ausente nos demais.counted_qtyintegercount: a quantidade contada. Ausente nos demais.stock_syncedbooleantrue quando o lançamento também mexeu no saldo do depósito do ERP de estoque.reasonstringreferencestringBINMOVE-<origem>-<destino>; vazio nos demais.created_atdatetimetotalintegerErros: Listar histórico
| Status | Quando | Corpo |
|---|---|---|
| 500 | Um filtro de id não é um UUID válido (a plataforma devolve 500, não 400). | {"error":"failed to list bin movements","detail":"o valor \"xyz\" não é um uuid válido. Envie o identificador completo, com os 36 caracteres e os hífens. Corrija o campo e reenvie."} |
| 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"} |