# 3DS OTP generated webhook payload object

The 3DS OTP generated webhook payload is the `data` of the `issuing.3ds.otp_generated` webhook. It contains the 3DS attempt fields and the delivery method the cardholder chose. Deliver `otp_value` to the cardholder using that method. Read more about [3DS events](/working-with-the-api/events-and-webhooks#card-3ds-events).

### Object Parameters

- `acs_transaction_id` `string` — The Access Control Server (ACS) transaction identifier
- `amount` `number` — The transaction amount in the smallest unit of the currency (e.g., cents for `USD`)
- `attempt_count` `integer` — The number of authentication attempts made
- `attempt_status` `enum` — The current status of the 3DS authentication attempt
  Possible values: `rejected`, `presented`, `challenged`, `authenticated`, `associated`
- `card_account_id` `string` — The card account associated with this 3DS attempt
- `card_id` `string` — The card associated with this 3DS attempt
- `challenged_at` `date-time` — Timestamp when the challenge was presented to the cardholder
- `challenges_presented` `array of strings` — List of challenge types that were presented to the cardholder
- `chosen_challenge` `enum` — The challenge type selected by the cardholder
  Possible values: `frictionless`, `attempts`, `otp`, `biometric`, `external`
- `completed_at` `date-time` — Timestamp when the authentication was completed
- `created_at` `date-time` — Timestamp when the 3DS attempt was created
- `currency` `string` — The ISO 4217 currency code for the transaction
- `ds_transaction_id` `string` — The Directory Server (DS) transaction identifier
- `id` `string` — Unique identifier for the 3DS attempt
- `merchant_category_code` `string` — The Merchant Category Code (MCC)
- `merchant_country_code` `string` — The ISO 3166-1 alpha-2 country code of the merchant
- `merchant_name` `string` — The name of the merchant
- `merchant_url` `string` — The URL of the merchant
- `otp_email` `string` — The email address to deliver the passcode to. Present only when `otp_method_type` is `email`.
  Omitted when the cardholder has no email on file or it has changed since the challenge screen was
  shown.
- `otp_method_type` `string` — The delivery method the cardholder chose on the challenge screen (`sms` or `email`). Deliver the
  passcode only through this method. Empty when the chosen method could not be resolved.
- `otp_phone_number` `string` — The phone number (E.164) to deliver the passcode to. Present only when `otp_method_type` is `sms`.
  Omitted when the cardholder has no phone number on file or it has changed since the challenge screen
  was shown.
- `otp_value` `string` — The one-time password value used for authentication
- `outcome_reason` `enum` — The reason for the authentication outcome
  Possible values: `frictionless`, `challenged_accepted`, `attempts`, `card_account_status`, `failed_challenge`, `rule_rejected`, `error`
- `realtime_decision` `enum` — The platform's real-time 3DS authentication decision. Only set when the platform uses real-time 3DS decisioning
  Possible values: `frictionless_approve`, `challenge`, `decline_authentication`
- `three_ds_message_version` `string` — The 3D Secure protocol message version
- `updated_at` `date-time` — Timestamp when the 3DS attempt was last updated

**Response 200**

```json
{
  "acs_transaction_id": "9a2c4e6b-3f1d-4b8a-a5e7-1c3d5f7b9e20",
  "amount": 12345,
  "attempt_count": 1,
  "attempt_status": "authenticated",
  "card_account_id": "cacc_2x8gszy5folpA9s0TOCseE9ABDM",
  "card_id": "card_2x8gszy5folpA9s0TOCseE9ABDM",
  "challenged_at": "2024-01-15T09:30:00Z",
  "challenges_presented": [
    "otp"
  ],
  "chosen_challenge": "otp",
  "completed_at": "2024-01-15T09:30:00Z",
  "created_at": "2024-01-15T09:30:00Z",
  "currency": "USD",
  "ds_transaction_id": "4f8b2c1e-9a3d-4e7b-8c6f-2d1a5b9e3c70",
  "id": "tdsa_2x8gszy5folpA9s0TOCseE9ABDM",
  "merchant_category_code": "5411",
  "merchant_country_code": "US",
  "merchant_name": "Yellen Cocktails, LLC",
  "merchant_url": "https://example.com",
  "otp_value": "example_otp_value",
  "outcome_reason": "challenged_accepted",
  "realtime_decision": "frictionless_approve",
  "three_ds_message_version": "2.3.1",
  "updated_at": "2024-01-15T09:30:00Z",
  "otp_email": "cardholder@example.com",
  "otp_method_type": "email",
  "otp_phone_number": "+15551234567"
}
```
