Confirmação ou não do Pagamento

Rotina chamada pelo aplicativo para fechar o ciclo transacional. Ela deve ser acionada no momento que o comprovante Fiscal for fechado e recebe como parâmetros um indicador de se a transação foi concretizada ou se deve ser estornada. Recebe também os campos que permitem identificar a transação que está sendo finalizada.

Esta função também deve ser utilizada para desfazer uma transação interrompida por uma queda de energia ou qualquer outro problema no aplicativo.

Essa rotina confirma ou cancela TODOS os pagamentos vinculados ao mesmo Número do Cupom Fiscal e mesma Data Fiscal passados como parâmetro.

void FinalizaFuncaoSiTefInterativo (Confirma, CupomFiscal, DataFiscal,
HoraFiscal, ParamAdic);

Interface ASCII#

void FinalizaFuncaoSiTefInterativoA (Confirma, CupomFiscal, DataFiscal,
HoraFiscal, ParamAdic);
ParâmetroTipoInterface padrãoInterface ASCIIDescrição
ResultadoSaída, por valorNão usadoFixo 6Contém o resultado de resposta à chamada da rotina.
ConfirmaEntrada, por valorshortFixo 1Indica se a transação deve ser confirmada (1) ou estornada (0)
CupomFiscalEntrada, por valorchar *Máx. 20Número do Cupom Fiscal correspondente à venda
DataFiscalEntrada, por valorchar *Fixo 8Data Fiscal no formato AAAAMMDD
HoraFiscalEntrada, por valorchar *Fixo 6Horário Fiscal no formato HHMMSS 6*

Exemplo: Uma venda realizada pela função IniciaFuncaoSiTefInterativo, passando como parâmetros Funcao 0, Valor 10,00, Cupom Fiscal 12345, Data Fiscal 20150101, Hora Fiscal 121500. Na confirmação da transação, a função FinalizaFuncaoSiTefInterativo deve ser chamada utilizando os seguintes parâmetros: Confirma 1*, Cupom Fiscal 12345, Data Fiscal 20150101, Hora Fiscal 121500**, ParamAdic como vazio/NULL, já que não há dados adicionais.

O parâmetro ParamAdic pode ser usado nas situações abaixo:


6 O parâmetroHoraFiscal nãoé usado como“chave” para um documento fiscal.


4.1 Finalização de pagamentos individuais em um mesmo cupom fiscal#

Para cada pagamento, a CliSiTef retorna no TipoCampo 161 (Número do pagamento no cupom) um índice/contador correspondente ao pagamento.

Para fazer a (não-) confirmação de um pagamento específico dentro de um cupom fiscal, a automação deve informar este valor à rotina FinalizaFuncaoSiTefInterativo como um parâmetro adicional:

{NumeroPagamentoCupom=XXX}

onde XXX é o número do pagamento, retornado anteriormente no TipoCampo 161.

4.2 Finalização de pagamentos de uma determinada rede em um mesmo cupom fiscal#

Para fazer a (não) confirmação de pagamentos referentes a uma determinada rede autorizadora, deve-se passar na rotina FinalizaFuncaoSiTefInterativo o seguinte parâmetro adicional:

{RedeConfirmacao=XXX}

onde XXX é o número da rede autorizadora.

4.3 Anexar dados referentes às formas de pagamento de uma transação (NFPAG)#

Para anexar dados referentes às formas de pagamento de uma transação, devem-se capturar os campos: 161 (Número do pagamento no cupom), 730 (Número máximo de formas de pagamento), 731 (Tipos de pagamento habilitados) e 732 (Dados a serem coletados para o tipo de pagamento), retornados no fluxo da transação, e repassá-lo à rotina FinalizaFuncaoSiTefInterativo através dos parâmetros adicionais NumeroPagamentoNFPAG e NFPAG.

{NumeroPagamentoNFPAG=X}{NFPAG=Y}

Onde:

X = Número do pagamento no cupom (Campo 161)

Y = Dados referentes às formas de pagamento (Ver descrição abaixo)

Observação: Neste caso, todos os pagamentos em um mesmo cupom fiscal serão todos confirmados ou não confirmados.

Descrição do parâmetro NFPAG:

{NFPAG=FPAG1;FPAG2; FPAG3;...;FPAGn;}

Onde FPAGn tem o seguinte conteúdo:

Se houver dados a serem coletados
TipoN:ValorN:IDColetaN1:DadoColetaN1-IDColetaN2:DadoColetaN2-...-IDColetaNn:DadoColetaNn
Se não houver dados a serem coletados
TipoN:ValorN

=> TipoN: indica a forma de pagamento utilizada (Campo 731, conforme tabela abaixo)

=> ValorN: indica o valor utilizado com esta forma de pagamento, com duas casas decimais, sem a vírgula

=> IDColetaNn: indica o ID do campo que foi coletado pelo PDV (Campo 732, conforme tabela abaixo)

=> DadoColetaNn: indica o conteúdo coletado pelo PDV para este campo Observação: A consistência dos valores (soma das várias formas de pagamento utilizadas, totalizando o valor da transação realizada) deve ser feita pelo PDV.

Exemplo:

Ao final de uma transação no valor de R$ 50,00, retornando o campo 730 igual a 2 e os campos 731 e 732 indicando que aceita as seguintes formas de pagamento: Dinheiro (sem dados a serem coletados); TEF Débito (precisa enviar a Rede Destino, o NSU do Host, a Data do Host e o Código de Origem da transação de TEF) e TEF Crédito. O campo 730 igual a 2, indica que no parâmetro NFPAG podem ser enviados no máximo 2 formas de pagamento.

O PDV, por sua vez, na confirmação da transação, enviará as formas de pag amento que foram efetivamente utilizadas: R$ 30,00 foram pagos em dinheiro e R$ 20,00 foram pagos com cartão de débito da Redecard (Rede Destino = 5; NSU do Host = 123456789; Data do Host = 15/12/2008; Código de Origem = 000000000000001).

{NFPAG=00:3000;02:2000:03:5-07:123456789-08:15122008-09:000000000000001;}

Observação: Todas as formas de pagamento devem ser separadas por ; (ponto-e-vírgula), inclusive o último deve ser finalizado por ;

730Número máximo de formas de pagamento a ser enviado através do parâmetro NFPAG. 0 para sem limite.
731Tipo de Pagamento Habilitado, repete “n” vezes, onde “n” é o número de formas de pagamento habilitadas:

- 00: Dinheiro
- 01: Cheque
- 02: TEF Débito
- 03: TEF Crédito
- 04: Cartão Presente (Pré-Pago) Carrefour
- 05: Cartão Bônus Carrefour
- 06: Cartão Carrefour
- 07: Saque para pagamento
- 08: Saque
- 09: DCC Carrefour
- 10: Ticket Eletrônico
- 11: Ticket Papel
- 12: Carteira Digital
- 13: Pix
- 50: TEF Cartão
- 77: Campo Reservado
- 98: Sem Pagamento
- 99: Outras Formas
732Dados a serem enviados para o Tipo de Pagamento (Campo 731) retornado anteriormente, repete “n” vezes, onde “n” é o número de dados a serem enviados para o respectivo Tipo de Pagamento:


- 00: Campo Reservado
- 01: Tipo de Entrada do Cheque
. ‘0’: leitura de CMC-7
. ‘1’: digitação da primeira linha do cheque
. ‘2’: digitação do CMC-7
- 02: Dados do Cheque
. CMC-7 lido ou digitado, ou
. Digitação da primeira linha do cheque, com o seguinte formato: Compensação (3), Banco (3), Agência (4), C1 (1), Conta Corrente (10), C2 (1), Número do Cheque (6) e C3 (1), nesta ordem.
- 03: Rede Destino (Campo 131)
. Identificação do autorizador da transação de TEF.
- 04: NSU do SiTef da transação de TEF (Campo 133)
. Identificação da transação de TEF no SiTef.
- 05: Data do SiTef da transação de TEF
. Não utilizado (Uso futuro).
- 06: Código da Empresa da transação de TEF Código do SiTef para a Empresa utilizada na transação de TEF.
- 07: NSU do Host da transação de TEF (Campo 134) Identificação da transação de TEF no Host.
- 08: Data do Host da transação de TEF (Campo 105) Data da transação de TEF no Host, no formato DDMMAAAA.
- 09: Código de Origem da transação de TEF (Campo 157) Código de Estabelecimento da transação de TEF.
- 10: Serviço Z da transação de TEF (Campo 1) Valor do serviço Z devolvido pelo módulo Sit responsável pela transação de TEF.
* Passar apenas o dados de confirmação, retirando os dados do índice do SiTef e endereço do SiTef caso existam, segue o formato desse campo: DadosConfirmação;IndiceSiTef;EnderecoSiTef

Outra opção seria utilizar a seguinte configuração no arquivo CliSiTef.ini:
[Geral]
DevolveConfirmacaoExtendida=0

Usando esta configuração, mesmo no caso de múltiplos SiTef será retornado apenas o Serviço Z no campo 1 da CliSiTef, dessa maneira também não é necessário alterar o valor do campo na hora de colocar no prefixo NFPAG.
- 11: Código de Autorização da transação de TEF (Campo 135)
Código de Autorização do Host para a transação de TEF.
- 12: Valor do Cheque Valor Total do Cheque. Um mesmo cheque pode ser usado para pagar mais de uma conta
- 13: Rede Destino – Complemento Complemento do ID 03 (veja descrição abaixo)
- 14: Bandeira do Cartão
Bandeira do Cartão utilizado na transação de TEF
15: Tipo de Pagamento
'00' – a vista
'01' – Pré-datado
'02' – Parcelado pelo estabelecimento
'03' - Parcelado pela administradora
16: Id da Carteira Digital
(retorna no campo 106 da Venda com Carteira Digital)

O campo de ID 13, diferente dos demais, não indica um campo que deve ser coletado, ele funciona apenas como um complemento para o campo de ID 03, enviando a lista de Redes Destino permitidas, no seguinte formato:

IDColetaNn(Rede1,Rede2,...,RedeN)

Ou seja, caso apenas o campo de ID 03 esteja presente, deve ser coletada a Rede Destino, sem nenhuma restrição quanto as Redes que podem pagar a Recarga. No entanto, caso estejam presentes os campos de ID 03 e 13, o primeiro indica que deve ser coletada a Rede Destino, enquanto o segundo indica quais as Redes Destino que são permitidas para o pagamento da Recarga.

Além disso, como a coleta foi indicada pelo ID 03, o PDV deve enviar a Rede Destino ao Sit também por meio deste ID (e não pelo ID 13).