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.

https://get.udid.io/

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, REFUND, VOID, PREAUTH]

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