Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

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 142.50 EUR 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
    {
      "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 142.50 EUR com uma gorjeta de 10% adicionada.

    Resposta de pagamento com gorjeta adicionada
    {
      "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