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"

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.