Skip to main content

Mobile

Introduction​

The Software Development Kits for Android and iOS are libraries with a simple set of tools that allow you to easily communicate with the Paysafe Wallet API. The Android SDK is written in Kotlin using coroutines but Java is fully supported as well, using callback functions. The iOS SDK is a dynamic framework written in Swift.

By using the SDK, you can take advantage of pre-built features such as:

  • Automatic SDK setup.
  • Automatic token management.
  • Built-in services for performing HTTP API calls to the Paysafe Wallet API.
  • UI elements for PCI DSS sensitive data.

Main Concepts​

Asynchronous Operations​

The Android SDK is using suspend functions to perform asynchronous operations using Kotlin coroutines. All suspend functions are safe to call from the main thread. Each suspend function has a Java version, suffixed with Async, with the same parameters and a callback.

The iOS SDK uses completion closures to notify caller when async operation is completed. Completion closure is always called on the Main thread and provides Result with either data or error. Async functions also return cancellation handle for canceling in flight operations.

Wallet​

All SDK features are exposed through the Wallet object. The Wallet object is responsible for the SDK setup and all services and API operations are accessible through it.

Wallet Operations​

The SDK provides a set of services that are used for performing HTTP requests to the Paysafe Wallet API. Each of those services are responsible for different flows, such as user management, transactions, deposits, etc.

Error Handling​

The SDK provides a unified approach to handling errors by throwing a WalletException/WalletError whenever an error is returned by the Paysafe Wallet API.

UI Appearance​

Appearance of UI elements provided in the SDK can be customized. You can either completely re-style the UI, override specific values or use the default appearance.

Appearance​

Colors​

Colors are customized using semantic color palette based on their usage:

Background Colors​

Colors for element backgrounds.

Label(foreground) Colors​

Colors for foreground non-interactive elements like labels and icons.

Special Foreground Colors​

Foreground colors used for special cases.

Action Colors​

Colors for interactive foreground elements like button and links.

Fonts​

The following fonts can be customized

  • Title 1
  • Title 2
  • Title 3
  • Title 4
  • Subtitle 1
  • Subtitle 2
  • Text 1
  • Text 2
  • Button
  • Caption 1
  • Caption 2

Corner radius​

Three tokens are provided to customize corner radius (rounded corners).

  • Small - Checkbox
  • Medium - Button, Text input, Dropdown
  • Large - Bottom sheet

Border width​

One token is provided to customize border width.

Assets​

Icons and other images can be customized by providing own assets.

Customizable components​

Here is a list of components that support customization:

  • Button
  • TextField/InputView (for iOS and Android accordingly)
  • LinksLabel
  • Checkbox

You can see examples how to customize individual components in Customizing UI appearance for iOS and UI Theme Configuration for Android.