27
EASYTEF TEAM DOCUMENTAÇÃO EASYTEFDEDICADO VERSÃO DO DOCUMENTO – 1.3 2009

Documentaçao EasyTEFDedicado

Embed Size (px)

Citation preview

Page 1: Documentaçao EasyTEFDedicado

EASYTEF TEAM

DOCUMENTAÇÃO EASYTEFDEDICADO

VERSÃO DO DOCUMENTO – 1.3

2009

Page 2: Documentaçao EasyTEFDedicado

SUMÁRIO 1. INTRODUÇÃO .....................................................................................................1 2. PRIMEIROS PASSOS .........................................................................................2 3. INSTALANDO E TESTANDO INFRA-ESTRUTURA PARA TEF DEDICADO .....4 4. EASYTEFDEDICADO..........................................................................................5

4.1. Instalação da versão COM (VB, VB.NET, C# e etc.) ....................................5 4.2. Instalação da versão sem código fonte para Delphi e C++ Builder...............6 4.3. Instalação da versão com código fonte para Delphi e C++ Builder...............6 4.4. Propriedades.................................................................................................7

4.4.1. autoVerificarTEF ....................................................................................7 4.4.2. formMsgOperador..................................................................................8 4.4.3. imprimirComprovante.............................................................................8 4.4.4. imprimirEmUnicaVia ..............................................................................8 4.4.5. multiplosCartoes ....................................................................................9 4.4.6. numeroDeCartoes..................................................................................9 4.4.7. operacaoTEFAtual .................................................................................9 4.4.8. transacaoAprovada..............................................................................10 4.4.9. transacaoNegada.................................................................................10 4.4.10. valorCampoXXX-XXX ..........................................................................10 4.4.11. usouCartaoDebito ................................................................................10 4.4.12. usouCartaoCredito...............................................................................10

4.5. Métodos ......................................................................................................11 4.5.1. cancelarVenda .....................................................................................11 4.5.2. cancelarVenda .....................................................................................11 4.5.3. confirmacaoVendaImpressaoCupom...................................................12 4.5.4. consultarCheque..................................................................................12 4.5.5. fazerRequisicaoAdministrativa.............................................................13 4.5.6. gerenciadorInstalado ...........................................................................13 4.5.7. gerenciadorAtivo ..................................................................................14 4.5.8. imagemCupomTef ...............................................................................14 4.5.9. imprimirCupomECF .............................................................................14 4.5.10. imprimirCuponsECF.............................................................................14 4.5.11. naoConfirmacaoVendaImpressaoCupom ............................................14 4.5.12. pagarNoCartao ....................................................................................15 4.5.13. tratarConsultaCheque..........................................................................16 4.5.14. tratarCupomFiscal................................................................................16

4.6. Eventos .......................................................................................................17 4.6.1. OnAbrirComprovanteNaoFiscalVinculado ...........................................18 4.6.2. OnEfetuarFormaPagamento................................................................18 4.6.3. OnEfetuarFormaPagamentoDescricaoForma......................................18 4.6.4. OnEncerrarCupomFiscal .....................................................................18 4.6.5. OnFecharComprovanteNaoFiscalVinculado........................................19 4.6.6. OnFecharRelatorioGerencial ...............................................................19 4.6.7. OnGerarIdentificacao...........................................................................19 4.6.8. OnImpressoraTemPapel ......................................................................19 4.6.9. OnImprimirRelatorioGerencial..............................................................20 4.6.10. OnIniciarFechamentoCupomFiscal......................................................20 4.6.11. OnTerminarCancelamentoMultiplosCartoes ........................................20

Page 3: Documentaçao EasyTEFDedicado

4.6.12. OnTerminarFechamentoCupom ..........................................................21 4.6.13. OnUsarComprovanteNaoFiscalVinculado ...........................................21 4.6.14. OnSubTotalizarCupom ........................................................................21 4.6.15. OnValorPersonalizadoReq ..................................................................21

5. ÚLTIMOS PASSOS ...........................................................................................23 5.1. O processo de certificação..........................................................................23 5.2. Instalação em seu cliente............................................................................23

Page 4: Documentaçao EasyTEFDedicado

1

© 2009 – EasyTEF Team – Todos os direitos reservados.

1. INTRODUÇÃO

Parabéns, desenvolvedor de automação comercial, por adquirir o

componente EasyTEFDedicado, a maneira mais fácil, rápida e de baixo custo de

aprovar sua Aplicação Comercial (AC) no processo de certificação TEF dedicado.

Este documento não apenas explica os métodos, eventos e propriedades do

componente, mas também traz nossa base de conhecimento no processo de

certificação, o que aumenta ainda mais suas chances de certificar sua AC.

Uma AC que faz pagamentos via cartões de débito e crédito por TEF

dedicado reúne pelo menos três conhecimentos específicos: A AC em si, TEF

dedicado e Impressora Fiscal (ECF). O EasyTEFDedicado trabalha diretamente com

o conhecimento relacionado ao TEF dedicado e traz métodos e eventos que ajudam

na parte de ECF. Desta forma, o conhecimento sobre a AC e ECF não são cobertos

pelo componente, ficando a cargo do programador conhecer estas outras áreas.

Page 5: Documentaçao EasyTEFDedicado

2

© 2009 – EasyTEF Team – Todos os direitos reservados.

2. PRIMEIROS PASSOS

O componente EasyTEFDedicado trabalha com o produto SiTef, da Software

Express, empresa localizada na cidade de São Paulo - SP. O SiTef é um produto

proprietário da Software Express, por isso não estamos habilitados a distribuir cópias

de qualquer parte do SiTef, nem cliente, nem servidor. Para saber mais sobre o

SiTef, acesse:

http://www.softwareexpress.com.br/produtos/sitef.htm

O EasyTEFDedicado trabalha com o Cliente SiTef Modular versão 1.0.37.1,

e superiores, através da troca de arquivos texto, contendo os comandos

interpretados pelo SiTef.

Por se tratar de um produto proprietário, existem algumas regras que regem

o licenciamento e distribuição do SiTef. Para poder desenvolver softwares que façam

pagamentos via TEF dedicado com o SiTef, é preciso estabelecer contrato comercial

com a Software Express.

Neste contrato, o desenvolvedor / Software House irá desembolsar um valor,

estipulado pela Software Express, referente à licença de desenvolvimento e suporte

ao SiTef. Este valor deve ser consultado junto à empresa. Como o SiTef se integra

com várias redes de cartão e várias instituições de crédito e consulta de crédito,

muitas são as configurações necessárias quando se pretende desenvolver uma

funcionalidade específica.

O EasyTEFDedicado apenas retornará as mensagens devolvidas pelo SiTef

Client Modular, não alterando qualquer configuração do produto. Desta forma, todas

as dúvidas referentes ao SiTef devem ser sanadas junto ao suporte da Software

Express. As dúvidas serão várias, desde a configuração do Pinpad até a

configuração de módulos específicos do SiTef.

Todas estas dúvidas deverão ser esclarecidas junto ao suporte da Software

Express. Esta é a razão pelo valor cobrado ao fechar contrato com a Software

Express, que é também quem realiza o processo de homologação de sua AC, o que

exigirá deslocamento à capital de São Paulo.

Outro detalhe importante é que quando seus clientes utilizarem sua AC

certificada para TEF dedicado com SiTef, o contrato prevê uma mensalidade, que é

paga a Software Express, calculada de acordo com a quantidade de estações de

trabalho que seu cliente utilizar.

Page 6: Documentaçao EasyTEFDedicado

3

© 2009 – EasyTEF Team – Todos os direitos reservados.

Homologando sua AC para TEF dedicado com SiTef, o desenvolvedor /

Software House torna-se um integrador do produto, ou seja, quem dará suporte ao

SiTef não será a Software Express, mas o integrador.

A Software Express não tem contato com os clientes do integrador, o que faz

com que a mensalidade não seja cobrada deles, mas do integrador. A Software

Express recomenda que o integrador cobre um percentual a mais, sobre o valor que

ela pede em contrato, para cobrir os custos que o integrador tem para disponibilizar

suporte do SiTef a seus clientes.

O primeiro passo a ser tomado para começar a programar o TEF dedicado

em sua AC é fechar contrato comercial com a Software Express para ter acesso aos

instaladores do Cliente SiTef Modular, que é o software que deve rodar em cada

estação de desenvolvimento, e do SitDemo, que é a versão de desenvolvimento do

servidor SiTef.

É importante estudar a Especificação do ClientSitef para entender como o

EasyTEFDedicado interage com o Cliente SiTef Modular, via troca de arquivos texto,

e para entender o significado de algumas das propriedades do componente.

Page 7: Documentaçao EasyTEFDedicado

4

© 2009 – EasyTEF Team – Todos os direitos reservados.

3. INSTALANDO E TESTANDO INFRA-ESTRUTURA PARA TEF D EDICADO

Para desenvolver para TEF dedicado com SiTef com o EasyTEFDedicado, é

necessário instalar o SitDemo, que é a versão de desenvolvimento do servidor SiTef,

e o Cliente SiTef Modular.

O Client SiTef Modular não funcionará caso o SitDemo não esteja em

execução. É necessário que o SitDemo esteja configurado corretamente, inclusive

com a questão do Pinpad. As dúvidas sobre configuração das estações de

desenvolvimento e do Pinpad junto ao SitDemo, devem ser tiradas com o suporte da

Software Express.

O exemplo que acompanha o EasyTEFDedicado, a título de demonstração,

foi programado para funcionar com as ECFs (Emissor de Cupom Fiscal) Bematech

suportadas pela biblioteca BemaFI32.dll (Matricial MP20 FI II, Térmica MP 2100 TH

FI, ...), porém, possui métodos e eventos que podem ser programados para outras

ECFs. Bastaria substituir os comandos da Bematech pelos comandos da ECF

desejada, caso esta não possua particularidades peculiares a ela.

Durante a execução do Roteiro de Pré-Homologação Client SiTef, serão

gerados Cupons Fiscais. Estes devem ser enviados a Software Express para pré-

avaliação. Após a confirmação, por parte da certificadora, de que os cupons estão

corretos, deve-se agendar a data para a homologação da AC. Acesse o site da

Software Express para saber o endereço de envio dos cupons e o telefone para

eventuais contatos.

Page 8: Documentaçao EasyTEFDedicado

5

© 2009 – EasyTEF Team – Todos os direitos reservados.

4. EASYTEFDEDICADO

O EasyTEFDedicado funciona como uma interface entre a AC e Cliente

SiTef Modular. O componente troca mensagens com o SiTef via arquivos texto. O

Cliente SiTef Modular processa apenas uma requisição por vez, por isso, cada form

Delphi poderá ter somente um componente EasyTEFDedicado. Se for colocado um

segundo componente, será gerada uma exceção não permitindo que este seja

colocado sobre o form.

Junto com o componente, vem um exemplo completo de tela de frente de

caixa utilizando TEF dedicado e ECF Bematech, apenas como demonstração, para

ajudar na programação de sua AC com o EasyTEFDedicado. Como dito

anteriormente, basta trocar os comandos da Bematech pelos comandos da ECF

desejada, caso esta não possua particularidades muito peculiares.

Este exemplo pode ser usado como base para adaptar sua AC a outras

ECFs, já que a especificação de impressora fiscal é a mesma para todas elas. Como

o exemplo já traz os métodos e em qual parte da AC eles devem ser implementados,

vejamos uma explicação da instalação, propriedades, métodos e eventos do

componente.

Repare também que todas as ações do exemplo possuem teclas de atalho,

possibilitando o não uso do mouse. Este é outro requerimento que sua AC deve ter,

pois a Software Express exige isso dos sistemas. No dia da certificação, o

certificador não permite o uso do mouse para interagir com a AC.

4.1. Instalação da versão COM (VB, VB.NET, C# e etc .)

• Descompactar o arquivo EasyTEFCOM.zip em qualquer diretório;

• Executar o arquivo de lote registrar componente.bat;

• Adicionar a referência da type library do EasyTEF (EasyTEF.tlb) em seu

ambiente de programação:

o VB: Menu Project -> Add References -> EasyTEF Library;

o Visual Studio -> Menu Project -> Add References -> Aba COM ->

EasyTEF Library.

Page 9: Documentaçao EasyTEFDedicado

6

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.2. Instalação da versão sem código fonte para Del phi e C++ Builder

• Delphi 5, 6, 7 e C++ Builder 6

o Descompacte o arquivo EasyTEF.zip no diretório “Projects\bpl” do

Delphi ou C++ Builder;

• Delphi 2006

o Descompacte o arquivo EasyTEF.zip no diretório Meus

Documentos\Borland Studio Projects\Bpl

• Delphi 2007

o Descompacte o arquivo EasyTEF.zip no diretório Meus

Documentos\Borland Studio C:\Documents and Settings\All

Users\Documents\RAD Studio\5.0\Bpl

• Delphi 2009

o Descompacte o arquivo EasyTEF.zip no diretório Meus

Documentos\Borland Studio C:\Documents and Settings\All

Users\Documents\RAD Studio\6.0\Bpl

• No Delphi, feche todos os projetos (“Menu File”, opção “Close All”);

• Menu “Component”, opção “Install Packages”, pressione o botão “Add”;

• Escolha o arquivo “DEasyTEF.bpl” e pressione o botão “Abrir”, depois,

botão “Ok”;

• Para Delphi 5, 6, 7, adicionar, literalmente, o diretório

$(DELPHI)\Projects\Bpl no Labrary Path do Delphi (Menu “Tools”, opção

“Environment Options”, aba “Library”, campo “Library Path”);

• Para Delphi 2007 e 2009, é necessário adicionar o Path

$(BDSCOMMONDIR)\Bpl no Library Path do Delphi (Menu “Tools”, opção

“Options”, opção “Library – Win32”, campo “Library Path”, botão [...]).

4.3. Instalação da versão com código fonte para Del phi e C++ Builder

• Descompacte o arquivo EasyTEF.zip no diretório em que desejar;

• No Delphi, feche todos os projetos (“Menu File”, opção “Close All”);

• Menu “File”, opção “Open”, vá ao diretório onde o EasyTEF foi

descompactado;

Page 10: Documentaçao EasyTEFDedicado

7

© 2009 – EasyTEF Team – Todos os direitos reservados.

• Va ao diretório EasyTEF\package e escolha o diretório cujo nome

corresponde a versão de seu Delphi;

• Abra o arquivo REasyTEF.dpk;

• Na janela do package, pressione o botão “Compile”;

• Abra o arquivo DEasyTEF.dpk;

• Na janela do package, pressione o botão “Compile”, depois o botão

“Install”;

• Adicione o diretório common do EasyTEF no Library path do Delphi (menu

“Tools”, opção “Environment Options”, tab “Library” no Delphi 5, 6, 7 e C++

Builder 6, e menu “Tools”, opção “Options”, opção “Library – Win32”,

campo “Library Path” para Delphi 2006, 2007 e 2009).

4.4. Propriedades

Vejamos as propriedades visualizadas pelo Object Inspector e as

propriedades public que podem ser utilizadas via código. A convenção de escrita de

código que foi utilizada no nome dos métodos e propriedades é a mesma do Java.

Assim, o início dos mesmos é minúsculo e cada palavra dentro do nome inteiro inicia

com maiúscula.

4.4.1. autoVerificarTEF

Esta propriedade indica se o componente deve executar suas verificações

automáticas e executar seus métodos. Quando seu valor for False, não serão feitas

as verificações automáticas de transações pendentes e os métodos do componente

não serão executados, mesmo quando invocados.

Esta propriedade foi desenvolvida para sistemas que são executados em

vários clientes, mas nem todos utilizam TEF dedicado. Desta forma, para clientes

que não usam TEF dedicado, o valor desta propriedade deve ser atribuída para

False em tempo de design.

Assim, quando o cliente utilizar TEF dedicado, seu valor deve ser atribuído

para True em tempo de execução.

Page 11: Documentaçao EasyTEFDedicado

8

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.4.2. formMsgOperador

Os gerenciadores TEF retornam mensagens ao operador da AC. Estas

mensagens são mostradas em um form próprio do EasyTEF. Com esta propriedade,

você poderá configurar esse formulário para personalizá-lo de acordo com a

interface de sua AC.

• fonte: Definir a fonte que irá formatar o texto do form de mensagens ao

operador da AC. Dependendo da operação requisitada ao gerenciador,

ele pode devolver uma resposta ao operador do sistema. Esta

mensagem deverá ser formatada com alguma fonte. Esta fonte é a fonte

definida nesta propriedade;

• altura: Altura, em pixels, do form de mensagens ao operador;

• largura: Largura, em pixels, do form de mensagens ao operador;

botaoOK: Permite configurar altura e largura, em pixels, do botão OK.

4.4.3. imprimirComprovante

Se True, imprime o comprovante automaticamente, logo após a execução de

uma operação TEF que possua comprovante a ser impresso, caso a operação tenha

sido aprovada pela rede. Esta propriedade existe para dar mais controle da

impressão ao programador.

No exemplo que acompanha o componente, numa operação administrativa,

o valor desta propriedade está como True. Entretanto, para venda com cartão o

mesmo valor está como False, de forma que sejam feitos alguns controles antes da

impressão do cupom.

4.4.4. imprimirEmUnicaVia

A especificação do SiTef exige que haja uma opção para se imprimir apenas

a primeira via do cupom TEF. Atribuindo o valor True a esta propriedade, quando for

impresso o cupom TEF, será impresso somente a primeira via do cupom.

Page 12: Documentaçao EasyTEFDedicado

9

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.4.5. multiplosCartoes

Informa se a transação corrente está sendo feito com múltiplos cartões.

Após informar ao EasyTEF a quantidade de cartões que será utilizada, pela property

numeroDeCartoes, esta property informa se a transação corrente está sendo feita

com múltiplos cartões se o número de cartões utilizado na transação for maior que

um.

4.4.6. numeroDeCartoes

Serve para informar ao EasyTEF quantos serão os cartões utilizados na

transação. Para que todos os tratamentos relacionados a múltiplos cartões possam

ser feitos automaticamente, o componente precisa saber antecipadamente a

quantidade de cartões utilizada na transação. Isto pode ser feito no momento de

informar as formas de pagamento do cupom fiscal. O exemplo que acompanha o

EasyTEF faz exatamente este tratamento. Para maiores informações, ver o método

tratarPagamentoComCartao, da unit FrenteCaixaFrm.pas.

4.4.7. operacaoTEFAtual

Identifica qual operação TEF está sendo executada no momento.

Valores:

• ttNone: Nenhuma operação;

• ttSitefAtivo: Verificação se o Cliente SiTef Modular está ativo;

• ttAdministrativa: Operação administrativa;

• ttCheque: Consulta de cheque;

• ttCartao: Pagamento com cartão;

• ttCancelamento: Cancelamento de um pagamento via cartão;

• ttConfirmacao: Confirmação da rede de cartão de que o Cupom TEF foi

impresso com sucesso após a aprovação da transação;

• ttNaoConfirmacao: Não confirmação a rede de cartão de que a Cupom

TEF foi impresso com sucesso após a aprovação da transação.

Page 13: Documentaçao EasyTEFDedicado

10

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.4.8. transacaoAprovada

Indica, após o processamento da transação, se a transação foi aprovada, ou

não, pela rede.

Retorno : True, caso a transação tenha sido aprovada.

4.4.9. transacaoNegada

Informa se a transação atual foi negada. Durante o pagamento com cartão, a

transação pode ser aprovada pela rede de cartão, ou pode ser negada. Quando for

feita uma transação com mais de um cartão, se uma das transações for negada, a

AC deve oferecer ao usuário a opção de fechar o cupom com outra forma de

pagamento ou cancelar a transação toda.

Tratamentos para saber quais foram as transações aprovadas, para o caso

de fechamento do cupom com outras formas de pagamento, devem ser feitos pela

AC pois o valor total de cada forma de pagamento deve ser informado ao cupom

fiscal.

Retorno : True, caso a transação tenha sido negada

4.4.10. valorCampoXXX-XXX

Estes campos são exatamente os mesmos citados na Especificação do

ClientSiTef. Se não fossem tantos, seriam colocados neste documento, porém, pelo

volume de campos, sugerimos que seja lida a Especificação do ClientSiTefb.

4.4.11. usouCartaoDebito

Indica se, após uma venda com cartão, foi utilizado cartão de débito.

Retorno : True caso o cartão utilizado tenha sido um cartão de débito.

4.4.12. usouCartaoCredito

Indica se, após uma venda com cartão, foi utilizado cartão de crédito.

Retorno : True caso o cartão utilizado tenha sido um cartão de crédito.

Page 14: Documentaçao EasyTEFDedicado

11

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.5. Métodos

Vejamos os métodos disponibilizados pelo componente para realizar as

transações via cartão ou consulta de cheque, além de recursos adicionais.

É importante ler a Especificação do ClientSiTef, pois alguns parâmetros dos

métodos são campos devolvidos pelo Cliente SiTef Moular logo após uma operação

TEF. O EasyTEFDedicado mapeia esses campos via property valorCampoXXX-

XXX, que é o mesmo campo indicado.

Exemplo: O parâmetro nomeRede (AMEX, REDECARD, VISANET) é

devolvido pelo Cliente SiTef Modular no campo 010-000, que é mapeado no

EasyTEFDedicado pela property valorCampo010_000.

4.5.1. cancelarVenda

Método que executa o cancelamento de uma venda com cartão. Existem

dois tipos de cancelamento: via este método ou via operação administrativa. A

implementação deste método não é obrigatória, mas o componente já está pronto

caso deseje fazer o cancelamento personalizado.

Parâmetros:

• valorTotal: Valor total da venda feita com cartão;

• nomeRede: Nome da rede utilizada (AMEX, REDECARD, VISANET);

• numeroTransacaoNsu: Número da transação fornecido pela rede do

cartão;

• dataTransacao: Data em que ocorreu a transação;

• horaTransacao: Hora em que ocorreu a transação.

4.5.2. cancelarVenda

Esta é uma versão sobrecarregada do método anterior, porém, sem

parâmetros. Este método serve para fazer o cancelamento automático das últimas

transações feitas com cartão na seguinte situação: Digamos que uma compra será

paga com 2 cartões. O primeiro cartão foi aprovado, mas na hora do passar o

segundo cartão, o cliente desiste da compra, então o operador da AC cancela o

segundo pagamento com cartão. A transação anterior foi aprovada e precisa ser

Page 15: Documentaçao EasyTEFDedicado

12

© 2009 – EasyTEF Team – Todos os direitos reservados.

cancelada. Basta chamar o método cancelarVenda, que não pede parâmetros, que o

cancelamento da(s) transação(oes) anterior(es) será feito automaticamente.

4.5.3. confirmacaoVendaImpressaoCupom

Confirmar à rede que o cupom fiscal foi impresso com sucesso. Depois de

aprovada a transação via cartão, a rede do mesmo precisa ser notificada de que o

cupom fiscal foi impresso com sucesso.

Parâmetros:

• nomeRede: Nome da rede utilizada (AMEX, REDECARD, VISANET, ...);

• numeroTransacaoNsu: Número da transação fornecido pela rede do

cartão;

• finalizacao: Dados recebidos pelo módulo TEF. Este número é recebido

após uma operação TEF;

• documentoFiscalVinculado: Número do cupom fiscal vinculado ao

pagamento via cartão.

4.5.4. consultarCheque

Fazer uma consulta ou garantia de cheque via Serasa. Por enquanto, este

método foi implementado apenas pela rede REDECARD. Inclusive, a implementação

deste método é obrigatório para a certificação. O exemplo implementa este método

da seguinte maneira:

Quando a venda é encerrada, se a forma de pagamento for “Cheque”, é

habilitado um botão para a consulta do cheque. Se a consulta for feita e o cheque foi

aprovado, imediatamente o cupom fiscal é encerrado e o cupom TEF da consulta é

impresso. Esta é a maneira que as certificadoras exigem que seja feito.

Parâmetros:

• valorTotal: Valor do cheque;

• documentoFiscalVinculado: Valor do documento fiscal vinculado a venda;

• cmc7: Dados do cheque obtidos no mesmo formato de uma leitura cmc7;

• tipoPessoa: Tipo da pessoa do Cheque (F para física e J para jurídica);

Page 16: Documentaçao EasyTEFDedicado

13

© 2009 – EasyTEF Team – Todos os direitos reservados.

• documentoPessoa: No. do CPF para pessoa física ou no. do CNPJ para

pessoa jurídica;

• dataCheque: Data do cheque;

• banco: Código do banco;

• agencia: Agência do banco;

• digitoControleAgencia: Dígito verificador do no. da agência, caso exista;

• contaCorrente: No. da conta corrente;

• digitoControleContaCorrente: Dígito verificador do no. da agência, caso

exista;

• numeroCheque: Número do cheque;

• digitoControleNumeroCheque: Digito verificador do cheque, caso exista.

Exemplo : EasyTEF.imprimirComprovante := False;

EasyTEF.identificacao := funcaoGeradoraDeSequencias ;

EasyTEF.consultarCheque(StrToFloat(edtValor.Text), '', '',

'F', edtRegistro.Text, dtpBomPara.Date, edtBanco .Text,

edtAgencia.Text, '', edtContaCorrente.Text, '', edtCheque.Text, '');

4.5.5. fazerRequisicaoAdministrativa

Requisitar ao SiTef que seja feita uma operação administrativa junto aos

módulos de cada rede. Para se configurar os módulos, por exemplo, este método

deve ser executado, assim como para configurar PinPad, transmitir informações de

lote, visualizar relatórios de venda e etc.

Exemplo : EasyTEF.imprimirComprovante := True;

EasyTEF.identificacao := funcaoGeradoraDeSequencias ;

EasyTEF.fazerRequisicaoAdministrativa;

4.5.6. gerenciadorInstalado

Verifica se o Cliente SiTef Modular está instalado.

Retorno : True, caso o SiTef esteja instalado.

Page 17: Documentaçao EasyTEFDedicado

14

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.5.7. gerenciadorAtivo

Verifica se o Cliente SiTef Modular está ativo.

Retorno : True, caso o SiTef esteja ativo.

4.5.8. imagemCupomTef

Retorna a imagem do cupom TEF logo após uma operação TEF. É este o

cupom propriamente dito que é retornado pela rede e que deve ser impresso logo

após a aprovação da venda pela rede. O cupom não pode, em hipótese alguma, ser

salvo em arquivo! Caso isso aconteça, penalidades legais podem ser aplicadas.

Para mais informações, entrar em contato com as certificadoras.

Retorno : Um objeto do tipo TStrings contendo a imagem do cupom TEF.

4.5.9. imprimirCupomECF

Imprimir a imagem do cupom TEF. A impressão do cupom TEF deve ser

feita em duas vias com intervalo de pelo menos 5 segundos entre a impressão de

uma via e outra. Este método já cuida dessa regra automaticamente.

Parâmetros: imagemCupomTEF: TStrings.

4.5.10. imprimirCuponsECF

Imprimir os cupons fiscais de transações encerradas com múltiplos cartões.

Este método deve ser chamado após o pagamento com múltiplos cartões, caso o

valor da property imprimirComprovante seja False.

O exemplo que acompanha o EasyTEF verifica se foi feito uma transação

com múltplos cartões e, caso tenha sido feito, executa este método.

4.5.11. naoConfirmacaoVendaImpressaoCupom

Informar à rede que o cupom fiscal não foi impresso com sucesso, o que

cancelará a transação. Depois de aprovada a transação via cartão, a rede do mesmo

precisa ser notificada de que o cupom fiscal foi impresso com sucesso.

Page 18: Documentaçao EasyTEFDedicado

15

© 2009 – EasyTEF Team – Todos os direitos reservados.

Parâmetros:

• nomeRede: Nome da rede utilizada (AMEX, REDECARD, VISANET, ...);

• numeroTransacaoNsu: Número da transação fornecido pela rede do

cartão;

• finalizacao: Dados recebidos pelo módulo TEF. Este número é recebido

após uma operação TEF;

• documentoFiscalVinculado: Número do cupom fiscal vinculado ao

pagamento via cartão.

4.5.12. pagarNoCartao

Fazer o pagamento da compra via cartão de débito ou crédito.

Parâmetros:

• valorTotal: Valor total da compra;

• moeda: Moeda que será utilizada para a compra (0 para real e 1 para

dólar);

• documentoFiscalVinculado: Número do cupom fiscal vinculado a compra.

• primeiroCartao: Informa ao componente se o cartão corrente é o primeiro

cartão de múltiplos cartões;

• ultimoCartao: Informa ao componente se o cartão corrente é o último

cartão de múltiplos cartões;

Exemplo: EasyTEF.imprimirComprovante := False;

EasyTEF.identificacao := funcaoGeradoraDeSequencias ;

EasyTEF.numeroDeCartoes := 1;

EasyTEF.pagarNoCartao(valorTotalCartao, 0, numeroCu pom, True, True);

A combinação dos parâmetros de múltiplos cartões obedece a seguinte

tabela verdade:

primeiroCartao ultimoCartao Informação passada ao EasyTEF

False False Cartão(ões) intermediario(s) da transação

False True Último cartão da transação

True False Primeiro cartão da transação

True True Pagamento com apenas um cartão

Page 19: Documentaçao EasyTEFDedicado

16

© 2009 – EasyTEF Team – Todos os direitos reservados.

O exemplo que acompanha o EasyTEF faz um tratamento de múltiplos

cartões que informa corretamente o valor destes parâmetros durante o pagamento

com múltiplos cartões no método tratarPagamentoComCartao, da unit

FrenteCaixaFrm.pas.

Informando estes parâmetros, podem ser feitos os tratamentos automáticos

para impressão dos cupons TEF e tratamento de exceção durante a impressão dos

mesmos durante o pagamento com múltiplos cartões.

4.5.13. tratarConsultaCheque

Método que deve ser utilizado após uma consulta de cheque aprovada.

Parâmetros :

• imagemCupomTEF: Imagem do cupom TEF da consulta aprovada;

• nomeRede: Nome da rede utilizada para fazer a consulta;

• numeroTransacaoNsu: Número da transação fornecido pela rede do

cartão;

• finalizacao: Dados recebidos pelo módulo TEF. Este número é recebido

após uma operação TEF;

• documentoFiscalVinculado: Número do cupom fiscal vinculado ao

pagamento via cartão.

4.5.14. tratarCupomFiscal

Fazer o tratamento dos métodos relacionados ao cupom fiscal. Durante a

certificação, vários testes de desligamento da ECF serão realizados em momentos

diferentes da impressão do cupom fiscal. Este método implementa o tratamento

correto para esses momentos. O exemplo que acompanha o componente utiliza este

método constantemente.

Parâmetros :

• método: Qual o método do cupom fiscal que deverá ser tratado. Todos os

valores possuem eventos associados que devem ser programados para

a execução do método propriamente dito da ECF;

Page 20: Documentaçao EasyTEFDedicado

17

© 2009 – EasyTEF Team – Todos os direitos reservados.

Valores :

o tmeSubTotal: Indica que o método deve tratar a totalização do cupom

fiscal;

o tmeIniciarFechamentoCupom: Indica que o método deve tratar o inicio

do fechamento do cupom fiscal;

o tmeEfetuarFormaPgto: Indica que o método deve tratar a efetuação

da(s) forma(s) de pagamento do cupom fiscal;

o tmeEfetuarFormaPgtoDescForma: Indica que o método deve tratar a

efetuação da(s) forma(s) de pagamento do cupom fiscal com

descrição;

o tmeTerminarFechamentoCupom: Indica que o método deve tratar o

término do fechamento do cupom fiscal.

• params: Parâmetros que o método específico do cupom fiscal irá

precisar.

Retorno : Se o método propriamente dito do cupom fiscal tiver algum retorno,

será esse o valor de resultado.

4.6. Eventos

Os eventos do componente são basicamente mapeamentos para funções

específicas das impressoras fiscais. Para tanto, o EasyTEFDedicado faz justamente

o tratamento de impressão do cupom fiscal e do cupom TEF devido a necessidade

de confirmação das redes de que o cupom fiscal, e o cupom não fiscal vinculado,

tenham sido impressos com sucesso.

Depois de uma transação ter sido aprovada pela rede de cartão, deve ser

impresso o cupom TEF, que nas impressoras fiscais é impresso como cupom não

fiscal vinculado. Caso este cupom tenha sido impresso com sucesso, a rede de

cartão receberá a confirmação definitiva da transação. Caso este cupom não seja

impresso por qualquer razão (falta de energia, reiniciar o computador, ...) a

transação será cancelada.

O componente fornece recursos para todos estes tratamentos e são

implementados no exemplo que acompanha o EasyTEF.

Page 21: Documentaçao EasyTEFDedicado

18

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.6.1. OnAbrirComprovanteNaoFiscalVinculado

Evento que deve executar o comando de abertura do comprovante não fiscal

vinculado da ECF.

Parâmetros :

• operacaoECFOk: Deve indicar se o comando foi executado com sucesso.

• valorCupom: Numa transação com múltiplos cartões, informa qual o valor

do cupom TEF corrente, caso contrário, informa 0,00.

4.6.2. OnEfetuarFormaPagamento

Evento que deve executar o comando para efetuar a(s) forma(s) de

pagamento do cupom fiscal.

Parâmetros :

• operacaoECFOk: Deve indicar se o comando foi executado com sucesso;

• params: Parâmetros que o método da ECF irá precisar (params[0],

params[1], ..., params[n]);

• retorno: Retorno que o método da ECF tiver.

4.6.3. OnEfetuarFormaPagamentoDescricaoForma

Evento que deve executar o comando para efetuar a(s) forma(s) de

pagamento do cupom fiscal com uma descrição.

Parâmetros :

• operacaoECFOk: Deve indicar se o comando foi executado com sucesso;

• params: Parâmetros que o método da ECF irá precisar (params[0],

params[1], ..., params[n]);

• retorno: Retorno que o método da ECF tiver.

4.6.4. OnEncerrarCupomFiscal

Evento disparado quando o cupom fiscal precisa ser cancelado e fechado o

comprovante não fiscal vinculado. Quando ocorre algum problema na impressão do

cupom, o componente pergunta ao operador se ele deseja tentar novamente a

Page 22: Documentaçao EasyTEFDedicado

19

© 2009 – EasyTEF Team – Todos os direitos reservados.

operação na ECF. Caso ele escolha não, este evento é disparado. Então, tanto o

cupom não fiscal vinculado quanto o cupom fiscal devem ser fechados.

Exemplo:

Bematech_FI_FechaComprovanteNaoFiscalVinculado;

Bematech_FI_CancelaCupom;

4.6.5. OnFecharComprovanteNaoFiscalVinculado

Evento que deve executar o comando para fechar o comprovante não fiscal

vinculado da ECF.

4.6.6. OnFecharRelatorioGerencial

Evento que deve executar o comando fechar o relatório gerencial da ECF.

Em operações administrativas ou por falta de energia na ECF, o componente irá

abrir um relatório gerencial na ECF. Quando o cupom TEF termina de ser impresso

no relatório gerencial, este método é executado para fechar o mesmo.

4.6.7. OnGerarIdentificacao

Este evento é chamado para a geração da chave identificadora única, que

pode ser um número seqüencial, da operação TEF que será executada. Os números

gerados neste evento nunca devem se repetir.

Parâmetros:

• identificacao: Deve ser atribuído um número inteiro a este parâmetro e

este valor nunca deve ser repetido.

4.6.8. OnImpressoraTemPapel

Evento que deve executar o tratamento de falta de papel na ECF.

Parâmetros :

• operacaoECFOk: Deve indicar se a impressora TEM PAPEL.

Page 23: Documentaçao EasyTEFDedicado

20

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.6.9. OnImprimirRelatorioGerencial

Evento que deve executar o comando de impressão do relatório gerencial.

Um detalhe importante sobre este evento é que ele é disparado para impressão do

cupom TEF em bloco, ou seja, de três em três linhas, pois não é possível enviar todo

o cupom TEF de uma só vez para a impressão.

Parâmetros :

• imagemCupomTef: Blocos de três linhas da imagem do cupom TEF;

• impressaoOk: Deve indicar se o bloco foi impresso com sucesso.

O método que imprime em bloco pode ser sobre escrito em componentes

descendentes. Eis o protótipo do método, que tem manipulador de acesso protected:

procedure imprimirEmBloco(imagemCupomTef: TStrings;

var impressaoTEFOk: Boolean; relatorioGerencial: Boole an = False);

virtual;

4.6.10. OnIniciarFechamentoCupomFiscal

Evento que deve executar o comando de inicio de fechamento de cupom

fiscal.

Parâmetros :

• operacaoECFOk: Deve indicar se o comando foi executado com sucesso.

4.6.11. OnTerminarCancelamentoMultiplosCartoes

Durante uma transação com múltiplos cartões, um dos cartões pode ser

negado pela rede de cartão por alguma razão. Neste momento, o usuário deve ter a

opção de terminar o fechamento do cupom com outra(s) forma(s) de pagamento ou

cancelar o cupom. Caso ele queira cancelar o cupom, a tela da AC deve ser limpa

para uma nova transação.

O tratamento de limpeza da tela de frente de caixa da AC, após o

cancelamento de uma transação feita com múltiplos cartões, deve ser feito neste

evento.

Page 24: Documentaçao EasyTEFDedicado

21

© 2009 – EasyTEF Team – Todos os direitos reservados.

4.6.12. OnTerminarFechamentoCupom

Evento que deve executar o comando de termino de fechamento do cupom

fiscal.

Parâmetros :

operacaoECFOk: Deve indicar se o comando foi executado com sucesso.

4.6.13. OnUsarComprovanteNaoFiscalVinculado

Método que deve executar o comando de uso do comprovante não fiscal

vinculado da ECF. Um detalhe importante sobre este evento é que ele é disparado

para impressão do cupom TEF em bloco, ou seja, de três em três linhas, pois não é

possível enviar todo o cupom TEF de uma só vez para a impressão.

Parâmetros :

• imagemCupomTef: Blocos de três linhas da imagem do cupom TEF;

• impressaoOk: Deve indicar se o bloco foi impresso com sucesso.

O método que imprime em bloco pode ser sobre escrito em componentes

descendentes. Eis o protótipo do método, que tem manipulador de acesso protected:

procedure imprimirEmBloco(imagemCupomTef: TStrings;

var impressaoTEFOk: Boolean; relatorioGerencial: Boole an = False);

virtual;

4.6.14. OnSubTotalizarCupom

Método que deve executar o comando de totalização do valor do cupom da

ECF.

Parâmetros :

operacaoECFOk: Deve indicar se o comando foi executado com sucesso.

4.6.15. OnValorPersonalizadoReq

Durante o processo de certificação, será avaliado se sua AC utiliza alguma

biblioteca externa para comunicação com o SiTef. Para mostrar que é a sua AC,

Page 25: Documentaçao EasyTEFDedicado

22

© 2009 – EasyTEF Team – Todos os direitos reservados.

mesmo, que cria os arquivos de mensagens com o SiTef, o certificador irá solicitar

que durante a certificação seja adicionado um novo campo com um novo valor no

arquivo de mensagens, que não será tratado pelo SiTef, mas que mostrará que

apenas a sua AC faz a troca de mensagens com o SiTef sem intervenção de

bibliotecas terceiras.

Parâmetros :

• campo: Nome do campo que será adicionado ao arquivo de mensagem;

• valor: Valor do campo que será adicionado ao arquivo de mensagem.

Page 26: Documentaçao EasyTEFDedicado

23

© 2009 – EasyTEF Team – Todos os direitos reservados.

5. ÚLTIMOS PASSOS

5.1. O processo de certificação

Depois de implementado o EasyTEFDedicado em sua AC, o Roteiro de Pré-

Homologação Client SiTef deve ser executado.

Ele possui passos numerados. Cada passo pode gerar ou não um cupom

fiscal com um cupom não fiscal vinculado. Cada cupom deve ser numerado com o

número do teste equivalente a este cupom e todos devem ser enviados à Software

Express para ela avaliar se sua AC pode passar pela certificação.

Quando eles aprovarem o roteiro de teste, será agendada a certificação.

Isso acarretará em deslocamento a São Paulo - SP. A certificadora enviará por email

endereços de hotéis próximos, lanchonetes e mapas de como se guiar até lá.

Será necessário levar preenchido o roteiro de pré-homologação com os

dados da empresa e do software, além das fichas de solicitação de homologação.

Para mais detalhes sobre estes documentos, será necessário entrar em contato com

a Software Express.

Será necessário levar uma gravadora de CD para gravar sua AC, pois a

certificadora fica com uma cópia dela.

Durante a homologação, o certificador fará um teste excluindo alguns

arquivos do gerenciador e irá perguntar se a AC faz backup desses arquivos pra

depois poder excluir este backup. O EasyTEFDedicado gera um backup com o

mesmo nome do executável da AC, mas com extensão .ini, na pasta onde está o

executável.

5.2. Instalação em seu cliente

Depois que sua AC for certificada, você torna-se um integrador do SiTef,

desta forma, o responsável pela manutenção e configuração do Cliente SiTef

Modular e do servidor SiTef, em seu(s) cliente(s) é o desenvolvedor / Software

House.

O contrato estabelecido entre a Software Express e o desenvolvedor /

Software House, agora integrador, prevê uma mensalidade pelo uso do SiTef. O

valor desta mensalidade varia de acordo com o número de estações de trabalho que

o(s) cliente(s) do integrador utilizará.

Page 27: Documentaçao EasyTEFDedicado

24

© 2009 – EasyTEF Team – Todos os direitos reservados.

A Software Express recomenda que o integrador deve cobrar seja maio que

o que ela cobra, para que o integrador possa cobrir os custos para oferecer suporte

ao SiTef.

Seus(s) cliente(s) deverá(ao) adquirir um roteador e linha dedicada,

chamada de X25, para utilizar o TEF dedicado. A linha X25 pode ser contratada

junto as operadoras de telefonia e possuem um valor mensal a ser pago a

operadora. Dúvidas relacionadas a infra-estrutura de rede que seu cliente utilizará

devem ser sanadas junto a Software Express.

Como podemos perceber, seu cliente deve possuir uma demanda muito forte

por pagamento com cartão, pois são vários os custos por fazer pagamentos com

cartão via TEF dedicado.

Outro detalhe importante é que a certificação de sua AC é valida por um

ano, ou seja, uma vez por ano será necessário ir a São Paulo para re-certificar seu

software. Por esta mesma razão, o valor pago pelo EasyTEF pode ser anual, ou não.

A anuidade serve para o recebimento de atualizações e correções do

componente durante um ano, a partir da data da compra. Porém, ela não é

obrigatória. Caso não deseje receber atualizações e correções, basta pagar apenas

uma vez.

Exemplo: Adquirindo o componente dia 23/09/2008, havendo alterações na

especificação TEF, por parte das redes de cartão, ou se for descoberto algum bug,

até 23/09/2009, a atualização será recebida gratuitamente.

Caso haja alterações depois do dia 23/09/2009 e a anuidade seguinte não

for paga, não há problema no uso do componente, porém, as possíveis atualizações

não serão recebidas. Então, caso queira pagar apenas uma vez, não há problemas

com a licença.

Por fim, esperamos que o EasyTEFDedicado tenha cumprido sua proposta

de facilitar e agilizar, com baixo custo, a certificação de sua AC no processo de

certificação TEF dedicado. Qualquer dúvida, crítica ou sugestão, entre em contato

conosco pelo nosso site http://www.easytef.com.br.

Obrigado.

EasyTEF Team