Árvore de páginas

Versões comparadas

Chave

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

...

Quando o PDV estiver com a operação de finalização da venda o parceiro poderá solicitar uma forma de pagamento para o operador, como por exemplo, pagamento com cashback utilizando a função Obter Valor e um leitor de QRCode.

No caso do QRCode, a operadora pode confirmar ou cancelar pressionando o botão ‘Esc’.

...

Os outros parâmetros são encontrados no Comando Desconto na VendaClique aqui e acesse a documentação.

Response Example

Exemplo Fluxo de Pagamento

No exemplo abaixo foram:
1 – Vinculado uma forma de pagamento ao parceiro;
2 – Adicionado uma função obter valor para captura do QRCode;
No Início da venda, foi inserido um produto e teclado Enter. Após todos os produtos inseridos, foi acionada a função para finalização da venda.

Image AddedImagem 1 – Tela Pagamento

3- Selecionado forma de pagamento vinculado ao parceiro.

Ao confirmar a forma de pagamento será disparado uma requisitão(Request) via JSON para o parceiro.

Image Added

Imagem 2 – Tela Pagamento

Exemplo JSON Request para o parceiro

{
"version": 1,
"sale": {
"increase": 0,
"discount": 0,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [],
"discountCodes": [],
"messages": {
"customer": [
{
"text": "Ganhou 1000 pontos nessa compra\r\n"
}
],
{ "Event": "cetBefore", "Execution": "cetContinue", "ID": "001600000591145", "Operation": "cotSalePayment", "Pay"{ "Discount": 0, "Increase": 0, "PaymentNumber": 1, "Total": 4.99 }, "Sale"{ "Discount": 0, "Header"{ "AccountingDate": "2020-03-10T00 00 00", "userDateTimeIssue": [
"2020-03-10T16 57 34", "IdDocument": 591145, {
"IdStore": 1, "textIdTerminal": "Ganhou600, 100 pontos nessa compra\r\n"
"IdUser": 2, }
"Status"": sttValid" ]
}, },"ID": "001600000591145",
"vouchersPrintIncrease": 0, "Items"[
{
"textBarCode": "7891000100103", CUPOM DESCONTO 1\r\n\r\n Cupom de 5% de desconto para \r\npróxima\r\ncompra, aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567890\r\n[ImpFimBarra]\r\n"
"CaptionPacking": "UN", "Description": "MOCA", },
{
"DiscountAmount": 0, "textDiscountPrice": "0, CUPOM DESCONTO 2\r\n\r\n Cupom de 10% de desconto para \r\npróxima\r\ncompra, aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567890\r\n[ImpFimBarra]\r\n"
"IncreasePrice": 0, "InternalCode": "4900", }
],
"partitionIncreaseItemNumber": [],
"partitionDiscount": [
1, "PackingQuantity": 1, {
"priceQuantity": 01,
"partnerCodeStatus": 0"sttValid",
"promotionCodeTotalPrice": 5114.99,
"discountAmountUnitPrice": 0
4.99 }
]
, },
"payTotal": {
4.99 }, "totalVersion": 1 }

4- O parceiro retorna informando que é necessário obter um valor do QRCode. Após a leitura e confirmação do QRCode, o pagamento é finalizado.

Exemplo JSON Response recebido do parceiro 

{
  "version": 1,
  "sale"{
 .49,
"discount": 0,
"increase": 0,
"paymentNumberdiscount": 29,
0.1, "authorizationCodetotal": "FD455FKL34SS1100AXV",
0, "idWallet": "123456",
items"[ { "typeWallet": "1",
"installmentAmountitemNumber": 1,
"transactionCode": "000080014",
"networkCardunitPrice": "00125",
0, "flagCard": "00002",
"vouchersPrintincreasePrice": [
0, {
"textpackingQuantity": "0, RECEBO PAGAMENTO, CONVENIO: \r\n\r\n N. 100, Vlr. Compra"quantity": 99,99\r\n"
0, },
"totalPrice": 0, {
"discountPrice": 0.0499, "text "status": "sttValid", RECEBO PAGAMENTO, CONVENIO: \r\n\r\n N. 100, Vlr. Compra: 99,99\r\n"
"partitionDiscount"[ }
{ ],
"identification": {
"documentdiscountAmount": "11263629059"1,
"partnerCode": 0,
"documentTypeprice": "cdtCPF"
0.0499, }
},
"return": {
"codepartnerCode": 0
, },
"execution": "cetContinue",
"interpret": {
"commandType": "cctGetValue",
"messageCommandpromotionCode": null,
193 "options": null,
"value": {
} "title": "Leitura de codigo",
] "subtitle": "Teste Pagamento",
} ], "defaultValuepartitionDiscount": "1234567890123456789",
[ { "dataType": "cvtQRCode",
"sizediscountAmount": 01,
"documentTypesprice": []
0.1, }
"partnerCode": },
0, "vouchersPrintpromotionCode": []
}

Exemplo Fluxo de Pagamento

No exemplo abaixo foram:
1 – Vinculado uma forma de pagamento ao parceiro;
2 – Adicionado uma função obter valor para captura do QRCode;
No Início da venda, foi inserido um produto e teclado Enter. Após todos os produtos inseridos, foi acionada a função para finalização da venda.

Image RemovedImagem 1 – Tela Pagamento

Selecionado forma de pagamento vinculado ao parceiro.

Image Removed

Imagem 2 – Tela Pagamento

JSON enviado para o parceiro

{
  "Event": "cetBefore",
  "Execution": "cetContinue",
  "ID": "001600000591145",
  "Operation": "cotSalePayment",
  "Pay"{949
       }
     ]
   },
  "pay"{
     "total": 4.99,
     "discount": 0,
     "increase": 0,
     "paymentNumber": 1,
     "authorizationCode": "FD455FKL34SS1100AXV",
     "vouchersPrint"[
     "Discount": 0,
   {
  "Increase": 0,
       "PaymentNumbertext": 1,
     "Total":" RECEBO PAGAMENTO, CONVENIO \r\n\r\n N. 100, Vlr. Compra 4.99\r\n"
   },
  "Sale"{
   },
  "Discount": 0,
     "Header"{
         "AccountingDatetext": "2020-03-10T00 00RECEBO 00"PAGAMENTO,
 CONVENIO \r\n\r\n N. 100, Vlr. Compra 4.99\r\n"
  "DateTimeIssue": "2020-03-10T16 57 34",
   }
     "IdDocument": 591145],
        "IdStore": 1,identifcation"{
        "IdTerminaldocument": 600"11263629059",
        "IdUserpartnerCode": 20,
        "StatusdocumentType"": sttValid"cdtCPF"
      },
   },
  "ID": "001600000591145",return"{
     "Increasecode": 0,
   },
  "execution": "ItemscetContinue"[,
        "interpret"{
         "BarCodecommandType": "7891000100103cctGetValue",
     "value"{
        "CaptionPackingtitle": "UNLeitura de codigo",
         "Descriptionsubtitle": "MOCATeste Pagamento",
         "DiscountAmountdefaultValue": 0"4E639435-32FB-4386-8777-06E458EFCF8F",
         "DiscountPricedataType": 0"cvtQRCode",
         "IncreasePricesize": 0,4000
      }
   "InternalCode": "4900",
         "ItemNumber": 1,
         "PackingQuantity": 1,
         "Quantity": 1,
         "Status": "sttValid",
         "TotalPrice": 4.99,
         "UnitPrice": 4.99
        }
      ],
     "Total": 4.99
   },
  "Version": 1
}

O parceiro retorna informando que é necessário obter um valor do QRCode. Após a leitura e confirmação do QRCode, o pagamento é finalizado.

Image RemovedImagem 3 – Pagamento QR Code

JSON enviado para o parceiro

{
  "version": 1,
  "sale"{
     "increase": 0,
     "discount": 0.1,
     "total": 0,
     "items"[
        {
         "itemNumber": 1,
         "unitPrice": 0,
         "increasePrice": 0,
         "packingQuantity": 0,
         "quantity": 0,
         "totalPrice": 0,
         "discountPrice": 0.0499,
         "status": "sttValid",
         "partitionDiscount"[
             {
              "discountAmount": 1,
              "price": 0.0499,
              "partnerCode": 0,
              "promotionCode": 193
            }
          ]
       }
     ],
    "partitionDiscount"[
       {
         "discountAmount": 1,
         "price": 0.1,
         "partnerCode": 0,
         "promotionCode": 949
       }
     ]
   },
  "pay"{
     "total": 4.99,
     "discount": 0,
     "increase": 0,
     "paymentNumber": 1,
     "authorizationCode": "FD455FKL34SS1100AXV",
     "vouchersPrint"[
        {
         "text": " RECEBO PAGAMENTO, CONVENIO \r\n\r\n N. 100, Vlr. Compra 4.99\r\n"
        },
        {
         "text": " RECEBO PAGAMENTO, CONVENIO \r\n\r\n N. 100, Vlr. Compra 4.99\r\n"
        }
      ],
     "identifcation"{
        "document": "11263629059",
        "partnerCode": 0,
        "documentType": "cdtCPF"
      }
   },
  "return"{
     "code": 0
   },
  "execution": "cetContinue",
  "interpret"{
     "commandType": "cctGetValue",
     "value"{
        "title": "Leitura de codigo",
        "subtitle": "Teste Pagamento",
        "defaultValue": "4E639435-32FB-4386-8777-06E458EFCF8F",
        "dataType": "cvtQRCode",
        "size": 4000
      }
   }
}
}
}

5- Com este retorno a aplicação retorna a mensagem na tela do operador conforme o parceiro solicitou:

Image AddedImagem 3 – Pagamento QR Code


6 - O operador irá CANCELAR(Esc) ou CONFIRMAR(Enter), para seguir e devolver ao parceiro a resposta num REQUEST.

Exemplo de JSON Request enviado ao parceiro com a resposta "Ok"

{
    "Event": "cetBefore",
    "Execution": "cetContinue",
    "ID": "001222010768134",
    "Operation": "cotSalePayment",
    "ParkingTicket": null,
    "Pay": {
        "AuthorizationCode": "",
        "Discount": 0.0,
        "ExpirationDateCard": "",
        "FirstDigitCard": "",
        "FlagCard": "",
        "IDPayment": "",
        "IdWallet": "",
        "Identification": null,
        "Increase": 0.0,
        "InstallmentAmount": 0,
        "LastDigitCard": "",
        "NetworkCard": "",
        "OwnerCard": "",
        "PaymentNumber": 333,
        "PaymentType": "cptBillet",
        "Thing": 0.0,
        "Total": 2.0,
        "TransactionCanceledCode": "",
        "TransactionCode": "",
        "TypeWallet": "",
        "VouchersPrint": []
    },
    "Response": "OK",
    "Sale": {
        "Discount": 0.0,
        "DiscountCodes": [],
        "Header": {
            "AccountingDate": "2023-02-09T00:00:00",
            "DateTimeIssue": "2023-02-09T16:54:12",
            "IdDocument": 10768134,
            "IdInvoiceKey": "",
            "IdStore": 1,
            "IdTerminal": 222,
            "IdUser": 2,
            "Identification": [],
            "Status": "sttValid"
        },
        "ID": "001222010768134",
        "Increase": 0.0,
        "Items": [
            {
                "BarCode": "417618",
                "CaptionPacking": "UN",
                "Description": "SORVETE NESTLE 2 LITROS *CREME",
                "DiscountPrice": 0.0,
                "IdSegment": 3,
                "IncreasePrice": 0.0,
                "InternalCode": "24",
                "ItemNumber": 1,
                "OrderNumber": "",
                "PackingQuantity": 1.0,
                "PartitionDiscount": [],
                "PartitionIncrease": [],
                "Quantity": 1.0,
                "SellerCode": 0,
                "Status": "sttValid",
                "TotalPrice": 2.0,
                "UnitPrice": 2.0
            }
        ],
        "Messages": {
            "Customer": [],
            "User": []
        },
        "PartitionDiscount": [],
        "PartitionIncrease": [],
        "PaymentChange": null,
        "Payments": [],
        "Print": null,
        "SolidaryChange": null,
        "TaxDocument": null,
        "Total": 2.0,
        "VouchersPrint": []
    },
    "Version": 1
}

7 - O Parceiro devolve ao PDV via JSON Response com todas as informações de pagamentos preenchidas.

Veja abaixo exemplo do JSON:

{
    "version": 1,
    "sale": {
        "increase": 0,
        "discount": 0,
        "total": 0,
        "header": null,
        "payments": [],
        "paymentChange": null,
        "solidaryChange": null,
        "items": [
            {
                "itemNumber": 1,
                "unitPrice": 0,
                "increasePrice": 0,
                "packingQuantity": 0,
                "quantity": 0,
                "totalPrice": 0,
                "discountPrice": 0.2,
                "status": "sttValid",
                "sellerCode": 0,
                "partitionIncrease": [],
                "partitionDiscount": [
                    {
                        "price": 0.1,
                        "partnerCode": 0,
                        "promotionCode": 48,
                        "discountAmount": 1
                    },
                    {
                        "price": 0.1,
                        "partnerCode": 0,
                        "promotionCode": 67,
                        "discountAmount": 1
                    }
                ]
            }
        ],
        "discountCodes": [],
        "messages": {
            "customer": [
                {
                    "text": "Ganhou 1000 pontos nessa compra\r\n"
                }
            ],
            "user": [
                {
                    "text": "Ganhou 100 pontos nessa compra\r\n"
                }
            ]
        },
        "vouchersPrint": [
            {
                "text": "  CUPOM DESCONTO 1\r\n\r\n   Cupom de 5% de desconto para \r\npróxima\r\ncompra, aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567890\r\n[ImpFimBarra]\r\n"
            },
            {
                "text": "  CUPOM DESCONTO 2\r\n\r\n   Cupom de 10% de desconto para \r\npróxima\r\ncompra, aplicado para todos os \r\nprodutos.\r\n\r\n[ImpBarra]1234567890\r\n[ImpFimBarra]\r\n"
            }
        ],
        "partitionIncrease": [],
        "partitionDiscount": [
            {
                "price": 0,
                "partnerCode": 0,
                "promotionCode": 641,
                "discountAmount": 0
            }
        ],
        "taxDocument": null,
        "print": {
            "printType": "\u0000\u0000\u0005\u0000\u0002)�\u0000\u0002\u0000\u0002O�\u0000\u0002\u0000\u0002x�\u0000\u0002\u0000\u0002��\u0000\u0002\u0000\u0002��\u0000\u0002\u0000\u0002\u0000\u0000\u0000(��\u0000\u0004\u0000\u0000�\u0004\u0000\u0000�\u0001\u0000\u0000\u0000\u0000\u0000\u0000�\u0000\u0000\u0000���\u000BCommandTypeL�\u0000\b\u0000\u0000�\b\u0000\u0000�\u0001\u0000\u0000\u0000\u0000\u0000\u0000�\u0000\u0000\u0000���\u000EMe"
        }
    },
    "pay": {
        "total": 2,
        "discount": 0,
        "increase": 0,
        "paymentNumber": 333,
        "authorizationCode": "FD455FKL34SS1100AXV",
        "idWallet": "123456",
        "typeWallet": "1",
        "installmentAmount": 1,
        "transactionCode": "000080014",
        "networkCard": "00125",
        "flagCard": "00002",
        "vouchersPrint": [
            {
                "text": "  RECEBO PAGAMENTO, CONVENIO: \r\n\r\n   N. 100, Vlr. Compra: 99,99\r\n"
            },
            {
                "text": "  RECEBO PAGAMENTO, CONVENIO: \r\n\r\n   N. 100, Vlr. Compra: 99,99\r\n"
            }
        ],
        "identification": {
            "document": "11263629059",
            "partnerCode": 0,
            "documentType": "cdtCPF",
            "identificationType": "citUnknown"
        },
        "paymentType": "cptBillet",
        "thing": 0
    },
    "return": {
        "code": 0,
        "messageText": "0"
    },
    "execution": "cetCompleted",
    "interpret": null,
    "vouchersPrint": []
}


8 - A partir deste ponto, é finalizada a venda na forma de pagamento informada, irá fechar o cupom e imprimir o comprovante que o parceiro poderá enviar.

Exemplo do comprovante Comprovante impresso no final da venda.

...