DEUNA SDKs
Choose and integrate the DEUNA SDK for Web, iOS, Android, or React Native.
DEUNA SDKs render payment experiences inside web and mobile applications. Choose the platform guide that matches the application you ship, then use the product method supported by that SDK.
Web SDKJavaScript and TypeScript for any web stack.JavaScript · CDNReact NativeOne integration for iOS and Android apps.TypeScript · iOS + AndroidiOSSwift SDK for native iOS applications.Swift · SPMAndroidKotlin SDK for native Android applications.Kotlin · Gradle
Choose a platform and flow#
| Capability | Web | Android | iOS | React Native |
|---|---|---|---|---|
| Payment Widget | initPaymentWidget | initPaymentWidget | initPaymentWidget | initPaymentWidget |
| Complete Checkout | Not exposed | initCheckout | initCheckout | Not exposed |
| Payment Vault and Click to Pay | initElements | initElements | initElements | initElements |
| Continue 3DS or another pending action | initNextAction | initNextAction | initNextAction | initNextAction |
| Voucher experience | initVoucherWidget | initVoucherWidget | initVoucher | initVoucherWidget |
| Native wallet sheet | Apple Pay and Google Pay | Google Pay | Apple Pay | Apple Pay and Google Pay |
| Modal and embedded presentation | Yes | Yes | Yes | Yes |
Integration flow#
Sequence diagram
- Create the order on your backend with a private API key.
- Return only the short-lived order token to the application.
- Initialize the SDK with the matching public API key and environment.
- Open the appropriate experience and handle success, error, close, and lifecycle callbacks.
- Use the callback to update the interface, but use a verified webhook as the source of truth for fulfillment.
Common lifecycle rules#
- Keep one SDK instance alive for the duration of the active experience.
- Treat
onSuccessas a user-interface signal; confirm the final payment state on your backend. - Handle
onErrorandonClosedseparately. A customer closing a widget is not necessarily a payment failure. - Release the widget when the owning screen or flow ends. Use
close()for an active flow and the platform-specific disposal mechanism for an embedded view. - Call
initNextActiononly with the order token for an order that DEUNA reports as requiring another action. - Check native-wallet availability before rendering a merchant-owned Apple Pay or Google Pay button.
Official code#
The maintained repositories are the source of truth for package versions, supported platform versions, release notes, and runnable examples.