Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.zennopay.in/llms.txt

Use this file to discover all available pages before exploring further.

The Android SDK is in active development. Maven Central publish is pending — coordinates below will work once the artifact is published. 🚧

Requirements

  • minSdk 24 (Android 7.0)
  • Kotlin 1.9+
  • AndroidX

Install via Gradle

// settings.gradle.kts
dependencyResolutionManagement {
  repositories {
    mavenCentral()
  }
}

// app/build.gradle.kts
dependencies {
  implementation("com.zennopay:sdk:0.1.0")
}

Quickstart

import com.zennopay.Zennopay
import com.zennopay.PaymentResult

class CheckoutActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // 1. Your backend creates the intent + mints the JWT
    val intentId = "zp_AbCd1234EfGh5678"
    val jwt = "eyJhbGciOi..." // RS256, signed by your backend

    // 2. Open the Zennopay-hosted checkout
    Zennopay.openCheckout(
      activity = this,
      intentId = intentId,
      jwt = jwt,
      returnScheme = "yourapp",
    ) { result ->
      when (result) {
        is PaymentResult.Success -> Log.d("zp", "Captured ${result.intentId}")
        is PaymentResult.Failure -> Log.e("zp", "Failed: ${result.error}")
        is PaymentResult.Cancelled -> Log.d("zp", "User cancelled")
      }
    }
  }
}
The SDK uses Custom Tabs for in-app browser presentation, with a fallback to a built-in WebView on devices without Custom Tabs support. Register an intent filter so the SDK can return control to your app:
<activity android:name=".CheckoutActivity">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="yourapp" android:host="payment-result" />
  </intent-filter>
</activity>
Pass the scheme name to openCheckout(returnScheme = ...).

ProGuard / R8

The SDK ships with consumer ProGuard rules. No additional configuration needed.