Emitir NFe
POST /nfe/emitir
Emite uma Nota Fiscal Eletrônica (modelo 55).
Autenticação
Authorization: Bearer {token} ou x-api-key: {apiKey}
Parâmetros do Body
Campos Principais
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
issuerId | string | ✅ | ID da empresa emissora |
destinatario | object | ✅ | Dados do destinatário |
items | array | ✅ | Itens da nota fiscal |
pagamentos | array | ✅ | Formas de pagamento |
naturezaOperacao | string | Natureza da operação (padrão: "VENDA DE MERCADORIA") | |
serie | number | Série da NFe (padrão: 1) | |
numero | number | Número da NFe (auto-increment) | |
tpNF | integer | 0 Entrada, 1 Saída (padrão: 1) | |
idDest | integer | 1 Interna, 2 Interestadual, 3 Exterior | |
indFinal | integer | 0 Normal, 1 Consumidor Final | |
indPres | integer | 0 N/A, 1 Presencial, 2 Internet, 3 Teleatend., 4 Delivery, 9 Outros | |
finNFe | integer | 1 Normal, 2 Complementar, 3 Ajuste, 4 Devolução | |
transporte | object | Dados de transporte | |
troco | number | Valor do troco | |
informacoesComplementares | string | Info adicional (aparece no DANFE) | |
informacoesFisco | string | Informações para o fisco |
Objeto destinatario
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cnpjCpf | string | ✅ | CPF (11 dígitos) ou CNPJ (14 dígitos) |
nome | string | ✅ | Razão social ou nome |
endereco | object | ✅ | Endereço completo (ver abaixo) |
ie | string | Inscrição Estadual | |
indicadorIE | integer | 1 Contribuinte, 2 Isento, 9 Não contribuinte | |
email | string | E-mail do destinatário |
Objeto endereco (do destinatário)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
logradouro | string | ✅ | Rua/Avenida |
numero | string | ✅ | Número |
bairro | string | ✅ | Bairro |
codigoMunicipio | string | ✅ | Código IBGE do município |
municipio | string | ✅ | Nome do município |
uf | string | ✅ | UF (2 caracteres) |
cep | string | ✅ | CEP |
complemento | string | Complemento |
Objeto items[]
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
codigo | string | ✅ | Código interno do produto |
descricao | string | ✅ | Descrição do produto |
ncm | string | ✅ | NCM (8 dígitos) |
cfop | string | ✅ | CFOP (ex: "5102") |
unidade | string | ✅ | Unidade de medida ("UN", "KG", etc.) |
quantidade | number | ✅ | Quantidade |
valorUnitario | number | ✅ | Valor unitário |
icms | object | ✅ | ICMS do item |
ean | string | EAN/GTIN (ou "SEM GTIN") | |
cest | string | CEST (7 dígitos) | |
valorTotal | number | Calculado automaticamente se omitido | |
desconto | number | Valor de desconto no item | |
pis | object | PIS do item | |
cofins | object | COFINS do item | |
ipi | object | IPI do item (produtos industriais) |
Objeto icms (do item)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
origem | integer | ✅ | 0 Nacional, 1 Estrangeira — Importação direta, 2 Estrangeira — Mercado interno |
cst | string | CST ICMS: "00", "10", "20", "30", "40", "41", "50", "51", "60", "70", "90" | |
csosn | string | CSOSN (Simples Nacional): "101", "102", "103", "201", "202", "300", "400", "500", "900" | |
aliquota | number | Alíquota ICMS (%) | |
baseCalculo | number | Base de cálculo | |
valor | number | Valor do ICMS | |
baseCalculoST | number | Base ICMS ST | |
aliquotaST | number | Alíquota ICMS ST | |
valorST | number | Valor ICMS ST |
Objeto pis / cofins (do item)
| Campo | Tipo | Descrição |
|---|---|---|
cst | string | CST PIS/COFINS: "01", "02", "04", "06", "07", "08", "09", "49", "99" |
baseCalculo | number | Base de cálculo |
aliquota | number | Alíquota (ex: 0.0065 = 0,65% PIS, 0.03 = 3% COFINS) |
valor | number | Valor |
Objeto ipi (do item)
| Campo | Tipo | Descrição |
|---|---|---|
cst | string | CST IPI: "00", "49", "50", "51", "52", "53", "54", "55", "99" |
baseCalculo | number | Base de cálculo |
aliquota | number | Alíquota IPI |
valor | number | Valor IPI |
cEnq | string | Código enquadramento legal (tabela TIPI) |
Objeto transporte
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
modFrete | integer | ✅ | 0 Emitente, 1 Destinatário, 2 Terceiros, 9 Sem frete |
transportadora | object | Dados da transportadora | |
volumes | array | Volumes transportados |
Objeto transportadora
| Campo | Tipo | Descrição |
|---|---|---|
cnpjCpf | string | CNPJ/CPF |
nome | string | Razão social |
ie | string | Inscrição Estadual |
endereco | string | Endereço |
municipio | string | Município |
uf | string | UF |
Objeto volumes[]
| Campo | Tipo | Descrição |
|---|---|---|
quantidade | integer | Quantidade de volumes |
especie | string | Espécie (ex: "CAIXA") |
pesoBruto | number | Peso bruto (KG) |
pesoLiquido | number | Peso líquido (KG) |
Objeto pagamentos[]
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
forma | string | ✅ | "01" Dinheiro, "02" Cheque, "03" Cartão Crédito, "04" Cartão Débito, "15" Boleto, "17" PIX, "90" Sem pagamento, "99" Outros |
valor | number | ✅ | Valor do pagamento |
Exemplo
- cURL
- Node.js
- Python
curl -X POST https://api.engineapi.com.br/nfe/emitir \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"issuerId": "ISSUER_ID",
"naturezaOperacao": "VENDA DE MERCADORIA",
"destinatario": {
"cnpjCpf": "99888777000155",
"nome": "Cliente SA",
"endereco": {
"logradouro": "Av Brasil", "numero": "500",
"bairro": "Centro", "codigoMunicipio": "3550308",
"municipio": "São Paulo", "uf": "SP", "cep": "01001000"
},
"indicadorIE": 1
},
"items": [{
"codigo": "PROD001", "descricao": "Produto Teste",
"ncm": "84713012", "cfop": "5102", "unidade": "UN",
"quantidade": 2, "valorUnitario": 150.00, "valorTotal": 300.00,
"icms": { "origem": 0, "cst": "00", "aliquota": 18,
"baseCalculo": 300.00, "valor": 54.00 }
}],
"pagamentos": [{ "forma": "01", "valor": 300.00 }],
"transporte": { "modFrete": 9 }
}'
const resp = await fetch("https://api.engineapi.com.br/nfe/emitir", {
method: "POST",
headers: {
Authorization: `Bearer ${TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
issuerId: "ISSUER_ID",
naturezaOperacao: "VENDA DE MERCADORIA",
destinatario: {
cnpjCpf: "99888777000155",
nome: "Cliente SA",
endereco: {
logradouro: "Av Brasil",
numero: "500",
bairro: "Centro",
codigoMunicipio: "3550308",
municipio: "São Paulo",
uf: "SP",
cep: "01001000",
},
indicadorIE: 1,
},
items: [
{
codigo: "PROD001",
descricao: "Produto Teste",
ncm: "84713012",
cfop: "5102",
unidade: "UN",
quantidade: 2,
valorUnitario: 150.0,
valorTotal: 300.0,
icms: {
origem: 0,
cst: "00",
aliquota: 18,
baseCalculo: 300.0,
valor: 54.0,
},
},
],
pagamentos: [{ forma: "01", valor: 300.0 }],
transporte: { modFrete: 9 },
}),
});
const { invoice } = await resp.json();
import httpx
resp = httpx.post('https://api.engineapi.com.br/nfe/emitir',
headers={'Authorization': f'Bearer {TOKEN}'},
json={
'issuerId': 'ISSUER_ID',
'naturezaOperacao': 'VENDA DE MERCADORIA',
'destinatario': {
'cnpjCpf': '99888777000155',
'nome': 'Cliente SA',
'endereco': {
'logradouro': 'Av Brasil', 'numero': '500',
'bairro': 'Centro', 'codigoMunicipio': '3550308',
'municipio': 'São Paulo', 'uf': 'SP', 'cep': '01001000',
},
'indicadorIE': 1,
},
'items': [{
'codigo': 'PROD001', 'descricao': 'Produto Teste',
'ncm': '84713012', 'cfop': '5102', 'unidade': 'UN',
'quantidade': 2, 'valorUnitario': 150.00, 'valorTotal': 300.00,
'icms': {'origem': 0, 'cst': '00', 'aliquota': 18,
'baseCalculo': 300.00, 'valor': 54.00},
}],
'pagamentos': [{'forma': '01', 'valor': 300.00}],
'transporte': {'modFrete': 9},
},
)
invoice = resp.json()['invoice']
Resposta (200)
{
"success": true,
"invoice": {
"id": "uuid-da-nota",
"accessKey": "35260211222333000144550010000000011000000019",
"number": 1,
"series": 1,
"status": "AUTHORIZED"
}
}
Consultar NFe
GET /nfe/:accessKey/consultar
curl https://api.engineapi.com.br/nfe/CHAVE_ACESSO/consultar \
-H "Authorization: Bearer SEU_TOKEN"
Cancelar NFe
POST /nfe/:accessKey/cancelar
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
justificativa | string | ✅ | Motivo do cancelamento (mín. 15 caracteres) |
curl -X POST https://api.engineapi.com.br/nfe/CHAVE_ACESSO/cancelar \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "justificativa": "Erro na digitação dos dados do destinatário" }'
Carta de Correção NFe
POST /nfe/:accessKey/cce
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
correcao | string | ✅ | Texto da correção (mín. 15 caracteres) |
curl -X POST https://api.engineapi.com.br/nfe/CHAVE_ACESSO/cce \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "correcao": "Corrigir razão social do destinatário" }'
Download PDF (DANFE)
GET /nfe/:accessKey/pdf
Download XML
GET /nfe/:accessKey/xml
Status do Serviço
GET /nfe/status?uf=SP