SmartNFCe¶
O adaptador SmartNFCe leva para a nuvem o contrato do Motor Emissor que hoje roda ao lado do PDV. São os mesmos caminhos, os mesmos corpos e os mesmos códigos. O PDV troca o endereço local pelo nosso, e o certificado passa a ficar sob custódia do Veraciti.
Diferente dos outros dois dialetos, estas páginas descrevem a superfície inteira. O motor local não tem documentação pública para a qual remeter, então tudo o que você precisa saber está aqui. Estas páginas são mais longas que as dos outros dialetos por causa disso, não porque este dialeto seja mais complicado.
- Guia de migração — para onde apontar, por que a autenticação já está resolvida e as convenções de fio que diferenciam este dialeto dos outros dois.
- Compatibilidade — o que o adaptador aceita, o que ele recusa e onde ele diverge do motor local, item a item.
Adaptador em desenvolvimento
O contrato descrito aqui já está fechado. Nada nestas páginas é suposição.
Superfície atendida¶
| Rota | O que faz |
|---|---|
POST /api/v1/nfce/xml/{uuid} |
Emite, a partir do XML que você montou |
GET /api/v1/nfce/authorization/status/{uuid} |
Consulta pelo uuid que você escolheu |
GET /api/v1/nfce/{nNFouChave} |
Consulta por número ou por chave |
POST /api/v1/nfce/cancelar |
Cancela, por número ou por chave |
POST /api/v1/nfce/{chNFe}/cancel |
Cancela pela chave, com justificativa obrigatória |
POST /api/v1/nfce/{chNFe}/cancellationBySubstitution |
Cancela por substituição |
POST /api/v1/nfce/discard |
Inutiliza uma faixa de numeração |
GET /api/v1/nfce/inutilizacoes |
Lista as inutilizações |
POST /api/v1/nfce/danfepdf |
DANFE em PDF, por número ou por chave |
GET /api/v1/nfce/contingencia/enable |
Liga a contingência forçada. A emissão passa a sair em tpEmis 9, sem chamar a SEFAZ |
GET /api/v1/nfce/contingencia/disable |
Desliga a contingência forçada |
GET /api/v1/nfce/contingencia/pendentes |
Quantos documentos esperam transmissão |
GET /api/v1/nfce/contingencia/resultado/{nNF} |
Desfecho de um número em contingência |
GET /api/v1/nfce/processamentocontigencia |
Relatório de processamento (o caminho tem o erro de digitação do motor, de propósito) |
GET /api/v1/nfce/status_sefaz |
Status do serviço na SEFAZ |
POST /api/v1/webhook/config |
Grava a configuração de webhook (uma por empresa e ambiente) |
GET /api/v1/webhook/config |
Lê a configuração (o segredo volta mascarado) |
GET /status |
Sinal de vida do adaptador |
Quando o documento não tem modo offline, contingencia/enable recusa em banda, com
contingência offline não suportada para este documento. Ele não liga sem efeito.
Os verbos que só fazem sentido numa máquina local ficam de fora. São eles: impressão ESC/POS, configuração de DANFE local, cadastro local, restauração de fábrica, atualização automática e leitura de log local. O motivo de cada um está na página de compatibilidade.
Diferenças que mais afetam código existente¶
- A autenticação já está resolvida. Este é o único dialeto que não tem provisionamento de credencial: ele aceita o token OAuth2 que o seu equipamento já carrega. Ver Autenticação.
- A entrada continua em XML. Diferente dos outros dialetos, aqui você envia o documento
já montado no layout SEFAZ. Quem decide o
tpEmiscontinua sendo você. - Tudo responde
200. O motor não tem semântica de erro em HTTP, e nós reproduzimos isso: o desfecho vem no corpo, inclusive os sentinelas negativos. - Dois vocabulários de status convivem e nunca se encontram. É a coisa mais confusa desta superfície e tem uma seção própria.
- IBS/CBS obrigatório. Todo item precisa do grupo
imposto.IBSCBS. Sem ele a SEFAZ rejeita. Ver Validação.
Endereços¶
| Ambiente | Endereço base |
|---|---|
| Produção | https://smartnfce.api.veraciti.com.br |
| Homologação | https://smartnfce-sandbox.api.veraciti.com.br |
Como nos demais dialetos, o endereço base é a única coisa que muda entre homologação e produção: caminhos, corpos e autenticação são idênticos nos dois.