DocumentationRecipesAPI ReferenceChangelog
Documentation

Activation

Activation API allows merchants to activate SoftPOS app and loads the necessary configurations

Activation API is used to activate the SoftPOS app within the local area network. Merchant is required to have the activationCode before proceeding to call this API.

You can integrate in two UI environments:

  1. Traditional Activity / Fragment UI
  2. Modern Jetpack Compose UI

Activation API Request

SoftPOS app has to be activated before calling any other API.

Option 1 : Activation in Activity or Fragment

Use when : your screen is based on AppCompatActivity or Fragment.

class ActivationActivity : AppCompatActivity() {

    private val activationLauncher =
        registerForActivityResult(msaPosApi.activationContract()) { result ->
            when (result) {
                is PosResponse.Success -> {
                    Log.d("Activation", "Success: ${result.rspCode} - ${result.rspMsg}")
                }
                is PosResponse.Failed -> {
                    Log.e("Activation", "Failed: ${result.rspCode} - ${result.rspMsg}")
                }
            }
        }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_activation)

        triggerActivation("MERCHANT_ACTIVATION_CODE")
    }

    private fun triggerActivation(code: String) {
        activationLauncher.launch(PosRequest.Activation(activationCode = code))
    }
}

Option 2 : Activation in Jetpack Compose

Use when : your screen is implemented using Compose.

@Composable
fun ActivationScreen(msaPosApi: MsaPosApi, activationCode: String) {
    val context = LocalContext.current

    val activationLauncher = rememberLauncherForActivityResult(
        msaPosApi.activationContract()
    ) { result ->
        when (result) {
            is PosResponse.Success -> {
                Log.d("Activation", "Success: ${result.rspCode} - ${result.rspMsg}")
            }
            is PosResponse.Failed -> {
                Log.e("Activation", "Failed: ${result.rspCode} - ${result.rspMsg}")
            }
        }
    }

    activationLauncher.launch(PosRequest.Activation(activationCode = activationCode))
}

Activation API Response

{
 "respCode" : "0",
 "rspMsg": "Success"
}

Response: PosResponse<T>

All responses from the POS Lib return as a sealed class:

sealed class PosResponse<T>(val rspCode: String, val rspMsg: String) : Serializable

Sub Types

TypeDescription
Success<Unit>Response: Completed successfully
Failed<Unit>Response: failed. Use rspCode, rspMsg for debugging