> ## Documentation Index
> Fetch the complete documentation index at: https://nextgen-docs.enfuce.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 3DS Authentication API

<div
  style={{
border: '2px solid #f5c518',
borderRadius: '12px',
padding: '8px',
display: 'flex',
alignItems: 'center',
gap: '6px',
background: '#fffbe6'
}}
>
  <span style={{ fontSize: '28px' }}>💡</span>

  <div>
    <strong>Disclaimer:</strong> The corresponding **API** for 3DS is under development. In this topic, we explain how Enfuce supports the OOB authentication method.
  </div>
</div>

This topic explains the 3DS Authentication API workflow and how to integrate with the API to support the OOB authentication method:

<div style={{marginTop: '50px', marginBottom: '50px'}}>
  ```mermaid actions={false} theme={null}

  sequenceDiagram

     participant PN as Payment Network
     participant API as Enfuce 3DS Authentication API
     participant ECS as Customer System


     autonumber

     PN->>API: Send 3DS authentication request
     API->>ECS: Send OOB webhook notification (`POST /v1/3ds/oob/challenge/initiate`)
     ECS->>API: Return HTTP response code
     ECS->>ECS: Authenticate cardholder

     ECS->>API: Send result to Submit Authentication Challenge Result Endpoint (`POST /v1/3ds/challenge/oob/result`)
     API->>PN: Forward authentication result to the payment network.

  ```
</div>

1. We receive a cardholder authentication request from the payment network, including the merchant information.

2. Enfuce sends a webhook notification, [Initiate OOB Authentication Challenge](/api/transaction-lifecycle/3DS/OOB-authentication-challenge-webhook-notification), to your registered endpoint, including the following:

   * `authenticationId` : A unique ID assigned to the authentication request; you must send the same `authenticationId` when you are returning the authentication result via the **Submit Authentication Challenge Result Endpoint**.

   * `challengeId`: Enfuce-generated unique ID assigned to the specific authentication challenge method.

   * `cardholder.customerNumber`: Unique identifier of the cardholder whom you want to authenticate.

3. Return a `204` HTTP response within 2 seconds, if you have successfully received the notification.

4. Once you have received a result of cardholder authentication, send the result via the [Submit Authentication Challenge Result Endpoint](/api/transaction-lifecycle/3DS/submit-authentication-challenge-result).

   <Note>This is a time-based request; send your request within **150 seconds** of the OOB authentication request being initiated.</Note>

5. We forward the authentication result to the payment network. If the cardholder is successfully authenticated, the transaction lifecycle proceeds with authorisation.

## Related Endpoints

* [Initiate OOB Authentication Challenge Webhook Notification](/api/transaction-lifecycle/3DS/OOB-authentication-challenge-webhook-notification)
* [Submit Authentication Challenge Result Endpoint](api/transaction-lifecycle/3DS/submit-authentication-challenge-result)
