Skip to main content
Respostas para as dúvidas mais comuns de parceiros e desenvolvedores.

Certificados

Não. A engineAPI trabalha exclusivamente com certificados A1 (arquivo .pfx/.p12). O certificado A3 (token USB/cartão) não é compatível com APIs cloud por exigir interação física com o dispositivo.Se seu cliente usa A3, ele precisará adquirir um certificado A1 junto a uma Autoridade Certificadora (AC) como Certisign, Serasa ou SafeWeb.
Arquivo .pfx ou .p12 com senha. O upload é feito via endpoint (campo multipart file, não certificate):
A senha é criptografada em repouso e nunca é retornada após o upload.
As emissões passam a falhar, tipicamente 400 com error.erros[] (rejeição da SEFAZ por certificado inválido/vencido) ou 500 se a falha for na leitura do arquivo. Recomendamos:
  • Monitorar o campo certExpiry via GET /v1/companies/:id
  • Configurar o webhook certificate.expiring (dispara em 30/15/7/3/1 dias antes)
  • Renovar com antecedência de 30 dias
Sim, mas não recomendamos. O ideal é usar certificados de teste (alguns ACs emitem gratuitamente para homologação) no emissor em homologação e reservar o certificado de produção para o emissor de produção.

NFS-e

Depende. A NFS-e não é padronizada nacionalmente. A engineAPI suporta municípios que seguem o padrão ABRASF e o Padrão Nacional (SEFIN/ADN).Consulte o suporte para verificar se o município do seu cliente é suportado.
O campo servico.itemListaServico segue a Lista de Serviços da LC 116/2003. Exemplos comuns:
  • 01.07: Suporte técnico em informática
  • 01.01: Análise e desenvolvimento de sistemas
  • 17.01: Assessoria e consultoria
O seu cliente/contador sabe qual código se aplica. Com resolverTributacao: true, o Cérebro Fiscal pode preencher esse campo a partir do cadastro do emissor (servicoPadraoLc116).
Sim. Cada município define suas alíquotas. A engineAPI não calcula o valor do ISS, você informa servico.aliquotaIss no payload (não existem os campos valorISS/issRetido no contrato).

Planos e preços

Varia por plano (Dev é grátis para sandbox/homologação; Starter, Growth, Scale e Enterprise têm preços diferentes). A tabela de preços vigente, que muda com mais frequência que esta doc, está em engineapi.com.br/precos.
Sim. Todo emissor nasce em homologação (ambienteFiscal: 2) e a ek_test_ está disponível para qualquer partner, mesmo sem assinatura paga. As notas emitidas em homologação não têm validade fiscal e não são cobradas.
Depende do plano: cada plano tem um limite de requests/segundo (ver Rate Limits) e a metering conta 1 por documento autorizado (não por tentativa).

Integração técnica

Sim, para TypeScript, PHP e Python: classe EngineApiClient com os módulos nfe/companies. Confirme a disponibilidade nos registries (npm/Packagist/PyPI) antes de instalar; na dúvida, integre direto via REST com qualquer HTTP client. Ver SDKs.
Não. O certificado digital A1 é obrigatório para assinar os documentos fiscais junto a SEFAZ/SEFIN. Sem ele, nenhuma emissão (NF-e, NFC-e, NFS-e) é possível.
Toda resposta de sucesso vem envelopada:
Em caso de erro, o formato é RFC 7807 (Problem Details):
Não existem os campos success/sefazCode/sefazMessage, ver Erros e Rejeições para o contrato completo.
Sim. A engineAPI é AI-Ready. Veja o guia Integração com IA para detalhes.

Operacional

O SLA varia por plano: a tabela vigente está nos Termos de Uso, seção 5.A SEFAZ, porém, tem manutenções programadas (geralmente domingos à noite). Nesses períodos, emissões podem falhar com erro 503. A API retorna automaticamente quando o serviço volta.
A engineAPI retorna erro 503 Service Unavailable com a mensagem da SEFAZ (envelope RFC 7807). Recomendamos:
  1. Implementar retry com backoff (ver Erros e Rejeições)
  2. Monitorar o status do SEFAZ via GET /v1/nfce/status (ou equivalente do modelo)
  3. Informar o usuário final que o serviço está temporariamente indisponível
O que GET /v1/nfce/status garante: o campo status só é UP/DOWN quando a API fez uma consulta REAL e autenticada na SEFAZ (NFE_StatusServico) com o certificado de um emissor seu. Sem um emissor resolvível (sua conta ainda sem emissor cadastrado, ou 2+ emissores sem informar issuerId na query), a resposta é status: 'UNKNOWN': a API nunca inventa “no ar” sem ter perguntado de verdade. Com 1 único emissor cadastrado, a resolução é automática; com 2+, informe ?issuerId= pra escolher qual CNPJ consultar.
Sim. Configure via PATCH /v1/webhooks/config para receber, entre outros:
  • invoice.authorized/invoice.rejected/invoice.canceled
  • certificate.expiring
Veja o guia Webhooks para a lista completa de eventos e o formato do payload ({id, type, timestamp, data}).
Passado o prazo, a SEFAZ rejeita com cStat 501 (repassado verbatim em error.erros[] no 400) e a nota permanece autorizada. Não há cancelamento extemporâneo de NFC-e/NF-e via API. O remédio legal é emitir uma NF-e de devolução com finNFe: 4, referenciadas e pagamento sem pagamento (forma: "90", valor zero); a API valida essa combinação antes de numerar. Veja o guia NFC-e e Erros e Rejeições.

Suporte

Email: suporte@engineapi.com.br, resposta em até 4 horas úteis. Chat integrado no Dashboard.