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:
- Ler e entender nossos fundamentos da API de terminais.
- Criar uma integração que pode efetuar um pagamento.
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 daMessageHeaderpadrã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. 
- 
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. 
-