Árvore de páginas

Versões comparadas

Chave

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

Objetivo

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ÂMETROTIPOOBRIGATÓRIODESCRIÇÃO
ExecutionstringtrueTipo da execução cetContinue, cetInterrupt, cetFailed
VersionstringtrueVersão da API
TextString ListtrueTexto 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 VendaClique aqui e acesse a documentação.

Tags de Impressã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:

  • [ImpExpandidoUmaLinha] – Início da impressão de texto estendido;
  • [ImpFimExpandido] – Fim da impressão de texto estendido;
  • [ImpNegrito] – Fim da impressão em negrito;
  • [ImpFimNegrito] – Início da impressão em negrito;
  • [ImpBarra] – Início da impressão de código de barras;
  • [ImpFimBarra] – Fim da impressão de código de barras.

Response Example

{
"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"
} ] }

Exemplo Fluxo de Abono no Ticket de Estacionamento

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.

Image Modified

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. 

Image AddedImagem 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. 

Image AddedImagem 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"
} } }

...

Image RemovedImagem 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. 

Image RemovedImagem 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.

Image ModifiedImagem 4 – Texto Cupom