1. SDKs
  2. iOS

Our SDK docs are programmatically generated, so to guarantee you’re viewing the most up-to-date version of our docs, you can visit this site. The docs (below) are regularly updated and have been replicated here for your convenience.

Installation

The instructions below detail how to install the library via Cocoapods. Additionally, you can download the binary .framework file and manually link it to your project.

Cocoapods

pod repo add thanx-ios-specs https://github.com/thanx/thanx-ios-spec.git
  • Add the source at the top of your Podfile and the ThanxSDK pod within your target.
Podfile
source 'https://github.com/thanx/thanx-ios-spec.git'

target 'SDKSampleApp' do
  use_frameworks!

  pod 'ThanxSDK'
end
  • Generate a new Github token with the user that has been invited to the Thanx repositories.

  • Set the environmental variable GITHUB_TOKEN with the newly generated token and then run bundle exec pod install.

>> GITHUB_TOKEN=1234567890 bundle exec pod install

Usage

In order to use the SDK, you must first import the module at the top of any files that you intend to utilize it.

MyClass.swift
import ThanxSDK

Card Encryption

The SDK provides methods to encrypt credit cards so you can then send them via the Thanx API to create and enroll a card into the loyalty platform.

Important! Do not send plaintext credit card numbers to the Thanx API.

For following methods to work, you must first get the encryption details via the GET /card_signature API endpoint. This endpoint provides the necessary public key for the encryption as well as the additional uid for Visa cards.

Credit card numbers passed to the encrypt method must first be sanitized of all non-numeric characters – this means no spaces!

Visa

To encrypt Visa cards, you will need the public key and the uid from the signature endpoint. Once you have have that information, use these steps to generate the encrypted pan.

VisaEncryption.swift
let publicKey: String = "" // from the signature details
let uid: String = "" // from the signature details
let cardNumber: String = "" // from your application user form.

let encryptedPan = Thanx.CardEncryption(
  type: .visa,
  publicKey: publicKey,
  userId: uid
).encrypt(
  number: cardNumber
)

Mastercard

For Mastercard encryption, you only need the public key from the signature endpoint.

MastercardEncryption.swift
let publicKey: String = "" // from the signature details
let cardNumber: String = "" // from your application user form

let encryptedPan = Thanx.CardEncryption(
  type: .mastercard,
  publicKey: publicKey
).encrypt(
  number: cardNumber
)

Amex

For Amex encryption, you only need the public key from the signature endpoint.

AmexEncryption.swift
let publicKey: String = "" // from the signature details
let cardNumber: String = "" // from your application user form

let encryptedPan = Thanx.CardEncryption(
  type: .amex,
  publicKey: publicKey
).encrypt(
  number: cardNumber
)

Submission

Once you have the encryptedPan, you can send it to the POST /cards as the encrypted_pan parameter.