/

Mobile SDKs

Native payment experiences for Android and iOS. Pre-built UI components, Google Pay & Apple Pay, card scanning, and 3D Secure -- all PCI compliant out of the box.

Native UI

Jetpack Compose & SwiftUI components

Wallet Pay

Google Pay & Apple Pay built in

Card Scanning

ML-powered camera card capture

PCI Compliant

SAQ-A eligible, zero card data

KT

Android SDK

v1.0.0 · API 26+ (compileSdk 34) · GitHub

Installation

build.gradle.kts
// build.gradle.kts
dependencies {
    implementation("com.wyrr:payments:1.0.0")
}

Quick Start

1val wyrr = Wyrr.initialize(
2    context = applicationContext,
3    publishableKey = "pk_test_...",
4    environment = Wyrr.Environment.SANDBOX
5)
6
7val config = PaymentSheetConfiguration(
8    sessionId = "cs_...",
9    merchantName = "Acme Corp",
10    brandColor = "#4F46E5"
11)
12
13PaymentSheet(config) { result ->
14    when (result) {
15        is PaymentResult.Succeeded -> handleSuccess(result.paymentId)
16        is PaymentResult.Failed -> handleError(result.error)
17        is PaymentResult.Cancelled -> handleCancel()
18    }
19}

Features

Google Pay

Native Google Pay integration via play-services-wallet

Card Scanning

Camera-based card recognition powered by ML Kit

3D Secure

Automatic 3DS challenge handling via Chrome Custom Tabs

PCI Compliant

SAQ-A eligible -- card data never touches your servers

Payment Sheet

The PaymentSheet is a pre-built, drop-in UI that handles the entire payment flow. It renders a bottom sheet (Android) or modal (iOS) with card entry, Google Pay / Apple Pay buttons, saved payment methods, and input validation. Your app receives a simple callback with the result -- no need to build or certify your own card form.

Card Entry

PCI-compliant card form with real-time validation, card brand detection, and postal code collection.

Wallet Payments

One-tap Google Pay or Apple Pay. Automatically shown when available on the device.

Saved Methods

Returning customers see their saved cards and can pay with a single tap.

Localization

Supports 25+ languages and automatically adapts to the device locale.

Card Scanning

Both SDKs include camera-based card scanning that extracts the card number, expiry date, and cardholder name in real time. On Android this is powered by Google ML Kit; on iOS it uses the Vision framework. Card scanning is presented automatically inside the PaymentSheet when camera permission is granted, or you can invoke it standalone via the CardScanner API.

Real-Time OCR

Card details recognized as the user holds their card to the camera. No photo capture required.

Privacy First

All processing happens on-device. No images or card data are sent to any server.

Fallback Ready

If the camera is unavailable or permission is denied, users can type their card details manually.

3D Secure Authentication

When a payment requires 3D Secure (3DS) verification, the SDK handles the full challenge flow automatically. On Android the issuer's authentication page opens in a Chrome Custom Tab; on iOS it uses SFSafariViewController. Once the cardholder completes the challenge, control returns to your app with the payment result. No additional code is needed beyond the standard PaymentSheet callback.

3DS2 First

Frictionless flow attempted first, with step-up challenge as fallback.

Automatic Handling

No extra code required. The SDK detects when 3DS is needed and presents the challenge.

Liability Shift

Successful 3DS authentication shifts chargeback liability to the issuing bank.

Customization

Both SDKs support theming so the payment UI matches your brand. Pass a brandColor to tint buttons and highlights, or provide a full WyrrTheme object to control typography, corner radii, dark/light mode, and individual component styles.

1val theme = WyrrTheme(
2    primaryColor = Color(0xFF4F46E5),
3    backgroundColor = Color.White,
4    cornerRadius = 12.dp,
5    fontFamily = FontFamily.SansSerif,
6    darkMode = false
7)
8
9PaymentSheet(
10    configuration = config,
11    theme = theme
12) { result -> /* ... */ }