### Represents a 3DS authentication

#### event_type
- **Type**: `const enum`
- **Required**  
Allowed: `three_ds_authentication.approval_request`

#### account_type
- **Type**: `string | null`  
- **Required**  
Type of account/card that is being used for the transaction. Maps to EMV 3DS field `acctType`.
- Allowed: `CREDIT`, `DEBIT`, `NOT_APPLICABLE`, `null`

#### additional_data
- **Type**: `object | null`
- Object containing additional data about the 3DS request that is beyond the EMV 3DS standard spec.

#### app
- **Type**: `object | null`
- Object containing data about the app used in the e-commerce transaction. Present if the channel is 'APP_BASED'.

#### authentication_request_type
- **Type**: `string | null`
- Type of authentication request - i.e., the type of transaction or interaction.
- Allowed: `ADD_CARD`, `BILLING_AGREEMENT`, `DELAYED_SHIPMENT`, `EMV_TOKEN_CARDHOLDER_VERIFICATION`, `INSTALLMENT_TRANSACTION`, `MAINTAIN_CARD`, `PAYMENT_TRANSACTION`, `RECURRING_TRANSACTIONS`, `SPLIT_PAYMENTS`, `SPLIT_SHIPMENT`, `null`

#### authentication_result
- **Type**: `string`
- **Required**  
Indicates the outcome of the 3DS authentication process.
- Allowed: `DECLINE`, `SUCCESS`, `PENDING_CHALLENGE`, `PENDING_DECISION`

#### browser
- **Type**: `object | null`
- Object containing data about the browser used in the e-commerce transaction. Present if the channel is 'BROWSER'.

#### card_expiry_check
- **Type**: `string`
- **Required**  
Indicates whether the expiration date provided by the cardholder during checkout matches.
- Allowed: `MATCH`, `MISMATCH`, `NOT_PRESENT`

#### card_token
- **Type**: `uuid`
- **Required**  
Globally unique identifier for the card on which the 3DS authentication has occurred.

#### cardholder
- **Type**: `object`
- **Required**  
Object containing data about the cardholder provided during the transaction.

#### challenge_metadata
- **Type**: `object | null`
- Metadata about the challenge method and delivery. Only present when a challenge is triggered.

#### challenge_orchestrated_by
- **Type**: `string | null`
- Entity that orchestrates the challenge.
- Allowed: `LITHIC`, `CUSTOMER`, `NO_CHALLENGE`, `null`

#### channel
- **Type**: `string`
- **Required**  
Channel in which the authentication occurs.
- Allowed: `APP_BASED`, `BROWSER`, `THREE_DS_REQUESTOR_INITIATED`

#### created
- **Type**: `date-time`
- **Required**  
Date and time when the authentication was created in Lithic's system.

#### decision_made_by
- **Type**: `string | null`
- Entity that made the authentication decision.
- Allowed: `LITHIC_RULES`, `LITHIC_DEFAULT`, `CUSTOMER_RULES`, `CUSTOMER_ENDPOINT`, `NETWORK`, `UNKNOWN`, `null`

#### merchant
- **Type**: `object`
- **Required**  
Object containing data about the merchant involved in the e-commerce transaction.

#### message_category
- **Type**: `string`
- **Required**  
Either `PAYMENT_AUTHENTICATION` or `NON_PAYMENT_AUTHENTICATION`.
- Allowed: `NON_PAYMENT_AUTHENTICATION`, `PAYMENT_AUTHENTICATION`

#### three_ds_requestor_challenge_indicator
- **Type**: `string`
- **Required**  
Indicates whether a challenge is requested for this transaction.
- Allowed: `NO_PREFERENCE`, `NO_CHALLENGE_REQUESTED`, `CHALLENGE_PREFERENCE`, `CHALLENGE_MANDATE`, `NO_CHALLENGE_RISK_ALREADY_ASSESSED`, `DATA_SHARE_ONLY`, `OTHER`

#### three_ri_request_type
- **Type**: `string | null`
- Type of 3DS Requestor Initiated (3RI) request.
- Allowed: `ACCOUNT_VERIFICATION`, `ADD_CARD`, `BILLING_AGREEMENT`, `CARD_SECURITY_CODE_STATUS_CHECK`, `DELAYED_SHIPMENT`, `DEVICE_BINDING_STATUS_CHECK`, `INSTALLMENT_TRANSACTION`, `MAIL_ORDER`, `MAINTAIN_CARD_INFO`, `OTHER_PAYMENT`, `RECURRING_TRANSACTIONS`, `SPLIT_PAYMENTS`, `SPLIT_SHIPMENT`, `TELEPHONE_ORDER`, `TOP_UP`, `TRUST_LIST_STATUS_CHECK`, `null`

#### token
- **Type**: `uuid`
- **Required**  
Globally unique identifier for the 3DS authentication.

#### transaction
- **Type**: `object | null`
- Object containing data about the e-commerce transaction for which the merchant is requesting authentication.

### Response
- **Type**: `object`
- Information on whether the Authentication should be approved, declined or challenged.

#### three_ds_authentication_decision
- **Type**: `string`
- **Required**  
- `APPROVE`: Approve the 3DS Transaction and proceed to Authorization
- `DECLINE`: Decline the 3DS Transaction ending the transaction
- `CHALLENGE_REQUESTED`: Conditional Approval for the 3DS Transaction where a follow-up Challenge will be triggered.
- Allowed: `APPROVE`, `DECLINE`, `CHALLENGE_REQUESTED`

#### oob_url
- **Type**: `string`
- URL which may be used in the presentation of a 3DS Challenge UI to the cardholder.
