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.