Árvore de páginas

Objetivo

Permitir que o PDV aplique descontos na venda atual. O parceiro receberá o JSON com as informações da venda, devendo colocar o desconto nos itens, para retornar as informações ao PDV.

O parceiro pode configurar uma mensagem caso necessário, por exemplo, informando quanto de desconto o cliente ganhou ou quantos pontos ele ganhou com a compra.

O PDV precisa estar com a operação de Subtotal da venda, na operação de Início da venda e Finalização da venda não serão aplicados descontos.

O desconto poderá ser recebido mais de uma vez, quando o fluxo voltar para o PDV solicitando um novo desconto. A seguir exemplos de como executar esta operação.

PARÂMETROTIPOOBRIGATÓRIODESCRIÇÃO
VersionstringtrueVersão da API
ExecutionstringtrueTipo da execução cetContinue, cetInterrupt, cetFailed
IncreasedoubletrueValor total dos acréscimos na venda
DiscountdoubletrueValor total dos descontos na venda
TotaldoubletrueValor total da venda
ItemNumberdoubletrueNúmero do item
UnitPricedoubletrueValor bruto do produto
IncreasePricedoubletrueAcréscimo no item
PackingQuantitydoubletrueQuantidade itens por embalagem
QuantitydoubletrueQuantidade de itens
TotalPricedoubletrueValor total do item após descontos e acréscimos
DiscountPricedoubletrueValor total dos descontos aplicados nos itens
StatusstringtrueStatus do item. Tipo de dado (sttValid, sttCanceled)
TextstringtrueTexto da mensagem customizada
PartitionDiscountarray of
objects
falseDistribuição do total de descontos nos itens por regras de
descontos e parceiros


ParâmetroTipoDescrição
PartnerCodestringCódigo do parceiro
PricestringValor do desconto
PromotionCodeInt32Código da promoção
DiscountAmountdoubleQuantidade de descontos aplicados
IncreDiscTypeInt32

Tipos de descontos aplicados

  • Desconto no cupom = 1
  • Desconto no item = 2
  • Desconto no pagamento = 3
  • Desconto do combo = 5
  • Desconto de embalagem = 6
  • Desconto do produto composto = 9
  • Desconto do troco = 10
  • Desconto do TEF = 11
  • Desconto de PMC = 12
  • Desconto da diferença de Preco = 13
  • Desconto do preco promocional = 14
  • Desconto de regra incentivo no item = 21
  • Desconto de regra incentivo no cupom = 22
  • Desconto de regra incentivo no pagamento = 23
  • Desconto de pontuação = 24
  • Cupom de desconto no Item = 25
  • Cupom de desconto no cupom = 26
  • Desconto de selo = 27
  • Desconto de colecao = 28
  • Desconto de ICMS Desonerado = 34
  • Desconto de ICMS = 51
  • Desconto da suframa = 52
  • Desconto no segmento = 61
  • Desconto no Brinde = 71
  • Desconto de PBM = 72
  • Desconto de regra sacola = 81
  • Desconto do socio torcedor = 91
  • Desconto da scanntech = 92
PartitionIncreasearray of
objects
falseDistribuição do total de acréscimos nos itens por regras
de acréscimos e parceiros


ParâmetroTipoDescrição
PartnerCodestringCódigo do parceiro
PricestringValor do acréscimo
PromotionCodeInt32Código da promoção
IncreaseAmountdoubleQuantidade de acréscimos aplicados
IncreDiscTypeInt32

Tipos de acréscimos aplicados

  • Acrescimo no pagamento = 4
  • Acrescimo do cupom = 7
  • Acrescimo no Item = 8
  • Acrescimo de ICMSST = 31
  • Acrescimo de IPI = 32
  • Acrescimo de FCP = 33
  • Acrescimo no frete = 41

SellerCode

stringfalse

Informar o código do vendedor.

Observação : A tag IncreDiscType será informada pelo PDV, pois ela é um informativo do que foi aplicado no PDV.


Response Example

O desconto pode ser aplicado no total do cupom ou em itens do cupom.

Quando o PDV tiver em operação “Finalizar venda”, todo desconto aplicado na forma de pagamento ou no cupom, será rateado proporcionalmente nos itens, informando o código indicador da promoção do parceiro.

Em caso de desconto ou acréscimo, no rateio dos itens será identificado o código do parceiro através do parâmetro “PartnerCode” e o código da promoção através do parâmetro “PromotionCode”. Quando retornar zero, o desconto foi aplicado de forma manual ou por alguma regra cadastrada interna no PDV.

O integrador não deverá utilizar os valores de descontos presentes no cupom, para bases de cálculos, pois os valores do mesmo estarão rateados entre os valores de descontos dos itens.

O PDV não realizará Cálculos para apuração de descontos ou acréscimo, ele atuará sempre de acordo com o retorno da API do parceiro.

Exemplo com desconto no cupom:

No exemplo abaixo foram adicionados dois itens no cupom.

Cupom da venda – Foi adicionado um desconto no campo "discount" de R$ 1,00

Notem quem não foram informados valores de descontos nos "items" e foi informado em "partitionDiscount" dentro da "sale" (Cupom).  O desconto que será rateado pelo o PDV na finalização da venda.

JSON Completo

{
 "version": 1,
"execution": "cetCompleted",
"interpret": null,
"sale": {
"increase": 0,
"discount": 1,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [
{
"itemNumber": 1,
"unitPrice": 0,
"increasePrice": 0,
"packingQuantity": 0,
"quantity": 0,
"totalPrice": 0,
"discountPrice": 0,
"status": "sttValid",
"sellerCode": 0,
"partitionIncrease": [],
"partitionDiscount": [
{
"price": 0,
"partnerCode": 0,
"promotionCode": 10,
"discountAmount": 1,
           "IncreDiscType": 1
},
{
"price": 0,
"partnerCode": 0,
"promotionCode": 43,
"discountAmount": 1,
           "IncreDiscType": 2
}
]
},
{
"itemNumber": 2,
"unitPrice": 0,
"increasePrice": 0,
"packingQuantity": 0,
"quantity": 0,
"totalPrice": 0,
"discountPrice": 0,
"status": "sttValid",
"sellerCode": 0,
"partitionIncrease": [],
"partitionDiscount": [
{
"price": 0,
"partnerCode": 0,
"promotionCode": 11,
"discountAmount": 1,
           "IncreDiscType": 2
},
{
"price": 0,
"partnerCode": 0,
"promotionCode": 94,
"discountAmount": 1
           "IncreDiscType":1
}
]
}
],
"discountCodes": [],
"messages": {
"customer": [],
"user": [
{
"text": "Nesta compra ganhou R$ 1,00 de desconto"
}
]
},
"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": 1,
"partnerCode": 0,
"promotionCode": 77,
"discountAmount": 0
}
]
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
},
"vouchersPrint": []
}

JSON Simplificado com parâmetros necessários

{
  "version"1,
  "execution""cetCompleted",
  "sale"{
    "discount"1.00
  }
}

Exemplo com desconto em item no cupom:

No exemplo abaixo foi adicionado um item no cupom.

Item 1 – Foi adicionado um desconto de R$0,44 com o Código do parceiro 10 e o código da promoção 210, encontrados no PartitionDiscount do Item.

IMPORTANTE:  Caso o desconto fosse aplicado em mais de uma unidade o “discountPrice” deve conter a soma dos descontos, neste exemplo o desconto é de R$0,44 por item, ou seja, se fossem duas unidades o discountPrice seria de R$0,88.

Não houve desconto no cupom da venda, apenas desconto no item.

JSON Completo

{
"version": 1,
"execution": "cetCompleted",
"interpret": null,
"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.44,
"status": "sttValid",
"sellerCode": 0,
"partitionIncrease": [],
"partitionDiscount": [
{
"price": 0.2245,
"partnerCode": 10,
"promotionCode": 210,
"discountAmount": 1,
           "IncreDiscType": 21
}
]
}
],
"discountCodes": [],
"messages": {
"customer": [],
"user": [
{
"text": "Nesta compra ganhou R$ 1,00 de desconto"
}
]
},
"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": 0,
"discountAmount": 0
}
]
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
},
"vouchersPrint": []
}

JSON simplificado com parâmetros necessários

{
  "version"1,
  "execution""cetCompleted",
  "sale"{
    "items"[
      {
        "discountAmount"1,
        "itemNumber"1,
        "discountPrice"0.44,
        "discountAmount"1
      }
    ]
  }
}

Exemplo desconto em itens da venda e no cupom:

No exemplo abaixo foram adicionados dois itens no cupom.

Item 2 – Foi adicionado um desconto com o código do parceiro 201 e código da promoção 593 no valor de R$ 0,49, encontrado no PartitionDiscount do Item.

Cupom da venda – Foi adicionado desconto na venda.

Desconto cupom 2 – Adicionado desconto com o código do parceiro 201 e código da promoção 568 no valor de R$1,00 encontrado no PartitionDiscount do cupom.

{
"version": 1,
"execution": "cetCompleted",
"interpret": null,
"sale": {
"increase": 0,
"discount": 1,
"total": 0,
"header": null,
"payments": [],
"paymentChange": null,
"solidaryChange": null,
"items": [
{
"itemNumber": 1,
"unitPrice": 0,
"increasePrice": 0,
"packingQuantity": 0,
"quantity": 0,
"totalPrice": 0,
"discountPrice": 0.99,
"status": "sttValid",
"sellerCode": 0,
"partitionIncrease": [],
"partitionDiscount": [
{
"price": 0.49,
"partnerCode": 201,
"promotionCode": 593,
"discountAmount": 1
           "IncreDiscType": 1
}
]
}
],
"discountCodes": [],
"messages": {
"customer": [],
"user": [
{
"text": "Nesta compra ganhou R$ 1,00 de desconto"
}
]
},
"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": 1,
"partnerCode": 201,
"promotionCode": 568,
"discountAmount": 0,
"IncreDiscType": 2
}
]
},
"pay": null,
"return": {
"code": 0,
"messageText": "0"
},
"vouchersPrint": []
}

Exemplo Fluxo Desconto no Item e Cupom Desconto

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 ir ao Subtotal da venda.

Imagem 1 – Tela de Venda

JSON enviado ao parceiro

{
  "Event""cetBefore",
  "Execution""cetContinue",
  "ID""001600000590921",
  "Operation""cotSubtotalSale",
  "Sale"{
    "Header"{
      "AccountingDate""2020-01-22T00 00 00",
      "DateTimeIssue""2020-01-22T14 15 36",
      "IdDocument"590921,
      "IdUser"2,
      "Identifcation"[
        {
          "Document""12345678909",
          "PartnerCode""10",
          "DocumentType""cdtCPF"
        }
      ],
      
    },
    "ID""001600000590921",
    "Items"[
      {
        "BarCode""7891000100103",
        "CaptionPacking""UN",
        "Description""LEITE COND MOCA LATA 395G",
        "DiscountAmount"0,
        "DiscountPrice"0,
        "IncreasePrice"0,
        "InternalCode""4900",
        "ItemNumber"1,
        "PackingQuantity"1,
        "Quantity"1,
        "Status""sttValid",
        "TotalPrice"4.99,
        "UnitPrice"4.99
      }
    ]
  }
}

JSON retornado pelo parceiro com uma mensagem para o operador do PDV, nesse caso informa que o cliente ganhou 100 pontos na compra

{
  "version"1,
  "execution""cetContinue",
  "sale"{
    "items"[
      {
        "itemNumber"1,
        "discountPrice"0.49,
        "discountAmount"1
      }
    ],
    "messages"{
      "customer"[
        {
          "text""Ganhou desconto 100 nessa compra"
        }
      ]
    },
    "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]1234567891231[ImpFimBarra]"
      },
      {
        "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]1234567891231[ImpFimBarra]"
      }
    ]
  }
}

Tela apresentada ao operador.

Imagem 2 – Pontuação Compra

Após finalização da venda conforme tela abaixo, será impresso o comprovante onde constará os cupons de desconto impressos.

Imagem 3 – Tela Pagamento


Exemplo de texto impresso no cupom.

Imagem 4 – Texto Cupom