@Gr@c@ Vc pode utilizar o ACBrTEFD, e manipular os eventos, conforme o Demo\Exemplos\ACBrTEFD
Segue uma dica que uso(lembrando que não uso só o ACbrTEFD. também uso ACBrECF, mais vc consegue fazer sem o ACBrECF)
Rotina para chamar uma venda a cartão: 1º Carrego o componente com o tipo de cartão
ACBrTEFD.Inicializar(TipoPagamento.TipoGP);
tipoGp validos (gpNenhum, gpTefDial, gpTefDisc, gpHiperTef, gpCliSiTef, gpTefGpu, gpVeSPague, gpBanese, gpTefAuttar, gpGoodCard, gpFoxWin, gpCliDTEF, gpPetrocard, gpCrediShop, gpTicketCar, gpConvCard
Aconselho ligar na homologadora e solicitar o Sistema de cartão Demo 2º Chamar a venda de cartão
StatusTransacao := ACBrTEFD.CRT(ValorInformado, TipoPagamento.Codigo, numeroDocumento); 3º Tratar os eventos "ACBrTEFD" (não consigo explanar melhor isso, mais peço que olhe o demo Demo ACBrTEFD
-ACBrTEFDComandaECF
-ACBrTEFDComandaECFAbreVinculado
-ACBrTEFD1ComandaECFImprimeVia
-ACBrTEFD1ComandaECFPagamento
-ACBrTEFD1ComandaECFSubtotaliza
-ACBrTEFD1AguardaResp
4º Gravar os dados no seu banco de dados
Gravar essas informações para posteriormente cancelar ou reimprimir uma venda tef Obs: Cancelamento e Reimpressão
Para efetuar uma dessas opções você deve chamar o administrativo do cartão o famoso "ADM".
-ACBrTEFD.ADM(TACBrTEFDTipo(2))
Dúvidas e só falar.