Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Gorjeta pelo terminal

Faça a implementação para que o cliente adicione uma gorjeta diretamente no terminal.

Aqui descrevemos como implementar a gorjeta no seu fluxo de pagamento, onde o terminal mostra opções de gorjeta predefinidas para o cliente escolher. Essas opções podem ser montantes fixos ou porcentagens do valor da transação, ou ambos. Após o cliente selecionar uma opção ou inserir um valor personalizado da gorjeta, o terminal envia o valor da transação e o valor da gorjeta à plataforma de pagamentos da Adyen para autorização. Dessa maneira, o valor total é autorizado e capturado automaticamente.

Etapa 1: Configurar a gorjeta no terminal

Antes de poder fazer uma solicitação de pagamento que aciona o terminal para mostrar opções de gorjeta, será necessário:

Definir opções de gorjeta

Tipping options on the terminal display

Se você ativar a gorjeta sem definir as opções de gorjeta, a exibição do terminal de pagamento mostrará um prompt simples para inserir o valor da gorjeta, além da opção 'sem gorjeta' para recusar a opção de gorjeta.

Para facilitar a gorjeta, você pode predefinir ou calcular os valores das gorjetas que seu cliente pode selecionar no terminal. Para fazer isso, você precisa definir opções de gorjeta em um arquivo JSON:

  • As opções podem ser de um valor específico, de uma porcentagem da compra, uma 'gorjeta personalizada' ou 'sem gorjeta'.
  • A opção no_tip é obrigatória.
  • A opção custom_tip mostrará uma tela em que o cliente pode inserir um valor de gorjeta.
  • Se a opção for para uma porcentagem, o display mostrará a porcentagem mais o valor calculado da gorjeta.
  • Recomendamos o uso de quatro opções junto com 'sem gorjeta’ como a última opção.
  • Você pode definir dois conjuntos de opções de gorjeta, abaixo e acima de um valor limite. O campo limit especifica esse limite. Se você deseja sempre as mesmas opções, especifique os mesmos valores nas matrizes below e above.
  • Você pode criar arquivos JSON diferentes para diferentes merchant accounts.

Use o exemplo a seguir para criar seu arquivo JSON de opções de gorjeta.

Definição de opções de gorjeta
{
   "USD":{
      "limit":2000,
      "below":[
         "100",
         "200",
         "300",
         "custom_tip",
         "no_tip"
      ],
      "above":[
         "10%",
         "15%",
         "20%",
         "custom_tip",
         "no_tip"
      ]
   }
}

Ativar gorjeta

Você precisa fazer algumas alterações em sua conta para ativar a gorjeta no terminal.

  • Entre em contato com a POS Support Team e:
    • Peça a eles para ativar a gorjeta para seus terminais.
    • Diga-lhes se deseja dar gorjeta antes ou depois da entrada do cartão.
      • Antes da entrada do cartão: O terminal mostra o valor da transação mais as opções de gorjeta e aguarda a resposta do cliente. Em seguida, o terminal solicita que o cliente apresente seu cartão e forneça seu PIN ou assinatura.
      • Após a entrada do cartão: O terminal mostra o valor da transação e solicita ao cliente que apresente seu cartão. Em seguida, o terminal mostra as opções de gorjeta e aguarda a resposta do cliente. Depois disso, o terminal solicita ao cliente que forneça seu PIN ou assinatura.
    • Envie a eles seu arquivo JSON de opções de gorjeta, se desejar mostrar valores ou porcentagens de gorjeta predefinidas no terminal de pagamento.

Mantenha sua equipe informada utilizando webhooks

Enquanto seu cliente estiver interagindo com o terminal, você poderá apresentar mensagens de progresso em sua caixa registradora. Isso pode manter sua equipe informada sobre o valor da gorjeta.

Essas mensagens são entregues usando notificações de exibição, que são webhooks enviadas para um terminal especificado por você. Para obter informações sobre como configurar e usar as notificações de exibição, consulte nossa documentação de notificações de exibição.

Etapa 2: Efetuar um pagamento

Depois de configurar a gorjeta no terminal, você estará pronto para fazer uma solicitação de pagamento com a tender option AskGratuity. Isso garante que o terminal apresente opções de gorjeta ao seu cliente.

  • Faça uma solicitação POST para um endpoint da API do terminais, 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.
      • 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 .
      • SaleData.SaleToAcquirerData: tenderOption=AskGratuity ou tenderOption=AskGratuity,ReceiptHandler que:

        • AskGratuity: Dispara o terminal para mostrar as opções de gorjeta que você configurou.

          Se você configurou a gorjeta no terminal, mas deseja fazer uma solicitação de pagamento sem mostrar a tela de gorjeta, omita a opção de solicitação AskGratuity da sua solicitação.

        • ReceiptHandler: Garante que a caixa registradora imprima o recibo. Omita esta opção de compra se o terminal de pagamento tiver uma impressora integrada e você desejar imprimir o recibo no terminal.
      • PaymentTransaction.AmountsReq.Currency: A moeda da transação
      • PaymentTransaction.AmountsReq.RequestedAmount: O valor da transação.

    O exemplo abaixo mostra como você mostraria as opções de gorjeta e iniciaria uma transação de 142.50 EUR.

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

    Pedido 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"
            },
            "SaleToAcquirerData": "tenderOption=AskGratuity,ReceiptHandler"
          },
          "PaymentTransaction":{
            "AmountsReq":{
              "Currency":"EUR",
              "RequestedAmount":142.50
            }
          }
        }
      }
    }

Quando o cliente seleciona uma opção de gorjeta e apresenta seu cartão, o terminal de pagamento coleta os detalhes do pagamento e envia a solicitação do valor da transação original mais o valor da gorjeta para a plataforma de pagamentos da Adyen.

Etapa 3: Receber o resultado do pagamento

Quando o pagamento foi 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 dica, 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