Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Make payments

Add code to make payments from your Android POS app using the Adyen SDK.

To enable the Adyen Android SDK to handle payments, you need to add code to your Android POS app. This code starts a transaction with:

After you have added this code, payments take place as follows:

  1. Your POS app creates a Terminal API payment request that is serialized to JSON, or you receive the Terminal API payment request from your backend.
  2. You pass the payment request to the Adyen Android SDK.
  3. The Adyen Android SDK checks if the session is still valid, and if necessary establishes a new session.
  4. The transaction starts on your mobile device.
    The Adyen Android SDK shows instructions for the customer on your mobile device.
  5. The Adyen Android SDK passes the Terminal API payment response to your POS app.

Add code to start a transaction

In your Android POS app, add code for the following steps:

  1. If you create the Terminal API payment request in your POS app, use InPersonPayments.getInstallationId() as POIID in the MessageHeader of the payment request. (If you create the payment request in the backend, the backend uses the installationId from the /sessions response.)

  2. Create an instance of TransactionRequest using TransactionRequest.create(nexoRequest), and pass the Terminal API payment request from your POS app or backend.

    val transactionRequest = TransactionRequest.create(nexoRequest)
  3. Get a PaymentInterfaceType from InPersonPayments.getPaymentInterface(paymentInterfaceType).

    Value Description
    CardReader Use the card reader.
    val paymentInterface = InPersonPayments.getPaymentInterface(CardReader)
  4. Register a listener for the PaymentResult and pass the transactionResponse to your POS app. This is the Terminal API payment response, including data you can use to generate a receipt.

    val paymentLauncher = InPersonPayments.registerForPaymentResult(this) {
        // handle transaction response here
        ...
    }
  5. Invoke InPersonPayments.performTransaction() with your transaction data, payment launcher, and authentication service.

    InPersonPayments.performTransaction(
               context = context,
               paymentInterface = paymentInterface,
               transactionRequest = transactionRequest,
               paymentLauncher = paymentLauncher,
               authenticationServiceClass = MyAuthenticationService::class.java,
           )

    The Adyen Android SDK checks for a session, starts the transaction, and shows screens on your mobile device to help the customer.

See also