Developers

Saldo por loja

Leia o saldo atual do WMS de cada loja e produto, com o disponível separado do que não pode ser vendido.

O WMS do BIX controla o estoque por endereço dentro de cada loja: depósito, zona, prateleira. Para quem está fora, o que interessa é o saldo atual por loja e produto, que é o que este recurso devolve.

Antes de começar

  • O cliente precisa ter o módulo WMS (senão: 403 module_disabled).
  • A chave precisa do escopo wms.stock.read.
  • As lojas precisam ter código de integração cadastrado para você filtrar por store_code: ver Conceitos.

Ler o saldo de uma loja

GET/wms/stock-balances

curl "https://demonstracao.appbix.com.br/external-api/v1/wms/stock-balances?store_code=0012&page_size=100" \
  -H "Authorization: Bearer $BIX_API_KEY"

Cada item de data é um par loja + produto, com o saldo somado de todos os depósitos e endereços da loja:

{
  "store": {"id": 12, "code": "0012", "name": "Loja Centro"},
  "product": {"id": 345, "internal_code": "1001", "ean": "7891234567890",
              "description": "ARROZ TIPO 1 5KG", "unit": "UN"},
  "quantity_total": 120.0,
  "quantity_available": 100.0,
  "quantity_unavailable": 20.0,
  "updated_at": "2026-11-09T10:15:00-03:00"
}

Disponível e indisponível

Campo O que soma
quantity_total Tudo o que está na loja, em qualquer situação
quantity_available Saldo em situação "Disponível" num depósito que conta como disponível
quantity_unavailable O resto: bloqueado, em análise, avaria, trânsito

Para venda e reposição, use quantity_available.

Filtrar

Quero… Use
Uma ou mais lojas store_code=0012,0020 ou store_id=12
Alguns produtos product_code=1001,1002 ou ean=7891234567890
Só o que mudou updated_since=2026-11-09T06:00:00-03:00
Ver também os zerados include_zero=true

Filtrar pelo EAN de uma caixa traz o item de estoque daquele produto (normalmente a unidade). Por isso o EAN da resposta pode ser outro. Compare pelo internal_code.

Sincronizar com o seu ERP

  1. Primeira carga: percorra todas as páginas, sem updated_since, uma loja por vez ou todas de uma vez.
  2. Depois: a cada execução, leia com updated_since e include_zero=true. Sem o include_zero, um produto cujo saldo foi a zero simplesmente some da resposta, e o seu lado continuaria com o saldo antigo.
  3. Siga a receita de checkpoint de Paginação e sincronização.

Chave restrita a lojas

Se a chave foi criada só para algumas lojas, sem filtro você recebe só as lojas dela. Pedir outra loja dá 403 store_not_allowed.