Árvore de páginas

Objetivo

Utilizar no inicio da venda quando precisar realizar requisições de integração com a API.

No inicio da venda, pode-se utilizar todos os comandos da API para o PDV aplicar o retorno.
Exemplos : Exibir uma mensagem ou mostrar um menu de opções ou Obter Valor.

Na maioria dos casos, utiliza-se o comando Obter valor no inicio da venda para identificar o Cliente pelo CPF ou CNPJ.

Na Header, temos um campo para identificação do cliente para envio ao parceiro, o campo Identification  que contém os seguintes campos : 

IdentificationType : citInternal (veja a tabela abaixo os tipos de identificações)
DocumentType: cdtCPF  (cdtCNPJ ou cdtCPF) ==> Tipo de documento
Document : 11111111111 ==> Dados do documento apresentado
PartnerCode := 0 ==> Código do parceiro

Valores para TIdentificationType abaixo :  

TIdentificationType Descrição do tipo de identificação
citInternal,Identificação interna
citInvoiceIdentificação fiscal (Nota fiscal paulista e outros)
citRewardIdentificação de recompensas, parceiros, etc.
citOtherOutras identificações
citUnknown Desconhecido

Com o PDV na operação “Início da venda”, a requisição da API trará o “Operation” com valor “cotStartSale”.


Observação importante para Identificação Unificada : Independente do parâmetro de identificação unificada ativo ou não sempre exibir a tela de identificação quando solicitado pelo parceiro através da API Custom do PDV, atualmente quando ativo o parâmetro e anteriormente a operadora abortar uma identificação não abrirá a a tela de identificação solicitado pelo parceiro


Request Example

A API PDV requisitará para o integrador(parceiro) qual ação deverá ser executada, informando o ciclo da operação que ele está “Operation”, a identificação única da operação/documento “ID”, se a ação será executada antes ou após o evento “Event” e qual a versão da API “Version”.

{
"Event": "cetBefore",
"Execution": "cetContinue",
"ID": "001212000628826",
"Operation": "cotStartSale",
"ParkingTicket": null,
"Pay": null,
"Response": "",
"Sale": {
"Discount": 0.0,
"DiscountCodes": [],
"Header": {
"AccountingDate": "2020-12-28T00:00:00",
"DateTimeIssue": "2020-12-28T17:56:42",
"IdDocument": 628826,
"CooDocument": 527,
"IdStore": 1,
"IdTerminal": 212,
"IdUser": 2,
"Identification": [
{
"IdentificationType" : citInternal,
"Document" : LCpfCnpj,
"DocumentType" : 11111111111,
"PartnerCode" : 0
}
],
"Status": "sttValid"
},
"ID": "001212000628826",
"Increase": 0.0,
"Items": [],
"Messages": {
"Customer": [],
"User": []
},
"PartitionDiscount": [],
"PartitionIncrease": [],
"PaymentChange": null,
"Payments": [],
"SolidaryChange": null,
"Total": 0.0,
"VouchersPrint": []
},
"Version": 1
}

Response Example

O integrador(parceiro) responderá para API PDV executar o comando de Exibir mensagem (neste exemplo) “commandType: cctMessage”, informando o título, subtítulo e o texto para a caixa de diálogo, será solicitado também o tipo da mensagem “messageType” e um array com dois botões, aguardando uma resposta informando qual botão foi pressionado pelo operador, “Sim : 1” e “Não : 2”. Obs(Poderão ter nenhum, um ou dois botões na caixa de diálogo).

{
"version": 1,
"sale": {
"increase": 0,
"discount": 0,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [],
"discountCodes": [],
"messages": {
"customer": [],
"user": [],
"vouchersPrint": []
},
"partitionIncrease": [],
"partitionDiscount": [ {
"price": 0,
"partnerCode": 0,
"promotionCode": 801,
"discountAmount": 0
}
]
},
"pay": null,
"return": {
"code": 0
},
"execution": "cetContinue",
"interpret": {
"commandType": "cctMessage",
"messageCommand": {
"title": "Cliente fidelidade",
"subtitle": "Confirmação",
"text": "É um cliente fidelidade?\r\n",
"defaultButton": "Sim",
"messageType": "cmtConfirmation",
"buttons": [
{
"caption": "Sim",
"response": "1"
},
{
"caption": "Não",
"response": "2"
}
]
},
"options": null,
"value": null
},
"vouchersPrint": []
}


Request Example

A API PDV requisitará para o integrador(parceiro) uma nova ação à ser tomada informando qual foi a resposta obtida pela aplicação de PDV, (neste exemplo), foi pressionado o botão Sim, informado no “Response” o valor “1”.

{
"Event": "cetBefore",
"Execution": "cetContinue",
"ID": "001212000628828",
"Operation": "cotStartSale",
"ParkingTicket": null,
"Pay": null,
"Response": "1",
"Sale": {
"Discount": 0.0,
"DiscountCodes": [],
"Header": {
"AccountingDate": "2020-12-28T00:00:00",
"DateTimeIssue": "2020-12-28T18:02:49",
"IdDocument": 628828,
      "CooDocument": 527,
"IdStore": 1,
"IdTerminal": 212,
"IdUser": 2,
"Identification": [],
"Status": "sttValid"
},
"ID": "001212000628828",
"Increase": 0.0,
"Items": [],
"Messages": {
"Customer": [],
"User": []
},
"PartitionDiscount": [],
"PartitionIncrease": [],
"PaymentChange": null,
"Payments": [],
"SolidaryChange": null,
"Total": 0.0,
"VouchersPrint": []
},
"Version": 1
}