Skip to main content
A Nuvem Fiscal anunciou desativação em 31/07/2026. Este guia mapeia o contrato público dela (api.nuvemfiscal.com.br/openapi/swagger.json) para o da engineAPI, campo a campo. Tempo estimado de migração: 4-8 horas de desenvolvimento A Nuvem Fiscal expõe o leiaute bruto da SEFAZ em JSON (mesma estrutura do XML: infNFe.ide, infNFe.det[].imposto.ICMS.ICMS00, etc.). A engineAPI abstrai isso num payload plano. A migração não é só trocar nomes de campo: é escrever uma camada de tradução do leiaute bruto para o formato abstraído, daí o tempo maior que os outros guias desta coleção.

Diferenças principais

Mapeamento de endpoints

Mapeamento de campos

Raiz (NF-e/NFC-e: infNFe.ide)

Destinatário (infNFe.dest)

Item: produto (infNFe.det[].prod)

Item: tributos (infNFe.det[].imposto)

O grupo imposto da Nuvem Fiscal é um union por CST/CSOSN: cada situação tributária tem seu próprio objeto (ICMS00, ICMS10, ICMS20ICMSSN101, ICMSSN102…). A engineAPI usa um único objeto flexível por item (items[].icms), sem sub-tipar por CST.

Pagamento (infNFe.pag)

Empresa (cadastro do emissor)

NFS-e (infDPS)

Diferenças importantes

A Nuvem Fiscal expõe o JSON praticamente idêntico ao XML da SEFAZ: os mesmos grupos (ide, emit, dest, det, imposto) e o mesmo union por CST/CSOSN dentro de imposto.ICMS. A engineAPI abstrai tudo isso num payload plano (items[].icms único, sem sub-tipar por CST). Isso reduz o volume do payload, mas exige reescrever a camada que monta a nota: não dá para só renomear campos 1:1.
Na Nuvem Fiscal, o emissor é identificado pelo CNPJ dentro do próprio infNFe.emit. Na engineAPI, é o issuerId (UUID) retornado por POST /v1/companies, opcional com um único emissor cadastrado, obrigatório a partir do segundo.
A Nuvem Fiscal escolhe homologação/produção a cada requisição (campo ambiente). Na engineAPI, o ambiente é uma propriedade do emissor (ambienteFiscal): todo emissor nasce em homologação; promover para produção é self-service, ver Sandbox.
Na Nuvem Fiscal, justificativa é opcional (preenchida automaticamente se vazia). Na engineAPI, é obrigatória (mínimo 15 caracteres) em POST /v1/nfe/{idOuChave}/cancelar e POST /v1/nfce/{idOuChave}/cancelar.
O OpenAPI público da Nuvem Fiscal não documenta webhook: o consumo de eventos é via polling nos endpoints de consulta (GET /nfe/eventos/{id}, por exemplo). A engineAPI notifica por webhook configurável (PATCH /v1/webhooks/config), com assinatura HMAC no payload.

Checklist de migração

1

Criar conta na engineAPI

Registre-se em app.engineapi.com.br e gere sua API Key.
2

Cadastrar empresas emissoras

POST /v1/companies para cada CNPJ, convertendo os campos conforme a tabela Empresa. Atenção ao endereço, que deixa de ser aninhado.
3

Upload dos certificados

POST /v1/companies/{id}/certificate (multipart, campo file) com o .pfx de cada empresa. A Nuvem Fiscal aceitava base64 em JSON, a engineAPI só multipart.
4

Testar em homologação

Todo emissor novo já nasce em homologação (ambienteFiscal: 2). Emita notas de teste e valide os mapeamentos, sem precisar de um campo ambiente por requisição.
5

Escrever a camada de tradução do payload

Converta o leiaute bruto (infNFe.ide/dest/det/imposto) para o payload plano da engineAPI (naturezaOperacao, destinatario, items[], pagamentos[]) usando as tabelas acima: é o passo que consome a maior parte do tempo estimado.
6

Adaptar o cancelamento

Passe a enviar justificativa com pelo menos 15 caracteres em todo cancelamento. Na Nuvem Fiscal esse campo era opcional.
7

Configurar webhooks

Troque o polling por PATCH /v1/webhooks/config para receber eventos em tempo real.
8

Migrar para produção

Promover o emissor para produção é self-service, ver Sandbox.
9

Desativar a integração com a Nuvem Fiscal

Após validar a estabilidade por 1-2 semanas, encerre a integração antiga.

Próximos passos