Fiscal: notas fiscais eletrônicas
Como a loja emite NF-e e NFC-e: fila de emissão, estabelecimento emissor, perfil fiscal, CFOP e o assistente que propõe correções.
No Brasil, toda venda precisa de um documento fiscal eletrônico autorizado pela SEFAZ (a secretaria da fazenda do estado). A NF-e (modelo 55) é a nota entre empresas e para entrega. A NFC-e (modelo 65) é a nota de consumidor, usada no balcão. A plataforma não fala com a SEFAZ diretamente: ela entrega os dados da nota a um provedor de emissão (Focus NFe), que valida, assina e transmite.
Estas são as rotas do administrador da loja para configurar e operar esse fluxo. Tudo gira em torno de uma fila de emissão: cada pedido que precisa de nota entra na fila, um processo em segundo plano emite, e as falhas ficam visíveis para você corrigir e reenviar.
Como funciona
O ciclo de um item da fila
status | Significado | Final? |
|---|---|---|
pending | Aguardando emissão (ou nova tentativa agendada em next_retry_at). | Não |
processing | Um processo está emitindo agora. | Não |
submitted | Enviada ao provedor, aguardando a resposta da SEFAZ. | Não |
authorized | Nota autorizada. | Sim |
failed | Rejeitada por regra fiscal (NCM inválido, dados do destinatário). Não tenta de novo sozinha: corrija e reenvie. | Sim |
abandoned | Falhou 8 vezes seguidas por problema de comunicação. Reenvie quando o provedor voltar. | Sim |
cancelled | O pedido foi cancelado antes da autorização. | Sim |
Falhas de comunicação (timeout, erro 5xx) ficam em pending e são tentadas de novo com espera crescente: 1 min, 5 min, 15 min, 1 h, 3 h, 6 h, 12 h e 24 h. A oitava falha leva a abandoned. Só failed e abandoned podem ser reenviados à mão.
Fluxo típico de implantação
- Cadastre o estabelecimento
POST /establishmentscom CNPJ, inscrição estadual, UF, endereço e série. - Provisione no provedor
POST /establishments/{id}/provisioncria a empresa no provedor. O certificado digital é enviado ao provedor, não à plataforma. - Configure perfis e CFOPCrie perfis fiscais, atribua-os a produtos, categorias ou prefixos de NCM e ajuste a matriz de CFOP.
- Limpe o catálogo
GET /catalog-issueslista produtos sem NCM ou com NCM inválido. - Escolha o gatilho
PUT /settingscomon_paid,on_completedouon_shipped. - Acompanhe a fila
GET /queue?status=failed, corrija a causa e useretry,reemitoubulk-retry.
Conceitos importantes
Estabelecimento emissor
É o CNPJ que assina a nota: matriz, filial ou loja. O primeiro cadastrado vira o padrão. Na hora de emitir, a plataforma escolhe o emissor nesta ordem: o estabelecimento informado na fila, o estabelecimento ligado ao depósito de onde sai a mercadoria (warehouse_id) e, por fim, o padrão. Cada CNPJ e cada depósito só podem ter um estabelecimento.
Perfil fiscal
Um perfil reúne os códigos de imposto de um tipo de produto: csosn (regime Simples Nacional), icms_cst (regime normal), pis_cst, cofins_cst, origem da mercadoria e, se houver substituição tributária, a margem st_mva_bps. Para cada item da nota vale o primeiro perfil que casar, nesta ordem: atribuído ao produto, à categoria, ao prefixo de NCM (o prefixo mais longo vence) e, por fim, o perfil padrão.
NCM e CEST
O NCM é o código de 8 dígitos que classifica a mercadoria. O CEST é um código adicional exigido quando o produto tem substituição tributária (ICMS ST). Sem NCM válido a nota é rejeitada.
CFOP
O CFOP é o código de 4 dígitos da natureza da operação (5102, 6102...). A matriz de CFOP escolhe o código pelo tipo de operação, pelo destinatário e por a venda ser dentro do estado (intra) ou entre estados (inter).
O assistente fiscal
Quando uma nota é rejeitada, ou quando uma varredura do catálogo acha produtos sem NCM, o assistente registra uma ação proposta (por exemplo "corrigir o NCM deste produto"). Nada muda no catálogo sem a sua aprovação. Veja Ações do assistente.
Endpoints
| Método e caminho | Para que serve | Auth | Página |
|---|---|---|---|
GET /api/v1/admin/fiscal/queue | Lista a fila de emissão | admin | Fila de emissão |
POST /api/v1/admin/fiscal/queue/{id}/retry | Reenvia um item | admin | Fila de emissão |
POST /api/v1/admin/fiscal/queue/{id}/reemit | Reenvia corrigindo emissor ou modelo | admin | Fila de emissão |
POST /api/v1/admin/fiscal/queue/bulk-retry | Reenvia vários itens | admin | Fila de emissão |
GET /api/v1/admin/fiscal/settings | Lê a configuração de emissão | admin | Configuração de emissão |
PUT /api/v1/admin/fiscal/settings | Grava a configuração de emissão | admin | Configuração de emissão |
GET /api/v1/admin/fiscal/establishments | Lista estabelecimentos | admin | Estabelecimentos |
POST /api/v1/admin/fiscal/establishments | Cadastra | admin | Estabelecimentos |
GET /api/v1/admin/fiscal/establishments/{id} | Detalha | admin | Estabelecimentos |
PUT /api/v1/admin/fiscal/establishments/{id} | Altera | admin | Estabelecimentos |
DELETE /api/v1/admin/fiscal/establishments/{id} | Exclui | admin | Estabelecimentos |
POST /api/v1/admin/fiscal/establishments/{id}/provision | Cria a empresa no provedor | admin | Provisionamento |
GET /api/v1/admin/fiscal/establishments/{id}/provider-status | Consulta a situação no provedor | admin | Provisionamento |
GET /api/v1/admin/fiscal/profiles | Lista perfis fiscais | admin | Perfis fiscais |
POST /api/v1/admin/fiscal/profiles | Cria perfil | admin | Perfis fiscais |
PUT /api/v1/admin/fiscal/profiles/{id} | Altera perfil | admin | Perfis fiscais |
DELETE /api/v1/admin/fiscal/profiles/{id} | Exclui perfil | admin | Perfis fiscais |
POST /api/v1/admin/fiscal/profiles/{id}/assignments | Atribui perfil | admin | Atribuições de perfil |
DELETE /api/v1/admin/fiscal/assignments/{id} | Remove atribuição | admin | Atribuições de perfil |
GET /api/v1/admin/fiscal/cfop-matrix | Lê a matriz de CFOP | admin | Matriz de CFOP |
PUT /api/v1/admin/fiscal/cfop-matrix | Grava células da matriz | admin | Matriz de CFOP |
GET /api/v1/admin/fiscal/validate | Confere um pedido antes de emitir | admin | Validação prévia |
GET /api/v1/admin/fiscal/catalog-issues | Produtos com NCM faltando ou inválido | admin | Validação prévia |
GET /api/v1/admin/fiscal/agent/actions | Lista ações do assistente | admin | Ações do assistente |
POST /api/v1/admin/fiscal/agent/scan-catalog | Varre o catálogo e propõe ações | admin | Ações do assistente |
POST /api/v1/admin/fiscal/agent/actions/{id}/approve | Aprova e aplica | admin | Ações do assistente |
POST /api/v1/admin/fiscal/agent/actions/{id}/reject | Recusa | admin | Ações do assistente |
GET /api/v1/admin/fiscal/agent/settings | Lê o nível de autonomia | admin | Autonomia do assistente |
PUT /api/v1/admin/fiscal/agent/settings | Grava o nível de autonomia | admin | Autonomia do assistente |
Erros comuns
- Esperar emissão automática sem configurar o gatilho. O padrão é
manual. Até você gravaron_paid,on_completedouon_shipped, nenhum pedido entra na fila sozinho. - Reenviar um item que já foi autorizado ou que ainda está em andamento. Só
failedeabandonedaceitam reenvio; os outros devolvem422. - Reenviar sem corrigir a causa. Um
failedpor NCM inválido falha de novo. Conserte o produto (veja Validação prévia) e só então reenvie. - Usar
PUTcomo se fosse umPATCH. Em estabelecimentos, perfis e na configuração de emissão oPUTregrava os campos enviados e zera os omitidos (endereço, CST,email_customer). Reenvie o objeto inteiro. - Cadastrar o CNPJ com e sem pontuação. O CNPJ é gravado como veio;
11.222.333/0001-81e11222333000181são tratados como valores diferentes. Use sempre só os dígitos. - Apagar o estabelecimento padrão. A API recusa com
409. Promova outro (PUTcomis_default: true) antes. - Mandar
order_idvazio na validação. Devolve500em vez de400.