---
title: Suspend and resume authentication with magic links
description: Learn how to suspend and resume authentication journeys using magic links with the Ping Identity SDKs.
component: orchsdks
page_id: orchsdks:journey:use-cases/magic-links/index
canonical_url: https://developer.pingidentity.com/orchsdks/journey/use-cases/magic-links/index.html
revdate: Thu, 19 Feb 2026 14:24:00 +0000
keywords: ["PingOne Advanced Identity Cloud", "PingAM", "Journeys", "Magic Links", "Suspended Authentication", "Resume", "Setup &amp; Configuration", "Source Code", "Use Case", "SDK"]
section_ids:
  configuring_servers_suspend_and_resume_authentication: Configuring servers suspend and resume authentication
  handling_the_suspended_authentication_callback: Handling the suspended authentication callback
  configuring_client_apps_for_magic_links: Configuring client apps for magic links
---

# Suspend and resume authentication with magic links

[icon: circle-check, set=far]PingOne Advanced Identity Cloud [icon: circle-check, set=far]PingAM [icon: android, set=fab]Android [icon: apple, set=fab]iOS [icon: js, set=fab]JavaScript

The Orchestration SDKs allow you to implement *Suspended Authentication*. This feature lets you pause a user's progress through an authentication journey and resume it later from the same point.

When you suspend the authentication tree, the SDK saves any input provided during authentication. When you resume the tree, the SDK restores this input. This allows the user to continue the authentication journey after closing the browser, using a different browser, or even on a different device.

When you suspend an authentication journey, the server provides the user with a URL containing a unique ID. This ID allows them to resume their authentication. This unique identifier is single-use. These URLs are sometimes referred to as "magic links".

|   |                                                                                                                                                                                                        |
| - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|   | The "magic link" represents a user's authentication journey up to the point it was paused.Ensure you use appropriate additional authentication in the remainder of a suspended authentication journey. |

Typical use cases include multi-factor authentication and email verification during progressive profile completion.

## Configuring servers suspend and resume authentication

To suspend and resume authentication within your application, configure your server as follows:

1. Enable outgoing email.

   The server emails the resume URI link to the user, who clicks it to resume their journey.

   Select your server below for instructions on enabling outgoing email:

   * PingOne Advanced Identity Cloud

     [Configuring email](https://docs.pingidentity.com/pingoneaic/tenants/email-configure.html) in the PingOne Advanced Identity Cloud documentation.

   * PingAM

     [Configuring outbound email](https://docs.pingidentity.com/pingidm/8/external-services-guide/email.html) in the PingIDM documentation.

     |   |                                                                                                                                                                                                                                                 |
     | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
     |   | You must configure PingAM alongside PingIDM as part of a [Ping Advanced Identity Software](https://docs.pingidentity.com/platform/8/platform-guide/about.html) deployment to suspend authentication.A standalone PingAM instance will not work. |

2. Add an [Email Suspend Node](https://docs.pingidentity.com/auth-node-ref/latest/email-suspend.html) to your authentication journey.

   For more information, see [Suspended authentication](https://docs.pingidentity.com/pingam/8/authentication-guide/authn-suspended.html) in the PingAM documentation.

3. Configure the URI your server uses to form the magic link.

   * You will need to configure your server to use the custom domain assigned to your server as the basis for magic links.

   * If you have your own JavaScript app acting as the login UI, you should configure the server to use that URI.

   Configure the correct URI in the **External Login Page URL** property, in the realm's **General** authentication settings.

   ![Configuring the External Login Page URL property in PingAM and Advanced Identity Cloud](../../_images/external-login-url-am-aic.png)Figure 1. Configuring the External Login Page URL property in PingAM and Advanced Identity Cloud

   Learn more about the property by selecting your server below:

   * PingOne Advanced Identity Cloud

     [Core authentication attributes > General > External Login Page URL](https://docs.pingidentity.com/pingoneaic/am-authentication/realm-auth-config.html#authn-core-general).

   * PingAM

     [Core authentication attributes > General > External Login Page URL](https://docs.pingidentity.com/pingam/8/am-authentication/authn-core-settings.html#authn-core-general).

## Handling the suspended authentication callback

The Orchestration SDKs receive a `SuspendedTextOutputCallback` when they reach the **Email suspend node**:

```json
{
    "type": "SuspendedTextOutputCallback",
    "output": [{
        "name": "message",
        "value": "An email has been sent to the address you entered. Click the link in that email to proceed."
    }, {
        "name": "messageType",
        "value": "0"
    }]
}
```

Your application should display the `message` field, which instructs the user on how to proceed.

The journey is now suspended, and the server sends the magic link to the user.

The Orchestration SDKs resume authentication by responding to this link when the user clicks it. The client returns the value, which includes a unique, one-time-use identifier, to the server and continues the journey.

## Configuring client apps for magic links

[icon: android, set=fab, size=3x]

#### [Android](android-magic-links.html)

Resume journeys using magic links on an Android device.

[icon: apple, set=fab, size=3x]

#### [iOS](ios-magic-links.html)

Resume journeys using magic links on an iOS device.

[icon: js, set=fab, size=3x]

#### [JavaScript](javascript-magic-links.html)

Resume journeys using magic links in a JavaScript app.
