Docs/NF-e
NF-e — Nota Fiscal Eletrônica (produtos)
Endpoints para emissão, consulta e cancelamento de NF-e de produtos.
Ver requisitos de autenticaçãoHeaders
X-Api-Key
stringobrigatórioChave de API da conta (id do usuário).
X-Api-Secret
stringobrigatórioSegredo da chave de API.
Content-Type
stringobrigatórioapplication/json
Parâmetros do body
nature
stringopcionalNatureza da operação.
cfop
stringopcionalCFOP padrão dos itens.
items
arrayobrigatórioItens da nota. Aceita DNA fiscal completo (espelha a UI Novo produto). Campos omitidos herdam defaults da empresa / catálogo.
description
stringobrigatórioTexto curto do item (máx. 120). Compat legado.
name
stringopcionalNome no catálogo (3–64). Default: slice de fiscalDescription/description.
fiscalDescription
stringopcionalDescrição na NF-e (xProd). Default: description.
category
stringopcionalCategoria (ex.: digital_book, software, other_product). Default: other_product.
sku
stringopcionalSKU do item.
ncm
stringopcionalNCM (8 dígitos).
commercialUnit
stringopcionalUnidade comercial (ex.: UN). Alias legado: unit.
cfopInternal
stringopcionalCFOP vendas dentro do estado. Alias legado: cfop.
cfopExternal
stringopcionalCFOP vendas fora do estado.
icmsCst
stringopcionalCST/CSOSN ICMS.
icmsTaxRate
numberopcionalAlíquota ICMS (%).
pisCst
stringopcionalCST PIS.
cofinsCst
stringopcionalCST COFINS.
taxClassification
stringopcionalClassificação tributária IBS/CBS.
quantity
numberobrigatórioQuantidade.
unitValue
numberobrigatórioValor unitário em reais.
recipient
objectobrigatórioDados do destinatário.
taxId
stringobrigatórioCPF ou CNPJ do destinatário.
name
stringobrigatórioNome do destinatário.
E-mail do destinatário.
externalId
stringopcionalIdentificador externo para idempotência.
transport
objectopcionalDados de transporte inline. Não há cadastro de transportadora: os dados vão no payload e ficam congelados no snapshot da nota. freightModality é obrigatório quando carrier é enviado; noShipping com carrier retorna 400.
freightModality
stringopcionalModalidade do frete: bySender, byRecipient, byThirdParties, ownBySender, ownByRecipient ou noShipping. Também aceita os códigos SEFAZ 0/1/2/3/4/9. Obrigatório quando carrier é enviado.
value
numberopcionalValor do frete (≥ 0). Compõe o total da nota quando o frete é por conta do emitente.
carrier
objectopcionalTransportadora (inline).
name
stringobrigatórioRazão social ou nome da transportadora.
taxId
stringobrigatórioCNPJ ou CPF válido da transportadora.
stateRegistration
stringopcionalInscrição estadual.
address
objectopcionalEndereço da transportadora.
street
stringopcionalLogradouro.
city
stringopcionalCidade.
state
stringopcionalUF (ex.: SP).
vehicle
objectopcionalVeículo do transporte.
plate
stringobrigatórioPlaca do veículo.
state
stringopcionalUF de registro do veículo.
rntc
stringopcionalRegistro nacional de transportador de carga (ANTT).
curl -X POST "https://api.emitfy.com/v1/companies/ID_DA_EMPRESA/nfe" \
-H "X-Api-Key: SUA_API_KEY" \
-H "X-Api-Secret: SUA_API_SECRET" \
-H "Idempotency-Key: pedido-100" \
-H "Content-Type: application/json" \
-d '{
"nature": "Venda de mercadoria",
"items": [
{
"description": "Notebook modelo XYZ",
"ncm": "84713012",
"cfop": "5102",
"quantity": 2,
"unitValue": 3500.00
}
],
"recipient": {
"taxId": "123.456.789-00",
"name": "João Silva",
"email": "joao@email.com"
},
"transport": {
"freightModality": "bySender",
"value": 45.90,
"carrier": {
"name": "Transportes Rápido LTDA",
"taxId": "12.345.678/0001-90",
"stateRegistration": "123456789",
"address": {
"street": "Rua das Cargas, 100",
"city": "São Paulo",
"state": "SP"
},
"vehicle": {
"plate": "ABC1D23",
"state": "SP",
"rntc": "12345678"
}
}
}
}'{
"ok": true,
"data": {
"id": "018f6e3b-0000-0000-0000-000000000000",
"status": "processing",
"type": "nfe",
"externalId": "pedido-100",
"amount": 7000.00,
"createdAt": "2026-07-06T10:28:00.000Z"
}
}{
"ok": false,
"code": "VALIDATION_ERROR",
"message": "Um ou mais campos falharam na validação de entrada.",
"statusCode": 422
}Headers
X-Api-Key
stringobrigatórioChave de API da conta (id do usuário).
X-Api-Secret
stringobrigatórioSegredo da chave de API.
Content-Type
stringobrigatórioapplication/json
Query params
status
stringopcionalFiltra por status (processing, authorized, rejected, canceled).
page
numberopcionalPágina atual. Padrão: 1.
pageSize
numberopcionalItens por página. Padrão: 20.
curl -X GET "https://api.emitfy.com/v1/companies/ID_DA_EMPRESA/nfe?status=authorized" \
-H "X-Api-Key: SUA_API_KEY" \
-H "X-Api-Secret: SUA_API_SECRET" \
{
"ok": true,
"data": [
{
"id": "018f6e3b-0000-0000-0000-000000000000",
"status": "authorized",
"type": "nfe",
"amount": 7000.00,
"createdAt": "2026-07-06T10:28:00.000Z"
}
],
"pageInfo": {
"page": 1,
"pageSize": 20,
"total": 1
}
}{
"ok": false,
"code": "VALIDATION_ERROR",
"message": "Um ou mais campos falharam na validação de entrada.",
"statusCode": 422
}Headers
X-Api-Key
stringobrigatórioChave de API da conta (id do usuário).
X-Api-Secret
stringobrigatórioSegredo da chave de API.
Content-Type
stringobrigatórioapplication/json
Parâmetros de rota
id
string (UUID)obrigatórioIdentificador único da NF-e.
curl -X GET "https://api.emitfy.com/v1/companies/ID_DA_EMPRESA/nfe/018f6e3b-0000-0000-0000-000000000000" \
-H "X-Api-Key: SUA_API_KEY" \
-H "X-Api-Secret: SUA_API_SECRET" \
{
"ok": true,
"data": {
"id": "018f6e3b-0000-0000-0000-000000000000",
"status": "processing",
"type": "nfe",
"externalId": "pedido-100",
"amount": 7000.00,
"createdAt": "2026-07-06T10:28:00.000Z"
}
}{
"ok": false,
"code": "VALIDATION_ERROR",
"message": "Um ou mais campos falharam na validação de entrada.",
"statusCode": 422
}Headers
X-Api-Key
stringobrigatórioChave de API da conta (id do usuário).
X-Api-Secret
stringobrigatórioSegredo da chave de API.
Content-Type
stringobrigatórioapplication/json
Parâmetros de rota
id
string (UUID)obrigatórioIdentificador único da NF-e.
curl -X DELETE "https://api.emitfy.com/v1/companies/ID_DA_EMPRESA/nfe/018f6e3b-0000-0000-0000-000000000000" \
-H "X-Api-Key: SUA_API_KEY" \
-H "X-Api-Secret: SUA_API_SECRET" \
{
"ok": true,
"data": {
"id": "018f6e3b-0000-0000-0000-000000000000",
"status": "canceled",
"type": "nfe"
}
}{
"ok": false,
"code": "VALIDATION_ERROR",
"message": "Um ou mais campos falharam na validação de entrada.",
"statusCode": 422
}Tabelas de referência NF-e
GET /v1/nfe/ncm?search=...— consulta de NCMGET /v1/nfe/cfop?search=...— consulta de CFOPGET /v1/nfe/cest?search=...— consulta de CEST