Esta página explica o processo de configuração para efetuar um pagamento básico com cartão usando a Terminal API da Adyen. A partir daqui, é possível criar uma integração que suporte os métodos de pagamento via NFC e carteira digital, permitindo que os clientes paguem em sua própria moeda ou criar uma experiência omnichannel para o cliente.
O terminal e a frente de caixa se comunicam usando mensagens JSON, que são transmitidas através de uma rede local ou baseada em nuvem, dependendo da sua escolha de arquitetura.
Antes de aceitar pagamentos em tempo real, recomendamos que você teste a integração do seu ponto de venda.
Se você estiver usando comunicação local, também precisará configurar a criptografia antes de poder aceitar pagamentos em tempo real.
Antes de começar
Antes de iniciar a integração com a nossa Terminal API e realizar o seu primeiro pagamento com o terminal, certifique-se de ter executado os seguintes passos:
- Inscrição para ter uma conta de teste da Adyen na página https://www.adyen.com/signup.
- Encomende terminal e cartão de testes.
- Ative o terminal.
- Se você estiver usando comunição em nuvem, gere uma chave da API.
Para obter mais informações sobre integração com a Adyen, consulte a Introdução à Adyen.
Efetue um pagamento
O terminal e a frente de caixa se comunicam por meio de mensagens JSON. Para iniciar um pagamento, faça uma solicitação JSON na sua frente de caixa. Ela é roteada para o terminal, onde o cliente pode apresentar o seu cartão e concluir o pagamento.
Para iniciar o pagamento:
-
Faça uma solicitação POST para um endpoint da Terminal API, especificando:
content-type
: application/jsonx-api-key
: A chave da API que você gerou anteriormente.Uma chave da API só é necessária se estiver sendo usada comunicação em nuvem.
ProtocolVersion
: 3.0MessageCategory
: PaymentMessageType
: RequestSaleID
: A sua ID exclusiva para a frente de caixa.ServiceID
: A sua ID exclusiva gerada pela frente de caixa para essa transação. Esse valor deve ser único nas últimas 48 horas.POIID
: ID exclusiva do terminal.O
POIID
= [Modelo do terminal]-[Número de série], por exemplo: P400Plus-123456789TransactionID
: A sua referência exclusiva para essa transação.TimeStamp
: Data e hora da transação.AmountsReq
: A moedaCurrency
e o valor (RequestedAmount
) da transação.
O exemplo abaixo ilustra como você faria um pagamento de EUR 10,99 usando comunicação síncrona em nuvem.
curl -H "content-type:application/json" -H 'x-api-key:ADYEN_API_KEY' -X POST --data-binary '{ "SaleToPOIRequest":{ "MessageHeader":{ "ProtocolVersion":"3.0", "MessageClass":"Service", "MessageCategory":"Payment", "MessageType":"Request", "SaleID":"POSSystemID12345", "ServiceID":"0207111104", "POIID":"V400m-324688179" }, "PaymentRequest":{ "SaleData":{ "SaleTransactionID":{ "TransactionID":"27908", "TimeStamp":"2019-03-07T10:11:04+00:00" } }, "PaymentTransaction":{ "AmountsReq":{ "Currency":"EUR", "RequestedAmount":10.99 } } } } }' --url https://terminal-api-test.adyen.com/sync
Para ter acesso a uma lista completa dos campos que você pode enviar em uma solicitação de pagamento, consulte a referência PaymentRequest API.
A solicitação é encaminhada para o terminal, para que o cliente conclua a operação.
-
Insira o cartão de testes no terminal.
-
Siga as instruções no terminal para concluir a transação.
O PIN padrão do cartão de teste é 1234.
Se o pagamento for bem sucedido:
- Aprovado será exibido na tela do terminal.
-
Você recebe uma resposta JSON com:
AdditionalResponse
: Contém um valorpspReference
, que é nosso identificador exclusivo para essa transação.Result
: Success
{ "SaleToPOIResponse":{ "PaymentResponse":{ "Response":{ "AdditionalResponse":"...pspReference=NC6HT9CRT65ZGN82...", "Result":"Success" }, {...} } }
Para ter acesso a uma lista completa dos campos que você pode receber em uma resposta de pagamento, consulte a referência PaymentResponse API.
Você encontrará mais detalhes do pagamento na sua Customer Area, em Transactions > Payments.
Terminal API endpoints
Para mais informações, consulte endpoints e autenticação.
Criptografia de comunicações locais
Se a sua frente de caixa tiver uma conexão local com o terminal, será necessário criptografar todas as comunicações entre esses dispositivos. Isso não é uma exigência para a realização de testes de pagamentos, mas deverá ser configurado antes que você aceite pagamentos reais.
Para mais informações, consulte comunicações locais seguras.