Emitir NFe
Emita uma Nota Fiscal Eletrônica (NFe — modelo 55) e transmita para a SEFAZ em uma única chamada REST. Endpoint:POST https://api.engineapi.com.br/nfe/emitir
Pré-requisitos
Conta criada
Registre-se em app.engineapi.com.br e obtenha seu token via
POST /auth/login.Empresa cadastrada
Cadastre o CNPJ emissor via
POST /companies. Guarde o id retornado — esse é o issuerId.Certificado digital enviado
Faça upload do
.pfx via POST /companies/{issuerId}/certificate. Sem certificado, a emissão falha.Notas em homologação (
environment: 2) são transmitidas para o SEFAZ de teste e não têm validade fiscal. Use para testar sem risco.Exemplos de Request
- cURL
- TypeScript
- Python
- PHP
ICMS por Regime Tributário
O campoicms muda conforme o regime da empresa emissora:
Simples Nacional — CSOSN
Simples Nacional — CSOSN
Use quando
taxRegime: 3. Informe apenas origem e csosn.| CSOSN | Quando usar |
|---|---|
102 | Tributada pelo Simples, sem permissão de crédito |
400 | Não tributada pelo Simples Nacional |
500 | ICMS cobrado anteriormente por substituição tributária |
900 | Outros |
Lucro Real / Lucro Presumido — CST
Lucro Real / Lucro Presumido — CST
Use quando
taxRegime: 1 ou taxRegime: 2. Requer cst, aliquota, baseCalculo e valor.| CST | Significado |
|---|---|
00 | Tributada integralmente |
20 | Com redução de base de cálculo |
40 | Isenta |
41 | Não tributada |
60 | Cobrada anteriormente por ST |
Origem da mercadoria
Origem da mercadoria
| Código | Origem |
|---|---|
0 | Nacional |
1 | Estrangeira — importação direta |
2 | Estrangeira — adquirida no mercado interno |
3 | Nacional com mais de 40% de conteúdo estrangeiro |
4 | Nacional produzida conforme processos básicos |
Campos de Referência
Raiz
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
issuerId | string (UUID) | Sim | ID da empresa emissora |
naturezaOperacao | string | Sim | Ex: "VENDA DE MERCADORIA" |
destinatario | objeto | Sim | Dados do destinatário |
itens | array | Sim | Mínimo 1 item |
pagamento | objeto | Sim | Forma e valor |
observacoes | string | — | Informações adicionais |
Destinatário
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cnpj ou cpf | string | Sim (um) | Documento do destinatário |
nome | string | Sim | Razão social ou nome |
indicadorIE | número | Sim | 1=contribuinte, 2=isento, 9=não contribuinte |
inscricaoEstadual | string | — | IE quando indicadorIE: 1 |
endereco.* | objeto | Sim | Endereço completo |
Item
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
numero | número | Sim | Sequencial do item (1, 2, 3…) |
codigo | string | Sim | Código interno do produto |
descricao | string | Sim | Descrição do produto |
ncm | string | Sim | 8 dígitos — Nomenclatura Comum do Mercosul |
cfop | string | Sim | 4 dígitos — ver CFOP |
unidade | string | Sim | UN, KG, MT, CX, etc. |
quantidade | número | Sim | Quantidade |
valorUnitario | número | Sim | Valor por unidade em R$ |
valorTotal | número | Sim | quantidade × valorUnitario |
icms | objeto | Sim | Dados tributários do item |
Response de sucesso
| Status | Significado | Ação |
|---|---|---|
AUTHORIZED | Aprovada pela SEFAZ | Nenhuma — nota válida |
REJECTED | Rejeitada | Corrija e reenvie |
PROCESSING | Em processamento | Consulte via GET /nfe/{id} |
CANCELLED | Cancelada | Nota cancelada |
Tratamento de Erros
Rejeição SEFAZ (422)
Webhook após emissão
A Engine API dispara automaticamente um eventoinvoice.authorized quando a SEFAZ aprova:
Próximos passos
Cancelar NFe
Cancelamento em até 24h após a autorização
Carta de Correção
Corrija dados sem cancelar a nota
Webhooks
Receba notificações automáticas em tempo real