3D Secure is a card industry authentication protocol for online payments, providing an extra layer of security for merchants selling online. Customers are sent through the card issuing bank's verification service when making a payment, before proceeding with the authorization request.


Ensure you follow the steps below to enable your Universal Checkout integration to leverage 3DS:

Contact your Primer representative to configure 3DS on your Primer account.
Setup a workflow with 3DS on your Dashboard.


3D Secure on Android requires the addition of the io.primer:3ds-android library to your project. This library is currently held on a private artifactory.

With gradle

  • Add the URL to our artifactory to your gradle.properties

  • Amend the repositories section of your app's build.gradle to include our Artifactory

    repositories {    /* Other repositories... */     maven {      url "${PRIMER_ANDROID_ARTIFACTORY_URL}"    }}
  • Finally, amend the dependencies section of your app's build.gradle to include the 3ds-android library:

    dependencies {  /* Other dependencies... */   implementation "io.primer:3ds-android:1.1.0"}

Ensure that the 3DS Library is Imported Correctly

  • Clean and sync your project
  • Validate that library can be found in External Libraries section (if you use Android Studio) External Libraries
  • If you want to perform 3DS when vaulting cards you should set is3DSOnVaultingEnabled in the`PrimerCardPaymentOptions` object to `true`.
  • If you are testing on emulator, 3DS library initialization will fail due to security checks being performed. In order to skip this validation, you should set is3DSSanityCheckEnabled in the`PrimerDebugOptions` object to `false`.
  • That’s it! 🎉 Check the 3DS testing section below to understand how to perform 3DS payments in your sandbox environment.