Skip to content

Android

Follow this guide to integrate the SIBS Payment Gateway into your Android app with our SDK.

Step 1: SDK installation

  1. Download this file: android-sibs-stargate-sdk-0.1.1
  2. Copy the simply-connect-sdk.aar file to the app/libs folder in your project.
  3. Inside the “dependencies” section of your app/build.gradle file, implement the following:
//native / https request
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation "androidx.appcompat:appcompat:1.6.0"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1"
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.7'

//retrofit / https request
implementation "com.squareup.okhttp3:okhttp:4.10.0"
implementation 'com.squareup.okhttp3:logging-interceptor:4.10.0'
implementation "com.squareup.retrofit2:retrofit:2.9.0"
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

//gson
api 'com.google.code.gson:gson:2.10.1'

//google wallet
api "com.google.android.gms:play-services-wallet:19.3.0"
api 'com.google.android.gms:play-services-base:18.4.0'
Notification

The SibsSdkApi class allows interaction with the SIBS SDK and offers the entry points described in the Step 2 and Step 3 below.

Step 2: SIBS SDK initialization

Initializing the SIBS SDK authenticates you as a merchant. Include the following parameters before sending any further requests.

Parameters
  • clientId – client identifier used to authenticate.
  • accessToken – access token used to authorise requests.
  • environmentSDK – environment in which the SDK will operate.
Signature
start(clientId: String, accessToken: String, environmentSDK: EnvironmentSDK)

Step 3: SDK requests

StartPayment

Starts a payment process with the transaction parameters provided. Starts the payment flow and returns the result asynchronously via LiveData.

Parameters:
  • actvity – the AppCompatActvity from which the payment flow is initiated. This ensures proper lifecycle and user interface management.
  • transactionParamsSDK – the parameters needed to process the payment transaction.
Response:

Returns a LiveData object containing the result of the transaction, which can be watched for updates as the payment process is completed.

Signature:
startPayment(activity:AppCompatActicity,transactionParamsSDK:TransactionParamsSDK):LiveData
GetTransactionStatus

Recovers the status of a previously initiated transaction. Queries the status of the transaction by its ID and returns the result asynchronously via LiveData.

Parameters:

Receives the parameter transactionId. The unique identifier of the transaction to be queried.

Response:

Returns a LiveData object containing the status of the transaction, which can be watched for updates.

Signature:
getTransactionStatus(transactionId: String): LiveData<TransactionStatusSDK>
Data Classes
EnvironmentSDK:
enum class EnvironmentSDK {
     QUALITY,
     PRODUCTION 
}
Response:

TransactionResultSDK:

class TransactionResultSDK(
 val isSuccess: Boolean,
 val transactionID: String?,
 val paymentType: String?,
 val paymentStatus: String?,
 val paymentMethod: String?,
 val returnStatus: ReturnStatus?,
 val execution: Execution?,
 val merchant: Merchant?,
 val token: Token?,
 val sdkError: ErrorStatusSDK? = null,
)

TransactionStatusSDK:

class TransactionStatusSDK(
val transactionID: String?,
val paymentType: String?,
val paymentStatus: String?,
val paymentMethod: String?,
val returnStatus: ReturnStatus?,
val execution: Execution?,
val merchant: Merchant?,
val token: Token?,
val sdkError: ErrorStatusSDK,
)

Return Status:

class ReturnStatus(
 val statusCode: String,
 val statusMsg: String,
 val statusDescription: String
)

Execution:

class Execution(
val startTime: String,
val endTime: String
)

Merchant:

class Merchant(
 val terminalId: Int,
 val merchantTransactionId: String?,
 val websiteAddress: String? = null,
 val channel: String? = null,
 val shopURL: String? = null,
 val transactionDescription: String? = null
)

Token:

class Token(
 val name: String?,
 val type: String,
 val value: String,
 val maskedPan: String?,
 val expireDate: String?,
)

ErrorStatusSDK:

enum class ErrorStatusSDK {
 SUCCESS, 
 SDK_NOT_CONFIGURED, 
 INVALID_TRANSACTION_PARAMETERS, 
 USER_CANCELED, 
 COMMUNICATION_ERROR,
 NETWORK_ERROR, 
 TIMEOUT_ERROR, 
 PAYMENT_FORM_NOT_AVAILABLE, 
 DECLINED,
 GOOGLE_PAY_DECLINED, 
 UNKNOWN_ERROR 
}