Create a customised payment and mandate experience with TrueLayer's iOS SDK.

With the TrueLayer SDK for iOS, you can quickly add open banking payments or mandates to your app. Our iOS SDK integrates with TrueLayer's Payments API, making it simple to get up and running.


Image showing what the native screens look like on an iOS device. There are two screenshots in the image, one shows the bank selection screen and the other shows the payment confirmation screen.

The SDK presents native screens that allow your users to select their bank and consent to the payment. The user is then redirected to their banking app or website to authorise the payment. It also handles the network requests and errors, and gives you options to customise the user interface.


The SDK is currently optimised for the UK, Ireland, France, Germany, Spain, the Netherlands, and Lithuania. Beta testers can also use the iOS SDK for banks in Austria, Belgium, Finland, Poland and Portugal. The user interface can be displayed in English, Spanish, French, German, Dutch, Portuguese, Finnish, Polish and Lithuanian.

At a minimum, the SDK requires:

  • iOS 13.0
  • Xcode 13
  • Swift 5.6

Payment and mandate authorisation journey

When a customer makes a payment or creates a mandate through your iOS SDK integration:

  1. The user selects Pay By Bank.
  2. Your app creates a payment on the backend side.
  3. Your backend integration creates a payment or mandate and gets an id and resource_token back.
    If you include signup_plus in related_products at payment creation, the authorisation flow changes to reflect this.
  4. Your app uses the id and resource_token back and initialises the SDK.
  5. Your user selects and confirms their provider on the provider selection screen. If the bank needs additional information from the user, such as IBAN or branch, then the SDK asks the user to enter these. Additionally:
    • If a bank is unavailable it's greyed out on the provider selection screen, so the user can attempt to use a different bank.
    • If your user is paying internationally from certain French or Finnish banks, a screen displays that explains how to enable international payments.
    • If paying via a European provider that supports it, the user can select to pay with Sepa Instant or Sepa Credit.
  6. The SDK redirects your user to their bank's website or app.
  7. Your user authorises the payment or mandate in their bank's website or app.
  8. Once the authorisation is complete, the bank redirects the user to your redirect URL.

The payment journey with an iOS SDK integration.

Mandate authorisation UI differences

When a user is authorising a mandate through the iOS SDK, the user interface includes options for them to:

  • Learn more about how mandates work and what data is shared.
  • The constraints that apply to the mandate, such as its duration, and the payment limits.

Next steps

Learn how to authorise a payment or mandate with the iOS SDK, or how to customise your integration.