Developer SDK — iOS & Android

Install. Configure. Ship.

The Wallet SDK gives your brand app full NFC credential delivery — wallet keys, digital ID verification, loyalty enrollment, and payment capture — through a modular iOS and Android library.

Same protocols as the native wallet flow. Full Puck feature parity.

4 Modules iOS 15+ & Android 8+ ~2 MB Binary 1–8 Week Integration
0Independent Modules
0Binary Size (iOS)
0Platforms
0Integration Timeline
Capabilities

Four modules. One integration. Full feature parity.

Integrate the capabilities your app needs — from a lightweight key-only integration to a full branded check-in experience.

Module 1
Wallet Key Provisioning

Guest taps Puck → SDK handles NFC → room key provisioned to native wallet. Provisioning events reported to your analytics.

Ship in 1–2 weeks
Module 2
Identity Verification

mDL/EUDI credential read, cryptographic verification, verified identity data returned to your app for reservation matching.

Digital ID acceptance
Module 3
Analytics Events

Every interaction generates structured events — tap initiated, key provisioned, identity verified. Events flow to your analytics pipeline.

Connect to your BI stack
Module 4
Pre-Built UI

Ready-made check-in screen, tap animation, identity prompt, loyalty card. Customizable or replaceable with your own UI.

Optional — accelerator
Minimum Integration

KeyShareCore + KeyShareWallet — tap-to-collect wallet key delivery. A few days of developer work.

Full Integration

All four modules. Complete branded check-in — identity, payment, key, loyalty — with full analytics. 4–8 weeks.

How It Works

From install to first key delivery.

1
Install

Add via CocoaPods, SPM (iOS) or Maven Central (Android).

Minutes
2
Configure

Initialize the SDK with your API key. Set up NFC entitlements.

Hours
3
Build

Integrate the modules you need. Use pre-built UI or build your own screens.

Days to Weeks
4
Certify

Submit for KeyShare's certification review. Automated test suite validates NFC protocol compliance.

~1 Week
5
Ship

Push to App Store / Google Play. Ongoing SDK updates and protocol maintenance included.

Your Release Cycle
Quick Start

See the SDK in code.

Clean API. Familiar patterns. Full documentation in the developer sandbox.

import KeyShareCore
import KeyShareWallet

// Initialize
let keyshare = KeyShare(apiKey: "ks_live_your_api_key")

// Start an NFC session when the guest taps "Collect Key"
keyshare.startSession { session in
    session.provisionKey { result in
        switch result {
        case .success(let key):
            // Key provisioned to Apple Wallet
            self.showSuccess(keyDetails: key)
        case .failure(let error):
            // Handle: .nfcTimeout, .provisioningFailed, .walletDeclined
            self.showRetry(error: error)
        }
    }
}
import io.keyshare.core.KeyShare
import io.keyshare.wallet.KeyShareWallet

// Initialize
val keyshare = KeyShare(apiKey = "ks_live_your_api_key")

// Start an NFC session
keyshare.startSession { session ->
    session.provisionKey { result ->
        result.onSuccess { key ->
            // Key provisioned to Google Wallet
            showSuccess(keyDetails = key)
        }.onFailure { error ->
            // Handle: NfcTimeout, ProvisioningFailed, WalletDeclined
            showRetry(error = error)
        }
    }
}

The pattern is consistent: initialize → start session → call the method → handle the result. Identity, loyalty, and analytics follow the same callback structure.

Architecture

Where the SDK fits in the stack.

What the SDK handles
  • NFC session management (activate, communicate, terminate)
  • Protocol negotiation with the Puck (Apple VAS, Google Smart Tap, ISO 18013-5)
  • Credential receipt and wallet provisioning
  • Event generation and callback dispatch
  • Session encryption and API authentication
What the SDK does NOT handle
  • Your app's UI (unless you use the optional pre-built components)
  • Reservation lookup or PMS integration (that's GEP's job)
  • Lock vendor communication (Puck and GEP handle that)
  • Guest data storage — data transits through, nothing persists

NFC-via-Puck architecture: Your app talks to the Puck over NFC. The Puck and GEP handle lock communication downstream. No BLE session management, no lock vendor integrations to maintain. The SDK's surface area is NFC credential exchange — a single, well-defined protocol boundary.

Platform Support

Platform support and requirements.

iOS
Minimum iOS15.0
Swift5.7+
DistributionCocoaPods, SPM
Binary Size~2 MB
DependenciesCryptoKit (built-in)
Android
Minimum SDKAPI 26 (Android 8.0)
Target SDK34
Kotlin1.9+
DistributionMaven Central
Binary Size~2.5 MB
Module Reference
CoreAPI client, Puck communication, sessions — Required
WalletKey provisioning to native wallets — Required
IdentitymDL/EUDI presentation, selective disclosure — Optional
UIPre-built check-in screens, tap animation — Optional
Security

Security posture.

The SDK is a conduit, not a store. Data flows through during active interactions and is immediately dispatched.

API Authentication

Dedicated API key scoped to your brand's properties. SDK authenticates with GEP Cloud on initialization.

Session Encryption

HTTPS/TLS 1.3 for SDK↔GEP. NFC interactions use ECDH key exchange, AES-256-GCM session encryption.

Zero Data Residency

No guest data stored in the SDK. Credentials transit through and are provisioned to the native wallet. Nothing persists between sessions.

Payment Isolation

Payment tokens flow through the Puck directly (Puck → GEP → payment gateway). The SDK is never in the payment data path.

OWASP MSTG

Developed following OWASP Mobile Security Testing Guide standards. Third-party security audit reports available under NDA.

Minimal Runtime Impact

No background processes. <100ms initialization. NFC active only during guest-initiated tap interactions. Negligible battery impact.

Versioning & Support

Long-term support, built in.

Semantic Versioning
PatchBug fixes — backward compatible
MinorNew features — backward compatible
MajorBreaking API changes — migration required
Support Policy
Active VersionsTwo major versions maintained
Deprecation Notice6 months before sunset
Security Patches18 months from release
Certification

One-time certification. Automated ongoing validation.

1
Submit

Submit your integration code and screenshots for review.

Day 1
2
Technical Review

NFC implementation, error handling, and UI flow reviewed.

5 Business Days
3
Security Scan

Automated security scan of the SDK integration surface.

2 Business Days
4
Certified

Integration approved. Certification badge issued. Non-SDK app updates don't require recertification.

Upon Passing
Sandbox Environment

Full GEP sandbox with test properties

Puck Simulator

NFC testing without physical hardware

Sample Apps

iOS & Android complete integration samples

FAQ

Frequently asked questions.

No. The SDK is an additive module in your app — it doesn't replace your core codebase. If you remove the SDK, your app returns to its pre-integration state. Wallet keys already delivered to guests continue to work. There's no data lock-in.

No. Guests without your app use the native wallet flow — tap the Puck and get their key directly. Guests with your app get the same key through a branded experience with in-app analytics and CRM data routing.

Yes. The pre-built UI (Module 4) is optional. Most brand teams build their own check-in screens using the SDK's API layer, matching their existing design system.

The SDK abstracts the lock vendor layer. Your app calls the same SDK methods regardless of lock system. The GEP handles lock vendor communication on the server side.

KeyShareCore + KeyShareWallet. Two modules. Your app gains tap-to-collect wallet key delivery. Integration timeline: 1–2 weeks.

SDK access is included with the GEP platform license. There is no separate SDK licensing fee. Contact sales for platform pricing.

Yes. If your property has a guest app, the SDK gives it tap-to-collect capability. The minimum integration (Core + Wallet) is designed for a single developer to complete in 1–2 weeks.
Built on open standards OWASP MSTG compliant Part of the KeyShare ecosystem Semantic versioning

Start building.

Request SDK access to get your API key, sandbox environment, Puck simulator, sample apps, and integration guide. A dedicated integration engineer is assigned to your first deployment.