SumUpSDK

SumUp mPOS SDK – iOS

[]()
[]()

This repository provides a native iOS SDK that enables you to integrate SumUp’s proprietary
card terminal(s) and its payment platform to accept credit and debit card payments
(incl. VISA, MasterCard, American Express and more). SumUp’s SDK communicates transparently
to the card terminal(s) via Bluetooth (BLE 4.0) or an audio cable connection. Upon initiating
a checkout, the SDK guides your user using appropriate screens through each step of the payment
process. As part of the process, SumUp also provides the card terminal setup screen, along with the
cardholder signature verification screen. The checkout result is returned with the relevant
data for your records.

No sensitive card data is ever passed through to or stored on the merchant’s phone.
All data is encrypted by the card terminal, which has been fully certified to the highest
industry standards (PCI, EMV I & II, Visa, MasterCard & Amex).

Installation

Manual Integration

The SumUp SDK is provided as an embedded framework SumUpSDK.embeddedframework
that combines a static library, its headers, and bundles containing resources such as
images and localizations. Please follow the steps below to prepare your project:

Add the SumUpSDK.embeddedframework to your Xcode project.

Link your app against SumUpSDK.framework.

Link your app against the following system frameworks:

Accelerate
AVFoundation
ExternalAccessory
MapKit

Add -ObjC to "Other Linker Flags" if not yet included.

Add the bundle provided in SumUpSDK.embeddedframework/Resources
to your app target.

SumUpSDK.embeddedframework/Resources/SMPSharedResources.bundle

Note:
You can use the sample app
that is provided with the SumUp SDK as a reference project.
The Xcode project contains sample apps written in Objective-C and Swift.
In your debug setup you can also call +[SMPSumUpSDK testSDKIntegration].
It will run various checks and print its findings to the console.
Please do not call it in your Release build.

Integration via CocoaPods

The SumUp SDK can be integrated via CocoaPods. Regardless if you use dynamic
frameworks (use_frameworks!), SumUp will always be added to your app as a
staticly linked library.

Supported device orientation

The SDK supports all device orientations on iPad and portrait on iPhone.
Feel free to support other orientations on iPhone but please keep in mind that
the SDK’s UI will be presented in portrait on iPhone.
See UISupportedInterfaceOrientations in the sample app’sInfo.plist
or the "General" tab in Xcode’s Target Editor.

Privacy Info plist keys

The SumUp SDK requires access to the user’s location, Bluetooth peripherals
and the device’s microphone. If your app has not asked for the user’s permission,
the SumUp SDK will ask at the time of the first login or checkout attempt. Please add the
following keys to your info plist file:

Please note that you need to pass an NSDecimalNumber as the total value.
While NSDecimalNumber is a subclass of NSNumber it is not advised to use the
convenience method of NSNumber to create an NSDecimalNumber.

Additional checkout parameters

When setting up the SMPCheckoutRequest object, the following optional parameters can be included:

Tip amount

A tip amount can be processed in addition to the totalAmount using the tipAmount parameter.
The tip amount will then be shown during the checkout process and be included in the response.
Please note that a tip amount cannot be changed during/after the checkout.
Just like the totalAmount it is an NSDecimalNumber so make sure to
not accidentally pass an NSNumber.

Transaction identifier

The foreignTransactionID identifier will be associated with the transaction
and can be used to retrieve details related to the transaction.
See API documentation for details.
Please make sure that this ID is unique within the scope of the SumUp merchant account
and sub-accounts. It must not be longer than 128 characters.

Skip success screen

To skip the screen shown at the end of a successful transaction, theSMPSkipScreenOptionSuccess option can be used.
When setting this option your application is responsible for displaying
the transaction result to the customer.
In combination with the Receipts API, your application can also send your own receipts,
see API documentation for details.
Please note that success screens will still be shown when using the SumUp Air Lite readers.

Update checkout preferences

When logged in you can let merchants check and update their checkout
preferences. Merchants can select their preferred card terminal and set up a
new one if needed. The preferences available to a merchant depend on their
respective account settings.