Skip to content

Outras Transações

Função para obtenção de informações da transação corrente

A função atualmente disponibilizada é:

int DIRETIVA_CALLBACK ObtemInformacaoTransacaoCorrente(int iCodigoInformacao, 
    char *pValorInformacao)

A função ObtemInformacaoTransacaoCorrente deve ser utilizada para a obtenção de informações da transação corrente.

Os campos das funções estão abaixo caracterizados.

Campo Tamanho Descrição
CodigoInformacao 3N [ 2 ] BIN do cartão (6 primeiros dígitos).

[ 3 ] Valor da transação em centavos.

[ 12 ] Código da transação.

[ 25 ] Código da rede.

[ 334 ] Código da bandeira.

[ 899 ] Nome da bandeira.

[ 950 ] Nome da rede.
pValorInformacao 1024A Valor da informação solicitada pelo codigo da informação fornecido.

Função para obter o caminho do diretório de Cupons TEF

A função atualmente disponibilizada é:

int DIRETIVA_CALLBACK ObtemPathCupons(char *pPathCupons, int iPathLength)

A função ObtemPathCupons deve ser utilizada para obter o path onde o Paykit salvará os cupons ao final de cada transação. Método disponível a partir da versão: 8.22.21.00 do paykit.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
pPathCupons A Ponteiro que recebe o retorno do path completo do diretório de cupons em caso de sucesso. Exemplo: C:\ClientLinxTEF\Cupons
iPathLength 03N Tamanho do buffer pPathCupons em bytes

Função para obter a Empresa, Loja, PDV, IP e Porta do servidor TEF configurados no client.

A função atualmente disponibilizada é:

int DIRETIVA_CALLBACK ObtemDadosConfigurados(char *pEmpresa, char *pLoja, char *pPDV, char *pCNPJ, char *pIPServidor,
                                             int iIpLength, char *pPorta)

A função ObtemDadosConfigurados deve ser chamada sempre que a automação comercial necessitar recuperar os dados configurados no client. O método retornará os dados de Empresa, Loja, CNPJ, IP e Porta do servidor TEF. Método disponível a partir da versão: 8.22.21.00 do paykit.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
pEmpresa 04N Ponteiro que recebe o retorno do numero da empresa em caso de sucesso.
pLoja 04N Ponteiro que recebe o retorno do numero da loja em caso de sucesso.
pPDV 04N Ponteiro que recebe o retorno do numero do PDV em caso de sucesso.
pCNPJ 14N Ponteiro que recebe o retorno do numero do CNPJ em caso de sucesso.
pIPServidor A Ponteiro que recebe o retorno do IP do servidor em caso de sucesso.
iIpLength 03N Tamanho do buffer pIPServidor em bytes
pPorta 05N Ponteiro que recebe o retorno da porta do servidor em caso de sucesso.

Função para obter a Empresa e Loja retornados do TEF.

A função atualmente disponibilizada é:

int DIRETIVA_CALLBACK ObtemDadosEmpresaLojaTEF(char *pCNPJ, char *pCodigoEmpresa, char *pCodigoLoja)

A função ObtemDadosEmpresaLojaTEF deve ser chamada sempre que a automação comercial necessitar coletar os dados de Empresa e Loja do TEF. O método retornará os dados de Empresa e Loja a partir do CNPJ informado. Método disponível a partir da versão: 8.22.21.00 do paykit.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
pCNPJ 14N Ponteiro que contém o número do CNPJ para realizar a coleta do código de Empresa e Loja.
pCodigoEmpresa 04N Ponteiro que recebe o retorno do numero da empresa em caso de sucesso.
pCodigoLoja 04N Ponteiro que recebe o retorno do numero da loja em caso de sucesso.

Transação Pagamento Private Label Completa

int DIRETIVA_CALLBACK TransacaoPagamentoPrivateLabelCompleta(char *pValorTransacao, 
    char *pNumeroCupom, char *pNumeroControle, char *pIndicadorDigitacao, char *pCodigoBarras, 
    char *pNumeroCartao, char *pCodigoRede, char *pPermiteAlteracao, char *pReservado)

Quando a automação comercial necessitar fazer um pagamento de título deve ser usada a solicitação de transação de pagamento private label completa, através da chamada à função TransacaoPagamentoPrivateLabelCompleta.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)
IndicadorDigitacao 01N [ 0 ] Código de Barras Lido

[ 1 ] Código de Barras digitado
CodigoBarras 47A Código de Barras
NumeroCartao 19A Número do cartão
CodigoRede 04N Código da Rede que será enviada a transação. Ex: 0007 para Redecard.
PermiteAlteracao 01A [ S ] Permite alterar valores informados (exceto ValorTransacao)

[ N ] Não permite alterar valores informados
Reservado 255A Campo Reservado

[Posição] Campo

[01..01] Valor 1 se operação de pagamento com cartão de crédito ou 2 com cartão de débito.

Consulta Private Label

int DIRETIVA_CALLBACK TransacaoConsultaPrivateLabel(char *pValorTransacao, char *pNumeroCupom,
                                                    char *pNumeroControle)

Para a transação acima, pode-se utilizar a função ConfirmaCartaoCredito . Após a execução desta, deve-se chamar a função FinalizaTransacao , assim como é feito nas transações de cartões de débito, crédito e voucher.

Consulta parcelas

int DIRETIVA_CALLBACK TransacaoConsultaParcelas(char *pNumeroControle)

Para a transação acima, pode-se utilizar a função ConfirmaCartaoCredito . Após a execução desta, deve-se chamar a função FinalizaTransacao , assim como é feito nas transações de cartões de débito, crédito e voucher.

Consulta Saldo

int DIRETIVA_CALLBACK TransacaoConsultaSaldo(char *pNumeroCupomVenda, char *pNumeroControle)

Consulta Saldo Completa

int DIRETIVA_CALLBACK TransacaoConsultaSaldoCompleta(char *pNumeroCupomVenda, char *pNumeroControle, 
                                                     char *pTipoCartao, char *pPermiteAlteracao, 
                                                     char *pReservado)

Consulta Planos

int DIRETIVA_CALLBACK TransacaoConsultaPlanos(char *pValorTransacao, char *pNumeroControle, 
                                              char *pReservado, char *pPlanos)

Função para consultar status das transações pela automação

int DIRETIVA_CALLBACK ConsultaTransacao(char *pNumeroEmpresa, char *pNumeroLoja, 
    char *pNumeroPDV, char *pSolicitacao, char *pResposta, char *pMensagemErro)

A função ConsultaTransacao deve ser utilizada pela automação para consultar o status das transações.

Os parâmetros da função estão abaixo caracterizados.

Campo Tamanho Descrição
NumeroEmpresa 4N Número da empresa
NumeroLoja 4N Número da loja
NumeroPDV 4N Número do PDV
Solicitacao 102A Deve ser informada a data e o NSU da transação. A estrutura da solicitação é:

[ Data ] 8 N - Formato YYYYMMDD

[ NSU ] 6 N

[ Reservado ] 88 A
Resposta 102A Estrutura preenchida com os valores gravados na base de dados. A estrutura da resposta será:

[ Data ] 8 N - Formato YYYYMMDD

[ NSU ] 6 N

[ Cupom ] 6 N

[ Status ] 2 N - Indica se a transação está pendente. Uma transação pendente estará com o valor "77".

[ CodigoResposta ] 4 N

[ Valor ] 12 N - 10 Decimais e 2 Inteiros

[ CodigoRede ] 4 N

[ CodigoBandeira ] 4 N

[ CodigoTransacao ] 4 N

[ NumeroCartao ] 20 N

[ Resolução Pendencia ] 3 N
      • 000 - PDV
      • 001 - Web
      • 002 - Resolução de pendencias PDV
      • 003 - WebService
[ Reservado ] 29 A
MensagemRetorno 64A Mensagem de retorno do TEF, os dois primeiros bytes contém o codigo da resposta

Saque

int DIRETIVA_CALLBACK TransacaoSaque(char *pValorTransacao, char *pNumeroCupom, 
                                     char *pNumeroControle)

Para a transação acima, pode-se utilizar a função ConfirmaCartaoCredito . Após a execução desta, deve-se chamar a função FinalizaTransacao , assim como é feito nas transações de cartões de débito, crédito e voucher.

Saque Completa

int DIRETIVA_CALLBACK TransacaoSaqueCompleta(char *pValorTransacao, char *pNumeroCupom, 
                                             char *pNumeroControle, char *pTipoTransacao, 
                                             char *pPlanoPagamento, char *pNumeroParcelas, 
                                             char *pPermiteAlteracao, char *pReservado)

Transação de Primeira Compra

Os campos das funções estão abaixo caracterizados.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)
TipoOperacao 02A [ AV ] À vista

[ FL ] Financiamento Lojista

[ FA ] Financiamento Administradora
NumeroParcelas 02N Número de parcelas (00 – 99)
ValorParcela 12N 10 inteiros, 2 decimais
ValorEntrada 12N 10 inteiros, 2 decimais
ValorTaxaServico 12N 10 inteiros, 2 decimais
PermiteAlteracao 01A [ S ] Permite alterar valores informados (exceto ValorTransacao)

• [ N ] Não permite alterar valores informados
Reservado 158A [ Especificação ]
[ 1..1 ] Uso restrito. Fixo “0”

[ 2..4 ] Uso restrito. Fixo “000”

[ 5..7 ] Plano de pagamento utilizado no PDV

[ 8..8 ] Valor [ 0 ] indica pagamento com Cartão de Crédito;[ 1 ] indica pagamento com Crachá. [ 3 ] indica pagamento com cartão Qualidade [ 4 ] indica pagamento com cartão MettaCard

[ 9..9 ] Flag indicando se há dados de cartão (Crachá) [ 0]Não [ 1 ]Sim

[10] Opção para Pagamento de fatura

• 0->Indica que não é pagamento de fatura

• 1->Código de Barras digitado

• 2->Código de Barras lido óticamente

• 3->CPF (11 caracteres)

• 4->Cartão (não deve passar o número do cartão, colocar tamanho dos dados zerado)

• 5->Outros(até 40 caracteres)

[11..12] Tamanho dos dados da opção de pagamento de fatura

[13..59] Dados do pagamento de fatura

[60..126] Uso restrito.

[127..138] Valor da taxa de embarque

[139..139] Tipo de Venda (0-Normal; 1-Promocional)

[ Especificação do Retorno ]
Código possíveis :

[ 01 ] Dados Correspondente Bancário

[ 02 ] Dados Correspondente Bancário

[ 03 ] Dados Correspondente Bancário

[ 04 ] Dados Correspondente Bancário

[ 05 ] Dados Venda Crachá

[ 06 ] Dados Correspondente Bancário

[ 07 ] Dados Correspondente Bancário

[ Especificação dos Dados Venda Crachá ]

[ 01..09 ] CodigoAutorizacao

[ 10..59 ] NomeFuncionario

[ 60..71 ] ValorDesconto

[ 72..76 ] PercentualDesconto

Primeira Compra

int DIRETIVA_CALLBACK TransacaoPrimeiraCompra(char *pValorTransacao, 
    char *pNumeroCupom, char *pNumeroControle);

Primeira Compra Completa

int DIRETIVA_CALLBACK TransacaoPrimeiraCompraCompleta(char *pValorTransacao, char *pNumeroCupom,
    char *pNumeroControle, char *pTipoOperacao, char *pNumeroParcelas, char *pValorParcela,
    char *pValorTaxaServico, char *pPermiteAlteracao, char *pReservado);

Pré Autorização Crédito

int DIRETIVA_CALLBACK TransacaoPreAutorizacaoCartaoCredito(char *pNumeroControle)
int DIRETIVA_CALLBACK TransacaoConfirmacaoPreAutorizacao(char *pNumeroControle)

Para a transação acima, pode-se utilizar a função ConfirmaCartaoCredito . Após a execução desta, deve-se chamar a função FinalizaTransacao , assim como é feito nas transações de cartões de débito, crédito e voucher.

Informações Débito Parcelado

procedure ObtemInfTransacaoDebitoParcelado(pDados: Pchar);

A função ObtemInfTransacaoDebitoParcelado retorna informações sobre as parcelas da última transação de débito parcelado realizada. Essa informação está disponível apenas para as transações cujas parcelas sejam disponibilizadas pela rede autorizadora.

Os dados da transação são retornados na área que deve ser previamente alocada e passada como parâmetro. A estrutura retornada está caracterizada abaixo.

Campo Tamanho Descrição
Número de parcelas 04B Número de parcelas. O tipo do dado retornado é inteiro, em formato binário, representação little endian. Por exemplo, o valor de 5 parcelas será retornado como 0x05 0x00 0x00 0x00
Data Parcela 1 08N Data da parcela, no formato DDMMAAAA
Valor Parcela 1 12N 10 inteiros, 2 decimais
Data Parcela n 08N Data da parcela, no formato DDMMAAAA
Valor Parcela n 12N 10 inteiros, 2 decimais

Estatística

int DIRETIVA_CALLBACK TransacaoEstatistica(char *pNumeroControle)

Consulta Cadastro CPF

int DIRETIVA_CALLBACK TransacaoConsultaCadastroCPF(char *pValorTransacao, char *pNumeroCupom, 
                                                   char *pNumeroControle, char *pTipoOperacao, 
                                                   char *pDocEmissor, char *pPermiteAlteracao, 
                                                   char *pReservado)

Transação Consulta Cadastro CPF Completa

int DIRETIVA_CALLBACK TransacaoConsultaCadastroCPFCompleta(char *pValorTransacao, char *pNumeroCupom,
                                                           char *pNumeroControle, char *pTipoOperacao,
                                                           char *pDocEmissor, char *pPermiteAlteracao,
                                                           char *pReservado)

Quando a automação comercial necessitar de verificação dos destinatários de um emissor deve ser usada a solicitação de transação de consulta de cadastro CPF completa, através da chamada à função TransacaoConsultaCadastroCPFCompleta. Os parâmetros destas funções são os seguintes:

  • ValorTransacao
  • NumeroCupom
  • NumeroControle
  • TipoOperacao
  • DocEmissor
  • PermiteAlteracao
  • Reservado (*)

O preenchimento dos parâmetros indicados com (*) é opcional. Caso o sistema de automação não possua estas informações, devem ser preenchidos com zeros ou espaços, conforme o tipo do campo.

Na resposta da chamada à função será preenchido o campo NumeroControle, o DocEmissor e será devolvido o status, indicando o resultado da transação.

[ 00 ] indica que não existiram restrições para a efetivação da transação.

[ 11 ] indica que existiram restrições para a efetivação da transação. O sistema de automação deve retornar à rotina de recebimento de valores, pois a transação solicitada não foi autorizada, não sendo válida como forma de pagamento.

O NumeroControle, incluído na resposta, deverá ser armazenado pelo sistema de automação, pois na função de confirmação este número será, obrigatoriamente, utilizado.

Caso a transação seja autorizada, será disponibilizado no diretório parametrizado para os cupons um arquivo contendo o comprovante da operação a ser impresso pela automação. O nome desse arquivo tem o formato NNNNNN.PPP, onde NNNNNN é o NumeroControle e PPP é o número do terminal configurado.

Ao final da venda para encerrar a operação deve ser chamada a função FinalizaTransacao, documentada nesta página.

Os campos estão abaixo caracterizados.

Descrição Tamanho Observação
ValorTransacao 12 N 10 inteiros, 2 decimais
NumeroCupom 06 N Número do cupom (fiscal ou não fiscal)
NumeroControle 06 N NSU (número seqüencial único)
TipoOperacao 01 N [1] Nacional;
[2] Internacional
DocEmissor 11 A Número do Documento do Emissor (CPF ou passaporte)
PermiteAlteracao 01 A [S] Permite alterar valores informados (exceto ValorTransacao)
[N] Não permite alterar valores informados

Transação Atualização de Parâmetros do Cartão

int DIRETIVA_CALLBACK TransacaoAtualizacaoParametrosCartao(char *pNumeroControle)

A solicitação da transação de atualização de parâmetros do cartão é realizada através da chamada à função TransacaoAtualizacaoParametrosCartao e serve para que a Rede Adquirente envie informações para serem atualizadas no cartão. Para esta função deve-se enviar o seguinte parâmetro:

NumeroControle

Na resposta da chamada à função será preenchido o campo NumeroControle e será devolvido o , indicando o resultado da transação.

O NumeroControle , incluído na resposta, deverá ser armazenado pelo sistema de automação, pois na função de confirmação este número será, obrigatoriamente, utilizado.

Esta transação não é financeira, ou seja, não deve gerar cupom fiscal.

Resgate de Prêmio

A função atualmente disponibilizada é:

int DIRETIVA_CALLBACK TransacaoResgatePremio(char *pNumeroCupom, char *pNumeroControle)

A função TransacaoResgatePremio permite que seja feito o resgate de prêmios da plataforma promocional da Cielo. É uma função a ser utilizada na modalidade de recebimento e não como forma de pagamento. Não existem parâmetros específicos para a função e todo o controle de prêmios a serem exibidos é feito pelo Linx TEF.

Essa transação não gera comprovante e portanto ele não precisa ser impresso.

Os campos das funções estão abaixo caracterizados.

Campo Tamanho Descrição
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)

Transações de Pontos

int DIRETIVA_CALLBACK TransacaoAcumuloPontos(char *pValorTransacao, char *pNumeroCupom, 
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pPermiteAlteracao, char *pReservadoAcumulo, 
    char *pNumeroControle, char *pSaldoPontos)

int DIRETIVA_CALLBACK TransacaoResgatePontos(char *pValorTransacao, char *pNumeroCupom, 
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pProdutos, char *pPermiteAlteracao, char *pReservadoResgate, 
    char *pNumeroControle, char *pSaldoPontos)
int DIRETIVA_CALLBACK TransacaoConsultaPontos(char *pValorTransacao, char *pNumeroCupom, 
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pProdutos, char *pPermiteAlteracao, 
    char *pReservadoConsulta, char *pNumeroControle, char *pSaldoPontos)

int DIRETIVA_CALLBACK TransacaoExtratoPontos(char *pValorTransacao, char *pNumeroCupom, 
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pProdutos, char *pPermiteAlteracao, 
    char *pReservadoExtrato, char *pNumeroControle)
int DIRETIVA_CALLBACK TransacaoRelatorioPontos(char *pParametrosRelatorio, 
    char *pPermiteAlteracao, char *pReservadoRelatorio,  char *pNumeroControle)
int DIRETIVA_CALLBACK TransacaoConsultaProdutosResgate(char *pValorTransacao, char *pNumeroCupom,
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pProdutos, char *pPermiteAlteracao, 
    char *pReservadoConsultaProdutosResgate, char *pNumeroControle)
int DIRETIVA_CALLBACK TransacaoResgateProdutos(char *pValorTransacao, char *pNumeroCupom, 
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pProdutos, char *pPermiteAlteracao, char *pReservadoResgate, 
    char *pNumeroControle, char *pSaldoPontos)
int DIRETIVA_CALLBACK TransacaoEstornoAcumuloPontos(char *pValorTransacao, char *pNumeroCupom,
    char *pTipoDocumentoCliente, char *pDocumentoCliente, char *pTipoDocumentoAtendente, 
    char *pDocumentoAtendente, char *pDataEstorno, char *pNSUEstorno, char *pPermiteAlteracao, 
    char *pReservadoEstorno, char *pNumeroControle)

A solicitação de transações de pontos são feitas com as funções TransacaoAcumuloPontos, TransacaoResgatePontos, TransacaoConsultaPontos e TransacaoRelatorioPontos.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais Transação de resgate de pontos - Dependendo da Forma
de resgate utilizada, indicada no campo ReservadoResgate, o campo
Valortransacao será tratado de diferentes formas:

• Se FormaResgate [V] o campo indica o valor a ser resgatado em
R$ com 2 casas decimais;

• Se FormaResgate [P] o campo indica quantidade de pontos com 12 inteiros
e 0 decimais;

• Se FormaResgate [C] o campo indicará o valor total da compra e será utilizado
como limite máximo de valor para resgate dos Cupons/Vales/Vouchers.
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
TipoDocumentoCliente 01A Tipo do documento do cliente

[F] CPF

[J] CNPJ

[C] Cartão

[I] Código interno
DocumentoCliente 37N Documento do cliente, conforme tipo informado acima
TipoDocumentoAtendente01 01A Tipo do documento do atendente

[F] CPF

[J] CNPJ

[C] Cartão

[I] Código interno
DocumentoAtendente 37N Documento do atendente, conforme tipo informado acima
PermiteAlteracao 01A Permite alteração pelo usuário dos parâmetros informados. Caso o parâmetro
seja “Não”, o Paykit irá assumir os valores passados nos parâmetros sem
solicitar a alteração.

[S] Sim

[N] Não
ReservadoAcumulo 255P Parâmetros adicionais

• QuantidadePromocoes |CodigoPromocao1;QuantidadeItensPromocao|...|
CodigoPromocaoN;QuantidadeItensPromocaoN

Exemplos:

• 2|3;4|1;3
NumeroControle 06N NSU (número seqüencial único)
Produtos N A Lista de produtos, no formato:

• QuantidadeProdutos| CodigoProduto1;QuantidadeItensProduto1 |...| CodigoProdutoN ;QuantidadeItensProdutoN

Exemplos:

• 2|1;1|2;3

• 3|2;1|5;1|5;2
ReservadoResgate 255P Parâmetros adicionais FormaResgate

[V] Resgate por valor

[P] Resgate por quantidade de pontos

[C] Resgate por vales

Exemplos

V

P
ReservadoConsulta 255P Parâmetros adicionais TipoConsulta TipoConsulta

[S] Saldo

[E] Extrato

Exemplos:

S

E
ParametrosRelatorio 255P Parâmetros no formato:• TipoRelatorio |PeriodoRelatorio

• Tipo do Relatório

[G] Geral

[P] Período

PeriodoRelatorio

• AAAAMMDD ; AAAAMMDD – Período Inicial;Período Final

Exemplos:

P|20150310;20150311

G|;

Obs.: no relatório geral, o período é desconsiderado
ReservadoRelatorio 255P Reservado para uso futuro
DataEstorno 08N Data da transação de acúmulo original
NSU Estorno 06N NSU do estorno
Reservado Estorno 255P Reservado para uso futuro
SaldoPontos 12N Saldo de pontos

Plataforma Promocional CIELO

Para tratar essa funcionalidade é necessário que a automação comercial realize implementações específicas, chamando algumas funções que numa situação normal de pagamento não são utilizadas. Os passos para realizar este tratamento são os seguintes:

Chamar a função IdentificacaoAutomacaoComercial para informar ao Linx TEF que a automação está preparada para tratar as situações especiais que poderão ocorrer quando a rede autorizadora um desconto na transação.

Na resposta da chamada da transação financeira ( TransacaoCartaoCredito , por exemplo), verificar as informações do log estendido para identificar se a rede autorizadora respondeu a transação com um desconto. Se houve desconto, deverá ser tratada a parte fiscal (gerar o desconto no cupom). Para obter essa informação, verificar a documentação sobre a função ObtemLogUltimaTransacao , especificamente sobre o Log Estendido. Esta verificação deve ser feita somente se a rede autorizadora da transação é uma rede do Linx TEF, pois para as transações feitas com redes no Linx TEF 5 o log estendido não é gerado.

Implementar a chamada à função TransacaoResgatePremio , para fazer o resgate dos prêmios.

Transações PBM

int DIRETIVA_CALLBACK ConsultaParametrosPBM(char *pNumeroCupom, char *pQuantidadeRedes, 
                                            char *pDadosRedes, char *pMensagemOperador)
int DIRETIVA_CALLBACK ConsultaProdutosPBM(char *pNumeroCupom, char *pRedePBM, char *pTrilha1, 
                                          char *pTrilha2, char *pDigitado, char *pAutorizacao, 
                                          char *pDadosCRM, char *pTipoVenda, char *pValorTotalMedicamentos, 
                                          char *pValorVista, char *pValorCartao, char *pCodigoCredenciado, 
                                          char *pQuantidadeMedicamentos, char *pMedicamentos, char *pReservado, 
                                          char *pNumeroControle, char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoVendaPBM(char *pValorTotalMedicamentos, char *pNumeroCupom, char *pRedePBM, 
                                        char *pTrilha1, char *pTrilha2, char *pDigitado, char *pAutorizacao, 
                                        char *pNSUConsulta, char *pDadosCRM, char *pTipoVenda, 
                                        char *pValorVista, char *pValorCartao, char *pCodigoCredenciado, 
                                        char *pRegraNegocio, char *pQuantidadeMedicamentos, char *pMedicamentos, 
                                        char *pReservado, char *pNumeroControle, char *pNumeroControleRede, 
                                        char *pMensagemOperador)
int DIRETIVA_CALLBACK ConfirmaVendaPBM(char *pNumeroControle)
int DIRETIVA_CALLBACK TransacaoReimpressaoVendaPBM()
int DIRETIVA_CALLBACK TransacaoCancelamentoVendaPBM(char *pNumeroControle)
int DIRETIVA_CALLBACK TransacaoElegibilidadePBM(char *pNumeroCupom, char *pRedePBM, char *pMatricula,
                                                char *pDadosElegibilidade, char *pNumeroControle, 
                                                char *pNumeroControleRede, char *pNomeCliente, 
                                                char *pNomeMedico, char *pInformaDependente, 
                                                char *pListaDependentes, char *pReservado, 
                                                char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoPreAutorizacaoPBM(char *pNumeroCupom, char *pRedePBM, 
                                                 char *pAutorizacaoElegibilidade,
                                                 char *pDadosFarmaceutico, char *pQuantidadeMedicamentos, 
                                                 char *pMedicamentos, char *pNumeroControle, 
                                                 char *pNumeroControleRede, char *pReservado, 
                                                 char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoCancelamentoPreAutorizacaoPBM(char *pNumeroControle)
int DIRETIVA_CALLBACK ConsultaParametrosPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                          char *pNumeroLoja, char *pNumeroPDV, 
                                                          char *pNumeroCupom, char *pQuantidadeRedes, 
                                                          char *pDadosRedes, char *pMensagemOperador)
int DIRETIVA_CALLBACK ConsultaProdutosPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                        char *pNumeroLoja, char *pNumeroPDV, 
                                                        char *pNumeroCupom, char *pRedePBM, 
                                                        char *pTrilha1, char *pTrilha2, char *pDigitado, 
                                                        char *pAutorizacao, char *pDadosCRM, 
                                                        char *pTipoVenda, char *pValorTotalMedicamentos, 
                                                        char *pValorVista, char *pValorCartao, 
                                                        char *pCodigoCredenciado, char *pQuantidadeMedicamentos, 
                                                        char *pMedicamentos, char *pReservado, 
                                                        char *pNumeroControle, char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoVendaPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                      char *pNumeroLoja, char *pNumeroPDV, 
                                                      char *pValorTotalMedicamentos, char *pNumeroCupom, 
                                                      char *pRedePBM, char *pTrilha1, char *pTrilha2, 
                                                      char *pDigitado, char *pAutorizacao, char *pNSUConsulta, 
                                                      char *pDadosCRM, char *pTipoVenda, char *pValorVista, 
                                                      char *pValorCartao, char *pCodigoCredenciado, 
                                                      char *pRegraNegocio, char *pQuantidadeMedicamentos, 
                                                      char *pMedicamentos, char *pReservado, char *pNumeroControle, 
                                                      char *pNumeroControleRede, char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoCancelamentoVendaPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja,
                                                                  char *pNumeroLoja, char *pNumeroPDV, 
                                                                  char *pTrilha1, char *pTrilha2, 
                                                                  char *pDigitado, char *pReservado, 
                                                                  char *pNumeroControle, 
                                                                  char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoAberturaVendaPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                              char *pNumeroLoja, char *pNumeroPDV, 
                                                              char *pRedePBM, char *pTrilha1, 
                                                              char *pTrilha2, char *pDigitado, 
                                                              char *pReservado, char *pPedirDadosComplementares, 
                                                              char *pDadosComplementares, 
                                                              char *pInfoDadosComplementares, 
                                                              char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoVendaProdutoPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja,
                                                             char *pNumeroLoja, char *pNumeroPDV, 
                                                             char *pRedePBM, char *pTrilha1, 
                                                             char *pTrilha2, char *pDigitado, 
                                                             char *pMedicamento, char *pReservado, 
                                                             char *pPedirDadosComplementares, 
                                                             char *pDadosComplementares, 
                                                             char *pInfoDadosComplementares, 
                                                             char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoFechamentoVendaPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                                char *pNumeroLoja, char *pNumeroPDV, 
                                                                char *pRedePBM, char *pTrilha1, 
                                                                char *pTrilha2, char *pDigitado, 
                                                                char *pConfirmacao, char *pReservado, 
                                                                char *pAutorizacao, char *pNumeroControle, 
                                                                char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoElegibilidadePBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                              char *pNumeroLoja, char *pNumeroPDV, 
                                                              char *pNumeroCupom, char *pRedePBM, 
                                                              char *pMatricula, char *pDadosElegibilidade, 
                                                              char *pNumeroControle, char *pNumeroControleRede, 
                                                              char *pNomeCliente, char *pNomeMedico, 
                                                              char *pInformaDependente, char *pListaDependentes, 
                                                              char *pReservado, char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoPreAutorizacaoPBM_TeleMarketing(char *pNumeroEmpresa, char *pMultiLoja, 
                                                               char *pNumeroLoja, char *pNumeroPDV, 
                                                               char *pNumeroCupom, char *pRedePBM, 
                                                               char *pAutorizacaoElegibilidade, 
                                                               char *pDadosFarmaceutico, 
                                                               char *pQuantidadeMedicamentos, 
                                                               char *pMedicamentos, char *pNumeroControle, 
                                                               char *pNumeroControleRede, char *pReservado, 
                                                               char *pMensagemOperador)
int DIRETIVA_CALLBACK TransacaoCancelamentoPreAutorizacaoPBM_TeleMarketing(char *pNumeroEmpresa, 
                                                                           char *pMultiLoja, 
                                                                           char *pNumeroLoja, 
                                                                           char *pNumeroPDV, 
                                                                           char *pMatricula, 
                                                                           char *pReservado, 
                                                                           char *pNumeroControle, 
                                                                           char *pMensagemOperador)

As transações com a rede "PBM Funcional", onde retorna os parâmetros da rede "DadosRedes=[49000PBM Funcional SS ]", significa que a mesma necessita do "Código de Autorização”" e "Número do Cartão", conforme estrutura retornado neste parâmetro.

Ainda sobre a rede “PBM Funcional”, referente ao "Número do Cartão", o mesmo deve ser solicitado ao operador "campo com 17 dígitos", e enviado no parâmetro " pTrilha2 " contendo somente os 17 dígitos coletados pelo operador.

As solicitações de transação de Consulta das Redes Parametrizadas, de Consulta de Produtos, Transação de Venda PBM, Confirmação de Venda PBM, Reimpressão de Venda PBM e Cancelamento de Venda PBM são realizadas através das chamadas às funções ConsultaParametrosPBM , ConsultaProdutosPBM , TransacaoVendaPBM , ConfirmaVendaPBM , TransacaoReimpressaoVendaPBM e TransacaoCancelamentoVendaPBM.

O NumeroControle , incluído na resposta da função de consulta de produtos, deverá ser armazenado pelo sistema de automação, pois na função de venda este número deverá obrigatoriamente, ser utilizado, para informar o número da consulta em que os produtos foram obtidos. No caso do NumeroControle obtido no retorno da função de venda, deverá ser armazenado pelo sistema de automação para efetivar a confirmação da venda.

Após a impressão do comprovante pela automação comercial, sendo esta com sucesso, deve-se realizar a confirmação da transação através da função ConfirmaVendaPBM informando o número do NSU da transação que deseja confirmar. Em seguida, para encerrar a operação deve ser chamada a função FinalizaTransacao, documentada nesta página..

Através da função TransacaoReimpressaoVendaPBM poderá ser reimpresso o comprovante da última venda PBM emitida com sucesso. Caso a função seja executada com sucesso, o arquivo ULTIMOPBM.PRN será disponibilizado no diretório parametrizado para os cupons.

As funções de Consulta de Parâmetros e Consulta de Produtos devem ser acionadas antes de iniciar-se uma venda, pois ao efetuar a venda o operador deverá optar por utilizar um produto da rede selecionada ou por um produto da própria loja. Esta “seleção” é importante para determinar se o sistema de automação comercial deverá chamar a função de venda PBM ou não. No caso de efetuar uma venda PBM, todos os parâmetros obtidos através da função de consulta PBM deverão ser passados na função de venda, de acordo com a quantidade vendida. Estes dados deverão estar coerentes com os dados da consulta, caso contrário, a venda corre o risco de não ser aprovada pela rede PBM selecionada.

Através da função TransacaoCancelamentoVendaPBM pode-se efetuar o cancelamento de uma venda PBM. O NumeroControle da venda a ser cancelada deve ser informado. Além disso, se a rede PBM exigir, poderá ser necessário a leitura do cartão do beneficiário para efetuar o cancelamento.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
MultiLoja 01 P 01 Caracter [‘S’,’N’]
NumeroEmpresa 04 P 04 inteiros
NumeroLoja 04 P 04 inteiros
NumeroPDV 03 P 03 inteiros [001…356]
InfoDadosComplementares 64 A Informação de coleta de campos opcionais da tela de abertura de venda PBM. Os parâmetros dos 2 campos têm o seguinte formato:

• TAAMMXX...XXTAAMMXX...XX

T : tipo do campo - N (numérico), A (alfanumérico) ou F (opção sim ou não - Y/N)

AA : tamanho mínimo do campo (1 até 50)

MM : tamanho máximo do campo (1 até 50)

X : nome do campo para apresentação na tela (até 20 bytes)

Os dois campos são opcionais. Se nenhum campo estiver preenchido, não haverá a coleta. Exemplo:
• N0808CEP N1111CPF DO PORTADOR

• Neste exemplo, haverá a captura de 2 campos, sendo que o primeiro é o CEP com 8 dígitos (N=numérico) e o segundo o CPF com 11 dígitos.
DadosComplementares 128A Dados complementares coletados conforme os campos da estrutura InfoDadosComplementares . No exemplo acima, os dados poderiam ficar:
• 08999999991199999999999, isto é, CEP 99999999 com 8 dígitos e CPF 99999999999 com 11 dígitos.
PedirDadosComplementares 01 A Se a função retornar erro, analisar este campo para verificar se é necessário coletar os dados complementares e chamar novamente a função.
• [ S ] Coletar dados complementares

• [ N ] Não coletar dados complementares
ValorTotalMedicamentos 12N Valor total dos medicamentos do cupom na venda ou valor total dos medicamentos retornados na consulta
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
QuantidadeRedes 02N Quantidade de redes cadastradas
DadosRedes

Formato:

Numero[05]

Nome[20]

ColetaCartao[01]

ColetaAutorizacao[01]

Filler[13]
560P Parâmetro que retorna os dados das redes cadastradas. Os campos ColetaCartao e ColetaAutorizacao indicam qual informação deve ser coletada pelo sistema de automação comercial. Podem ser retornados até 14 redes no formato especificado Especificação de alguns campos :

Campo ColetaCartao =

• [ S ] Coletar cartão

• [ N ] Não coletar cartão

Campo ColetaAutorizacao =

• [ S ] Coletar número de autorização

• [ N ] Não coletar número de autorização
RedePBM 05N Código da rede PBM selecionada
Trilha1 76A Trilha1 do cartão
Trilha2 37A Trilha2 do cartão
Digitado 01N • [ 0 ] Indica que a trilha2 do cartão foi obtido através de leitura em pinpad criptografado

• [ 1 ] Indica que a trilha2 do cartão foi digitado
Autorização 12N Número da autorização coletado pelo sistema de automação
NSUConsulta 06N Número de controle obtido na consulta de produtos
DadosCRM

Formato:

CRM[12]

UF_CRM[02]
14P Dados de identificação do CRM consultado
DadosElegibilidade

Formato:

CodigoOperadorVita[09]

PlanoSaude[06]

NumeroDependente[02]

TipoProfissional[01]

UF_CRM_CRO[02]

NumeroCRM_CRO[09]

DataReceita[06]

DescontoEmFolha[01]
30P Deve ser coletado pelo sistema de automação os dados da estrutura.Especificação de alguns campos :
• Campo CodigoOperadorVita =

• Campo PlanoSaude = Código do plano de saúde

• Campo TipoProfissional = [ 0 ] CRM [ 1 ] CRO

• Campo DescontoEmFolha = [ S ] Sim [ N ] Não
NomeCliente 40P Retornado pela função TransacaoElegibilidadePBM
NomeMedico 40P Retornado pela função TransacaoElegibilidadePBM
InformaDependente 01P • [ S ]Sim [ N ]Não

Importante : se a função retornar status 11, verificar se foi retornado “S” neste parâmetro. Neste caso, chamar a função novamente informando o número do dependente na estrutura do parâmetro DadosElegibilidade
ListaDependentes

Formato:

Número do dependente[02]

Nome do dependente[40]
504P Lista de até 12 registros
AutorizacaoElegibilidade 12P Deve ser informado a Autorização retornada na transação de elegibilidade
DadosFarmaceutico

Formato:

UF_CRF[02]

NumeroCRF[12]
14P
TipoVenda 01N • [ 0 ]Vista [ 1 ] Cartão
ValorVista 12N Valor a pagar à vista para consulta e valor pago à vista para a função de venda
ValorCartão 12N Valor a pagar com cartão para consulta e valor pago com cartão para a função de venda
CodigoCredenciado 15N Código do credenciado
RegraNegocio 08N Código da regra de negócio (ePharma)
QuantidadeMedicamentos 02N Quantidade de medicamentos retornados no campoMedicamentos para a função de consulta e quantidade de medicamentos vendidos para a função de venda
Medicamentos

Formato:

DataReceita[08]

IDCRM_CRO[01]

CRM[12]

UF_CRM[02]

TipoMedicamento[02]

Código[13]

Descrição[15]

CondicaoVenda[01]

PrecoMaxConsumidor[08]

PrecoFabricaUnitario[08]

PrecoUnitarioVendaCons[08]

PrecoAquisicaoUnitario[08]

PrecoRepasseVarejo[08]

MotivoRejeicao[02]

QtdReceitada[04]

QtdAutorizadaSolicitada[04]

Referencia[02]

IndicadorVenda[01]

TipoEmbalagem[01]

Desconto[05]

Controle[10]

Reembolso[08]

Comissão[05]

UsoContinuo[01]

Filler[05]
*P Dados dos medicamentos fornecidos para o sistema de automação na função de consulta e dados dos medicamentos vendidos da rede selecionada para a função de venda. Podem ser retornados (pela função de consulta) ou informados (para a função de venda) até o número de medicamentos informado no campo QuantidadeMedicamentos.
• * o tamanho deste buffer deve ser calculado da seguinte forma: QuantidadeMedicamentos * 142

• 142 = tamanho da estrutura de dados para um medicamento

Especificação de alguns campos :

• Campo IDCRM_CRO = [ 0 ] CRM [ 1 ] CRO

• Campo TipoMedicamento =

• [ 01 ] Medicamento

• [ 02 ] Manipulação

• [ 03 ] Manip. Especial

• [ 04 ] Perfumaria

• Campo CondicaoVenda =

• [ 0 ] obrigatório utilizar preço fábrica

• [ 1 ] permite vender com preço inferior

• Campo IndicadorVenda =

• [ 0 ] produto venda cartão

• [ 1 ] produto venda vista

• Campo TipoEmbalagem = unitário ou parcial

• Campo Controle = campo para uso restrito

• Campo UsoContinuo = [ S , N ]

Observações :

• [ 1 ] os campos Reembolso e Comissão foram incluídos pois

são retornados pela VidaLink

• [ 2 ] o campo UsoContinuo é utilizado pela PreSaude

• [ 3 ] no campo QtdAutorizadaSolicitada deve ser informado a quantidade solicitada para a PrevSaude ou quantidadeautorizada para as demais PBMs.
Reservado 128P Campo reservado
TransacaoAberturaVendaPBM_TeleMarketing : esta função retornará neste parâmetro o número da autorização para esta transação. Tamanho de 12 bytes.
Confirmacao 01A Indica se a transação de venda de produtos PBM deve ser confirmada ou não.
• [ S ] Confirmar a operação

• [ N ] Não confirmar a operação
NumeroControle 06 N NSU (número seqüencial único)
NumeroControleRede 12 N NSU da Rede Autorizadora (número seqüencial único retornado pela rede que aprovou a venda)
MensagemOperador 64 P Mensagem retornada pelo Linx TEF indicando o motivo da recusa da transação. Deve ser apresentada ao operador quando a transação for rejeitada
02 I • [ 00 ] Transação autorizada

• [ 11 ] Transação não efetuada

Obs.: todos campos que contém diversos parâmetros devem ser passados conforme seus respectivos tamanhos. Os campos numéricos devem vir com zeros à esquerda (sem ponto ou vírgula), enquanto que os alfanuméricos devem vir com espaços à direita.

[ 00 ] indica que não existiram restrições para a efetivação da transação.

[ 11 ] indica que existiram restrições para a efetivação da transação. Apresentar ao usuário o conteúdo do campo MotivoRejeicao (retornado pela operadora). No campo MensagemOperador contém a mensagem retornada pelo Linx TEF.

Observação : Para cada conjunto de chamadas as funções de TeleMarketing ( ConsultaParametrosPBM_TeleMarketing , ConsultaProdutosPBM_TeleMarketing, TransacaoVendaPBM_TeleMarketing, TransacaoAberturaVendaPBM_Telemarketing, TransacaoVendaProdutoPBM_TeleMarketing, TransacaoFechamentoVendaPBM_TeleMarketing ) deve ser informado um número de PDV diferente (obedecendo a faixa de PDVs definida na especificação dos parâmetros). Isto é necessário para que o Linx TEF possa diferenciar as transações que estão ocorrendo simultaneamente. Um exemplo de ocorrência desta situação é na utilização desta função através de um servidor Web, que pode ter vários usuários realizando acesso simultâneo.

Observação para transações de pré-venda SevenPDV : a autorização das redes tratadas pela PBM SevenPDV deve seguir o seguinte fluxo de chamadas de funções:

TransacaoAberturaVendaPBM_TeleMarketing : função para abrir a venda. Se no retorno a função indicar que devem ser pedidos dados complementares, deverá ser analisado o campo de retorno pInfoDadosComplementares para buscar a definição dos campos a serem coletados. A seguir, a função TransacaoAberturaVendaPBM_TeleMarketing deverá ser chamada novamente com a informação dos dados complementares. Caso a tela de coleta dos dados complementares do portador for exibida mas o operador não entrou com os dados, a palavra VAZIO deverá ser informada no campo pDadosComplementares .

TransacaoVendaProdutoPBM_TeleMarketing : transação para incluir o produto na autorização que está sendo feita simultaneamente à venda. Na estrutura do medicamento, deverão ser informados os campos Codigo , PrecoMaxConsumidor , PrecoUnitarioVendaCons , QuantidadeAutorizada e TipoEmbalagem. Os campos retornados na estrutura de medicamento são retornados os campos QuantidadeAutorizada , PrecoMaxConsumidor , PrecoUnitarioVendaCons , PrecoRepasseVarejo , Desconto e MotivoRejeicao.

TransacaoFechamentoVendaPBM_TeleMarketing : função para finalizar a venda PBM. Se a venda foi finalizada com sucesso, deverá passar o parâmetro pConfirmaçao com o valor "S". Neste caso, ao final da execução da função será disponibilizado o comprovante da operação para ser impresso. Se a venda não deve ser finalizada, passar no parâmetro o valor "N".

Observação : para transações de telemarketing em ambientes com múltiplas threads simultâneas, deverá ser utilizada a DLL DPOSDRVTM.DLL.

Transação Cheque

int DIRETIVA_CALLBACK TransacaoCheque(char *pValorTransacao, char *pNumeroCupom, char *pNumeroControle,
                                      char *pQuantidadeCheques, char *pPeriodicidadeCheques, 
                                      char *pDataPrimeiroCheque, char *pCarenciaPrimeiroCheque)

A solicitação de transação com cheque é realizada através da chamada à função TransacaoCheque , com a passagem dos seguintes parâmetros opcionais:

QuantidadeCheques

PeriodicidadeCheques

DataPrimeiroCheque

CarenciaPrimeiroCheque

Se for retornado um comprovante a ser impresso, a confirmação e a finalização da transação serão necessárias. Para saber se um comprovante foi retornado, após a execução com sucesso da função deverá ser pesquisado no diretório de liberação de cupons o arquivo correspondente ao número de controle retornado na função.

Na resposta da chamada à função será devolvido o , indicando o resultado da transação.

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)
QuantidadeCheques 02N Quantidade de cheques da transação
PeriodicidadeCheques 03N Periodicidade, em dias, entre os cheques. [ 000 ] indica periodicidade variável (livre) a ser coletada.
DataPrimeiroCheque 08N Data do depósito do primeiro cheque, no formato <ddmmaaaa>
CarenciaPrimeiroCheque 03N Carência, em dias, para o depósito do primeiro cheque
02I [ 00 ] Transação autorizada [ 11 ] Transação não autorizada

[ 00 ] indica que não existiram restrições para a efetivação da transação e que os cheques envolvidos foram impressos com sucesso.

[ 11 ] indica que existiram restrições para a efetivação da transação. O sistema de automação deve retornar à rotina de recebimento de valores, pois a transação solicitada não foi autorizada, não sendo válida como forma de pagamento.

Cheque Completa

int DIRETIVA_CALLBACK TransacaoChequeCompleta(char *pValorTransacao, char *pNumeroCupomVenda, 
                                              char *pNumeroControle, char *pQuantidadeCheques, 
                                              char *pPeriodicidadeCheques, char *pDataPrimeiroCheque, 
                                              char *pCarenciaPrimeiroCheque, char *pTipoDocumento, 
                                              char *pNumeroDocumento, char *pQuantidadeCheques, 
                                              char *pSequenciaCheque, char *pCamaraCompensacao, 
                                              char *pNumeroBanco, char *pNumeroAgencia, 
                                              char *pNumeroContaCorrente, char *pNumeroCheque, 
                                              char *pDataDeposito, char *pValorCheque, 
                                              char *pDataNascimentoCliente, char *pTelefoneCliente, 
                                              char *pCMC7, char *pPermiteAlteracao, char *pReservado)

Quando a automação comercial necessitar de detalhes mais precisos da transação, de cheque, pode ser usada a solicitação de transação com cheque completa, através da chamada à função TransacaoChequeCompleta. Os parâmetros opcionais dessa função são os seguintes:

QuantidadeCheques

PeriodicidadeCheques

DataPrimeiroCheque

CarenciaPrimeiroCheque

TipoDocumento

NumeroDocumento

QuantidadeCheques

SequenciaCheque

CamaraCompensacao

NumeroBanco

NumeroAgencia

NumeroContaCorrente

NumeroCheque

DataDeposito

ValorCheque

DataNascimentoCliente

TelefoneCliente

CMC7

PermiteAlteracao

Reservado

Se for retornado um comprovante a ser impresso, a confirmação e a finalização da transação serão necessárias. Para saber se um comprovante foi retornado, após a execução com sucesso da função deverá ser pesquisado no diretório de liberação de cupons o arquivo correspondente ao número de controle retornado na função.

Na resposta da chamada à função será devolvido o , indicando o resultado da transação.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)
QuantidadeCheques 02N Quantidade de cheques da transação
PeriodicidadeCheques 03N Periodicidade, em dias, entre os cheques. O valor [ 000 ] indica periodicidade variável (livre) a ser coletada.
DataPrimeiroCheque 08N Data do depósito do primeiro cheque, no formato <ddmmaaaa>
CarenciaPrimeiroCheque 03N Carência, em dias, para o depósito do primeiro cheque
TipoDocumento 01N • [ 1 ] CPF

• [ 2 ] CNPJ
NumeroDocumento 14N CPF ou CNPJ
QuantidadeCheques 02N Quantidade de cheques da transação ( obrigatório para consulta de múltiplos cheques )
SequenciaCheque 02N Número de seqüência do cheque ( obrigatório para consulta de múltiplos cheques )
CamaraCompensacao 03N Câmara de compensação
NumeroBanco 03N Número do banco
NumeroAgencia 04N Número da agencia
NumeroContaCorrente 10N Número da conta-corrente
NumeroCheque 07N Número do cheque com Dígito verificador
DataDeposito 08N <ddmmaaaa>
ValorCheque 12N 10 inteiros, 2 decimais
DataNascimentoCliente 08N <ddmmaaaa>
TelefoneCliente 12A Telefone somente com caracteres numéricos
CMC7 50A Conteúdo da trilha CMC-7
PermiteAlteracao 01A [ S ] Permite alterar valores informados (exceto ValorTransacao) [ N ] Não Permite alterar valores informados
Reservado 51A [ Especificação ] [ 01..01 ] Reservado [ 02..13 ] Valor máximo permitido para a transação [ 14..14 ] [ S ] Consultar Cheque [ N ] Não consultar [ 15..15 ] Dígito C1 do cheque coletado [ 16..16 ] Dígito C2 do cheque coletado [ 17..17 ] Dígito C3 do cheque coletado [ 18..23 ] Cliente Desde, no formato
02I • [ 00 ] Transação autorizada

• [ 11 ] Transação não autorizada

[ 00 ] indica que não existiram restrições para a efetivação da transação e que os cheques envolvidos foram impressos com sucesso.

[ 11 ] indica que existiram restrições para a efetivação da transação. O sistema de automação deve retornar à rotina de recebimento de valores, pois a transação solicitada não foi autorizada, não sendo válida como forma de pagamento.

Habilitando a Consulta de Múltiplos Cheques

Para realizar a consulta de múltiplos cheques em uma mesma transação com a rede verificadora, é necessário que o Paykit esteja parametrizado para efetuar tal procedimento. Esta parametrização deve ser realizada no Linx TEF e é armazenado no arquivo CHEQUE.TEF. Este arquivo deverá ser copiado para o diretório do Paykit. Além disso, só é permitido a consulta de múltiplos cheques para cheques da mesma conta. Se for realizado recebimentos de cheque de contas diferentes, será enviado para a rede uma transação de consulta para cada cheque, independente da parametrização definida.

Este tipo de consulta é válido somente quando o automação comercial realiza a consulta através da chamada da função TransacaoChequeCompleta informando os campos referentes à seqüência e a quantidade de cheques. A consulta do(s) cheque(s) será enviada ao Linx TEF após a coleta do último cheque (campo pSequenciaCheque igual ao campo pQuantidadeCheques ). Para isto, o automação comercial deverá realizar uma chamada da função TransacaoChequeCompleta para cada cheque a ser processado, acumulando o campo pSequenciaCheque até atingir a quantidade de cheques informado (campo pQuantidadeCheques ).

Observação : a consulta de múltiplos cheques está limitado em 24 cheques na mesma transação de consulta com a rede.

Importante : esta funcionalidade depende da instituição verificadora cadastrada. Nem todas possuem este recurso. Portanto, deve-se consultar a rede se há disponibilidade deste serviço.

Consultando Cheques Garantidos

int DIRETIVA_CALLBACK ConsultaChequesGarantidos(char *pTipoDocumento, char *pNumeroDocumento, 
                                                char *pDataInicialConsulta, char *pDataFinalConsulta, 
                                                char *pNumeroControle)

Para realizar a consulta dos cheques que foram garantidos pela rede autorizadora, deve-se realizar chamada à função ConsultaChequesGarantidos . Esta função só está disponível caso a garantia de cheques esteja habilitada. Esta parametrização deve ser realizada no Linx TEF e é armazenado no arquivo CHEQUE.TEF. Este arquivo deverá ser copiado para o diretório do Paykit. A seguir, estão detalhados os parâmetros utilizados na chamada da função.

Campo Tamanho Descrição
TipoDocumento 01N • [ 1 ] CPF

• [ 2 ] CNPJ
NumeroDocumento 14N CPF ou CNPJ
NumeroControle 06N NSU (número seqüencial único)
DataInicialConsulta 08N DDMMAAAA
DataFinalConsulta 08N DDMMAAAA
02I • [ 00 ] Transação autorizada

• [ 11 ] Transação não autorizada

[ 00 ] indica que não existiram restrições para a efetivação da transação.

[ 11 ] indica que existiram restrições para a efetivação da transação.

Especificação Solicita Funções

Os campos estão abaixo caracterizados.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)
TipoCartao 01N Indica o tipo de cartão que deseja consultar o saldo [ 1 ] Crédito [ 2 ] Débito [ 3 ] Private [ 4 ] CPF (1) [ 5 ] CNPJ (¹)
TipoTransacao 01N • [ 0 ] Consulta Saque [ 1 ] Saque
TipoOperacao 01N • [ 1 ] Nacional [ 2 ] Internacional
DocEmissor 11A Número do Documento do Destinatário (CPF ou passaporte)
DocDestinatario 11A Número do Documento do Destinatário (CPF ou passaporte)
CodigoPIN 11A Número do Documento recebido via SMS
PlanoPagamento 03N Código do plano de pagamento
NumeroParcelas 02N Número de parcelas
PermiteAlteracao 01A [ S ] Permite alterar valores informados (exceto ValorTransacao) [ N ] Não permite alterar valores informados
Reservado 158A [ Especificação – TransacaoCancelamentoPagamento ]
• [ 1..1 ] Valor

• - [ 0 ] indica cancelamento de pagamento feito com Cartão;

• - [ 1 ] indica cancelamento de pagamento feito com Crachá;

• - [ 2 ] indica cancelamento de pagamento débito Wappa;

• - [ 3 ] indica cancelamento de pagamento feito com cartão Qualidade

• - [ 4 ] indica cancelamento de pagamento feito com cartão MettaCard

• - [ 5 ] indica cancelamento de pagamento feito com cartão Ecopag

• - [ Q ] indica cancelamento de pagamento feito com QR Code

• [ 2..9 ] Data da transação a ser cancelada, no formato AAAAMMDD

[ Especificação do Retorno ]

• Código possíveis :

• [ 01 ] Dados Venda Crachá

[ Especificação dos Dados Venda Crachá ]

• [ 01..09 ] CodigoAutorizacao

• [ 10..59 ] NomeFuncionario

• [ 60..71 ] ValorDesconto

• [ 72..76 ] PercentualDesconto

[Especificação dos Dados – Operação Saque]

• [ 01 ] Número da Rede Autorizadora

[ Especificação dos Dados – Operação Consulta Saldo ][ 01..01 ]Indicador de consulta com crachá
• - [0] para consulta norma

• - [1] para consulta com crachá

• [ 02..15 ] CPF ou CNPJ do cliente (espaços a direita se CPF)
02I • [ 00 ] Transação autorizada

• [ 11 ] Transação não efetuada
Planos 1..999A [ Especificação dos Dados – Consulta Planos ]
• [ 01..008 ] Data Nascimento Portador do Cartão(DDMMAAAA)

• [ 09..058 ] NomePortador do Cartão

• [ 59..059 ] Fixo P-indicador de Consulta de Planos

• [ 60..999 ] Planos (para cada código de processamento o bloco abaixo se repetira)

• [ N06 ] CodigoProcessamento

• [ N05 ] DataPrimeiraParcela(AADDD ** )

• [ N01 ] FlagJuros

• [ N01 ] FlagPulaCiclo

Os campos descritos abaixo podem repetir para demonstrar a quantidade de parcelas do tipo de plano:
• [ N02 ] NumeroDaParcela

• [ N08 ] ValorPrimeiraParcela
• [ N08 ] ValorDemaisParcelas
• [ N05 ] TaxaJuros

• [ N05 ] CETAnual
• [ N01 ] “;”(FinalizadorDeCodigoProcessamento)

** quantidade de dias do ano informado até a data atual

[ 00 ] indica que não existiram restrições para a efetivação da transação.

[ 11 ] indica que existiram restrições para a efetivação da transação.

Funções para Vale Gás

As seguintes funções foram desenvolvidas para realizar o processamento do Vale Gás.

Os campos das funções estão abaixo caracterizados.

Campo Tamanho Descrição
ValorTransacao 12N 10 inteiros, 2 decimais
NumeroCupom 06N Número do cupom (fiscal ou não fiscal)
NumeroControle 06N NSU (número seqüencial único)
NumeroValeGas 15N 15 inteiros
MensagemOperador 64P Mensagem de retorno do Linx TEF

Transação Vale Gás

int DIRETIVA_CALLBACK TransacaoeValeGas(char *pValorTransacao, char *pNumeroCupom,
    char *pNumeroControle, char *pNumeroValeGas)

Consulta Tabelas Vale Gás

int DIRETIVA_CALLBACK ConsultaTabelasValeGas(char *pNumeroControle, char *pMensagemOperador)

Cancelamento Padrão

int DIRETIVA_CALLBACK CancelamentoPadrao(char *pNumeroControle)

Forçar Atualização de Tabelas

int DIRETIVA_CALLBACK ForcaAtualizacaoTabelasPinpad()

Observação: Essa função é encontrada no PayKit a partir da versão 8.22.21.0400

Exibir Imagem no Pinpad

int DIRETIVA_CALLBACK ExibeImagemPinPadPayKit(char *pcNomeArquivo)
Campo Tamanho Descrição
pcNomeArquivo A Caminho para o arquivo da imagem

Observação: Essa função é encontrada no PayKit a partir da versão 8.22.21.0005

Apagar Imagem do Pinpad

int DIRETIVA_CALLBACK ApagaImagemPinPadPayKit()

Observações:
1. Essa função é encontrada no PayKit a partir da versão 8.22.21.0005
2. É de suma importância que este método seja chamado ao final da utilização da exibição da imagem no QR.

Obter Identificação do PinPad

int DIRETIVA_CALLBACK LeIdentificacaoPinPad(char *pDados)

A função LeIdentificacaoPinpad deve ser chamada quando o automação comercial deseja obter as informações do pinpad, tais como: fabricante, modelo, versão, etc. Estes dados serão retornados no parâmetro pDados com o layout especificado abaixo:

Posição Descrição Formato Observações
001-020 Nome do Fabricante A20
021-039 Modelo/versão do hardware A19 Formato “xxx...xxx;mmm”, onde “xxxx” é o nome do equipamento e “mmm” a capacidade de memória (“512KB”, “1MB”, “2MB”, ...)
040 Se o pinpad suporta cartão com chip sem contato A1 Este campo deve conter a letra “C”, caso contrário um espaço em branco
041-060 Versão do software básico/firmware A20 Formato livre
061-064 Versão da especificação A4 Formato “V.VV” (neste caso, fixo “1.08”)
065-080 Versão da aplicação básica A16 Formato “VVV.VV AAMMDD” (com 3 espaços à direita)
081-100 Número de série do pinpad A20 Com espaços à direita