---
title: Integrating with PingOne MFA on Android
description: Pair an Android device with PingOne MFA and authenticate sign-ons with OATH one-time passcodes or push notifications using the Orchestration SDK pingonemfa module.
component: orchsdks
page_id: orchsdks:davinci:use-cases/pingone-mfa/android/index
canonical_url: https://developer.pingidentity.com/orchsdks/davinci/use-cases/pingone-mfa/android/index.html
llms_txt: https://developer.pingidentity.com/orchsdks/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: Mon, 5 Oct 2026 13:30:00 +0100
keywords: ["DaVinci", "MFA", "PingOne", "Android", "Push", "OATH", "OTP", "Integration", "SDK"]
section_ids:
  setting_up_the_pingonemfa_module: Setting up the pingonemfa module
  pairing_in_a_davinci_flow: Pairing in a DaVinci flow
  pairing_with_a_qr_code_or_pairing_key: Pairing with a QR code or pairing key
  viewing_paired_accounts: Viewing paired accounts
  using_oath_one_time_passcodes: Using OATH one-time passcodes
  configuring_push_notifications: Configuring push notifications
  handling_push_notifications: Handling push notifications
  testing_push_notifications: Testing push notifications
  troubleshooting: Troubleshooting
---

# Integrating with PingOne MFA on Android

[icon: circle-check, set=far]PingOne [icon: android, set=fab]Android

Complete the following high-level tasks to pair an Android device with PingOne MFA and use it to authenticate sign-ons that start on an accessing device:

## [Setting up the pingonemfa module](01-setup.html)

Add the module to your app and initialize it with your PingOne geography. Every task below needs this setup.

[**Start step 1**[icon: chevrons-right, set=fas, size=xs]](01-setup.html)

## [Pairing in a DaVinci flow](02-automated-pairing.html)

Pair the device from inside a DaVinci flow using the `MOBILE_PAIRING` collector. If your app already runs DaVinci flows, this is the simplest pairing method.

[**Start step 2**[icon: chevrons-right, set=fas, size=xs]](02-automated-pairing.html)

## [Pairing with a QR code or pairing key](03-qr-code-pairing.html)

Pair the device directly when your app does not run the DaVinci flow that performs the sign-on.

[**Start step 3**[icon: chevrons-right, set=fas, size=xs]](03-qr-code-pairing.html)

## [Viewing paired accounts](04-view-paired-accounts.html)

List the MFA accounts associated with the paired device.

[**Start step 4**[icon: chevrons-right, set=fas, size=xs]](04-view-paired-accounts.html)

## [Using OATH one-time passcodes](05-mfa-using-oath.html)

Generate and display rotating passcodes the user enters on the accessing device. Works even when the device has no network connection.

[**Start step 5**[icon: chevrons-right, set=fas, size=xs]](05-mfa-using-oath.html)

## [Configuring push notifications](06a-push-environment-setup.html)

Set up Firebase, PingOne, your Android app, and DaVinci so the accessing device can trigger push notifications.

[**Start step 6**[icon: chevrons-right, set=fas, size=xs]](06a-push-environment-setup.html)

## [Handling push notifications](06b-handling-push-notifications.html)

Approve or deny sign-on requests, including number-matching challenges.

[**Start step 7**[icon: chevrons-right, set=fas, size=xs]](06b-handling-push-notifications.html)

## [Testing push notifications](06c-testing-push-notifications.html)

Confirm that PingOne can reach your app through FCM before testing end-to-end authentication.

[**Start step 8**[icon: chevrons-right, set=fas, size=xs]](06c-testing-push-notifications.html)

## [Troubleshooting](07-error-handling-and-troubleshooting.html)

How the module reports errors, and fixes for common problems such as push notifications not arriving.

[**Read more**[icon: chevrons-right, set=fas, size=xs]](07-error-handling-and-troubleshooting.html)
