Applications that provide direct interaction with the merchants, collect real time data, or integrate with other accessories connected to the terminal can be built using Poynt SDK for Android. Developers can build both UI-rich applications as well as background services to run on Poynt terminals.

On-Terminal Apps

Given that a main function of the Poynt device is payment processing, there are a few security and compliance requirements that must be abided by:

Developer Tools

Application development for Poynt is the same as any other Android application development process using the standard Android development tools available from developer.android.com. Poynt Smart Terminal runs on a customized build of Android 4.4.4 (KitKat), so all applications must set the build target to android-19. Poynt 5 runs on a customized build of Android 6.0 (Marshmallow).

Android Studio with gradle build toolkit is recommended. Although any android emulator would work, we would recommend using Genymotion emulator with screen resolution as 800x1280.

Poynt Smart Terminal developer edition is also available for pre-order. We highly recommend testing on it avoid any incompatibility issues before releasing your app to merchants. These developer editions have adb enabled so you can easily test your application in your development environments.

Poynt SDK

The Poynt SDK for Android provides all the necessary interfaces and helper classes to access both Poynt Services and Data stored on the device and in the cloud, and also to initiate the secure payment process from your applications if needed.

Poynt Services

Poynt Services provide the core functionality exposed as AIDL services for 3rd party applications. These include:

  1. Poynt Transaction Service - provides the payment transactional information (status, amounts, etc.)
  2. Poynt Order Service - provides the order management APIs
  3. Poynt Business Service - provides the information about the merchant’s business, stores, employees, etc.
  4. Poynt Customer Service - provides APIs to lookup and manage customers of the merchant
  5. Poynt Product Service - provides APIs to get product catalog for the merchant
  6. Poynt Receipt Printing Service - provides APIs to print receipts for payment transaction and/or orders
  7. Poynt Second Screen Service - provides APIs to request content to be displayed in the the consumer screen
  8. Poynt Session Service - provides APIs to obtain current logged in business user (merchant) information
  9. Poynt Authenticator - provides business user (merchant) login/authentication through Android’s Account Manager API.

All the AIDL files required to generate the service stubs through Android SDK are bundled in the Poynt SDK. Please see calling an IPC method in Android developer documentation on how to use AIDL services.

Poynt Content Providers

Poynt Content Providers provide the data store for various resources related to the merchant data. These include business, product, transactions, orders, customers, and more through the standard Android Content Providers interface. All the Poynt Content Provider interfaces are provided through the SDK. These can be used with standard android widgets that support content resolver integration (eg. Lists).

Poynt Payment Fragments

In order to protect customer payment card information, Poynt provides Payment Fragments that 3rd party applications can launch to collect payment card information securely and process transactions. The Payment Fragments can be launched by providing a ‘Payment’ object containing the transactional information like amounts, tip and reference identifier.

Payment Fragment

Three types of Payment Fragments are provided through Poynt SDK:

When the Payment Fragments are launched by an application, the consumer facing screen is taken over by the Payment Fragments to collect and process payment securely.

Poynt Intents

Intents are a standard way for cross-application notifications in Android OS. Poynt Services broadcast various events (as implicit intents) related to payments, orders and various other activities happening on the Terminal in real time. These events can be received by Applications and Services interested in receiving them and handle custom logic as needed. Please refer to the javadocs for a complete list of Intent Actions defined in the PoyntOS platform.

Also as a good citizen in our App ecosystem, we request you to broadcast events that might be useful to other apps running the same terminal. This will help in building an integrated experience to the merchant - eg. when a POS app creates a new order, broadcasting an event about the new order created would help other apps and services (eg. an analytics and reporting app, or a order fulfillment app) to react as necessary.

Poynt Intents are broadcasted in addition to the common Intents broadcasted by the Android system. Please see ‘Intents and Intent Filters’ for more information on how to handle Intents programmatically or through Android Manifest file.

Poynt Register Intents

When merchants add or remove items to the Poynt Register application intents will be broadcast so that you can respond to these actions.

ADD_PRODUCT_TO_CART Intent

When an item is added to an order, the following intent is broadcast.

poynt.intent.action.ADD_PRODUCT_TO_CART

The following values are available as Intent extras.

REMOVE_PRODUCT_FROM_CART Intent

When an item is added to an order, the following intent is broadcast.

poynt.intent.action.REMOVE_PRODUCT_FROM_CART

Note Full list of broadcast intents can be seen in PoyntOS SDK's Intents class