Skip to main content
Version: v0.13 (Latest)

Frequently Asked Questions

General

Q: Does the Kiwa eLicense SDK require REST APIs?

Yes, the Kiwa eLicense SDK integrates with Kiwa REST APIs for license management operations (authentication, issuance, assignment, and confirmation). Once a license is stored locally, it can be displayed and presented to verifiers without consulting Kiwa APIs. The presentation process (via NFC/BLE) works completely offline.


Q: Is the Kiwa eLicense SDK open-source?

No, the Kiwa eLicense SDK is proprietary software available only to licensed Kiwa customers. However, it is built on top of the Identity Development Kit (IDK), which is open-source. Licensed customers receive source code access to the Kiwa SDK under the terms of their license agreement.


Q: What is the relationship between the Kiwa SDK and the IDK?

The Kiwa eLicense SDK is built on top of the Identity Development Kit (IDK). The IDK provides foundational capabilities like:

  • Dependency injection framework
  • Mdoc library for ISO 18013-5 compliance
  • NFC/BLE engagement handling
  • Cryptographic operations

The Kiwa SDK adds Kiwa-specific functionality for e-license management on top of these building blocks.

API and Downloads

Q: Where can I find the API reference?

The complete Kotlin API documentation is available in the API Reference section, generated via Dokka.


Q: Where can I download the SDK?

The SDK is distributed via Sphereon's Nexus (Maven) repository. Licensed customers receive credentials to access:

  • Releases: https://nexus.sphereon.com/content/repositories/kiwa-releases/
  • Snapshots: https://nexus.sphereon.com/content/repositories/kiwa-snapshots/

See the Installation Guide for detailed setup instructions.


Q: What is the current SDK version?

The current release version is 0.13.0. Development snapshots are available as 0.13.0-SNAPSHOT.

Platform Support

Q: Which platforms are supported?

PlatformStatusNotes
AndroidSupportedAPI 27+ (Android 8.1+)
iOSSupportedXCFramework for arm64, x64, simulator-arm64
JVM/DesktopFutureCurrently not enabled in the build

Q: Is iOS fully supported?

Yes, iOS is fully supported via a Kotlin Multiplatform XCFramework. The API closely mirrors the Android API for consistency. SPM (Swift Package Manager) distribution is planned for a future release.


Q: Does the SDK support simulators/emulators?

The SDK works on simulators for basic functionality. However, NFC and BLE features require physical devices for testing engagement and presentation features.

Architecture and Integration

Q: Is there support for multi-tenancy?

Yes, the SDK inherits multi-tenancy support from the Identity Development Kit. While the holder SDK is optimized for single-user mobile apps, the underlying architecture supports multi-tenant deployments for enterprise use cases.


Q: What dependency injection framework does the SDK use?

The SDK uses kotlin-inject with Amazon App Platform (Anvil) for compile-time dependency injection. This provides:

  • Type-safe dependency resolution
  • Scope management (App, Context, Session)
  • Multiplatform support

Q: Can I use the SDK in a server-side application?

The SDK is primarily designed for mobile applications. While the underlying IDK supports JVM, the Kiwa holder SDK's JVM target is currently not enabled. Contact Sphereon for enterprise/server-side integration options.

Licensing and Security

Q: What license types does the SDK support?

The SDK supports any e-license conforming to the ISO 18013-5 Mdoc format. Specific license types (docTypes) are configured by Kiwa for each customer deployment.


Q: How are licenses secured on the device?

Licenses are stored as CBOR-encoded Mdocs with:

  • Cryptographic signatures validated against Kiwa's certificate authority
  • mTLS authentication for API communication
  • Platform-specific secure storage (recommended)

Q: What happens when a license expires?

Expired licenses remain on the device but will fail verification when presented to Relying Parties. The SDK provides validity information (validFrom, validUntil) that your application should use to warn users about upcoming expirations.

Troubleshooting

Q: I'm getting certificate errors during authentication

Common causes:

  1. Missing subscription key: Ensure KIWA_SUBSCRIPTION_KEY is configured
  2. Wrong environment: Verify you're using the correct ApiEnvironment (DEV, TEST, ACC, PROD)
  3. Network issues: Check connectivity to Kiwa APIs
  4. Expired credentials: Contact your Kiwa account manager

Q: License issuance fails with validation errors

The SDK performs automatic validation during issuance. Failures typically indicate:

  1. Invalid certificate chain: Backend certificate issue (contact Kiwa support)
  2. Date validation failure: Check device clock is accurate
  3. Signature mismatch: Possible data corruption (retry the request)

Q: How do I report bugs or request features?

Contact Sphereon through your account manager or the support channels provided in your license agreement.

Additional Resources