Point-of-sale icon

Gorjeta pela caixa registradora

Implemente a gorjeta pela caixa registradora no seu fluxo de pagamento.

Aqui descrevemos como implementar a gorjeta no seu fluxo de pagamento, em que a solicitação de pagamento que você envia da caixa registradora inclui um valor de gorjeta. O terminal mostra o valor original da transação e o valor da gorjeta. O cliente usa o terminal para confirmar a gorjeta, alterar a quantia ou recusar dar uma gorjeta.

Antes de começar

Antes de implementar a gorjeta, certifique-se de:

Etapa 1: Configurar gorjeta

O valor da gorjeta a ser proposto ao cliente no terminal pode ser uma porcentagem do valor da transação, um valor fixo, um dos vários valores fixados dependendo do valor da transação e assim por diante.
Você precisa implementar a sua lógica para garantir que a caixa registradora forneça o valor da gorjeta que você precisa incluir em sua solicitação de pagamento.

Etapa 2: Efetuar um pagamento

Depois de configurar a gorjeta na caixa registradora, você estará pronto para fazer uma solicitação de pagamento que inclua o TipAmount. Isso mostra o valor da transação e o valor da gorjeta proposto no visor do terminal.

  • Faça uma solicitação POST para um endpoint da API de termina, especificando:

    • MessageHeader: Segue a estrutura da MessageHeader padrão, explicada nos fundamentos da API de terminais, que incluem:

      • ProtocolVersion: 3.0
      • MessageClass: Service
      • MessageCategory: Payment. Isso indica que você está iniciando uma solicitação de pagamento.
      • MessageType: Request
      • SaleID: Seu ID exclusivo para a caixa registradora.
      • ServiceID: Seu ID exclusivo para esta tentativa de transação, consistindo em 1 a 10 caracteres alfanuméricos. Esse valor precisa ser exclusivo nas últimas 48 horas.
      • POIID: ID exclusivo do terminal. Isso indica para qual terminal o pagamento será roteado.
    • PaymentRequest: O corpo da solicitação para a solicitação de pagamento deve incluir:

      • SaleData.SaleTransactionID.TransactionID: Sua referência exclusiva para esta solicitação de pagamento.
      • SaleData.SaleTransactionID.TimeStamp: Data e hora da solicitação de pagamento, no formato UTC.
      • PaymentTransaction.AmountsReq.Currency: A moeda da transação.
      • PaymentTransaction.AmountsReq.RequestedAmount: O valor da transação.
      • PaymentTransaction.AmountsReq.TipAmount: O valor da gorjeta.

    O exemplo abaixo mostra como você iniciaria um pagamento de EUR 142,50 com uma gorjeta 10%.

    Para obter mais informações sobre a estrutura de solicitação da API do terminal, consulte os fundamentos da API de terminais.

    Solicitação de pagamento com gorjeta
    Expand view
    Copy link to code block
    Copy code
    Copy code
    {
    "SaleToPOIRequest":{
    "MessageHeader":{
    "ProtocolVersion":"3.0",
    "MessageClass":"Service",
    "MessageCategory":"Payment",
    "MessageType":"Request",
    "SaleID":"POSSystemID12345",
    "ServiceID":"0207111104",
    "POIID":"P400Plus-275688710"
    },
    "PaymentRequest":{
    "SaleData":{
    "SaleTransactionID":{
    "TransactionID":"27908",
    "TimeStamp":"2019-12-17T10:11:03.000Z""
    }
    },
    "PaymentTransaction":{
    "AmountsReq":{
    "Currency":"EUR",
    "RequestedAmount":142.50,
    "TipAmount":14.25
    }
    }
    }
    }
    }

A solicitação de pagamento é roteada para o terminal de pagamento. O cliente aceita, altera ou recusa a gorjeta e completa o pagamento. O terminal coleta os detalhes do pagamento e envia a solicitação do valor original da transação mais o valor da gorjeta para a plataforma de pagamentos da Adyen.

Etapa 3: Receber o resultado do pagamento

Quando o pagamento for processado na plataforma de pagamentos da Adyen, você recebe o resultado do pagamento em uma resposta síncrona da API.

Se sua integração usar comunicação assíncrona em nuvem , você receberá o resultado em uma notificação de exibição TENDER_FINAL.

Se o pagamento for bem-sucedido:

  • Approved é exibido no visor do terminal.
  • O resultado do pagamento contém:

    • POIData.POITransactionID.TransactionID: Identificador de transação para o pagamento.

    • PaymentReceipt:Receba dados com o valor original da transação, o valor da gorjeta (não incluído se o cliente não tiver adicionado uma gorjeta) e o valor total.

    • PaymentResult.AmountsResp:

      • TipAmount: Valor da gorjeta. Se o cliente não adicionou uma gorjeta, esse campo não será incluído.
      • AuthorizedAmount: Valor total do pagamento (valor da transação original mais valor da gorjeta).
      • Currency: Moeda do pagamento.

    • Response.Result: Success

    • Response.AdditionalResponse: Uma sequência base64. Quando decodificado, este é um objeto JSON com dados de transação adicionais. Isso inclui:

      • posadditionalamounts.originalAmountValue: Valor da transação original em minor units.
      • posAmountGratuityValue: Valor da gorjeta em minor units.
      • authorisedAmountValue: Quantidade total autorizada em minor units.

    O exemplo abaixo mostra a resposta para uma transação de EUR 142,50 com uma gorjeta de 10% adicionada.

    Resposta de pagamento com gorjeta adicionada
    Expand view
    Copy link to code block
    Copy code
    Copy code
    {
    "SaleToPOIResponse": {
    "PaymentResponse": {
    "POIData": {
    "POITransactionID": {
    "TimeStamp": "2019-12-17T10:11:12.000Z",
    "TransactionID": "8ha5001575467786000.8815754678001083"
    },
    "SaleData": {...},
    "PaymentReceipt": [...],
    "PaymentResult": {
    "AuthenticationMethod": [...],
    "OnlineFlag": true,
    "PaymentAcquirerData": {...},
    "PaymentInstrumentData": {...},
    "AmountsResp": {
    "TipAmount": 14.25,
    "AuthorizedAmount": 156.75,
    "Currency": "EUR"
    }
    },
    "Response": {
    "Result": "Success",
    "AdditionalResponse": "...posadditionalamounts.originalAmountValue=14250&...posAmountGratuityValue=1425&gratuityAmount=1425&...authorisedAmountValue=15675...&posAuthAmountValue=15675&posadditionalamounts.gratuityAmount=1425"
    }
    },
    "MessageHeader": {...}
    }
    }

Veja também