Ir para a documentação

FISCAL PRO · INTEGRAÇÃO ENTRE SISTEMAS

Seu sistema.
Nossa API fiscal.

Conecte seu ERP, loja ou plataforma ao Fiscal Pro. Envie os dados da venda e acompanhe cada documento, da criação ao arquivo fiscal.

URL basehttps://api.fiscalpro.com.brHTTPS · JSON

DO CADASTRO À PRIMEIRA CONSULTA

Primeiros passos

A API usa os cadastros e a configuração fiscal da empresa no Fiscal Pro. Prepare a empresa antes de enviar uma operação.

  1. 01

    Configure a empresa e a aplicação

    No aplicativo, acesse Configuração → Integrações por API. Selecione os modelos, o usuário responsável e o modo rascunho ou transmissão automática. Cadastre produtos, serviços e o emissor fiscal aplicável.

  2. 02

    Gere uma credencial com os escopos necessários

    Guarde client_id e client_secret no backend do seu sistema. O segredo é exibido uma única vez. NF-e e NFC-e precisam de habilitação e escopos explícitos.

  3. 03

    Obtenha o token e consulte os cadastros

    Use Client Credentials. Liste produtos ou serviços para obter os IDs da empresa e sincronize a pessoa que será o destinatário ou tomador, quando aplicável.

  4. 04

    Crie e acompanhe uma operação

    Envie uma chave de idempotência estável por venda. Guarde o id_operacao, consulte o resultado e baixe os arquivos disponíveis. O modo configurado pode transmitir a nota ao criar.

OAUTH 2.0 · CLIENT CREDENTIALS

Autenticação e escopos

Solicite o token em POST /integracao/oauth/token, enviando formulário URL encoded. Use Authorization: Bearer <access_token> nas rotas da integração.

# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request POST 'https://api.fiscalpro.com.br/integracao/oauth/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode "client_id=$FISCALPRO_CLIENT_ID" \
  --data-urlencode "client_secret=$FISCALPRO_CLIENT_SECRET"

O token expira em 1 hora (expires_in: 3600). Renove no backend usando a credencial; não há refresh token neste fluxo. Conceda somente os escopos usados pela aplicação.

Reutilize o token; não gere um por requisição.

Mantenha um cache protegido no backend, separado por credencial e ambiente. Calcule a expiração a partir de expires_in e renove cerca de 60 segundos antes. Coordene requisições concorrentes para apenas uma obter o próximo token; em múltiplas instâncias, use cache e coordenação compartilhados com esse mesmo isolamento.

Revogar a credencial ou desativar a aplicação bloqueia as próximas chamadas mesmo antes da expiração. Se receber 401, confira a credencial; evite ciclos de renovação sem limite. Para repetir uma criação, preserve a mesma chave de idempotência e o mesmo conteúdo.

Permissões da credencial
EscopoPermite
pessoas:writeCriar e atualizar dados cadastrais de pessoas.
servicos:readConsultar serviços cadastrados.
produtos:readConsultar o catálogo de produtos.
nfe:writeCriar operações de NF-e.
nfe:readConsultar NF-e e baixar XML/PDF.
nfce:writeCriar operações de NFC-e.
nfce:readConsultar NFC-e e baixar XML/PDF.
nfse:writeCriar operações de NFS-e.
nfse:readConsultar NFS-e e baixar PDF.
Uma credencial, uma empresa, uma aplicação.

A empresa é determinada pelo servidor a partir da credencial. Não envie tenant ou ID de empresa no corpo. Outra aplicação, mesmo da mesma empresa, não acessa suas operações. Permissões e vínculos são revalidados no servidor.

CONTRATO HTTP

Referência da API

Expanda uma operação para consultar os campos, o exemplo de requisição e o formato da resposta. Os dados dos exemplos são fictícios; substitua documentos e IDs pelos cadastros da sua empresa.

Os exemplos são para execução no seu backend. Este portal não envia requisições para a API nem recebe credenciais.

Autenticação

POST/integracao/oauth/token

Obter token de acesso

Autentique sua aplicação com OAuth 2.0 Client Credentials. O token dura 3600 segundos (1 hora). Reutilize-o no backend até perto da expiração e renove usando as mesmas credenciais; este fluxo não usa refresh token.

application/x-www-form-urlencoded
Campos do pedido 3 campos
Campos de Obter token de acesso. Obrigatoriedade de campos internos depende do envio do objeto pai.
Campo / tipoDescrição
grant_typestring · obrigatório no objetoFluxo de autenticação entre sistemas. Valores: client_credentials.
client_idstring · obrigatório no objetoIdentificador da credencial criada no Fiscal Pro.
client_secretstring · obrigatório no objetoSegredo exibido uma única vez. Mantenha no backend.
  • Use application/x-www-form-urlencoded. O servidor também aceita client_id e client_secret via HTTP Basic.
  • Cadastre e revogue credenciais no aplicativo. Este portal não solicita nem armazena seus segredos.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request POST 'https://api.fiscalpro.com.br/integracao/oauth/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode "client_id=$FISCALPRO_CLIENT_ID" \
  --data-urlencode "client_secret=$FISCALPRO_CLIENT_SECRET"
Resposta de sucesso200 OK
{
  "access_token": "TOKEN_DE_EXEMPLO",
  "token_type": "Bearer",
  "expires_in": 3600
}

Cadastros

PUT/integracao/v1/pessoas/{cpf_cnpj}

Sincronizar pessoa

Crie ou atualize os dados cadastrais do cliente/tomador. O documento numérico válido vai no caminho. Inscrições e indicadores fiscais existentes são preservados.

Escopo: pessoas:write
Campos do pedido 11 campos
Campos de Sincronizar pessoa. Obrigatoriedade de campos internos depende do envio do objeto pai.
Campo / tipoDescrição
razao_socialstring · obrigatório no objetoNome ou razão social, de 1 a 60 caracteres.
nome_fantasiastring · opcionalNome fantasia, opcional.
emailstring · opcionalE-mail válido, opcional.
telefonestring · opcionalTelefone com 6 a 15 dígitos, opcional.
enderecoobject · obrigatório no objetoConfira o exemplo e o schema OpenAPI.
endereco.cepstring · obrigatório no objetoCEP com 8 dígitos.
endereco.logradourostring · obrigatório no objetoLogradouro, até 60 caracteres.
endereco.numerostring · opcionalNúmero, até 60 caracteres.
endereco.complementostring · opcionalComplemento, até 60 caracteres.
endereco.bairrostring · obrigatório no objetoBairro, até 60 caracteres.
endereco.codigo_municipiointeger · obrigatório no objetoCódigo IBGE de 7 dígitos.
  • 201 para cadastro novo; 200 para atualização. Novas pessoas são cadastradas como não contribuintes; revise os dados fiscais no Fiscal Pro quando necessário.
  • Não envie inscrição estadual, municipal ou indicadores fiscais neste corpo.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request PUT 'https://api.fiscalpro.com.br/integracao/v1/pessoas/52998224725' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "razao_social": "Cliente de exemplo",
  "email": "cliente@example.com",
  "endereco": {
    "cep": "01001000",
    "logradouro": "Praça de exemplo",
    "numero": "100",
    "bairro": "Centro",
    "codigo_municipio": 3550308
  }
}'
Resposta de sucesso201 criação · 200 repetição/atualização
{
  "id_pessoa": 1,
  "cpf_cnpj": "52998224725",
  "criada": true
}

201 confirma a criação da operação ou cadastro. Para documentos fiscais, confira status; criação não significa autorização.

GET/integracao/v1/servicos

Listar serviços

Consulte os serviços da empresa e use id_servico para preparar a NFS-e. Confira o indicador ativo e a configuração do serviço no Fiscal Pro.

Escopo: servicos:read
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request GET 'https://api.fiscalpro.com.br/integracao/v1/servicos' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN"
Resposta de sucesso200 OK
[
  {
    "id_servico": 1,
    "nome": "Serviço de exemplo",
    "ativo": true
  }
]
GET/integracao/v1/produtos

Listar produtos

Consulte produtos cadastrados para NF-e e NFC-e. A API permite leitura do catálogo; a manutenção fiscal dos produtos acontece no Fiscal Pro.

Escopo: produtos:read
Parâmetros de consulta
ParâmetroDescrição
apos_idCursor inicial 0; depois use proximo_id.
limiteDe 1 a 100 produtos por página; padrão 50.
  • Enquanto houver proximo_id, use esse valor como apos_id na próxima chamada. IDs de produtos são específicos da empresa autenticada.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request GET 'https://api.fiscalpro.com.br/integracao/v1/produtos?apos_id=0&limite=50' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN"
Resposta de sucesso200 OK
{
  "itens": [
    {
      "id_produto": 1,
      "descricao": "Produto de exemplo",
      "codigo": "PROD-001",
      "unidade": "UN"
    }
  ],
  "proximo_id": 1
}

NF-e

POST/integracao/v1/nfe

Criar NF-e

Envie os dados comerciais. A configuração da aplicação determina rascunho ou transmissão automática; empresa, ambiente, numeração e parâmetros fiscais vêm do Fiscal Pro.

Escopo: nfe:writeExige Idempotency-Key (até 200 caracteres)
Campos do pedido 33 campos
Campos de Criar NF-e. Obrigatoriedade de campos internos depende do envio do objeto pai.
Campo / tipoDescrição
cpf_cnpjstring · obrigatório no objetoDocumento numérico válido de pessoa sincronizada. Na NFC-e, somente CPF; pode ser omitido quando a identificação for dispensável.
destinacaostring · obrigatório no objetoFinalidade comercial declarada. Valores: consumo_final, revenda, industrializacao.
presencastring · obrigatório no objetoModalidade da venda direta. Valores: presencial, internet, teleatendimento, outros.
itensarray · obrigatório no objetoProdutos já cadastrados no Fiscal Pro.
itens[].id_produtointeger · obrigatório no objetoID obtido na listagem de produtos da empresa.
itens[].quantidadestring · obrigatório no objetoQuantidade positiva, até 4 casas decimais. Envie como texto decimal, com ponto.
itens[].valorstring · obrigatório no objetoValor unitário positivo, até 10 casas decimais. Envie como texto decimal, com ponto.
itens[].descontostring · opcionalDesconto total do item, até 2 casas decimais; opcional. Envie como texto decimal, com ponto.
pagamentosarray · obrigatório no objetoDevem corresponder ao total calculado, inclusive acréscimos aplicáveis. Sem troco neste contrato.
pagamentos[].meiostring · obrigatório no objetoCódigo do meio de pagamento. Exemplos: 01 dinheiro, 03 crédito, 04 débito, 17 Pix, 99 outros.
pagamentos[].valorstring · obrigatório no objetoValor do pagamento, até 2 casas decimais. Envie como texto decimal, com ponto.
pagamentos[].descricaostring · opcionalDescrição obrigatória para meio 99.
pagamentos[].a_prazoboolean · opcionalIndica pagamento a prazo.
pagamentos[].cartaoobject · opcionalConfira o exemplo e o schema OpenAPI.
pagamentos[].cartao.integradoboolean · obrigatório no objetoIndica integração com o pagamento.
pagamentos[].cartao.cnpj_instituicaostring · opcionalCNPJ real da instituição, quando aplicável.
pagamentos[].cartao.bandeirastring · opcionalCódigo da bandeira, quando aplicável.
pagamentos[].cartao.autorizacaostring · opcionalAutorização real, quando aplicável.
pagamentos[].cartao.cnpj_recebedorstring · opcionalCNPJ real do recebedor, quando aplicável.
pagamentos[].cartao.terminalstring · opcionalIdentificação real do terminal, quando aplicável.
freteobject · opcionalConfira o exemplo e o schema OpenAPI.
frete.valorstring · obrigatório no objetoValor total do frete, até 2 casas decimais; rateado pelo backend. Envie como texto decimal, com ponto.
frete.responsabilidadestring · obrigatório no objetoResponsabilidade do transporte. Valores: emitente, destinatario, terceiros, proprio_emitente, proprio_destinatario.
entregaobject · opcionalConfira o exemplo e o schema OpenAPI.
entrega.cpf_cnpjstring · obrigatório no objetoDocumento do local de entrega.
entrega.nomestring · obrigatório no objetoNome do recebedor.
entrega.enderecoobject · obrigatório no objetoConfira o exemplo e o schema OpenAPI.
entrega.endereco.cepstring · obrigatório no objetoCEP com 8 dígitos.
entrega.endereco.logradourostring · obrigatório no objetoLogradouro, até 60 caracteres.
entrega.endereco.numerostring · opcionalNúmero, até 60 caracteres.
entrega.endereco.complementostring · opcionalComplemento, até 60 caracteres.
entrega.endereco.bairrostring · obrigatório no objetoBairro, até 60 caracteres.
entrega.endereco.codigo_municipiointeger · obrigatório no objetoCódigo IBGE de 7 dígitos.
  • De 1 a 250 itens e de 1 a 20 pagamentos. valor é unitário; desconto é o desconto total daquele item. Decimais são strings.
  • Os valores são ilustrativos: pagamentos devem corresponder ao total efetivamente calculado, inclusive acréscimos tributários. Use IDs reais da sua empresa.
  • Informe destinacao e presenca. Frete e entrega são opcionais; a entrega não altera o cadastro do cliente. Cartão exige dados reais quando aplicáveis.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request POST 'https://api.fiscalpro.com.br/integracao/v1/nfe' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: pedido-erp-0001' \
  --data '{
  "cpf_cnpj": "52998224725",
  "destinacao": "consumo_final",
  "presenca": "internet",
  "itens": [
    {
      "id_produto": 1,
      "quantidade": "1",
      "valor": "10.00"
    }
  ],
  "pagamentos": [
    {
      "meio": "01",
      "valor": "10.00",
      "a_prazo": false
    }
  ]
}'
Resposta de sucesso201 criação · 200 repetição/atualização
{
  "id_operacao": "operacao_exemplo",
  "modelo": 55,
  "status": "rascunho",
  "pendente_confirmacao": false,
  "tentativas_consulta": 0,
  "requer_acao_manual": false,
  "xml_disponivel": false,
  "pdf_disponivel": false
}

201 confirma a criação da operação ou cadastro. Para documentos fiscais, confira status; criação não significa autorização.

GET/integracao/v1/nfe/{id_operacao}

Consultar NF-e

Consulte pelo id_operacao retornado na criação, usando a mesma aplicação. A consulta de uma pendência pode atualizar o resultado fiscal sem retransmitir o documento.

Escopo: nfe:read
  • Respeite proxima_consulta_em quando informado. Se requer_acao_manual for true, acompanhe a operação no Fiscal Pro; não crie outra venda.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfe/operacao_exemplo' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN"
Resposta de sucesso200 OK
{
  "id_operacao": "operacao_exemplo",
  "modelo": 55,
  "status": "rascunho",
  "pendente_confirmacao": false,
  "tentativas_consulta": 0,
  "requer_acao_manual": false,
  "xml_disponivel": false,
  "pdf_disponivel": false
}
GET/integracao/v1/nfe/{id_operacao}/xml

Baixar XML da NF-e

Receba o arquivo binário autenticado, vinculado à empresa e à aplicação. Disponível para operação autorizada ou cancelada, quando o arquivo existir. Confira os indicadores de disponibilidade na consulta.

Escopo: nfe:read
  • 404 pode indicar operação inacessível ou arquivo ainda indisponível. Consulte a operação e tente o download mais tarde, sem repetir a emissão.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfe/operacao_exemplo/xml' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --output documento.xml
Resposta de sucesso200 OK

Arquivo binário application/xml. Salve o corpo da resposta diretamente em arquivo.

GET/integracao/v1/nfe/{id_operacao}/pdf

Baixar PDF da NF-e

Receba o arquivo binário autenticado, vinculado à empresa e à aplicação. Disponível para operação autorizada ou cancelada, quando o arquivo existir. Confira os indicadores de disponibilidade na consulta.

Escopo: nfe:read
  • 404 pode indicar operação inacessível ou arquivo ainda indisponível. Consulte a operação e tente o download mais tarde, sem repetir a emissão.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfe/operacao_exemplo/pdf' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --output documento.pdf
Resposta de sucesso200 OK

Arquivo binário application/pdf. Salve o corpo da resposta diretamente em arquivo.

NFC-e

POST/integracao/v1/nfce

Criar NFC-e

Envie os dados comerciais. A configuração da aplicação determina rascunho ou transmissão automática; empresa, ambiente, numeração e parâmetros fiscais vêm do Fiscal Pro.

Escopo: nfce:writeExige Idempotency-Key (até 200 caracteres)
Campos do pedido 20 campos
Campos de Criar NFC-e. Obrigatoriedade de campos internos depende do envio do objeto pai.
Campo / tipoDescrição
cpf_cnpjstring · opcionalDocumento numérico válido de pessoa sincronizada. Na NFC-e, somente CPF; pode ser omitido quando a identificação for dispensável.
destinacaostring · opcionalEsta versão aceita consumo final; padrão quando omitido. Valores: consumo_final.
presencastring · opcionalEsta versão aceita venda presencial; padrão quando omitido. Valores: presencial.
itensarray · obrigatório no objetoProdutos já cadastrados no Fiscal Pro.
itens[].id_produtointeger · obrigatório no objetoID obtido na listagem de produtos da empresa.
itens[].quantidadestring · obrigatório no objetoQuantidade positiva, até 4 casas decimais. Envie como texto decimal, com ponto.
itens[].valorstring · obrigatório no objetoValor unitário positivo, até 10 casas decimais. Envie como texto decimal, com ponto.
itens[].descontostring · opcionalDesconto total do item, até 2 casas decimais; opcional. Envie como texto decimal, com ponto.
pagamentosarray · obrigatório no objetoDevem corresponder ao total calculado, inclusive acréscimos aplicáveis. Sem troco neste contrato.
pagamentos[].meiostring · obrigatório no objetoCódigo do meio de pagamento. Exemplos: 01 dinheiro, 03 crédito, 04 débito, 17 Pix, 99 outros.
pagamentos[].valorstring · obrigatório no objetoValor do pagamento, até 2 casas decimais. Envie como texto decimal, com ponto.
pagamentos[].descricaostring · opcionalDescrição obrigatória para meio 99.
pagamentos[].a_prazoboolean · opcionalIndica pagamento a prazo.
pagamentos[].cartaoobject · opcionalConfira o exemplo e o schema OpenAPI.
pagamentos[].cartao.integradoboolean · obrigatório no objetoIndica integração com o pagamento.
pagamentos[].cartao.cnpj_instituicaostring · opcionalCNPJ real da instituição, quando aplicável.
pagamentos[].cartao.bandeirastring · opcionalCódigo da bandeira, quando aplicável.
pagamentos[].cartao.autorizacaostring · opcionalAutorização real, quando aplicável.
pagamentos[].cartao.cnpj_recebedorstring · opcionalCNPJ real do recebedor, quando aplicável.
pagamentos[].cartao.terminalstring · opcionalIdentificação real do terminal, quando aplicável.
  • De 1 a 250 itens e de 1 a 20 pagamentos. valor é unitário; desconto é o desconto total daquele item. Decimais são strings.
  • Os valores são ilustrativos: pagamentos devem corresponder ao total efetivamente calculado, inclusive acréscimos tributários. Use IDs reais da sua empresa.
  • Venda presencial para consumo final. Sem frete/entrega. CPF pode ser omitido quando a identificação for dispensável; para CNPJ, use NF-e. A autorização depende das validações do emissor.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request POST 'https://api.fiscalpro.com.br/integracao/v1/nfce' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: pedido-erp-0001' \
  --data '{
  "itens": [
    {
      "id_produto": 1,
      "quantidade": "1",
      "valor": "10.00"
    }
  ],
  "pagamentos": [
    {
      "meio": "01",
      "valor": "10.00",
      "a_prazo": false
    }
  ]
}'
Resposta de sucesso201 criação · 200 repetição/atualização
{
  "id_operacao": "operacao_exemplo",
  "modelo": 65,
  "status": "rascunho",
  "pendente_confirmacao": false,
  "tentativas_consulta": 0,
  "requer_acao_manual": false,
  "xml_disponivel": false,
  "pdf_disponivel": false
}

201 confirma a criação da operação ou cadastro. Para documentos fiscais, confira status; criação não significa autorização.

GET/integracao/v1/nfce/{id_operacao}

Consultar NFC-e

Consulte pelo id_operacao retornado na criação, usando a mesma aplicação. A consulta de uma pendência pode atualizar o resultado fiscal sem retransmitir o documento.

Escopo: nfce:read
  • Respeite proxima_consulta_em quando informado. Se requer_acao_manual for true, acompanhe a operação no Fiscal Pro; não crie outra venda.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfce/operacao_exemplo' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN"
Resposta de sucesso200 OK
{
  "id_operacao": "operacao_exemplo",
  "modelo": 65,
  "status": "rascunho",
  "pendente_confirmacao": false,
  "tentativas_consulta": 0,
  "requer_acao_manual": false,
  "xml_disponivel": false,
  "pdf_disponivel": false
}
GET/integracao/v1/nfce/{id_operacao}/xml

Baixar XML da NFC-e

Receba o arquivo binário autenticado, vinculado à empresa e à aplicação. Disponível para operação autorizada ou cancelada, quando o arquivo existir. Confira os indicadores de disponibilidade na consulta.

Escopo: nfce:read
  • 404 pode indicar operação inacessível ou arquivo ainda indisponível. Consulte a operação e tente o download mais tarde, sem repetir a emissão.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfce/operacao_exemplo/xml' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --output documento.xml
Resposta de sucesso200 OK

Arquivo binário application/xml. Salve o corpo da resposta diretamente em arquivo.

GET/integracao/v1/nfce/{id_operacao}/pdf

Baixar PDF da NFC-e

Receba o arquivo binário autenticado, vinculado à empresa e à aplicação. Disponível para operação autorizada ou cancelada, quando o arquivo existir. Confira os indicadores de disponibilidade na consulta.

Escopo: nfce:read
  • 404 pode indicar operação inacessível ou arquivo ainda indisponível. Consulte a operação e tente o download mais tarde, sem repetir a emissão.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfce/operacao_exemplo/pdf' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --output documento.pdf
Resposta de sucesso200 OK

Arquivo binário application/pdf. Salve o corpo da resposta diretamente em arquivo.

NFS-e

POST/integracao/v1/nfse

Criar NFS-e

Envie os dados comerciais. A configuração da aplicação determina rascunho ou transmissão automática; empresa, ambiente, numeração e parâmetros fiscais vêm do Fiscal Pro.

Escopo: nfse:writeExige Idempotency-Key (até 200 caracteres)
Campos do pedido 5 campos
Campos de Criar NFS-e. Obrigatoriedade de campos internos depende do envio do objeto pai.
Campo / tipoDescrição
cpf_cnpjstring · obrigatório no objetoCPF ou CNPJ válido de pessoa sincronizada.
itensarray · obrigatório no objetoServiços cadastrados e configurados na empresa.
itens[].id_servicointeger · obrigatório no objetoID obtido na listagem de serviços.
itens[].quantidadestring · obrigatório no objetoQuantidade positiva, até 6 casas decimais. Envie como texto decimal, com ponto.
itens[].valorstring · obrigatório no objetoValor unitário positivo, até 2 casas decimais. Envie como texto decimal, com ponto.
  • De 1 a 50 itens. O tomador deve estar sincronizado e os serviços configurados. Não envie tributos, município, série ou ambiente no payload.
  • O contrato comercial da integração não representa todos os campos da emissão manual. Confira a aplicabilidade dos cadastros antes de transmitir.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request POST 'https://api.fiscalpro.com.br/integracao/v1/nfse' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: pedido-erp-0001' \
  --data '{
  "cpf_cnpj": "52998224725",
  "itens": [
    {
      "id_servico": 1,
      "quantidade": "1",
      "valor": "100.00"
    }
  ]
}'
Resposta de sucesso201 criação · 200 repetição/atualização
{
  "id_operacao": "operacao_exemplo",
  "referencia_externa": "pedido-erp-0001",
  "cpf_cnpj": "52998224725",
  "status": "rascunho"
}

201 confirma a criação da operação ou cadastro. Para documentos fiscais, confira status; criação não significa autorização.

GET/integracao/v1/nfse/{id_operacao}

Consultar NFS-e

Consulte pelo id_operacao retornado na criação, usando a mesma aplicação. A consulta de uma pendência pode atualizar o resultado fiscal sem retransmitir o documento.

Escopo: nfse:read
  • NFS-e possui resposta própria: numero é texto e id_nfse é o ID interno. Não presuma os campos xml_disponivel e pdf_disponivel de NF-e/NFC-e.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail-with-body --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfse/operacao_exemplo' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN"
Resposta de sucesso200 OK
{
  "id_operacao": "operacao_exemplo",
  "referencia_externa": "pedido-erp-0001",
  "cpf_cnpj": "52998224725",
  "status": "rascunho"
}
GET/integracao/v1/nfse/{id_operacao}/pdf

Baixar PDF da NFS-e

Receba o arquivo binário autenticado, vinculado à empresa e à aplicação. O PDF exige NFS-e autorizada; arquivo ainda indisponível retorna 404.

Escopo: nfse:read
  • 404 pode indicar operação inacessível ou arquivo ainda indisponível. Consulte a operação e tente o download mais tarde, sem repetir a emissão.
  • A API de integração não oferece uma rota de XML de NFS-e nesta versão.
# Shell POSIX (Bash) · credenciais em variáveis de ambiente
curl --fail --request GET 'https://api.fiscalpro.com.br/integracao/v1/nfse/operacao_exemplo/pdf' \
  --header "Authorization: Bearer $FISCALPRO_ACCESS_TOKEN" \
  --output documento.pdf
Resposta de sucesso200 OK

Arquivo binário application/pdf. Salve o corpo da resposta diretamente em arquivo.

Baixar schemas completos em OpenAPI 3.0.3 →

UMA VENDA, UMA REFERÊNCIA

Idempotência e recuperação

Envie Idempotency-Key em toda criação de documento. A chave tem até 200 caracteres e deve permanecer vinculada à venda no seu sistema.

Como tratar repetições
SituaçãoComportamento
Primeiro pedido válido201 e uma nova operação.
Mesma chave e mesmo conteúdo200 e a operação existente.
Mesma chave e conteúdo diferente409. Não altere a venda silenciosamente.
Timeout ou conexão interrompidaConsulte o ID já recebido. Se não recebeu um ID, preserve a mesma chave e o mesmo conteúdo ao recuperar o pedido.
Não troque a chave para contornar um timeout.

Uma chave nova representa outra operação e pode duplicar uma venda. NF-e e NFC-e compartilham a unicidade por empresa e aplicação, incluindo o modelo. Repetir um rascunho não o transmite porque a configuração da aplicação mudou.

ACOMPANHAMENTO DO DOCUMENTO

Status e consultas

Persista o ID da operação, a chave da venda e o modelo. Use a consulta correspondente até obter o resultado ou a indicação de intervenção no Fiscal Pro.

Estados retornados pela integração
StatusComo interpretar
processandoA operação de NFS-e está em preparação. Acompanhe pelo ID.
rascunhoRegistrada no Fiscal Pro. A criação não transmitiu a nota.
pendenteResultado ainda não confirmado. Consulte a mesma operação.
autorizadaAutorização registrada. Confira os dados e arquivos disponíveis.
rejeitadaConfira o motivo e revise o cadastro ou a operação no Fiscal Pro.
canceladaCancelamento registrado. A API não oferece cancelamento nesta versão.
erroConfira a mensagem e o estado da operação antes de qualquer nova tentativa.

Na NF-e e NFC-e, acompanhe pendente_confirmacao, proxima_consulta_em, requer_acao_manual, xml_disponivel e pdf_disponivel. Respeite o intervalo informado para consultar.

A NFS-e tem resposta própria, com id_nfse, provider_status e numero textual quando disponíveis. Consultar uma NFS-e pendente pode atualizar seu resultado; a consulta não retransmite a nota. O PDF exige nota autorizada e arquivo disponível.

Os arquivos são binários e autenticados. Não use id_nfe ou id_nfse no lugar de id_operacao no caminho da consulta.

RESPOSTAS HTTP

Erros e recuperação

Erros normalmente retornam JSON com erro e, quando disponível, codigo. Uma falha na criação de NFS-e também pode retornar a própria operação: preserve o ID se estiver presente.

Códigos HTTP e próximos passos
HTTPTratamento
400Pedido inválidoConfira campos, formato e Idempotency-Key. Campos desconhecidos são recusados; o corpo JSON aceita até 64 KiB.
401Não autenticadoConfira as credenciais ou obtenha outro token se expirou. Não registre o segredo em logs.
403Acesso negadoConfira escopos, vínculo do responsável, permissões e bloqueios da empresa.
404Não encontradoConfira aplicação e ID da operação. O arquivo também pode estar indisponível.
409ConflitoA mesma chave foi reutilizada com outro conteúdo ou modelo. Recupere a venda original antes de decidir outra operação.
422Configuração pendenteRevise pessoa, serviço, produto ou configuração fiscal no Fiscal Pro.
500Falha internaPreserve a referência e o ID retornado. Consulte a operação antes de repetir uma criação.
502Arquivo indisponívelO PDF de NFS-e não pôde ser entregue como arquivo válido. Consulte a operação e tente o download mais tarde.
503Serviço indisponívelA autorização empresarial está indisponível. Aguarde antes de tentar novamente, preservando a chave da venda.

Em falhas de comunicação, evite repetição automática de criações com outra chave. Registre a referência comercial, o ID da operação e o código HTTP, preservando segredos e dados pessoais.

PLANEJE SUA INTEGRAÇÃO

Escopo desta versão

O contrato atual cobre dados comerciais de vendas diretas e serviços cadastrados. Cálculos, classificação e configuração fiscal pertencem ao Fiscal Pro; a API recusa campos extras no pedido.

  • Não envie empresa/tenant, certificado, CSC, ambiente, série, numeração, CFOP, CST ou alíquotas no corpo da venda.
  • Mantenha os parâmetros fiscais nos cadastros. Valores ausentes não equivalem a zero; valores manuais e zeros explícitos devem ser conferidos na configuração.
  • Sem cancelamento pela API, webhooks, devoluções, remessas, exportação, intermediadores/marketplaces, contingência offline ou escrita no catálogo de produtos nesta versão.
  • A emissão depende dos modelos habilitados, escopos, permissões, situação da empresa, cadastros e validações do emissor. O modo da aplicação pode transmitir ao receber o pedido.

Para usar a coleção, importe o JSON no Postman e preencha client_id e client_secret como variáveis locais secretas. Execute “Obter token de acesso” e copie o token para access_token. Preencha cpf_cnpj, id_operacao e a chave da venda conforme a requisição, revisando os corpos de exemplo.

Pronto para conectar?

Configure sua aplicação e use os cadastros da empresa para começar.

Acessar o Fiscal Pro ↗

Para configuração e suporte, consulte a Central de Ajuda.