Á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’.

...

PARÂMETROTIPOOBRIGATÓRIODESCRIÇÃO
VersionstringtrueVersão da API
ExecutionstringtrueTipo da execução cetContinue, cetInterrupt, cetFailed
TotalDoublefalseTotal do pagamento realizado
DiscountDoubleDiscountDoublefalseDesconto no total pago na venda
IncreaseDoublefalseAcréscimo no total pago na venda
PaymentNumberIntegertrueNúmero da forma de pagamento
AuthorizationCodeText(15)trueCódigo de autorização do pagamento
VouchersPrintArray of objectsfalseInformações para impressão do recibo do pagamento


ParâmetroTipoDescrição
TextStringTexto a ser impresso no recibo de pagamento
IdentifcationArray of objectsfalseInformações para identificação do cliente


ParâmetroTipoDescrição
DocumentStringNúmero do documento de
identificação do cliente
PartnerCodeIntegerCódigo do parceiro
DocumentTypeStringTipo de documento de
identificação

TransactionCanceledCode

String

false

NSU Cancelamento

InstallmentAmount

Integer

false

Quantidade de parcelas

FirstDigitCard

String

false

BIN do cartão

LastDigitCard

String

false

Últimos dígitos do cartão

FlagCard

String

false

Código da bandeira do cartão

OwnerCard

String

false

Nome do dono do cartão

ExpirationDateCard

String

false

Data de validade do cartão

IdWallet

String

false

ID da carteira digital

TypeWallet

String

false

Tipo da carteira digital

NetworkCard

String

false

Código da rede

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

Response Example

PaymentType Stringfalse

Tipo do Pagamento 

Exemplo:

mtFinalizadoraDinheiro ==> cptMoney;
mtFinalizadoraCheque ==> cptCheck;
mtFinalizadoraCartaoCredito ==> cptCreditCard;
mtFinalizadoraCartaoDebito ==> cptDebitCard;
mtFinalizadoraPos ==> cptPOS;
mtFinalizadoraTicket ==> cptPaperTicket;
mtFinalizadoraConvenio ==> cptAgreement;
mtFinalizadoraValeCredito ==> cptWorthCredit;
mtFinalizadoraValeDebito ==> cptWorthDebit;
mtFinalizadoraBoleto ==> cptBillet;
mtFinalizadoraNotaPromissoria ==> cptPromissoryNote;
mtFinalizadoraFinanceiro ==> cptFinancialCredit;
mtFinalizadoraCarteiraDigital ==> cptDigitalWallet;


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


Parametros para configurar o recurso para habilitar a forma de pagamento integrando ao parceiro,

Image Added


Podemos incluir como método estas ações do parceiro, estes parametros são para quando o parceiro quiser ter o acionamento de sua própria função no PDV.

Image Added


Image Added


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 um 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"
}
],
"user": [ {
"text": "Ganhou 100 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", }
"DateTimeIssue": "2020-03-10T16 57 34", "IdDocument": 591145,
     
] "CooDocument": 527,
"IdStore": 1,
},
"IdTerminal": 600, "vouchersPrintIdUser": [2, {
"Status"": sttValid" }, "ID": "001600000591145", "textIncrease": "0, CUPOM DESCONTO 1\r\n\r\n Cupom de"Items"[ 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"
"BarCode": "7891000100103", },
"CaptionPacking": "UN", "Description": "MOCA", {
"DiscountAmount": 0, "DiscountPrice": 0, "IncreasePrice": 0, "textInternalCode": "4900", 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"
"ItemNumber": 1, "PackingQuantity": 1, "Quantity": 1, }
"Status": "sttValid", "TotalPrice": 4.99, ],
"UnitPrice": 4.99 "partitionIncrease": [],
} ], "partitionDiscountTotal": [ {
4.99 }, "Version": 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"{
     "increase": 0,
     "discount": 0.1,
          "pricetotal": 0,
"items"[ { "itemNumber": 1, "partnerCodeunitPrice": 0,
"increasePrice": 0, "packingQuantity": 0, "promotionCodequantity": 5110,
"totalPrice": 0, "discountPrice": 0.0499, "status": "sttValid", "discountAmount": 0
"partitionDiscount"[ { "discountAmount": 1, }
"price": 0.0499, "partnerCode": 0, ]
},
"paypromotionCode": {
193 "total": 4.49,
} ] "discount": 0,
} "increase": 0],
"partitionDiscount"[ "paymentNumber": 29,
{ "authorizationCodediscountAmount": "FD455FKL34SS1100AXV"1,
"idWalletprice": "123456",
0.1, "typeWalletpartnerCode": "1"0,
"installmentAmountpromotionCode": 1,
949 } "transactionCode": "000080014",
] }, "pay"{ "networkCardtotal": "00125",
4.99, "discount": 0, "flagCardincrease": "00002"0,
"vouchersPrintpaymentNumber": [1, {
"authorizationCode": "FD455FKL34SS1100AXV", "vouchersPrint"[ { "text": " RECEBO PAGAMENTO, CONVENIO: \r\n\r\n N. 100, Vlr. Compra: 4.99,99\r\n"
}, { "text": " RECEBO }PAGAMENTO,
CONVENIO \r\n\r\n N. 100, Vlr. Compra 4.99\r\n" } ], {
"identifcation"{ "document": "11263629059", "partnerCode": 0, "textdocumentType": "cdtCPF" RECEBO PAGAMENTO, CONVENIO: \r\n\r\n N. 100,} Vlr. Compra: 99,99\r\n"
}, "return"{ "code": 0 }, "execution": "cetContinue", "interpret"{ "commandType": "cctGetValue", }
"value"{ "title": "Leitura de codigo", "subtitle": ],
"Teste Pagamento", "identificationdefaultValue": {
"4E639435-32FB-4386-8777-06E458EFCF8F", "dataType": "cvtQRCode", "size": 4000 } "document": "11263629059",
"partnerCode": 0,
"documentType": "cdtCPF"
}
},
"return": {
"code": 0
},
"execution": "cetContinue",
"interpret": {
"commandType": "cctGetValue",
"messageCommand": null,
"options": null,
"value": {
"title": "Leitura de codigo",
"subtitle": "Teste Pagamento",
"defaultValue": "1234567890123456789",
"dataType": "cvtQRCode",
"size": 0,
"documentTypes": []
}
},
"vouchersPrint": []
}

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",
  56"Operation""cotSalePayment",
  "Pay"{
    "Discount"0,
    "Increase"0,
    "PaymentNumber"1,
    "Total"4.99
  },
  "Sale"{
    "Discount"0,
    "Header"{
      "AccountingDate""2020-03-10T00 00 00",
      "DateTimeIssue""2020-03-10T16 57 34",
      "IdDocument"591145,
      "IdStore"1,
      "IdTerminal"600,
      "IdUser"2,
      "Status""sttValid"
    },
    "ID""001600000591145",
    "Increase"0,
    "Items"[
      {
        "BarCode""7891000100103",
        "CaptionPacking""UN",
        "Description""MOCA",
        "DiscountAmount"0,
        "DiscountPrice"0,
        "IncreasePrice"0,
        "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,

            "CooDocument": 527,
            "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.

...