Documentação da API

Base URL: https://api.fiscalhub.com.br  ·  Versão: v1  ·  Formato: application/json

Introdução

A API FiscalHub é uma REST API para emissão de documentos fiscais eletrônicos brasileiros. Todas as requisições são autenticadas por API Key e os retornos são sempre JSON.

Autenticação por API Key
Respostas síncronas
Multi-tenant / multi-empresa
Homologação e produção

Autenticação

Todas as requisições devem incluir o cabeçalho X-Api-Key com uma chave gerada no portal do cliente.

X-Api-Key: fh_live_a1b2c3d4e5f6...
Chaves com prefixo fh_live_ operam em produção. Nunca exponha sua chave em código front-end.

Erros

HTTPSignificado
400Requisição inválida — verifique os campos obrigatórios
401API Key ausente, inválida ou revogada
403Recurso pertence a outro tenant
404Documento ou empresa não encontrado
422Rejeitado pela SEFAZ — verifique motivoRejeicao
500Erro interno — tente novamente ou abra um chamado

NF-e Nota Fiscal Eletrônica

MétodoEndpointDescrição
POST/api/v1/nfe/emitirEmite uma NF-e (modelo 55)
POST/api/v1/nfe/inutilizarInutiliza faixa de numeração
GET/api/v1/nfe/{chave}/danfeRetorna DANFE em PDF
GET/api/v1/nfe/{chave}/xmlConsulta o XML autorizado (nfe-proc) na SEFAZ
GET/api/v1/nfe/distribuicaoBusca NF-es emitidas contra o CNPJ (Distribuição DFe)
POST/api/v1/nfe/{chave}/cancelarCancelamento padrão
POST/api/v1/nfe/{chave}/cancelar-substituicaoCancelamento por Substituição
POST/api/v1/nfe/{chave}/carta-correcaoCarta de Correção (CC-e)
POST/api/v1/nfe/{chave}/manifestacaoManifestação do Destinatário
POST /api/v1/nfe/emitir

Request

{
  "empresaId": "uuid-da-empresa",
  "naturezaOperacao": "Venda de mercadoria",
  "tipoOperacao": 1,
  "itens": [
    {
      "numeroItem": 1,
      "codigoProduto": "PROD-001",
      "descricao": "Produto Exemplo",
      "ncm": "84713012",
      "cfop": "5102",
      "unidadeComercial": "UN",
      "quantidade": 2,
      "valorUnitario": 150.00,
      "valorTotal": 300.00
    }
  ],
  "pagamentos": [
    { "formaPagamento": "01", "valor": 300.00 }
  ]
}

Response 200 OK

{
  "documentoId": "uuid-do-documento",
  "status": "Autorizado",
  "chaveAcesso": "35240112345678000195
    55001000000001
    1abc123def456",
  "protocolo": "135240000000001",
  "dataAutorizacao": "2024-01-15T10:30:00Z",
  "motivoRejeicao": null
}
POST /api/v1/nfe/{chave}/manifestacao

Registra a manifestação do destinatário. O campo tipo aceita um dos quatro valores abaixo.

{
  "tipo": "ConfirmacaoDaOperacao",
  "cpfCnpj": "12345678000195",
  "sequenciaEvento": 1,
  "justificativa": null
}

// Valores aceitos para "tipo":
// "ConfirmacaoDaOperacao"
// "CienciaDaOperacao"
// "DesconhecimentoDaOperacao"
// "OperacaoNaoRealizada"
// (justificativa obrigatória nas 2 últimas)

Response 200 OK

{
  "eventoId": "uuid-do-evento",
  "status": "Registrado",
  "protocolo": "135240000000002",
  "dataEvento": "2024-01-15T11:00:00Z",
  "descricao": "Evento registrado e
    vinculado a NF-e"
}
POST /api/v1/nfe/{chave}/cancelar-substituicao
{
  "justificativa": "NF-e emitida com erro de destinatário, substituída pela chave abaixo",
  "chaveNFeSubstituta": "35240112345678000195550010000000021abc123de",
  "cpfCnpj": "12345678000195",
  "ufAutor": "SP",
  "sequenciaEvento": 1
}

NFC-e Nota Fiscal ao Consumidor

MétodoEndpointDescrição
POST/api/v1/nfce/emitirEmite uma NFC-e (modelo 65)
POST/api/v1/nfce/{chave}/cancelarCancela uma NFC-e
O body de emissão da NFC-e é idêntico ao da NF-e. O modelo 65 é aplicado automaticamente.

CT-e Conhecimento de Transporte

MétodoEndpointDescrição
POST/api/v1/cte/emitirEmite um CT-e
POST/api/v1/cte/{chave}/cancelarCancela um CT-e
POST/api/v1/cte/{chave}/carta-correcaoCarta de Correção (CC-e)
POST/api/v1/cte/{chave}/desacordoPrestação em Desacordo
POST /api/v1/cte/{chave}/desacordo

Registrado pelo tomador/destinatário quando há discordância na prestação do serviço.

{
  "cpfCnpj": "12345678000195",
  "indicadorDesacordo": "1",
  "observacao": "Serviço não foi prestado na data acordada",
  "sequenciaEvento": 1
}

// indicadorDesacordo:
// "1" = Serviço não prestado
// "2" = Serviço prestado mas valor incorreto
POST /api/v1/cte/{chave}/carta-correcao
{
  "sequenciaEvento": 1,
  "correcoes": [
    {
      "grupoAlterado": "ide",
      "campoAlterado": "natOp",
      "valorAlterado": "Prestação de serviço de transporte rodoviário",
      "nroItemAlterado": null
    }
  ]
}

MDF-e Manifesto de Documentos Fiscais

MétodoEndpointDescrição
POST/api/v1/mdfe/emitirEmite um MDF-e
POST/api/v1/mdfe/{chave}/cancelarCancela um MDF-e
POST/api/v1/mdfe/{chave}/encerrarEncerra um MDF-e
POST/api/v1/mdfe/{chave}/incluir-condutorInclusão de Condutor
POST/api/v1/mdfe/{chave}/incluir-dfeInclusão de DF-e
POST/api/v1/mdfe/{chave}/pagamentoPagamento de Operação
POST /api/v1/mdfe/{chave}/incluir-condutor
{
  "nome": "João da Silva",
  "cpf": "12345678901",
  "sequenciaEvento": 1
}
POST /api/v1/mdfe/{chave}/incluir-dfe
{
  "codigoMunicipioCarregamento": "3550308",
  "nomeMunicipioCarregamento": "São Paulo",
  "sequenciaEvento": 1,
  "documentos": [
    {
      "codigoMunicipioDescarga": "3304557",
      "nomeMunicipioDescarga": "Rio de Janeiro",
      "chaveNFe": "35240112345678000195550010000000011abc1234"
    }
  ]
}
POST /api/v1/mdfe/{chave}/pagamento
{
  "qtdViagens": "1",
  "nroViagem": "001",
  "sequenciaEvento": 1,
  "pagamentos": [
    {
      "cnpj": "12345678000195",
      "xNome": "Transportadora Exemplo",
      "indPag": 0,
      "vContrato": 1500.00
    }
  ]
}

// indPag: 0 = À Vista, 1 = A Prazo

NFS-e Nota Fiscal de Serviços

MétodoEndpointDescrição
POST/api/v1/nfse/emitirEmite uma NFS-e
POST/api/v1/nfse/{id}/cancelarCancela uma NFS-e
47+ provedores municipais suportados via OpenAC.Net.NFSe, incluindo o padrão nacional (obrigatório desde jan/2026 para municípios acima de 50 mil habitantes).

Motor Tributário

MétodoEndpointDescrição
POST/api/v1/tributario/calcularCalcula impostos por item (ICMS, IPI, PIS, COFINS, DIFAL, IBS, CBS)
POST/api/v1/tributario/simular-nfeSimula totais de uma NF-e antes da emissão
POST /api/v1/tributario/simular-nfe

Request

{
  "empresaId": "uuid-da-empresa",
  "ufDestino": "RJ",
  "naturezaOperacao": "Venda",
  "valorFrete": 50.00,
  "valorSeguro": 0.00,
  "desconto": 0.00,
  "itens": [
    {
      "ncm": "84713012",
      "cfop": "6102",
      "valorUnitario": 1250.00,
      "quantidade": 2,
      "cst": "00"
    }
  ]
}

Response 200 OK

{
  "valorProdutos": 2500.00,
  "valorFrete":      50.00,
  "valorSeguro":      0.00,
  "desconto":         0.00,
  "valorIcms":      300.00,
  "valorIpi":         0.00,
  "valorIcmsSt":      0.00,
  "valorPis":        41.25,
  "valorCofins":    190.00,
  "valorDifal":     112.50,
  "valorTotalNota": 2843.75
}

IBS/CBS — Reforma Tributária

A partir de 2026, a NF-e passa a exigir o preenchimento dos tributos da Reforma Tributária: IBS (Imposto sobre Bens e Serviços — substitui ICMS e ISS) e CBS (Contribuição sobre Bens e Serviços — substitui PIS e COFINS), conforme EC 132/2023 e LC 214/2025.

Durante o período de teste 2026, as alíquotas padrão são: IBS-UF 0,05% + IBS-Mun 0,05% + CBS 0,9%. Informe as alíquotas corretas por produto quando disponíveis.
Informar IBS/CBS em um item da NF-e

Inclua o objeto ibsCbs dentro de impostos em cada item:

Trecho do request POST /api/v1/nfe/emitir

"itens": [
  {
    "numeroItem": 1,
    "descricao": "Produto Exemplo",
    "ncm": "84713012",
    "quantidade": 1,
    "valorUnitario": 2500.00,
    "valorTotal": 2500.00,
    "impostos": {
      "ibsCbs": {
        "cst": "000",
        "baseCalculo": 2500.00,
        "aliquotaIbsUf":  0.05,
        "valorIbsUf":     1.25,
        "aliquotaIbsMun": 0.05,
        "valorIbsMun":    1.25,
        "aliquotaCbs":    0.90,
        "valorCbs":      22.50
      }
    }
  }
]

CST IBS/CBS mais comuns

CSTDescrição
000Tributação regular (alíquota cheia)
010Tributação com redução de base
400Isento
510Operação com diferimento total
800Não tributado

Motor Tributário calcula automaticamente

Se preferir delegar o cálculo, use POST /api/v1/tributario/calcular — o retorno já inclui os campos ibsCbs por item e nos totais:

{
  "totais": {
    "valorIcms":    300.00,
    "valorPis":      41.25,
    "valorCofins":  190.00,
    "valorIbsUf":     1.25,
    "valorIbsMun":    1.25,
    "valorCbs":      22.50
  }
}

Consultar XML de NF-e

Consulta o XML autorizado (nfe-proc = NF-e + protocolo) diretamente na SEFAZ. Útil para reobter o XML caso ele não tenha sido armazenado localmente.

GET /api/v1/nfe/{chave}/xml

Request

GET /api/v1/nfe/35250112345678000195550010000001011abc1234/xml
X-Api-Key: fh_live_...

Response 200 OK

{
  "chaveAcesso": "35250112345678...",
  "codigoStatus": 100,
  "motivo": "Autorizado o uso da NF-e",
  "protocolo": "135250000000001",
  "xmlNfeProc": "<?xml version=\"1.0\"?>
    <nfeProc versao=\"4.00\">...</nfeProc>"
}

Distribuição DFe — Importação de XML

Busca as NF-es e eventos emitidos contra o CNPJ de uma empresa, diretamente da SEFAZ. Retorna os documentos em ordem de NSU (Número Sequencial Único), permitindo varredura incremental. Use para implementar importação automática de notas recebidas no seu ERP ou sistema.

GET /api/v1/nfe/distribuicao
ParâmetroTipoDescrição
empresaIduuidID da empresa receptora (CNPJ destinatário)
ultNsulongÚltimo NSU recebido. Use 0 para buscar desde o início.
chNFestring?Opcional. Busca uma NF-e específica pela chave de acesso.

Request — varredura incremental

GET /api/v1/nfe/distribuicao
  ?empresaId=uuid-empresa
  &ultNsu=1500
X-Api-Key: fh_live_...

Response 200 OK

{
  "codigoStatus": 138,
  "motivo": "Documento localizado",
  "ultNsu": 1523,
  "maxNsu": 9999,
  "documentos": [
    {
      "nsu": 1501,
      "schema": "resNFe",
      "chaveAcesso": "35250112345678...",
      "cnpjEmitente": "12345678000195",
      "nomeEmitente": "Fornecedor Ltda",
      "valorNf": 1500.00,
      "dataEmissao": "2025-04-01T10:00:00Z",
      "xmlBase64": "PD94bWwgdmVyc2..."
    }
  ]
}
Armazene o ultNsu retornado e use-o na próxima chamada para buscar apenas os documentos novos. O campo schema indica o tipo: resNFe (resumo), nfeProc (XML completo) ou procEventoNFe (evento).

Consulta NCM

MétodoEndpointDescrição
GET/api/v1/ncm/{codigo}Tributação por código NCM exato
GET/api/v1/ncm/buscar?q={termo}Busca por código parcial ou descrição
GET /api/v1/ncm/84713012
{
  "codigo": "84713012",
  "descricao": "Máquinas automáticas para processamento de dados, portáteis",
  "aliquotaIpi": 0.00,
  "cest": null,
  "unidadeMedida": "UN",
  "atualizadoEm": "2024-01-10T00:00:00Z"
}