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

# Notify a 3DS completion status

> Informs the Delegated 3DS decision service whether or not the strong customer authentication (SCA) challenge has succeeded, which is required to evaluate future transactions.

POST/three-ds/challenge-result

Informs the Delegated 3DS decision service whether or not the strong customer authentication (SCA) challenge has succeeded, which is required to evaluate future transactions. This is the URL of the notification endpoint hosted in your environment, to which `POST` messages are submitted by the Marqeta platform.

## Body field details

The following table describes the payload required to score an ACS request.

### The ThreeDSChallengeResultRequest object

| Fields | Description |
| - | - |
| acs\_transaction\_id string  Required | Universally unique transaction identifier assigned by the ACS to identify a single transaction. (EMVCo reference: `acsTransID`) **Allowable Values:**  36 char max |
| type string  Optional | Authentication type that determines the action to be taken by the receiver of this message. **Allowable Values:**  `authentication.result` |
| state string  Optional | Status of the requested authentication. **Allowable Values:**  - `PENDING` - Authentication request is pending processing  - `SUCCESS` - Authentication completed successfully  - `FAILED` - Authentication failed or was rejected |
| card\_token string  Optional | Marqeta-assigned unique card token identifying the card being used. **Allowable Values:**  36 char max |
| user\_token string  Optional | Marqeta-assigned unique user token identifying the user. **Allowable Values:**  36 char max |
| acting\_user\_token string  Optional | Marqeta-assigned unique user token identifying the user performing the transaction. **Allowable Values:**  36 char max |
| authentication\_method string  Optional | Method used to authenticate the cardholder. **Allowable Values:**  - `BIOMETRIC_FACE` - Facial recognition authentication  - `BIOMETRIC_FINGERPRINT` - Fingerprint authentication  - `VOICE_RECOGNITION` - Voice pattern recognition authentication  - `IN_APP_LOGIN` - Authentication within the issuer's mobile application  - `AUDIO_CALL` - Voice call with human or automated verification  - `VIDEO_CALL` - Video call with human verification  - `OTP_SMS` - One-time password sent via SMS text message  - `OTP_EMAIL` - One-time password sent via email  - `KNOWLEDGE_BASED` - Knowledge-based authentication, such as security questions  - `OTHER` - Other authentication method not listed above |
| authentication\_result string  Optional | Result of the authentication performed. **Allowable Values:**  - `SUCCESS` - Authentication was successful and the cardholder was verified  - `FAILED` - Authentication failed due to incorrect credentials or verification  - `CANCELLED` - Authentication was cancelled by cardholder or system timeout  - `NOT_AUTHENTICATED` - Authentication could not be performed or completed |
| interaction\_counter integer  Optional | Indicates the number of authentication cycles attempted by the cardholder. Value to be tracked by the ACS. (EMVCo reference: `interactionCounter`) **Allowable Values:**  As provided by the ACS **Default Value:** 1 |
| cancel\_reason integer  Optional | Indicates to the ACS and the DS that the authentication has been cancelled. (EMVCo reference: `challengeCancel`) **DEPRECATED:** This field is still sent for backward compatibility, but its value is outdated. **Allowable Values:**  - `CARDHOLDER_CANCEL` - Cardholder explicitly cancelled the authentication  - `CHALLENGE_CANCELLED_BY_TRANSACTION_ERROR` - Challenge cancelled due to transaction error  - `TIMED_OUT_AT_ACS` - ACS timed out during challenge processing  - `TIMED_OUT_AT_ACS_NO_CREQ` - ACS timed out before receiving challenge request  - `TIMED_OUT_AT_SDK` - 3DS SDK timed out during authentication  - `TIMED_OUT_DECOUPLED_AUTHENTICATION` - Decoupled authentication timed out waiting for cardholder response  - `TIMED_OUT_OOB_AUTHENTICATION` - OOB authentication timed out waiting for response  - `UNKNOWN` - Cancellation reason could not be determined |

## DecisionServiceResponse (response)

Provides information regarding the call and how it was handled.

| Fields | Description |
| - | - |
| version\_used string  Required | The version of the API that the server supports and is using. Do not simply echo back the `X-VERSION` header. **Allowable Values:**  Pattern: `^\d+\.\d+\.\d+$` **Example:** 31.41.5 |

## Response codes

| Code | Description |
| - | - |
| 200 | The result of the 3DS verification (SCA). |
| 400 | Invalid ACS payload detected. See [APIResponseWithErrors](https://www.marqeta.com/docs/core-api/3ds/delegate-decisioning-determine-whether-send-sca.md#_apiresponsewitherrors_response). |
| 409 | Result already processed for this ACS transaction; any subsequent responses received are ignored. See [APIResponseWithErrors](https://www.marqeta.com/docs/core-api/3ds/delegate-decisioning-determine-whether-send-sca.md#_apiresponsewitherrors_response). |
| 500 | No model could be found or loaded, including the default. |

## Sample request body

```json JSON lines wrap theme={null}
{
  "acs_transaction_id": "acs_transaction_id",
  "type": "authentication.result",
  "state": "PENDING",
  "authentication_method": "BIOMETRIC_FACE",
  "authentication_result": "SUCCESS",
  "interaction_counter": 0,
  "cancel_reason": "CARDHOLDER_CANCEL"
}
```

## Sample response

```json JSON lines wrap theme={null}
200 OK
```


## Related topics

- [3D Secure Overview](https://www.marqeta.com/docs/core-api/3ds.md)
- [3D Secure in Europe](https://www.marqeta.com/docs/developer-guides/mq-eu-3ds.md)
- [3D Secure Setup](https://www.marqeta.com/docs/developer-guides/3ds-setup.md)
- [Event Types](https://www.marqeta.com/docs/core-api/event-types.md)
- [About 3D Secure](https://www.marqeta.com/docs/developer-guides/about-3d-secure.md)
