# ThreeDSecureAuthenticateInputDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

A request to run 3-D Secure authentication for a card ahead of a transaction, through the
merchant's configured 3-D Secure provider.

## Fields
- `merchantId` (string(uuid)): The merchant the authentication is for. Optional for a credential bound to one merchant, which resolves it from the credential; required for a credential that reaches several. (nullable)
- `cardData` ([ThreeDSecureCardDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ThreeDSecureCardDto.md)) required: The card to authenticate. The card number and expiration are required; the cardholder name, email, phone and billing address improve the issuer's risk decision and are optional. Conditional: When CardData is not null.
  Fields:
  - `cardNumber` (string) required: The card number, 12 to 19 digits, passing the Luhn check. Required. Sent to the 3-D Secure provider; never stored, logged or audited. Charge the same card when you create the transaction. (nullable)
  - `expirationMonth` (integer(int32)) required: The expiration month, 1 to 12. Required. (nullable, min 1, max 12)
  - `expirationYear` (integer(int32)) required: The four-digit expiration year. Required. The card must not be expired: it is good through the end of its expiration month. Conditional: Conditional (see validator source). (nullable, min 2000, max 2099)
  - `nameOnCard` (string): The name on the card. Optional. (nullable, max length 100)
  - `email` (string): The cardholder's email address. Optional. (nullable, max length 254)
  - `phone` (string): The cardholder's phone number. Optional. (nullable, max length 32)
  - `billingAddress` ([Address](https://devportal.signapay-sbx.winkpg.io/docs/api/models/Address.md)): The cardholder's billing address. Optional. Conditional: When BillingAddress is not null.
- `amount` (number(double)) required: The purchase amount the transaction will carry, in the transaction currency as a decimal (`42.50`, not minor units). Required, more than zero. Create the transaction for this amount. (nullable)
- `currencyCode` (string): The ISO 4217 currency code. Optional; `USD` when omitted. Card transactions are charged in `USD`, so a transaction that references an authentication run in another currency is refused when it is created. Conditional: When CurrencyCode is not empty. (nullable)
- `challengeReturnUrl` (string) required: The HTTPS URL the issuer's challenge page posts the result to once the cardholder completes it. Required. The gateway does not host the challenge; the caller does, and submits the returned `threeDSServerTransactionId` on the transaction once the challenge returns. (nullable, max length 2048)
- `challengePreference` ([ThreeDSecureChallengePreference](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ThreeDSecureChallengePreference.md)): Whether the caller prefers a challenge, prefers none, or leaves it to the issuer. Optional. Conditional: When ChallengePreference is not null. (nullable)
  Values:
  - `NoPreference`: Let the issuer decide.
  - `NoChallengeRequested`: Ask the issuer not to challenge.
  - `ChallengeRequested`: Ask the issuer to challenge.
- `challengeWindowSize` ([ThreeDSChallengeWindowSize](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ThreeDSChallengeWindowSize.md)): The size of the window the caller will present a challenge in. Optional; the issuer is told `500x600` when it is omitted. Conditional: When ChallengeWindowSize is not null. (nullable)
  Values:
  - `Size250X400`: Wire value 01: 250 x 400.
  - `Size390X400`: Wire value 02: 390 x 400.
  - `Size500X600`: Wire value 03: 500 x 600.
  - `Size600X400`: Wire value 04: 600 x 400.
  - `FullScreen`: Wire value 05: full screen.
- `browser` ([ThreeDSecureBrowserDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/ThreeDSecureBrowserDto.md)) required: The cardholder's browser, as the page that collected the card observed it. Required: the issuer's risk decision is made from it, and a browser authentication that carries none is refused by the vendor. `acceptHeader` and `userAgent` are required; send every other value the page can observe. Conditional: When Browser is not null.
  Fields:
  - `acceptHeader` (string) required: The browser's `Accept` header. (nullable, max length 2048)
  - `userAgent` (string) required: The browser's `User-Agent` header. (nullable, max length 2048)
  - `ipAddress` (string): The cardholder's IP address as the page observed it. (nullable, max length 45)
  - `language` (string): The browser language, for example `en-US`. (nullable, max length 8)
  - `colorDepth` (integer(int32)): The screen color depth in bits. (nullable)
  - `screenHeight` (integer(int32)): The screen height in pixels. (nullable)
  - `screenWidth` (integer(int32)): The screen width in pixels. (nullable)
  - `timeZoneOffsetMinutes` (integer(int32)): The offset between UTC and the browser's local time, in minutes. (nullable)
  - `javaEnabled` (boolean): Whether Java is enabled in the browser. (nullable)
  - `javaScriptEnabled` (boolean): Whether JavaScript is enabled in the browser. (nullable)

## See also

- [All documentation](https://devportal.signapay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
