Integrar o PDV com cancelas de estacionamento para abono de tickets. No fnal da venda o PDV poderá imprimir o comprovante de abono, esta impressão é opcional.
...
O PDV precisa estar com a operação de finalização da venda, na operação de Início da venda e Subtotal da venda não será aplicado, pois a validação de ticket é realizado no final, quando há uma finalização de cupom.
O campo com número da chave do SAT ou chave da NFC-e, é o campo IdInvoiceKey, que no final da venda será populado e passado para o parceiro.
PARÂMETRO | TIPO | OBRIGATÓRIO | DESCRIÇÃO |
Execution | string | true | Tipo da execução cetContinue, cetInterrupt, cetFailed |
Version | string | true | Versão da API |
Text | String List | true | Texto que será exibido nos cupons impressos no final da compra |
...
Informações adicionais sobre o ticket de estacionamento podem ser encontradas no Comando Cupom Desconto na Venda. Clique aqui e acesse a documentação.
Será possível a utilização de tags de impressão, que poderão ser envidas no Response nos parâmetros “vouchersPrint” e “text”, sendo elas:
{
"version": 1,
"execution": "cetCompleted",
"vouchersPrint": [
{
"text": " RECEBO TICKET ESTACIONAMENTOrnrn N. 12345678901234, liberado até 20 00 horasrn"
},
{
"text": " RECEBO TICKET ESTACIONAMENTOrnrn N. 12345678901234, liberado até 20 00 horasrn"
}
]
}
Início da venda no PDV, foi inserido um produto e teclado Enter. Após todos os produtos inseridos, foi acionada a função para finalização da venda.
Imagem 1 – Tela Pagamento
...
JSON enviado ao parceiro
{
...
"Event": "cetAfter",
...
...
"Execution": "cetContinue",
...
...
"ID": "
...
001222001206915",
...
...
"Operation": "cotParkingTicketEndSale",
"ParkingTicket": {
"ParkingCourtesy": [
{
"MinutesFree": 0,
"SaleValue": 2.9989999999999998E+001,
"TariffCode": "1"
},
{
"MinutesFree": 30,
"SaleValue": 5.9990000000000002E+001,
"TariffCode": "2"
},
{
"MinutesFree": 150,
"SaleValue": 1.9999000000000001E+002,
"TariffCode": "6"
},
{
"MinutesFree": 180,
"SaleValue": 2.2999000000000001E+002,
"TariffCode": "7"
},
{
"MinutesFree": 720,
"SaleValue": 9.9990000000000000E+003,
"TariffCode": "8"
}
],
"ParkingCust": [
{
"MinutesRate": 15,
"PeriodCust": 1.0000000000000000E+000
},
{
"MinutesRate": 30,
"PeriodCust": 0.0000000000000000E+000
},
{
"MinutesRate": 60,
"PeriodCust": 1.0000000000000000E+001
},
{
"MinutesRate": 120,
"PeriodCust": 2.0000000000000000E+001
},
{
"MinutesRate": 240,
"PeriodCust": 2.0000000000000000E+001
}
]
},
"Pay": null,
"Response": "",
"Sale": {
"Discount": 0.0000000000000000E+000,
"DiscountCodes": [],
"Header": {
"AccountingDate": "2021-11-12T00:00:00",
"DateTimeIssue": "2021-11-12T18:01:23",
"IdDocument": 1206915,
"CooDocument": 527,
"IdInvoiceKey": "29211110010000288049657020000004439239121219",
"IdStore": 1,
"IdTerminal": 222,
"IdUser": 2,
"Identification": [],
"Status": "sttValid"
},
"ID": "001222001206915",
"Increase": 0.0000000000000000E+000,
"Items": [],
"Messages": {
"Customer": [],
"User": []
},
"PartitionDiscount": [],
"PartitionIncrease": [],
"PaymentChange": null,
"Payments": [],
"SolidaryChange": null,
"Total": 1.3949999999999999E+001,
"VouchersPrint": []
},
"Version": 1
}
JSON retornado pelo parceiro com uma solicitação de valor
{
"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"
}
]
},
"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": 357,
"discountAmount": 0
}
]
},
"pay": null,
"return": {
"code": 0
},
"execution": "cetContinue",
"interpret": {
"commandType": "cctGetValue",
"messageCommand": null,
"options": null,
"value": {
"title": "Ticket de estacionamento",
"subtitle": "Informe o número",
"dataType": "cvtString",
"size": 0,
"documentTypes": [
"cdtCPF",
"cdtCNPJ"
]
}
},
"vouchersPrint": [
{
"text": " RECEBO TICKET ESTACIONAMENTO\r\n\r\n N. 12345678901234, liberado até 20:00 horas\r\n"
},
{
"text": " RECEBO TICKET ESTACIONAMENTO\r\n\r\n N. 12345678901234, liberado até 20:00 horas\r\n"
}
]
}
Tela apresentada ao operador.
Imagem 2 – Tela de Pagamento
JSON enviado ao parceiro
{
"version": 1,
"sale": {
"increase": 0,
"discount": 0,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [],
"discountCodes": [],
"messages": {
"customer": [
{
, "Sale"{ "Header"{ "AccountingDate""2020-02-14T00 00 00", "DateTimeIssue""2020-02-14T08 42 29", "IdDocument"154775, "IdStore"1, "IdTerminal"1, "IdUser"2, "Status""sttValid" }, "ID""001001000154775", "Total"11.98 }, "ParkingTicket"{ "ParkingCourtesy"[ { "MinutesFree"0, "text": "Ganhou 1000 pontos nessa compra\r\n"
}
],
"SaleValue"5.00, user": [
{
"TarifCodetext""0" : "Ganhou 100 pontos nessa compra\r\n"
},
{ ]
},
"MinutesFreevouchersPrint"60, : [
"SaleValue"15.00, {
"TarifCodetext": " 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"
},
{
"MinutesFreetext"120, : " CUPOM DESCONTO 2\r\n\r\n Cupom de "SaleValue"20.00, "TarifCode""1" 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": [],
"ParkingCustpartitionDiscount": [
{
"MinutesRateprice"60, : 0,
"PeriodCust"3.00 partnerCode": 0,
}, "promotionCode": 300,
{ "MinutesRate"120, discountAmount": 0
"PeriodCust"6.00 }
]
},
"pay": null,
"return": {
"code": 0,
"messageText": "MinutesRate"240, "PeriodCust"9.00 0"
},
"execution": "cetCompleted",
"interpret": null,
"vouchersPrint": [
}, {
{ "text": " RECEBO TICKET ESTACIONAMENTO\r\n\r\n N. 12345678901234, "MinutesRate"9999, liberado até 20:00 horas\r\n"
},
{
"PeriodCust"5.00 } ] } }text": " RECEBO TICKET ESTACIONAMENTO\r\n\r\n N. 12345678901234, liberado até 20:00 horas\r\n"
}
]
}
Tela apresentada ao operador.
Imagem 3 – Tela de Pagamento
JSON retornado pelo parceiro
...
{
"version": 1,
"execution""cetContinue", sale": {
"increase": 0,
"interpret"{ discount": 0,
"commandType""cctGetValue", total": 0,
"header": null,
"valuepayments"{ : [],
"title""Ticket de estacionamento", "paymentChange": null,
"solidaryChange": null,
"items": [],
"discountCodes": [],
"subtitle""Informe o número", messages": {
"customer": [
{
"dataTypetext""cvtString", : "Ganhou 1000 pontos nessa compra\r\n"
}
],
"user": [
{
"size"14 text": "Ganhou 100 pontos nessa compra\r\n"
} } }
...
Imagem 2 – Tela de Pagamento
...
]
},
"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": 300,
"discountAmount": 0
}
]
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
},
"execution": "cetCompleted",
"interpret": null,
"vouchersPrint": [
{
{
"Version"1"Event""cetAfter",
"Execution""cetContinue",
"ID""001001000154775",
"Operation""cotParkingTicketEndSale",
"Response""12345678901234"
}
Tela apresentada ao operador.
Imagem 3 – Tela de Pagamento
JSON retornado pelo parceiro
{ "version"1, "execution""cetCompleted", "vouchersPrint"[ { "text": " RECEBO TICKET ESTACIONAMENTO\r\n\r\n N. 12345678901234, liberado até 20 :00 horas\r\n"
},
{
"text": " RECEBO TICKET ESTACIONAMENTO\r\n\r\n N. 12345678901234, liberado até 20 :00 horas\r\n"
}
]
}
Exemplo de texto impresso no cupom.
Imagem 4 – Texto Cupom