Documentação da API
A Wizard-API é uma API REST para emissão e gestão de NF-e e NFC-e. Envie JSON e receba a nota autorizada — sem SOAP, XML manual, certificados ou protocolos da SEFAZ para lidar diretamente.
Todas as rotas estão prefixadas com /api
e exigem autenticação por API key no header
x-api-key. Cada rota declara
um scope exigido pela chave. Gere sua chave
no dashboard em /dashboard/api-keys.
Respostas seguem o formato { success, data, error }.
Códigos 2xx indicam sucesso,
4xx erros de validação/rejeição da SEFAZ,
5xx erros internos.
Autenticação
Envie sua API key no header x-api-key.
Requisições sem chave ou com scope insuficiente retornam
401 ou 403.
x-api-key: <sua-api-key>Exemplo com curl:
curl -X POST https://api.sua-instancia.com/api/nfe/autorizar \ -H "x-api-key: sk_live_abc123" \ -H "Content-Type: application/json" \ -d @payload.json
Erros
Os campos cStat e xMotivo da SEFAZ aparecem dentro de error.sefaz quando a UF rejeita a operação (HTTP 422).
{
"success": false,
"data": null,
"error": {
"code": "NFE_REJEITADA",
"sefaz": { "cStat": "204", "xMotivo": "Duplicidade de NF-e" }
}
}Códigos comuns em error.code:
VALIDATION_ERROR— payload JSON inválidoUNAUTHORIZED— chave de API ausente ou inválidaFORBIDDEN— chave não tem o scope exigidoNFE_REJEITADA— SEFAZ rejeitou a operaçãoNOT_FOUND— recurso não encontradoINTERNAL_ERROR— falha inesperada
Endpoints
Rotas agrupadas por scope. Campos obrigatórios são validados por Zod no servidor.
Emissão nfe:emissao
/api/nfe/autorizar
Envia um lote de NF-e para autorização na SEFAZ (1 a 50 NF-e por lote). Aceita JSON (validado por Zod) ou XML.
Request:
{
"idLote": 1,
"indSinc": 1,
"NFe": [{
"infNFe": {
"ide": { "cUF": 35, "natOp": "Venda de mercadoria", "mod": 55, "serie": "1", "nNF": 1, "tpNF": 1, "tpAmb": 2, "finNFe": 1, "indFinal": 1 },
"emit": { "CNPJCPF": "12345678000199", "xNome": "Empresa Teste Ltda", "IE": "12345678901234", "CRT": 3 },
"dest": { "CNPJCPF": "08723218000186", "xNome": "Cliente Exemplo SA", "indIEDest": 9 },
"det": [{ "prod": { "cProd": "001", "xProd": "Produto Teste", "NCM": "84719090", "CFOP": 5102, "uCom": "UN", "qCom": 1, "vUnCom": "100.00", "vProd": "100.00", "indTot": 1 } }],
"total": { "ICMSTot": { "vNF": "100.00" } },
"transp": { "modFrete": 0 },
"pag": { "detPag": [{ "tPag": "01", "vPag": "100.00" }] }
}
}]
}Response (200):
{
"success": true,
"data": {
"chave": "43210712345678000199550000000000011001234567",
"nProt": "143260000012345",
"cStat": "100",
"xMotivo": "Autorizado o uso da NF-e",
"xml": "<?xml ...>"
},
"error": null
}Validação: idLote int ≥ 1; indSinc 0/1 (opcional); NFe array 1–50 itens. CNPJ/CPF normalizados automaticamente.
Eventos nfe:eventos
/api/nfe/cancelar
Cancela uma NF-e autorizada. O protocolo de autorização é exigido.
{
"chave": "43210712345678000199550000000000011001234567",
"nProt": "143260000012345",
"xJust": "Erro na emissao da nota fiscal"
}Validação: chave ≥ 44 chars; nProt ≥ 15 chars; xJust 15–255 chars.
/api/nfe/carta-correcao
Registro de Carta de Correção Eletrônica (CC-e).
{
"chave": "43210712345678000199550000000000011001234567",
"xCorrecao": "Corrigir o endereco do destinatario para Rua B número 200"
}Validação: chave ≥ 44 chars; xCorrecao 15–1000 chars.
/api/nfe/ciencia
Manifestação do destinatário: Ciência da Operação.
{ "chave": "43210712345678000199550000000000011001234567" }/api/nfe/confirmacao
Manifestação do destinatário: Confirmação da Operação.
{ "chave": "43210712345678000199550000000000011001234567" }/api/nfe/desconhecimento
Manifestação do destinatário: Desconhecimento da Operação.
{ "chave": "43210712345678000199550000000000011001234567" }/api/nfe/operacao-nao-realizada
Manifestação do destinatário: Operação não Realizada.
{ "chave": "43210712345678000199550000000000011001234567" }/api/nfe/epec
Evento Prévio de Emissão em Contingência (EPEC).
{
"chave": "43210712345678000199550000000000011001234567",
"cOrgaoAutor": "35"
}Validação: chave ≥ 44 chars; cOrgaoAutor ≥ 2 chars (código IBGE da UF).
NFC-e nfce:emissao / nfce:eventos
/api/nfce/autorizar
Envia uma NFC-e (mod=65) para autorização na SEFAZ (1 a 50 por lote). Exige indFinal=1, indPres=1 e destinatário.
Request:
{
"idLote": 1,
"indSinc": 1,
"NFe": [{
"infNFe": {
"ide": { "cUF": 35, "natOp": "Venda varejo", "mod": 65, "serie": "1", "nNF": 1, "tpNF": 1, "tpAmb": 2, "finNFe": 1, "indFinal": 1, "indPres": 1 },
"emit": { "CNPJCPF": "12345678000199", "xNome": "Loja Teste Ltda", "IE": "12345678901234", "CRT": 3 },
"dest": { "CNPJCPF": "08723218000186", "xNome": "Cliente Final", "indIEDest": 9 },
"det": [{ "prod": { "cProd": "001", "xProd": "Produto Varejo", "NCM": "84719090", "CFOP": 5102, "uCom": "UN", "qCom": 1, "vUnCom": "50.00", "vProd": "50.00", "indTot": 1 } }],
"total": { "ICMSTot": { "vNF": "50.00" } },
"transp": { "modFrete": 9 },
"pag": { "detPag": [{ "tPag": "01", "vPag": "50.00" }] }
}
}]
}Response (200):
{
"success": true,
"data": {
"chave": "43210712345678000199650000000000011001234567",
"nProt": "143260000012345",
"cStat": "100",
"xMotivo": "Autorizado o uso da NFC-e",
"xml": "<?xml ...>"
},
"error": null
}Validação: mod deve ser 65; indFinal=1; indPres=1; dest obrigatório.
/api/nfce/cancelar
Cancela uma NFC-e autorizada.
{
"chave": "43210712345678000199650000000000011001234567",
"nProt": "143260000012345",
"xJust": "Erro na emissao da nota fiscal do consumidor"
}Validação: chave ≥ 44 chars; nProt ≥ 15 chars; xJust 15–255 chars.
Consultas nfe:consultas
/api/nfe/status-sefaz
Consulta o status do serviço da SEFAZ da UF configurada.
{
"success": true,
"data": { "cStat": "107", "xMotivo": "Servico em Operacao", "dhRecbto": "...", "tMed": 1 },
"error": null
}/api/nfe/consulta/:chave
Consulta o protocolo de uma NF-e pela chave de acesso (44 dígitos).
curl -X GET https://api.sua-instancia.com/api/nfe/consulta/43210712345678000199550000000000011001234567 \ -H "x-api-key: sk_live_abc123"
/api/nfe/distribuicao/nsu
Distribuição de DFe por NSU específico.
{
"cUFAutor": "35",
"CNPJ": "12345678000199",
"ultNSU": "000000000001234"
}Validação: cUFAutor 2 chars; CNPJ 14 dígitos; ultNSU ≥ 1 char.
/api/nfe/distribuicao/chave
Distribuição de DFe por chave de NF-e específica.
{
"cUFAutor": "35",
"CNPJ": "12345678000199",
"chNFe": "43210712345678000199550000000000011001234567"
}Validação: cUFAutor 2 chars; CNPJ 14 dígitos; chNFe ≥ 44 chars.
/api/nfe/distribuicao/ult-nsu
Distribuição de DFe usando o último NSU (consulta incremental).
{
"cUFAutor": "35",
"CNPJ": "12345678000199",
"ultNSU": "000000000001234"
}Validação: cUFAutor 2 chars; CNPJ 14 dígitos; ultNSU ≥ 1 char.
/api/nfe/inutilizar
Inutiliza uma faixa de numeração de NF-e não usada.
{
"cnpj": "12345678000199",
"ano": "2026",
"modelo": "55",
"serie": "1",
"nNFIni": "101",
"nNFFin": "110",
"xJust": "Falha no sistema emitiu fora da sequencia"
}Validação: cnpj 14 dígitos; ano 4 dígitos; xJust 15–255 chars.
/api/nfe/validar-xml
Valida um XML de NF-e ou NFC-e contra o schema XSD correspondente.
{
"xml": "<nfeProc versao=\"4.00\">...</nfeProc>"
}Validação: xml obrigatório; versão detectada automaticamente.