Android terminal app for Worldline SmartPOS hardware, integrating the Finbricks backend for QR payments. Card payments use the standard Worldline payment pathway.
Agents / new contributors: start with
PROJECT_MAP.md(+NEXT_STEPS.md,docs/). These are local-only handoff docs (git-ignored) — they live on the working machine, not in the repo. If you cloned a fresh copy and don't see them, ask the team for the handoff bundle. Only the buildable project is committed.
Name
FinPOS/com.argo22.finposis provisional — easy to rename before release.
- Hub screen → customer picks QR (our Finbricks flow) or Card (Worldline pathway).
- SmartPOS API 1.7.1 (Worldline AAR) bound via AIDL — printer, NFC, chip-card, device info. Only functional on real terminal hardware.
- Finbricks REST backend with RSA request signing for QR payment initiation.
app/
libs/ Worldline SmartPOS .aar
src/main/java/com/argo22/finpos/
MainActivity.kt Hub (QR/Card) + QR screen
ui/ QrViewModel, theme
finbricks/ FinbricksSigner, SigningInterceptor, Client, Config
smartpos/ SmartPosConnection (AIDL binding helper)
src/test/java/... FinbricksSignerTest (JUnit)
scripts/
finbricks_smoke.sh BE reachability + signed-call smoke test
tdd/SignerSpec.kt Standalone kotlinc red-green spec for the signer
SmartPOS API 1.7.1/ Vendor docs + .aar (source of truth)
Kotlin 2.0, Jetpack Compose (Material3), Retrofit + OkHttp +
kotlinx.serialization, Gradle KTS + version catalog. minSdk 24,
compile/targetSdk 35, JDK 17.
# Finbricks backend reachable?
./scripts/finbricks_smoke.sh
# Signer unit tests (standalone, no Android)
kotlinc app/src/main/java/com/argo22/finpos/finbricks/FinbricksSigner.kt \
scripts/tdd/SignerSpec.kt -include-runtime -d /tmp/signerspec.jar \
&& java -jar /tmp/signerspec.jar
# Full unit tests (needs Android SDK; downloads Gradle on first run)
./gradlew :app:testDebugUnitTestSee NEXT_STEPS.md for what's blocked and how to unblock it.