How to get started with the triPOS Mobile SDK for iOS
Take payments anywhere with an omni-commerce experience that accepts payment types through a single integration. Updates are managed through our TechLift team guiding you with best in-class security and gateway services in a single integration.
Use the steps below to start integrating with the triPOS Mobile iOS SDK. The SDK itself has an integration guide and technical documentation detailing how to configure and implement triPOS Mobile. Learn how to setup test credentials, download the SDK, add a payments framework to your project and finally setup your external device.
Setup your test credentials
If you already have Express test credentials, please email certification2@fisglobal.com to be setup for processing EMV.
If you do not have Express test credentials, the first step is to create a test account. After your account is created, you will receive an email containing values for the credentials below. These are required to process any transaction from triPOS mobile:
- AccountID
- AccountToken
- ApplicationID
- AcceptorID
Download the SDK
You may download and save the triPOS Mobile SDK attached to this document below.
Add the framework to your project
- Copy triPOSMobileSDK.framework to your local project folder.
- Open the project settings and select the application target.
- Open the 'General' tab...
- Scroll down to 'Embedded Binaries' and click the '+' symbol under the list.
- Click 'Add Other'...
- Browse to the location where the Worldpay triPOS
Mobile SDK Framework was copied in step 1.
- Select the triPOSMobileSDK.framework folder.
- Click 'Open'...
- Scroll down to 'Linked Frameworks and Libraries' and click the '+' symbol under the list.
- Find and select ExternalAccessory.framework.
- Click 'Add'.
Setup your external device
To use the supported external devices, the appropriate protocols must be added to the project settings:
- Open the project settings and select the application target.
- Open the 'Info' tab.
- In the 'Custom iOS Target Properties' section, add the 'Supported external accessory protocols' setting.
- Add each of the protocols listed below for the necessary devices:
Ingenico
- com.ingenico.easypayemv.spm-transaction
- com.ingenico.easypayemv.spm-networkaccess
- com.ingenico.easypayemv.spm-sppchannel
Using the triPOS Mobile framework
The triPOS Mobile SDK Framework is used by including <triPOSMobileSDK/triPOSMobileSDK.h> then accessing the SDK functionality through the sharedVtp singleton. The SDK must be initialized before performing any functions, and if those functions require the device, the application must wait for the device to become connected.
#import <Foundation/Foundation.h>
FOUNDATION_EXPORT double triPOSMobileSDKVersionNumber;
FOUNDATION_EXPORT const unsigned char triPOSMobileSDKVersionString[];
#import "VTP.h"
#import "VTP+Sale.h"
#import "VTP+Refund.h"
#import "VTP+Authorization.h"
#import "VPD.h"
#import "VXP.h"
@interface triPOSMobileSDK : NSObject
+(id)sharedVtp;
+(NSString *)version;
@end
The SDK is divided into three sections:
VTP: This section is the umbrella for all initialization and built-in flows. It contains the following Methods:
Method | Parameters | Notes |
---|---|---|
processSaleRequest | request | A VTPSaleRequest class is filled in by the integrator with information such as the transaction amount for the sale. |
completionHandler | A block supplied by the integrator and is called by the SDK to indicate that the sale completed successfully. It returns a VTPSaleResponse that contains information such as the result, approval code, and authorized amount. | |
errorHandler | A block supplied by the integrator and is called by the SDK to indicate the sale completed with an error. | |
processAuthorizationRequest | request | A VTPAuthorizationRequest class filled in by the integrator with information such as the transaction amount used to process the authorization. |
completionHandler | A block supplied by the integrator that is called by the SDK to indicate that the authorization completed successfully. It returns a VTPAuthorizationResponse that contains information such as the result, approval code, and authorized amount. | |
errorHandler | A block supplied by the integrator that is called by the SDK to indicate the authorization completed with an error. | |
processRefundRequest | request | A VTPRefundRequest class filled in by the integrator with information such as the transaction amount used to process the refund. |
completionHandler | A block supplied by the integrator that is called by the SDK to indicate the refund completed successfully. It returns a VTPRefundResponse containing information such as the result, approval code, and authorized amount. | |
errorHandler | A block supplied by the integrator that is called by the SDK to indicate that the refund completed with an error. |
VXP: This section contains all the Express functionality including definitions for most of the classes used by Express. This is the class the integrator will use to process all Express transactions not handled by the above built-in flows. It contains the following method:
sendRequest | request | This is a VXPRequest class filled in by the integrator that indicates the type of request to be sent to Express as well as all the classes and fields required by that request. |
timeout | The amount of time to wait for the response from Express. | |
completionHandler | A block supplied by the integrator that is called by the SDK to indicate the Express request was completed successfully. It returns a VXPResponse containing the response from Express. | |
errorHandler | A block supplied by the integrator that is called by the SDK to indicate the Express request completed with an error. |
VPD: This section provides all the POI (point of interaction) device functionality. It is an abstraction layer that provides a common interface to different devices. The integrator only implements this once to support all devices supported by the SDK.
- The only limitation of the available functionality is determined by the type of device. For example, if one device supports PIN entry and another does not, the PIN entry functionality is only available when using the device that supports PIN entry.
- This section may be used by the integrator to perform functions outside the transaction flows, such as obtaining a loyalty card or prompting for a ZIP code. It contains the following functionality:
Function | Use |
---|---|
Card Input | To obtain swiped or keyed data. The output will be encrypted unless the BIN is part of a whitelist installed on the POI device, or the POI device determines the card is not a financial card. |
Choice Input | To prompt the cardholder to select one of a number of choices. The number of choices and the text for each choice is specific to the device. |
Display | To display text on the POI device. |
Keyboard Numeric Input | To obtain keyboard input from the cardholder. This functionality is currently limited to postal code, cashback, and tip entry. |
PIN Input | To obtain the cardholder’s encrypted PIN information. |
Yes/No Input | To obtain YES or NO input from the cardholder. |
Supported Devices
Device | Production Support | Cert Device Available | Production Device Available | EMV certified processors |
---|---|---|---|---|
Ingenico iPP350 (Ethernet) | December 22, 2016 (v1.1.8+) | Yes | Yes | Worldpay/First Data |
Ingenico iSMP4 (Bluetooth and Wi-Fi) | May 23, 2018 (v1.3.0+) | Yes | Yes | Worldpay/First Data |
BBPOS Chipper 2x (Bluetooth) | January 30, 2020 (v1.6.2+) | Yes | Yes | Worldpay |
Ingenico Lane 3000 (Ethernet) | June 29, 2020 (v1.7.0+) | Yes | Yes | Worldpay/First Data |
Ingenico Link 2500 (Bluetooth Wi-Fi) | June 29, 2020 (v.1.7.0+) | Yes | Yes | Worldpay/First Data |
triPOS Mobile SDK (iOS) Release History
- v1.8.0 (posted October 22, 2020)
- v1.7.0 (posted June 29, 2020)
- v1.6.2 (posted January 30, 2020)
- v1.6.0 (posted November 27, 2019)
- v1.4.1 (posted May 7, 2019)
- v1.4.0 (posted August 2, 2018)
- v1.3.1 (posted February 15, 2018)
- v1.3.0 (posted December 5, 2017)
- v1.2.0 (posted October 13, 2017)
- v1.1.13 (posted July 5, 2017)
- v1.1.11 (posted March 15, 2017)
- v1.1.10 (posted February 17, 2017)
- v1.1.9 (posted February 2, 2017)
- v1.1.8 (posted December 22, 2016)
View Previous: triPOS Mobile Overview
v1.2.0 doesn't support couple gift card transaction types:
Could you guys please work on these?