Documentação da API

Emita e consulte documentos fiscais (NF-e e NFC-e) via API REST. A autenticação é feita por token Bearer, gerado no seu painel após criar a conta.

Autenticação

Todas as requisições exigem o cabeçalho Authorization com seu token. O ambiente (produção ou homologação) é definido pelo token utilizado.

Authorization: Bearer intnf_prod_xxxxx_xxxxxxxxxxxxxxxxxxxx

Gere e gerencie seus tokens na aba Tokens de API. O valor completo só é exibido uma vez.

URL base

A URL base é a mesma para todas as contas. Não há subdomínio por cliente — sua empresa é identificada automaticamente pelo token enviado no cabeçalho Authorization.

https://app.integranf.com.br/api/v1
POST/api/v1/nfe
Emissão

Emite uma NF-e (modelo 55). A nota é numerada automaticamente, assinada digitalmente com o seu certificado A1 e transmitida à SEFAZ. O consumo do plano é contabilizado a cada emissão autorizada.

Os campos seguem o padrão do mercado (compatível com Integra Notas). Os tributos de cada item ficam dentro de imposto (icms, pis e cofins) e o pagamento aceita uma ou mais formas_pagamento. Campos não enviados assumem valores padrão.

Requisição

curl -X POST https://app.integranf.com.br/api/v1/nfe \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "natureza_operacao": "Venda de mercadoria",
  "tipo_operacao": 1,
  "finalidade_emissao": 1,
  "consumidor_final": 1,
  "presenca_comprador": 1,
  "modalidade_frete": 9,
  "destinatario": {
    "nome": "CLIENTE EXEMPLO LTDA",
    "cpf_cnpj": "05481336000137",
    "inscricao_estadual": "ISENTO",
    "indicador_inscricao_estadual": 9,
    "email": "cliente@exemplo.com",
    "endereco": {
      "logradouro": "Rua das Flores",
      "numero": "200",
      "complemento": "Sala 5",
      "bairro": "Centro",
      "codigo_municipio": "3550308",
      "municipio": "Sao Paulo",
      "uf": "SP",
      "cep": "01310000"
    }
  },
  "itens": [
    {
      "numero_item": 1,
      "codigo_produto": "PROD-001",
      "descricao": "Produto Exemplo",
      "codigo_ncm": "61091000",
      "cest": "2806400",
      "cfop": "5405",
      "unidade_comercial": "UN",
      "quantidade_comercial": 2,
      "valor_unitario_comercial": 50.00,
      "valor_bruto": 100.00,
      "valor_desconto": 0.00,
      "inclui_no_total": 1,
      "imposto": {
        "icms": {
          "origem": 0,
          "situacao_tributaria": "202",
          "modalidade_base_calculo_st": 4,
          "aliquota_margem_valor_adicionado_st": 40.00,
          "valor_base_calculo_st": 140.00,
          "aliquota_st": 18.00,
          "valor_st": 25.20
        },
        "pis":    { "situacao_tributaria": "07", "aliquota": 0, "valor": 0 },
        "cofins": { "situacao_tributaria": "07", "aliquota": 0, "valor": 0 }
      }
    }
  ],
  "pagamento": {
    "formas_pagamento": [
      { "meio_pagamento": "01", "valor": 50.00 },
      { "meio_pagamento": "04", "valor": 75.20 }
    ]
  },
  "informacoes_adicionais_contribuinte": "Pedido 12345"
}'

Empresas do Simples Nacional usam situacao_tributaria com o CSOSN (3 dígitos, ex.: 102, 202). Empresas do Regime Normal usam o CST (2 dígitos, ex.: 00, 10) e, nesse caso, informe também aliquota e valor_base_calculo. Os campos de ST (*_st) só são necessários quando há substituição tributária.

Resposta (201)

{
  "sucesso": true,
  "codigo": 100,
  "mensagem": "Autorizado o uso da NF-e",
  "chave": "35260611222333000181550010000000031503655428",
  "xml": "PD94bWwgdmVyc2lvbj0iMS4wIi...",   // nfeProc autorizado (base64)
  "pdf": "JVBERi0xLjMKMyAwIG9iago8...",      // DANFE em PDF (base64)
  "data_hora_evento": "2026-06-08 11:25:22",
  "protocolo": "135260000123456",
  "status": "autorizado",
  "numero": "3",
  "serie": "1",
  "identificacao": "3",
  // Campos adicionais da plataforma:
  "modelo": 55,
  "documento_id": "a1b2c3d4-...",
  "valor_total": 100.00,
  "codigo_sefaz": "100",
  "ambiente": 2
}

Os campos xml e pdf vêm codificados em base64 para que o seu ERP possa armazená-los diretamente. Decodifique o xml para obter o nfeProc autorizado e o pdf para o DANFE imprimível.

POST/api/v1/nfce
Emissão

Emite uma NFC-e (modelo 65), a nota fiscal de consumidor usada em vendas no varejo presencial. É numerada automaticamente, assinada com o certificado A1, transmitida à SEFAZ e recebe o QR Code obrigatório no DANFE.

Pré-requisitos: a NFC-e exige o CSC (Código de Segurança do Contribuinte) e o ID do CSC cadastrados em Dados da empresa. O destinatário é opcional — informe destinatario apenas quando o consumidor pedir o CPF/CNPJ na nota.

Requisição

curl -X POST https://app.integranf.com.br/api/v1/nfce \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "natureza_operacao": "VENDA DENTRO DO ESTADO",
  "serie": "1",
  "numero": "1035",
  "data_emissao": "2026-06-08T12:06:57-03:00",
  "presenca_comprador": "1",
  "destinatario": {
    "cnpj": "15493535500128",
    "nome": "EMPRESA MODELO",
    "indicador_inscricao_estadual": "1",
    "inscricao_estadual": "212055510",
    "endereco": {
      "logradouro": "AVENIDA TESTE",
      "numero": "444",
      "bairro": "CENTRO",
      "codigo_municipio": "2408003",
      "nome_municipio": "Mossoro",
      "uf": "RN",
      "cep": "59653120",
      "telefone": "8499995555"
    }
  },
  "itens": [
    {
      "numero_item": "1",
      "origem": "0",
      "inclui_no_total": "1",
      "codigo_produto": "000297",
      "descricao": "SAL GROSSO 50KGS",
      "codigo_ncm": "55110011",
      "cfop": "5102",
      "unidade_comercial": "SC",
      "quantidade_comercial": 10,
      "valor_unitario_comercial": "22.45",
      "valor_bruto": "224.50",
      "valor_desconto": 0,
      "imposto": {
        "icms": {
          "situacao_tributaria": "102",
          "valor_base_calculo": "0.00",
          "aliquota": "0.00",
          "valor": "0.00"
        },
        "pis":    { "situacao_tributaria": "01", "valor_base_calculo": 224.5, "aliquota": "1.65", "valor": "3.70" },
        "cofins": { "situacao_tributaria": "01", "valor_base_calculo": 224.5, "aliquota": "7.60", "valor": "17.06" }
      },
      "informacoes_adicionais": "Valor aproximado tributos R$: 9,43 (4,20%) Fonte: IBPT"
    }
  ],
  "frete": { "modalidade_frete": "0" },
  "pagamento": {
    "formas_pagamento": [
      { "meio_pagamento": "01", "valor": "224.50", "tipo_integracao": "2" }
    ]
  },
  "informacoes_adicionais_contribuinte": "Obs. da nota fiscal"
}'

Formato idêntico ao Integra Notas para facilitar a migração: os valores numéricos podem vir como número ou string (ex.: "22.45") e o emitente é sempre obtido do cadastro da empresa vinculado ao token (não envie dados de emitente no corpo). O destinatário é opcional na NFC-e — quando informado, aceita tanto pessoa física (cpf) quanto pessoa jurídica (cnpj + inscricao_estadual), com endereco opcional. Empresas do Simples usam situacao_tributaria com CSOSN (3 dígitos); Regime Normal usa CST (2 dígitos) com aliquota e valor_base_calculo.

Você pode identificar o consumidor por cpf, cnpj ou cpf_cnpj (o tipo é detectado pela quantidade de dígitos). Meios de pagamento comuns: 01 Dinheiro, 03 Crédito, 04 Débito, 17 PIX.

Resposta (201)

{
  "sucesso": true,
  "codigo": 100,
  "mensagem": "Autorizado o uso da NFC-e",
  "chave": "35260611222333000181650010000000011503655420",
  "xml": "PD94bWwgdmVyc2lvbj0iMS4wIi...",   // nfeProc autorizado (base64)
  "pdf": "JVBERi0xLjMKMyAwIG9iago8...",      // DANFCE em PDF (base64)
  "data_hora_evento": "2026-06-08 11:25:22",
  "protocolo": "135260000987654",
  "status": "autorizado",
  "numero": "1",
  "serie": "1",
  "identificacao": "1",
  // Campos adicionais da plataforma:
  "modelo": 65,
  "documento_id": "f9e8d7c6-...",
  "valor_total": 29.90,
  "codigo_sefaz": "100",
  "ambiente": 2
}

Assim como na NF-e, xml e pdf são retornados em base64. O PDF da NFC-e (DANFCE) já inclui o QR Code e a URL de consulta pública.

GET/api/v1/nfce/{chave}
Consulta

Retorna os dados e o XML autorizado (nfeProc) de uma NFC-e pela chave de acesso de 44 dígitos.

curl https://app.integranf.com.br/api/v1/nfce/35260611222333000181650010000000011503655420 \
  -H "Authorization: Bearer $TOKEN"
GET/api/v1/nfce/pdf/{chave}
PDF

Gera o DANFCE (PDF) de uma NFC-e autorizada pela chave de acesso. Por padrão retorna o binário application/pdf (pronto para o ERP imprimir ou salvar). Use ?formato=base64 para receber { "chave": "...", "pdf": "<base64>" }.

# Baixa o PDF diretamente
curl https://app.integranf.com.br/api/v1/nfce/pdf/35260611222333000181650010000000011503655420 \
  -H "Authorization: Bearer $TOKEN" \
  -o danfce.pdf

# Ou recebe o PDF em base64 (JSON)
curl "https://app.integranf.com.br/api/v1/nfce/pdf/35260611222333000181650010000000011503655420?formato=base64" \
  -H "Authorization: Bearer $TOKEN"
POST/api/v1/nfce/cancela
Cancelamento

Cancela uma NFC-e (modelo 65) autorizada por meio do Evento de Cancelamento (tpEvento 110111), transmitido à SEFAZ. Só é possível cancelar notas autorizadas e dentro do prazo legal da sua UF (a NFC-e costuma ter um prazo bem curto — em geral até 30 minutos após a autorização).

Justificativa obrigatória: entre 15 e 255 caracteres. A chave deve ter 44 dígitos e corresponder a uma NFC-e (modelo 65).

Requisição

curl -X POST https://app.integranf.com.br/api/v1/nfce/cancela \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "chave": "35260611222333000181650010000000011503655420",
  "justificativa": "Cancelamento por erro de digitacao no valor dos itens"
}'

Resposta (200)

{
  "sucesso": true,
  "codigo": 101,
  "mensagem": "Homologado o cancelamento da NFC-e",
  "data_hora_evento": "2026-06-12 17:18:48",
  "protocolo": "141190000844226",
  "xml": "PGV2ZW50byB4bWxucz0i...",          // procEventoNFe (base64)
  "pdf": "JVBERi0xLjMKMyAwIG9iago8...",      // DANFCE em PDF (base64)
  "xml_cancelado": "PD94bWwgdmVyc2lvbj0i..." // nfeProc autorizado original (base64)
}

Resposta (erro)

{
  "sucesso": false,
  "codigo": 501,
  "mensagem": "Apenas documentos autorizados podem ser cancelados."
}
GET/api/v1/nfe/{chave}
Consulta

Retorna os dados e o XML autorizado (nfeProc) de um documento pela chave de acesso de 44 dígitos.

curl https://app.integranf.com.br/api/v1/nfe/35260611222333000181550010000000031503655428 \
  -H "Authorization: Bearer $TOKEN"
GET/api/v1/nfe/pdf/{chave}
PDF

Gera o DANFE (PDF) de uma NF-e autorizada pela chave de acesso. Por padrão retorna o binário application/pdf (pronto para o ERP imprimir ou salvar). Use ?formato=base64 para receber { "chave": "...", "pdf": "<base64>" }.

# Baixa o PDF diretamente
curl https://app.integranf.com.br/api/v1/nfe/pdf/35260611222333000181550010000000031503655428 \
  -H "Authorization: Bearer $TOKEN" \
  -o danfe.pdf

# Ou recebe o PDF em base64 (JSON)
curl "https://app.integranf.com.br/api/v1/nfe/pdf/35260611222333000181550010000000031503655428?formato=base64" \
  -H "Authorization: Bearer $TOKEN"
POST/api/v1/nfe/cancela
Cancelamento

Cancela uma NF-e (modelo 55) autorizada por meio do Evento de Cancelamento (tpEvento 110111), transmitido à SEFAZ. Só é possível cancelar notas autorizadas e dentro do prazo legal da sua UF (em geral até 24 horas após a autorização).

Justificativa obrigatória: entre 15 e 255 caracteres. A chave deve ter 44 dígitos e corresponder a uma NF-e (modelo 55).

Requisição

curl -X POST https://app.integranf.com.br/api/v1/nfe/cancela \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "chave": "35260611222333000181550010000000031503655428",
  "justificativa": "Cancelamento por erro de digitacao no valor dos itens"
}'

Resposta (200)

{
  "sucesso": true,
  "codigo": 101,
  "mensagem": "Homologado o cancelamento da NF-e",
  "data_hora_evento": "2026-06-12 17:18:48",
  "protocolo": "141190000844226",
  "xml": "PGV2ZW50byB4bWxucz0i...",          // procEventoNFe (base64)
  "pdf": "JVBERi0xLjMKMyAwIG9iago8...",      // DANFE em PDF (base64)
  "xml_cancelado": "PD94bWwgdmVyc2lvbj0i..." // nfeProc autorizado original (base64)
}

Resposta (erro)

{
  "sucesso": false,
  "codigo": 501,
  "mensagem": "Apenas documentos autorizados podem ser cancelados."
}
GET/api/v1/documentos
Listagem

Lista os documentos emitidos, ordenados do mais recente ao mais antigo. Aceita os parâmetros limit (máx. 100) e offset.

curl "https://app.integranf.com.br/api/v1/documentos?limit=20&offset=0" \
  -H "Authorization: Bearer $TOKEN"
GET/api/v1/conta
Conta

Retorna dados da empresa, plano contratado, serviços habilitados e o consumo do mês corrente.

curl https://app.integranf.com.br/api/v1/conta \
  -H "Authorization: Bearer $TOKEN"

Distribuição de Documentos Fiscais (DFe)

Plano DFe

A função DFe permite buscar na SEFAZ (Ambiente Nacional) as notas fiscais emitidas contra o CNPJ da sua empresa (onde você é o destinatário), baixar o XML/PDF de cada documento e registrar a manifestação do destinatário. Disponível apenas para contas cujo plano contempla o serviço DFe.

Apenas uma plataforma pode buscar os documentos de um CNPJ por vez. Buscas simultâneas por outra ferramenta podem gerar Consumo Indevido (cStat 656) e atrasar a recuperação dos documentos.
POST/api/v1/dfe/nfe/busca
DFe

Recupera os documentos fiscais destinados ao CNPJ da empresa. A consulta pagina automaticamente pelo NSU (último número sequencial) já processado, persistindo os resumos e as NF-e completas recebidas. Todos os campos do corpo são opcionais e funcionam como filtro local do resultado.

Requisição

curl -X POST https://app.integranf.com.br/api/v1/dfe/nfe/busca \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "periodo": "2020-10",
  "data": "2020-10-15",
  "doc": "06338788000127",
  "relacao": "D"
}'

Resposta (200)

{
  "sucesso": true,
  "codigo": 1000,
  "mensagem": "Sucesso.",
  "docs": [
    {
      "chave": "41190806338788000127550010000010011537233885",
      "numero": 100,
      "serie": 1,
      "cnpj": "06338788000127",
      "razao": "EMPRESA TESTE",
      "data": "2019-08-29T08:32:38-03:00",
      "valor": "10.00",
      "cstat": "100",
      "nsu": "523",
      "relacao": "D",
      "eventos": []
    }
  ],
  "eventos_proprios": [],
  "notas_nao_disponiveis": []
}

Após localizar um documento na busca, use a rota /api/v1/dfe/nfe/mostra para obter o xml e o pdf em base64.

GET/api/v1/dfe/nfe/mostra
DFe

Retorna um documento fiscal pela chave de acesso, com xml e pdf em base64 (quando a NF-e completa já foi capturada na busca) e a lista de eventos vinculados. A chave pode ir na query ?chave= ou no corpo JSON.

curl "https://app.integranf.com.br/api/v1/dfe/nfe/mostra?chave=41190806338788000127550010000010011537233885" \
  -H "Authorization: Bearer $TOKEN"

Resposta (200)

{
  "sucesso": true,
  "codigo": 1000,
  "mensagem": "Sucesso.",
  "doc": {
    "chave": "41190806338788000127550010000010011537233885",
    "cnpj": "06338788000127",
    "razao": "EMPRESA TESTE",
    "data": "2019-08-29T08:32:38-03:00",
    "valor": "10.00",
    "cstat": "100",
    "nsu": "523",
    "relacao": "D",
    "xml": "PG5mZVByb2MgdmVyc2Fv...",   // nfeProc (base64)
    "pdf": "JVBERi0xLjMKMyAwIG9i...",   // DANFE (base64)
    "eventos": []
  }
}
POST/api/v1/dfe/nfe/manifesta
DFe

Registra a manifestação do destinatário sobre a NF-e no Ambiente Nacional. O evento é assinado com o certificado A1 da empresa e transmitido à SEFAZ.

tipo_evento: 210200 Confirmação da Operação · 210210 Ciência da Operação · 210220 Desconhecimento da Operação · 210240 Operação não Realizada (exige justificativa de 15 a 255 caracteres).

Requisição

curl -X POST https://app.integranf.com.br/api/v1/dfe/nfe/manifesta \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "chave": "50191213188739000110550010000012151581978542",
  "tipo_evento": "210240",
  "justificativa": "nao comprei esta mercadoria"
}'

Resposta (200)

{
  "sucesso": true,
  "codigo": 135,
  "mensagem": "Evento registrado e vinculado a NF-e",
  "data_hora_evento": "2019-09-16 17:34:03",
  "protocolo": "891190004733543",
  "xml": "PD94bWwgdmVyc2lvbj0i..."   // procEventoNFe (base64)
}

Códigos de status

  • 200 / 201Requisição bem-sucedida.
  • 401Token ausente, inválido ou revogado.
  • 402Assinatura inativa ou em atraso.
  • 403Serviço não incluído no seu plano.
  • 412Cadastro incompleto (ex.: CSC ausente na NFC-e).
  • 422Payload inválido (dados fiscais incorretos).
  • 429Limite de documentos do plano atingido.
  • 502Falha na comunicação com a SEFAZ.