DiaACBR2025
- Active · last change 11-5-2025
- ★ 1 on GitHub
README
Projeto Unificado: Emissor NFC‑e + NGHC.POS
Este repositório reúne dois projetos complementares:
- Emissor NFC‑e: serviço REST em Delphi (Horse) que emite NFC‑e via ACBr e retorna XML/PDF/ESC/POS.
- NGHC.POS: aplicativo de PDV em Delphi/FireMonkey para dispositivos Gertec GPOS (ex.: GPOS720), com TEF (CliSiTef), impressão interna e integração com NFC‑e.
O objetivo é oferecer um ponto de partida completo: do backend de emissão até o PDV embarcado com impressão e pagamentos integrados.
Visão Geral do Repositório
fontes/NFCE/— Emissor NFC‑e (console) com Horse e ACBr.fontes/— NGHC.POS (FMX) com integração TEF e impressão.libs/— Bibliotecas Android (CliSiTef assets, libGEDI, PPComp GPOS720).assinatura/— Keystores e instruções para assinar APK.imagens/— Logos e artes do app.
Emissor NFC‑e (serviço REST)
- Tipo: console com servidor HTTP usando
Horse. - Porta padrão:
9000. - Endpoints:
POST /nfce/emitir— recebe JSON da venda e emite NFC‑e.GET /nfce/status— status básico do serviço.
- Saídas: retorna
XMLda NFC‑e,PDFdo DANFE (opcional) e conteúdoESC/POSpara impressora.
Executar o Emissor
- Abrir e compilar
fontes/NFCE/EmissorNFCe.dprno Delphi (Windows). - Rodar o binário
EmissorNFCe.exeem um prompt. - Logs e pastas criadas automaticamente:
NF/JSON— requisições JSON armazenadas (histórico).NF/XML— XMLs emitidos.
Exemplo de chamada
- Usando
curlcom o exemplo pronto: curl -X POST http://localhost:9000/nfce/emitir -H "Content-Type: application/json" --data-binary @fontes/NFCE/exemplo_nfce.json- Resposta típica inclui:
sucesso:true/false.xml: conteúdo do XML (string ou base64, conforme implementação).pdf: PDF do DANFE em base64 (se configurado).pdf_posprinter: texto ESC/POS do DANFE (para imprimir em térmica).chave_acesso: chave da NFC‑e emitida.
Requisitos fiscais
- Certificado A1 (
.pfx), CSC, dados do emitente e configuração por UF. - Integração ACBr para assinatura, envio e retorno do SEFAZ.
NGHC.POS (PDV Android embarcado)
- Tipo: app FMX para GPOS (ex.: GPOS720/G720) com impressão na térmica interna.
- Funcionalidades:
- Cadastro e venda com itens, totais e descontos.
- TEF (CliSiTef) integrado.
- Emissão de NFC‑e (via servidor ou local) e impressão do DANFE.
- Impressão de QR Code nativo via API GEDI.
Pré‑requisitos
- Hardware: um Gertec GPOS com papel e bateria.
- Software:
- Windows com Delphi 10.4/11.x.
- Android SDK/NDK configurados.
- JDK instalado.
- Bibliotecas Android (Deployment):
libs/libgedi-0.16.17/*.jarlibs/ppcomp-*/PPComp*.jarlibs/clisitef-*/assetsemassets/do APK.libs/clisitef-*/clisitefemassets/clisitef.
Build e Deploy
- Abrir
fontes/NGHCPOS.groupprojno Delphi. - Validar
fontes/AndroidManifest.template.xml(permissões:INTERNET,ACCESS_NETWORK_STATE, storage/logs). - Configurar Deployment para incluir
.jare pastasassets/clisitef. - Conectar o GPOS via USB, selecionar alvo Android e executar
Run.
Impressão de DANFE e QR Code
- O app gera o layout ESC/POS do DANFE via
ACBrPosPrinter/ACBrNFeDANFeESCPOS. - O conteúdo ESC/POS é enviado à impressora interna usando GEDI/PPComp.
- QR Code da NFC‑e:
- Extraído do XML (campo
qrCode) ou do texto ESC/POS. - Impresso via
DrawBarCodecomQR_CODE(API GEDI).
- Extraído do XML (campo
Integração TEF
- Configurar parâmetros do adquirente em
nghc.clisitef.pasesitef.*.pas. - Garantir assets e rede disponíveis.
- Vincular transação TEF à NFC‑e em
pag/detPag/card(tpIntegra=1,CNPJ,tBand,cAut).
Guia Rápido: Dois Fluxos Possíveis
- Fluxo A (Servidor Emissor):
- PDV gera JSON da venda e chama
POST /nfce/emitir. - Recebe
xml/pdf/pdf_posprintere imprime o DANFE no GPOS. - Útil quando quer centralizar emissão e guarda dos documentos.
- PDV gera JSON da venda e chama
- Fluxo B (Local no GPOS):
- PDV monta NFC‑e local, gera ESC/POS do DANFE e imprime diretamente.
- QR Code impresso via GEDI.
- Útil em ambientes com pouca conectividade ao servidor.
Estrutura Detalhada de Pastas
fontes/— Projeto FMX do NGHC.POS:nghc.dpr,nghc.dprojnghc.pos.fmx,nghc.pos.pasnghc.clisitef.pas,sitef.*.pasuProduto.*.pas,uItens.*.pas,uVenda.Service.pas
fontes/NFCE/— Projeto Emissor NFC‑e:EmissorNFCe.dpr(Horse)src/uNFCeController.pas,src/uNFCeModel.pas,src/uACBrManager.pas,src/uPDFGenerator.pasexemplo_nfce.json
Problemas Comuns
- Bibliotecas ausentes: incluir
.jar(GEDI/PPComp) no Deployment. - TEF não comunica: verificar Internet, firewall e assets
clisitef. - Impressão falha: checar papel, energia e presença das libs.
- NFC‑e rejeitada: revisar certificado, CSC e regras por UF.
Classe de Exemplo NFC‑e (uNFCeSampleJson)
- Local:
fontes/NFCE/src/uNFCeSampleJson.pas. - Objetivo: montar JSON para
POST /nfce/emitircom cálculo de totais/impostos. - Funções:
ToJSONObject,AsJSON,TNFCeExemplo.BuildSample.
Uso rápido
uses uNFCeSampleJson;
var
Exemplo: TNFCeExemplo;
JsonString: string;
begin
Exemplo := TNFCeExemplo.BuildSample;
try
JsonString := Exemplo.AsJSON;
// Envie JsonString via HTTP (POST /nfce/emitir) ou salve em arquivo
finally
Exemplo.Free;
end;
end;Observações
- Parametrizar
IdToken,CSCe dados fiscais para seu ambiente. - Em estados que exigem vinculação TEF, preencher
pag.detPag.card(tpIntegra,CNPJ,tBand,cAut).
Tecnologias
Delphi / FireMonkey (FMX)— app PDV.Horse— servidor HTTP do Emissor.ACBr— emissão NFC‑e e DANFE.CliSiTef— TEF.libGEDIePPComp— hardware GPOS.
Assinatura e Publicação (Android)
- Debug:
assinatura/debug.keystore. - Release:
assinatura/Development_GertecDeveloper_CustomerAPP.keystore(ou seu). - Configuração em
Project > Options > Building > Android.
Cuidados: não versionar senhas/certificados privados.
Licença
- Este repositório não declara licença explícita. Considere adicionar
LICENSEconforme sua necessidade.
Como Contribuir
- Abrir issues com dúvidas ou melhorias.
- Pull requests com alterações pontuais e descrição clara.
Contato
- Suporte TEF: adquirente/Software Express.
- Suporte hardware: Gertec.
- Dúvidas de código: issues no repositório.
- E‑mail do desenvolvedor:
newton.oliveira@nghc.com.br.

