Árvore de páginas

Objetivo

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
citInvoiceIdentificação fiscal (Nota fiscal paulista e outros)
citRewardIdentificação de recompensas, parceiros, etc.
citOtherOutras 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 :

  • IdSegment: Integer; – Número do segmento de faturamento
  • OrderNumber: String; – Número da pré-venda de faturamento

Request Example

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
}
],
"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,
"VouchersPrint": []
},
"Version": 1
}

Response Example

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
},
{
"DiscountAmount": 0.111,
"Price": 0.22,
"PartnerCode": 30,
"PromotionCode": "255"
}
],
"PartitionIncrease": [],
"Quantity": 0.111,
"SellerCode": 0,
"IdSegment": 3,
"OrderNumber": 1526,
"Status": "sttValid",
"TotalPrice": 1.55,
"UnitPrice": 20.99
}
],
"discountCodes": [],
"messages": {},
"vouchersPrint": [],
"partitionDiscount": []
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
}
}