MineSec Pay Application
White-label Integration
Screen Providers Reference

Screen Providers Reference

Every screen in MSA Core follows the same pattern — your Composable receives a State and a triggerAction callback:

@Composable
fun YourScreen(state: ScreenState, triggerAction: (ScreenAction) -> Unit)

Core Screens

Provider PropertyState ClassAction ClassDescription
loginScreenLoginStateLoginActionPasscode login with optional biometric and QR scan
landingScreenLandingStateLandingActionSplash / initialization screen
homeScreenHomeStateHomeActionMain dashboard with navigation to all features

Payment Screens

Provider PropertyState ClassAction ClassDescription
saleScreenSaleStateSaleActionNFC card tap sale transaction
preAuthScreenPreAuthStatePreAuthActionPre-authorization flow
cardRefundScreenCardRefundStateCardRefundActionCard refund processing
paymentSelectionScreenPaymentSelectionStatePaymentSelectionActionPayment method selection (card vs QR)
paymentQRcodeSelectionScreenPaymentSelectionStatePaymentSelectionActionQR payment scheme selection
consumerQRScanScreenConsumerQRScanStateConsumerQRScanActionConsumer QR code scanning

Transaction Screens

Provider PropertyState ClassAction ClassDescription
historyScreenHistoryStateHistoryActionTransaction history list
trxDetailsScreenTransactionDetailsStateTransactionDetailsActionSingle transaction details
trxResultScreenTransactionResultStateTransactionResultActionTransaction success/failure result
trxReceiptScreenReceiptStateReceiptActionDigital receipt view
processingInquiryScreenProcessingInquiryStateProcessingInquiryActionTransaction processing status

Settlement Screens

Provider PropertyState ClassAction ClassDescription
settlementScreenSettlementStateSettlementActionBatch settlement overview
settlementDetailsScreenSettlementStateSettlementActionSettlement batch details
settlementResultScreenSettlementStateSettlementActionSettlement result display

Settings Screens

Provider PropertyState ClassAction ClassDescription
settingsScreenSettingsStateSettingsActionApplication settings
shopInfoScreenSettingsStateSettingsActionMerchant/shop information

App-to-App Screens

These screens handle integration when external POS applications invoke your app:

Provider PropertyState ClassAction ClassDescription
splashApp2AppScreenSplashApp2AppStateSplashApp2AppActionApp-to-app loading/splash
activationApp2AppScreenActivationApp2AppStateActivationApp2AppActionDevice activation via external app
saleApp2AppScreenSaleApp2AppStateSaleApp2AppActionSale initiated by external app
queryApp2AppScreenQueryApp2AppStateQueryApp2AppActionTransaction query from external app
settlementApp2AppScreenSettlementApp2AppStateSettlementApp2AppActionSettlement from external app
voidRefundApp2AppScreenVoidRefundApp2AppStateVoidRefundApp2AppActionVoid/refund from external app
warmupApp2AppScreenWarmupApp2AppStateWarmupApp2AppActionWarmup from external app

Status Bar Color

Customize the status bar color per screen:

override val statusBarColor: @Composable (AppScreen) -> Color = { screenType ->
    when (screenType) {
        LandingScreen -> MsaTheme.colors.mutedForeground
        LoginScreen -> MsaTheme.colors.background
        HomeScreen -> MsaTheme.colors.accent
        SaleScreen, PreAuthScreen, CardRefundScreen -> MsaTheme.colors.primary
        else -> MsaTheme.colors.background
    }
}