Pular para o conteúdo

Fiscal (NFS-e)

Emissão de Nota Fiscal de Serviços (Sistema Nacional). Use API key com permissões nfse.view / nfse.manage e header X-Store-Slug.

Base: https://api.nivesistemas.com.br · 22 endpoints

Prontidão para emissão (certificado, IM, IBGE, etc.)

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/readiness" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Pendências para emitir NFS-e de uma OS

Query params

Campo Tipo Obrigatório Descrição
serviceOrderId uuid sim ID da ordem de serviço
tomadorKind string não PF | PJ | EXTERIOR | UNIDENTIFIED — UNIDENTIFIED não exige CPF/CNPJ do cliente da OS

Resposta: Checklist estruturado da loja/OS/cliente

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/emit-prep" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Listar NFS-e

Query params

Campo Tipo Obrigatório Descrição
status string não DRAFT | PENDING | AUTHORIZED | REJECTED | CANCELLED | MANUAL
serviceOrderId uuid não Filtrar por OS
receivableId uuid não Filtrar por conta a receber
page number não Página (default 1)
pageSize number não Itens por página (max 100)

Resposta: { items, total, page, pageSize }

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Detalhe da NFS-e

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Baixar XML da NFS-e autorizada

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/{id}/xml" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Emitir NFS-e a partir de OS concluída/faturada ou de venda do PDV

Corpo (JSON)

Campo Tipo Obrigatório Descrição
serviceOrderId uuid não ID da ordem de serviço (ou receivableId / saleId)
saleId uuid não ID da venda do PDV com itens de serviço — vincula também a OS se a venda veio de to-sale
receivableId uuid não ID da conta a receber vinculada à OS
notes string não Observações internas
tomadorKind string não PF | PJ | EXTERIOR | UNIDENTIFIED — UNIDENTIFIED omite o tomador na DPS
dryRun boolean não true = gera DPS assinada sem enviar à Receita

Resposta: 201 — documento fiscal (status PENDING/AUTHORIZED/DRAFT)

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/emit" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"serviceOrderId":"00000000-0000-0000-0000-000000000000","saleId":"00000000-0000-0000-0000-000000000000","receivableId":"00000000-0000-0000-0000-000000000000","notes":"","tomadorKind":"","dryRun":true}'

Exemplo de corpo

{ "serviceOrderId": "uuid-da-os", "dryRun": false }

Emitir NFS-e autônoma (sem OS) — ideal para outro sistema

Corpo (JSON)

Campo Tipo Obrigatório Descrição
tomadorKind string não PF | PJ | EXTERIOR | UNIDENTIFIED — com UNIDENTIFIED não envie tomador
tomador object não { name, taxId, taxIdType?, email?, phone?, endereço? } — omitir se tomadorKind=UNIDENTIFIED
servico object sim { cTribNac, descricao, cNBS?, codMunicipioPrestacao? }
valores object sim { vServ, aliqIss?, issRetained? }
externalReference string não Referência do sistema externo (salva em notes)
notes string não Observações
dryRun boolean não true = não envia à Receita

Resposta: 201 — documento fiscal sem serviceOrderId

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/emit-direct" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"tomadorKind":"","tomador":null,"servico":null,"valores":null,"externalReference":"","notes":"","dryRun":true}'

Exemplo de corpo

{ "tomador": { "name": "Cliente Externo", "taxId": "39053344705", "taxIdType": "CPF" }, "servico": { "cTribNac": "010701", "descricao": "Consultoria" }, "valores": { "vServ": 250.0, "aliqIss": 2.5 }, "externalReference": "pedido-123" }

Fluxo completo: cria/localiza cliente + OS concluída + emite NFS-e

Corpo (JSON)

Campo Tipo Obrigatório Descrição
tomadorKind string não PF | PJ | EXTERIOR | UNIDENTIFIED — UNIDENTIFIED omite o tomador na DPS
customer object sim { customerId } OU { name, taxId, email?, phone?, zipCode?, addressLine1?, addressNumber?, addressDistrict?, city?, state?, createIfMissing? }
items array sim [{ variantId, quantity, unitPrice? }] — variantes de produtos tipo SERVICE
description string não Descrição da OS
notes string não Observações
dryRun boolean não true = não envia à Receita
createReceivable boolean não Gerar conta a receber (respeita config da loja)

Resposta: 201 — { serviceOrderId, document }

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/emit-with-order" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"tomadorKind":"","customer":null,"items":[],"description":"","notes":"","dryRun":true,"createReceivable":true}'

Exemplo de corpo

{ "customer": { "name": "Cliente API", "taxId": "39053344705" }, "items": [{ "variantId": "uuid-variante-servico", "quantity": 1, "unitPrice": 150 }] }

Registrar NFS-e emitida fora do sistema

Corpo (JSON)

Campo Tipo Obrigatório Descrição
serviceOrderId uuid não OS vinculada (ou receivableId)
receivableId uuid não Conta a receber vinculada
number number não Número da nota
series string não Série
verificationCode string não Código de verificação
xmlContent string não XML da nota
pdfStorageKey string não Chave de armazenamento do PDF
issuedAt string não Data/hora de emissão (ISO)
notes string não Observações
status string não MANUAL | AUTHORIZED
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/manual" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"serviceOrderId":"00000000-0000-0000-0000-000000000000","receivableId":"00000000-0000-0000-0000-000000000000","number":0,"series":"","verificationCode":"","xmlContent":"","pdfStorageKey":"","issuedAt":"","notes":"","status":""}'

Reenviar NFS-e rejeitada/pendente (somente com OS vinculada)

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/{id}/retry" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Cancelar NFS-e autorizada

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
reason string não Justificativa
reasonCode string não 1=erro emissão | 2=serviço não prestado | 9=outros
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/{id}/cancel" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"reason":"","reasonCode":""}'

PDF do DANFSe (application/pdf)

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/{id}/danfse" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Prévia do DANFSe

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/{id}/danfse-preview" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

URL oficial de consulta pública (portal nacional)

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/{id}/consulta-publica" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Histórico de eventos da NFS-e

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/{id}/logs" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Consultar a situação na prefeitura/portal e atualizar

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/{id}/consultar" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Enviar a NFS-e por e-mail

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
email string sim E-mail
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/{id}/send-email" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"email":""}'

Emitir NFS-e substituta

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
reasonCode string não 01, 02, 03, 04, 05 ou 99
reason string não Motivo
tomadorKind string não Tipo de tomador
competenceDate string não Competência
notes string não Observações

Resposta: 201 Created

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/{id}/substituir" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"reasonCode":"","reason":"","tomadorKind":"","competenceDate":"","notes":""}'

ZIP com os XMLs das NFS-e do período

Query params

Campo Tipo Obrigatório Descrição
from string sim Data inicial
to string sim Data final
Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/reports/xml-zip" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Corrigir a situação da loja no Simples Nacional da NFS-e (erro E0160) e, se pedido, reenviar a nota rejeitada

Corpo (JSON)

Campo Tipo Obrigatório Descrição
value string sim NAO_OPTANTE | MEI | ME_EPP
retryId string não Id da NFS-e rejeitada a reenviar logo após a correção

Resposta: { ok: true, value, retried } (retried é a NFS-e reenviada ou null). NAO_OPTANTE também ajusta o CRT da loja para 3; os demais valores tiram o CRT 3.

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/op-simp-nac" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"value":"","retryId":""}'

Quantas NFS-e da tela antiga (sem venda/OS) ainda aguardam migração para vendas

Resposta: { pending }

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/nfse/standalone-migration" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Converter as NFS-e avulsas em vendas com a nota anexada

Corpo (JSON)

Campo Tipo Obrigatório Descrição
dryRun boolean não true só simula, sem gravar

Resposta: { dryRun, pending, migrated, skipped, items: [{ documentId, number, status, outcome (migrated | skipped), saleId, reason }] }

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/nfse/standalone-migration" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"dryRun":true}'