Transferências de estoque
Movimenta estoque entre locais. Fluxo: criar (DRAFT) → enviar (IN_TRANSIT) → receber (COMPLETED), ou concluir direto. Entre CNPJs diferentes informe a chave da NF-e de transferência. Escrita exige multi-loja no plano.
Base: https://api.nivesistemas.com.br · 9 endpoints
GET /stock-transfers
Seção intitulada “GET /stock-transfers”Listar transferências
Query params
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
status |
string | não | DRAFT, IN_TRANSIT, COMPLETED ou CANCELLED |
curl -X GET "https://api.nivesistemas.com.br/stock-transfers" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/stock-transfers", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/stock-transfers", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /stock-transfers/:id
Seção intitulada “GET /stock-transfers/:id”Detalhe da transferência com itens
Parâmetros de rota: id
curl -X GET "https://api.nivesistemas.com.br/stock-transfers/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/stock-transfers/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /stock-transfers
Seção intitulada “POST /stock-transfers”Criar transferência (rascunho)
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
fromLocationId |
uuid | sim | Local de origem |
toLocationId |
uuid | sim | Local de destino |
notes |
string | não | Observações |
lines |
array | sim | Itens: [{ variantId, quantity }] |
Resposta: 201 Created
curl -X POST "https://api.nivesistemas.com.br/stock-transfers" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"fromLocationId":"00000000-0000-0000-0000-000000000000","toLocationId":"00000000-0000-0000-0000-000000000000","notes":"","lines":[]}'const res = await fetch("https://api.nivesistemas.com.br/stock-transfers", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "fromLocationId": "00000000-0000-0000-0000-000000000000", "toLocationId": "00000000-0000-0000-0000-000000000000", "notes": "", "lines": [] }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/stock-transfers", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "fromLocationId": "00000000-0000-0000-0000-000000000000", "toLocationId": "00000000-0000-0000-0000-000000000000", "notes": "", "lines": [] },)print(res.json())POST /stock-transfers/:id/send
Seção intitulada “POST /stock-transfers/:id/send”Enviar (baixa na origem, fica em trânsito)
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
transferNfeAccessKey |
string | não | Chave da NF-e de transferência (obrigatória só entre CNPJs diferentes) |
curl -X POST "https://api.nivesistemas.com.br/stock-transfers/{id}/send" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"transferNfeAccessKey":""}'const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}/send", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "transferNfeAccessKey": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/stock-transfers/{id}/send", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "transferNfeAccessKey": "" },)print(res.json())POST /stock-transfers/:id/receive
Seção intitulada “POST /stock-transfers/:id/receive”Receber no destino
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/stock-transfers/{id}/receive" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}/receive", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/stock-transfers/{id}/receive", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /stock-transfers/:id/complete
Seção intitulada “POST /stock-transfers/:id/complete”Concluir em uma etapa (baixa na origem e entrada no destino)
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
transferNfeAccessKey |
string | não | Chave da NF-e de transferência (obrigatória só entre CNPJs diferentes) |
curl -X POST "https://api.nivesistemas.com.br/stock-transfers/{id}/complete" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"transferNfeAccessKey":""}'const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}/complete", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "transferNfeAccessKey": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/stock-transfers/{id}/complete", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "transferNfeAccessKey": "" },)print(res.json())POST /stock-transfers/:id/cancel
Seção intitulada “POST /stock-transfers/:id/cancel”Cancelar transferência
Parâmetros de rota: id
curl -X POST "https://api.nivesistemas.com.br/stock-transfers/{id}/cancel" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}/cancel", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/stock-transfers/{id}/cancel", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /stock-transfers/:id/nfe
Seção intitulada “GET /stock-transfers/:id/nfe”Status da NF-e de transferência (operação fiscal ligada à transferência)
Parâmetros de rota: id
Resposta: { operation } ou { operation: null } enquanto não houver NF-e. Traz status, chave de acesso e o motivo da rejeição.
curl -X GET "https://api.nivesistemas.com.br/stock-transfers/{id}/nfe" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}/nfe", { method: "GET", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "GET", "https://api.nivesistemas.com.br/stock-transfers/{id}/nfe", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /stock-transfers/:id/nfe
Seção intitulada “POST /stock-transfers/:id/nfe”Emitir a NF-e de transferência (CFOP 5151/5152/6151/6152)
Parâmetros de rota: id
Resposta: Só para transferência em rascunho entre CNPJs diferentes; a nota sai pelo CNPJ da filial de origem. Ao autorizar, a chave é gravada em transferNfeAccessKey e o envio/conclusão deixa de pedir a chave. Se a SEFAZ não responder, a operação fica na fila (PENDING). Rejeição definitiva devolve 400 com o motivo.
curl -X POST "https://api.nivesistemas.com.br/stock-transfers/{id}/nfe" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/stock-transfers/{id}/nfe", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/stock-transfers/{id}/nfe", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())
