The Smarter Way


​Ottu Checkout​

It's easy and quick to build a great payment experience using Ottu Checkouts which is iOS SDK. In order to collect your user's payment information, we provide powerful and customizable UI screens.


Simplified security:Keeping PCI compliance is as easy as collecting credit card numbers with our simplified security. Instead of passing through your server, Ottu receives the sensitive data directly.
Apple Pay:Integrate seamlessly with Apple Pay.
Native UI: Native UI to collect payment details.
Apple's in-app purchase APIs should be utilized for selling product or services provide by your app, and you can use Ottu SDK for other purpose.


Collecting data by Ottu checkout SDK in order to enhance our services and product, and for sure data confidentially, is highly appreciated.


Xcode 13.0 or later and is compatible with apps targeting iOS 12 or above.

​Getting started​

Firstly, you have to create session token by our public API, then SDK could be initialized See REST API​


Ottu Checkout: Can be available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Ottu'
The Swift Package Manager is used for automating the distribution of Swift code, and it is integrated into the swift compiler. When Swift package set up, It is easy to add Alamofire as a dependency, just like adding it to the dependencies value of your `Package.swift.
dependencies: [
.package(URL: "")


By downloading the project and keeping the source folder in your project, you can integrate Ottu into your project manually if you prefer not to use any of the above dependency managers.
Swift 5.1, 5.0, 4.2, 4.0
In ViewController.swift, import Ottu framework and initialize Ottu SDK.
import Ottu
class ViewController: UIViewController,OttuDelegate {
var responseDict : [String:Any]?
var message = ""
override func viewDidLoad() {
let sessionId = "ENTER_YOUR_SESSION_ID"
_ = Ottu.init(sessionId, merchantId: "MERCHANT_ID", apiKey: "API_KEY" ,language: "ENTER_LANGUAGE_ID_en_or_ar", viewController: self, delegate: self)
func errorCallback(message: String, response: [String : Any]?) {
responseDict = response
self.message = "Error"
func cancelCallback(message: String, response: [String : Any]?) {
responseDict = response
self.message = "Cancel"
func successCallback(message: String, response: [String : Any]?) {
responseDict = response
self.message = "Success"
func beforeRedirect() {
func dismissed() {
DispatchQueue.main.asyncAfter(deadline: .now()+1) {
let alert = UIAlertController(title: self.message.capitalized, message: "\(String(describing: self.responseDict))", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
self.present(alert, animated: true, completion: nil)
For Apple Pay integration, you have to enable Apple Pay in capabilities in your project. If apple pay available, will show by default.
Last modified 24d ago