EmiteFácil — API de Emissão Fiscal para Parceiros (1.3.0)

Download OpenAPI specification:

API REST que permite que sistemas externos (softwares de parceiros/clientes) emitam NF-e (modelo 55) ou NFC-e (modelo 65) em nome de um estabelecimento cliente do EmiteFácil, sem que o operador precise acessar o EmiteFácil manualmente.

Por padrão a API emite NFC-e (modelo 65). Para emitir NF-e (modelo 55), envie "modelo": 55 no POST /emit.

A API não cadastra nem altera produtos — o cadastro continua sendo feito em Cadastros → Produtos e Serviços. Use GET /items para obter o código do produto.

Como autenticar

Todas as operações da API exigem uma API key no header X-API-Key.

  1. No EmiteFácil, acesse Parâmetros Gerais → Integração via API.

  2. Gere uma nova chave, informe uma descrição que identifique o sistema integrador e copie a chave no momento da criação. Por segurança, o valor completo não é exibido novamente.

  3. Envie a chave em todas as requisições:

    X-API-Key: SUA_CHAVE_AQUI
    Accept: application/json
    

Exemplo para confirmar a autenticação consultando os produtos disponíveis:

curl --request GET \
  --url 'https://api.emitenfe.com.br/nfe/items?page=1' \
  --header 'Accept: application/json' \
  --header 'X-API-Key: SUA_CHAVE_AQUI'

A API key já está vinculada a um único grupo e estabelecimento. Não envie códigos de grupo ou estabelecimento no payload. Resposta 401 indica chave ausente, inválida ou inativa. Armazene a chave como segredo no servidor integrador; não exponha em navegador, aplicativo, repositório ou log. Em caso de vazamento, desative a chave e gere outra.

Dados necessários antes de emitir

Use as seções Produtos, Clientes e Formas de pagamento para obter os códigos válidos do estabelecimento antes de montar o POST /emit.

Reforma Tributária — IBS e CBS

O parceiro não envia campos de IBS ou CBS no payload. Para cada item, o EmiteFácil resolve automaticamente os tributos usando grupo, produto, CFOP, valor da operação e tabelas tributárias configuradas no cadastro do produto.

Os dados resolvidos incluem:

  • CST e código de classificação tributária (cClassTrib);
  • base de cálculo e indicador de doação;
  • IBS da UF: percentual, diferimento, redução, alíquota efetiva e valor;
  • IBS municipal: percentual, diferimento, redução, alíquota efetiva e valor;
  • CBS: percentual, diferimento, redução, alíquota efetiva e valor.

Quando não existe tabela específica para o produto/CFOP, o fluxo atual utiliza os valores transitórios de 2026: CST 000, classificação tributária 000001, IBS UF 0,1%, IBS municipal 0% e CBS 0,9%, calculados sobre o valor total do item.

Imposto Seletivo (IS) não é aceito no payload nem montado por este fluxo da API. Caso a operação exija IS, contate o suporte antes de integrar.

Os demais dados fiscais — CFOP, CST/CSOSN, ICMS, PIS, COFINS e IPI — também são resolvidos automaticamente a partir do cadastro fiscal do produto e do regime tributário.

NF-e (modelo 55) exige identificação completa do destinatário (CPF/CNPJ, nome e endereço) quando não é referenciado um cliente já cadastrado via cod_terceiro — a SEFAZ rejeita NF-e sem destinatário identificado. NFC-e (modelo 65, padrão) continua aceitando consumidor não identificado.

Formato das respostas e erros

Envie sempre Accept: application/json. Sem ele, erros de validação podem ser respondidos com redirecionamento (HTTP 302) em vez de JSON.

  • Sucesso e erros de negócio: { "sucesso": true|false, "msg": "..." } mais os dados do recurso.
  • Erros de validação do payload (HTTP 422): { "message": "...", "errors": { "campo": ["..."] } }.
  • HTTP 400: erro ao processar a requisição antes de gravar a venda (ex.: produto não encontrado) — pode ser reenviada do zero.
  • HTTP 422 com retry_url: a venda foi gravada, mas a SEFAZ rejeitou a nota. Não chame POST /emit de novo (duplicaria a venda); use retry_url.

Pré-requisitos e limitações da NF-e (modelo 55)

  • O estabelecimento precisa ter série de NF-e configurada em Parâmetros Fiscais → Séries de Documentos Fiscais. Sem ela, a emissão falha e a venda fica gravada (use retry_url depois de configurar).
  • idDest (interna/interestadual) é calculado pela UF do cliente.
  • O transporte é sempre enviado como "sem frete" (modalidade 9); não há suporte a transportador, placa ou frete.
  • Não há suporte a destinatário no exterior (exportação).

Cancelamento

Só é possível cancelar notas com status AU. O prazo legal costuma ser de 30 minutos para NFC-e e 24 horas para NF-e, podendo variar conforme o estado. O cancelamento reverte o estoque.

Atenção: POST /emit cria uma venda e pode transmitir a nota para a SEFAZ. Antes de executar exemplos, confirme com o suporte se a chave e o estabelecimento estão configurados para homologação ou produção.

Autor: Tiago Oliveira — Última atualização: 30/09/2026

Emissão

Emissão, nova tentativa e cancelamento de NF-e/NFC-e.

Cria a venda e emite a NF-e/NFC-e em uma única chamada

Se a venda for criada mas a emissão falhar (SEFAZ fora do ar, rejeição, etc.), a resposta traz venda.codigo e retry_url — usar POST /sale/{codigo}/emit para tentar novamente sem duplicar a venda.

Authorizations:
apiKeyAuth
Request Body schema: application/json
required
modelo
integer
Default: 65
Enum: 55 65

55 = NF-e · 65 = NFC-e. Omitido, assume 65 (NFC-e).

consumidor_final
required
boolean
cod_terceiro
integer or null

Código de um cliente já cadastrado — alternativa a cliente. Tem prioridade sobre cliente se ambos forem informados.

object

Ignorado se cod_terceiro for informado. Para NFC-e (modelo 65) é totalmente opcional — sem cliente nem cod_terceiro, a nota sai como consumidor não identificado. Para NF-e (modelo 55), cpf_cnpj, nome e endereco completo passam a ser obrigatórios quando não há cod_terceiro.

cpf_cnpj
string
nome
string
inscricao_estadual
string or null

Preenchida → contribuinte (indIEDest=1). Valor "ISENTO"/"ISENTA" → isento (indIEDest=2). Ausente/vazia → não contribuinte (indIEDest=9, padrão).

object

Obrigatório (todos os campos) para NF-e (modelo 55) sem cod_terceiro.

required
Array of objects non-empty
Array (non-empty)
produto_cod
required
integer
quantidade
required
number >= 0.001
valor_unitario
required
number >= 0.01
desconto
number >= 0
Default: 0
object or null

Uma única forma de pagamento — alternativa a formas_pagamento. A soma sempre precisa fechar com o valor total dos itens (menos desconto), senão a SEFAZ rejeita a nota (cStat 865).

codigo
required
integer

Código da forma de pagamento — ver GET /payment-methods

valor
required
number >= 0.01
Array of objects or null non-empty

Múltiplas formas de pagamento — alternativa a forma_pagamento.

Array (non-empty)
codigo
required
integer

Código da forma de pagamento — ver GET /payment-methods

valor
required
number >= 0.01
informacoes_complementares
string or null

Texto livre — vai para o campo de informações complementares da NF-e/NFC-e.

Responses

Request samples

Content type
application/json
Example
{
  • "consumidor_final": true,
  • "itens": [
    ],
  • "forma_pagamento": {
    }
}

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "msg": "NF-e emitida com sucesso",
  • "venda": {
    },
  • "nfe": {
    },
  • "url_danfe": "string"
}

Reemite a NF-e de uma venda já existente (retry após falha)

Usar após um POST /emit que criou a venda mas não conseguiu emitir (resposta 422 com retry_url). Opcionalmente substitui a forma de pagamento antes de reenviar.

Authorizations:
apiKeyAuth
path Parameters
codigo
required
integer

Código do lançamento (venda), retornado em venda.codigo na emissão.

Request Body schema: application/json
optional
object or null

Substitui a forma de pagamento da venda por esta única.

codigo
integer
valor
number
Array of objects or null

Substitui a(s) forma(s) de pagamento da venda por estas.

Array
codigo
integer
valor
number

Responses

Request samples

Content type
application/json
{
  • "forma_pagamento": {
    },
  • "formas_pagamento": [
    ]
}

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "msg": "NF-e emitida com sucesso",
  • "venda": {
    },
  • "nfe": {
    },
  • "url_danfe": "string"
}

Cancela a NF-e/NFC-e de uma venda já autorizada

Authorizations:
apiKeyAuth
path Parameters
codigo
required
integer

Código do lançamento (venda), retornado em venda.codigo na emissão.

Request Body schema: application/json
required
motivo
required
string [ 15 .. 255 ] characters

Responses

Request samples

Content type
application/json
{
  • "motivo": "Erro na quantidade de itens informada na nota"
}

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "msg": "NFC-e cancelada com sucesso.",
  • "venda": {
    },
  • "nfe": {
    }
}

Consulta

Consulta do status fiscal e download do DANFE/DANFCE.

Consulta o status de uma venda/NF-e pelo código do lançamento

Authorizations:
apiKeyAuth
path Parameters
codigo
required
integer

Código do lançamento (venda), retornado em venda.codigo na emissão.

Responses

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "venda": {
    },
  • "nfe": {
    }
}

PDF do DANFE (modelo 55) ou DANFCE (modelo 65) da venda

A nota precisa estar com status AU (autorizada) para o PDF ser gerado.

Authorizations:
apiKeyAuth
path Parameters
codigo
required
integer

Código do lançamento (venda), retornado em venda.codigo na emissão.

Responses

Response samples

Content type
application/json
{
  • "sucesso": false,
  • "msg": "API key inválida ou inativa."
}

Produtos

Produtos disponíveis para uso nos itens da emissão e seus respectivos códigos.

Consulta os produtos disponíveis para emissão

Somente leitura — não cria nem altera produtos. Retorna os códigos aceitos em itens[].produto_cod, paginados (30 por página; use ultima_pagina para saber quando parar). O preço vem da tabela de preços 1 (padrão). Consulte este endpoint antes de emitir para não informar um produto inexistente.

Authorizations:
apiKeyAuth
query Parameters
search
string

Filtra por nome (sem acento) ou referência do produto.

page
integer
Default: 1

Responses

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "pagina": 0,
  • "itens_por_pagina": 30,
  • "ultima_pagina": true,
  • "itens": [
    ]
}

Clientes

Clientes cadastrados que podem ser referenciados por cod_terceiro na NF-e.

Consulta clientes que podem ser usados na NF-e

Retorna até 50 clientes, aceitos em cod_terceiro. Para NF-e modelo 55, referenciar um cliente cadastrado evita reenviar seus dados completos no payload.

Authorizations:
apiKeyAuth
query Parameters
search
string

Filtra por razão social, nome fantasia ou CPF/CNPJ.

Responses

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "clientes": [
    ]
}

Formas de pagamento

Formas de pagamento ativas e seus códigos para compor o total da emissão.

Consulta as formas de pagamento aceitas na emissão

Retorna as formas de pagamento ativas. Use o campo codigo (não t_pag) em forma_pagamento.codigo e formas_pagamento[].codigo. A soma dos pagamentos deve fechar com o total dos itens.

Authorizations:
apiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "sucesso": true,
  • "formas_pagamento": [
    ]
}