Payment Authentication

Authentication is a crucial step in many payment methods, adding an extra layer of security. Consumers must verify their identity through various methods before the payment can be authorized.

The vast majority of digital payment methods are authenticated, exceptions include:

  • Card processing in markets with no SCA/3DS requirement
  • SEPA Direct Debit when externally managed mandates are used

📘

Implement flows, not specific payment methods

We offer a standardized set of consumer authentication types, also known as payment flows.
Build support for an authentication type and you'll be able to offer all current and future payment methods that use that flow.

Authentication Types

Browser-based redirection flow where the consumer is taken to a dedicated page (provided by either PPRO or the upstream scheme or network) to authenticate the payment. Learn more.

A barcode or QR code is presented to consumers as a method of authenticating via their mobile device or code scanning device. Generally used for desktop to mobile or in person payment flows. Learn more.

Provides a native app-to-app experience by triggering the consumer’s banking or payment app directly from the merchant’s mobile app. This flow ensures a smooth and secure payment experience without needing to switch between apps and browsers. Learn more.

Consumers receive a push notification on their mobile device prompting them to authenticate the payment within their banking or payment app. This flow is particularly effective for desktop-to-mobile transactions.Learn more.

Involves the generation of a one-time password (OTP) via SMS, email or app, which the consumer enters to authenticate the payment. This flow is widely used for its simplicity and security.Learn more.

Specifically designed for card payments, where the merchant obtains a 3DS cryptogram from an external authentication server and shares it with PPRO. This flow ensures compliance with industry regulations like PSD2. Learn more.

Providing authenticationSettings

In your /v1/payment-charges request, provide your supported authentication types and their required settings, as specified in the API Reference

📘

Recommendation

To future-proof and simplify your implementation, we suggest sending all authentication types that you support, regardless of the payment method. We'll only respond with the supported flows.

// ...
  "authenticationSettings": [
    {
      "type": "REDIRECT",
      "settings": {
        "returnUrl": "https://example.com/order_details?order_id=12345"
      }
    },
    {
      "type": "SCAN_CODE",
      "settings": {
        "scanBy": "2025-11-03T11:23:47.123Z"
      }
    },
    {
      "type": "APP_INTENT",
      "settings": {
        "mobileIntentUri": "exampleapp://payrequest"
      }
    },    
    {
      "type": "APP_NOTIFICATION",
      "settings": {}
    } 
  ]
// ...

Select the desired authentication type

In response, you'll receive all possible authentication types available for that payment method. In this example, APP_NOTIFICATION is not returned since it is not supported by the payment method.

//...
  "authenticationMethods": [
    {
      "details": {
        "requestUrl": "https://redirection-target.com",
        "requestMethod": "GET"
      },
      "type": "REDIRECT"
    },
    {
      "details": {
        "mobileIntentUri": "paymentapp://paymentrequest"
      },
      "type": "APP_INTENT"
    },
    {
      "details": {
        "codeType": "QR",
        "codeImage": "<BASE-64 encoded QR String>",
        "scanBy": "2025-11-03T11:23:47.123Z",
        "codePayload": "DAAAAAAAAAAAAABYAAEUlGHvm1-2gXEH-"
      },
      "type": "SCAN_CODE"
    }
  ]
//...

Select the payment flow you wish to initiate and follow the steps provided on the subsequent pages:

REDIRECT

SCAN_CODE

APP_INTENT

APP_NOTIFICATION

MULTIFACTOR

EXTERNAL_3DS