iOS Deep Linking Integration
Introduction
iPOS systems is a Fintech payment company partnering with resellers across the globe. Our
family of terminals, payment gateway services, and innovative software solutions help facilitate
card payments and manage sales.
As a boutique software developer providing ISOs and ISVs with innovative hardware and
software solutions, we take pride in servicing the industry’s needs and requirements while
maintaining affordability and ensuring first-class customer support. Our solutions
include Dejavoo terminal hardware, DeNovo cloud point of sale (POS) solutions, SPIn semiintegrated EMV payments, and iPOSpays payment gateway.
Please watch the video at the conclusion of this document for reference.
Purpose
The purpose of this document is to provide Invoking application solution to access by other
applications to accept the payments.
Overview
This section provides an overview of the Invoking App Deep Linking implementation guide for
iOS app developers.
Invoking App is an iOS application which will be used to accept the payments on iPOS Go App.
In designing the API, our goal was to make it simple, intuitive, and predictable. We do our best
to adhere to common open and widely accepted standards, including WRAPPER CLASS for
access, JSON format for the data and Basic Authentication and Authorisation.
Use this guide to complete the technical integrations.
Prerequisites
Before you get started with your implementation, read the integration overview to learn about
integration and required configuration.
Request TPN
Please contact the business entity to onboard as merchant and get the TPN to integrate and test
with the sandbox environment.
TPN
It’s a 12digit Numeric code that is assigned to merchant
Setup developer environment
XCODE IDE:
https://developer.apple.com/xcode/
Mobile Setup:
To access iPOSgo in the test environment, instruct the user to log in with a sandbox account. To get sandbox URL and credentials, contact [email protected]
Develop iOS Application
Create a new iOS project or use the existing project and configure the below snippet code into
the project.
Configure the URL Scheme
1. Invoke App Setup
2. iPosGo! Setup
Configure the SDK
Install the Applications
To install Invoke App and iPosGo!! Application via link.
I’ll create a diawi Link for testing purposes using this url to obtain the UDID for your device. I
can now share the source file of the invoke application so that you can see how it is
implemented.
TPN Register
TPN register is used to download the parameters to configure the merchant configuration data
from the backend application portal.
Request Parameters:
Parameter | Name Description | Sample |
tpn | It’s a Unique 12digit code. This value is unique for each merchant. | 123456789012 |
applicationType | Application type is used to identify the application. | “” |
Snippet code:
tpn”:”123456789012” // input
DeepLinkWrapper.sharedInstance.makeARequestBasedOnTPN(tpnNo: tpn, delegate: self)
(i.e) jsonRequest = {“tpn”:”123456789012”, “appType_Key”:”IPosGo!”}
Delegate is to handle the two scenario’s one is success and failure case as to be followed
// it helps to open the iPosGo! App to give the input
Fun didReceiveSuccessRequest(success: URL) {
if UIApplication.shared.canOpenURL(success!) {
UIApplication.shared.open(sucess!, options: [:]) { result in
print(“OPEN URL”, result)
}
} else {
showAlert(alertMessage: “App Not Installed in the Device”)
}
} // Incase failure case func didReceiveFailureRequest() calls to print the error msg.
parseURL(strURL: url) // To parsing the url in this method to convert a string using valueOf()
ConvertStringToDictionary(text: str) // here given the result in valueOf()
jsonDict[“msg”] as? String // here get response message to show wherever you want
Perform Transactions
This api is used to invoke application to perform the transaction.
It supports SALE, REFUND, VOID, PRE-AUTH & TICKET transaction types.
Request Parameters:
Parameter | Name Description | Sample |
type | Transaction type | SALE |
amount | Transaction Amount | 10.00 |
Snippet code:
“Type”:”SALE”, “Amount”:”10.00” // input
DeepLinkWrapper.sharedInstance.makeARequestBasedOnTransactionTypes(type: Type, Amount: Amount,
delegate: self)
(i.e) jsonRequest = {“type”:”SALE”, “amount”:”10.00”}
Delegate is to handle the two scenario’s one is success and failure case as to be followed
// it helps to open the iPosGo! App to give the input
Fun didReceiveSuccessRequest(success: URL) {
if UIApplication.shared.canOpenURL(success!) {
UIApplication.shared.open(sucess!, options: [:]) { result in
print(“OPEN URL”, result)
}
} else {
showAlert(alertMessage: “App Not Installed in the Device”)
}
} // Incase failure case func didReceiveFailureRequest() calls to print the error msg.
parseURL(strURL: url) // To parsing the url in this method to convert a string using valueOf()
ConvertStringToDictionary(text: str) // here given the result in valueOf()
Transaction Response
iPosGo! Call back the result in Invoke like this. You can fetch the details.
{ [“Card”: {
AID = A000000025010801;
ChdToken = 4D6D198A5C1244F0E97CD3C3336483BB1EA7C5C7D4EA0A6F;
Label = AMEX;
MaskedPan = 3767522012;
}, “BaseAmt”: [“Amt”: “100”, “Label”: “Amount”], “TxDetail”: {
DateNTime = 20240515191215;
Tpn = 544424127175;
TraceNo = 1;
}, “BaseFee”: [“Amt”: “5”, “Label”: “BaseFee”], “Tax2”: [“Amt”: “21”, “Label”: “Tax2”], “surveyAns”: “1”, “Currency”: “840”, “Tip”: [“Amt”: “20”, “Label”: “Tip”], “Tax1”: [“Amt”: “11”, “Label”: “Tax1”], “Response”: {
AppCode = AXS802;
BatchNo = 63;
CardType = CREDIT;
DTxId = 03430717348412717520240515191215;
HTxId = 000000321000803;
InvoiceNo = 5;
RespCode = 00;
RespMsg = “APPROVAL AXS802 “;
Rrn = 413613500098;
TxRefNo = 034307173484;
}]
“Date” : “03.09.2023”
}
Video For Reference
iPOSgo! Deep Linking Demo Video.
Support
Email us directly at [email protected] with any questions or suggestions.
Request Parameters:
Parameter name | Type | Description | Sample |
*Rrn | string | It’s a Unique code. Just to tracks the TXN status | 123456789012 |
*DTxId | String | It’s a Unique code.Its TXN hash key | 39676826774069372420240510183738 |
*Label | String | Its Card type | VISA, AMEX |
*MaskedPan | String | Last few digit of card number | 3767522012 |
*DateNTime | String | TXN date and time | 20240515191215 |
*Tpn | String | Device unique Identifier | 544424127175 |
*TraceNo | String | Its unique code to track the TXN | 1 |
*CardType | String | Card type of the TXN | CREDIT / DEBIT |
*HTxId | String | It’s a Unique code. Just to tracks the TXN’s | 000000321000803 |
*TxRefNo | String | It’s a Unique code. Just to tracks the TXN’s | 034307173484 |
*DateNTime | String | It’s specify the date and time on TXN’s | 20240515191215 |
*AppCode | String | It’s a unique code | AXS802 |
*RespCode | String | It’s a unique code to represent a success data | 00 |
*RespMsg | String | It’s a response message for success | APPROVAL AXS802 |
*BatchNo | String | 63 | |
*InvoiceNo | String | 5 | |
*AID | String | A000000025010801 | |
*ChdToken | String | 4D6D198A5C1244F0E97CD3C3336483BB1EA7C5C7D4EA0A6F | |
*Amt | String | It’s an overall amount | 100 |
Amt | String | It’s a base amount | 5 |
Label | String | BaseFee | |
Tax2 Amt | String | It’s an amount of State Tax | 21 |
Tax2 Label | String | Tax2 | |
Tax1 Amt | String | It’s an amount of Local Tax | 11 |
Tax1 Label | String | Tax1 | |
Tip Amt | String | It’s an amount of given the Tip | 20 |
Tip Label | String | Tip | |
surveyAns | String | 1 | |
Currency | String | It’s a currency code | 840 |