NF-e modelo 55
A nota de mercadoria: venda entre empresas, remessa, devolução, transferência, venda para fora do estado. Autorizada na SEFAZ da UF do emitente, com DANFE em PDF e XML guardado pelo prazo legal. O cadastro do emitente e do certificado A1 acontece uma vez no painel em nts.apifacil.dev; cada nota é uma chamada de API feita pelo seu ERP.
A NF-e documenta circulação de mercadoria quando o destinatário está identificado: outra empresa, um consumidor em outro estado, ou você mesmo numa transferência entre filiais. Venda de balcão ao consumidor final dentro do estado é NFC-e modelo 65, que é mais simples e imprime cupom em vez de DANFE. Serviço é NFS-e.
| SITUAÇÃO | DOCUMENTO |
|---|---|
| Venda para outra empresa (B2B) | NF-e (55) |
| Venda para consumidor em outro estado | NF-e (55) |
| Remessa, devolução, transferência entre filiais | NF-e (55) |
| Venda no balcão ao consumidor final, mesma UF | NFC-e (65) |
| Prestação de serviço | NFS-e |
nts.apifacil.dev
CNPJ, IE, endereço, regime tributário, município
.pfx/.p12 + senha
via API, pelo seu sistema
Na página de detalhe do emitente (depois de cadastrado), envie o arquivo .pfx ou .p12 e a senha. O CNPJ do certificado precisa ser o mesmo do emitente.
| PARÂMETRO | TIPO | OBRIG | DESCRIÇÃO |
|---|---|---|---|
| destinatario.documento | string | SIM | Só dígitos: CPF (11) ou CNPJ (14) |
| destinatario.nome | string | SIM | Razão social ou nome, até 60 chars |
| destinatario.logradouro, numero, bairro, municipio, uf, cep | string | SIM | Endereço completo do destinatário |
| destinatario.codigo_municipio | integer | SIM | 7 dígitos, código IBGE do município do destinatário |
| destinatario.indicador_ie | integer | NÃO | 1 contribuinte de ICMS, 2 isento, 9 não contribuinte |
| destinatario.ie | string | NÃO | Inscrição estadual, até 20 chars. Obrigatória na prática quando indicador_ie é 1 |
| destinatario.email, complemento, telefone | string | NÃO | Complementares |
| itens | array | SIM | 1 a 990 itens |
| itens[].codigo | string | SIM | Seu código interno do produto, até 60 chars |
| itens[].descricao | string | SIM | Descrição do produto, até 120 chars |
| itens[].ncm | string | SIM | 8 dígitos, código NCM |
| itens[].cfop | string | SIM | 4 dígitos. Começa em 5 na operação interna, em 6 na interestadual |
| itens[].quantidade | decimal | SIM | Maior que zero |
| itens[].valor_unitario | decimal | SIM | Valor unitário em reais |
| itens[].gtin | string | NÃO | Código de barras (EAN/GTIN), até 14 dígitos |
| itens[].unidade | string | NÃO | Unidade comercial (UN, KG, CX…), até 6 chars |
| itens[].origem | integer | NÃO | 0 a 8, origem da mercadoria (0 nacional, padrão) |
| itens[].csosn | string | Se Simples Nacional | 3 dígitos. Use no lugar de cst_icms quando o emitente é optante do Simples |
| itens[].cst_icms | string | Se regime normal | 2 dígitos, CST do ICMS |
| itens[].aliquota_icms | decimal | NÃO | 0 a 100 |
| itens[].cst_pis / cst_cofins | string | Se regime normal | 2 dígitos cada. O CRT não distingue Lucro Presumido de Lucro Real, então não existe alíquota padrão segura — informe |
| itens[].aliquota_pis / aliquota_cofins | decimal | Se regime normal | 0 a 100 cada |
| pagamentos | array | NÃO | Opcional na NF-e (na NFC-e é obrigatório). Quando enviado, exige forma e valor |
| pagamentos[].forma | string | Se houver pagamentos | 2 dígitos: 01 dinheiro, 03 crédito, 04 débito, 15 boleto, 17 Pix, 90 sem pagamento |
| pagamentos[].valor | decimal | Se houver pagamentos | Maior que zero |
| natureza_operacao | string | NÃO | Até 60 chars, ex: "Venda de mercadoria", "Devolucao de venda" |
| modalidade_frete | integer | NÃO | 0 a 9. 0 por conta do emitente, 1 por conta do destinatário, 9 sem frete |
| serie | integer | NÃO | 1 a 889 (padrão 1). O número é controlado por nós |
| referencia_externa | string | NÃO | Seu identificador único por emitente (ex: número do pedido), até 80 chars — evita emitir a mesma nota duas vezes |
| observacao | string | NÃO | Informações complementares, até 5000 chars |
| ibs_cbs | boolean | NÃO | Envia os grupos de IBS/CBS da reforma tributária (NT 2025.002-RTC). Padrão false: confirme com o contador antes de ligar |
| PARÂMETRO | TIPO | OBRIG | DESCRIÇÃO |
|---|---|---|---|
| texto | string | SIM | Entre 15 e 1000 caracteres. É o texto que vai para o fisco e fica público na consulta da nota |
| PARÂMETRO | TIPO | OBRIG | DESCRIÇÃO |
|---|---|---|---|
| serie | integer | SIM | 1 a 889 |
| numero_inicial | integer | SIM | Primeiro número da faixa |
| numero_final | integer | SIM | Último número da faixa, maior ou igual ao inicial |
| justificativa | string | SIM | Entre 15 e 255 caracteres |
| PARÂMETRO | TIPO | OBRIG | DESCRIÇÃO |
|---|---|---|---|
| emitente_id | integer | NÃO | Filtra por emitente |
| modelo | string | NÃO | nfse, 55 (NF-e) ou 65 (NFC-e) |
| status | string | NÃO | processando, autorizado, rejeitado, cancelado ou erro |
| por_pagina | integer | NÃO | 1 a 100, padrão 25 |
| PARÂMETRO | TIPO | OBRIG | DESCRIÇÃO |
|---|---|---|---|
| justificativa | string | SIM | 15 a 255 caracteres, exigência do fisco |
| PARÂMETRO | TIPO | OBRIG | DESCRIÇÃO |
|---|---|---|---|
| cnpj | string | SIM | 14 dígitos, sem pontos, barra ou traço |
| razao_social | string | SIM | Máx 120 caracteres |
| nome_fantasia | string | NÃO | Máx 120 caracteres |
| ie | string | SIM | Inscrição estadual, ou "ISENTO" |
| im | string | NÃO | Inscrição municipal |
| crt | integer | SIM | 1 Simples Nacional, 2 Simples excesso sublimite, 3 Regime normal, 4 MEI |
| op_simp_nac | integer | SIM | 1 Não optante, 2 Optante MEI, 3 Optante ME/EPP |
| reg_ap_trib_sn | integer | Obrigatório se op_simp_nac=3 | 1, 2 ou 3 — regime de apuração dos tributos do Simples Nacional |
| logradouro | string | SIM | Máx 120 caracteres |
| numero | string | SIM | Máx 20 caracteres |
| complemento | string | NÃO | Máx 120 caracteres |
| bairro | string | SIM | Máx 60 caracteres |
| codigo_municipio | integer | SIM | Código IBGE do município do emitente (7 dígitos) |
| municipio | string | SIM | Nome do município |
| uf | string | SIM | 2 letras |
| cep | string | SIM | Com ou sem traço |
| telefone | string | NÃO | Com DDD |
| ambiente | integer | NÃO | 1 produção, 2 homologação — padrão 2 |
| CÓDIGO | CAUSA | SOLUÇÃO |
|---|---|---|
| 100 | Autorizado o uso da NF-e | — |
| 135 | Evento registrado e vinculado à NF-e | Cancelamento ou carta de correção aceitos |
| 204 | Duplicidade de NF-e | A mesma chave já foi autorizada. Consulte antes de emitir de novo |
| 539 | Duplicidade de NF-e com chave diferente | Já existe nota com esse número. Use referencia_externa para o retry não duplicar |
| 209 | IE do destinatário inválida | Conferir a inscrição estadual, ou marcar indicador_ie como 2 (isento) ou 9 (não contribuinte) |
| 778 | NCM inválido ou inexistente | Conferir o NCM do produto no cadastro |
| 225 | Falha no schema do XML | Normalmente campo obrigatório faltando — confira a tabela de parâmetros |
| 228 | Data de emissão muito atrasada | Emitir na data corrente |
| STATUS HTTP | CAUSA | SOLUÇÃO |
|---|---|---|
| 401 | Token errado ou enviado com "Bearer " | Remover "Bearer ", usar o token puro do painel |
| 403 | Emissão em produção sem assinatura ativa | Assinar o serviço Nota Fiscal, ou usar ambiente de homologação |
| 404 | Emitente ou documento não pertence à conta | Conferir o ID no painel |
| 422 | Payload inválido, sem certificado, ou rejeição da SEFAZ | A mensagem em erro diz qual dos casos é |
| 429 | Acima do rate limit | Respeitar o header Retry-After |