Skip to main content

TerminalApi

Target audience: consumers of the integration layer.

TerminalApi is the contract used by the application layer via ApiModule.terminal.

Status

val logs: SharedFlow<String>
val scannedCode: Flow<String>
val terminalReady: StateFlow<Boolean>
val terminalConnected: StateFlow<Boolean>
val deviceInfo: StateFlow<DeviceInfo?>

The semantics of these flows are described in State and Flows.

Lifecycle

suspend fun startTerminal(config: TerminalConnectionConfig): TerminalInitResult
suspend fun teardownTerminal(): Boolean

startTerminal(...) is owned by ApiModule in typical application code. Startup order is described in Quick Start.

Payments

suspend fun pay(amountMinorUnits: Int): PaymentResult
suspend fun refundUnlinked(
amountMinorUnits: Int,
originalMaskedPan: String?,
skipCardCheck: Boolean = false
): PaymentResult
suspend fun voidPayment(appSpecificData: String): PaymentResult
suspend fun paySplitPart(part: SplitPaymentPart, totalsGroupId: String): PaymentResult
fun abortPayment()

Function-specific usage is described in:

Results and errors are described in Error Handling.

Scanner

fun initializeScanner()
fun startScanner(activity: Activity, behavior: ScanBehavior)

Usage is described in Scanner.

Printing

suspend fun print(content: String, contentType: PrintContentType): PrintResult
suspend fun initializeEpsonPrinter(): PrintResult
suspend fun printEpson(data: EpsonPrintData): PrintResult

Usage is described in Receipt Printing.