Operações fiscais (NF-e além da venda)
Bonificação, amostra, transferência, remessas (industrialização, conserto, demonstração, consignação, armazém, simples remessa), exportação, NF-e complementar/ajuste e baixa de estoque por perda. Não gera contas a receber. Leitura exige fiscal.view e escrita fiscal.manage. Tributação padrão por tipo sujeita à validação do contador.
Base: https://api.nivesistemas.com.br · 14 endpoints
GET /fiscal-operations
Seção intitulada “GET /fiscal-operations”Listar operações fiscais (paginado)
Query params
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
q |
string | não | Destinatário, CPF/CNPJ, número da operação ou do documento, ou chave |
kind |
string | não | Tipo de operação (ex.: BONUS, TRANSFER, EXPORT, LOSS) |
status |
string | não | DRAFT, PENDING, PROCESSING, AUTHORIZED, REJECTED, CANCELLED, CONTINGENCY ou COMPLETED |
from |
string | não | Criadas a partir de (ISO 8601) |
to |
string | não | Criadas até (ISO 8601) |
page |
number | não | Página (padrão 1) |
pageSize |
number | não | Itens por página (1 a 100, padrão 25) |
Resposta: { items, total, page, pageSize }
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations", { 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/fiscal-operations", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /fiscal-operations
Seção intitulada “POST /fiscal-operations”Criar operação em rascunho
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
kind |
string | sim | Tipo de operação |
locationId |
uuid | não | Filial de origem (estoque e emitente) |
destType |
string | não | CUSTOMER, SUPPLIER, LOCATION, MANUAL ou SELF |
destCustomerId / destSupplierId / destLocationId |
uuid | não | Destinatário cadastrado |
dest |
object | não | Dados digitados do destinatário (nome, taxId, endereço, país no exterior) |
natOp |
string | não | Natureza da operação (até 60 caracteres; vazio usa a do tipo) |
reasonCode / reason |
string | não | Motivo da baixa (PERDA, QUEBRA, VENCIMENTO, DETERIORACAO, ROUBO, OUTRO) e descrição |
refAccessKeys |
string[] | não | Chaves de 44 dígitos das NF-e referenciadas (obrigatório em alguns tipos) |
exportData |
object | não | Exportação: { ufSaida, locExporta, locDespacho } |
carrierId / nfeExtras |
object | não | Transportadora, frete, veículo e volumes |
moveStock / emitNfe |
boolean | não | Simples remessa movimenta estoque; baixa emite NF-e 5927 só se true |
items |
array | sim | Itens: variantId ou descrição/NCM/unidade, quantity, unitValue, totalValue, taxOverride, manualTax, lots |
Resposta: 201 Created com a operação
curl -X POST "https://api.nivesistemas.com.br/fiscal-operations" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"kind":"","locationId":"00000000-0000-0000-0000-000000000000","destType":"","destCustomerId / destSupplierId / destLocationId":"00000000-0000-0000-0000-000000000000","dest":null,"natOp":"","reasonCode / reason":"","refAccessKeys":null,"exportData":null,"carrierId / nfeExtras":null,"moveStock / emitNfe":true,"items":[]}'const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "kind": "", "locationId": "00000000-0000-0000-0000-000000000000", "destType": "", "destCustomerId / destSupplierId / destLocationId": "00000000-0000-0000-0000-000000000000", "dest": null, "natOp": "", "reasonCode / reason": "", "refAccessKeys": null, "exportData": null, "carrierId / nfeExtras": null, "moveStock / emitNfe": true, "items": [] }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/fiscal-operations", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "kind": "", "locationId": "00000000-0000-0000-0000-000000000000", "destType": "", "destCustomerId / destSupplierId / destLocationId": "00000000-0000-0000-0000-000000000000", "dest": None, "natOp": "", "reasonCode / reason": "", "refAccessKeys": None, "exportData": None, "carrierId / nfeExtras": None, "moveStock / emitNfe": True, "items": [] },)print(res.json())GET /fiscal-operations/:id
Seção intitulada “GET /fiscal-operations/:id”Detalhe da operação (itens, documento fiscal, avisos)
Parâmetros de rota: id
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{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/fiscal-operations/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())PUT /fiscal-operations/:id
Seção intitulada “PUT /fiscal-operations/:id”Editar operação em rascunho ou rejeitada (mesmo corpo do POST; o tipo não muda)
Parâmetros de rota: id
curl -X PUT "https://api.nivesistemas.com.br/fiscal-operations/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}", { method: "PUT", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "PUT", "https://api.nivesistemas.com.br/fiscal-operations/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())DELETE /fiscal-operations/:id
Seção intitulada “DELETE /fiscal-operations/:id”Excluir rascunho
Parâmetros de rota: id
Resposta: 204 No Content
curl -X DELETE "https://api.nivesistemas.com.br/fiscal-operations/{id}" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}", { method: "DELETE", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },});const data = await res.json();import requests
res = requests.request( "DELETE", "https://api.nivesistemas.com.br/fiscal-operations/{id}", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /fiscal-operations/:id/preview
Seção intitulada “POST /fiscal-operations/:id/preview”Prévia: valida e mostra CFOP/CST por item, totais, avisos e faltas de estoque
Parâmetros de rota: id
Resposta: { ok: true, scope, natOp, vProd, vNF, items, warnings, stockShortages } ou { ok: false, errors }
curl -X POST "https://api.nivesistemas.com.br/fiscal-operations/{id}/preview" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}/preview", { 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/fiscal-operations/{id}/preview", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /fiscal-operations/:id/issue
Seção intitulada “POST /fiscal-operations/:id/issue”Emitir: valida, baixa o estoque e transmite a NF-e (baixa sem NF-e é só registrada)
Parâmetros de rota: id
Resposta: 200 { queued: false, operation }; 202 { queued: true, message, operation } quando a SEFAZ não respondeu e a nota ficou na fila; 400 com o motivo.
curl -X POST "https://api.nivesistemas.com.br/fiscal-operations/{id}/issue" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}/issue", { 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/fiscal-operations/{id}/issue", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())POST /fiscal-operations/:id/cancel
Seção intitulada “POST /fiscal-operations/:id/cancel”Cancelar operação emitida (devolve o estoque)
Parâmetros de rota: id
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
justification |
string | sim | Justificativa de 15 a 255 caracteres |
curl -X POST "https://api.nivesistemas.com.br/fiscal-operations/{id}/cancel" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"justification":""}'const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}/cancel", { method: "POST", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "justification": "" }),});const data = await res.json();import requests
res = requests.request( "POST", "https://api.nivesistemas.com.br/fiscal-operations/{id}/cancel", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "justification": "" },)print(res.json())GET /fiscal-operations/:id/xml
Seção intitulada “GET /fiscal-operations/:id/xml”Baixar o XML autorizado
Parâmetros de rota: id
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations/{id}/xml" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}/xml", { 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/fiscal-operations/{id}/xml", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /fiscal-operations/:id/pdf
Seção intitulada “GET /fiscal-operations/:id/pdf”DANFE em PDF
Parâmetros de rota: id
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations/{id}/pdf" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}/pdf", { 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/fiscal-operations/{id}/pdf", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /fiscal-operations/tax-options
Seção intitulada “GET /fiscal-operations/tax-options”Tributação padrão por tipo de operação e regime (CRT) da loja
Resposta: { crt, options }. CRT 1, 2 e 4 usam CSOSN; CRT 3 usa CST.
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations/tax-options" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/tax-options", { 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/fiscal-operations/tax-options", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())PUT /fiscal-operations/tax-options
Seção intitulada “PUT /fiscal-operations/tax-options”Sobrescrever a tributação padrão de cada tipo (confirmar com o contador)
Corpo (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
options |
object | sim | { [tipo]: { icmsMode, icmsCst, icmsCsosn, ipiMode, ipiCst, ipiAlways, pisCofinsMode, pisCofinsCst, pisCofinsCstSimples } } |
curl -X PUT "https://api.nivesistemas.com.br/fiscal-operations/tax-options" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo" \ -H "Content-Type: application/json" \ -d '{"options":null}'const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/tax-options", { method: "PUT", headers: { Authorization: "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", "Content-Type": "application/json", }, body: JSON.stringify({ "options": null }),});const data = await res.json();import requests
res = requests.request( "PUT", "https://api.nivesistemas.com.br/fiscal-operations/tax-options", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", }, json={ "options": None },)print(res.json())GET /fiscal-operations/referenced-nfe
Seção intitulada “GET /fiscal-operations/referenced-nfe”Dados da NF-e referenciada (destinatário e itens) para preencher complementar, ajuste e retornos
Query params
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
accessKey |
string | sim | Chave de 44 dígitos |
Resposta: { found: false } quando a nota não foi emitida nem recebida por este sistema.
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations/referenced-nfe" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/referenced-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/fiscal-operations/referenced-nfe", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())GET /fiscal-operations/:id/danfe-html
Seção intitulada “GET /fiscal-operations/:id/danfe-html”DANFE da operação em HTML (para visualizar ou imprimir no navegador)
Parâmetros de rota: id
Resposta: text/html; charset=utf-8, sem cache. Para o PDF use /fiscal-operations/:id/pdf.
curl -X GET "https://api.nivesistemas.com.br/fiscal-operations/{id}/danfe-html" \ -H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \ -H "X-Store-Slug: loja-demo"const res = await fetch("https://api.nivesistemas.com.br/fiscal-operations/{id}/danfe-html", { 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/fiscal-operations/{id}/danfe-html", headers={ "Authorization": "Bearer sl_live_exemplo_abc123xyz789", "X-Store-Slug": "loja-demo", },)print(res.json())
