Freedom Pay
  1. Device ID
Freedom Pay
  • Overview
  • Gateway API
    • Overview
    • Sync API
      • Overview
      • Purchase
        • Overview
        • Create payment
        • Any amount
        • Card
        • 3DSecure
        • Cancel
        • Clearing
        • Refund
        • Status
      • Payout
        • Overview
        • Card
        • IBAN
        • Balance
        • Status
      • Transfer
        • Overview
        • Card
        • 3DSecure
        • Rates
        • Status
      • Card
        • Overview
        • Add
        • 3DSecure
        • List
        • Remove
        • Status
      • Token
        • Overview
        • Token Pay
        • Apple Pay
        • Google Pay
        • Token Payout
        • Status
    • Async API
      • Overview
      • create
        • create payment
        • create payment recurrent
      • read
        • read payment
        • read request
      • edit
        • edit payment.refund
        • edit payment.reverse
        • edit payment.clearing
      • delete
  • Merchant API
    • Overview
    • Purchase
      • Overview
      • Checkout
      • Card token
        • Overview
        • Tokenize card
        • Delete token
        • Card token list
        • Create payment (with CVC)
        • Confirm payment (with CVC)
        • Create payment
        • Confirm payment
      • Create payment
      • Any amount
      • Cancel payment
      • Clearing
      • Refund payment
      • Status
    • Payout
      • Overview
      • Card token
        • Tokenize card
        • Delete token
        • Card token list
        • Create payment
      • Create payment
      • IBAN
      • Balance status
      • Status by order_id
      • Status by Payment ID
      • Status
    • Mobile balance
      • Overview
      • Init
      • Pay
      • Approve
      • Resend code
      • Status
    • Invoice
      • Overview
      • Init
      • Info
      • Pay
      • Status
    • SDK
      • JS SDK
      • Google Pay
      • Freedom QR
        • Reader SDK (Android)
        • Provider SDK (Android)
      • Payment SDK
        • iOS
        • Android
    • CMS
      • Overview
      • Get Merchant ID and key
      • WordPress
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
        • Update
      • Tilda
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • InSales
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • Ecwid
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • Bitrix
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • PrestaShop
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • OpenCart
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
    • Redirect back
      POST
    • Result notify
      POST
    • Payout notify
      POST
    • Check request
      POST
  • Card API
    • Overview
    • Payment Cards
      • Overview
      • Dictionaries
      • Bulk issue
      • Issue card
      • Issue plastic card
      • Activate card
      • Block card
      • Unblock card
      • Set PIN
      • Reset PIN counter
      • Close card
      • Update client
      • Card info
      • Balance
      • Secret data
      • Secret data (version 2)
      • Statement
      • Statement extended
      • Create client
      • Edit client
      • Сards' list
      • Request' status
      • Create transaction
      • Clearing transaction
      • Refund transaction
      • Transaction request' status
      • Transaction info
    • Gift Cards
      • Overview
      • List
      • Issue
      • Confirm
      • Resend
      • Resend code
      • Status
  • Partner API
    • Rates
      • Overview
      • Rates
    • Products
      • Overview
      • Dictionaries
      • Add client with product
      • Request status
    • E-Money
      • Overview
      • Add
      • Owner identification
      • Info
      • Close
      • Block
      • Balance
      • Statement
      • Request Status
    • Freedom ID
      • Overview
      • Design
      • iOS SDK
      • Android SDK
      • OAuth2
        • Authorization link
        • Token exchange
        • Token refresh
        • User info
        • Request profile
        • Get profile status
        • Create user
        • Update user
      • OIDC
        • Authorization endpoint
        • Token exchange
        • Userinfo
      • Error codes
      • Examples
        • Keycloak
    • Transfer
      • Overview
      • Get token
      • Refresh token
      • Get agents
      • Fees
      • Create person
      • Create business
      • Create transfer
      • Print application
      • Confirm
      • Search
      • Payout
      • Payout confirm
      • Cancel
      • Get person info
      • Get business info
      • Status
      • Info
    • Device ID
      • Android SDK
      • iOS SDK
  1. Device ID

iOS SDK

Device ID#

Introduction
Parameter Collection and Permissions
Potential Required Permissions
Getting Started
Prerequisites
Installation Instructions
Usage
Device ID Initialization
Request ID Generation
Data Structures
DeviceIdError Structure
IdentificationError Structure
Support

Introduction#

Welcome to Device ID SDK, a reliable solution for device identification and fingerprinting across your applications. This SDK provides a comprehensive set of tools to uniquely identify devices, track usage patterns, and enhance security measures through advanced device recognition techniques.
The Device ID SDK allows you to generate and manage persistent device identifiers that remain consistent across user sessions, application updates, and in various network conditions. By utilizing Device ID SDK, you can create a more secured and personalized experience for your users.

Parameter Collection and Permissions#

The Device ID SDK collects various device parameters to generate accurate fingerprints. Some of these parameters require specific permissions to be granted by the user. Additionally, certain parameters that were previously accessible without permissions may require explicit permissions on newer iOS versions.
The Device ID SDK is designed to gracefully handle cases where permissions are not available, continuing to function even without any permission listed in Potential Required Permissions, though identification confidence may be reduced. Each permission may affect identification strength differently, but the Device ID SDK will automatically adapt its identification methods based on available permissions.
To ensure optimal functionality, please review the following section carefully.

Potential Required Permissions#

The Device ID SDK may utilize any of the following permissions depending on your configuration:
1.
To retrieve identifier for advertisers (IDFA) on applications that support iOS 14 and later, Privacy - Tracking Usage Description key must be added to the application's Info.plist. Otherwise, the default IDFA (00000000-0000-0000-0000-000000000000) will be returned.
2.
To retrieve the Wi-Fi SSID:
The Access Wi-Fi Information Entitlement must be added in project settings.
The Privacy - Location When In Use Usage Description key must also be present in the application's Info.plist; otherwise, the result will be nil.

Getting Started#

Prerequisites#

Before you begin integrating the Device ID into your iOS app, ensure you have the following:
An iOS app project with a minimum iOS 12 support.
The Freedom ID SDK.xcframework file

Installation Instructions#

1.
Open Project Settings in Xcode
2.
Select required Target
3.
Go to General Tab and in Frameworks, Libraries, and Embedded Content and click +
4.
Select Add Other... and then Add files...
5.
Choose FreedomID.xcframework
6.
Now you can import SDK and use it further

Usage#

Device ID Initialization#

To initialize the Device ID SDK, call the create method of the DeviceID class.
Upon creation, the DeviceID class performs an initial asynchronous setup. If this setup fails, the subsequent call to getRequestID will return a notInitialized error.

Request ID Generation#

To generate request id, call the getRequestID method of the DeviceID class. This method obtains a unique identifier request ID that will track the fingerprinting transaction through the system.
The getRequestID method takes one parameter:
A callback function that is invoked when you attempt to generate request ID.
The process returns a Result<String, DeviceIdError>:

Data Structures#

DeviceIdError Structure#

General Description#

The DeviceIdError enum defines a set of possible errors that can occur during device ID data collection and the communication process. Each error represents a specific issue related to the request's structure, identification, application integrity, or the process of sending and receiving requests.

Table: DeviceIdError #

ValueDetails
notInitializedIndicates that the DeviceID class was not initialized or failed session initialization request.
identificationErrorRepresents an error from backend. Contains underlying IdentificationError error.
verificationErrorIndicates a failure in verifying the response during the initial session request in create.
invalidDataErrorRepresents an invalid data error in sent parameters during getRequestID.
unknownErrorRepresents an unknown error.

IdentificationError Structure#

General Description#

The IdentificationError enum defines a set of possible errors identified by the server that occurred during requests.

Table: IdentificationError #

ValueDetails
SESSION_PROCESSING_ERROR Indicates that an error occurred during handling of the session initialization request or while creating a response on the server side.
INCORRECT_REQUEST_STRUCTURE Represents an error in the request's header.
DATA_PROCESSING_ERROR Indicates that the server failed to decrypt the request data.
REQUEST_VALIDATION_ERROR Indicates that a sent parameter is invalid.
REQUEST_RECEIVING_ERROR Represents an error that occurred during initial session request handling on the server in create.
EXPIRED_DATA_ERROR User's credentials have expired or were not found in the database.

Support#

If you have questions or need help integrating the SDK, feel free to reach out! 👋
Email: support@freedompay.kz
Previous
Android SDK