Connect Smart POS And Terminals


Once a terminal has been onboarded, the merchant must turn on the device and connect to a WiFi network. The terminal will then automatically begin running any available updates. Read more about terminal updates in the Update a Terminal section. Once updates are complete, the terminal can begin interacting with the Card Present SDK.


Each terminal should only have one payment application instance to connect to the Card Present SDK.

Set the enable discovery config in your Card Present SDK to true in order to use the automatic device discovery feature (iOS: WPConfig.discoveryEnabled; Android: Config.isDiscoveryEnabled). Once any available updates have been applied, the SDK will return a list of discovered devices, which you should display in your application. Discovered devices will be designated by the readable name (configured in the API parameter during onboarding) and serial number. Once the merchant selects the terminal from your application, the terminal's IP address will be passed to the Card Present SDK.

You can customize the number of seconds that the auto discovery feature will run before ending and delivering the list of results. To do so, set the seconds as an integer in the discovery timeout config (iOS: WPConfig.discoveryTime; Android: Config.discoveryTime). Note that the timeout config defaults to 8 seconds.

If the enable discovery config is left as false (this is the default), then the merchant will be prompted to manually enter the device's IP address, which can be found by following the Terminal User Manual.

At this point, the merchant can access the gateway ID for their terminal. They can find instructions on how to do so in their terminal user manual. Initially, the gateway ID will be default to FFFFFFFF. Once the terminal's onboarding information has been downloaded onto the device, a new gateway ID will be assigned to it and should match the gateway_id found in the Terminal Onboarding record.

Once your platform has the IP address for the terminal, you can use the Card Present SDK to perform the get Terminal info function. Running this function is a good sanity check to verify that the correct merchant is associated with the freshly connected terminal.

From here, the terminal is ready to begin authorizing Card Present transactions, and you can skip ahead to Authorize Cards in order to continue that flow.