logo
Trustly Docs
BETA

Android SDK

Learn how to integrate Trustly Android SDK
Updated 2 months ago

The Trustly Android SDK is the quickest, most secure and failure-proof way to embed Trustly Checkout into your Android app. The SDK is a lightweight drop-in framework that enables the best Trustly user experience from within your app (multi-factor authentication, app-to-app redirection, error handling, etc).

The SDK provides a self-contained WebView bundled with all the necessary handlers that enable the Trustly Checkout within your application.

If you are unable to integrate our SDK we recommend using our fallback method instead.

Our SDK for Android is distributed via GitHub in a public repository. Following sections will cover prerequisites as well as a guide of how to seamlessly integrate the SDK.

The ReturnToAppURL is required to seamlessly transition the user to your app after bank authentication redirects. The redirect URI for your app must be set up as a custom url scheme in your application (such as example://...)

It is important that you only set the ReturnToAppURL attribute for orders originating from your app. Including the ReturnToAppURL for orders from other channels will break the user experience.

Example of order initiation params
{
    ...
    "params": {
        ...
        "Data": { 
            ...
            "Attributes": {
                ...
                "ReturnToAppURL": "myapp://"
                ...

Integrate the Trustly Android SDK through Maven Central. Add the following to your Project level build.gradle file:

Groovy
repositories {
  ...
  mavenCentral()
  ...
}


Add Trustly SDK as dependency in your Module level the build.gradle file like so:

Groovy
dependencies {
  ...
  //replace x.x.x with the current version
  implementation 'com.trustly:trustly-android-library:x.x.x'
  ...
}


The later version of the SDK does not support the older version of the Trustly Checkout. If you do use the older Checkout, please use version 2.0.0 of the SDK. If you're not sure what version of the Trustly Checkout you are using, please contact our integration support for help.


Create WebView

In your app/src/main/res/layout/acitivity_main.xml, add following code:

WebView
<WebView
   android:id="@+id/webview"
   android:layout_width="match_parent"
   android:layout_height="match_parent"/>


Modify MainActivity

Import necessary dependancies and create a TrustlyWebView instance:

MainActivity
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

import android.webkit.WebView;
import com.trustlyAndroidLibrary.TrustlyWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   
   setContentView(R.layout.activity_main);
   WebView main = findViewById(R.id.webview);

   final TrustlyWebView trustlyView = new TrustlyWebView(this, 
   "<TRUSTLY-URL>");

   main.addView(trustlyView);
}


Add permission for internet

Go to app/src/main/AndroidManifext.xml and add following permissions:

AndroidManifest
<uses-permission android:name="android.permission.INTERNET"/>

If you want more control of your Checkout flow you can choose to provide custom handlers.

Provide successHandler, abortHandler and errorHandler lambdas.
In case no custom functionality is provided, the WebView will load the SuccessURL in case of a success event, or the FailURL in case of an error or an abort event.

Read more

Java
trustlyView = new TrustlyWebView(this, trustlyCheckoutUrl);

trustlyView.successHandler = () -> {
  // your custom implementation here.
};

trustlyView.errorHandler = () -> {
  // your custom implementation here.
};

trustlyView.abortHandler = () -> {
  // your custom implementation here.
};

It can happen that during the order flow, the user needs to be redirected outside of your application, to a third party application or website (in external stand alone browser). This could be part of the authentication and authorisation process.

To enable automatic redirects back to your native application, you can pass a link as an attribute to the order initiation request. You can pass your link (web, app link or deep link) value by including it in the ReturnToAppURL attribute when making an API call to Trustly.

It's important that the Activity hosting the checkout doesn't reload when the intent is received. Otherwise the Trustly checkout session will be lost.


When defining you intent filters make sure to set android:launchMode="singleTop" parameter in your manifest file.

Manifest xml example
<activity
            android:name=".YOUR_TRUSTLY_WEB_VIEW_ACTIVITY"
            android:exported="true"
            android:launchMode="singleTop">
 <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="@string/scheme_host_sdk"
                    android:scheme="@string/scheme" />
</intent-filter>


Opting in to events is solely for SDK v3.0.1 or later and is only compatible with the newer version of the Trustly Checkout.