Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Exemplos : Quando houve a necessidade de validar um token no pinpad.


Veja abaixo exemplo de configuração dos parâmetros : 

Configurações > Configurações de PDVs > Autendicações diversas > Autênticações para convênios.

image-2024-4-3_8-22-30.pngImage Added

Imagem 01 - Autênticações para convênios.


Lista de formas de pagamento : Iremos configurar uma lista de formas de pagamento que poderá ser validado e autenticado pelo parceiro.

Obter o valor no pinpad: A solicitação irá ser encaminhada para o cliente informar o valor no Pinpad.

URL :  Parceiro irá informar o caminho do seu servidor webservice para receber do PDV as solicitações e valores.

Autenticação: Para validação de usuario e senha do webservice criado pelo parceiro para validar e autorizar as respostas para o PDV.


Formato dos arquivos JSON de Requisição e Resposta

Informações para Requisição (Request Information)

Parâmetros do Corpo (Body Parameters)

Authenticator

PARÂMETRO

TIPO

OBRIGATÓRIO

DESCRIÇÃO

UserAuthenticationObject JsonSim

Grupo com os dados para autenticação

AuthenticatorUserAuthentication.HeaderObject JsonSim

Grupo com os dados do cabeçalho

AuthenticatorUserAuthentication.Header.DescriptionStringSim

Descrição da rotina a ser liberada

AuthenticatorUserAuthentication.Header.IdStoreIntegerSim

Código da loja

AuthenticatorUserAuthentication.Header.IdTerminalIntegerSim

Código do PDV

Authenticator.Header.IdUserIntegerSim

Código do usuário (operador de caixa)

Authenticator.Header.MethodStringSim

Rotina a ser liberada

Authenticator.Header.M

ethodStatus

StringSim

Status da liberação da rotina solicitada. Legenda:

arNone: envio da requisição (inicialização);

arPending: requisição pendente;

arAuthorized: requisição autorizada pelo fiscal de caixa;

arNotAuthorized: requisição negada pelo fiscal de caixa;

arCanceled: requisição cancelada (API fora do ar, timeout, usuário cancelou a solicitação, tempo limite atingido, etc).

Authenticator.Header.MethodTitleStringSim

Título da rotina a ser liberada

Authenticator.UserAuthentication.SaleObject JsonSim

Grupo com os dados da venda

AuthenticatorUserAuthentication.Sale.AccountingDateDateSim

Data do documento ou, quando não existir, da transação

AuthenticatorUserAuthentication.Sale.DateTimeIssueDateSim

Data e hora da requisição

AuthenticatorUserAuthentication.Sale.IdDocumentIntegerSim

Código do documento

AuthenticatorUserAuthentication.Sale.ItemsArray object JsonNão

Lista de produto(s) da venda

AuthenticatorUserAuthentication.Sale.Items[0].DescriptionStringSim

Descrição do produto

AuthenticatorUserAuthentication.Sale.Items[0].InternalCodeIntegerSim

Código interno do produto

AuthenticatorUserAuthentication.Sale.Items[0].ItemNumberIntegerSim

Código de sequência do produto

AuthenticatorUserAuthentication.Sale.CooDocumentIntegerNão

Código do documento da venda

AuthenticatorUserAuthentication.Sale.DocumentIntegerNão

Códigos interno da venda (seqdocto)

AuthenticatorUserAuthentication.Sale.IdentificationTypeStringNão

Tipo de identificação

AuthenticatorUserAuthentication.Sale.DocumentTypeStringNão

CPF ou CNPJ do cliente informado

AuthenticatorUserAuthentication.Sale.AgreementNumberIntegerNão

Nº do convênio/forma  de pagamento

AuthenticatorUserAuthentication.Sale.AgreedNumberIntegerNão

Código do cliente (Seqpessoa)

AuthenticatorUserAuthentication.Sale.TotalSaleDoubleNão

Total da venda

AuthenticatorUserAuthentication.Sale.TotalPayDoubleNão

Valor do pagamento

EventStringSim

Tipo de evento da API

ExecutionStringSim

Status da execução

IDStringSim

ID da transação (que será consultando depois no evento GET)

OperationStringSim

Operação que está sendo enviada ("cotAuthenticadorcotUserAuthentication" para este evento POST)

ResponseStringNão

Valor retornado pelo PDV.

Este é o valor de retorno digitado lá no pdv pelo cliente

VersionIntegerSim

Número da versão

Formatos de Requisição (Request Formats)

application/json

Exemplo (Sample)

{
    "AuthenticatorEvent": {
    "cetAfter",
    "HeaderExecution": {
        "cetContinue",
    "DescriptionID": "Autenticacao00122220240125140628",
            "IdStoreOperation": 1"cotUserAuthentication",
            "IdTerminalResponse": 222"1515",
    "UserAuthentication": {
        "IdUserHeader": 2,{
            "MethodIdStore": "mtFinalizadoraConvenio"1,
            "MethodStatusIdTerminal": "arPending"222,
            "MethodTitleIdUser": "Autenticacao"2
        },
        "Sale": {
            "AccountingDate": "2024-01-23T0024T00:00:00",
            "AgreedNumber": 138789,
            "AgreementNumber": 252,
            "CooDocument": 2730,
            "DateTimeIssue": "2024-01-23T1425T14:3406:0128",
            "Document": "97107967000109",
            "DocumentType": "cdtCNPJ",
            "IdDocument": 1107196211071968,
            "IdentificationType": "citReward",
            "Items": [
            ],
            "TotalPay": 1.0000000000000000E+001,
            "TotalSale": 1.0000000000000000E+001
        }
    },
    "Event": "cetAfter",
    "Execution": "cetContinue",
    "ID": "00122220240123143401",
    "Operation": "cotAuthenticator",
    "Response": "",
    "Version": 1
}

rupo com os dados para autenticação

Authenticator.HeaderObject JsonSim

Grupo com os dados do cabeçalho

Authenticator.Header.Description

StringSim

Descrição da rotina a ser liberada

Authenticator.Header.IdStoreIntegerSim

Código da loja

Authenticator.Header.IdTerminalIntegerSim

Código do PDV

Authenticator.Header.IdUserIntegerSim

Código do usuário (operador de caixa)

Authenticator.Header.MethodStringSim

Rotina a ser liberada

Authenticator.Header.M

ethodStatus

StringSim

Status da liberação da rotina solicitada. Legenda:

arNone: envio da requisição (inicialização);

arPending: requisição pendente;

arAuthorized: requisição autorizada pelo fiscal de caixa;

arNotAuthorized: requisição negada pelo fiscal de caixa;

arCanceled: requisição cancelada (API fora do ar, timeout, usuário cancelou a solicitação, tempo limite atingido, etc).

Authenticator.Header.MethodTitleStringSim

Título da rotina a ser liberada

Authenticator.SaleObject JsonSim

Grupo com os dados da venda

Authenticator.Sale.AccountingDateDateSim

Data do documento ou, quando não existir, da transação

Authenticator.Sale.DateTimeIssueDateSim

Data e hora da requisição

Authenticator.Sale.IdDocumentIntegerSim

Código do documento

Authenticator.Sale.ItemsArray object JsonNão

Lista de produto(s) da venda

Authenticator.Sale.Items[0].DescriptionStringSim

Descrição do produto

Authenticator.Sale.Items[0].InternalCodeIntegerSim

Código interno do produto

Authenticator.Sale.Items[0].ItemNumberIntegerSim

Código de sequência do produto

Authenticator.Sale.CooDocumentIntegerNão

Código do documento da venda

Authenticator.Sale.DocumentIntegerNão

Códigos interno da venda (seqdocto)

Authenticator.Sale.IdentificationTypeStringNão

Tipo de identificação

Authenticator.Sale.DocumentTypeStringNão

CPF ou CNPJ do cliente informado

Authenticator.Sale.AgreementNumberIntegerNão

Nº do convênio/forma  de pagamento

Authenticator.Sale.AgreedNumberIntegerNão

Código do cliente (Seqpessoa)

Authenticator.Sale.TotalSaleDoubleNão

Total da venda

Authenticator.Sale.TotalPayDoubleNão

Valor do pagamento

EventStringSim

Tipo de evento da API

ExecutionStringSim

Status da execução

IDStringSim

ID da transação (que será consultando depois no evento GET)

OperationStringSim

Operação que está sendo enviada ("cotAuthenticador" para este evento POST)

ResponseStringNão

Valor retornado pelo PDV.

Este é o valor de retorno digitado lá no pdv pelo cliente

VersionIntegerSim

Número da versão


Formatos de Response(Response Formats) para obter valor, no caso do exemplo um Token

application/json

Exemplo (Sample)

{

    "version": 1,

    "sale": null,
    "pay": null,
    "

    "return": {
        "code": 0
    },
    "execution": "cetContinue",
    "interpret": {
        "commandType": "cctGetValue",
        "messageCommand": null,
        "options": null,
        "value": {
            "title": "Cliente fidelidade",
            "subtitle": "Informe o Token",
            "dataType": "cvtToken",
            "size": 0,
            "documentTypes": [
            ]
        },
        "pay": null
    },
    "vouchersPrint": [
    ]
}

Exemplo da venda no convênio : 

...

Neste momento, iria ser apresentada a tela de senha para o cliente informar, mas se o parãmetro (Obter o valor no pinpad) tiver habilitado irá apresentar o retorno do parceiro para validar um token.

...

Requisição do Exemplo (Request) com a resposta do que foi digitado :

{
   {
    "

Authenticator

Event":

{

"cetAfter",
   

   

"

Header

Execution":

{
   

"cetContinue",
   

   

"

Description

ID": "

Autenticacao

00122220240125140628",
   

       

"

IdStore

Operation":

1

"cotUserAuthentication",
   

       

"

IdTerminal

Response":

222

"151516",
    "UserAuthentication": {
        "

IdUser

Header":

2,

{
            "

Method

IdStore":

"mtFinalizadoraConvenio"

1,
            "

MethodStatus

IdTerminal":

"arPending"

222,
            "

MethodTitle

IdUser":

"Autenticacao"

2
        },
        "Sale": {
            "AccountingDate": "2024-01-

23T00

24T00:00:00",
            "AgreedNumber": 138789,
            "AgreementNumber": 252,
            "CooDocument":

27

30,
            "DateTimeIssue": "2024-01-

23T14

25T14:

34

06:

01

28",
            "Document": "97107967000109",
            "DocumentType": "cdtCNPJ",
            "IdDocument":

11071962

11071968,
            "IdentificationType": "citReward",
           

"Items

"

: [
            ],
            "

TotalPay": 1.0000000000000000E+001,
            "TotalSale": 1.0000000000000000E+001
        }
    }

,
    "Event": "cetAfter",
    "Execution": "cetContinue",
    "ID": "00122220240123143401"

,
   

"Operation

"

: "cotAuthenticator",
    "Response": "151516",
    "

Version": 1
}
}


Parceiro trata o retorno e finaliza com um response se estiver de acordo com a venda.

Response do Exemplo (Response) com a resposta cetCompleted:

{

    "version": 1,
    "sale": null,
    "pay": null,
    "return": {
        "code": 0,
        "messageText": "0"
    },
    "execution": "cetCompleted",
    "interpret": null,
    "vouchersPrint": [
    ]
}