This page explains various concepts that our Mobile solutions are based on. The focus is on how the Adyen Mobile SDK interacts with the Adyen payments platform and with your POS app.
Communication session
When you integrate the Mobile SDK into your POS app, the SDK has to communicate in a secure way with the Adyen payments platform. To enable this, you must integrate a server-to-server POST /checkout/possdk/v68/sessions request to create a session. Your POS app needs to call your backend to trigger this request and get the session data.
The SDK uses the session data from the response to authenticate with our payments platform. Because the session expires after some time, the SDK checks regularly if it needs to establish a new session.
SDK transaction flow
If you use or build a Mobile solution where our iOS Mobile SDK is integrated into your POS app, transactions take place as follows:
- Optional but recommended: your POS app calls a warm-up function to speed up initiating transactions.
-
Your POS app creates a Terminal API request that is serialized to JSON, or receives the Terminal API payment request from your backend.
Tip
To help you create Terminal API requests, we provide a TerminalAPIKit for iOS on GitHub. Installation and usage instructions are in the repository's README. -
The POS app passes the Terminal API request to the Mobile SDK.
-
The SDK checks if the communication session is still valid, and if necessary establishes a new session.
-
The transaction starts on the mobile device.
-
The SDK passes the Terminal API response to your POS app.
UI for card reader operations
To use the card reader, store staff needs to:
- Pair the mobile device running the Mobile SDK with the card reader.
- See an overview of card readers. For example, to switch to a different card reader.
- View details of the card reader they are using. For example, to check the battery charge level.
- Update the firmware of the card reader they are using.
The SDK allows you to build your own UI for those tasks, but also provides a built-in UI. Here are some example built-in screens.
Firmware updates
The firmware of the card reader must be updated from time to time, to keep the reader secure. Firmware updates have a due date, at which time they become mandatory. This means the card reader cannot process transactions anymore until it is updated to the mandatory firmware version.
You must check for new firmware updates regularly, and update your card readers to the latest version.
Our built-in UI shows a red indicator when a new firmware version is available for the connected card reader, and has an Update button to start the firmware update. In case a firmware update failed because the card reader didn't have an active Bluetooth connection when the update required it, the built-in UI shows instructions on how to reset the reader before retrying the update.
If you use your own custom UI, it is required that you build logic into your POS app to check for new card reader firmware updates and handle the firmware update flow correctly within your POS app.