Árvore de páginas

Objetivo

Quando houver 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ão aplicados na venda atual e a regra fica por conta do parceiro. Pode ser utilizado também para inclusão de um produto não fiscal na venda.

Este evento ocorre no subtotal da venda, após os produtos já terem sido inseridos, restando apenas a etapa de pagamento.

Índice

Chamada

POST {url}

Informações da Requisição (Request Information)

Parâmetros do Corpo (Body Parameters)

Chave jsonTIPODESCRIÇÃO
IDString

Identificador único da venda

VersionStringVersão da API
OperationStringDurante a interação com esse evento será retorna do valor cotSubtotalSale, indicando que é uma operação no subtotal da venda
SaleObject JsonVenda
Sale.IncreaseCurrencyAcréscimo aplicado na venda
Sale.DiscountCurrencyDesconto aplicado no venda
Sale.IDStringIdentificador único da venda
Sale.TotalCurrencyValor total da venda
Sale.headerObject JsonCabeçalho da venda
Sale.header.idStoreIntegerIdentificador da loja que gerou a venda
Sale.header.idTerminalIntegerIdentificador do terminal/checkout que gerou a venda
Sale.header.idDocumentIntegerIdentificador da venda
Sale.header.cooDocumentIntegerCoo do documento
Sale.header.idUserIntegerIdentificador do operador que realizou a venda
Sale.header.idInvoiceKeyStringChave da venda gerada para acessar o documento na SEFAZ
Sale.header.accountingDateDateData da emissão da venda
Sale.header.dateTimeIssueDateTimeData e hora da emissão da venda
Sale.header.identificationArray object JsonLista de identificação do consumidor ou cliente
Sale.header.identification[0].documentStringDocumento do cliente ou consumidor
Sale.header.identification[0].partnerCodeStringCódigo do parceiro
Sale.header.identification[0].documentTypeStringTipo do documento (CPF ou CNPJ)
Sale.header.identification[0].identificationTypeString

Tipo de identificação (citUnknown, citInternal, citInvoice, citReward)

citUnknown - Desconhecido.

citInternal - Identificação interna.

citInvoice - Identificação fiscal (Nota fiscal paulista e outros).

citReward - Identificação de recompensas, parceiros, etc.

Sale.itemsArray object JsonItem da venda
Sale.items[0].internalCodeInteger Código interno do item
Sale.items[0].itemNumberInteger Código item na venda
Sale.items[0].statusString

Status do item

sttValid - Vendido 

sttCanceled - Cancelada

Sale.items[0].unitPriceCurrencyValor unitário do item
Sale.items[0].increasePriceCurrencyAcréscimo aplicado no item
Sale.items[0].discountPriceCurrencyDesconto aplicado no item
Sale.items[0].captionPackingStringDescrição da unidade
Sale.items[0].barCodeStringEAN do produto vendido
Sale.items[0].quantityIntegerQuantidade do item
Sale.items[0].descriptionStringDescrição do item
Sale.items[0].totalPriceCurrencyValor total liquido do item
Sale.items[0].sellerCodeIntegerCódigo do vendedor
Sale.items[0].idSegmentIntegerIdentificador no segmento do item
Sale.items[0].dateTimeIssueDateTiemData e hora e emissão do item
Sale.Items[0].ScaleBooleanIndica se o produto é pesável
Sale.Items[0].OrderNumberIntegerNúmero da pré-venda quando existir
Sale.Items[0].OrderTypeString

Quando existir um número de prévenda(OrderNumber) será enviado o tipo da pré-venda:

pstQuotation - Cotação (pode ser faturado mais de uma vez)
pstSale - Venda
pstSheet - Comanda
pstPopularPharmacy - Farmácia popular
pstCutLine - Papa-fila
pstSelfCheckoutSheet - Comanda Self-Checkout
pstPBM - PBM

Sale.Items[0].partitionDiscountArray object JsonLista de desconto dado no item
Sale.Items[0].partitionDiscount[0].priceCurrencyDesconto do item
Sale.Items[0].partitionDiscount[0].partnerCodeIntegerCódigo do parceiro que aplicou o desconto
Sale.Items[0].partitionDiscount[0].promotionCodeIntegerCódigo de promoção
Sale.Items[0].partitionDiscount[0].discountAmountIntegerQuantidade do item
Sale.Items[0].partitionIncreaseArray object JsonLista de acréscimo dado no item
Sale.Items[0].partitionIncrease[0].priceCurrencyDesconto do item
Sale.Items[0].partitionIncrease[0].partnerCodeIntegerCódigo do parceiro que aplicou o acréscimo
Sale.Items[0].partitionIncrease[0].promotionCodeIntegerCódigo de promoção
Sale.Items[0].partitionIncrease[0].discountAmountIntegerQuantidade do item
Sale.paymentsArray object JsonLista de pagamentos
Sale.payments[0].increaseCurrencyAcréscimo aplicado no pagamento
Sale.payments[0].DiscountCurrencyDesconto aplicado no pagamento
Sale.payments[0].totalCurrencyValor pago
Sale.payments[0].paymentTypeString

Espécie de pagamento

cptMoney - Espécie dinheiro;

cptDebitCard - Espécie cartão de débito;

cptCreditCard - Espécie cartão de crédito;

cptBillet - Espécie boleto;

cptCheck - Espécie cheque;

cptPOS - Espécie  POS;
cptPaperTicket - Espécie ticket;

cptAgreement - Espécie convênio;

cptPromissoryNote - Espécie nota promissório;

cptFinancialCredit - Espécie crédito financeira;

cptWorthDebit - Espécie vale débito;
cptWorthCredit - Espécie vale crédito;

cptDigitalWallet - Espécie carteira digital;

Sale.payments[0].paymentNumberIntegerNúmero da forma de pagamento
Sale.payments[0].dateTimeIssueDateTimeData e hora do pagamento
Sale.payments[0].AuthorizationCodeStringNumero da autorização TEF
Sale.payments[0].TransactionCanceledCodeStringNumero da autorização cancelamento TEF
Sale.payments[0].TransactionCodeStringNúmero do NSU host
Sale.payments[0].TypeWalletStringTipo da carteira digital

Formatos de Requisição (Request Formats)

Exemplo 1

Exemplo de uma venda simples contendo alguns itens com desconto.

{
   "Execution":"cetContinue",
   "ID":"001032001729538",
   "Operation":"cotSubtotalSale",
   "Sale":{
      "ID":"001032001729538",
      "Discount":0,
      "Increase":0,
      "Header":{
         "AccountingDate":"2025-12-08T00:00:00",
         "CooDocument":211,
         "DateTimeIssue":"2025-12-08T13:36:43",
         "IdDocument":1729538,
         "IdInvoiceKey":"",
         "IdStore":1,
         "IdSupervisor":0,
         "IdTerminal":32,
         "IdUser":2,
         "Identification":[
            {
               "Document":"47021161859",
               "DocumentType":"cdtCPF",
               "IdentificationType":"citInvoice",
               "PartnerCode":0
            }
         ],
         "Status":"sttValid"
      },
      "Items":[
         {
            "BarCode":"7891000100103",
            "CaptionPacking":"UN",
            "Description":"LEITE COND MOCA LAT 395G",
            "DiscountPrice":2.89,
            "IdSegment":3,
            "IncreasePrice":0,
            "InternalCode":"4900",
            "ItemNumber":1,
            "PackingQuantity":1,
            "PartitionDiscount":[
               {
                  "DiscountAmount":1,
                  "IncreDiscType":21,
                  "PartnerCode":1,
                  "Price":2.89,
                  "PromotionCode":34
               }
            ],
            "Quantity":1,
            "SellerCode":0,
            "Status":"sttValid",
            "TotalPrice":3.10,
            "UnitPrice":5.99
         },
         {
            "BarCode":"7891000100103",
            "CaptionPacking":"UN",
            "Description":"LEITE COND MOCA LAT 395G",
            "DiscountPrice":0,
            "IdSegment":3,
            "IncreasePrice":0,
            "InternalCode":"4900",
            "ItemNumber":2,
            "PackingQuantity":1,
            "Quantity":1,
            "SellerCode":0,
            "Status":"sttValid",
            "TotalPrice":5.99,
            "UnitPrice":5.99
         }
      ],
      "Total":9.09
   },
   "Version":1
}

Exemplo 2

Exemplo contendo uma forma de pagamento, demonstrando que a venda recebeu um pagamento parcial, mas o cliente retornou para a tela de venda para inserir mais produtos e, em seguida, acessou novamente o subtotal.

{
   "Execution":"cetContinue",
   "ID":"001032001729538",
   "Operation":"cotSubtotalSale",
   "Sale":{
      "ID":"001032001729538",
      "Discount":0,
      "Increase":0,
      "Header":{
         "AccountingDate":"2025-12-08T00:00:00",
         "CooDocument":211,
         "DateTimeIssue":"2025-12-08T13:36:43",
         "IdDocument":1729538,
         "IdInvoiceKey":"",
         "IdStore":1,
         "IdSupervisor":0,
         "IdTerminal":32,
         "IdUser":2,
         "Identification":[
            {
               "Document":"47021161859",
               "DocumentType":"cdtCPF",
               "IdentificationType":"citInvoice",
               "PartnerCode":0
            }
         ],
         "Status":"sttValid"
      },
      "Items":[
         {
            "BarCode":"7891000100103",
            "CaptionPacking":"UN",
            "Description":"LEITE COND MOCA LAT 395G",
            "DiscountPrice":2.89,
            "IdSegment":3,
            "IncreasePrice":0,
            "InternalCode":"4900",
            "ItemNumber":1,
            "PackingQuantity":1,
            "PartitionDiscount":[
               {
                  "DiscountAmount":1,
                  "IncreDiscType":21,
                  "PartnerCode":1,
                  "Price":2.89,
                  "PromotionCode":34
               }
            ],
            "Quantity":1,
            "SellerCode":0,
            "Status":"sttValid",
            "TotalPrice":3.10,
            "UnitPrice":5.99
         },
         {
            "BarCode":"7891000100103",
            "CaptionPacking":"UN",
            "Description":"LEITE COND MOCA LAT 395G",
            "DiscountPrice":0,
            "IdSegment":3,
            "IncreasePrice":0,
            "InternalCode":"4900",
            "ItemNumber":2,
            "PackingQuantity":1,
            "Quantity":1,
            "SellerCode":0,
            "Status":"sttValid",
            "TotalPrice":5.99,
            "UnitPrice":5.99
         }
      ],
      "Payments":[
         {
            "AuthorizationCode":"080006",
            "Discount":0,
            "ExpirationDateCard":"33/0",
            "FirstDigitCard":"409601",
            "FlagCard":"00001",
            "IdWallet":"",
            "Increase":0,
            "InstallmentAmount":1,
            "ItemNumber":1,
            "LastDigitCard":"6263",
            "NetworkCard":"00125",
            "OwnerCard":"",
            "PaymentNumber":9,
            "PaymentType":"cptCreditCard",
            "Total":2,
            "TransactionCode":"000080006",
            "TypeWallet":""
         }
      ],
      "Total":9.09
   },
   "Version":1
}

Informações para Resposta (Response Information)

O tipo de resposta vai depender da ação que o integrador (parceiro) deseja realizar. As ações possíveis estão listadas abaixo no espaço Comandos para interação no subtotal.

Após finalizar a integração com o PDV, o integrador deverá retornar para o PDV utilizando a chave execution, informando cetCompleted ou cetInterrupt.

Veja como funciona o fluxo de interação entre o PDV e integrador.

Veja os detalhes de como retornar comprovantes para serem impresso pela chave json vouchersPrint. Clique aqui para acessar a documentação

Parâmetros do Corpo (Body Parameters)

ChaveTipo

Descrição

executionString

Tipo de execução

cetCompleted - Indica que a interação com o integrador foi concluída e o PDV já pode prosseguir com a ação correspondente, conforme definido na estrutura de resposta.

cetInterrupt - Indica que a interação com o integrador foi concluída e não há nenhuma ação a ser executada pelo PDV.


SaleObject JsonVenda
Sale.itemsArray object JsonItem da venda
Sale.Items[0].partitionDiscountArray object JsonLista de desconto dado no item
Sale.Items[0].partitionDiscount[0].priceCurrencyDesconto do item
Sale.Items[0].partitionDiscount[0].partnerCodeIntegerCódigo do parceiro que aplicou o desconto
Sale.Items[0].partitionDiscount[0].promotionCodeIntegerCódigo de promoção
Sale.Items[0].partitionDiscount[0].discountAmountIntegerQuantidade do item
Sale.Items[0].partitionIncreaseArray object JsonLista de acréscimo dado no item
Sale.Items[0].partitionIncrease[0].priceCurrencyDesconto do item
Sale.Items[0].partitionIncrease[0].partnerCodeIntegerCódigo do parceiro que aplicou o acréscimo
Sale.Items[0].partitionIncrease[0].promotionCodeIntegerCódigo de promoção
Sale.Items[0].partitionIncrease[0].discountAmountIntegerQuantidade do item
vouchersPrintArray Object json Lista de comprovantes
vouchersPrint[0].textstringTexto para ser impresso no comprovante

Formatos de Resposta (Response Formats)

Exemplo 1

Exemplo de uma resposta que aplica um desconto de R$ 0,30 no item 1 da venda, realiza a impressão de 2 comprovantes (vouchersPrint) e inclui uma mensagem (observation) que será impressa no rodapé do cupom

{
   "execution":"cetCompleted",
   "sale":{
      "items":[
         {
            "itemNumber":1,
            "partitionDiscount":[
               {
                  "price":0.30,
                  "partnerCode":0,
                  "promotionCode":51,
                  "discountAmount":1
               }
            ]
         }
      ],
      "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"
         }
      ],
      "observation":"Voce poderia ter economizado R$ 10,00 de desconto com o Clube"
   }
}

Comandos para interação no subtotal (cotSubtotalSale)

ComandoDescrição

Comando Obter Valor

Solicitar para a aplicação de PDV que exiba uma caixa de diálogo ao operador com um campo editável

Comando Menu de Opções

Solicitar para a aplicação de PDV que exiba uma caixa de diálogo ao operador contendo uma lista com as opções predefinidas

Comando Exibir Mensagem

Exibi uma mensagem na tela no PDV

Comando Falhar

Informar para API que houve falha no fluxo

Comando Interromper

Solicitar para API que o fluxo seja interrompido