/// <summary> /// Initializes a new instance of the <see cref="ThreeDS2RequestData" /> class. /// </summary> /// <param name="acquirerBIN">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration). The acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorisation..</param> /// <param name="acquirerMerchantID">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration). The merchantId that is enrolled for 3D Secure 2 by the merchant's acquirer. This string should match the value that you will use in the authorisation..</param> /// <param name="authenticationOnly">If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration), and not the payment authorisation..</param> /// <param name="challengeIndicator">Possibility to specify a preference for receiving a challenge from the issuer. Allowed values: * `noPreference` * `requestNoChallenge` * `requestChallenge` * `requestChallengeAsMandate` .</param> /// <param name="deviceChannel">The environment of the shopper. Allowed values: * `app` * `browser` (required).</param> /// <param name="deviceRenderOptions">deviceRenderOptions.</param> /// <param name="mcc">Required for merchants that have been enrolled for 3DS2 by another party than Adyen, mostly [authentication-only integrations](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration). The `mcc` is a four-digit code with which the previously given `acquirerMerchantID` is registered at the scheme..</param> /// <param name="merchantName">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration). The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. Maximum length is 40 characters. > Optional for a [full 3D Secure 2 integration](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-api-integration). Use this field if you are enrolled for 3D Secure 2 with us and want to override the merchant name already configured on your account..</param> /// <param name="messageVersion">The `messageVersion` value indicating the 3D Secure 2 protocol version..</param> /// <param name="notificationURL">URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**..</param> /// <param name="sdkAppID">The `sdkAppID` value as received from the 3D Secure 2 SDK. Required for `deviceChannel` set to **app**..</param> /// <param name="sdkEncData">The `sdkEncData` value as received from the 3D Secure 2 SDK. Required for `deviceChannel` set to **app**..</param> /// <param name="sdkEphemPubKey">sdkEphemPubKey.</param> /// <param name="sdkMaxTimeout">The maximum amount of time in minutes for the 3D Secure 2 authentication process. Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes..</param> /// <param name="sdkReferenceNumber">The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. Only for `deviceChannel` set to **app**..</param> /// <param name="sdkTransID">The `sdkTransID` value as received from the 3D Secure 2 SDK. Only for `deviceChannel` set to **app**..</param> /// <param name="threeDSCompInd">Completion indicator for the device fingerprinting..</param> /// <param name="threeDSRequestorID">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2..</param> /// <param name="threeDSRequestorName">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure-2/3ds2-checkout-authentication-only-integration) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2..</param> /// <param name="threeDSRequestorURL">URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process..</param> public ThreeDS2RequestData(string AcquirerBIN = default(string), string AcquirerMerchantID = default(string), bool?AuthenticationOnly = default(bool?), ChallengeIndicatorEnum?ChallengeIndicator = default(ChallengeIndicatorEnum?), DeviceChannelEnum?DeviceChannel = default(DeviceChannelEnum), DeviceRenderOptions DeviceRenderOptions = default(DeviceRenderOptions), string Mcc = default(string), string MerchantName = default(string), string MessageVersion = default(string), string NotificationURL = default(string), string SdkAppID = default(string), string SdkEncData = default(string), SDKEphemPubKey SdkEphemPubKey = default(SDKEphemPubKey), int?SdkMaxTimeout = default(int?), string SdkReferenceNumber = default(string), string SdkTransID = default(string), DeviceFingerprintCompletedEnum?ThreeDSCompInd = default(DeviceFingerprintCompletedEnum?), string ThreeDSRequestorID = default(string), string ThreeDSRequestorName = default(string), string ThreeDSRequestorURL = default(string)) { // to ensure "deviceChannel" is required (not null) this.DeviceChannel = DeviceChannel ?? throw new InvalidDataException("DeviceChannel is a required property for ThreeDS2RequestData and cannot be null");; this.AcquirerBIN = AcquirerBIN; this.AcquirerMerchantID = AcquirerMerchantID; this.AuthenticationOnly = AuthenticationOnly; this.ChallengeIndicator = ChallengeIndicator; this.DeviceRenderOptions = DeviceRenderOptions; this.Mcc = Mcc; this.MerchantName = MerchantName; this.MessageVersion = MessageVersion; this.NotificationURL = NotificationURL; this.SdkAppID = SdkAppID; this.SdkEncData = SdkEncData; this.SdkEphemPubKey = SdkEphemPubKey; this.SdkMaxTimeout = SdkMaxTimeout; this.SdkReferenceNumber = SdkReferenceNumber; this.SdkTransID = SdkTransID; this.ThreeDSCompInd = ThreeDSCompInd; this.ThreeDSRequestorID = ThreeDSRequestorID; this.ThreeDSRequestorName = ThreeDSRequestorName; this.ThreeDSRequestorURL = ThreeDSRequestorURL; }
/// <summary> /// Initializes a new instance of the <see cref="ThreeDS2RequestData" /> class. /// </summary> /// <param name="acquirerBIN">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only). The acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform..</param> /// <param name="acquirerMerchantID">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only). The merchantId that is enrolled for 3D Secure 2 by the merchant's acquirer. This string should match the value that you will use in the authorisation. Use 123456 on the Test platform..</param> /// <param name="authenticationOnly">If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. (default to false).</param> /// <param name="challengeIndicator">Possibility to specify a preference for receiving a challenge from the issuer. Allowed values: * `noPreference` * `requestNoChallenge` * `requestChallenge` * `requestChallengeAsMandate` .</param> /// <param name="deviceChannel">The environment of the shopper. Allowed values: * `app` * `browser` (required).</param> /// <param name="deviceRenderOptions">deviceRenderOptions.</param> /// <param name="mcc">Required for merchants that have been enrolled for 3D Secure 2 by another party than Adyen, mostly [authentication-only integrations](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only). The `mcc` is a four-digit code with which the previously given `acquirerMerchantID` is registered at the scheme..</param> /// <param name="merchantName">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only). The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. Maximum length is 40 characters. > Optional for a [full 3D Secure 2 integration](https://docs.adyen.com/checkout/3d-secure/native-3ds2/api-integration). Use this field if you are enrolled for 3D Secure 2 with us and want to override the merchant name already configured on your account..</param> /// <param name="messageVersion">The `messageVersion` value indicating the 3D Secure 2 protocol version. (default to "2.1.0").</param> /// <param name="notificationURL">URL to where the issuer should send the `CRes`. Required if you are not using components for `channel` **Web** or if you are using classic integration `deviceChannel` **browser**..</param> /// <param name="sdkAppID">The `sdkAppID` value as received from the 3D Secure 2 SDK. Required for `deviceChannel` set to **app**..</param> /// <param name="sdkEncData">The `sdkEncData` value as received from the 3D Secure 2 SDK. Required for `deviceChannel` set to **app**..</param> /// <param name="sdkEphemPubKey">sdkEphemPubKey.</param> /// <param name="sdkMaxTimeout">The maximum amount of time in minutes for the 3D Secure 2 authentication process. Optional and only for `deviceChannel` set to **app**. Defaults to **60** minutes..</param> /// <param name="sdkReferenceNumber">The `sdkReferenceNumber` value as received from the 3D Secure 2 SDK. Only for `deviceChannel` set to **app**..</param> /// <param name="sdkTransID">The `sdkTransID` value as received from the 3D Secure 2 SDK. Only for `deviceChannel` set to **app**..</param> /// <param name="threeDSCompInd">Completion indicator for the device fingerprinting..</param> /// <param name="threeDSRequestorID">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only) for Visa. Unique 3D Secure requestor identifier assigned by the Directory Server when you enrol for 3D Secure 2..</param> /// <param name="threeDSRequestorName">Required for [authentication-only integration](https://docs.adyen.com/checkout/3d-secure/other-3ds-flows/authentication-only) for Visa. Unique 3D Secure requestor name assigned by the Directory Server when you enrol for 3D Secure 2..</param> /// <param name="threeDSRequestorURL">URL of the (customer service) website that will be shown to the shopper in case of technical errors during the 3D Secure 2 process..</param> /// <param name="transactionType">Identify the type of the transaction being authenticated..</param> /// <param name="whiteListStatus">The `whiteListStatus` value returned from a previous 3D Secure 2 transaction, only applicable for 3D Secure 2 protocol version 2.2.0..</param> public ThreeDS2RequestData(string acquirerBIN = default(string), string acquirerMerchantID = default(string), bool?authenticationOnly = false, ChallengeIndicatorEnum?challengeIndicator = default(ChallengeIndicatorEnum?), string deviceChannel = default(string), DeviceRenderOptions deviceRenderOptions = default(DeviceRenderOptions), string mcc = default(string), string merchantName = default(string), string messageVersion = "2.1.0", string notificationURL = default(string), string sdkAppID = default(string), string sdkEncData = default(string), SDKEphemPubKey sdkEphemPubKey = default(SDKEphemPubKey), int?sdkMaxTimeout = default(int?), string sdkReferenceNumber = default(string), string sdkTransID = default(string), string threeDSCompInd = default(string), string threeDSRequestorID = default(string), string threeDSRequestorName = default(string), string threeDSRequestorURL = default(string), TransactionTypeEnum?transactionType = default(TransactionTypeEnum?), string whiteListStatus = default(string)) { //to ensure "deviceChannel" is required(not null) if (deviceChannel == null) { throw new InvalidDataException( "deviceChannel is a required property for ThreeDS2RequestData and cannot be null"); } else { this.DeviceChannel = deviceChannel; } this.AcquirerBIN = acquirerBIN; this.AcquirerMerchantID = acquirerMerchantID; // use default value if no "authenticationOnly" provided if (authenticationOnly == null) { this.AuthenticationOnly = false; } else { this.AuthenticationOnly = authenticationOnly; } this.ChallengeIndicator = challengeIndicator; this.DeviceRenderOptions = deviceRenderOptions; this.Mcc = mcc; this.MerchantName = merchantName; // use default value if no "messageVersion" provided if (messageVersion == null) { this.MessageVersion = "2.1.0"; } else { this.MessageVersion = messageVersion; } this.NotificationURL = notificationURL; this.SdkAppID = sdkAppID; this.SdkEncData = sdkEncData; this.SdkEphemPubKey = sdkEphemPubKey; this.SdkMaxTimeout = sdkMaxTimeout; this.SdkReferenceNumber = sdkReferenceNumber; this.SdkTransID = sdkTransID; this.ThreeDSCompInd = threeDSCompInd; this.ThreeDSRequestorID = threeDSRequestorID; this.ThreeDSRequestorName = threeDSRequestorName; this.ThreeDSRequestorURL = threeDSRequestorURL; this.TransactionType = transactionType; this.WhiteListStatus = whiteListStatus; }