diff --git a/Adyen/Model/AcsWebhooks/BalancePlatformNotificationResponse.cs b/Adyen/Model/AcsWebhooks/BalancePlatformNotificationResponse.cs index 7166d218e..ecbae9104 100644 --- a/Adyen/Model/AcsWebhooks/BalancePlatformNotificationResponse.cs +++ b/Adyen/Model/AcsWebhooks/BalancePlatformNotificationResponse.cs @@ -35,16 +35,16 @@ public partial class BalancePlatformNotificationResponse : IEquatable /// Initializes a new instance of the class. /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. public BalancePlatformNotificationResponse(string notificationResponse = default(string)) { this.NotificationResponse = notificationResponse; } /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). [DataMember(Name = "notificationResponse", EmitDefaultValue = false)] public string NotificationResponse { get; set; } diff --git a/Adyen/Model/BalancePlatform/AccountHolder.cs b/Adyen/Model/BalancePlatform/AccountHolder.cs index 566ff56c7..004481e90 100644 --- a/Adyen/Model/BalancePlatform/AccountHolder.cs +++ b/Adyen/Model/BalancePlatform/AccountHolder.cs @@ -116,6 +116,7 @@ protected AccountHolder() { } /// Gets or Sets ContactDetails /// [DataMember(Name = "contactDetails", EmitDefaultValue = false)] + [Obsolete] public ContactDetails ContactDetails { get; set; } /// diff --git a/Adyen/Model/BalancePlatform/AccountHolderInfo.cs b/Adyen/Model/BalancePlatform/AccountHolderInfo.cs index 26cf8080f..389893684 100644 --- a/Adyen/Model/BalancePlatform/AccountHolderInfo.cs +++ b/Adyen/Model/BalancePlatform/AccountHolderInfo.cs @@ -78,6 +78,7 @@ protected AccountHolderInfo() { } /// Gets or Sets ContactDetails /// [DataMember(Name = "contactDetails", EmitDefaultValue = false)] + [Obsolete] public ContactDetails ContactDetails { get; set; } /// diff --git a/Adyen/Model/BalancePlatform/AccountHolderUpdateRequest.cs b/Adyen/Model/BalancePlatform/AccountHolderUpdateRequest.cs index 8a6c65e62..21ac1461b 100644 --- a/Adyen/Model/BalancePlatform/AccountHolderUpdateRequest.cs +++ b/Adyen/Model/BalancePlatform/AccountHolderUpdateRequest.cs @@ -109,6 +109,7 @@ public enum StatusEnum /// Gets or Sets ContactDetails /// [DataMember(Name = "contactDetails", EmitDefaultValue = false)] + [Obsolete] public ContactDetails ContactDetails { get; set; } /// diff --git a/Adyen/Model/BalancePlatform/CreateSweepConfigurationV2.cs b/Adyen/Model/BalancePlatform/CreateSweepConfigurationV2.cs index a2d3f1326..b0b4d68f2 100644 --- a/Adyen/Model/BalancePlatform/CreateSweepConfigurationV2.cs +++ b/Adyen/Model/BalancePlatform/CreateSweepConfigurationV2.cs @@ -113,9 +113,9 @@ public enum PrioritiesEnum /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). [DataMember(Name = "priorities", EmitDefaultValue = false)] public List Priorities { get; set; } /// @@ -179,53 +179,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -313,7 +319,7 @@ protected CreateSweepConfigurationV2() { } /// counterparty (required). /// The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) in uppercase. For example, **EUR**. The sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances). (required). /// The message that will be used in the sweep transfer's description body with a maximum length of 140 characters. If the message is longer after replacing placeholders, the message will be cut off at 140 characters.. - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. /// Your reference for the sweep configuration.. /// The reference sent to or received from the counterparty. Only alphanumeric characters are allowed.. /// schedule (required). diff --git a/Adyen/Model/BalancePlatform/MatchingValuesRestriction.cs b/Adyen/Model/BalancePlatform/MatchingValuesRestriction.cs new file mode 100644 index 000000000..64847a014 --- /dev/null +++ b/Adyen/Model/BalancePlatform/MatchingValuesRestriction.cs @@ -0,0 +1,187 @@ +/* +* Configuration API +* +* +* The version of the OpenAPI document: 2 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.BalancePlatform +{ + /// + /// MatchingValuesRestriction + /// + [DataContract(Name = "MatchingValuesRestriction")] + public partial class MatchingValuesRestriction : IEquatable, IValidatableObject + { + /// + /// Defines Value + /// + [JsonConverter(typeof(StringEnumConverter))] + public enum ValueEnum + { + /// + /// Enum AcquirerId for value: acquirerId + /// + [EnumMember(Value = "acquirerId")] + AcquirerId = 1, + + /// + /// Enum Amount for value: amount + /// + [EnumMember(Value = "amount")] + Amount = 2, + + /// + /// Enum Currency for value: currency + /// + [EnumMember(Value = "currency")] + Currency = 3, + + /// + /// Enum MerchantId for value: merchantId + /// + [EnumMember(Value = "merchantId")] + MerchantId = 4, + + /// + /// Enum MerchantName for value: merchantName + /// + [EnumMember(Value = "merchantName")] + MerchantName = 5 + + } + + + + /// + /// Gets or Sets Value + /// + [DataMember(Name = "value", EmitDefaultValue = false)] + public List Value { get; set; } + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected MatchingValuesRestriction() { } + /// + /// Initializes a new instance of the class. + /// + /// Defines how the condition must be evaluated. (required). + /// value. + public MatchingValuesRestriction(string operation = default(string), List value = default(List)) + { + this.Operation = operation; + this.Value = value; + } + + /// + /// Defines how the condition must be evaluated. + /// + /// Defines how the condition must be evaluated. + [DataMember(Name = "operation", IsRequired = false, EmitDefaultValue = false)] + public string Operation { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class MatchingValuesRestriction {\n"); + sb.Append(" Operation: ").Append(Operation).Append("\n"); + sb.Append(" Value: ").Append(Value).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as MatchingValuesRestriction); + } + + /// + /// Returns true if MatchingValuesRestriction instances are equal + /// + /// Instance of MatchingValuesRestriction to be compared + /// Boolean + public bool Equals(MatchingValuesRestriction input) + { + if (input == null) + { + return false; + } + return + ( + this.Operation == input.Operation || + (this.Operation != null && + this.Operation.Equals(input.Operation)) + ) && + ( + this.Value == input.Value || + this.Value.SequenceEqual(input.Value) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Operation != null) + { + hashCode = (hashCode * 59) + this.Operation.GetHashCode(); + } + hashCode = (hashCode * 59) + this.Value.GetHashCode(); + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Adyen/Model/BalancePlatform/PaymentInstrument.cs b/Adyen/Model/BalancePlatform/PaymentInstrument.cs index 22c4b56ba..4752e8997 100644 --- a/Adyen/Model/BalancePlatform/PaymentInstrument.cs +++ b/Adyen/Model/BalancePlatform/PaymentInstrument.cs @@ -188,9 +188,10 @@ protected PaymentInstrument() { } /// The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/paymentInstrumentGroups__resParam_id) to which the payment instrument belongs.. /// Your reference for the payment instrument, maximum 150 characters.. /// The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **active** by default. However, there can be exceptions for cards based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **inactive**. Possible values: * **active**: The payment instrument is active and can be used to make payments. * **inactive**: The payment instrument is inactive and cannot be used to make payments. * **suspended**: The payment instrument is suspended, either because it was stolen or lost. * **closed**: The payment instrument is permanently closed. This action cannot be undone. . + /// The status comment provides additional information for the statusReason of the payment instrument.. /// The reason for the status of the payment instrument. Possible values: **accountClosure**, **damaged**, **endOfLife**, **expired**, **lost**, **stolen**, **suspectedFraud**, **transactionRule**, **other**. If the reason is **other**, you must also send the `statusComment` parameter describing the status change.. /// Type of payment instrument. Possible value: **card**, **bankAccount**. (required). - public PaymentInstrument(List additionalBankAccountIdentifications = default(List), string balanceAccountId = default(string), BankAccountDetails bankAccount = default(BankAccountDetails), Card card = default(Card), string description = default(string), string id = default(string), string issuingCountryCode = default(string), string paymentInstrumentGroupId = default(string), string reference = default(string), StatusEnum? status = default(StatusEnum?), StatusReasonEnum? statusReason = default(StatusReasonEnum?), TypeEnum type = default(TypeEnum)) + public PaymentInstrument(List additionalBankAccountIdentifications = default(List), string balanceAccountId = default(string), BankAccountDetails bankAccount = default(BankAccountDetails), Card card = default(Card), string description = default(string), string id = default(string), string issuingCountryCode = default(string), string paymentInstrumentGroupId = default(string), string reference = default(string), StatusEnum? status = default(StatusEnum?), string statusComment = default(string), StatusReasonEnum? statusReason = default(StatusReasonEnum?), TypeEnum type = default(TypeEnum)) { this.BalanceAccountId = balanceAccountId; this.Id = id; @@ -203,6 +204,7 @@ protected PaymentInstrument() { } this.PaymentInstrumentGroupId = paymentInstrumentGroupId; this.Reference = reference; this.Status = status; + this.StatusComment = statusComment; this.StatusReason = statusReason; } @@ -268,6 +270,13 @@ protected PaymentInstrument() { } [DataMember(Name = "reference", EmitDefaultValue = false)] public string Reference { get; set; } + /// + /// The status comment provides additional information for the statusReason of the payment instrument. + /// + /// The status comment provides additional information for the statusReason of the payment instrument. + [DataMember(Name = "statusComment", EmitDefaultValue = false)] + public string StatusComment { get; set; } + /// /// Returns the string presentation of the object /// @@ -286,6 +295,7 @@ public override string ToString() sb.Append(" PaymentInstrumentGroupId: ").Append(PaymentInstrumentGroupId).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); sb.Append(" Status: ").Append(Status).Append("\n"); + sb.Append(" StatusComment: ").Append(StatusComment).Append("\n"); sb.Append(" StatusReason: ").Append(StatusReason).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); @@ -373,6 +383,11 @@ public bool Equals(PaymentInstrument input) this.Status == input.Status || this.Status.Equals(input.Status) ) && + ( + this.StatusComment == input.StatusComment || + (this.StatusComment != null && + this.StatusComment.Equals(input.StatusComment)) + ) && ( this.StatusReason == input.StatusReason || this.StatusReason.Equals(input.StatusReason) @@ -429,6 +444,10 @@ public override int GetHashCode() hashCode = (hashCode * 59) + this.Reference.GetHashCode(); } hashCode = (hashCode * 59) + this.Status.GetHashCode(); + if (this.StatusComment != null) + { + hashCode = (hashCode * 59) + this.StatusComment.GetHashCode(); + } hashCode = (hashCode * 59) + this.StatusReason.GetHashCode(); hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; diff --git a/Adyen/Model/BalancePlatform/PaymentInstrumentInfo.cs b/Adyen/Model/BalancePlatform/PaymentInstrumentInfo.cs index 1eca770f2..eaba4a958 100644 --- a/Adyen/Model/BalancePlatform/PaymentInstrumentInfo.cs +++ b/Adyen/Model/BalancePlatform/PaymentInstrumentInfo.cs @@ -186,9 +186,10 @@ protected PaymentInstrumentInfo() { } /// The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/paymentInstrumentGroups__resParam_id) to which the payment instrument belongs.. /// Your reference for the payment instrument, maximum 150 characters.. /// The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **active** by default. However, there can be exceptions for cards based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **inactive**. Possible values: * **active**: The payment instrument is active and can be used to make payments. * **inactive**: The payment instrument is inactive and cannot be used to make payments. * **suspended**: The payment instrument is suspended, either because it was stolen or lost. * **closed**: The payment instrument is permanently closed. This action cannot be undone. . + /// The status comment provides additional information for the statusReason of the payment instrument.. /// The reason for the status of the payment instrument. Possible values: **accountClosure**, **damaged**, **endOfLife**, **expired**, **lost**, **stolen**, **suspectedFraud**, **transactionRule**, **other**. If the reason is **other**, you must also send the `statusComment` parameter describing the status change.. /// Type of payment instrument. Possible value: **card**, **bankAccount**. (required). - public PaymentInstrumentInfo(string balanceAccountId = default(string), BankAccountModel bankAccount = default(BankAccountModel), CardInfo card = default(CardInfo), string description = default(string), string issuingCountryCode = default(string), string paymentInstrumentGroupId = default(string), string reference = default(string), StatusEnum? status = default(StatusEnum?), StatusReasonEnum? statusReason = default(StatusReasonEnum?), TypeEnum type = default(TypeEnum)) + public PaymentInstrumentInfo(string balanceAccountId = default(string), BankAccountModel bankAccount = default(BankAccountModel), CardInfo card = default(CardInfo), string description = default(string), string issuingCountryCode = default(string), string paymentInstrumentGroupId = default(string), string reference = default(string), StatusEnum? status = default(StatusEnum?), string statusComment = default(string), StatusReasonEnum? statusReason = default(StatusReasonEnum?), TypeEnum type = default(TypeEnum)) { this.BalanceAccountId = balanceAccountId; this.IssuingCountryCode = issuingCountryCode; @@ -199,6 +200,7 @@ protected PaymentInstrumentInfo() { } this.PaymentInstrumentGroupId = paymentInstrumentGroupId; this.Reference = reference; this.Status = status; + this.StatusComment = statusComment; this.StatusReason = statusReason; } @@ -249,6 +251,13 @@ protected PaymentInstrumentInfo() { } [DataMember(Name = "reference", EmitDefaultValue = false)] public string Reference { get; set; } + /// + /// The status comment provides additional information for the statusReason of the payment instrument. + /// + /// The status comment provides additional information for the statusReason of the payment instrument. + [DataMember(Name = "statusComment", EmitDefaultValue = false)] + public string StatusComment { get; set; } + /// /// Returns the string presentation of the object /// @@ -265,6 +274,7 @@ public override string ToString() sb.Append(" PaymentInstrumentGroupId: ").Append(PaymentInstrumentGroupId).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); sb.Append(" Status: ").Append(Status).Append("\n"); + sb.Append(" StatusComment: ").Append(StatusComment).Append("\n"); sb.Append(" StatusReason: ").Append(StatusReason).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); @@ -341,6 +351,11 @@ public bool Equals(PaymentInstrumentInfo input) this.Status == input.Status || this.Status.Equals(input.Status) ) && + ( + this.StatusComment == input.StatusComment || + (this.StatusComment != null && + this.StatusComment.Equals(input.StatusComment)) + ) && ( this.StatusReason == input.StatusReason || this.StatusReason.Equals(input.StatusReason) @@ -389,6 +404,10 @@ public override int GetHashCode() hashCode = (hashCode * 59) + this.Reference.GetHashCode(); } hashCode = (hashCode * 59) + this.Status.GetHashCode(); + if (this.StatusComment != null) + { + hashCode = (hashCode * 59) + this.StatusComment.GetHashCode(); + } hashCode = (hashCode * 59) + this.StatusReason.GetHashCode(); hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; diff --git a/Adyen/Model/BalancePlatform/SweepConfigurationV2.cs b/Adyen/Model/BalancePlatform/SweepConfigurationV2.cs index fd52f0f57..22b3dbbd5 100644 --- a/Adyen/Model/BalancePlatform/SweepConfigurationV2.cs +++ b/Adyen/Model/BalancePlatform/SweepConfigurationV2.cs @@ -113,9 +113,9 @@ public enum PrioritiesEnum /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). [DataMember(Name = "priorities", EmitDefaultValue = false)] public List Priorities { get; set; } /// @@ -179,53 +179,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -313,7 +319,7 @@ protected SweepConfigurationV2() { } /// counterparty (required). /// The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) in uppercase. For example, **EUR**. The sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances). (required). /// The message that will be used in the sweep transfer's description body with a maximum length of 140 characters. If the message is longer after replacing placeholders, the message will be cut off at 140 characters.. - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. /// Your reference for the sweep configuration.. /// The reference sent to or received from the counterparty. Only alphanumeric characters are allowed.. /// schedule (required). diff --git a/Adyen/Model/BalancePlatform/SweepCounterparty.cs b/Adyen/Model/BalancePlatform/SweepCounterparty.cs index 654a81287..6d4ac7edf 100644 --- a/Adyen/Model/BalancePlatform/SweepCounterparty.cs +++ b/Adyen/Model/BalancePlatform/SweepCounterparty.cs @@ -35,9 +35,9 @@ public partial class SweepCounterparty : IEquatable, IValidat /// /// Initializes a new instance of the class. /// - /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**.. - /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and `schedule.type` **balance**, and if you are processing payments with Adyen.. - /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type`. To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.. + /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). > If you are updating the counterparty from a transfer instrument to a balance account, set `transferInstrumentId` to **null**.. + /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and if you are processing payments with Adyen.. + /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type` . To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.> If you are updating the counterparty from a balance account to a transfer instrument, set `balanceAccountId` to **null**.. public SweepCounterparty(string balanceAccountId = default(string), string merchantAccount = default(string), string transferInstrumentId = default(string)) { this.BalanceAccountId = balanceAccountId; @@ -46,23 +46,23 @@ public partial class SweepCounterparty : IEquatable, IValidat } /// - /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**. + /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). > If you are updating the counterparty from a transfer instrument to a balance account, set `transferInstrumentId` to **null**. /// - /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**. + /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). > If you are updating the counterparty from a transfer instrument to a balance account, set `transferInstrumentId` to **null**. [DataMember(Name = "balanceAccountId", EmitDefaultValue = false)] public string BalanceAccountId { get; set; } /// - /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and `schedule.type` **balance**, and if you are processing payments with Adyen. + /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and if you are processing payments with Adyen. /// - /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and `schedule.type` **balance**, and if you are processing payments with Adyen. + /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and if you are processing payments with Adyen. [DataMember(Name = "merchantAccount", EmitDefaultValue = false)] public string MerchantAccount { get; set; } /// - /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type`. To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature. + /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type` . To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.> If you are updating the counterparty from a balance account to a transfer instrument, set `balanceAccountId` to **null**. /// - /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type`. To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature. + /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type` . To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.> If you are updating the counterparty from a balance account to a transfer instrument, set `balanceAccountId` to **null**. [DataMember(Name = "transferInstrumentId", EmitDefaultValue = false)] public string TransferInstrumentId { get; set; } diff --git a/Adyen/Model/BalancePlatform/SweepSchedule.cs b/Adyen/Model/BalancePlatform/SweepSchedule.cs index 9d9b2000a..1f85f4bb1 100644 --- a/Adyen/Model/BalancePlatform/SweepSchedule.cs +++ b/Adyen/Model/BalancePlatform/SweepSchedule.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.BalancePlatform public partial class SweepSchedule : IEquatable, IValidatableObject { /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. [JsonConverter(typeof(StringEnumConverter))] public enum TypeEnum { @@ -73,9 +73,9 @@ public enum TypeEnum /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. [DataMember(Name = "type", IsRequired = false, EmitDefaultValue = false)] public TypeEnum Type { get; set; } /// @@ -87,7 +87,7 @@ protected SweepSchedule() { } /// Initializes a new instance of the class. /// /// A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) that is used to set the sweep schedule. The schedule uses the time zone of the balance account. For example, **30 17 * * MON** schedules a sweep every Monday at 17:30. The expression must have five values separated by a single space in the following order: * Minute: **0-59** * Hour: **0-23** * Day of the month: **1-31** * Month: **1-12** or **JAN-DEC** * Day of the week: **0-7** (0 and 7 are Sunday) or **MON-SUN**. The following non-standard characters are supported: **&ast;**, **L**, **#**, **W** and **_/_**. See [crontab guru](https://crontab.guru/) for more examples. Required when `type` is **cron**. . - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. (required). + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. (required). public SweepSchedule(string cronExpression = default(string), TypeEnum type = default(TypeEnum)) { this.Type = type; diff --git a/Adyen/Model/BalancePlatform/TransactionRuleRestrictions.cs b/Adyen/Model/BalancePlatform/TransactionRuleRestrictions.cs index a0c667bb1..8fc75e901 100644 --- a/Adyen/Model/BalancePlatform/TransactionRuleRestrictions.cs +++ b/Adyen/Model/BalancePlatform/TransactionRuleRestrictions.cs @@ -44,6 +44,7 @@ public partial class TransactionRuleRestrictions : IEquatableentryModes. /// internationalTransaction. /// matchingTransactions. + /// matchingValues. /// mccs. /// merchantNames. /// merchants. @@ -53,7 +54,7 @@ public partial class TransactionRuleRestrictions : IEquatablesameCounterpartyRestriction. /// timeOfDay. /// totalAmount. - public TransactionRuleRestrictions(ActiveNetworkTokensRestriction activeNetworkTokens = default(ActiveNetworkTokensRestriction), BrandVariantsRestriction brandVariants = default(BrandVariantsRestriction), CounterpartyBankRestriction counterpartyBank = default(CounterpartyBankRestriction), CountriesRestriction countries = default(CountriesRestriction), DayOfWeekRestriction dayOfWeek = default(DayOfWeekRestriction), DifferentCurrenciesRestriction differentCurrencies = default(DifferentCurrenciesRestriction), EntryModesRestriction entryModes = default(EntryModesRestriction), InternationalTransactionRestriction internationalTransaction = default(InternationalTransactionRestriction), MatchingTransactionsRestriction matchingTransactions = default(MatchingTransactionsRestriction), MccsRestriction mccs = default(MccsRestriction), MerchantNamesRestriction merchantNames = default(MerchantNamesRestriction), MerchantsRestriction merchants = default(MerchantsRestriction), ProcessingTypesRestriction processingTypes = default(ProcessingTypesRestriction), RiskScoresRestriction riskScores = default(RiskScoresRestriction), SameAmountRestriction sameAmountRestriction = default(SameAmountRestriction), SameCounterpartyRestriction sameCounterpartyRestriction = default(SameCounterpartyRestriction), TimeOfDayRestriction timeOfDay = default(TimeOfDayRestriction), TotalAmountRestriction totalAmount = default(TotalAmountRestriction)) + public TransactionRuleRestrictions(ActiveNetworkTokensRestriction activeNetworkTokens = default(ActiveNetworkTokensRestriction), BrandVariantsRestriction brandVariants = default(BrandVariantsRestriction), CounterpartyBankRestriction counterpartyBank = default(CounterpartyBankRestriction), CountriesRestriction countries = default(CountriesRestriction), DayOfWeekRestriction dayOfWeek = default(DayOfWeekRestriction), DifferentCurrenciesRestriction differentCurrencies = default(DifferentCurrenciesRestriction), EntryModesRestriction entryModes = default(EntryModesRestriction), InternationalTransactionRestriction internationalTransaction = default(InternationalTransactionRestriction), MatchingTransactionsRestriction matchingTransactions = default(MatchingTransactionsRestriction), MatchingValuesRestriction matchingValues = default(MatchingValuesRestriction), MccsRestriction mccs = default(MccsRestriction), MerchantNamesRestriction merchantNames = default(MerchantNamesRestriction), MerchantsRestriction merchants = default(MerchantsRestriction), ProcessingTypesRestriction processingTypes = default(ProcessingTypesRestriction), RiskScoresRestriction riskScores = default(RiskScoresRestriction), SameAmountRestriction sameAmountRestriction = default(SameAmountRestriction), SameCounterpartyRestriction sameCounterpartyRestriction = default(SameCounterpartyRestriction), TimeOfDayRestriction timeOfDay = default(TimeOfDayRestriction), TotalAmountRestriction totalAmount = default(TotalAmountRestriction)) { this.ActiveNetworkTokens = activeNetworkTokens; this.BrandVariants = brandVariants; @@ -64,6 +65,7 @@ public partial class TransactionRuleRestrictions : IEquatable + /// Gets or Sets MatchingValues + /// + [DataMember(Name = "matchingValues", EmitDefaultValue = false)] + public MatchingValuesRestriction MatchingValues { get; set; } + /// /// Gets or Sets Mccs /// @@ -200,6 +208,7 @@ public override string ToString() sb.Append(" EntryModes: ").Append(EntryModes).Append("\n"); sb.Append(" InternationalTransaction: ").Append(InternationalTransaction).Append("\n"); sb.Append(" MatchingTransactions: ").Append(MatchingTransactions).Append("\n"); + sb.Append(" MatchingValues: ").Append(MatchingValues).Append("\n"); sb.Append(" Mccs: ").Append(Mccs).Append("\n"); sb.Append(" MerchantNames: ").Append(MerchantNames).Append("\n"); sb.Append(" Merchants: ").Append(Merchants).Append("\n"); @@ -289,6 +298,11 @@ public bool Equals(TransactionRuleRestrictions input) (this.MatchingTransactions != null && this.MatchingTransactions.Equals(input.MatchingTransactions)) ) && + ( + this.MatchingValues == input.MatchingValues || + (this.MatchingValues != null && + this.MatchingValues.Equals(input.MatchingValues)) + ) && ( this.Mccs == input.Mccs || (this.Mccs != null && @@ -381,6 +395,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.MatchingTransactions.GetHashCode(); } + if (this.MatchingValues != null) + { + hashCode = (hashCode * 59) + this.MatchingValues.GetHashCode(); + } if (this.Mccs != null) { hashCode = (hashCode * 59) + this.Mccs.GetHashCode(); diff --git a/Adyen/Model/BalancePlatform/TransferRoute.cs b/Adyen/Model/BalancePlatform/TransferRoute.cs index a888fc5a6..f688b5cb0 100644 --- a/Adyen/Model/BalancePlatform/TransferRoute.cs +++ b/Adyen/Model/BalancePlatform/TransferRoute.cs @@ -103,9 +103,9 @@ public enum CategoryEnum [DataMember(Name = "category", EmitDefaultValue = false)] public CategoryEnum? Category { get; set; } /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [JsonConverter(typeof(StringEnumConverter))] public enum PriorityEnum { @@ -149,9 +149,9 @@ public enum PriorityEnum /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [DataMember(Name = "priority", EmitDefaultValue = false)] public PriorityEnum? Priority { get; set; } /// @@ -160,7 +160,7 @@ public enum PriorityEnum /// The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. . /// The two-character ISO-3166-1 alpha-2 country code of the counterparty. For example, **US** or **NL**.. /// The three-character ISO currency code of transfer. For example, **USD** or **EUR**.. - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).. + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).. /// A set of rules defined by clearing houses and banking partners. Your transfer request must adhere to these rules to ensure successful initiation of transfer. Based on the priority, one or more requirements may be returned. Each requirement is defined with a `type` and `description`.. public TransferRoute(CategoryEnum? category = default(CategoryEnum?), string country = default(string), string currency = default(string), PriorityEnum? priority = default(PriorityEnum?), List requirements = default(List)) { diff --git a/Adyen/Model/BalancePlatform/TransferRouteRequest.cs b/Adyen/Model/BalancePlatform/TransferRouteRequest.cs index 36fecbb74..b8bdd4958 100644 --- a/Adyen/Model/BalancePlatform/TransferRouteRequest.cs +++ b/Adyen/Model/BalancePlatform/TransferRouteRequest.cs @@ -101,9 +101,9 @@ public enum PrioritiesEnum /// - /// The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [DataMember(Name = "priorities", EmitDefaultValue = false)] public List Priorities { get; set; } /// @@ -120,7 +120,7 @@ protected TransferRouteRequest() { } /// counterparty. /// The two-character ISO-3166-1 alpha-2 country code of the counterparty. For example, **US** or **NL**. > Either `counterparty` or `country` field must be provided in a transfer route request.. /// The three-character ISO currency code of transfer. For example, **USD** or **EUR**. (required). - /// The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).. + /// The list of priorities for the bank transfer. Priorities set the speed at which the transfer is sent and the fees that you have to pay. Multiple values can be provided. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).. public TransferRouteRequest(string balanceAccountId = default(string), string balancePlatform = default(string), CategoryEnum category = default(CategoryEnum), Counterparty counterparty = default(Counterparty), string country = default(string), string currency = default(string), List priorities = default(List)) { this.BalancePlatform = balancePlatform; diff --git a/Adyen/Model/BalancePlatform/UpdateSweepConfigurationV2.cs b/Adyen/Model/BalancePlatform/UpdateSweepConfigurationV2.cs index c9bd8e134..0d320b69f 100644 --- a/Adyen/Model/BalancePlatform/UpdateSweepConfigurationV2.cs +++ b/Adyen/Model/BalancePlatform/UpdateSweepConfigurationV2.cs @@ -113,9 +113,9 @@ public enum PrioritiesEnum /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). [DataMember(Name = "priorities", EmitDefaultValue = false)] public List Priorities { get; set; } /// @@ -179,53 +179,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -308,7 +314,7 @@ public enum TypeEnum /// counterparty. /// The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) in uppercase. For example, **EUR**. The sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances).. /// The message that will be used in the sweep transfer's description body with a maximum length of 140 characters. If the message is longer after replacing placeholders, the message will be cut off at 140 characters.. - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. /// Your reference for the sweep configuration.. /// The reference sent to or received from the counterparty. Only alphanumeric characters are allowed.. /// schedule. diff --git a/Adyen/Model/Checkout/AdditionalDataRiskStandalone.cs b/Adyen/Model/Checkout/AdditionalDataRiskStandalone.cs index f46878947..80f9583a4 100644 --- a/Adyen/Model/Checkout/AdditionalDataRiskStandalone.cs +++ b/Adyen/Model/Checkout/AdditionalDataRiskStandalone.cs @@ -44,7 +44,7 @@ public partial class AdditionalDataRiskStandalone : IEquatableAllowed values: * **Eligible** — Merchant is protected by PayPal's Seller Protection Policy for Unauthorized Payments and Item Not Received. * **PartiallyEligible** — Merchant is protected by PayPal's Seller Protection Policy for Item Not Received. * **Ineligible** — Merchant is not protected under the Seller Protection Policy.. /// Unique transaction ID of the payment.. /// Raw AVS result received from the acquirer, where available. Example: D. - /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request).. + /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/online-payments/tokenization).. /// Raw CVC result received from the acquirer, where available. Example: 1. /// Unique identifier or token for the shopper's card details.. /// A Boolean value indicating whether 3DS authentication was completed on this payment. Example: true. @@ -133,9 +133,9 @@ public partial class AdditionalDataRiskStandalone : IEquatable - /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request). + /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/online-payments/tokenization). /// - /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request). + /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/online-payments/tokenization). [DataMember(Name = "bin", EmitDefaultValue = false)] public string Bin { get; set; } diff --git a/Adyen/Model/Checkout/CashAppDetails.cs b/Adyen/Model/Checkout/CashAppDetails.cs index a9f1b40c4..410f97ff5 100644 --- a/Adyen/Model/Checkout/CashAppDetails.cs +++ b/Adyen/Model/Checkout/CashAppDetails.cs @@ -65,8 +65,9 @@ public enum TypeEnum /// This is the `recurringDetailReference` returned in the response when you created the token.. /// Cash App request id. /// This is the `recurringDetailReference` returned in the response when you created the token.. + /// The payment method subtype.. /// cashapp (default to TypeEnum.Cashapp). - public CashAppDetails(string cashtag = default(string), string checkoutAttemptId = default(string), string customerId = default(string), string grantId = default(string), string onFileGrantId = default(string), string recurringDetailReference = default(string), string requestId = default(string), string storedPaymentMethodId = default(string), TypeEnum? type = TypeEnum.Cashapp) + public CashAppDetails(string cashtag = default(string), string checkoutAttemptId = default(string), string customerId = default(string), string grantId = default(string), string onFileGrantId = default(string), string recurringDetailReference = default(string), string requestId = default(string), string storedPaymentMethodId = default(string), string subtype = default(string), TypeEnum? type = TypeEnum.Cashapp) { this.Cashtag = cashtag; this.CheckoutAttemptId = checkoutAttemptId; @@ -76,6 +77,7 @@ public enum TypeEnum this.RecurringDetailReference = recurringDetailReference; this.RequestId = requestId; this.StoredPaymentMethodId = storedPaymentMethodId; + this.Subtype = subtype; this.Type = type; } @@ -136,6 +138,13 @@ public enum TypeEnum [DataMember(Name = "storedPaymentMethodId", EmitDefaultValue = false)] public string StoredPaymentMethodId { get; set; } + /// + /// The payment method subtype. + /// + /// The payment method subtype. + [DataMember(Name = "subtype", EmitDefaultValue = false)] + public string Subtype { get; set; } + /// /// Returns the string presentation of the object /// @@ -152,6 +161,7 @@ public override string ToString() sb.Append(" RecurringDetailReference: ").Append(RecurringDetailReference).Append("\n"); sb.Append(" RequestId: ").Append(RequestId).Append("\n"); sb.Append(" StoredPaymentMethodId: ").Append(StoredPaymentMethodId).Append("\n"); + sb.Append(" Subtype: ").Append(Subtype).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -228,6 +238,11 @@ public bool Equals(CashAppDetails input) (this.StoredPaymentMethodId != null && this.StoredPaymentMethodId.Equals(input.StoredPaymentMethodId)) ) && + ( + this.Subtype == input.Subtype || + (this.Subtype != null && + this.Subtype.Equals(input.Subtype)) + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) @@ -275,6 +290,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.StoredPaymentMethodId.GetHashCode(); } + if (this.Subtype != null) + { + hashCode = (hashCode * 59) + this.Subtype.GetHashCode(); + } hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; } diff --git a/Adyen/Model/Checkout/CheckoutSessionThreeDS2RequestData.cs b/Adyen/Model/Checkout/CheckoutSessionThreeDS2RequestData.cs new file mode 100644 index 000000000..4c76f48c2 --- /dev/null +++ b/Adyen/Model/Checkout/CheckoutSessionThreeDS2RequestData.cs @@ -0,0 +1,224 @@ +/* +* Adyen Checkout API +* +* +* The version of the OpenAPI document: 71 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.Checkout +{ + /// + /// CheckoutSessionThreeDS2RequestData + /// + [DataContract(Name = "CheckoutSessionThreeDS2RequestData")] + public partial class CheckoutSessionThreeDS2RequestData : IEquatable, IValidatableObject + { + /// + /// Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only + /// + /// Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only + [JsonConverter(typeof(StringEnumConverter))] + public enum ThreeDSRequestorChallengeIndEnum + { + /// + /// Enum _01 for value: 01 + /// + [EnumMember(Value = "01")] + _01 = 1, + + /// + /// Enum _02 for value: 02 + /// + [EnumMember(Value = "02")] + _02 = 2, + + /// + /// Enum _03 for value: 03 + /// + [EnumMember(Value = "03")] + _03 = 3, + + /// + /// Enum _04 for value: 04 + /// + [EnumMember(Value = "04")] + _04 = 4, + + /// + /// Enum _05 for value: 05 + /// + [EnumMember(Value = "05")] + _05 = 5, + + /// + /// Enum _06 for value: 06 + /// + [EnumMember(Value = "06")] + _06 = 6 + + } + + + /// + /// Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only + /// + /// Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only + [DataMember(Name = "threeDSRequestorChallengeInd", EmitDefaultValue = false)] + public ThreeDSRequestorChallengeIndEnum? ThreeDSRequestorChallengeInd { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// homePhone. + /// mobilePhone. + /// Indicates whether a challenge is requested for this transaction. Possible values: * **01** — No preference * **02** — No challenge requested * **03** — Challenge requested (3DS Requestor preference) * **04** — Challenge requested (Mandate) * **05** — No challenge (transactional risk analysis is already performed) * **06** — Data Only. + /// workPhone. + public CheckoutSessionThreeDS2RequestData(Phone homePhone = default(Phone), Phone mobilePhone = default(Phone), ThreeDSRequestorChallengeIndEnum? threeDSRequestorChallengeInd = default(ThreeDSRequestorChallengeIndEnum?), Phone workPhone = default(Phone)) + { + this.HomePhone = homePhone; + this.MobilePhone = mobilePhone; + this.ThreeDSRequestorChallengeInd = threeDSRequestorChallengeInd; + this.WorkPhone = workPhone; + } + + /// + /// Gets or Sets HomePhone + /// + [DataMember(Name = "homePhone", EmitDefaultValue = false)] + public Phone HomePhone { get; set; } + + /// + /// Gets or Sets MobilePhone + /// + [DataMember(Name = "mobilePhone", EmitDefaultValue = false)] + public Phone MobilePhone { get; set; } + + /// + /// Gets or Sets WorkPhone + /// + [DataMember(Name = "workPhone", EmitDefaultValue = false)] + public Phone WorkPhone { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class CheckoutSessionThreeDS2RequestData {\n"); + sb.Append(" HomePhone: ").Append(HomePhone).Append("\n"); + sb.Append(" MobilePhone: ").Append(MobilePhone).Append("\n"); + sb.Append(" ThreeDSRequestorChallengeInd: ").Append(ThreeDSRequestorChallengeInd).Append("\n"); + sb.Append(" WorkPhone: ").Append(WorkPhone).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as CheckoutSessionThreeDS2RequestData); + } + + /// + /// Returns true if CheckoutSessionThreeDS2RequestData instances are equal + /// + /// Instance of CheckoutSessionThreeDS2RequestData to be compared + /// Boolean + public bool Equals(CheckoutSessionThreeDS2RequestData input) + { + if (input == null) + { + return false; + } + return + ( + this.HomePhone == input.HomePhone || + (this.HomePhone != null && + this.HomePhone.Equals(input.HomePhone)) + ) && + ( + this.MobilePhone == input.MobilePhone || + (this.MobilePhone != null && + this.MobilePhone.Equals(input.MobilePhone)) + ) && + ( + this.ThreeDSRequestorChallengeInd == input.ThreeDSRequestorChallengeInd || + this.ThreeDSRequestorChallengeInd.Equals(input.ThreeDSRequestorChallengeInd) + ) && + ( + this.WorkPhone == input.WorkPhone || + (this.WorkPhone != null && + this.WorkPhone.Equals(input.WorkPhone)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.HomePhone != null) + { + hashCode = (hashCode * 59) + this.HomePhone.GetHashCode(); + } + if (this.MobilePhone != null) + { + hashCode = (hashCode * 59) + this.MobilePhone.GetHashCode(); + } + hashCode = (hashCode * 59) + this.ThreeDSRequestorChallengeInd.GetHashCode(); + if (this.WorkPhone != null) + { + hashCode = (hashCode * 59) + this.WorkPhone.GetHashCode(); + } + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Adyen/Model/Checkout/CheckoutVoucherAction.cs b/Adyen/Model/Checkout/CheckoutVoucherAction.cs index 808cc2687..891756064 100644 --- a/Adyen/Model/Checkout/CheckoutVoucherAction.cs +++ b/Adyen/Model/Checkout/CheckoutVoucherAction.cs @@ -73,7 +73,7 @@ protected CheckoutVoucherAction() { } /// The shopper telephone number (partially masked).. /// The merchant name.. /// The merchant reference.. - /// A base64 encoded signature of all properties. + /// A Base64-encoded token containing all properties of the voucher. For iOS, you can use this to pass a voucher to Apple Wallet.. /// Encoded payment data.. /// Specifies the payment method.. /// The voucher reference code.. @@ -185,9 +185,9 @@ protected CheckoutVoucherAction() { } public string MerchantReference { get; set; } /// - /// A base64 encoded signature of all properties + /// A Base64-encoded token containing all properties of the voucher. For iOS, you can use this to pass a voucher to Apple Wallet. /// - /// A base64 encoded signature of all properties + /// A Base64-encoded token containing all properties of the voucher. For iOS, you can use this to pass a voucher to Apple Wallet. [DataMember(Name = "passCreationToken", EmitDefaultValue = false)] public string PassCreationToken { get; set; } diff --git a/Adyen/Model/Checkout/CreateCheckoutSessionRequest.cs b/Adyen/Model/Checkout/CreateCheckoutSessionRequest.cs index 28e0932de..a4dab7793 100644 --- a/Adyen/Model/Checkout/CreateCheckoutSessionRequest.cs +++ b/Adyen/Model/Checkout/CreateCheckoutSessionRequest.cs @@ -261,15 +261,16 @@ protected CreateCheckoutSessionRequest() { } /// Set to **true** to show a button that lets the shopper remove a stored payment method.. /// The shopper's social security number.. /// Boolean value indicating whether the card payment method should be split into separate debit and credit options. (default to false). - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. /// Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.. /// When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types).. /// Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the UI lets the shopper choose if they want their payment details to be stored. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent.. /// The shopper's telephone number.. /// Sets a custom theme for [Hosted Checkout](https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Hosted+Checkout). The value can be any of the **Theme ID** values from your Customer Area.. + /// threeDS2RequestData. /// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. (default to false). /// Set to true if the payment should be routed to a trusted MID.. - public CreateCheckoutSessionRequest(AccountInfo accountInfo = default(AccountInfo), Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), AuthenticationData authenticationData = default(AuthenticationData), BillingAddress billingAddress = default(BillingAddress), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), ChannelEnum? channel = default(ChannelEnum?), Company company = default(Company), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), DeliveryAddress deliveryAddress = default(DeliveryAddress), bool? enableOneClick = default(bool?), bool? enablePayOut = default(bool?), bool? enableRecurring = default(bool?), DateTime expiresAt = default(DateTime), FundOrigin fundOrigin = default(FundOrigin), FundRecipient fundRecipient = default(FundRecipient), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), ModeEnum? mode = ModeEnum.Embedded, ThreeDSecureData mpiData = default(ThreeDSecureData), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), string recurringExpiry = default(string), string recurringFrequency = default(string), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string redirectFromIssuerMethod = default(string), string redirectToIssuerMethod = default(string), string reference = default(string), string returnUrl = default(string), RiskData riskData = default(RiskData), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showInstallmentAmount = default(bool?), bool? showRemovePaymentMethodButton = default(bool?), string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), string store = default(string), bool? storePaymentMethod = default(bool?), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), bool? threeDSAuthenticationOnly = false, bool? trustedShopper = default(bool?)) + public CreateCheckoutSessionRequest(AccountInfo accountInfo = default(AccountInfo), Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), AuthenticationData authenticationData = default(AuthenticationData), BillingAddress billingAddress = default(BillingAddress), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), ChannelEnum? channel = default(ChannelEnum?), Company company = default(Company), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), DeliveryAddress deliveryAddress = default(DeliveryAddress), bool? enableOneClick = default(bool?), bool? enablePayOut = default(bool?), bool? enableRecurring = default(bool?), DateTime expiresAt = default(DateTime), FundOrigin fundOrigin = default(FundOrigin), FundRecipient fundRecipient = default(FundRecipient), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), ModeEnum? mode = ModeEnum.Embedded, ThreeDSecureData mpiData = default(ThreeDSecureData), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), string recurringExpiry = default(string), string recurringFrequency = default(string), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string redirectFromIssuerMethod = default(string), string redirectToIssuerMethod = default(string), string reference = default(string), string returnUrl = default(string), RiskData riskData = default(RiskData), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showInstallmentAmount = default(bool?), bool? showRemovePaymentMethodButton = default(bool?), string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), string store = default(string), bool? storePaymentMethod = default(bool?), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), CheckoutSessionThreeDS2RequestData threeDS2RequestData = default(CheckoutSessionThreeDS2RequestData), bool? threeDSAuthenticationOnly = false, bool? trustedShopper = default(bool?)) { this.Amount = amount; this.MerchantAccount = merchantAccount; @@ -328,6 +329,7 @@ protected CreateCheckoutSessionRequest() { } this.StorePaymentMethodMode = storePaymentMethodMode; this.TelephoneNumber = telephoneNumber; this.ThemeId = themeId; + this.ThreeDS2RequestData = threeDS2RequestData; this.ThreeDSAuthenticationOnly = threeDSAuthenticationOnly; this.TrustedShopper = trustedShopper; } @@ -648,9 +650,9 @@ protected CreateCheckoutSessionRequest() { } public bool? SplitCardFundingSources { get; set; } /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). [DataMember(Name = "splits", EmitDefaultValue = false)] public List Splits { get; set; } @@ -682,6 +684,12 @@ protected CreateCheckoutSessionRequest() { } [DataMember(Name = "themeId", EmitDefaultValue = false)] public string ThemeId { get; set; } + /// + /// Gets or Sets ThreeDS2RequestData + /// + [DataMember(Name = "threeDS2RequestData", EmitDefaultValue = false)] + public CheckoutSessionThreeDS2RequestData ThreeDS2RequestData { get; set; } + /// /// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. /// @@ -762,6 +770,7 @@ public override string ToString() sb.Append(" StorePaymentMethodMode: ").Append(StorePaymentMethodMode).Append("\n"); sb.Append(" TelephoneNumber: ").Append(TelephoneNumber).Append("\n"); sb.Append(" ThemeId: ").Append(ThemeId).Append("\n"); + sb.Append(" ThreeDS2RequestData: ").Append(ThreeDS2RequestData).Append("\n"); sb.Append(" ThreeDSAuthenticationOnly: ").Append(ThreeDSAuthenticationOnly).Append("\n"); sb.Append(" TrustedShopper: ").Append(TrustedShopper).Append("\n"); sb.Append("}\n"); @@ -1078,6 +1087,11 @@ public bool Equals(CreateCheckoutSessionRequest input) (this.ThemeId != null && this.ThemeId.Equals(input.ThemeId)) ) && + ( + this.ThreeDS2RequestData == input.ThreeDS2RequestData || + (this.ThreeDS2RequestData != null && + this.ThreeDS2RequestData.Equals(input.ThreeDS2RequestData)) + ) && ( this.ThreeDSAuthenticationOnly == input.ThreeDSAuthenticationOnly || this.ThreeDSAuthenticationOnly.Equals(input.ThreeDSAuthenticationOnly) @@ -1286,6 +1300,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.ThemeId.GetHashCode(); } + if (this.ThreeDS2RequestData != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2RequestData.GetHashCode(); + } hashCode = (hashCode * 59) + this.ThreeDSAuthenticationOnly.GetHashCode(); hashCode = (hashCode * 59) + this.TrustedShopper.GetHashCode(); return hashCode; diff --git a/Adyen/Model/Checkout/CreateCheckoutSessionResponse.cs b/Adyen/Model/Checkout/CreateCheckoutSessionResponse.cs index 49f5f7e04..b91b7e7c5 100644 --- a/Adyen/Model/Checkout/CreateCheckoutSessionResponse.cs +++ b/Adyen/Model/Checkout/CreateCheckoutSessionResponse.cs @@ -262,16 +262,17 @@ protected CreateCheckoutSessionResponse() { } /// Set to **true** to show a button that lets the shopper remove a stored payment method.. /// The shopper's social security number.. /// Boolean value indicating whether the card payment method should be split into separate debit and credit options. (default to false). - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. /// Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.. /// When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types).. /// Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the UI lets the shopper choose if they want their payment details to be stored. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent.. /// The shopper's telephone number.. /// Sets a custom theme for [Hosted Checkout](https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Hosted+Checkout). The value can be any of the **Theme ID** values from your Customer Area.. + /// threeDS2RequestData. /// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. (default to false). /// Set to true if the payment should be routed to a trusted MID.. /// The URL for the Hosted Checkout page. Redirect the shopper to this URL so they can make the payment.. - public CreateCheckoutSessionResponse(AccountInfo accountInfo = default(AccountInfo), Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), AuthenticationData authenticationData = default(AuthenticationData), BillingAddress billingAddress = default(BillingAddress), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), ChannelEnum? channel = default(ChannelEnum?), Company company = default(Company), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), DeliveryAddress deliveryAddress = default(DeliveryAddress), bool? enableOneClick = default(bool?), bool? enablePayOut = default(bool?), bool? enableRecurring = default(bool?), DateTime expiresAt = default(DateTime), FundOrigin fundOrigin = default(FundOrigin), FundRecipient fundRecipient = default(FundRecipient), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), ModeEnum? mode = ModeEnum.Embedded, ThreeDSecureData mpiData = default(ThreeDSecureData), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), string recurringExpiry = default(string), string recurringFrequency = default(string), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string redirectFromIssuerMethod = default(string), string redirectToIssuerMethod = default(string), string reference = default(string), string returnUrl = default(string), RiskData riskData = default(RiskData), string sessionData = default(string), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showInstallmentAmount = default(bool?), bool? showRemovePaymentMethodButton = default(bool?), string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), string store = default(string), bool? storePaymentMethod = default(bool?), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), bool? threeDSAuthenticationOnly = false, bool? trustedShopper = default(bool?), string url = default(string)) + public CreateCheckoutSessionResponse(AccountInfo accountInfo = default(AccountInfo), Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), AuthenticationData authenticationData = default(AuthenticationData), BillingAddress billingAddress = default(BillingAddress), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), ChannelEnum? channel = default(ChannelEnum?), Company company = default(Company), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), DeliveryAddress deliveryAddress = default(DeliveryAddress), bool? enableOneClick = default(bool?), bool? enablePayOut = default(bool?), bool? enableRecurring = default(bool?), DateTime expiresAt = default(DateTime), FundOrigin fundOrigin = default(FundOrigin), FundRecipient fundRecipient = default(FundRecipient), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), ModeEnum? mode = ModeEnum.Embedded, ThreeDSecureData mpiData = default(ThreeDSecureData), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), string recurringExpiry = default(string), string recurringFrequency = default(string), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string redirectFromIssuerMethod = default(string), string redirectToIssuerMethod = default(string), string reference = default(string), string returnUrl = default(string), RiskData riskData = default(RiskData), string sessionData = default(string), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showInstallmentAmount = default(bool?), bool? showRemovePaymentMethodButton = default(bool?), string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), string store = default(string), bool? storePaymentMethod = default(bool?), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), CheckoutSessionThreeDS2RequestData threeDS2RequestData = default(CheckoutSessionThreeDS2RequestData), bool? threeDSAuthenticationOnly = false, bool? trustedShopper = default(bool?), string url = default(string)) { this.Amount = amount; this.ExpiresAt = expiresAt; @@ -331,6 +332,7 @@ protected CreateCheckoutSessionResponse() { } this.StorePaymentMethodMode = storePaymentMethodMode; this.TelephoneNumber = telephoneNumber; this.ThemeId = themeId; + this.ThreeDS2RequestData = threeDS2RequestData; this.ThreeDSAuthenticationOnly = threeDSAuthenticationOnly; this.TrustedShopper = trustedShopper; this.Url = url; @@ -665,9 +667,9 @@ protected CreateCheckoutSessionResponse() { } public bool? SplitCardFundingSources { get; set; } /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). [DataMember(Name = "splits", EmitDefaultValue = false)] public List Splits { get; set; } @@ -699,6 +701,12 @@ protected CreateCheckoutSessionResponse() { } [DataMember(Name = "themeId", EmitDefaultValue = false)] public string ThemeId { get; set; } + /// + /// Gets or Sets ThreeDS2RequestData + /// + [DataMember(Name = "threeDS2RequestData", EmitDefaultValue = false)] + public CheckoutSessionThreeDS2RequestData ThreeDS2RequestData { get; set; } + /// /// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. /// @@ -788,6 +796,7 @@ public override string ToString() sb.Append(" StorePaymentMethodMode: ").Append(StorePaymentMethodMode).Append("\n"); sb.Append(" TelephoneNumber: ").Append(TelephoneNumber).Append("\n"); sb.Append(" ThemeId: ").Append(ThemeId).Append("\n"); + sb.Append(" ThreeDS2RequestData: ").Append(ThreeDS2RequestData).Append("\n"); sb.Append(" ThreeDSAuthenticationOnly: ").Append(ThreeDSAuthenticationOnly).Append("\n"); sb.Append(" TrustedShopper: ").Append(TrustedShopper).Append("\n"); sb.Append(" Url: ").Append(Url).Append("\n"); @@ -1115,6 +1124,11 @@ public bool Equals(CreateCheckoutSessionResponse input) (this.ThemeId != null && this.ThemeId.Equals(input.ThemeId)) ) && + ( + this.ThreeDS2RequestData == input.ThreeDS2RequestData || + (this.ThreeDS2RequestData != null && + this.ThreeDS2RequestData.Equals(input.ThreeDS2RequestData)) + ) && ( this.ThreeDSAuthenticationOnly == input.ThreeDSAuthenticationOnly || this.ThreeDSAuthenticationOnly.Equals(input.ThreeDSAuthenticationOnly) @@ -1336,6 +1350,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.ThemeId.GetHashCode(); } + if (this.ThreeDS2RequestData != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2RequestData.GetHashCode(); + } hashCode = (hashCode * 59) + this.ThreeDSAuthenticationOnly.GetHashCode(); hashCode = (hashCode * 59) + this.TrustedShopper.GetHashCode(); if (this.Url != null) diff --git a/Adyen/Model/Checkout/GooglePayDetails.cs b/Adyen/Model/Checkout/GooglePayDetails.cs index a3d43457f..0060da307 100644 --- a/Adyen/Model/Checkout/GooglePayDetails.cs +++ b/Adyen/Model/Checkout/GooglePayDetails.cs @@ -96,8 +96,9 @@ protected GooglePayDetails() { } /// The `token` that you obtained from the [Google Pay API](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) `PaymentData` response. (required). /// This is the `recurringDetailReference` returned in the response when you created the token.. /// This is the `recurringDetailReference` returned in the response when you created the token.. + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.. /// **googlepay**, **paywithgoogle** (default to TypeEnum.Googlepay). - public GooglePayDetails(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayCardNetwork = default(string), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), TypeEnum? type = TypeEnum.Googlepay) + public GooglePayDetails(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayCardNetwork = default(string), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), string threeDS2SdkVersion = default(string), TypeEnum? type = TypeEnum.Googlepay) { this.GooglePayToken = googlePayToken; this.CheckoutAttemptId = checkoutAttemptId; @@ -105,6 +106,7 @@ protected GooglePayDetails() { } this.GooglePayCardNetwork = googlePayCardNetwork; this.RecurringDetailReference = recurringDetailReference; this.StoredPaymentMethodId = storedPaymentMethodId; + this.ThreeDS2SdkVersion = threeDS2SdkVersion; this.Type = type; } @@ -144,6 +146,13 @@ protected GooglePayDetails() { } [DataMember(Name = "storedPaymentMethodId", EmitDefaultValue = false)] public string StoredPaymentMethodId { get; set; } + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + [DataMember(Name = "threeDS2SdkVersion", EmitDefaultValue = false)] + public string ThreeDS2SdkVersion { get; set; } + /// /// Returns the string presentation of the object /// @@ -158,6 +167,7 @@ public override string ToString() sb.Append(" GooglePayToken: ").Append(GooglePayToken).Append("\n"); sb.Append(" RecurringDetailReference: ").Append(RecurringDetailReference).Append("\n"); sb.Append(" StoredPaymentMethodId: ").Append(StoredPaymentMethodId).Append("\n"); + sb.Append(" ThreeDS2SdkVersion: ").Append(ThreeDS2SdkVersion).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -223,6 +233,11 @@ public bool Equals(GooglePayDetails input) (this.StoredPaymentMethodId != null && this.StoredPaymentMethodId.Equals(input.StoredPaymentMethodId)) ) && + ( + this.ThreeDS2SdkVersion == input.ThreeDS2SdkVersion || + (this.ThreeDS2SdkVersion != null && + this.ThreeDS2SdkVersion.Equals(input.ThreeDS2SdkVersion)) + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) @@ -259,6 +274,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.StoredPaymentMethodId.GetHashCode(); } + if (this.ThreeDS2SdkVersion != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2SdkVersion.GetHashCode(); + } hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; } @@ -282,6 +301,12 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for StoredPaymentMethodId, length must be less than 64.", new [] { "StoredPaymentMethodId" }); } + // ThreeDS2SdkVersion (string) maxLength + if (this.ThreeDS2SdkVersion != null && this.ThreeDS2SdkVersion.Length > 12) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ThreeDS2SdkVersion, length must be less than 12.", new [] { "ThreeDS2SdkVersion" }); + } + yield break; } } diff --git a/Adyen/Model/Checkout/GooglePayDonations.cs b/Adyen/Model/Checkout/GooglePayDonations.cs index 0c25259b9..31efd3f70 100644 --- a/Adyen/Model/Checkout/GooglePayDonations.cs +++ b/Adyen/Model/Checkout/GooglePayDonations.cs @@ -96,8 +96,9 @@ protected GooglePayDonations() { } /// The `token` that you obtained from the [Google Pay API](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) `PaymentData` response. (required). /// This is the `recurringDetailReference` returned in the response when you created the token.. /// This is the `recurringDetailReference` returned in the response when you created the token.. + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.. /// **googlepay**, **paywithgoogle** (default to TypeEnum.Googlepay). - public GooglePayDonations(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayCardNetwork = default(string), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), TypeEnum? type = TypeEnum.Googlepay) + public GooglePayDonations(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayCardNetwork = default(string), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), string threeDS2SdkVersion = default(string), TypeEnum? type = TypeEnum.Googlepay) { this.GooglePayToken = googlePayToken; this.CheckoutAttemptId = checkoutAttemptId; @@ -105,6 +106,7 @@ protected GooglePayDonations() { } this.GooglePayCardNetwork = googlePayCardNetwork; this.RecurringDetailReference = recurringDetailReference; this.StoredPaymentMethodId = storedPaymentMethodId; + this.ThreeDS2SdkVersion = threeDS2SdkVersion; this.Type = type; } @@ -144,6 +146,13 @@ protected GooglePayDonations() { } [DataMember(Name = "storedPaymentMethodId", EmitDefaultValue = false)] public string StoredPaymentMethodId { get; set; } + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + [DataMember(Name = "threeDS2SdkVersion", EmitDefaultValue = false)] + public string ThreeDS2SdkVersion { get; set; } + /// /// Returns the string presentation of the object /// @@ -158,6 +167,7 @@ public override string ToString() sb.Append(" GooglePayToken: ").Append(GooglePayToken).Append("\n"); sb.Append(" RecurringDetailReference: ").Append(RecurringDetailReference).Append("\n"); sb.Append(" StoredPaymentMethodId: ").Append(StoredPaymentMethodId).Append("\n"); + sb.Append(" ThreeDS2SdkVersion: ").Append(ThreeDS2SdkVersion).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -223,6 +233,11 @@ public bool Equals(GooglePayDonations input) (this.StoredPaymentMethodId != null && this.StoredPaymentMethodId.Equals(input.StoredPaymentMethodId)) ) && + ( + this.ThreeDS2SdkVersion == input.ThreeDS2SdkVersion || + (this.ThreeDS2SdkVersion != null && + this.ThreeDS2SdkVersion.Equals(input.ThreeDS2SdkVersion)) + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) @@ -259,6 +274,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.StoredPaymentMethodId.GetHashCode(); } + if (this.ThreeDS2SdkVersion != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2SdkVersion.GetHashCode(); + } hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; } @@ -282,6 +301,12 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for StoredPaymentMethodId, length must be less than 64.", new [] { "StoredPaymentMethodId" }); } + // ThreeDS2SdkVersion (string) maxLength + if (this.ThreeDS2SdkVersion != null && this.ThreeDS2SdkVersion.Length > 12) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ThreeDS2SdkVersion, length must be less than 12.", new [] { "ThreeDS2SdkVersion" }); + } + yield break; } } diff --git a/Adyen/Model/Checkout/PayWithGoogleDetails.cs b/Adyen/Model/Checkout/PayWithGoogleDetails.cs index 5de521a16..4823e92e8 100644 --- a/Adyen/Model/Checkout/PayWithGoogleDetails.cs +++ b/Adyen/Model/Checkout/PayWithGoogleDetails.cs @@ -95,14 +95,16 @@ protected PayWithGoogleDetails() { } /// The `token` that you obtained from the [Google Pay API](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) `PaymentData` response. (required). /// This is the `recurringDetailReference` returned in the response when you created the token.. /// This is the `recurringDetailReference` returned in the response when you created the token.. + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.. /// **paywithgoogle** (default to TypeEnum.Paywithgoogle). - public PayWithGoogleDetails(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), TypeEnum? type = TypeEnum.Paywithgoogle) + public PayWithGoogleDetails(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), string threeDS2SdkVersion = default(string), TypeEnum? type = TypeEnum.Paywithgoogle) { this.GooglePayToken = googlePayToken; this.CheckoutAttemptId = checkoutAttemptId; this.FundingSource = fundingSource; this.RecurringDetailReference = recurringDetailReference; this.StoredPaymentMethodId = storedPaymentMethodId; + this.ThreeDS2SdkVersion = threeDS2SdkVersion; this.Type = type; } @@ -135,6 +137,13 @@ protected PayWithGoogleDetails() { } [DataMember(Name = "storedPaymentMethodId", EmitDefaultValue = false)] public string StoredPaymentMethodId { get; set; } + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + [DataMember(Name = "threeDS2SdkVersion", EmitDefaultValue = false)] + public string ThreeDS2SdkVersion { get; set; } + /// /// Returns the string presentation of the object /// @@ -148,6 +157,7 @@ public override string ToString() sb.Append(" GooglePayToken: ").Append(GooglePayToken).Append("\n"); sb.Append(" RecurringDetailReference: ").Append(RecurringDetailReference).Append("\n"); sb.Append(" StoredPaymentMethodId: ").Append(StoredPaymentMethodId).Append("\n"); + sb.Append(" ThreeDS2SdkVersion: ").Append(ThreeDS2SdkVersion).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -208,6 +218,11 @@ public bool Equals(PayWithGoogleDetails input) (this.StoredPaymentMethodId != null && this.StoredPaymentMethodId.Equals(input.StoredPaymentMethodId)) ) && + ( + this.ThreeDS2SdkVersion == input.ThreeDS2SdkVersion || + (this.ThreeDS2SdkVersion != null && + this.ThreeDS2SdkVersion.Equals(input.ThreeDS2SdkVersion)) + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) @@ -240,6 +255,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.StoredPaymentMethodId.GetHashCode(); } + if (this.ThreeDS2SdkVersion != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2SdkVersion.GetHashCode(); + } hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; } @@ -263,6 +282,12 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for StoredPaymentMethodId, length must be less than 64.", new [] { "StoredPaymentMethodId" }); } + // ThreeDS2SdkVersion (string) maxLength + if (this.ThreeDS2SdkVersion != null && this.ThreeDS2SdkVersion.Length > 12) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ThreeDS2SdkVersion, length must be less than 12.", new [] { "ThreeDS2SdkVersion" }); + } + yield break; } } diff --git a/Adyen/Model/Checkout/PayWithGoogleDonations.cs b/Adyen/Model/Checkout/PayWithGoogleDonations.cs index 07802aa73..017c88aa5 100644 --- a/Adyen/Model/Checkout/PayWithGoogleDonations.cs +++ b/Adyen/Model/Checkout/PayWithGoogleDonations.cs @@ -95,14 +95,16 @@ protected PayWithGoogleDonations() { } /// The `token` that you obtained from the [Google Pay API](https://developers.google.com/pay/api/web/reference/response-objects#PaymentData) `PaymentData` response. (required). /// This is the `recurringDetailReference` returned in the response when you created the token.. /// This is the `recurringDetailReference` returned in the response when you created the token.. + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK.. /// **paywithgoogle** (default to TypeEnum.Paywithgoogle). - public PayWithGoogleDonations(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), TypeEnum? type = TypeEnum.Paywithgoogle) + public PayWithGoogleDonations(string checkoutAttemptId = default(string), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), string googlePayToken = default(string), string recurringDetailReference = default(string), string storedPaymentMethodId = default(string), string threeDS2SdkVersion = default(string), TypeEnum? type = TypeEnum.Paywithgoogle) { this.GooglePayToken = googlePayToken; this.CheckoutAttemptId = checkoutAttemptId; this.FundingSource = fundingSource; this.RecurringDetailReference = recurringDetailReference; this.StoredPaymentMethodId = storedPaymentMethodId; + this.ThreeDS2SdkVersion = threeDS2SdkVersion; this.Type = type; } @@ -135,6 +137,13 @@ protected PayWithGoogleDonations() { } [DataMember(Name = "storedPaymentMethodId", EmitDefaultValue = false)] public string StoredPaymentMethodId { get; set; } + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + /// + /// Required for mobile integrations. Version of the 3D Secure 2 mobile SDK. + [DataMember(Name = "threeDS2SdkVersion", EmitDefaultValue = false)] + public string ThreeDS2SdkVersion { get; set; } + /// /// Returns the string presentation of the object /// @@ -148,6 +157,7 @@ public override string ToString() sb.Append(" GooglePayToken: ").Append(GooglePayToken).Append("\n"); sb.Append(" RecurringDetailReference: ").Append(RecurringDetailReference).Append("\n"); sb.Append(" StoredPaymentMethodId: ").Append(StoredPaymentMethodId).Append("\n"); + sb.Append(" ThreeDS2SdkVersion: ").Append(ThreeDS2SdkVersion).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -208,6 +218,11 @@ public bool Equals(PayWithGoogleDonations input) (this.StoredPaymentMethodId != null && this.StoredPaymentMethodId.Equals(input.StoredPaymentMethodId)) ) && + ( + this.ThreeDS2SdkVersion == input.ThreeDS2SdkVersion || + (this.ThreeDS2SdkVersion != null && + this.ThreeDS2SdkVersion.Equals(input.ThreeDS2SdkVersion)) + ) && ( this.Type == input.Type || this.Type.Equals(input.Type) @@ -240,6 +255,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.StoredPaymentMethodId.GetHashCode(); } + if (this.ThreeDS2SdkVersion != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2SdkVersion.GetHashCode(); + } hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; } @@ -263,6 +282,12 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for StoredPaymentMethodId, length must be less than 64.", new [] { "StoredPaymentMethodId" }); } + // ThreeDS2SdkVersion (string) maxLength + if (this.ThreeDS2SdkVersion != null && this.ThreeDS2SdkVersion.Length > 12) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ThreeDS2SdkVersion, length must be less than 12.", new [] { "ThreeDS2SdkVersion" }); + } + yield break; } } diff --git a/Adyen/Model/Checkout/PaymentLinkRequest.cs b/Adyen/Model/Checkout/PaymentLinkRequest.cs index 95627e873..455d826da 100644 --- a/Adyen/Model/Checkout/PaymentLinkRequest.cs +++ b/Adyen/Model/Checkout/PaymentLinkRequest.cs @@ -173,6 +173,7 @@ protected PaymentLinkRequest() { } /// The merchant account identifier for which the payment link is created. (required). /// This reference allows linking multiple transactions to each other for reporting purposes (for example, order auth-rate). The reference should be unique per billing cycle.. /// Metadata consists of entries, each of which includes a key and a value. Limitations: * Maximum 20 key-value pairs per request. Otherwise, error \"177\" occurs: \"Metadata size exceeds limit\" * Maximum 20 characters per key. Otherwise, error \"178\" occurs: \"Metadata key size exceeds limit\" * A key cannot have the name `checkout.linkId`. Any value that you provide with this key is going to be replaced by the real payment link ID.. + /// platformChargebackLogic. /// Defines a recurring payment type. Required when `storePaymentMethodMode` is set to **askForConsent** or **enabled**. Possible values: * **Subscription** – A transaction for a fixed or variable amount, which follows a fixed schedule. * **CardOnFile** – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * **UnscheduledCardOnFile** – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or has variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount. . /// A reference that is used to uniquely identify the payment in future communications about the payment status. (required). /// List of fields that the shopper has to provide on the payment page before completing the payment. For more information, refer to [Provide shopper information](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#shopper-information). Possible values: * **billingAddress** – The address where to send the invoice. * **deliveryAddress** – The address where the purchased goods should be delivered. * **shopperEmail** – The shopper's email address. * **shopperName** – The shopper's full name. * **telephoneNumber** – The shopper's phone number. . @@ -187,12 +188,13 @@ protected PaymentLinkRequest() { } /// Set to **false** to hide the button that lets the shopper remove a stored payment method. (default to true). /// The shopper's social security number.. /// Boolean value indicating whether the card payment method should be split into separate debit and credit options. (default to false). - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. /// The physical store, for which this payment is processed.. /// Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the UI lets the shopper choose if they want their payment details to be stored. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent. When set to **askForConsent** or **enabled**, you must also include the `recurringProcessingModel` parameter.. /// The shopper's telephone number.. /// A [theme](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#themes) to customize the appearance of the payment page. If not specified, the payment page is rendered according to the theme set as default in your Customer Area.. - public PaymentLinkRequest(List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), Address billingAddress = default(Address), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), Address deliveryAddress = default(Address), string description = default(string), DateTime expiresAt = default(DateTime), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), bool? manualCapture = default(bool?), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string reference = default(string), List requiredShopperFields = default(List), string returnUrl = default(string), bool? reusable = default(bool?), RiskData riskData = default(RiskData), string shopperEmail = default(string), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showRemovePaymentMethodButton = true, string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), string store = default(string), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string)) + /// threeDS2RequestData. + public PaymentLinkRequest(List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), Address billingAddress = default(Address), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), Address deliveryAddress = default(Address), string description = default(string), DateTime expiresAt = default(DateTime), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), bool? manualCapture = default(bool?), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string reference = default(string), List requiredShopperFields = default(List), string returnUrl = default(string), bool? reusable = default(bool?), RiskData riskData = default(RiskData), string shopperEmail = default(string), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showRemovePaymentMethodButton = true, string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), string store = default(string), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), CheckoutSessionThreeDS2RequestData threeDS2RequestData = default(CheckoutSessionThreeDS2RequestData)) { this.Amount = amount; this.MerchantAccount = merchantAccount; @@ -214,6 +216,7 @@ protected PaymentLinkRequest() { } this.Mcc = mcc; this.MerchantOrderReference = merchantOrderReference; this.Metadata = metadata; + this.PlatformChargebackLogic = platformChargebackLogic; this.RecurringProcessingModel = recurringProcessingModel; this.RequiredShopperFields = requiredShopperFields; this.ReturnUrl = returnUrl; @@ -232,6 +235,7 @@ protected PaymentLinkRequest() { } this.StorePaymentMethodMode = storePaymentMethodMode; this.TelephoneNumber = telephoneNumber; this.ThemeId = themeId; + this.ThreeDS2RequestData = threeDS2RequestData; } /// @@ -364,6 +368,12 @@ protected PaymentLinkRequest() { } [DataMember(Name = "metadata", EmitDefaultValue = false)] public Dictionary Metadata { get; set; } + /// + /// Gets or Sets PlatformChargebackLogic + /// + [DataMember(Name = "platformChargebackLogic", EmitDefaultValue = false)] + public PlatformChargebackLogic PlatformChargebackLogic { get; set; } + /// /// A reference that is used to uniquely identify the payment in future communications about the payment status. /// @@ -447,9 +457,9 @@ protected PaymentLinkRequest() { } public bool? SplitCardFundingSources { get; set; } /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). [DataMember(Name = "splits", EmitDefaultValue = false)] public List Splits { get; set; } @@ -474,6 +484,12 @@ protected PaymentLinkRequest() { } [DataMember(Name = "themeId", EmitDefaultValue = false)] public string ThemeId { get; set; } + /// + /// Gets or Sets ThreeDS2RequestData + /// + [DataMember(Name = "threeDS2RequestData", EmitDefaultValue = false)] + public CheckoutSessionThreeDS2RequestData ThreeDS2RequestData { get; set; } + /// /// Returns the string presentation of the object /// @@ -501,6 +517,7 @@ public override string ToString() sb.Append(" MerchantAccount: ").Append(MerchantAccount).Append("\n"); sb.Append(" MerchantOrderReference: ").Append(MerchantOrderReference).Append("\n"); sb.Append(" Metadata: ").Append(Metadata).Append("\n"); + sb.Append(" PlatformChargebackLogic: ").Append(PlatformChargebackLogic).Append("\n"); sb.Append(" RecurringProcessingModel: ").Append(RecurringProcessingModel).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); sb.Append(" RequiredShopperFields: ").Append(RequiredShopperFields).Append("\n"); @@ -520,6 +537,7 @@ public override string ToString() sb.Append(" StorePaymentMethodMode: ").Append(StorePaymentMethodMode).Append("\n"); sb.Append(" TelephoneNumber: ").Append(TelephoneNumber).Append("\n"); sb.Append(" ThemeId: ").Append(ThemeId).Append("\n"); + sb.Append(" ThreeDS2RequestData: ").Append(ThreeDS2RequestData).Append("\n"); sb.Append("}\n"); return sb.ToString(); } @@ -653,6 +671,11 @@ public bool Equals(PaymentLinkRequest input) input.Metadata != null && this.Metadata.SequenceEqual(input.Metadata) ) && + ( + this.PlatformChargebackLogic == input.PlatformChargebackLogic || + (this.PlatformChargebackLogic != null && + this.PlatformChargebackLogic.Equals(input.PlatformChargebackLogic)) + ) && ( this.RecurringProcessingModel == input.RecurringProcessingModel || this.RecurringProcessingModel.Equals(input.RecurringProcessingModel) @@ -742,6 +765,11 @@ public bool Equals(PaymentLinkRequest input) this.ThemeId == input.ThemeId || (this.ThemeId != null && this.ThemeId.Equals(input.ThemeId)) + ) && + ( + this.ThreeDS2RequestData == input.ThreeDS2RequestData || + (this.ThreeDS2RequestData != null && + this.ThreeDS2RequestData.Equals(input.ThreeDS2RequestData)) ); } @@ -824,6 +852,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.Metadata.GetHashCode(); } + if (this.PlatformChargebackLogic != null) + { + hashCode = (hashCode * 59) + this.PlatformChargebackLogic.GetHashCode(); + } hashCode = (hashCode * 59) + this.RecurringProcessingModel.GetHashCode(); if (this.Reference != null) { @@ -882,6 +914,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.ThemeId.GetHashCode(); } + if (this.ThreeDS2RequestData != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2RequestData.GetHashCode(); + } return hashCode; } } diff --git a/Adyen/Model/Checkout/PaymentLinkResponse.cs b/Adyen/Model/Checkout/PaymentLinkResponse.cs index 4eda7d6bd..03d2c7d26 100644 --- a/Adyen/Model/Checkout/PaymentLinkResponse.cs +++ b/Adyen/Model/Checkout/PaymentLinkResponse.cs @@ -219,6 +219,7 @@ protected PaymentLinkResponse() { } /// The merchant account identifier for which the payment link is created. (required). /// This reference allows linking multiple transactions to each other for reporting purposes (for example, order auth-rate). The reference should be unique per billing cycle.. /// Metadata consists of entries, each of which includes a key and a value. Limitations: * Maximum 20 key-value pairs per request. Otherwise, error \"177\" occurs: \"Metadata size exceeds limit\" * Maximum 20 characters per key. Otherwise, error \"178\" occurs: \"Metadata key size exceeds limit\" * A key cannot have the name `checkout.linkId`. Any value that you provide with this key is going to be replaced by the real payment link ID.. + /// platformChargebackLogic. /// Defines a recurring payment type. Required when `storePaymentMethodMode` is set to **askForConsent** or **enabled**. Possible values: * **Subscription** – A transaction for a fixed or variable amount, which follows a fixed schedule. * **CardOnFile** – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * **UnscheduledCardOnFile** – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or has variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount. . /// A reference that is used to uniquely identify the payment in future communications about the payment status. (required). /// List of fields that the shopper has to provide on the payment page before completing the payment. For more information, refer to [Provide shopper information](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#shopper-information). Possible values: * **billingAddress** – The address where to send the invoice. * **deliveryAddress** – The address where the purchased goods should be delivered. * **shopperEmail** – The shopper's email address. * **shopperName** – The shopper's full name. * **telephoneNumber** – The shopper's phone number. . @@ -233,14 +234,15 @@ protected PaymentLinkResponse() { } /// Set to **false** to hide the button that lets the shopper remove a stored payment method. (default to true). /// The shopper's social security number.. /// Boolean value indicating whether the card payment method should be split into separate debit and credit options. (default to false). - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. /// Status of the payment link. Possible values: * **active**: The link can be used to make payments. * **expired**: The expiry date for the payment link has passed. Shoppers can no longer use the link to make payments. * **completed**: The shopper completed the payment. * **paymentPending**: The shopper is in the process of making the payment. Applies to payment methods with an asynchronous flow. (required). /// The physical store, for which this payment is processed.. /// Indicates if the details of the payment method will be stored for the shopper. Possible values: * **disabled** – No details will be stored (default). * **askForConsent** – If the `shopperReference` is provided, the UI lets the shopper choose if they want their payment details to be stored. * **enabled** – If the `shopperReference` is provided, the details will be stored without asking the shopper for consent. When set to **askForConsent** or **enabled**, you must also include the `recurringProcessingModel` parameter.. /// The shopper's telephone number.. /// A [theme](https://docs.adyen.com/unified-commerce/pay-by-link/payment-links/api#themes) to customize the appearance of the payment page. If not specified, the payment page is rendered according to the theme set as default in your Customer Area.. + /// threeDS2RequestData. /// The date when the payment link status was updated. [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**.. - public PaymentLinkResponse(List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), Address billingAddress = default(Address), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), Address deliveryAddress = default(Address), string description = default(string), DateTime expiresAt = default(DateTime), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), bool? manualCapture = default(bool?), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string reference = default(string), List requiredShopperFields = default(List), string returnUrl = default(string), bool? reusable = default(bool?), RiskData riskData = default(RiskData), string shopperEmail = default(string), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showRemovePaymentMethodButton = true, string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), StatusEnum status = default(StatusEnum), string store = default(string), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), DateTime updatedAt = default(DateTime)) + public PaymentLinkResponse(List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), Address billingAddress = default(Address), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), DateTime deliverAt = default(DateTime), Address deliveryAddress = default(Address), string description = default(string), DateTime expiresAt = default(DateTime), Dictionary installmentOptions = default(Dictionary), List lineItems = default(List), bool? manualCapture = default(bool?), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string reference = default(string), List requiredShopperFields = default(List), string returnUrl = default(string), bool? reusable = default(bool?), RiskData riskData = default(RiskData), string shopperEmail = default(string), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), bool? showRemovePaymentMethodButton = true, string socialSecurityNumber = default(string), bool? splitCardFundingSources = false, List splits = default(List), StatusEnum status = default(StatusEnum), string store = default(string), StorePaymentMethodModeEnum? storePaymentMethodMode = default(StorePaymentMethodModeEnum?), string telephoneNumber = default(string), string themeId = default(string), CheckoutSessionThreeDS2RequestData threeDS2RequestData = default(CheckoutSessionThreeDS2RequestData), DateTime updatedAt = default(DateTime)) { this.Amount = amount; this.MerchantAccount = merchantAccount; @@ -263,6 +265,7 @@ protected PaymentLinkResponse() { } this.Mcc = mcc; this.MerchantOrderReference = merchantOrderReference; this.Metadata = metadata; + this.PlatformChargebackLogic = platformChargebackLogic; this.RecurringProcessingModel = recurringProcessingModel; this.RequiredShopperFields = requiredShopperFields; this.ReturnUrl = returnUrl; @@ -281,6 +284,7 @@ protected PaymentLinkResponse() { } this.StorePaymentMethodMode = storePaymentMethodMode; this.TelephoneNumber = telephoneNumber; this.ThemeId = themeId; + this.ThreeDS2RequestData = threeDS2RequestData; this.UpdatedAt = updatedAt; } @@ -421,6 +425,12 @@ protected PaymentLinkResponse() { } [DataMember(Name = "metadata", EmitDefaultValue = false)] public Dictionary Metadata { get; set; } + /// + /// Gets or Sets PlatformChargebackLogic + /// + [DataMember(Name = "platformChargebackLogic", EmitDefaultValue = false)] + public PlatformChargebackLogic PlatformChargebackLogic { get; set; } + /// /// A reference that is used to uniquely identify the payment in future communications about the payment status. /// @@ -504,9 +514,9 @@ protected PaymentLinkResponse() { } public bool? SplitCardFundingSources { get; set; } /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). [DataMember(Name = "splits", EmitDefaultValue = false)] public List Splits { get; set; } @@ -531,6 +541,12 @@ protected PaymentLinkResponse() { } [DataMember(Name = "themeId", EmitDefaultValue = false)] public string ThemeId { get; set; } + /// + /// Gets or Sets ThreeDS2RequestData + /// + [DataMember(Name = "threeDS2RequestData", EmitDefaultValue = false)] + public CheckoutSessionThreeDS2RequestData ThreeDS2RequestData { get; set; } + /// /// The date when the payment link status was updated. [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format: YYYY-MM-DDThh:mm:ss+TZD, for example, **2020-12-18T10:15:30+01:00**. /// @@ -573,6 +589,7 @@ public override string ToString() sb.Append(" MerchantAccount: ").Append(MerchantAccount).Append("\n"); sb.Append(" MerchantOrderReference: ").Append(MerchantOrderReference).Append("\n"); sb.Append(" Metadata: ").Append(Metadata).Append("\n"); + sb.Append(" PlatformChargebackLogic: ").Append(PlatformChargebackLogic).Append("\n"); sb.Append(" RecurringProcessingModel: ").Append(RecurringProcessingModel).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); sb.Append(" RequiredShopperFields: ").Append(RequiredShopperFields).Append("\n"); @@ -593,6 +610,7 @@ public override string ToString() sb.Append(" StorePaymentMethodMode: ").Append(StorePaymentMethodMode).Append("\n"); sb.Append(" TelephoneNumber: ").Append(TelephoneNumber).Append("\n"); sb.Append(" ThemeId: ").Append(ThemeId).Append("\n"); + sb.Append(" ThreeDS2RequestData: ").Append(ThreeDS2RequestData).Append("\n"); sb.Append(" UpdatedAt: ").Append(UpdatedAt).Append("\n"); sb.Append(" Url: ").Append(Url).Append("\n"); sb.Append("}\n"); @@ -733,6 +751,11 @@ public bool Equals(PaymentLinkResponse input) input.Metadata != null && this.Metadata.SequenceEqual(input.Metadata) ) && + ( + this.PlatformChargebackLogic == input.PlatformChargebackLogic || + (this.PlatformChargebackLogic != null && + this.PlatformChargebackLogic.Equals(input.PlatformChargebackLogic)) + ) && ( this.RecurringProcessingModel == input.RecurringProcessingModel || this.RecurringProcessingModel.Equals(input.RecurringProcessingModel) @@ -827,6 +850,11 @@ public bool Equals(PaymentLinkResponse input) (this.ThemeId != null && this.ThemeId.Equals(input.ThemeId)) ) && + ( + this.ThreeDS2RequestData == input.ThreeDS2RequestData || + (this.ThreeDS2RequestData != null && + this.ThreeDS2RequestData.Equals(input.ThreeDS2RequestData)) + ) && ( this.UpdatedAt == input.UpdatedAt || (this.UpdatedAt != null && @@ -922,6 +950,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.Metadata.GetHashCode(); } + if (this.PlatformChargebackLogic != null) + { + hashCode = (hashCode * 59) + this.PlatformChargebackLogic.GetHashCode(); + } hashCode = (hashCode * 59) + this.RecurringProcessingModel.GetHashCode(); if (this.Reference != null) { @@ -981,6 +1013,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.ThemeId.GetHashCode(); } + if (this.ThreeDS2RequestData != null) + { + hashCode = (hashCode * 59) + this.ThreeDS2RequestData.GetHashCode(); + } if (this.UpdatedAt != null) { hashCode = (hashCode * 59) + this.UpdatedAt.GetHashCode(); diff --git a/Adyen/Model/Checkout/PaymentRequest.cs b/Adyen/Model/Checkout/PaymentRequest.cs index 1df4fa933..4947780ac 100644 --- a/Adyen/Model/Checkout/PaymentRequest.cs +++ b/Adyen/Model/Checkout/PaymentRequest.cs @@ -270,7 +270,7 @@ protected PaymentRequest() { } /// Required for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address.. /// The text to be shown on the shopper's bank statement. We recommend sending a maximum of 22 characters, otherwise banks might truncate the string. Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , ' _ - ? + * /_**.. /// The shopper's social security number.. - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).. /// Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.. /// When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types).. /// The shopper's telephone number.. @@ -715,9 +715,9 @@ protected PaymentRequest() { } public string SocialSecurityNumber { get; set; } /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). /// - /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/processing-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). + /// An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split). [DataMember(Name = "splits", EmitDefaultValue = false)] public List Splits { get; set; } diff --git a/Adyen/Model/Checkout/PaymentSetupRequest.cs b/Adyen/Model/Checkout/PaymentSetupRequest.cs index c3d7f179d..b06673599 100644 --- a/Adyen/Model/Checkout/PaymentSetupRequest.cs +++ b/Adyen/Model/Checkout/PaymentSetupRequest.cs @@ -182,6 +182,7 @@ protected PaymentSetupRequest() { } /// The URL to return to in case of a redirection. The format depends on the channel. This URL can have a maximum of 1024 characters. * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name` (required). /// riskData. /// The version of the SDK you are using (for Web SDK integrations only).. + /// secureRemoteCommerceCheckoutData. /// The date and time until when the session remains valid, in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format. For example: 2020-07-18T15:42:40.428+01:00. /// The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > For 3D Secure 2 transactions, schemes require `shopperEmail` for all browser-based and mobile implementations.. /// The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > For 3D Secure 2 transactions, schemes require `shopperIP` for all browser-based implementations. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).. @@ -198,7 +199,7 @@ protected PaymentSetupRequest() { } /// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. (default to false). /// The token obtained when initializing the SDK. > This parameter is required for iOS and Android; not required for Web.. /// Set to true if the payment should be routed to a trusted MID.. - public PaymentSetupRequest(Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), Address billingAddress = default(Address), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), ChannelEnum? channel = default(ChannelEnum?), string checkoutAttemptId = default(string), Company company = default(Company), ModelConfiguration configuration = default(ModelConfiguration), string conversionId = default(string), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), ForexQuote dccQuote = default(ForexQuote), Address deliveryAddress = default(Address), DateTime deliveryDate = default(DateTime), bool? enableOneClick = default(bool?), bool? enablePayOut = default(bool?), bool? enableRecurring = default(bool?), EntityTypeEnum? entityType = default(EntityTypeEnum?), int? fraudOffset = default(int?), Installments installments = default(Installments), List lineItems = default(List), Dictionary localizedShopperStatement = default(Dictionary), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), string orderReference = default(string), string origin = default(string), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), string recurringExpiry = default(string), string recurringFrequency = default(string), string reference = default(string), string returnUrl = default(string), RiskData riskData = default(RiskData), string sdkVersion = default(string), string sessionValidity = default(string), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), string socialSecurityNumber = default(string), List splits = default(List), string store = default(string), bool? storePaymentMethod = default(bool?), string telephoneNumber = default(string), bool? threeDSAuthenticationOnly = false, string token = default(string), bool? trustedShopper = default(bool?)) + public PaymentSetupRequest(Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), List allowedPaymentMethods = default(List), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), Address billingAddress = default(Address), List blockedPaymentMethods = default(List), int? captureDelayHours = default(int?), ChannelEnum? channel = default(ChannelEnum?), string checkoutAttemptId = default(string), Company company = default(Company), ModelConfiguration configuration = default(ModelConfiguration), string conversionId = default(string), string countryCode = default(string), DateTime dateOfBirth = default(DateTime), ForexQuote dccQuote = default(ForexQuote), Address deliveryAddress = default(Address), DateTime deliveryDate = default(DateTime), bool? enableOneClick = default(bool?), bool? enablePayOut = default(bool?), bool? enableRecurring = default(bool?), EntityTypeEnum? entityType = default(EntityTypeEnum?), int? fraudOffset = default(int?), Installments installments = default(Installments), List lineItems = default(List), Dictionary localizedShopperStatement = default(Dictionary), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), Dictionary metadata = default(Dictionary), string orderReference = default(string), string origin = default(string), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), string recurringExpiry = default(string), string recurringFrequency = default(string), string reference = default(string), string returnUrl = default(string), RiskData riskData = default(RiskData), string sdkVersion = default(string), SecureRemoteCommerceCheckoutData secureRemoteCommerceCheckoutData = default(SecureRemoteCommerceCheckoutData), string sessionValidity = default(string), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), string socialSecurityNumber = default(string), List splits = default(List), string store = default(string), bool? storePaymentMethod = default(bool?), string telephoneNumber = default(string), bool? threeDSAuthenticationOnly = false, string token = default(string), bool? trustedShopper = default(bool?)) { this.Amount = amount; this.CountryCode = countryCode; @@ -240,6 +241,7 @@ protected PaymentSetupRequest() { } this.RecurringFrequency = recurringFrequency; this.RiskData = riskData; this.SdkVersion = sdkVersion; + this.SecureRemoteCommerceCheckoutData = secureRemoteCommerceCheckoutData; this.SessionValidity = sessionValidity; this.ShopperEmail = shopperEmail; this.ShopperIP = shopperIP; @@ -514,6 +516,12 @@ protected PaymentSetupRequest() { } [DataMember(Name = "sdkVersion", EmitDefaultValue = false)] public string SdkVersion { get; set; } + /// + /// Gets or Sets SecureRemoteCommerceCheckoutData + /// + [DataMember(Name = "secureRemoteCommerceCheckoutData", EmitDefaultValue = false)] + public SecureRemoteCommerceCheckoutData SecureRemoteCommerceCheckoutData { get; set; } + /// /// The date and time until when the session remains valid, in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format. For example: 2020-07-18T15:42:40.428+01:00 /// @@ -667,6 +675,7 @@ public override string ToString() sb.Append(" ReturnUrl: ").Append(ReturnUrl).Append("\n"); sb.Append(" RiskData: ").Append(RiskData).Append("\n"); sb.Append(" SdkVersion: ").Append(SdkVersion).Append("\n"); + sb.Append(" SecureRemoteCommerceCheckoutData: ").Append(SecureRemoteCommerceCheckoutData).Append("\n"); sb.Append(" SessionValidity: ").Append(SessionValidity).Append("\n"); sb.Append(" ShopperEmail: ").Append(ShopperEmail).Append("\n"); sb.Append(" ShopperIP: ").Append(ShopperIP).Append("\n"); @@ -917,6 +926,11 @@ public bool Equals(PaymentSetupRequest input) (this.SdkVersion != null && this.SdkVersion.Equals(input.SdkVersion)) ) && + ( + this.SecureRemoteCommerceCheckoutData == input.SecureRemoteCommerceCheckoutData || + (this.SecureRemoteCommerceCheckoutData != null && + this.SecureRemoteCommerceCheckoutData.Equals(input.SecureRemoteCommerceCheckoutData)) + ) && ( this.SessionValidity == input.SessionValidity || (this.SessionValidity != null && @@ -1144,6 +1158,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.SdkVersion.GetHashCode(); } + if (this.SecureRemoteCommerceCheckoutData != null) + { + hashCode = (hashCode * 59) + this.SecureRemoteCommerceCheckoutData.GetHashCode(); + } if (this.SessionValidity != null) { hashCode = (hashCode * 59) + this.SessionValidity.GetHashCode(); diff --git a/Adyen/Model/Checkout/SecureRemoteCommerceCheckoutData.cs b/Adyen/Model/Checkout/SecureRemoteCommerceCheckoutData.cs new file mode 100644 index 000000000..255fcaa51 --- /dev/null +++ b/Adyen/Model/Checkout/SecureRemoteCommerceCheckoutData.cs @@ -0,0 +1,283 @@ +/* +* Adyen Checkout API +* +* +* The version of the OpenAPI document: 71 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.Checkout +{ + /// + /// SecureRemoteCommerceCheckoutData + /// + [DataContract(Name = "SecureRemoteCommerceCheckoutData")] + public partial class SecureRemoteCommerceCheckoutData : IEquatable, IValidatableObject + { + /// + /// The Secure Remote Commerce scheme. + /// + /// The Secure Remote Commerce scheme. + [JsonConverter(typeof(StringEnumConverter))] + public enum SchemeEnum + { + /// + /// Enum Mc for value: mc + /// + [EnumMember(Value = "mc")] + Mc = 1, + + /// + /// Enum Visa for value: visa + /// + [EnumMember(Value = "visa")] + Visa = 2 + + } + + + /// + /// The Secure Remote Commerce scheme. + /// + /// The Secure Remote Commerce scheme. + [DataMember(Name = "scheme", EmitDefaultValue = false)] + public SchemeEnum? Scheme { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// The Secure Remote Commerce checkout payload to process the payment with.. + /// This is the unique identifier generated by SRC system to track and link SRC messages. Available within the present checkout session (e.g. received in an earlier API response during the present session).. + /// The [card verification code](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#card-security-code-cvc-cvv-cid).. + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'mc'.. + /// The Secure Remote Commerce scheme.. + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'visa'.. + public SecureRemoteCommerceCheckoutData(string checkoutPayload = default(string), string correlationId = default(string), string cvc = default(string), string digitalCardId = default(string), SchemeEnum? scheme = default(SchemeEnum?), string tokenReference = default(string)) + { + this.CheckoutPayload = checkoutPayload; + this.CorrelationId = correlationId; + this.Cvc = cvc; + this.DigitalCardId = digitalCardId; + this.Scheme = scheme; + this.TokenReference = tokenReference; + } + + /// + /// The Secure Remote Commerce checkout payload to process the payment with. + /// + /// The Secure Remote Commerce checkout payload to process the payment with. + [DataMember(Name = "checkoutPayload", EmitDefaultValue = false)] + public string CheckoutPayload { get; set; } + + /// + /// This is the unique identifier generated by SRC system to track and link SRC messages. Available within the present checkout session (e.g. received in an earlier API response during the present session). + /// + /// This is the unique identifier generated by SRC system to track and link SRC messages. Available within the present checkout session (e.g. received in an earlier API response during the present session). + [DataMember(Name = "correlationId", EmitDefaultValue = false)] + public string CorrelationId { get; set; } + + /// + /// The [card verification code](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#card-security-code-cvc-cvv-cid). + /// + /// The [card verification code](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#card-security-code-cvc-cvv-cid). + [DataMember(Name = "cvc", EmitDefaultValue = false)] + public string Cvc { get; set; } + + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'mc'. + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'mc'. + [DataMember(Name = "digitalCardId", EmitDefaultValue = false)] + public string DigitalCardId { get; set; } + + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'visa'. + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'visa'. + [DataMember(Name = "tokenReference", EmitDefaultValue = false)] + public string TokenReference { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class SecureRemoteCommerceCheckoutData {\n"); + sb.Append(" CheckoutPayload: ").Append(CheckoutPayload).Append("\n"); + sb.Append(" CorrelationId: ").Append(CorrelationId).Append("\n"); + sb.Append(" Cvc: ").Append(Cvc).Append("\n"); + sb.Append(" DigitalCardId: ").Append(DigitalCardId).Append("\n"); + sb.Append(" Scheme: ").Append(Scheme).Append("\n"); + sb.Append(" TokenReference: ").Append(TokenReference).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as SecureRemoteCommerceCheckoutData); + } + + /// + /// Returns true if SecureRemoteCommerceCheckoutData instances are equal + /// + /// Instance of SecureRemoteCommerceCheckoutData to be compared + /// Boolean + public bool Equals(SecureRemoteCommerceCheckoutData input) + { + if (input == null) + { + return false; + } + return + ( + this.CheckoutPayload == input.CheckoutPayload || + (this.CheckoutPayload != null && + this.CheckoutPayload.Equals(input.CheckoutPayload)) + ) && + ( + this.CorrelationId == input.CorrelationId || + (this.CorrelationId != null && + this.CorrelationId.Equals(input.CorrelationId)) + ) && + ( + this.Cvc == input.Cvc || + (this.Cvc != null && + this.Cvc.Equals(input.Cvc)) + ) && + ( + this.DigitalCardId == input.DigitalCardId || + (this.DigitalCardId != null && + this.DigitalCardId.Equals(input.DigitalCardId)) + ) && + ( + this.Scheme == input.Scheme || + this.Scheme.Equals(input.Scheme) + ) && + ( + this.TokenReference == input.TokenReference || + (this.TokenReference != null && + this.TokenReference.Equals(input.TokenReference)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.CheckoutPayload != null) + { + hashCode = (hashCode * 59) + this.CheckoutPayload.GetHashCode(); + } + if (this.CorrelationId != null) + { + hashCode = (hashCode * 59) + this.CorrelationId.GetHashCode(); + } + if (this.Cvc != null) + { + hashCode = (hashCode * 59) + this.Cvc.GetHashCode(); + } + if (this.DigitalCardId != null) + { + hashCode = (hashCode * 59) + this.DigitalCardId.GetHashCode(); + } + hashCode = (hashCode * 59) + this.Scheme.GetHashCode(); + if (this.TokenReference != null) + { + hashCode = (hashCode * 59) + this.TokenReference.GetHashCode(); + } + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + // CheckoutPayload (string) maxLength + if (this.CheckoutPayload != null && this.CheckoutPayload.Length > 10000) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for CheckoutPayload, length must be less than 10000.", new [] { "CheckoutPayload" }); + } + + // CorrelationId (string) maxLength + if (this.CorrelationId != null && this.CorrelationId.Length > 40) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for CorrelationId, length must be less than 40.", new [] { "CorrelationId" }); + } + + // CorrelationId (string) minLength + if (this.CorrelationId != null && this.CorrelationId.Length < 1) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for CorrelationId, length must be greater than 1.", new [] { "CorrelationId" }); + } + + // Cvc (string) maxLength + if (this.Cvc != null && this.Cvc.Length > 20) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Cvc, length must be less than 20.", new [] { "Cvc" }); + } + + // Cvc (string) minLength + if (this.Cvc != null && this.Cvc.Length < 1) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Cvc, length must be greater than 1.", new [] { "Cvc" }); + } + + // DigitalCardId (string) maxLength + if (this.DigitalCardId != null && this.DigitalCardId.Length > 80) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for DigitalCardId, length must be less than 80.", new [] { "DigitalCardId" }); + } + + // TokenReference (string) maxLength + if (this.TokenReference != null && this.TokenReference.Length > 80) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for TokenReference, length must be less than 80.", new [] { "TokenReference" }); + } + + yield break; + } + } + +} diff --git a/Adyen/Model/Checkout/SubMerchantInfo.cs b/Adyen/Model/Checkout/SubMerchantInfo.cs index 59ee9a815..0d176f8c7 100644 --- a/Adyen/Model/Checkout/SubMerchantInfo.cs +++ b/Adyen/Model/Checkout/SubMerchantInfo.cs @@ -36,19 +36,27 @@ public partial class SubMerchantInfo : IEquatable, IValidatable /// Initializes a new instance of the class. /// /// address. + /// amount. + /// email. /// id. /// mcc. /// name. + /// phoneNumber. /// registeredSince. /// taxId. - public SubMerchantInfo(BillingAddress address = default(BillingAddress), string id = default(string), string mcc = default(string), string name = default(string), string registeredSince = default(string), string taxId = default(string)) + /// url. + public SubMerchantInfo(BillingAddress address = default(BillingAddress), Amount amount = default(Amount), string email = default(string), string id = default(string), string mcc = default(string), string name = default(string), string phoneNumber = default(string), string registeredSince = default(string), string taxId = default(string), string url = default(string)) { this.Address = address; + this.Amount = amount; + this.Email = email; this.Id = id; this.Mcc = mcc; this.Name = name; + this.PhoneNumber = phoneNumber; this.RegisteredSince = registeredSince; this.TaxId = taxId; + this.Url = url; } /// @@ -57,6 +65,18 @@ public partial class SubMerchantInfo : IEquatable, IValidatable [DataMember(Name = "address", EmitDefaultValue = false)] public BillingAddress Address { get; set; } + /// + /// Gets or Sets Amount + /// + [DataMember(Name = "amount", EmitDefaultValue = false)] + public Amount Amount { get; set; } + + /// + /// Gets or Sets Email + /// + [DataMember(Name = "email", EmitDefaultValue = false)] + public string Email { get; set; } + /// /// Gets or Sets Id /// @@ -75,6 +95,12 @@ public partial class SubMerchantInfo : IEquatable, IValidatable [DataMember(Name = "name", EmitDefaultValue = false)] public string Name { get; set; } + /// + /// Gets or Sets PhoneNumber + /// + [DataMember(Name = "phoneNumber", EmitDefaultValue = false)] + public string PhoneNumber { get; set; } + /// /// Gets or Sets RegisteredSince /// @@ -87,6 +113,12 @@ public partial class SubMerchantInfo : IEquatable, IValidatable [DataMember(Name = "taxId", EmitDefaultValue = false)] public string TaxId { get; set; } + /// + /// Gets or Sets Url + /// + [DataMember(Name = "url", EmitDefaultValue = false)] + public string Url { get; set; } + /// /// Returns the string presentation of the object /// @@ -96,11 +128,15 @@ public override string ToString() StringBuilder sb = new StringBuilder(); sb.Append("class SubMerchantInfo {\n"); sb.Append(" Address: ").Append(Address).Append("\n"); + sb.Append(" Amount: ").Append(Amount).Append("\n"); + sb.Append(" Email: ").Append(Email).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Mcc: ").Append(Mcc).Append("\n"); sb.Append(" Name: ").Append(Name).Append("\n"); + sb.Append(" PhoneNumber: ").Append(PhoneNumber).Append("\n"); sb.Append(" RegisteredSince: ").Append(RegisteredSince).Append("\n"); sb.Append(" TaxId: ").Append(TaxId).Append("\n"); + sb.Append(" Url: ").Append(Url).Append("\n"); sb.Append("}\n"); return sb.ToString(); } @@ -141,6 +177,16 @@ public bool Equals(SubMerchantInfo input) (this.Address != null && this.Address.Equals(input.Address)) ) && + ( + this.Amount == input.Amount || + (this.Amount != null && + this.Amount.Equals(input.Amount)) + ) && + ( + this.Email == input.Email || + (this.Email != null && + this.Email.Equals(input.Email)) + ) && ( this.Id == input.Id || (this.Id != null && @@ -156,6 +202,11 @@ public bool Equals(SubMerchantInfo input) (this.Name != null && this.Name.Equals(input.Name)) ) && + ( + this.PhoneNumber == input.PhoneNumber || + (this.PhoneNumber != null && + this.PhoneNumber.Equals(input.PhoneNumber)) + ) && ( this.RegisteredSince == input.RegisteredSince || (this.RegisteredSince != null && @@ -165,6 +216,11 @@ public bool Equals(SubMerchantInfo input) this.TaxId == input.TaxId || (this.TaxId != null && this.TaxId.Equals(input.TaxId)) + ) && + ( + this.Url == input.Url || + (this.Url != null && + this.Url.Equals(input.Url)) ); } @@ -181,6 +237,14 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.Address.GetHashCode(); } + if (this.Amount != null) + { + hashCode = (hashCode * 59) + this.Amount.GetHashCode(); + } + if (this.Email != null) + { + hashCode = (hashCode * 59) + this.Email.GetHashCode(); + } if (this.Id != null) { hashCode = (hashCode * 59) + this.Id.GetHashCode(); @@ -193,6 +257,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.Name.GetHashCode(); } + if (this.PhoneNumber != null) + { + hashCode = (hashCode * 59) + this.PhoneNumber.GetHashCode(); + } if (this.RegisteredSince != null) { hashCode = (hashCode * 59) + this.RegisteredSince.GetHashCode(); @@ -201,6 +269,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.TaxId.GetHashCode(); } + if (this.Url != null) + { + hashCode = (hashCode * 59) + this.Url.GetHashCode(); + } return hashCode; } } @@ -211,6 +283,24 @@ public override int GetHashCode() /// Validation Result public IEnumerable Validate(ValidationContext validationContext) { + // Email (string) maxLength + if (this.Email != null && this.Email.Length > 320) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Email, length must be less than 320.", new [] { "Email" }); + } + + // PhoneNumber (string) maxLength + if (this.PhoneNumber != null && this.PhoneNumber.Length > 20) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for PhoneNumber, length must be less than 20.", new [] { "PhoneNumber" }); + } + + // Url (string) maxLength + if (this.Url != null && this.Url.Length > 320) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Url, length must be less than 320.", new [] { "Url" }); + } + yield break; } } diff --git a/Adyen/Model/ConfigurationWebhooks/AccountHolder.cs b/Adyen/Model/ConfigurationWebhooks/AccountHolder.cs index eeb770c47..cf1c70d19 100644 --- a/Adyen/Model/ConfigurationWebhooks/AccountHolder.cs +++ b/Adyen/Model/ConfigurationWebhooks/AccountHolder.cs @@ -122,6 +122,7 @@ protected AccountHolder() { } /// Gets or Sets ContactDetails /// [DataMember(Name = "contactDetails", EmitDefaultValue = false)] + [Obsolete] public ContactDetails ContactDetails { get; set; } /// diff --git a/Adyen/Model/ConfigurationWebhooks/BalancePlatformNotificationResponse.cs b/Adyen/Model/ConfigurationWebhooks/BalancePlatformNotificationResponse.cs index 7973a2353..0c6b76257 100644 --- a/Adyen/Model/ConfigurationWebhooks/BalancePlatformNotificationResponse.cs +++ b/Adyen/Model/ConfigurationWebhooks/BalancePlatformNotificationResponse.cs @@ -35,16 +35,16 @@ public partial class BalancePlatformNotificationResponse : IEquatable /// Initializes a new instance of the class. /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. public BalancePlatformNotificationResponse(string notificationResponse = default(string)) { this.NotificationResponse = notificationResponse; } /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). [DataMember(Name = "notificationResponse", EmitDefaultValue = false)] public string NotificationResponse { get; set; } diff --git a/Adyen/Model/ConfigurationWebhooks/PaymentInstrument.cs b/Adyen/Model/ConfigurationWebhooks/PaymentInstrument.cs index ae165ac55..78da768cd 100644 --- a/Adyen/Model/ConfigurationWebhooks/PaymentInstrument.cs +++ b/Adyen/Model/ConfigurationWebhooks/PaymentInstrument.cs @@ -188,9 +188,10 @@ protected PaymentInstrument() { } /// The unique identifier of the [payment instrument group](https://docs.adyen.com/api-explorer/#/balanceplatform/v1/post/paymentInstrumentGroups__resParam_id) to which the payment instrument belongs.. /// Your reference for the payment instrument, maximum 150 characters.. /// The status of the payment instrument. If a status is not specified when creating a payment instrument, it is set to **active** by default. However, there can be exceptions for cards based on the `card.formFactor` and the `issuingCountryCode`. For example, when issuing physical cards in the US, the default status is **inactive**. Possible values: * **active**: The payment instrument is active and can be used to make payments. * **inactive**: The payment instrument is inactive and cannot be used to make payments. * **suspended**: The payment instrument is suspended, either because it was stolen or lost. * **closed**: The payment instrument is permanently closed. This action cannot be undone. . + /// The status comment provides additional information for the statusReason of the payment instrument.. /// The reason for the status of the payment instrument. Possible values: **accountClosure**, **damaged**, **endOfLife**, **expired**, **lost**, **stolen**, **suspectedFraud**, **transactionRule**, **other**. If the reason is **other**, you must also send the `statusComment` parameter describing the status change.. /// Type of payment instrument. Possible value: **card**, **bankAccount**. (required). - public PaymentInstrument(List additionalBankAccountIdentifications = default(List), string balanceAccountId = default(string), BankAccountDetails bankAccount = default(BankAccountDetails), Card card = default(Card), string description = default(string), string id = default(string), string issuingCountryCode = default(string), string paymentInstrumentGroupId = default(string), string reference = default(string), StatusEnum? status = default(StatusEnum?), StatusReasonEnum? statusReason = default(StatusReasonEnum?), TypeEnum type = default(TypeEnum)) + public PaymentInstrument(List additionalBankAccountIdentifications = default(List), string balanceAccountId = default(string), BankAccountDetails bankAccount = default(BankAccountDetails), Card card = default(Card), string description = default(string), string id = default(string), string issuingCountryCode = default(string), string paymentInstrumentGroupId = default(string), string reference = default(string), StatusEnum? status = default(StatusEnum?), string statusComment = default(string), StatusReasonEnum? statusReason = default(StatusReasonEnum?), TypeEnum type = default(TypeEnum)) { this.BalanceAccountId = balanceAccountId; this.Id = id; @@ -203,6 +204,7 @@ protected PaymentInstrument() { } this.PaymentInstrumentGroupId = paymentInstrumentGroupId; this.Reference = reference; this.Status = status; + this.StatusComment = statusComment; this.StatusReason = statusReason; } @@ -268,6 +270,13 @@ protected PaymentInstrument() { } [DataMember(Name = "reference", EmitDefaultValue = false)] public string Reference { get; set; } + /// + /// The status comment provides additional information for the statusReason of the payment instrument. + /// + /// The status comment provides additional information for the statusReason of the payment instrument. + [DataMember(Name = "statusComment", EmitDefaultValue = false)] + public string StatusComment { get; set; } + /// /// Returns the string presentation of the object /// @@ -286,6 +295,7 @@ public override string ToString() sb.Append(" PaymentInstrumentGroupId: ").Append(PaymentInstrumentGroupId).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); sb.Append(" Status: ").Append(Status).Append("\n"); + sb.Append(" StatusComment: ").Append(StatusComment).Append("\n"); sb.Append(" StatusReason: ").Append(StatusReason).Append("\n"); sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append("}\n"); @@ -373,6 +383,11 @@ public bool Equals(PaymentInstrument input) this.Status == input.Status || this.Status.Equals(input.Status) ) && + ( + this.StatusComment == input.StatusComment || + (this.StatusComment != null && + this.StatusComment.Equals(input.StatusComment)) + ) && ( this.StatusReason == input.StatusReason || this.StatusReason.Equals(input.StatusReason) @@ -429,6 +444,10 @@ public override int GetHashCode() hashCode = (hashCode * 59) + this.Reference.GetHashCode(); } hashCode = (hashCode * 59) + this.Status.GetHashCode(); + if (this.StatusComment != null) + { + hashCode = (hashCode * 59) + this.StatusComment.GetHashCode(); + } hashCode = (hashCode * 59) + this.StatusReason.GetHashCode(); hashCode = (hashCode * 59) + this.Type.GetHashCode(); return hashCode; diff --git a/Adyen/Model/ConfigurationWebhooks/SweepConfigurationV2.cs b/Adyen/Model/ConfigurationWebhooks/SweepConfigurationV2.cs index d52bfda46..cb49caebf 100644 --- a/Adyen/Model/ConfigurationWebhooks/SweepConfigurationV2.cs +++ b/Adyen/Model/ConfigurationWebhooks/SweepConfigurationV2.cs @@ -113,9 +113,9 @@ public enum PrioritiesEnum /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). /// - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup). [DataMember(Name = "priorities", EmitDefaultValue = false)] public List Priorities { get; set; } /// @@ -179,53 +179,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -305,7 +311,7 @@ protected SweepConfigurationV2() { } /// The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes) in uppercase. For example, **EUR**. The sweep currency must match any of the [balances currencies](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/get/balanceAccounts/{id}__resParam_balances). (required). /// The message that will be used in the sweep transfer's description body with a maximum length of 140 characters. If the message is longer after replacing placeholders, the message will be cut off at 140 characters.. /// The unique identifier of the sweep. (required). - /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. + /// The list of priorities for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. You can provide multiple priorities. Adyen will try to pay out using the priority you list first. If that's not possible, it moves on to the next option in the order of your provided priorities. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). Set `category` to **bank**. For more details, see optional priorities setup for [marketplaces](https://docs.adyen.com/marketplaces/payout-to-users/scheduled-payouts#optional-priorities-setup) or [platforms](https://docs.adyen.com/platforms/payout-to-users/scheduled-payouts#optional-priorities-setup).. /// The reason for disabling the sweep.. /// Your reference for the sweep configuration.. /// The reference sent to or received from the counterparty. Only alphanumeric characters are allowed.. diff --git a/Adyen/Model/ConfigurationWebhooks/SweepCounterparty.cs b/Adyen/Model/ConfigurationWebhooks/SweepCounterparty.cs index 30d5bf78d..386b8e8d4 100644 --- a/Adyen/Model/ConfigurationWebhooks/SweepCounterparty.cs +++ b/Adyen/Model/ConfigurationWebhooks/SweepCounterparty.cs @@ -35,9 +35,9 @@ public partial class SweepCounterparty : IEquatable, IValidat /// /// Initializes a new instance of the class. /// - /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**.. - /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and `schedule.type` **balance**, and if you are processing payments with Adyen.. - /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type`. To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.. + /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). > If you are updating the counterparty from a transfer instrument to a balance account, set `transferInstrumentId` to **null**.. + /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and if you are processing payments with Adyen.. + /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type` . To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.> If you are updating the counterparty from a balance account to a transfer instrument, set `balanceAccountId` to **null**.. public SweepCounterparty(string balanceAccountId = default(string), string merchantAccount = default(string), string transferInstrumentId = default(string)) { this.BalanceAccountId = balanceAccountId; @@ -46,23 +46,23 @@ public partial class SweepCounterparty : IEquatable, IValidat } /// - /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**. + /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). > If you are updating the counterparty from a transfer instrument to a balance account, set `transferInstrumentId` to **null**. /// - /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). You can only use this for periodic sweep schedules such as `schedule.type` **daily** or **monthly**. + /// The unique identifier of the destination or source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). > If you are updating the counterparty from a transfer instrument to a balance account, set `transferInstrumentId` to **null**. [DataMember(Name = "balanceAccountId", EmitDefaultValue = false)] public string BalanceAccountId { get; set; } /// - /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and `schedule.type` **balance**, and if you are processing payments with Adyen. + /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and if you are processing payments with Adyen. /// - /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and `schedule.type` **balance**, and if you are processing payments with Adyen. + /// The merchant account that will be the source of funds. You can only use this parameter with sweeps of `type` **pull** and if you are processing payments with Adyen. [DataMember(Name = "merchantAccount", EmitDefaultValue = false)] public string MerchantAccount { get; set; } /// - /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type`. To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature. + /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type` . To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.> If you are updating the counterparty from a balance account to a transfer instrument, set `balanceAccountId` to **null**. /// - /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type`. To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature. + /// The unique identifier of the destination or source [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments#responses-200-id) depending on the sweep `type` . To set up automated top-up sweeps to balance accounts in your [marketplace](https://docs.adyen.com/marketplaces/top-up-balance-account/#before-you-begin) or [platform](https://docs.adyen.com/platforms/top-up-balance-account/#before-you-begin), use this parameter in combination with a `merchantAccount` and a sweep `type` of **pull**. Top-up sweeps start a direct debit request from the source transfer instrument. Contact Adyen Support to enable this feature.> If you are updating the counterparty from a balance account to a transfer instrument, set `balanceAccountId` to **null**. [DataMember(Name = "transferInstrumentId", EmitDefaultValue = false)] public string TransferInstrumentId { get; set; } diff --git a/Adyen/Model/ConfigurationWebhooks/SweepSchedule.cs b/Adyen/Model/ConfigurationWebhooks/SweepSchedule.cs index 22534d4da..b589b81fd 100644 --- a/Adyen/Model/ConfigurationWebhooks/SweepSchedule.cs +++ b/Adyen/Model/ConfigurationWebhooks/SweepSchedule.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.ConfigurationWebhooks public partial class SweepSchedule : IEquatable, IValidatableObject { /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. [JsonConverter(typeof(StringEnumConverter))] public enum TypeEnum { @@ -73,9 +73,9 @@ public enum TypeEnum /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. /// - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. [DataMember(Name = "type", IsRequired = false, EmitDefaultValue = false)] public TypeEnum Type { get; set; } /// @@ -87,7 +87,7 @@ protected SweepSchedule() { } /// Initializes a new instance of the class. /// /// A [cron expression](https://en.wikipedia.org/wiki/Cron#CRON_expression) that is used to set the sweep schedule. The schedule uses the time zone of the balance account. For example, **30 17 * * MON** schedules a sweep every Monday at 17:30. The expression must have five values separated by a single space in the following order: * Minute: **0-59** * Hour: **0-23** * Day of the month: **1-31** * Month: **1-12** or **JAN-DEC** * Day of the week: **0-7** (0 and 7 are Sunday) or **MON-SUN**. The following non-standard characters are supported: **&ast;**, **L**, **#**, **W** and **_/_**. See [crontab guru](https://crontab.guru/) for more examples. Required when `type` is **cron**. . - /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: pull in funds instantly if the balance is less than or equal to the `triggerAmount`. You can only use this for sweeps of `type` **pull** and when the source is a `merchantAccount` or `transferInstrument`. If the source is transferInstrument, merchant account identifier is still required, with which you want to process the transaction. (required). + /// The schedule type. Possible values: * **cron**: push out funds based on a `cronExpression`. * **daily**: push out funds daily at 07:00 AM CET. * **weekly**: push out funds every Monday at 07:00 AM CET. * **monthly**: push out funds every first of the month at 07:00 AM CET. * **balance**: execute the sweep instantly if the `triggerAmount` is reached. (required). public SweepSchedule(string cronExpression = default(string), TypeEnum type = default(TypeEnum)) { this.Type = type; diff --git a/Adyen/Model/Management/AndroidApp.cs b/Adyen/Model/Management/AndroidApp.cs index 4bde7f009..d87808fe0 100644 --- a/Adyen/Model/Management/AndroidApp.cs +++ b/Adyen/Model/Management/AndroidApp.cs @@ -41,19 +41,21 @@ protected AndroidApp() { } /// Initializes a new instance of the class. /// /// The description that was provided when uploading the app. The description is not shown on the terminal.. - /// The error code of the app. It exists if the status is error or invalid.. + /// The error code of the Android app with the `status` of either **error** or **invalid**.. + /// The list of errors of the Android app.. /// The unique identifier of the app. (required). /// The app name that is shown on the terminal.. /// The package name that uniquely identifies the Android app.. /// The status of the app. Possible values: * `processing`: the app is being signed and converted to a format that the terminal can handle. * `error`: something went wrong. Check that the app matches the [requirements](https://docs.adyen.com/point-of-sale/android-terminals/app-requirements). * `invalid`: there is something wrong with the APK file of the app. * `ready`: the app has been signed and converted. * `archived`: the app is no longer available. (required). /// The version number of the app.. /// The app version number that is shown on the terminal.. - public AndroidApp(string description = default(string), string errorCode = default(string), string id = default(string), string label = default(string), string packageName = default(string), string status = default(string), int? versionCode = default(int?), string versionName = default(string)) + public AndroidApp(string description = default(string), string errorCode = default(string), List errors = default(List), string id = default(string), string label = default(string), string packageName = default(string), string status = default(string), int? versionCode = default(int?), string versionName = default(string)) { this.Id = id; this.Status = status; this.Description = description; this.ErrorCode = errorCode; + this.Errors = errors; this.Label = label; this.PackageName = packageName; this.VersionCode = versionCode; @@ -68,12 +70,20 @@ protected AndroidApp() { } public string Description { get; set; } /// - /// The error code of the app. It exists if the status is error or invalid. + /// The error code of the Android app with the `status` of either **error** or **invalid**. /// - /// The error code of the app. It exists if the status is error or invalid. + /// The error code of the Android app with the `status` of either **error** or **invalid**. [DataMember(Name = "errorCode", EmitDefaultValue = false)] + [Obsolete] public string ErrorCode { get; set; } + /// + /// The list of errors of the Android app. + /// + /// The list of errors of the Android app. + [DataMember(Name = "errors", EmitDefaultValue = false)] + public List Errors { get; set; } + /// /// The unique identifier of the app. /// @@ -126,6 +136,7 @@ public override string ToString() sb.Append("class AndroidApp {\n"); sb.Append(" Description: ").Append(Description).Append("\n"); sb.Append(" ErrorCode: ").Append(ErrorCode).Append("\n"); + sb.Append(" Errors: ").Append(Errors).Append("\n"); sb.Append(" Id: ").Append(Id).Append("\n"); sb.Append(" Label: ").Append(Label).Append("\n"); sb.Append(" PackageName: ").Append(PackageName).Append("\n"); @@ -177,6 +188,12 @@ public bool Equals(AndroidApp input) (this.ErrorCode != null && this.ErrorCode.Equals(input.ErrorCode)) ) && + ( + this.Errors == input.Errors || + this.Errors != null && + input.Errors != null && + this.Errors.SequenceEqual(input.Errors) + ) && ( this.Id == input.Id || (this.Id != null && @@ -225,6 +242,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.ErrorCode.GetHashCode(); } + if (this.Errors != null) + { + hashCode = (hashCode * 59) + this.Errors.GetHashCode(); + } if (this.Id != null) { hashCode = (hashCode * 59) + this.Id.GetHashCode(); diff --git a/Adyen/Model/Management/AndroidAppError.cs b/Adyen/Model/Management/AndroidAppError.cs new file mode 100644 index 000000000..d9179e786 --- /dev/null +++ b/Adyen/Model/Management/AndroidAppError.cs @@ -0,0 +1,149 @@ +/* +* Management API +* +* +* The version of the OpenAPI document: 3 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.Management +{ + /// + /// AndroidAppError + /// + [DataContract(Name = "AndroidAppError")] + public partial class AndroidAppError : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// The error code of the Android app with the `status` of either **error** or **invalid**.. + /// The list of payment terminal models to which the returned `errorCode` applies.. + public AndroidAppError(string errorCode = default(string), List terminalModels = default(List)) + { + this.ErrorCode = errorCode; + this.TerminalModels = terminalModels; + } + + /// + /// The error code of the Android app with the `status` of either **error** or **invalid**. + /// + /// The error code of the Android app with the `status` of either **error** or **invalid**. + [DataMember(Name = "errorCode", EmitDefaultValue = false)] + public string ErrorCode { get; set; } + + /// + /// The list of payment terminal models to which the returned `errorCode` applies. + /// + /// The list of payment terminal models to which the returned `errorCode` applies. + [DataMember(Name = "terminalModels", EmitDefaultValue = false)] + public List TerminalModels { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class AndroidAppError {\n"); + sb.Append(" ErrorCode: ").Append(ErrorCode).Append("\n"); + sb.Append(" TerminalModels: ").Append(TerminalModels).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as AndroidAppError); + } + + /// + /// Returns true if AndroidAppError instances are equal + /// + /// Instance of AndroidAppError to be compared + /// Boolean + public bool Equals(AndroidAppError input) + { + if (input == null) + { + return false; + } + return + ( + this.ErrorCode == input.ErrorCode || + (this.ErrorCode != null && + this.ErrorCode.Equals(input.ErrorCode)) + ) && + ( + this.TerminalModels == input.TerminalModels || + this.TerminalModels != null && + input.TerminalModels != null && + this.TerminalModels.SequenceEqual(input.TerminalModels) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.ErrorCode != null) + { + hashCode = (hashCode * 59) + this.ErrorCode.GetHashCode(); + } + if (this.TerminalModels != null) + { + hashCode = (hashCode * 59) + this.TerminalModels.GetHashCode(); + } + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Adyen/Model/Management/BcmcInfo.cs b/Adyen/Model/Management/BcmcInfo.cs index e2df6c91c..d2cf58e52 100644 --- a/Adyen/Model/Management/BcmcInfo.cs +++ b/Adyen/Model/Management/BcmcInfo.cs @@ -36,11 +36,9 @@ public partial class BcmcInfo : IEquatable, IValidatableObject /// Initializes a new instance of the class. /// /// Indicates if [Bancontact mobile](https://docs.adyen.com/payment-methods/bancontact/bancontact-mobile) is enabled.. - /// transactionDescription. - public BcmcInfo(bool? enableBcmcMobile = default(bool?), TransactionDescriptionInfo transactionDescription = default(TransactionDescriptionInfo)) + public BcmcInfo(bool? enableBcmcMobile = default(bool?)) { this.EnableBcmcMobile = enableBcmcMobile; - this.TransactionDescription = transactionDescription; } /// @@ -50,12 +48,6 @@ public partial class BcmcInfo : IEquatable, IValidatableObject [DataMember(Name = "enableBcmcMobile", EmitDefaultValue = false)] public bool? EnableBcmcMobile { get; set; } - /// - /// Gets or Sets TransactionDescription - /// - [DataMember(Name = "transactionDescription", EmitDefaultValue = false)] - public TransactionDescriptionInfo TransactionDescription { get; set; } - /// /// Returns the string presentation of the object /// @@ -65,7 +57,6 @@ public override string ToString() StringBuilder sb = new StringBuilder(); sb.Append("class BcmcInfo {\n"); sb.Append(" EnableBcmcMobile: ").Append(EnableBcmcMobile).Append("\n"); - sb.Append(" TransactionDescription: ").Append(TransactionDescription).Append("\n"); sb.Append("}\n"); return sb.ToString(); } @@ -104,11 +95,6 @@ public bool Equals(BcmcInfo input) ( this.EnableBcmcMobile == input.EnableBcmcMobile || this.EnableBcmcMobile.Equals(input.EnableBcmcMobile) - ) && - ( - this.TransactionDescription == input.TransactionDescription || - (this.TransactionDescription != null && - this.TransactionDescription.Equals(input.TransactionDescription)) ); } @@ -122,10 +108,6 @@ public override int GetHashCode() { int hashCode = 41; hashCode = (hashCode * 59) + this.EnableBcmcMobile.GetHashCode(); - if (this.TransactionDescription != null) - { - hashCode = (hashCode * 59) + this.TransactionDescription.GetHashCode(); - } return hashCode; } } diff --git a/Adyen/Model/Payment/AdditionalDataAirline.cs b/Adyen/Model/Payment/AdditionalDataAirline.cs index ffc34ea71..a7b72dc0e 100644 --- a/Adyen/Model/Payment/AdditionalDataAirline.cs +++ b/Adyen/Model/Payment/AdditionalDataAirline.cs @@ -49,6 +49,7 @@ protected AdditionalDataAirline() { } /// The alphanumeric customer reference number. * Encoding: ASCII * maxLength: 20 characters * If you send more than 20 characters, the customer reference number is truncated * Must not be all spaces. /// A code that identifies the type of item bought. The description of the code can appear on credit card statements. * Encoding: ASCII * Example: Passenger ticket = 01 * minLength: 2 characters * maxLength: 2 characters. /// The flight departure date. Local time `(HH:mm)` is optional. * Date format: `yyyy-MM-dd` * Date and time format: `yyyy-MM-dd HH:mm` * minLength: 10 characters * maxLength: 16 characters. + /// The date that the ticket was issued to the passenger. * minLength: 6 characters * maxLength: 6 characters * Date format: YYMMDD. /// The [IATA](https://www.iata.org/services/pages/codes.aspx) 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details. * Example: KLM = KL * minLength: 2 characters * maxLength: 2 characters * Must not be all spaces *Must not be all zeros.. /// A one-letter travel class identifier. The following are common: * F: first class * J: business class * Y: economy class * W: premium economy * Encoding: ASCII * minLength: 1 character * maxLength: 1 character * Must not be all spaces *Must not be all zeros.. /// Date and time of travel in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format `yyyy-MM-dd HH:mm`. * Encoding: ASCII * minLength: 16 characters * maxLength: 16 characters. @@ -68,7 +69,7 @@ protected AdditionalDataAirline() { } /// The ticket's unique identifier. * minLength: 1 character * maxLength: 15 characters * Must not be all spaces *Must not be all zeros.. /// The unique identifier from IATA or ARC for the travel agency that issues the ticket. * Encoding: ASCII * minLength: 1 character * maxLength: 8 characters * Must not be all spaces *Must not be all zeros.. /// The name of the travel agency. * Encoding: ASCII * minLength: 1 character * maxLength: 25 characters * Must not be all spaces *Must not be all zeros.. - public AdditionalDataAirline(string airlineAgencyInvoiceNumber = default(string), string airlineAgencyPlanName = default(string), string airlineAirlineCode = default(string), string airlineAirlineDesignatorCode = default(string), string airlineBoardingFee = default(string), string airlineComputerizedReservationSystem = default(string), string airlineCustomerReferenceNumber = default(string), string airlineDocumentType = default(string), string airlineFlightDate = default(string), string airlineLegCarrierCode = default(string), string airlineLegClassOfTravel = default(string), string airlineLegDateOfTravel = default(string), string airlineLegDepartAirport = default(string), string airlineLegDepartTax = default(string), string airlineLegDestinationCode = default(string), string airlineLegFareBaseCode = default(string), string airlineLegFlightNumber = default(string), string airlineLegStopOverCode = default(string), string airlinePassengerDateOfBirth = default(string), string airlinePassengerFirstName = default(string), string airlinePassengerLastName = default(string), string airlinePassengerTelephoneNumber = default(string), string airlinePassengerTravellerType = default(string), string airlinePassengerName = default(string), string airlineTicketIssueAddress = default(string), string airlineTicketNumber = default(string), string airlineTravelAgencyCode = default(string), string airlineTravelAgencyName = default(string)) + public AdditionalDataAirline(string airlineAgencyInvoiceNumber = default(string), string airlineAgencyPlanName = default(string), string airlineAirlineCode = default(string), string airlineAirlineDesignatorCode = default(string), string airlineBoardingFee = default(string), string airlineComputerizedReservationSystem = default(string), string airlineCustomerReferenceNumber = default(string), string airlineDocumentType = default(string), string airlineFlightDate = default(string), string airlineIssueDate = default(string), string airlineLegCarrierCode = default(string), string airlineLegClassOfTravel = default(string), string airlineLegDateOfTravel = default(string), string airlineLegDepartAirport = default(string), string airlineLegDepartTax = default(string), string airlineLegDestinationCode = default(string), string airlineLegFareBaseCode = default(string), string airlineLegFlightNumber = default(string), string airlineLegStopOverCode = default(string), string airlinePassengerDateOfBirth = default(string), string airlinePassengerFirstName = default(string), string airlinePassengerLastName = default(string), string airlinePassengerTelephoneNumber = default(string), string airlinePassengerTravellerType = default(string), string airlinePassengerName = default(string), string airlineTicketIssueAddress = default(string), string airlineTicketNumber = default(string), string airlineTravelAgencyCode = default(string), string airlineTravelAgencyName = default(string)) { this.AirlinePassengerName = airlinePassengerName; this.AirlineAgencyInvoiceNumber = airlineAgencyInvoiceNumber; @@ -80,6 +81,7 @@ protected AdditionalDataAirline() { } this.AirlineCustomerReferenceNumber = airlineCustomerReferenceNumber; this.AirlineDocumentType = airlineDocumentType; this.AirlineFlightDate = airlineFlightDate; + this.AirlineIssueDate = airlineIssueDate; this.AirlineLegCarrierCode = airlineLegCarrierCode; this.AirlineLegClassOfTravel = airlineLegClassOfTravel; this.AirlineLegDateOfTravel = airlineLegDateOfTravel; @@ -163,6 +165,13 @@ protected AdditionalDataAirline() { } [DataMember(Name = "airline.flight_date", EmitDefaultValue = false)] public string AirlineFlightDate { get; set; } + /// + /// The date that the ticket was issued to the passenger. * minLength: 6 characters * maxLength: 6 characters * Date format: YYMMDD + /// + /// The date that the ticket was issued to the passenger. * minLength: 6 characters * maxLength: 6 characters * Date format: YYMMDD + [DataMember(Name = "airline.issue_date", EmitDefaultValue = false)] + public string AirlineIssueDate { get; set; } + /// /// The [IATA](https://www.iata.org/services/pages/codes.aspx) 2-letter accounting code (PAX) that identifies the carrier. This field is required if the airline data includes leg details. * Example: KLM = KL * minLength: 2 characters * maxLength: 2 characters * Must not be all spaces *Must not be all zeros. /// @@ -313,6 +322,7 @@ public override string ToString() sb.Append(" AirlineCustomerReferenceNumber: ").Append(AirlineCustomerReferenceNumber).Append("\n"); sb.Append(" AirlineDocumentType: ").Append(AirlineDocumentType).Append("\n"); sb.Append(" AirlineFlightDate: ").Append(AirlineFlightDate).Append("\n"); + sb.Append(" AirlineIssueDate: ").Append(AirlineIssueDate).Append("\n"); sb.Append(" AirlineLegCarrierCode: ").Append(AirlineLegCarrierCode).Append("\n"); sb.Append(" AirlineLegClassOfTravel: ").Append(AirlineLegClassOfTravel).Append("\n"); sb.Append(" AirlineLegDateOfTravel: ").Append(AirlineLegDateOfTravel).Append("\n"); @@ -412,6 +422,11 @@ public bool Equals(AdditionalDataAirline input) (this.AirlineFlightDate != null && this.AirlineFlightDate.Equals(input.AirlineFlightDate)) ) && + ( + this.AirlineIssueDate == input.AirlineIssueDate || + (this.AirlineIssueDate != null && + this.AirlineIssueDate.Equals(input.AirlineIssueDate)) + ) && ( this.AirlineLegCarrierCode == input.AirlineLegCarrierCode || (this.AirlineLegCarrierCode != null && @@ -554,6 +569,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.AirlineFlightDate.GetHashCode(); } + if (this.AirlineIssueDate != null) + { + hashCode = (hashCode * 59) + this.AirlineIssueDate.GetHashCode(); + } if (this.AirlineLegCarrierCode != null) { hashCode = (hashCode * 59) + this.AirlineLegCarrierCode.GetHashCode(); diff --git a/Adyen/Model/Payment/AdditionalDataLodging.cs b/Adyen/Model/Payment/AdditionalDataLodging.cs index e620bdca1..7c9055eca 100644 --- a/Adyen/Model/Payment/AdditionalDataLodging.cs +++ b/Adyen/Model/Payment/AdditionalDataLodging.cs @@ -35,6 +35,7 @@ public partial class AdditionalDataLodging : IEquatable, /// /// Initializes a new instance of the class. /// + /// A code that corresponds to the category of lodging charges for the payment. Possible values: * 1: Lodging * 2: No show reservation * 3: Advanced deposit. /// The arrival date. * Date format: **yyyyMmDd**. For example, for 2023 April 22, **20230422**.. /// The departure date. * Date format: **yyyyMmDd**. For example, for 2023 April 22, **20230422**.. /// The toll-free phone number for the lodging. * Format: numeric * Max length: 17 characters. * For US and CA numbers must be 10 characters in length * Must not start with a space * Must not contain any special characters such as + or - *Must not be all zeros.. @@ -51,8 +52,9 @@ public partial class AdditionalDataLodging : IEquatable, /// The total tax amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes). * Format: numeric * Max length: 12 characters * Must not be a negative number. /// The number of nights. This should be included in the auth message. * Format: numeric * Max length: 4 characters. /// Indicates what market-specific dataset will be submitted. Must be 'H' for Hotel. This should be included in the auth message. * Format: alphanumeric * Max length: 1 character. - public AdditionalDataLodging(string lodgingCheckInDate = default(string), string lodgingCheckOutDate = default(string), string lodgingCustomerServiceTollFreeNumber = default(string), string lodgingFireSafetyActIndicator = default(string), string lodgingFolioCashAdvances = default(string), string lodgingFolioNumber = default(string), string lodgingFoodBeverageCharges = default(string), string lodgingNoShowIndicator = default(string), string lodgingPrepaidExpenses = default(string), string lodgingPropertyPhoneNumber = default(string), string lodgingRoom1NumberOfNights = default(string), string lodgingRoom1Rate = default(string), string lodgingTotalRoomTax = default(string), string lodgingTotalTax = default(string), string travelEntertainmentAuthDataDuration = default(string), string travelEntertainmentAuthDataMarket = default(string)) + public AdditionalDataLodging(string lodgingSpecialProgramCode = default(string), string lodgingCheckInDate = default(string), string lodgingCheckOutDate = default(string), string lodgingCustomerServiceTollFreeNumber = default(string), string lodgingFireSafetyActIndicator = default(string), string lodgingFolioCashAdvances = default(string), string lodgingFolioNumber = default(string), string lodgingFoodBeverageCharges = default(string), string lodgingNoShowIndicator = default(string), string lodgingPrepaidExpenses = default(string), string lodgingPropertyPhoneNumber = default(string), string lodgingRoom1NumberOfNights = default(string), string lodgingRoom1Rate = default(string), string lodgingTotalRoomTax = default(string), string lodgingTotalTax = default(string), string travelEntertainmentAuthDataDuration = default(string), string travelEntertainmentAuthDataMarket = default(string)) { + this.LodgingSpecialProgramCode = lodgingSpecialProgramCode; this.LodgingCheckInDate = lodgingCheckInDate; this.LodgingCheckOutDate = lodgingCheckOutDate; this.LodgingCustomerServiceTollFreeNumber = lodgingCustomerServiceTollFreeNumber; @@ -71,6 +73,13 @@ public partial class AdditionalDataLodging : IEquatable, this.TravelEntertainmentAuthDataMarket = travelEntertainmentAuthDataMarket; } + /// + /// A code that corresponds to the category of lodging charges for the payment. Possible values: * 1: Lodging * 2: No show reservation * 3: Advanced deposit + /// + /// A code that corresponds to the category of lodging charges for the payment. Possible values: * 1: Lodging * 2: No show reservation * 3: Advanced deposit + [DataMember(Name = "lodging.SpecialProgramCode", EmitDefaultValue = false)] + public string LodgingSpecialProgramCode { get; set; } + /// /// The arrival date. * Date format: **yyyyMmDd**. For example, for 2023 April 22, **20230422**. /// @@ -191,6 +200,7 @@ public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append("class AdditionalDataLodging {\n"); + sb.Append(" LodgingSpecialProgramCode: ").Append(LodgingSpecialProgramCode).Append("\n"); sb.Append(" LodgingCheckInDate: ").Append(LodgingCheckInDate).Append("\n"); sb.Append(" LodgingCheckOutDate: ").Append(LodgingCheckOutDate).Append("\n"); sb.Append(" LodgingCustomerServiceTollFreeNumber: ").Append(LodgingCustomerServiceTollFreeNumber).Append("\n"); @@ -242,6 +252,11 @@ public bool Equals(AdditionalDataLodging input) return false; } return + ( + this.LodgingSpecialProgramCode == input.LodgingSpecialProgramCode || + (this.LodgingSpecialProgramCode != null && + this.LodgingSpecialProgramCode.Equals(input.LodgingSpecialProgramCode)) + ) && ( this.LodgingCheckInDate == input.LodgingCheckInDate || (this.LodgingCheckInDate != null && @@ -333,6 +348,10 @@ public override int GetHashCode() unchecked // Overflow is fine, just wrap { int hashCode = 41; + if (this.LodgingSpecialProgramCode != null) + { + hashCode = (hashCode * 59) + this.LodgingSpecialProgramCode.GetHashCode(); + } if (this.LodgingCheckInDate != null) { hashCode = (hashCode * 59) + this.LodgingCheckInDate.GetHashCode(); diff --git a/Adyen/Model/Payment/AdditionalDataRiskStandalone.cs b/Adyen/Model/Payment/AdditionalDataRiskStandalone.cs index 35c39934c..3738bf22b 100644 --- a/Adyen/Model/Payment/AdditionalDataRiskStandalone.cs +++ b/Adyen/Model/Payment/AdditionalDataRiskStandalone.cs @@ -44,7 +44,7 @@ public partial class AdditionalDataRiskStandalone : IEquatableAllowed values: * **Eligible** — Merchant is protected by PayPal's Seller Protection Policy for Unauthorized Payments and Item Not Received. * **PartiallyEligible** — Merchant is protected by PayPal's Seller Protection Policy for Item Not Received. * **Ineligible** — Merchant is not protected under the Seller Protection Policy.. /// Unique transaction ID of the payment.. /// Raw AVS result received from the acquirer, where available. Example: D. - /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request).. + /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/online-payments/tokenization).. /// Raw CVC result received from the acquirer, where available. Example: 1. /// Unique identifier or token for the shopper's card details.. /// A Boolean value indicating whether 3DS authentication was completed on this payment. Example: true. @@ -133,9 +133,9 @@ public partial class AdditionalDataRiskStandalone : IEquatable - /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request). + /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/online-payments/tokenization). /// - /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/risk-management/standalone-risk#tokenised-pan-request). + /// The Bank Identification Number of a credit card, which is the first six digits of a card number. Required for [tokenized card request](https://docs.adyen.com/online-payments/tokenization). [DataMember(Name = "bin", EmitDefaultValue = false)] public string Bin { get; set; } diff --git a/Adyen/Model/Payment/PaymentRequest.cs b/Adyen/Model/Payment/PaymentRequest.cs index 62c656439..047a7d66f 100644 --- a/Adyen/Model/Payment/PaymentRequest.cs +++ b/Adyen/Model/Payment/PaymentRequest.cs @@ -205,6 +205,7 @@ protected PaymentRequest() { } /// recurring. /// Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder's balance drops below a certain amount. . /// The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. We recommend using a unique value per payment; however, it is not a requirement. If you need to provide multiple references for a transaction, separate them with hyphens (\"-\"). Maximum length: 80 characters. (required). + /// secureRemoteCommerceCheckoutData. /// Some payment methods require defining a value for this field to specify how to process the transaction. For the Bancontact payment method, it can be set to: * `maestro` (default), to be processed like a Maestro card, or * `bcmc`, to be processed like a Bancontact card.. /// The `recurringDetailReference` you want to use for this payment. The value `LATEST` can be used to select the most recently stored recurring detail.. /// A session ID used to identify a payment session.. @@ -223,7 +224,7 @@ protected PaymentRequest() { } /// If set to true, you will only perform the [3D Secure 2 authentication](https://docs.adyen.com/online-payments/3d-secure/other-3ds-flows/authentication-only), and not the payment authorisation. (default to false). /// The reference value to aggregate sales totals in reporting. When not specified, the store field is used (if available).. /// Set to true if the payment should be routed to a trusted MID.. - public PaymentRequest(AccountInfo accountInfo = default(AccountInfo), Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), BankAccount bankAccount = default(BankAccount), Address billingAddress = default(Address), BrowserInfo browserInfo = default(BrowserInfo), int? captureDelayHours = default(int?), Card card = default(Card), DateTime dateOfBirth = default(DateTime), ForexQuote dccQuote = default(ForexQuote), Address deliveryAddress = default(Address), DateTime deliveryDate = default(DateTime), string deviceFingerprint = default(string), EntityTypeEnum? entityType = default(EntityTypeEnum?), int? fraudOffset = default(int?), FundDestination fundDestination = default(FundDestination), FundSource fundSource = default(FundSource), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), Installments installments = default(Installments), Dictionary localizedShopperStatement = default(Dictionary), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), MerchantRiskIndicator merchantRiskIndicator = default(MerchantRiskIndicator), Dictionary metadata = default(Dictionary), ThreeDSecureData mpiData = default(ThreeDSecureData), string nationality = default(string), string orderReference = default(string), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), Recurring recurring = default(Recurring), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string reference = default(string), string selectedBrand = default(string), string selectedRecurringDetailReference = default(string), string sessionId = default(string), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), string socialSecurityNumber = default(string), List splits = default(List), string store = default(string), string telephoneNumber = default(string), ThreeDS2RequestData threeDS2RequestData = default(ThreeDS2RequestData), bool? threeDSAuthenticationOnly = false, string totalsGroup = default(string), bool? trustedShopper = default(bool?)) + public PaymentRequest(AccountInfo accountInfo = default(AccountInfo), Amount additionalAmount = default(Amount), Dictionary additionalData = default(Dictionary), Amount amount = default(Amount), ApplicationInfo applicationInfo = default(ApplicationInfo), BankAccount bankAccount = default(BankAccount), Address billingAddress = default(Address), BrowserInfo browserInfo = default(BrowserInfo), int? captureDelayHours = default(int?), Card card = default(Card), DateTime dateOfBirth = default(DateTime), ForexQuote dccQuote = default(ForexQuote), Address deliveryAddress = default(Address), DateTime deliveryDate = default(DateTime), string deviceFingerprint = default(string), EntityTypeEnum? entityType = default(EntityTypeEnum?), int? fraudOffset = default(int?), FundDestination fundDestination = default(FundDestination), FundSource fundSource = default(FundSource), FundingSourceEnum? fundingSource = default(FundingSourceEnum?), Installments installments = default(Installments), Dictionary localizedShopperStatement = default(Dictionary), Mandate mandate = default(Mandate), string mcc = default(string), string merchantAccount = default(string), string merchantOrderReference = default(string), MerchantRiskIndicator merchantRiskIndicator = default(MerchantRiskIndicator), Dictionary metadata = default(Dictionary), ThreeDSecureData mpiData = default(ThreeDSecureData), string nationality = default(string), string orderReference = default(string), PlatformChargebackLogic platformChargebackLogic = default(PlatformChargebackLogic), Recurring recurring = default(Recurring), RecurringProcessingModelEnum? recurringProcessingModel = default(RecurringProcessingModelEnum?), string reference = default(string), SecureRemoteCommerceCheckoutData secureRemoteCommerceCheckoutData = default(SecureRemoteCommerceCheckoutData), string selectedBrand = default(string), string selectedRecurringDetailReference = default(string), string sessionId = default(string), string shopperEmail = default(string), string shopperIP = default(string), ShopperInteractionEnum? shopperInteraction = default(ShopperInteractionEnum?), string shopperLocale = default(string), Name shopperName = default(Name), string shopperReference = default(string), string shopperStatement = default(string), string socialSecurityNumber = default(string), List splits = default(List), string store = default(string), string telephoneNumber = default(string), ThreeDS2RequestData threeDS2RequestData = default(ThreeDS2RequestData), bool? threeDSAuthenticationOnly = false, string totalsGroup = default(string), bool? trustedShopper = default(bool?)) { this.Amount = amount; this.MerchantAccount = merchantAccount; @@ -260,6 +261,7 @@ protected PaymentRequest() { } this.PlatformChargebackLogic = platformChargebackLogic; this.Recurring = recurring; this.RecurringProcessingModel = recurringProcessingModel; + this.SecureRemoteCommerceCheckoutData = secureRemoteCommerceCheckoutData; this.SelectedBrand = selectedBrand; this.SelectedRecurringDetailReference = selectedRecurringDetailReference; this.SessionId = sessionId; @@ -487,6 +489,12 @@ protected PaymentRequest() { } [DataMember(Name = "reference", IsRequired = false, EmitDefaultValue = false)] public string Reference { get; set; } + /// + /// Gets or Sets SecureRemoteCommerceCheckoutData + /// + [DataMember(Name = "secureRemoteCommerceCheckoutData", EmitDefaultValue = false)] + public SecureRemoteCommerceCheckoutData SecureRemoteCommerceCheckoutData { get; set; } + /// /// Some payment methods require defining a value for this field to specify how to process the transaction. For the Bancontact payment method, it can be set to: * `maestro` (default), to be processed like a Maestro card, or * `bcmc`, to be processed like a Bancontact card. /// @@ -647,6 +655,7 @@ public override string ToString() sb.Append(" Recurring: ").Append(Recurring).Append("\n"); sb.Append(" RecurringProcessingModel: ").Append(RecurringProcessingModel).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); + sb.Append(" SecureRemoteCommerceCheckoutData: ").Append(SecureRemoteCommerceCheckoutData).Append("\n"); sb.Append(" SelectedBrand: ").Append(SelectedBrand).Append("\n"); sb.Append(" SelectedRecurringDetailReference: ").Append(SelectedRecurringDetailReference).Append("\n"); sb.Append(" SessionId: ").Append(SessionId).Append("\n"); @@ -873,6 +882,11 @@ public bool Equals(PaymentRequest input) (this.Reference != null && this.Reference.Equals(input.Reference)) ) && + ( + this.SecureRemoteCommerceCheckoutData == input.SecureRemoteCommerceCheckoutData || + (this.SecureRemoteCommerceCheckoutData != null && + this.SecureRemoteCommerceCheckoutData.Equals(input.SecureRemoteCommerceCheckoutData)) + ) && ( this.SelectedBrand == input.SelectedBrand || (this.SelectedBrand != null && @@ -1097,6 +1111,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.Reference.GetHashCode(); } + if (this.SecureRemoteCommerceCheckoutData != null) + { + hashCode = (hashCode * 59) + this.SecureRemoteCommerceCheckoutData.GetHashCode(); + } if (this.SelectedBrand != null) { hashCode = (hashCode * 59) + this.SelectedBrand.GetHashCode(); diff --git a/Adyen/Model/Payment/SecureRemoteCommerceCheckoutData.cs b/Adyen/Model/Payment/SecureRemoteCommerceCheckoutData.cs new file mode 100644 index 000000000..d6b098d59 --- /dev/null +++ b/Adyen/Model/Payment/SecureRemoteCommerceCheckoutData.cs @@ -0,0 +1,283 @@ +/* +* Adyen Payment API +* +* +* The version of the OpenAPI document: 68 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.Payment +{ + /// + /// SecureRemoteCommerceCheckoutData + /// + [DataContract(Name = "SecureRemoteCommerceCheckoutData")] + public partial class SecureRemoteCommerceCheckoutData : IEquatable, IValidatableObject + { + /// + /// The Secure Remote Commerce scheme. + /// + /// The Secure Remote Commerce scheme. + [JsonConverter(typeof(StringEnumConverter))] + public enum SchemeEnum + { + /// + /// Enum Mc for value: mc + /// + [EnumMember(Value = "mc")] + Mc = 1, + + /// + /// Enum Visa for value: visa + /// + [EnumMember(Value = "visa")] + Visa = 2 + + } + + + /// + /// The Secure Remote Commerce scheme. + /// + /// The Secure Remote Commerce scheme. + [DataMember(Name = "scheme", EmitDefaultValue = false)] + public SchemeEnum? Scheme { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// The Secure Remote Commerce checkout payload to process the payment with.. + /// This is the unique identifier generated by SRC system to track and link SRC messages. Available within the present checkout session (e.g. received in an earlier API response during the present session).. + /// The [card verification code](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#card-security-code-cvc-cvv-cid).. + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'mc'.. + /// The Secure Remote Commerce scheme.. + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'visa'.. + public SecureRemoteCommerceCheckoutData(string checkoutPayload = default(string), string correlationId = default(string), string cvc = default(string), string digitalCardId = default(string), SchemeEnum? scheme = default(SchemeEnum?), string tokenReference = default(string)) + { + this.CheckoutPayload = checkoutPayload; + this.CorrelationId = correlationId; + this.Cvc = cvc; + this.DigitalCardId = digitalCardId; + this.Scheme = scheme; + this.TokenReference = tokenReference; + } + + /// + /// The Secure Remote Commerce checkout payload to process the payment with. + /// + /// The Secure Remote Commerce checkout payload to process the payment with. + [DataMember(Name = "checkoutPayload", EmitDefaultValue = false)] + public string CheckoutPayload { get; set; } + + /// + /// This is the unique identifier generated by SRC system to track and link SRC messages. Available within the present checkout session (e.g. received in an earlier API response during the present session). + /// + /// This is the unique identifier generated by SRC system to track and link SRC messages. Available within the present checkout session (e.g. received in an earlier API response during the present session). + [DataMember(Name = "correlationId", EmitDefaultValue = false)] + public string CorrelationId { get; set; } + + /// + /// The [card verification code](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#card-security-code-cvc-cvv-cid). + /// + /// The [card verification code](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#card-security-code-cvc-cvv-cid). + [DataMember(Name = "cvc", EmitDefaultValue = false)] + public string Cvc { get; set; } + + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'mc'. + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'mc'. + [DataMember(Name = "digitalCardId", EmitDefaultValue = false)] + public string DigitalCardId { get; set; } + + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'visa'. + /// + /// A unique identifier that represents the token associated with a card enrolled. Required for scheme 'visa'. + [DataMember(Name = "tokenReference", EmitDefaultValue = false)] + public string TokenReference { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class SecureRemoteCommerceCheckoutData {\n"); + sb.Append(" CheckoutPayload: ").Append(CheckoutPayload).Append("\n"); + sb.Append(" CorrelationId: ").Append(CorrelationId).Append("\n"); + sb.Append(" Cvc: ").Append(Cvc).Append("\n"); + sb.Append(" DigitalCardId: ").Append(DigitalCardId).Append("\n"); + sb.Append(" Scheme: ").Append(Scheme).Append("\n"); + sb.Append(" TokenReference: ").Append(TokenReference).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as SecureRemoteCommerceCheckoutData); + } + + /// + /// Returns true if SecureRemoteCommerceCheckoutData instances are equal + /// + /// Instance of SecureRemoteCommerceCheckoutData to be compared + /// Boolean + public bool Equals(SecureRemoteCommerceCheckoutData input) + { + if (input == null) + { + return false; + } + return + ( + this.CheckoutPayload == input.CheckoutPayload || + (this.CheckoutPayload != null && + this.CheckoutPayload.Equals(input.CheckoutPayload)) + ) && + ( + this.CorrelationId == input.CorrelationId || + (this.CorrelationId != null && + this.CorrelationId.Equals(input.CorrelationId)) + ) && + ( + this.Cvc == input.Cvc || + (this.Cvc != null && + this.Cvc.Equals(input.Cvc)) + ) && + ( + this.DigitalCardId == input.DigitalCardId || + (this.DigitalCardId != null && + this.DigitalCardId.Equals(input.DigitalCardId)) + ) && + ( + this.Scheme == input.Scheme || + this.Scheme.Equals(input.Scheme) + ) && + ( + this.TokenReference == input.TokenReference || + (this.TokenReference != null && + this.TokenReference.Equals(input.TokenReference)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.CheckoutPayload != null) + { + hashCode = (hashCode * 59) + this.CheckoutPayload.GetHashCode(); + } + if (this.CorrelationId != null) + { + hashCode = (hashCode * 59) + this.CorrelationId.GetHashCode(); + } + if (this.Cvc != null) + { + hashCode = (hashCode * 59) + this.Cvc.GetHashCode(); + } + if (this.DigitalCardId != null) + { + hashCode = (hashCode * 59) + this.DigitalCardId.GetHashCode(); + } + hashCode = (hashCode * 59) + this.Scheme.GetHashCode(); + if (this.TokenReference != null) + { + hashCode = (hashCode * 59) + this.TokenReference.GetHashCode(); + } + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + // CheckoutPayload (string) maxLength + if (this.CheckoutPayload != null && this.CheckoutPayload.Length > 10000) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for CheckoutPayload, length must be less than 10000.", new [] { "CheckoutPayload" }); + } + + // CorrelationId (string) maxLength + if (this.CorrelationId != null && this.CorrelationId.Length > 40) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for CorrelationId, length must be less than 40.", new [] { "CorrelationId" }); + } + + // CorrelationId (string) minLength + if (this.CorrelationId != null && this.CorrelationId.Length < 1) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for CorrelationId, length must be greater than 1.", new [] { "CorrelationId" }); + } + + // Cvc (string) maxLength + if (this.Cvc != null && this.Cvc.Length > 20) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Cvc, length must be less than 20.", new [] { "Cvc" }); + } + + // Cvc (string) minLength + if (this.Cvc != null && this.Cvc.Length < 1) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Cvc, length must be greater than 1.", new [] { "Cvc" }); + } + + // DigitalCardId (string) maxLength + if (this.DigitalCardId != null && this.DigitalCardId.Length > 80) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for DigitalCardId, length must be less than 80.", new [] { "DigitalCardId" }); + } + + // TokenReference (string) maxLength + if (this.TokenReference != null && this.TokenReference.Length > 80) + { + yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for TokenReference, length must be less than 80.", new [] { "TokenReference" }); + } + + yield break; + } + } + +} diff --git a/Adyen/Model/ReportWebhooks/BalancePlatformNotificationResponse.cs b/Adyen/Model/ReportWebhooks/BalancePlatformNotificationResponse.cs index 5361d58c0..9fa8ed362 100644 --- a/Adyen/Model/ReportWebhooks/BalancePlatformNotificationResponse.cs +++ b/Adyen/Model/ReportWebhooks/BalancePlatformNotificationResponse.cs @@ -35,16 +35,16 @@ public partial class BalancePlatformNotificationResponse : IEquatable /// Initializes a new instance of the class. /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. public BalancePlatformNotificationResponse(string notificationResponse = default(string)) { this.NotificationResponse = notificationResponse; } /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). [DataMember(Name = "notificationResponse", EmitDefaultValue = false)] public string NotificationResponse { get; set; } diff --git a/Adyen/Model/TransferWebhooks/BalancePlatformNotificationResponse.cs b/Adyen/Model/TransferWebhooks/BalancePlatformNotificationResponse.cs index c055fea9d..b6ac6c04f 100644 --- a/Adyen/Model/TransferWebhooks/BalancePlatformNotificationResponse.cs +++ b/Adyen/Model/TransferWebhooks/BalancePlatformNotificationResponse.cs @@ -35,16 +35,16 @@ public partial class BalancePlatformNotificationResponse : IEquatable /// Initializes a new instance of the class. /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications).. public BalancePlatformNotificationResponse(string notificationResponse = default(string)) { this.NotificationResponse = notificationResponse; } /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). /// - /// Respond with **HTTP 200 OK** and `[accepted]` in the response body to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). + /// Respond with any **2xx** HTTP status code to [accept the webhook](https://docs.adyen.com/development-resources/webhooks#accept-notifications). [DataMember(Name = "notificationResponse", EmitDefaultValue = false)] public string NotificationResponse { get; set; } diff --git a/Adyen/Model/TransferWebhooks/BankCategoryData.cs b/Adyen/Model/TransferWebhooks/BankCategoryData.cs index 9d6782fe4..e454dbd98 100644 --- a/Adyen/Model/TransferWebhooks/BankCategoryData.cs +++ b/Adyen/Model/TransferWebhooks/BankCategoryData.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.TransferWebhooks public partial class BankCategoryData : IEquatable, IValidatableObject { /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [JsonConverter(typeof(StringEnumConverter))] public enum PriorityEnum { @@ -79,9 +79,9 @@ public enum PriorityEnum /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [DataMember(Name = "priority", EmitDefaultValue = false)] public PriorityEnum? Priority { get; set; } /// @@ -109,7 +109,7 @@ public enum TypeEnum /// /// Initializes a new instance of the class. /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).. + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).. /// **bank** (default to TypeEnum.Bank). public BankCategoryData(PriorityEnum? priority = default(PriorityEnum?), TypeEnum? type = TypeEnum.Bank) { diff --git a/Adyen/Model/TransferWebhooks/ExternalReason.cs b/Adyen/Model/TransferWebhooks/ExternalReason.cs index 622c01877..c409d46a9 100644 --- a/Adyen/Model/TransferWebhooks/ExternalReason.cs +++ b/Adyen/Model/TransferWebhooks/ExternalReason.cs @@ -35,9 +35,9 @@ public partial class ExternalReason : IEquatable, IValidatableOb /// /// Initializes a new instance of the class. /// - /// The code for this reason code.. - /// The description for this reason code.. - /// The namespace for this reason code.. + /// The reason code.. + /// The description of the reason code.. + /// The namespace for the reason code.. public ExternalReason(string code = default(string), string description = default(string), string _namespace = default(string)) { this.Code = code; @@ -46,23 +46,23 @@ public partial class ExternalReason : IEquatable, IValidatableOb } /// - /// The code for this reason code. + /// The reason code. /// - /// The code for this reason code. + /// The reason code. [DataMember(Name = "code", EmitDefaultValue = false)] public string Code { get; set; } /// - /// The description for this reason code. + /// The description of the reason code. /// - /// The description for this reason code. + /// The description of the reason code. [DataMember(Name = "description", EmitDefaultValue = false)] public string Description { get; set; } /// - /// The namespace for this reason code. + /// The namespace for the reason code. /// - /// The namespace for this reason code. + /// The namespace for the reason code. [DataMember(Name = "namespace", EmitDefaultValue = false)] public string Namespace { get; set; } diff --git a/Adyen/Model/TransferWebhooks/IssuedCard.cs b/Adyen/Model/TransferWebhooks/IssuedCard.cs index dd570c79c..0bdb73a71 100644 --- a/Adyen/Model/TransferWebhooks/IssuedCard.cs +++ b/Adyen/Model/TransferWebhooks/IssuedCard.cs @@ -183,8 +183,8 @@ public enum TypeEnum /// Indicates the method used for entering the PAN to initiate a transaction. Possible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **ecommerce**, **token**.. /// Contains information about how the payment was processed. For example, **ecommerce** for online or **pos** for in-person payments.. /// relayedAuthorisationData. - /// The identifier of the original payment provided by the scheme. The Id could be alphanumeric or numeric depending on the scheme. The schemeTraceID should be referring to an original schemeUniqueTransactionID provided in an earlier payment (not necessarily processed by Adyen). Instances of available schemeTraceId is authAdjustment or recurring payments.. - /// The unique identifier created by the scheme. The ID could be alphanumeric or numeric depending on the scheme.. + /// The identifier of the original payment. This ID is provided by the scheme and can be alphanumeric or numeric, depending on the scheme. The `schemeTraceID` should refer to an original `schemeUniqueTransactionID` provided in an earlier payment (not necessarily processed by Adyen). A `schemeTraceId` is typically available for authorization adjustments or recurring payments.. + /// The unique identifier created by the scheme. This ID can be alphanumeric or numeric depending on the scheme.. /// **issuedCard** (default to TypeEnum.IssuedCard). /// The evaluation of the validation facts. See [validation checks](https://docs.adyen.com/issuing/validation-checks) for more information.. public IssuedCard(string authorisationType = default(string), PanEntryModeEnum? panEntryMode = default(PanEntryModeEnum?), ProcessingTypeEnum? processingType = default(ProcessingTypeEnum?), RelayedAuthorisationData relayedAuthorisationData = default(RelayedAuthorisationData), string schemeTraceId = default(string), string schemeUniqueTransactionId = default(string), TypeEnum? type = TypeEnum.IssuedCard, List validationFacts = default(List)) @@ -213,16 +213,16 @@ public enum TypeEnum public RelayedAuthorisationData RelayedAuthorisationData { get; set; } /// - /// The identifier of the original payment provided by the scheme. The Id could be alphanumeric or numeric depending on the scheme. The schemeTraceID should be referring to an original schemeUniqueTransactionID provided in an earlier payment (not necessarily processed by Adyen). Instances of available schemeTraceId is authAdjustment or recurring payments. + /// The identifier of the original payment. This ID is provided by the scheme and can be alphanumeric or numeric, depending on the scheme. The `schemeTraceID` should refer to an original `schemeUniqueTransactionID` provided in an earlier payment (not necessarily processed by Adyen). A `schemeTraceId` is typically available for authorization adjustments or recurring payments. /// - /// The identifier of the original payment provided by the scheme. The Id could be alphanumeric or numeric depending on the scheme. The schemeTraceID should be referring to an original schemeUniqueTransactionID provided in an earlier payment (not necessarily processed by Adyen). Instances of available schemeTraceId is authAdjustment or recurring payments. + /// The identifier of the original payment. This ID is provided by the scheme and can be alphanumeric or numeric, depending on the scheme. The `schemeTraceID` should refer to an original `schemeUniqueTransactionID` provided in an earlier payment (not necessarily processed by Adyen). A `schemeTraceId` is typically available for authorization adjustments or recurring payments. [DataMember(Name = "schemeTraceId", EmitDefaultValue = false)] public string SchemeTraceId { get; set; } /// - /// The unique identifier created by the scheme. The ID could be alphanumeric or numeric depending on the scheme. + /// The unique identifier created by the scheme. This ID can be alphanumeric or numeric depending on the scheme. /// - /// The unique identifier created by the scheme. The ID could be alphanumeric or numeric depending on the scheme. + /// The unique identifier created by the scheme. This ID can be alphanumeric or numeric depending on the scheme. [DataMember(Name = "schemeUniqueTransactionId", EmitDefaultValue = false)] public string SchemeUniqueTransactionId { get; set; } diff --git a/Adyen/Model/TransferWebhooks/PaymentInstrument.cs b/Adyen/Model/TransferWebhooks/PaymentInstrument.cs index 71831c737..e3e4f2e04 100644 --- a/Adyen/Model/TransferWebhooks/PaymentInstrument.cs +++ b/Adyen/Model/TransferWebhooks/PaymentInstrument.cs @@ -38,7 +38,7 @@ public partial class PaymentInstrument : IEquatable, IValidat /// The description of the resource.. /// The unique identifier of the resource.. /// The reference for the resource.. - /// The type of wallet the network token is associated with.. + /// The type of wallet that the network token is associated with.. public PaymentInstrument(string description = default(string), string id = default(string), string reference = default(string), string tokenType = default(string)) { this.Description = description; @@ -69,9 +69,9 @@ public partial class PaymentInstrument : IEquatable, IValidat public string Reference { get; set; } /// - /// The type of wallet the network token is associated with. + /// The type of wallet that the network token is associated with. /// - /// The type of wallet the network token is associated with. + /// The type of wallet that the network token is associated with. [DataMember(Name = "tokenType", EmitDefaultValue = false)] public string TokenType { get; set; } diff --git a/Adyen/Model/TransferWebhooks/PlatformPayment.cs b/Adyen/Model/TransferWebhooks/PlatformPayment.cs index 09896a125..55126d6f1 100644 --- a/Adyen/Model/TransferWebhooks/PlatformPayment.cs +++ b/Adyen/Model/TransferWebhooks/PlatformPayment.cs @@ -105,17 +105,29 @@ public enum PlatformPaymentTypeEnum [EnumMember(Value = "SchemeFee")] SchemeFee = 11, + /// + /// Enum Surcharge for value: Surcharge + /// + [EnumMember(Value = "Surcharge")] + Surcharge = 12, + + /// + /// Enum Tip for value: Tip + /// + [EnumMember(Value = "Tip")] + Tip = 13, + /// /// Enum TopUp for value: TopUp /// [EnumMember(Value = "TopUp")] - TopUp = 12, + TopUp = 14, /// /// Enum VAT for value: VAT /// [EnumMember(Value = "VAT")] - VAT = 13 + VAT = 15 } diff --git a/Adyen/Model/TransferWebhooks/TransferData.cs b/Adyen/Model/TransferWebhooks/TransferData.cs index 8301b3e42..76bc3c4af 100644 --- a/Adyen/Model/TransferWebhooks/TransferData.cs +++ b/Adyen/Model/TransferWebhooks/TransferData.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.TransferWebhooks public partial class TransferData : IEquatable, IValidatableObject { /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [JsonConverter(typeof(StringEnumConverter))] public enum CategoryEnum { @@ -67,9 +67,9 @@ public enum CategoryEnum /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [DataMember(Name = "category", IsRequired = false, EmitDefaultValue = false)] public CategoryEnum Category { get; set; } /// @@ -161,53 +161,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -875,7 +881,7 @@ protected TransferData() { } /// balanceAccount. /// The unique identifier of the balance platform.. /// The list of the latest balance statuses in the transfer.. - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. (required). + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. (required). /// categoryData. /// counterparty. /// The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.. @@ -886,8 +892,8 @@ protected TransferData() { } /// paymentInstrument. /// Additional information about the status of the transfer.. /// Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.. - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. - /// The sequence number of the transfer notification. The numbers start from 1 and increase with each new notification for a specific transfer. It can help you restore the correct sequence of events even if they arrive out of order.. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. + /// The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order.. /// The result of the transfer. For example, **authorised**, **refused**, or **error**. (required). /// tracking. /// transactionRulesResult. @@ -1004,16 +1010,16 @@ protected TransferData() { } public string Reference { get; set; } /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. [DataMember(Name = "referenceForBeneficiary", EmitDefaultValue = false)] public string ReferenceForBeneficiary { get; set; } /// - /// The sequence number of the transfer notification. The numbers start from 1 and increase with each new notification for a specific transfer. It can help you restore the correct sequence of events even if they arrive out of order. + /// The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order. /// - /// The sequence number of the transfer notification. The numbers start from 1 and increase with each new notification for a specific transfer. It can help you restore the correct sequence of events even if they arrive out of order. + /// The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order. [DataMember(Name = "sequenceNumber", EmitDefaultValue = false)] public int? SequenceNumber { get; set; } @@ -1297,12 +1303,6 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Reference, length must be less than 80.", new [] { "Reference" }); } - // ReferenceForBeneficiary (string) maxLength - if (this.ReferenceForBeneficiary != null && this.ReferenceForBeneficiary.Length > 80) - { - yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ReferenceForBeneficiary, length must be less than 80.", new [] { "ReferenceForBeneficiary" }); - } - yield break; } } diff --git a/Adyen/Model/TransferWebhooks/TransferEvent.cs b/Adyen/Model/TransferWebhooks/TransferEvent.cs index d0b8c6f10..9c4f223cf 100644 --- a/Adyen/Model/TransferWebhooks/TransferEvent.cs +++ b/Adyen/Model/TransferWebhooks/TransferEvent.cs @@ -93,53 +93,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -589,12 +595,13 @@ public enum TypeEnum /// /// amount. /// The amount adjustments in this transfer.. + /// Scheme unique arn identifier useful for tracing captures, chargebacks, refunds, etc.. /// The date when the transfer request was sent.. - /// The estimated time the beneficiary should have access to the funds.. + /// The estimated time when the beneficiary should have access to the funds.. /// externalReason. /// The unique identifier of the transfer event.. /// modification. - /// The list of the balance mutation per event.. + /// The list of balance mutations per event.. /// originalAmount. /// The reason for the transfer status.. /// The status of the transfer event.. @@ -603,10 +610,11 @@ public enum TypeEnum /// The type of the transfer event. Possible values: **accounting**, **tracking**.. /// The date when the tracking status was updated.. /// A future date, when the funds are expected to be deducted from or credited to the balance account.. - public TransferEvent(Amount amount = default(Amount), List amountAdjustments = default(List), DateTime bookingDate = default(DateTime), DateTime estimatedArrivalTime = default(DateTime), ExternalReason externalReason = default(ExternalReason), string id = default(string), Modification modification = default(Modification), List mutations = default(List), Amount originalAmount = default(Amount), ReasonEnum? reason = default(ReasonEnum?), StatusEnum? status = default(StatusEnum?), TransferEventTrackingData trackingData = default(TransferEventTrackingData), string transactionId = default(string), TypeEnum? type = default(TypeEnum?), DateTime updateDate = default(DateTime), DateTime valueDate = default(DateTime)) + public TransferEvent(Amount amount = default(Amount), List amountAdjustments = default(List), string arn = default(string), DateTime bookingDate = default(DateTime), DateTime estimatedArrivalTime = default(DateTime), ExternalReason externalReason = default(ExternalReason), string id = default(string), Modification modification = default(Modification), List mutations = default(List), Amount originalAmount = default(Amount), ReasonEnum? reason = default(ReasonEnum?), StatusEnum? status = default(StatusEnum?), TransferEventTrackingData trackingData = default(TransferEventTrackingData), string transactionId = default(string), TypeEnum? type = default(TypeEnum?), DateTime updateDate = default(DateTime), DateTime valueDate = default(DateTime)) { this.Amount = amount; this.AmountAdjustments = amountAdjustments; + this.Arn = arn; this.BookingDate = bookingDate; this.EstimatedArrivalTime = estimatedArrivalTime; this.ExternalReason = externalReason; @@ -636,6 +644,13 @@ public enum TypeEnum [DataMember(Name = "amountAdjustments", EmitDefaultValue = false)] public List AmountAdjustments { get; set; } + /// + /// Scheme unique arn identifier useful for tracing captures, chargebacks, refunds, etc. + /// + /// Scheme unique arn identifier useful for tracing captures, chargebacks, refunds, etc. + [DataMember(Name = "arn", EmitDefaultValue = false)] + public string Arn { get; set; } + /// /// The date when the transfer request was sent. /// @@ -644,11 +659,10 @@ public enum TypeEnum public DateTime BookingDate { get; set; } /// - /// The estimated time the beneficiary should have access to the funds. + /// The estimated time when the beneficiary should have access to the funds. /// - /// The estimated time the beneficiary should have access to the funds. + /// The estimated time when the beneficiary should have access to the funds. [DataMember(Name = "estimatedArrivalTime", EmitDefaultValue = false)] - [Obsolete] public DateTime EstimatedArrivalTime { get; set; } /// @@ -671,9 +685,9 @@ public enum TypeEnum public Modification Modification { get; set; } /// - /// The list of the balance mutation per event. + /// The list of balance mutations per event. /// - /// The list of the balance mutation per event. + /// The list of balance mutations per event. [DataMember(Name = "mutations", EmitDefaultValue = false)] public List Mutations { get; set; } @@ -720,6 +734,7 @@ public override string ToString() sb.Append("class TransferEvent {\n"); sb.Append(" Amount: ").Append(Amount).Append("\n"); sb.Append(" AmountAdjustments: ").Append(AmountAdjustments).Append("\n"); + sb.Append(" Arn: ").Append(Arn).Append("\n"); sb.Append(" BookingDate: ").Append(BookingDate).Append("\n"); sb.Append(" EstimatedArrivalTime: ").Append(EstimatedArrivalTime).Append("\n"); sb.Append(" ExternalReason: ").Append(ExternalReason).Append("\n"); @@ -780,6 +795,11 @@ public bool Equals(TransferEvent input) input.AmountAdjustments != null && this.AmountAdjustments.SequenceEqual(input.AmountAdjustments) ) && + ( + this.Arn == input.Arn || + (this.Arn != null && + this.Arn.Equals(input.Arn)) + ) && ( this.BookingDate == input.BookingDate || (this.BookingDate != null && @@ -867,6 +887,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.AmountAdjustments.GetHashCode(); } + if (this.Arn != null) + { + hashCode = (hashCode * 59) + this.Arn.GetHashCode(); + } if (this.BookingDate != null) { hashCode = (hashCode * 59) + this.BookingDate.GetHashCode(); diff --git a/Adyen/Model/Transfers/BankCategoryData.cs b/Adyen/Model/Transfers/BankCategoryData.cs index 7bcdc6355..10629360c 100644 --- a/Adyen/Model/Transfers/BankCategoryData.cs +++ b/Adyen/Model/Transfers/BankCategoryData.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.Transfers public partial class BankCategoryData : IEquatable, IValidatableObject { /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [JsonConverter(typeof(StringEnumConverter))] public enum PriorityEnum { @@ -79,9 +79,9 @@ public enum PriorityEnum /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [DataMember(Name = "priority", EmitDefaultValue = false)] public PriorityEnum? Priority { get; set; } /// @@ -109,7 +109,7 @@ public enum TypeEnum /// /// Initializes a new instance of the class. /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).. + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).. /// **bank** (default to TypeEnum.Bank). public BankCategoryData(PriorityEnum? priority = default(PriorityEnum?), TypeEnum? type = TypeEnum.Bank) { diff --git a/Adyen/Model/Transfers/ExternalReason.cs b/Adyen/Model/Transfers/ExternalReason.cs index a9607107b..262464092 100644 --- a/Adyen/Model/Transfers/ExternalReason.cs +++ b/Adyen/Model/Transfers/ExternalReason.cs @@ -35,9 +35,9 @@ public partial class ExternalReason : IEquatable, IValidatableOb /// /// Initializes a new instance of the class. /// - /// The code for this reason code.. - /// The description for this reason code.. - /// The namespace for this reason code.. + /// The reason code.. + /// The description of the reason code.. + /// The namespace for the reason code.. public ExternalReason(string code = default(string), string description = default(string), string _namespace = default(string)) { this.Code = code; @@ -46,23 +46,23 @@ public partial class ExternalReason : IEquatable, IValidatableOb } /// - /// The code for this reason code. + /// The reason code. /// - /// The code for this reason code. + /// The reason code. [DataMember(Name = "code", EmitDefaultValue = false)] public string Code { get; set; } /// - /// The description for this reason code. + /// The description of the reason code. /// - /// The description for this reason code. + /// The description of the reason code. [DataMember(Name = "description", EmitDefaultValue = false)] public string Description { get; set; } /// - /// The namespace for this reason code. + /// The namespace for the reason code. /// - /// The namespace for this reason code. + /// The namespace for the reason code. [DataMember(Name = "namespace", EmitDefaultValue = false)] public string Namespace { get; set; } diff --git a/Adyen/Model/Transfers/IssuedCard.cs b/Adyen/Model/Transfers/IssuedCard.cs index c29283d6b..dd0bb4adc 100644 --- a/Adyen/Model/Transfers/IssuedCard.cs +++ b/Adyen/Model/Transfers/IssuedCard.cs @@ -183,8 +183,8 @@ public enum TypeEnum /// Indicates the method used for entering the PAN to initiate a transaction. Possible values: **manual**, **chip**, **magstripe**, **contactless**, **cof**, **ecommerce**, **token**.. /// Contains information about how the payment was processed. For example, **ecommerce** for online or **pos** for in-person payments.. /// relayedAuthorisationData. - /// The identifier of the original payment provided by the scheme. The Id could be alphanumeric or numeric depending on the scheme. The schemeTraceID should be referring to an original schemeUniqueTransactionID provided in an earlier payment (not necessarily processed by Adyen). Instances of available schemeTraceId is authAdjustment or recurring payments.. - /// The unique identifier created by the scheme. The ID could be alphanumeric or numeric depending on the scheme.. + /// The identifier of the original payment. This ID is provided by the scheme and can be alphanumeric or numeric, depending on the scheme. The `schemeTraceID` should refer to an original `schemeUniqueTransactionID` provided in an earlier payment (not necessarily processed by Adyen). A `schemeTraceId` is typically available for authorization adjustments or recurring payments.. + /// The unique identifier created by the scheme. This ID can be alphanumeric or numeric depending on the scheme.. /// **issuedCard** (default to TypeEnum.IssuedCard). /// The evaluation of the validation facts. See [validation checks](https://docs.adyen.com/issuing/validation-checks) for more information.. public IssuedCard(string authorisationType = default(string), PanEntryModeEnum? panEntryMode = default(PanEntryModeEnum?), ProcessingTypeEnum? processingType = default(ProcessingTypeEnum?), RelayedAuthorisationData relayedAuthorisationData = default(RelayedAuthorisationData), string schemeTraceId = default(string), string schemeUniqueTransactionId = default(string), TypeEnum? type = TypeEnum.IssuedCard, List validationFacts = default(List)) @@ -213,16 +213,16 @@ public enum TypeEnum public RelayedAuthorisationData RelayedAuthorisationData { get; set; } /// - /// The identifier of the original payment provided by the scheme. The Id could be alphanumeric or numeric depending on the scheme. The schemeTraceID should be referring to an original schemeUniqueTransactionID provided in an earlier payment (not necessarily processed by Adyen). Instances of available schemeTraceId is authAdjustment or recurring payments. + /// The identifier of the original payment. This ID is provided by the scheme and can be alphanumeric or numeric, depending on the scheme. The `schemeTraceID` should refer to an original `schemeUniqueTransactionID` provided in an earlier payment (not necessarily processed by Adyen). A `schemeTraceId` is typically available for authorization adjustments or recurring payments. /// - /// The identifier of the original payment provided by the scheme. The Id could be alphanumeric or numeric depending on the scheme. The schemeTraceID should be referring to an original schemeUniqueTransactionID provided in an earlier payment (not necessarily processed by Adyen). Instances of available schemeTraceId is authAdjustment or recurring payments. + /// The identifier of the original payment. This ID is provided by the scheme and can be alphanumeric or numeric, depending on the scheme. The `schemeTraceID` should refer to an original `schemeUniqueTransactionID` provided in an earlier payment (not necessarily processed by Adyen). A `schemeTraceId` is typically available for authorization adjustments or recurring payments. [DataMember(Name = "schemeTraceId", EmitDefaultValue = false)] public string SchemeTraceId { get; set; } /// - /// The unique identifier created by the scheme. The ID could be alphanumeric or numeric depending on the scheme. + /// The unique identifier created by the scheme. This ID can be alphanumeric or numeric depending on the scheme. /// - /// The unique identifier created by the scheme. The ID could be alphanumeric or numeric depending on the scheme. + /// The unique identifier created by the scheme. This ID can be alphanumeric or numeric depending on the scheme. [DataMember(Name = "schemeUniqueTransactionId", EmitDefaultValue = false)] public string SchemeUniqueTransactionId { get; set; } diff --git a/Adyen/Model/Transfers/PaymentInstrument.cs b/Adyen/Model/Transfers/PaymentInstrument.cs index b677d4915..b52e7837c 100644 --- a/Adyen/Model/Transfers/PaymentInstrument.cs +++ b/Adyen/Model/Transfers/PaymentInstrument.cs @@ -38,7 +38,7 @@ public partial class PaymentInstrument : IEquatable, IValidat /// The description of the resource.. /// The unique identifier of the resource.. /// The reference for the resource.. - /// The type of wallet the network token is associated with.. + /// The type of wallet that the network token is associated with.. public PaymentInstrument(string description = default(string), string id = default(string), string reference = default(string), string tokenType = default(string)) { this.Description = description; @@ -69,9 +69,9 @@ public partial class PaymentInstrument : IEquatable, IValidat public string Reference { get; set; } /// - /// The type of wallet the network token is associated with. + /// The type of wallet that the network token is associated with. /// - /// The type of wallet the network token is associated with. + /// The type of wallet that the network token is associated with. [DataMember(Name = "tokenType", EmitDefaultValue = false)] public string TokenType { get; set; } diff --git a/Adyen/Model/Transfers/PlatformPayment.cs b/Adyen/Model/Transfers/PlatformPayment.cs index b0fd2677e..dc19f8614 100644 --- a/Adyen/Model/Transfers/PlatformPayment.cs +++ b/Adyen/Model/Transfers/PlatformPayment.cs @@ -105,17 +105,29 @@ public enum PlatformPaymentTypeEnum [EnumMember(Value = "SchemeFee")] SchemeFee = 11, + /// + /// Enum Surcharge for value: Surcharge + /// + [EnumMember(Value = "Surcharge")] + Surcharge = 12, + + /// + /// Enum Tip for value: Tip + /// + [EnumMember(Value = "Tip")] + Tip = 13, + /// /// Enum TopUp for value: TopUp /// [EnumMember(Value = "TopUp")] - TopUp = 12, + TopUp = 14, /// /// Enum VAT for value: VAT /// [EnumMember(Value = "VAT")] - VAT = 13 + VAT = 15 } diff --git a/Adyen/Model/Transfers/RoutingDetails.cs b/Adyen/Model/Transfers/RoutingDetails.cs new file mode 100644 index 000000000..7921b63d0 --- /dev/null +++ b/Adyen/Model/Transfers/RoutingDetails.cs @@ -0,0 +1,227 @@ +/* +* Transfers API +* +* +* The version of the OpenAPI document: 4 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.Transfers +{ + /// + /// RoutingDetails + /// + [DataContract(Name = "RoutingDetails")] + public partial class RoutingDetails : IEquatable, IValidatableObject + { + /// + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). + /// + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). + [JsonConverter(typeof(StringEnumConverter))] + public enum PriorityEnum + { + /// + /// Enum CrossBorder for value: crossBorder + /// + [EnumMember(Value = "crossBorder")] + CrossBorder = 1, + + /// + /// Enum Fast for value: fast + /// + [EnumMember(Value = "fast")] + Fast = 2, + + /// + /// Enum Instant for value: instant + /// + [EnumMember(Value = "instant")] + Instant = 3, + + /// + /// Enum Internal for value: internal + /// + [EnumMember(Value = "internal")] + Internal = 4, + + /// + /// Enum Regular for value: regular + /// + [EnumMember(Value = "regular")] + Regular = 5, + + /// + /// Enum Wire for value: wire + /// + [EnumMember(Value = "wire")] + Wire = 6 + + } + + + /// + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). + /// + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). + [DataMember(Name = "priority", EmitDefaultValue = false)] + public PriorityEnum? Priority { get; set; } + /// + /// Initializes a new instance of the class. + /// + /// A human-readable explanation specific to this occurrence of the problem.. + /// A code that identifies the problem type.. + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).. + /// A short, human-readable summary of the problem type.. + public RoutingDetails(string detail = default(string), string errorCode = default(string), PriorityEnum? priority = default(PriorityEnum?), string title = default(string)) + { + this.Detail = detail; + this.ErrorCode = errorCode; + this.Priority = priority; + this.Title = title; + } + + /// + /// A human-readable explanation specific to this occurrence of the problem. + /// + /// A human-readable explanation specific to this occurrence of the problem. + [DataMember(Name = "detail", EmitDefaultValue = false)] + public string Detail { get; set; } + + /// + /// A code that identifies the problem type. + /// + /// A code that identifies the problem type. + [DataMember(Name = "errorCode", EmitDefaultValue = false)] + public string ErrorCode { get; set; } + + /// + /// A short, human-readable summary of the problem type. + /// + /// A short, human-readable summary of the problem type. + [DataMember(Name = "title", EmitDefaultValue = false)] + public string Title { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class RoutingDetails {\n"); + sb.Append(" Detail: ").Append(Detail).Append("\n"); + sb.Append(" ErrorCode: ").Append(ErrorCode).Append("\n"); + sb.Append(" Priority: ").Append(Priority).Append("\n"); + sb.Append(" Title: ").Append(Title).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as RoutingDetails); + } + + /// + /// Returns true if RoutingDetails instances are equal + /// + /// Instance of RoutingDetails to be compared + /// Boolean + public bool Equals(RoutingDetails input) + { + if (input == null) + { + return false; + } + return + ( + this.Detail == input.Detail || + (this.Detail != null && + this.Detail.Equals(input.Detail)) + ) && + ( + this.ErrorCode == input.ErrorCode || + (this.ErrorCode != null && + this.ErrorCode.Equals(input.ErrorCode)) + ) && + ( + this.Priority == input.Priority || + this.Priority.Equals(input.Priority) + ) && + ( + this.Title == input.Title || + (this.Title != null && + this.Title.Equals(input.Title)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Detail != null) + { + hashCode = (hashCode * 59) + this.Detail.GetHashCode(); + } + if (this.ErrorCode != null) + { + hashCode = (hashCode * 59) + this.ErrorCode.GetHashCode(); + } + hashCode = (hashCode * 59) + this.Priority.GetHashCode(); + if (this.Title != null) + { + hashCode = (hashCode * 59) + this.Title.GetHashCode(); + } + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + yield break; + } + } + +} diff --git a/Adyen/Model/Transfers/Transfer.cs b/Adyen/Model/Transfers/Transfer.cs index cd0edce01..8b1a0c553 100644 --- a/Adyen/Model/Transfers/Transfer.cs +++ b/Adyen/Model/Transfers/Transfer.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.Transfers public partial class Transfer : IEquatable, IValidatableObject { /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [JsonConverter(typeof(StringEnumConverter))] public enum CategoryEnum { @@ -67,9 +67,9 @@ public enum CategoryEnum /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [DataMember(Name = "category", IsRequired = false, EmitDefaultValue = false)] public CategoryEnum Category { get; set; } /// @@ -161,53 +161,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -873,7 +879,7 @@ protected Transfer() { } /// accountHolder. /// amount (required). /// balanceAccount. - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. (required). + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. (required). /// categoryData. /// counterparty (required). /// The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.. @@ -883,7 +889,7 @@ protected Transfer() { } /// paymentInstrument. /// Additional information about the status of the transfer.. /// Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.. - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. /// The result of the transfer. For example, **authorised**, **refused**, or **error**. (required). /// The type of transfer or transaction. For example, **refund**, **payment**, **internalTransfer**, **bankTransfer**.. public Transfer(ResourceReference accountHolder = default(ResourceReference), Amount amount = default(Amount), ResourceReference balanceAccount = default(ResourceReference), CategoryEnum category = default(CategoryEnum), TransferCategoryData categoryData = default(TransferCategoryData), CounterpartyV3 counterparty = default(CounterpartyV3), DateTime creationDate = default(DateTime), string description = default(string), DirectionEnum? direction = default(DirectionEnum?), string id = default(string), PaymentInstrument paymentInstrument = default(PaymentInstrument), ReasonEnum? reason = default(ReasonEnum?), string reference = default(string), string referenceForBeneficiary = default(string), StatusEnum status = default(StatusEnum), TypeEnum? type = default(TypeEnum?)) @@ -971,9 +977,9 @@ protected Transfer() { } public string Reference { get; set; } /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. [DataMember(Name = "referenceForBeneficiary", EmitDefaultValue = false)] public string ReferenceForBeneficiary { get; set; } @@ -1187,12 +1193,6 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Reference, length must be less than 80.", new [] { "Reference" }); } - // ReferenceForBeneficiary (string) maxLength - if (this.ReferenceForBeneficiary != null && this.ReferenceForBeneficiary.Length > 80) - { - yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ReferenceForBeneficiary, length must be less than 80.", new [] { "ReferenceForBeneficiary" }); - } - yield break; } } diff --git a/Adyen/Model/Transfers/TransferData.cs b/Adyen/Model/Transfers/TransferData.cs index 525f6b05e..a84d73c94 100644 --- a/Adyen/Model/Transfers/TransferData.cs +++ b/Adyen/Model/Transfers/TransferData.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.Transfers public partial class TransferData : IEquatable, IValidatableObject { /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [JsonConverter(typeof(StringEnumConverter))] public enum CategoryEnum { @@ -67,9 +67,9 @@ public enum CategoryEnum /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [DataMember(Name = "category", IsRequired = false, EmitDefaultValue = false)] public CategoryEnum Category { get; set; } /// @@ -161,53 +161,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -875,7 +881,7 @@ protected TransferData() { } /// balanceAccount. /// The unique identifier of the balance platform.. /// The list of the latest balance statuses in the transfer.. - /// The category of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. (required). + /// The category of the transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by an Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. (required). /// categoryData. /// counterparty. /// The date and time when the event was triggered, in ISO 8601 extended format. For example, **2020-12-18T10:15:30+01:00**.. @@ -886,8 +892,8 @@ protected TransferData() { } /// paymentInstrument. /// Additional information about the status of the transfer.. /// Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.. - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. - /// The sequence number of the transfer notification. The numbers start from 1 and increase with each new notification for a specific transfer. It can help you restore the correct sequence of events even if they arrive out of order.. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. + /// The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order.. /// The result of the transfer. For example, **authorised**, **refused**, or **error**. (required). /// tracking. /// transactionRulesResult. @@ -1004,16 +1010,16 @@ protected TransferData() { } public string Reference { get; set; } /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**.The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. [DataMember(Name = "referenceForBeneficiary", EmitDefaultValue = false)] public string ReferenceForBeneficiary { get; set; } /// - /// The sequence number of the transfer notification. The numbers start from 1 and increase with each new notification for a specific transfer. It can help you restore the correct sequence of events even if they arrive out of order. + /// The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order. /// - /// The sequence number of the transfer notification. The numbers start from 1 and increase with each new notification for a specific transfer. It can help you restore the correct sequence of events even if they arrive out of order. + /// The sequence number of the transfer webhook. The numbers start from 1 and increase with each new webhook for a specific transfer. The sequence number can help you restore the correct sequence of events even if they arrive out of order. [DataMember(Name = "sequenceNumber", EmitDefaultValue = false)] public int? SequenceNumber { get; set; } @@ -1297,12 +1303,6 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Reference, length must be less than 80.", new [] { "Reference" }); } - // ReferenceForBeneficiary (string) maxLength - if (this.ReferenceForBeneficiary != null && this.ReferenceForBeneficiary.Length > 80) - { - yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ReferenceForBeneficiary, length must be less than 80.", new [] { "ReferenceForBeneficiary" }); - } - yield break; } } diff --git a/Adyen/Model/Transfers/TransferEvent.cs b/Adyen/Model/Transfers/TransferEvent.cs index 2eeef2e15..7421ad0fb 100644 --- a/Adyen/Model/Transfers/TransferEvent.cs +++ b/Adyen/Model/Transfers/TransferEvent.cs @@ -93,53 +93,59 @@ public enum ReasonEnum [EnumMember(Value = "counterpartyBankUnavailable")] CounterpartyBankUnavailable = 9, + /// + /// Enum Declined for value: declined + /// + [EnumMember(Value = "declined")] + Declined = 10, + /// /// Enum DeclinedByTransactionRule for value: declinedByTransactionRule /// [EnumMember(Value = "declinedByTransactionRule")] - DeclinedByTransactionRule = 10, + DeclinedByTransactionRule = 11, /// /// Enum Error for value: error /// [EnumMember(Value = "error")] - Error = 11, + Error = 12, /// /// Enum NotEnoughBalance for value: notEnoughBalance /// [EnumMember(Value = "notEnoughBalance")] - NotEnoughBalance = 12, + NotEnoughBalance = 13, /// /// Enum PendingApproval for value: pendingApproval /// [EnumMember(Value = "pendingApproval")] - PendingApproval = 13, + PendingApproval = 14, /// /// Enum RefusedByCounterpartyBank for value: refusedByCounterpartyBank /// [EnumMember(Value = "refusedByCounterpartyBank")] - RefusedByCounterpartyBank = 14, + RefusedByCounterpartyBank = 15, /// /// Enum RouteNotFound for value: routeNotFound /// [EnumMember(Value = "routeNotFound")] - RouteNotFound = 15, + RouteNotFound = 16, /// /// Enum ScaFailed for value: scaFailed /// [EnumMember(Value = "scaFailed")] - ScaFailed = 16, + ScaFailed = 17, /// /// Enum Unknown for value: unknown /// [EnumMember(Value = "unknown")] - Unknown = 17 + Unknown = 18 } @@ -589,12 +595,13 @@ public enum TypeEnum /// /// amount. /// The amount adjustments in this transfer.. + /// Scheme unique arn identifier useful for tracing captures, chargebacks, refunds, etc.. /// The date when the transfer request was sent.. - /// The estimated time the beneficiary should have access to the funds.. + /// The estimated time when the beneficiary should have access to the funds.. /// externalReason. /// The unique identifier of the transfer event.. /// modification. - /// The list of the balance mutation per event.. + /// The list of balance mutations per event.. /// originalAmount. /// The reason for the transfer status.. /// The status of the transfer event.. @@ -603,10 +610,11 @@ public enum TypeEnum /// The type of the transfer event. Possible values: **accounting**, **tracking**.. /// The date when the tracking status was updated.. /// A future date, when the funds are expected to be deducted from or credited to the balance account.. - public TransferEvent(Amount amount = default(Amount), List amountAdjustments = default(List), DateTime bookingDate = default(DateTime), DateTime estimatedArrivalTime = default(DateTime), ExternalReason externalReason = default(ExternalReason), string id = default(string), Modification modification = default(Modification), List mutations = default(List), Amount originalAmount = default(Amount), ReasonEnum? reason = default(ReasonEnum?), StatusEnum? status = default(StatusEnum?), TransferEventTrackingData trackingData = default(TransferEventTrackingData), string transactionId = default(string), TypeEnum? type = default(TypeEnum?), DateTime updateDate = default(DateTime), DateTime valueDate = default(DateTime)) + public TransferEvent(Amount amount = default(Amount), List amountAdjustments = default(List), string arn = default(string), DateTime bookingDate = default(DateTime), DateTime estimatedArrivalTime = default(DateTime), ExternalReason externalReason = default(ExternalReason), string id = default(string), Modification modification = default(Modification), List mutations = default(List), Amount originalAmount = default(Amount), ReasonEnum? reason = default(ReasonEnum?), StatusEnum? status = default(StatusEnum?), TransferEventTrackingData trackingData = default(TransferEventTrackingData), string transactionId = default(string), TypeEnum? type = default(TypeEnum?), DateTime updateDate = default(DateTime), DateTime valueDate = default(DateTime)) { this.Amount = amount; this.AmountAdjustments = amountAdjustments; + this.Arn = arn; this.BookingDate = bookingDate; this.EstimatedArrivalTime = estimatedArrivalTime; this.ExternalReason = externalReason; @@ -636,6 +644,13 @@ public enum TypeEnum [DataMember(Name = "amountAdjustments", EmitDefaultValue = false)] public List AmountAdjustments { get; set; } + /// + /// Scheme unique arn identifier useful for tracing captures, chargebacks, refunds, etc. + /// + /// Scheme unique arn identifier useful for tracing captures, chargebacks, refunds, etc. + [DataMember(Name = "arn", EmitDefaultValue = false)] + public string Arn { get; set; } + /// /// The date when the transfer request was sent. /// @@ -644,11 +659,10 @@ public enum TypeEnum public DateTime BookingDate { get; set; } /// - /// The estimated time the beneficiary should have access to the funds. + /// The estimated time when the beneficiary should have access to the funds. /// - /// The estimated time the beneficiary should have access to the funds. + /// The estimated time when the beneficiary should have access to the funds. [DataMember(Name = "estimatedArrivalTime", EmitDefaultValue = false)] - [Obsolete] public DateTime EstimatedArrivalTime { get; set; } /// @@ -671,9 +685,9 @@ public enum TypeEnum public Modification Modification { get; set; } /// - /// The list of the balance mutation per event. + /// The list of balance mutations per event. /// - /// The list of the balance mutation per event. + /// The list of balance mutations per event. [DataMember(Name = "mutations", EmitDefaultValue = false)] public List Mutations { get; set; } @@ -720,6 +734,7 @@ public override string ToString() sb.Append("class TransferEvent {\n"); sb.Append(" Amount: ").Append(Amount).Append("\n"); sb.Append(" AmountAdjustments: ").Append(AmountAdjustments).Append("\n"); + sb.Append(" Arn: ").Append(Arn).Append("\n"); sb.Append(" BookingDate: ").Append(BookingDate).Append("\n"); sb.Append(" EstimatedArrivalTime: ").Append(EstimatedArrivalTime).Append("\n"); sb.Append(" ExternalReason: ").Append(ExternalReason).Append("\n"); @@ -780,6 +795,11 @@ public bool Equals(TransferEvent input) input.AmountAdjustments != null && this.AmountAdjustments.SequenceEqual(input.AmountAdjustments) ) && + ( + this.Arn == input.Arn || + (this.Arn != null && + this.Arn.Equals(input.Arn)) + ) && ( this.BookingDate == input.BookingDate || (this.BookingDate != null && @@ -867,6 +887,10 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.AmountAdjustments.GetHashCode(); } + if (this.Arn != null) + { + hashCode = (hashCode * 59) + this.Arn.GetHashCode(); + } if (this.BookingDate != null) { hashCode = (hashCode * 59) + this.BookingDate.GetHashCode(); diff --git a/Adyen/Model/Transfers/TransferInfo.cs b/Adyen/Model/Transfers/TransferInfo.cs index dc1dfc484..045c4bde5 100644 --- a/Adyen/Model/Transfers/TransferInfo.cs +++ b/Adyen/Model/Transfers/TransferInfo.cs @@ -33,9 +33,9 @@ namespace Adyen.Model.Transfers public partial class TransferInfo : IEquatable, IValidatableObject { /// - /// The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The type of transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by a Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The type of transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by a Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [JsonConverter(typeof(StringEnumConverter))] public enum CategoryEnum { @@ -73,15 +73,15 @@ public enum CategoryEnum /// - /// The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The type of transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by a Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. /// - /// The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. + /// The type of transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by a Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. [DataMember(Name = "category", IsRequired = false, EmitDefaultValue = false)] public CategoryEnum Category { get; set; } /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [JsonConverter(typeof(StringEnumConverter))] public enum PriorityEnum { @@ -125,12 +125,46 @@ public enum PriorityEnum /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). /// - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN). + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN). [DataMember(Name = "priority", EmitDefaultValue = false)] public PriorityEnum? Priority { get; set; } /// + /// The type of transfer. Possible values: - **bankTransfer**: for push transfers to a transfer instrument or a bank account. The `category` must be **bank**. - **internalTransfer**: for push transfers between balance accounts. The `category` must be **internal**. - **internalDirectDebit**: for pull transfers (direct debits) between balance accounts. The `category` must be **internal**. + /// + /// The type of transfer. Possible values: - **bankTransfer**: for push transfers to a transfer instrument or a bank account. The `category` must be **bank**. - **internalTransfer**: for push transfers between balance accounts. The `category` must be **internal**. - **internalDirectDebit**: for pull transfers (direct debits) between balance accounts. The `category` must be **internal**. + [JsonConverter(typeof(StringEnumConverter))] + public enum TypeEnum + { + /// + /// Enum BankTransfer for value: bankTransfer + /// + [EnumMember(Value = "bankTransfer")] + BankTransfer = 1, + + /// + /// Enum InternalTransfer for value: internalTransfer + /// + [EnumMember(Value = "internalTransfer")] + InternalTransfer = 2, + + /// + /// Enum InternalDirectDebit for value: internalDirectDebit + /// + [EnumMember(Value = "internalDirectDebit")] + InternalDirectDebit = 3 + + } + + + /// + /// The type of transfer. Possible values: - **bankTransfer**: for push transfers to a transfer instrument or a bank account. The `category` must be **bank**. - **internalTransfer**: for push transfers between balance accounts. The `category` must be **internal**. - **internalDirectDebit**: for pull transfers (direct debits) between balance accounts. The `category` must be **internal**. + /// + /// The type of transfer. Possible values: - **bankTransfer**: for push transfers to a transfer instrument or a bank account. The `category` must be **bank**. - **internalTransfer**: for push transfers between balance accounts. The `category` must be **internal**. - **internalDirectDebit**: for pull transfers (direct debits) between balance accounts. The `category` must be **internal**. + [DataMember(Name = "type", EmitDefaultValue = false)] + public TypeEnum? Type { get; set; } + /// /// Initializes a new instance of the class. /// [JsonConstructorAttribute] @@ -139,16 +173,17 @@ protected TransferInfo() { } /// Initializes a new instance of the class. /// /// amount (required). - /// The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id).. - /// The type of transfer. Possible values: - **bank**: Transfer to a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: Transfer to another [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: Transfer initiated by a Adyen-issued card. - **platformPayment**: Fund movements related to payments that are acquired for your users. (required). + /// The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount** assigned to the balance account, you must specify the [payment instrument ID](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id) of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account.. + /// The type of transfer. Possible values: - **bank**: a transfer involving a [transfer instrument](https://docs.adyen.com/api-explorer/#/legalentity/latest/post/transferInstruments__resParam_id) or a bank account. - **internal**: a transfer between [balance accounts](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id) within your platform. - **issuedCard**: a transfer initiated by a Adyen-issued card. - **platformPayment**: funds movements related to payments that are acquired for your users. (required). /// counterparty (required). /// Your description for the transfer. It is used by most banks as the transfer description. We recommend sending a maximum of 140 characters, otherwise the description may be truncated. Supported characters: **[a-z] [A-Z] [0-9] / - ?** **: ( ) . , ' + Space** Supported characters for **regular** and **fast** transfers to a US counterparty: **[a-z] [A-Z] [0-9] & $ % # @** **~ = + - _ ' \" ! ?**. - /// The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id).. - /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: For normal, low-value transactions. * **fast**: Faster way to transfer funds but has higher fees. Recommended for high-priority, low-value transactions. * **wire**: Fastest way to transfer funds but has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: Instant way to transfer funds in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: High-value transfer to a recipient in a different country. * **internal**: Transfer to an Adyen-issued business bank account (by bank account number/IBAN).. + /// The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount**, you must specify the payment instrument ID of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account.. + /// The priority for the bank transfer. This sets the speed at which the transfer is sent and the fees that you have to pay. Required for transfers with `category` **bank**. Possible values: * **regular**: for normal, low-value transactions. * **fast**: a faster way to transfer funds, but the fees are higher. Recommended for high-priority, low-value transactions. * **wire**: the fastest way to transfer funds, but this has the highest fees. Recommended for high-priority, high-value transactions. * **instant**: for instant funds transfers in [SEPA countries](https://www.ecb.europa.eu/paym/integration/retail/sepa/html/index.en.html). * **crossBorder**: for high-value transfers to a recipient in a different country. * **internal**: for transfers to an Adyen-issued business bank account (by bank account number/IBAN).. /// Your reference for the transfer, used internally within your platform. If you don't provide this in the request, Adyen generates a unique reference.. - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both parties involved in the funds movement. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others.. + /// The type of transfer. Possible values: - **bankTransfer**: for push transfers to a transfer instrument or a bank account. The `category` must be **bank**. - **internalTransfer**: for push transfers between balance accounts. The `category` must be **internal**. - **internalDirectDebit**: for pull transfers (direct debits) between balance accounts. The `category` must be **internal**. . /// ultimateParty. - public TransferInfo(Amount amount = default(Amount), string balanceAccountId = default(string), CategoryEnum category = default(CategoryEnum), CounterpartyInfoV3 counterparty = default(CounterpartyInfoV3), string description = default(string), string paymentInstrumentId = default(string), PriorityEnum? priority = default(PriorityEnum?), string reference = default(string), string referenceForBeneficiary = default(string), UltimatePartyIdentification ultimateParty = default(UltimatePartyIdentification)) + public TransferInfo(Amount amount = default(Amount), string balanceAccountId = default(string), CategoryEnum category = default(CategoryEnum), CounterpartyInfoV3 counterparty = default(CounterpartyInfoV3), string description = default(string), string paymentInstrumentId = default(string), PriorityEnum? priority = default(PriorityEnum?), string reference = default(string), string referenceForBeneficiary = default(string), TypeEnum? type = default(TypeEnum?), UltimatePartyIdentification ultimateParty = default(UltimatePartyIdentification)) { this.Amount = amount; this.Category = category; @@ -159,6 +194,7 @@ protected TransferInfo() { } this.Priority = priority; this.Reference = reference; this.ReferenceForBeneficiary = referenceForBeneficiary; + this.Type = type; this.UltimateParty = ultimateParty; } @@ -169,9 +205,9 @@ protected TransferInfo() { } public Amount Amount { get; set; } /// - /// The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). + /// The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount** assigned to the balance account, you must specify the [payment instrument ID](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id) of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account. /// - /// The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/balanceAccounts__resParam_id). + /// The unique identifier of the source [balance account](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/balanceAccounts#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount** assigned to the balance account, you must specify the [payment instrument ID](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id) of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account. [DataMember(Name = "balanceAccountId", EmitDefaultValue = false)] public string BalanceAccountId { get; set; } @@ -189,9 +225,9 @@ protected TransferInfo() { } public string Description { get; set; } /// - /// The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id). + /// The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount**, you must specify the payment instrument ID of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account. /// - /// The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/#/balanceplatform/latest/post/paymentInstruments__resParam_id). + /// The unique identifier of the source [payment instrument](https://docs.adyen.com/api-explorer/balanceplatform/latest/post/paymentInstruments#responses-200-id). If you want to make a transfer using a **virtual** **bankAccount**, you must specify the payment instrument ID of the **virtual** **bankAccount**. If you only specify a balance account ID, Adyen uses the default **physical** **bankAccount** payment instrument assigned to the balance account. [DataMember(Name = "paymentInstrumentId", EmitDefaultValue = false)] public string PaymentInstrumentId { get; set; } @@ -203,9 +239,9 @@ protected TransferInfo() { } public string Reference { get; set; } /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both parties involved in the funds movement. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. /// - /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both the source and recipient of funds. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. + /// A reference that is sent to the recipient. This reference is also sent in all webhooks related to the transfer, so you can use it to track statuses for both parties involved in the funds movement. Supported characters: **a-z**, **A-Z**, **0-9**. The maximum length depends on the `category`. - **internal**: 80 characters - **bank**: 35 characters when transferring to an IBAN, 15 characters for others. [DataMember(Name = "referenceForBeneficiary", EmitDefaultValue = false)] public string ReferenceForBeneficiary { get; set; } @@ -232,6 +268,7 @@ public override string ToString() sb.Append(" Priority: ").Append(Priority).Append("\n"); sb.Append(" Reference: ").Append(Reference).Append("\n"); sb.Append(" ReferenceForBeneficiary: ").Append(ReferenceForBeneficiary).Append("\n"); + sb.Append(" Type: ").Append(Type).Append("\n"); sb.Append(" UltimateParty: ").Append(UltimateParty).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -311,6 +348,10 @@ public bool Equals(TransferInfo input) (this.ReferenceForBeneficiary != null && this.ReferenceForBeneficiary.Equals(input.ReferenceForBeneficiary)) ) && + ( + this.Type == input.Type || + this.Type.Equals(input.Type) + ) && ( this.UltimateParty == input.UltimateParty || (this.UltimateParty != null && @@ -357,6 +398,7 @@ public override int GetHashCode() { hashCode = (hashCode * 59) + this.ReferenceForBeneficiary.GetHashCode(); } + hashCode = (hashCode * 59) + this.Type.GetHashCode(); if (this.UltimateParty != null) { hashCode = (hashCode * 59) + this.UltimateParty.GetHashCode(); @@ -383,12 +425,6 @@ public override int GetHashCode() yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for Reference, length must be less than 80.", new [] { "Reference" }); } - // ReferenceForBeneficiary (string) maxLength - if (this.ReferenceForBeneficiary != null && this.ReferenceForBeneficiary.Length > 80) - { - yield return new System.ComponentModel.DataAnnotations.ValidationResult("Invalid value for ReferenceForBeneficiary, length must be less than 80.", new [] { "ReferenceForBeneficiary" }); - } - yield break; } } diff --git a/Adyen/Model/Transfers/TransferServiceRestServiceError.cs b/Adyen/Model/Transfers/TransferServiceRestServiceError.cs new file mode 100644 index 000000000..871a886d5 --- /dev/null +++ b/Adyen/Model/Transfers/TransferServiceRestServiceError.cs @@ -0,0 +1,302 @@ +/* +* Transfers API +* +* +* The version of the OpenAPI document: 4 +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.IO; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using System.ComponentModel.DataAnnotations; +using OpenAPIDateConverter = Adyen.ApiSerialization.OpenAPIDateConverter; + +namespace Adyen.Model.Transfers +{ + /// + /// TransferServiceRestServiceError + /// + [DataContract(Name = "TransferServiceRestServiceError")] + public partial class TransferServiceRestServiceError : IEquatable, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected TransferServiceRestServiceError() { } + /// + /// Initializes a new instance of the class. + /// + /// A human-readable explanation specific to this occurrence of the problem. (required). + /// A code that identifies the problem type. (required). + /// A unique URI that identifies the specific occurrence of the problem.. + /// Detailed explanation of each validation error, when applicable.. + /// A unique reference for the request, essentially the same as `pspReference`.. + /// response. + /// Detailed explanation of each attempt to route the transfer with the priorities from the request.. + /// The HTTP status code. (required). + /// A short, human-readable summary of the problem type. (required). + /// A URI that identifies the problem type, pointing to human-readable documentation on this problem type. (required). + public TransferServiceRestServiceError(string detail = default(string), string errorCode = default(string), string instance = default(string), List invalidFields = default(List), string requestId = default(string), Object response = default(Object), List routingDetails = default(List), int? status = default(int?), string title = default(string), string type = default(string)) + { + this.Detail = detail; + this.ErrorCode = errorCode; + this.Status = status; + this.Title = title; + this.Type = type; + this.Instance = instance; + this.InvalidFields = invalidFields; + this.RequestId = requestId; + this.Response = response; + this.RoutingDetails = routingDetails; + } + + /// + /// A human-readable explanation specific to this occurrence of the problem. + /// + /// A human-readable explanation specific to this occurrence of the problem. + [DataMember(Name = "detail", IsRequired = false, EmitDefaultValue = false)] + public string Detail { get; set; } + + /// + /// A code that identifies the problem type. + /// + /// A code that identifies the problem type. + [DataMember(Name = "errorCode", IsRequired = false, EmitDefaultValue = false)] + public string ErrorCode { get; set; } + + /// + /// A unique URI that identifies the specific occurrence of the problem. + /// + /// A unique URI that identifies the specific occurrence of the problem. + [DataMember(Name = "instance", EmitDefaultValue = false)] + public string Instance { get; set; } + + /// + /// Detailed explanation of each validation error, when applicable. + /// + /// Detailed explanation of each validation error, when applicable. + [DataMember(Name = "invalidFields", EmitDefaultValue = false)] + public List InvalidFields { get; set; } + + /// + /// A unique reference for the request, essentially the same as `pspReference`. + /// + /// A unique reference for the request, essentially the same as `pspReference`. + [DataMember(Name = "requestId", EmitDefaultValue = false)] + public string RequestId { get; set; } + + /// + /// Gets or Sets Response + /// + [DataMember(Name = "response", EmitDefaultValue = false)] + public Object Response { get; set; } + + /// + /// Detailed explanation of each attempt to route the transfer with the priorities from the request. + /// + /// Detailed explanation of each attempt to route the transfer with the priorities from the request. + [DataMember(Name = "routingDetails", EmitDefaultValue = false)] + public List RoutingDetails { get; set; } + + /// + /// The HTTP status code. + /// + /// The HTTP status code. + [DataMember(Name = "status", IsRequired = false, EmitDefaultValue = false)] + public int? Status { get; set; } + + /// + /// A short, human-readable summary of the problem type. + /// + /// A short, human-readable summary of the problem type. + [DataMember(Name = "title", IsRequired = false, EmitDefaultValue = false)] + public string Title { get; set; } + + /// + /// A URI that identifies the problem type, pointing to human-readable documentation on this problem type. + /// + /// A URI that identifies the problem type, pointing to human-readable documentation on this problem type. + [DataMember(Name = "type", IsRequired = false, EmitDefaultValue = false)] + public string Type { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class TransferServiceRestServiceError {\n"); + sb.Append(" Detail: ").Append(Detail).Append("\n"); + sb.Append(" ErrorCode: ").Append(ErrorCode).Append("\n"); + sb.Append(" Instance: ").Append(Instance).Append("\n"); + sb.Append(" InvalidFields: ").Append(InvalidFields).Append("\n"); + sb.Append(" RequestId: ").Append(RequestId).Append("\n"); + sb.Append(" Response: ").Append(Response).Append("\n"); + sb.Append(" RoutingDetails: ").Append(RoutingDetails).Append("\n"); + sb.Append(" Status: ").Append(Status).Append("\n"); + sb.Append(" Title: ").Append(Title).Append("\n"); + sb.Append(" Type: ").Append(Type).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject(this, Newtonsoft.Json.Formatting.Indented); + } + + /// + /// Returns true if objects are equal + /// + /// Object to be compared + /// Boolean + public override bool Equals(object input) + { + return this.Equals(input as TransferServiceRestServiceError); + } + + /// + /// Returns true if TransferServiceRestServiceError instances are equal + /// + /// Instance of TransferServiceRestServiceError to be compared + /// Boolean + public bool Equals(TransferServiceRestServiceError input) + { + if (input == null) + { + return false; + } + return + ( + this.Detail == input.Detail || + (this.Detail != null && + this.Detail.Equals(input.Detail)) + ) && + ( + this.ErrorCode == input.ErrorCode || + (this.ErrorCode != null && + this.ErrorCode.Equals(input.ErrorCode)) + ) && + ( + this.Instance == input.Instance || + (this.Instance != null && + this.Instance.Equals(input.Instance)) + ) && + ( + this.InvalidFields == input.InvalidFields || + this.InvalidFields != null && + input.InvalidFields != null && + this.InvalidFields.SequenceEqual(input.InvalidFields) + ) && + ( + this.RequestId == input.RequestId || + (this.RequestId != null && + this.RequestId.Equals(input.RequestId)) + ) && + ( + this.Response == input.Response || + (this.Response != null && + this.Response.Equals(input.Response)) + ) && + ( + this.RoutingDetails == input.RoutingDetails || + this.RoutingDetails != null && + input.RoutingDetails != null && + this.RoutingDetails.SequenceEqual(input.RoutingDetails) + ) && + ( + this.Status == input.Status || + this.Status.Equals(input.Status) + ) && + ( + this.Title == input.Title || + (this.Title != null && + this.Title.Equals(input.Title)) + ) && + ( + this.Type == input.Type || + (this.Type != null && + this.Type.Equals(input.Type)) + ); + } + + /// + /// Gets the hash code + /// + /// Hash code + public override int GetHashCode() + { + unchecked // Overflow is fine, just wrap + { + int hashCode = 41; + if (this.Detail != null) + { + hashCode = (hashCode * 59) + this.Detail.GetHashCode(); + } + if (this.ErrorCode != null) + { + hashCode = (hashCode * 59) + this.ErrorCode.GetHashCode(); + } + if (this.Instance != null) + { + hashCode = (hashCode * 59) + this.Instance.GetHashCode(); + } + if (this.InvalidFields != null) + { + hashCode = (hashCode * 59) + this.InvalidFields.GetHashCode(); + } + if (this.RequestId != null) + { + hashCode = (hashCode * 59) + this.RequestId.GetHashCode(); + } + if (this.Response != null) + { + hashCode = (hashCode * 59) + this.Response.GetHashCode(); + } + if (this.RoutingDetails != null) + { + hashCode = (hashCode * 59) + this.RoutingDetails.GetHashCode(); + } + hashCode = (hashCode * 59) + this.Status.GetHashCode(); + if (this.Title != null) + { + hashCode = (hashCode * 59) + this.Title.GetHashCode(); + } + if (this.Type != null) + { + hashCode = (hashCode * 59) + this.Type.GetHashCode(); + } + return hashCode; + } + } + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + public IEnumerable Validate(ValidationContext validationContext) + { + yield break; + } + } + +}