Payment Method Authentication Service

Overview

The Payment Method Authentication Service manages 3D Secure (3DS) authentication flows using the Python SDK. 3DS adds an extra layer of security for online card payments by verifying the cardholder's identity with their bank.

Business Use Cases:

  • Fraud prevention - Shift liability to issuers for authenticated transactions

  • Regulatory compliance - Meet Strong Customer Authentication (SCA) requirements

  • Risk-based - Request 3DS for high-risk transactions

  • Global payments - Required for many European and international transactions

Operations

Operation
Description
Use When

Initiate 3DS flow before payment. Collects device data for authentication.

Starting 3D Secure flow

Execute 3DS challenge or frictionless verification. Performs bank authentication.

After pre_authenticate, complete the 3DS flow

Validate authentication results with issuer. Confirms authentication decision.

After customer completes 3DS challenge

SDK Setup

from hyperswitch_prism import PaymentMethodAuthenticationClient

auth_client = PaymentMethodAuthenticationClient(
    connector='stripe',
    api_key='YOUR_API_KEY',
    environment='SANDBOX'
)

Common Patterns

3DS Flow

spinner

Flow Explanation:

  1. Pre-authenticate - Start 3DS flow, collect device data, determine frictionless vs challenge.

  2. Challenge (if needed) - Customer completes bank challenge (password, SMS, etc.).

  3. Post-authenticate - Validate the authentication result with the bank.

  4. Authorize - Proceed with payment authorization using 3DS data.

Frictionless vs Challenge

Flow
User Experience
When It Happens

Frictionless

No interruption

Low risk, returning customer, device recognized

Challenge

Customer enters code

High risk, new device, large amount

Next Steps

Additional Resources

  • Understanding 3D Secure 2.0

  • SCA compliance guide

  • Risk-based authentication

Last updated

Was this helpful?