Quando houve a necessidade de interação com a API na totalização dos valores do PDV.
Na maioria dos casos, é utilizado para trazer os descontos ou acréscimos que será aplicado na venda atual e a regra fica por conta do parceiro.
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 := 30 ==> Código do parceiro
Valores para TIdentificationType abaixo :
TIdentificationType | Descrição do tipo de identificação |
---|---|
citInternal, | Identificação interna |
citInvoice | Identificação fiscal (Nota fiscal paulista e outros) |
citReward | Identificação de recompensas, parceiros, etc. |
citOther | Outras identificações |
citUnknown | Desconhecido |
Com o PDV na operação Subtotal da venda, a notificação da API trará o Operation com valor cotSubtotalSale, informará também as informações da venda e dos itens.
Temos a opção de informar na integração o segmento e a pré-venda que deu origem a mesma, veja na tag Items :
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”, qual a versão da API “Version”.
Informará também os dados da venda “Sale” e dos itens “Items”.
Na tag "SellerCode", será enviado pelo PDV o vendedor se o mesmo estiver informado na venda.
{
"Event": "cetAfter",
"Execution": "cetContinue",
"ID": "001212000629210",
"Operation": "cotSubtotalSale",
"ParkingTicket": null,
"Pay": null,
"Response": "",
"Sale": {
"Discount": 0.0,
"DiscountCodes": [],
"Header": {
"AccountingDate": "2021-01-13T00:00:00",
"DateTimeIssue": "2021-01-13T15:39:26",
"IdDocument": 629210,
"CooDocument": 527,
"IdStore": 1,
"IdTerminal": 212,
"IdUser": 2,
"Identification": [
{
"IdentificationType": citInternal
"Document": "11111111111",
"DocumentType": "cdtCPF",
"PartnerCode": 30
}
],
"Status": "sttValid"
},
"ID": "001212000629210",
"Increase": 0.0,
"Items": [
{
"BarCode": "255",
"CaptionPacking": "UN",
"Description": "CARNE BOVINA kg ENTRECO NOIA SEARA",
"DiscountPrice": 0.77,
"IncreasePrice": 0.0,
"InternalCode": "258",
"ItemNumber": 1,
"PackingQuantity": 1.0,
"PartitionDiscount": [
{
"DiscountAmount": 0.111,
"PartnerCode": 0,
"Price": 0.77,
"PromotionCode": 0,
"IncreDiscType": 2
}
],
"PartitionIncrease": [],
"Quantity": 0.111,
"SellerCode": 0,
"Status": "sttValid",
"IdSegment": 3,
"OrderNumber": 1526,
"TotalPrice": 1.55,
"UnitPrice": 20.99
}
],
"Messages": {
"Customer": [],
"User": []
},
"PartitionDiscount": [],
"PartitionIncrease": [],
"PaymentChange": null,
"Payments": [],
"SolidaryChange": null,
"Total": 1.55,
"Observation": "",
"VouchersPrint": []
},
"Version": 1
}
O integrador(parceiro) responderá para API PDV executar o tratamento devido no PDV. No caso abaixo, esta trazendo um desconto adicional de R$0,22 centavos para ser aplicado no PDV.
{
"version": 1,
"execution": "cetCompleted",
"interpret": null,
"sale": {
"increase": 0,
"discount": 0.0,
"total": 1.33289,
"payments": [],
"paymentChange": null,
"items": [
{
"BarCode": "255",
"CaptionPacking": "UN",
"Description": "CARNE BOVINA kg ENTRECO NOIA SEARA",
"DiscountPrice": 0.77,
"IncreasePrice": 0.0,
"InternalCode": "258",
"ItemNumber": 1,
"PackingQuantity": 1.0,
"PartitionDiscount": [
{
"DiscountAmount": 0.111,
"PartnerCode": 0,
"Price": 0.77,
"PromotionCode": 0,
"IncreDiscType": 1
},
{
"DiscountAmount": 0.111,
"Price": 0.22,
"PartnerCode": 30,
"PromotionCode": "255",
"IncreDiscType": 2
}
],
"PartitionIncrease": [],
"Quantity": 0.111,
"SellerCode": 0,
"IdSegment": 3,
"OrderNumber": 1526,
"Status": "sttValid",
"TotalPrice": 1.55,
"UnitPrice": 20.99
}
],
"discountCodes": [],
"messages": {},
"vouchersPrint": [],
"observation": "Voce poderia ter economizado com o Clube",
"partitionDiscount": []
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
}
}