diff --git a/API_VERSION b/API_VERSION index fb72506858..8cbec87ebf 100644 --- a/API_VERSION +++ b/API_VERSION @@ -1 +1 @@ -2025-09-30.clover \ No newline at end of file +b7d9dec4da43fdbe727b3b4d8007a7099aa61beb \ No newline at end of file diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index f0bb0d526f..8a7edbe682 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v2028 \ No newline at end of file +v2100 \ No newline at end of file diff --git a/src/Stripe.net/Constants/ApiVersion.cs b/src/Stripe.net/Constants/ApiVersion.cs index 2f577f2080..3fd1388ce4 100644 --- a/src/Stripe.net/Constants/ApiVersion.cs +++ b/src/Stripe.net/Constants/ApiVersion.cs @@ -3,7 +3,7 @@ namespace Stripe { internal class ApiVersion { - public const string Current = "2025-09-30.clover"; + public const string Current = "2025-10-29.clover"; public const string CurrentMajor = "clover"; } } \ No newline at end of file diff --git a/src/Stripe.net/Constants/EventTypes.cs b/src/Stripe.net/Constants/EventTypes.cs index 64fd5cf654..c5488baa38 100644 --- a/src/Stripe.net/Constants/EventTypes.cs +++ b/src/Stripe.net/Constants/EventTypes.cs @@ -54,6 +54,11 @@ public static class EventTypes /// public const string ApplicationFeeRefunded = "application_fee.refunded"; + /// + /// Occurs whenever a balance settings status or property has changed. + /// + public const string BalanceSettingsUpdated = "balance_settings.updated"; + /// /// Occurs whenever your Stripe balance has been updated (e.g., when a charge is available /// to be paid out). By default, Stripe automatically transfers funds in your balance to @@ -546,6 +551,12 @@ public static class EventTypes /// public const string InvoicePaymentActionRequired = "invoice.payment_action_required"; + /// + /// Occurs when an invoice requires a payment using a payment method that cannot be + /// processed by Stripe. + /// + public const string InvoicePaymentAttemptRequired = "invoice.payment_attempt_required"; + /// /// Occurs whenever an invoice payment attempt fails, due to either a declined payment, /// including soft decline, or to the lack of a stored payment method. diff --git a/src/Stripe.net/Constants/FilePurpose.cs b/src/Stripe.net/Constants/FilePurpose.cs index b1d8112359..eb0738cffb 100644 --- a/src/Stripe.net/Constants/FilePurpose.cs +++ b/src/Stripe.net/Constants/FilePurpose.cs @@ -29,6 +29,8 @@ public static class FilePurpose public const string PciDocument = "pci_document"; + public const string PlatformTermsOfService = "platform_terms_of_service"; + public const string Selfie = "selfie"; public const string SigmaScheduledQuery = "sigma_scheduled_query"; diff --git a/src/Stripe.net/Entities/Accounts/AccountCompany.cs b/src/Stripe.net/Entities/Accounts/AccountCompany.cs index a8933b7d82..a7e851cfe1 100644 --- a/src/Stripe.net/Entities/Accounts/AccountCompany.cs +++ b/src/Stripe.net/Entities/Accounts/AccountCompany.cs @@ -177,6 +177,16 @@ public class AccountCompany : StripeEntity #endif public AccountCompanyRegistrationDate RegistrationDate { get; set; } + /// + /// This hash is used to attest that the representative is authorized to act as the + /// representative of their legal entity. + /// + [JsonProperty("representative_declaration")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("representative_declaration")] +#endif + public AccountCompanyRepresentativeDeclaration RepresentativeDeclaration { get; set; } + /// /// The category identifying the legal structure of the company or legal entity. Also /// available for accounts where + { + /// + /// The Unix timestamp marking when the representative declaration attestation was made. + /// + [JsonProperty("date")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("date")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? Date { get; set; } + + /// + /// The IP address from which the representative declaration attestation was made. + /// + [JsonProperty("ip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ip")] +#endif + public string Ip { get; set; } + + /// + /// The user-agent string from the browser where the representative declaration attestation + /// was made. + /// + [JsonProperty("user_agent")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("user_agent")] +#endif + public string UserAgent { get; set; } + } +} diff --git a/src/Stripe.net/Entities/BillingPortal/Configurations/Configuration.cs b/src/Stripe.net/Entities/BillingPortal/Configurations/Configuration.cs index cf7986ff93..d295989483 100644 --- a/src/Stripe.net/Entities/BillingPortal/Configurations/Configuration.cs +++ b/src/Stripe.net/Entities/BillingPortal/Configurations/Configuration.cs @@ -10,7 +10,10 @@ namespace Stripe.BillingPortal #endif /// - /// A portal configuration describes the functionality and behavior of a portal session. + /// A portal configuration describes the functionality and behavior you embed in a portal + /// session. Related guide: Configure the customer + /// portal. /// #if NET6_0_OR_GREATER [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs index 48c7844bd5..731225fc48 100644 --- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs +++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs @@ -19,7 +19,7 @@ public class ChargePaymentMethodDetailsCrypto : StripeEntity /// The blockchain network that the transaction was sent on. - /// One of: base, ethereum, or polygon. + /// One of: base, ethereum, polygon, or solana. /// [JsonProperty("network")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs index f2966d8d77..193a5335f1 100644 --- a/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs @@ -242,6 +242,12 @@ public class SessionPaymentMethodOptions : StripeEntity + { + /// + /// Indicates that you intend to make future payments with this PaymentIntent's payment + /// method. + /// + /// If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to + /// the Customer after the PaymentIntent is confirmed and the customer completes any + /// required actions. If you don't provide a Customer, you can still attach the payment method to a + /// Customer after the transaction completes. + /// + /// If the payment method is card_present and isn't a digital wallet, Stripe creates + /// and attaches a generated_card + /// payment method representing the card to the Customer instead. + /// + /// When processing card payments, Stripe uses setup_future_usage to help you comply + /// with regional legislation and network rules, such as SCA. + /// + [JsonProperty("setup_future_usage")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("setup_future_usage")] +#endif + public string SetupFutureUsage { get; set; } + } +} diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs index 0c1815308b..b0e56f94d7 100644 --- a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs +++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreview.cs @@ -369,14 +369,15 @@ public Customer Customer /// One of: acss_debit, affirm, afterpay_clearpay, alipay, /// alma, amazon_pay, au_becs_debit, bacs_debit, /// bancontact, billie, blik, boleto, card, - /// card_present, cashapp, crypto, customer_balance, eps, - /// fpx, giropay, grabpay, ideal, interac_present, - /// kakao_pay, klarna, konbini, kr_card, link, - /// mb_way, mobilepay, multibanco, naver_pay, - /// nz_bank_account, oxxo, p24, pay_by_bank, payco, - /// paynow, paypal, pix, promptpay, revolut_pay, - /// samsung_pay, satispay, sepa_debit, sofort, swish, - /// twint, us_bank_account, wechat_pay, or zip. + /// card_present, cashapp, crypto, custom, + /// customer_balance, eps, fpx, giropay, grabpay, + /// ideal, interac_present, kakao_pay, klarna, konbini, + /// kr_card, link, mb_way, mobilepay, multibanco, + /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, + /// payco, paynow, paypal, pix, promptpay, + /// revolut_pay, samsung_pay, satispay, sepa_debit, + /// sofort, swish, twint, us_bank_account, wechat_pay, or + /// zip. /// [JsonProperty("type")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Entities/CreditNotes/CreditNoteRefund.cs b/src/Stripe.net/Entities/CreditNotes/CreditNoteRefund.cs index 1c85661012..e1da026531 100644 --- a/src/Stripe.net/Entities/CreditNotes/CreditNoteRefund.cs +++ b/src/Stripe.net/Entities/CreditNotes/CreditNoteRefund.cs @@ -21,6 +21,15 @@ public class CreditNoteRefund : StripeEntity #endif public long AmountRefunded { get; set; } + /// + /// The PaymentRecord refund details associated with this credit note refund. + /// + [JsonProperty("payment_record_refund")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record_refund")] +#endif + public CreditNoteRefundPaymentRecordRefund PaymentRecordRefund { get; set; } + #region Expandable Refund /// @@ -61,5 +70,15 @@ public Refund Refund #endif internal ExpandableField InternalRefund { get; set; } #endregion + + /// + /// Type of the refund, one of refund or payment_record_refund. + /// One of: payment_record_refund, or refund. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } } } diff --git a/src/Stripe.net/Entities/CreditNotes/CreditNoteRefundPaymentRecordRefund.cs b/src/Stripe.net/Entities/CreditNotes/CreditNoteRefundPaymentRecordRefund.cs new file mode 100644 index 0000000000..0e677c2e0e --- /dev/null +++ b/src/Stripe.net/Entities/CreditNotes/CreditNoteRefundPaymentRecordRefund.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CreditNoteRefundPaymentRecordRefund : StripeEntity + { + /// + /// ID of the payment record. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } + + /// + /// ID of the refund group. + /// + [JsonProperty("refund_group")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("refund_group")] +#endif + public string RefundGroup { get; set; } + } +} diff --git a/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponents.cs b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponents.cs index 6192c24efb..a29d4b1214 100644 --- a/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponents.cs +++ b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponents.cs @@ -17,6 +17,25 @@ public class CustomerSessionComponents : StripeEntity #endif public CustomerSessionComponentsBuyButton BuyButton { get; set; } + /// + /// This hash contains whether the customer sheet is enabled and the features it supports. + /// + [JsonProperty("customer_sheet")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_sheet")] +#endif + public CustomerSessionComponentsCustomerSheet CustomerSheet { get; set; } + + /// + /// This hash contains whether the mobile payment element is enabled and the features it + /// supports. + /// + [JsonProperty("mobile_payment_element")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mobile_payment_element")] +#endif + public CustomerSessionComponentsMobilePaymentElement MobilePaymentElement { get; set; } + /// /// This hash contains whether the Payment Element is enabled and the features it supports. /// diff --git a/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsCustomerSheet.cs b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsCustomerSheet.cs new file mode 100644 index 0000000000..8d09e933cc --- /dev/null +++ b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsCustomerSheet.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsCustomerSheet : StripeEntity + { + /// + /// Whether the customer sheet is enabled. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool Enabled { get; set; } + + /// + /// This hash defines whether the customer sheet supports certain features. + /// + [JsonProperty("features")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("features")] +#endif + public CustomerSessionComponentsCustomerSheetFeatures Features { get; set; } + } +} diff --git a/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsCustomerSheetFeatures.cs b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsCustomerSheetFeatures.cs new file mode 100644 index 0000000000..3e4eaae646 --- /dev/null +++ b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsCustomerSheetFeatures.cs @@ -0,0 +1,46 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsCustomerSheetFeatures : StripeEntity + { + /// + /// A list of allow_redisplay + /// values that controls which saved payment methods the customer sheet displays by + /// filtering to only show payment methods with an allow_redisplay value that is + /// present in this list. + /// + /// If not specified, defaults to ["always"]. In order to display all saved payment methods, + /// specify ["always", "limited", "unspecified"]. + /// One of: always, limited, or unspecified. + /// + [JsonProperty("payment_method_allow_redisplay_filters")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_allow_redisplay_filters")] +#endif + public List PaymentMethodAllowRedisplayFilters { get; set; } + + /// + /// Controls whether the customer sheet displays the option to remove a saved payment + /// method.". + /// + /// Allowing buyers to remove their saved payment methods impacts subscriptions that depend + /// on that payment method. Removing the payment method detaches the customer + /// object from that PaymentMethod. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_remove")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_remove")] +#endif + public string PaymentMethodRemove { get; set; } + } +} diff --git a/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsMobilePaymentElement.cs b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsMobilePaymentElement.cs new file mode 100644 index 0000000000..d53f6455bb --- /dev/null +++ b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsMobilePaymentElement.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsMobilePaymentElement : StripeEntity + { + /// + /// Whether the mobile payment element is enabled. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool Enabled { get; set; } + + /// + /// This hash defines whether the mobile payment element supports certain features. + /// + [JsonProperty("features")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("features")] +#endif + public CustomerSessionComponentsMobilePaymentElementFeatures Features { get; set; } + } +} diff --git a/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsMobilePaymentElementFeatures.cs b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsMobilePaymentElementFeatures.cs new file mode 100644 index 0000000000..d30bbd9d9e --- /dev/null +++ b/src/Stripe.net/Entities/CustomerSessions/CustomerSessionComponentsMobilePaymentElementFeatures.cs @@ -0,0 +1,88 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsMobilePaymentElementFeatures : StripeEntity + { + /// + /// A list of allow_redisplay + /// values that controls which saved payment methods the mobile payment element displays by + /// filtering to only show payment methods with an allow_redisplay value that is + /// present in this list. + /// + /// If not specified, defaults to ["always"]. In order to display all saved payment methods, + /// specify ["always", "limited", "unspecified"]. + /// One of: always, limited, or unspecified. + /// + [JsonProperty("payment_method_allow_redisplay_filters")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_allow_redisplay_filters")] +#endif + public List PaymentMethodAllowRedisplayFilters { get; set; } + + /// + /// Controls whether or not the mobile payment element shows saved payment methods. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_redisplay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_redisplay")] +#endif + public string PaymentMethodRedisplay { get; set; } + + /// + /// Controls whether the mobile payment element displays the option to remove a saved + /// payment method.". + /// + /// Allowing buyers to remove their saved payment methods impacts subscriptions that depend + /// on that payment method. Removing the payment method detaches the customer + /// object from that PaymentMethod. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_remove")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_remove")] +#endif + public string PaymentMethodRemove { get; set; } + + /// + /// Controls whether the mobile payment element displays a checkbox offering to save a new + /// payment method. + /// + /// If a customer checks the box, the allow_redisplay + /// value on the PaymentMethod is set to 'always' at confirmation time. For + /// PaymentIntents, the setup_future_usage + /// value is also set to the value defined in payment_method_save_usage. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_save")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_save")] +#endif + public string PaymentMethodSave { get; set; } + + /// + /// Allows overriding the value of allow_override when saving a new payment method when + /// payment_method_save is set to disabled. Use values: "always", "limited", or + /// "unspecified". + /// + /// If not specified, defaults to nil (no override value). + /// One of: always, limited, or unspecified. + /// + [JsonProperty("payment_method_save_allow_redisplay_override")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_save_allow_redisplay_override")] +#endif + public string PaymentMethodSaveAllowRedisplayOverride { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Customers/CustomerTax.cs b/src/Stripe.net/Entities/Customers/CustomerTax.cs index df24d7c5b0..b735cbbec5 100644 --- a/src/Stripe.net/Entities/Customers/CustomerTax.cs +++ b/src/Stripe.net/Entities/Customers/CustomerTax.cs @@ -37,5 +37,17 @@ public class CustomerTax : StripeEntity [STJS.JsonPropertyName("location")] #endif public CustomerTaxLocation Location { get; set; } + + /// + /// The tax calculation provider used for location resolution. Defaults to stripe + /// when not using a third-party + /// provider. + /// One of: anrok, avalara, sphere, or stripe. + /// + [JsonProperty("provider")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("provider")] +#endif + public string Provider { get; set; } } } diff --git a/src/Stripe.net/Entities/Events/Event.cs b/src/Stripe.net/Entities/Events/Event.cs index 4fe42927e7..4bd3e41c81 100644 --- a/src/Stripe.net/Entities/Events/Event.cs +++ b/src/Stripe.net/Entities/Events/Event.cs @@ -138,7 +138,8 @@ public class Event : StripeEntity, IHasId, IHasObject /// account.external_account.updated, account.updated, /// application_fee.created, application_fee.refund.updated, /// application_fee.refunded, balance.available, - /// billing.alert.triggered, billing_portal.configuration.created, + /// balance_settings.updated, billing.alert.triggered, + /// billing_portal.configuration.created, /// billing_portal.configuration.updated, billing_portal.session.created, /// capability.updated, cash_balance.funds_available, charge.captured, /// charge.dispute.closed, charge.dispute.created, @@ -183,17 +184,17 @@ public class Event : StripeEntity, IHasId, IHasObject /// invoice.deleted, invoice.finalization_failed, invoice.finalized, /// invoice.marked_uncollectible, invoice.overdue, invoice.overpaid, /// invoice.paid, invoice.payment_action_required, - /// invoice.payment_failed, invoice.payment_succeeded, invoice.sent, - /// invoice.upcoming, invoice.updated, invoice.voided, - /// invoice.will_be_due, invoice_payment.paid, invoiceitem.created, - /// invoiceitem.deleted, issuing_authorization.created, - /// issuing_authorization.request, issuing_authorization.updated, - /// issuing_card.created, issuing_card.updated, - /// issuing_cardholder.created, issuing_cardholder.updated, - /// issuing_dispute.closed, issuing_dispute.created, - /// issuing_dispute.funds_reinstated, issuing_dispute.funds_rescinded, - /// issuing_dispute.submitted, issuing_dispute.updated, - /// issuing_personalization_design.activated, + /// invoice.payment_attempt_required, invoice.payment_failed, + /// invoice.payment_succeeded, invoice.sent, invoice.upcoming, + /// invoice.updated, invoice.voided, invoice.will_be_due, + /// invoice_payment.paid, invoiceitem.created, invoiceitem.deleted, + /// issuing_authorization.created, issuing_authorization.request, + /// issuing_authorization.updated, issuing_card.created, + /// issuing_card.updated, issuing_cardholder.created, + /// issuing_cardholder.updated, issuing_dispute.closed, + /// issuing_dispute.created, issuing_dispute.funds_reinstated, + /// issuing_dispute.funds_rescinded, issuing_dispute.submitted, + /// issuing_dispute.updated, issuing_personalization_design.activated, /// issuing_personalization_design.deactivated, /// issuing_personalization_design.rejected, /// issuing_personalization_design.updated, issuing_token.created, diff --git a/src/Stripe.net/Entities/Files/File.cs b/src/Stripe.net/Entities/Files/File.cs index 2e4d276c08..19f228fa55 100644 --- a/src/Stripe.net/Entities/Files/File.cs +++ b/src/Stripe.net/Entities/Files/File.cs @@ -86,9 +86,9 @@ public class File : StripeEntity, IHasId, IHasObject /// dispute_evidence, document_provider_identity_document, /// finance_report_run, financial_account_statement, identity_document, /// identity_document_downloadable, issuing_regulatory_reporting, - /// pci_document, selfie, sigma_scheduled_query, - /// tax_document_user_upload, terminal_android_apk, or - /// terminal_reader_splashscreen. + /// pci_document, platform_terms_of_service, selfie, + /// sigma_scheduled_query, tax_document_user_upload, + /// terminal_android_apk, or terminal_reader_splashscreen. /// [JsonProperty("purpose")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs b/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs index 413564c5be..51e078c47a 100644 --- a/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs +++ b/src/Stripe.net/Entities/InvoicePayments/InvoicePaymentPayment.cs @@ -104,6 +104,49 @@ public PaymentIntent PaymentIntent internal ExpandableField InternalPaymentIntent { get; set; } #endregion + #region Expandable PaymentRecord + + /// + /// (ID of the PaymentRecord) + /// ID of the PaymentRecord associated with this payment when type is + /// payment_record. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string PaymentRecordId + { + get => this.InternalPaymentRecord?.Id; + set => this.InternalPaymentRecord = SetExpandableFieldId(value, this.InternalPaymentRecord); + } + + /// + /// (Expanded) + /// ID of the PaymentRecord associated with this payment when type is + /// payment_record. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentRecord PaymentRecord + { + get => this.InternalPaymentRecord?.ExpandedObject; + set => this.InternalPaymentRecord = SetExpandableFieldObject(value, this.InternalPaymentRecord); + } + + [JsonProperty("payment_record")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalPaymentRecord { get; set; } + #endregion + /// /// Type of payment object associated with this invoice payment. /// One of: charge, or payment_intent. diff --git a/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs b/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs index 35fc36adfc..168d4a7728 100644 --- a/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs +++ b/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs @@ -38,10 +38,10 @@ public class InvoicePaymentSettings : StripeEntity /// settings. /// One of: ach_credit_transfer, ach_debit, acss_debit, affirm, /// amazon_pay, au_becs_debit, bacs_debit, bancontact, - /// boleto, card, cashapp, crypto, customer_balance, - /// eps, fpx, giropay, grabpay, ideal, - /// jp_credit_transfer, kakao_pay, klarna, konbini, - /// kr_card, link, multibanco, naver_pay, + /// boleto, card, cashapp, crypto, custom, + /// customer_balance, eps, fpx, giropay, grabpay, + /// ideal, jp_credit_transfer, kakao_pay, klarna, + /// konbini, kr_card, link, multibanco, naver_pay, /// nz_bank_account, p24, payco, paynow, paypal, /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit, /// sofort, swish, us_bank_account, or wechat_pay. diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs new file mode 100644 index 0000000000..98d1bfdb6f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecord.cs @@ -0,0 +1,216 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + /// + /// A Payment Attempt Record represents an individual attempt at making a payment, on or off + /// Stripe. Each payment attempt tries to collect a fixed amount of money from a fixed + /// customer and payment method. Payment Attempt Records are attached to Payment Records. + /// Only one attempt per Payment Record can have guaranteed funds. + /// + public class PaymentAttemptRecord : StripeEntity, IHasId, IHasMetadata, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("id")] +#endif + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("object")] +#endif + public string Object { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount")] +#endif + public PaymentAttemptRecordAmount Amount { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_authorized")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_authorized")] +#endif + public PaymentAttemptRecordAmountAuthorized AmountAuthorized { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_canceled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_canceled")] +#endif + public PaymentAttemptRecordAmountCanceled AmountCanceled { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_failed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_failed")] +#endif + public PaymentAttemptRecordAmountFailed AmountFailed { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_guaranteed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_guaranteed")] +#endif + public PaymentAttemptRecordAmountGuaranteed AmountGuaranteed { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_refunded")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_refunded")] +#endif + public PaymentAttemptRecordAmountRefunded AmountRefunded { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_requested")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_requested")] +#endif + public PaymentAttemptRecordAmountRequested AmountRequested { get; set; } + + /// + /// ID of the Connect application that created the PaymentAttemptRecord. + /// + [JsonProperty("application")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application")] +#endif + public string Application { get; set; } + + /// + /// Time at which the object was created. Measured in seconds since the Unix epoch. + /// + [JsonProperty("created")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("created")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Customer information for this payment. + /// + [JsonProperty("customer_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_details")] +#endif + public PaymentAttemptRecordCustomerDetails CustomerDetails { get; set; } + + /// + /// Indicates whether the customer was present in your checkout flow during this payment. + /// One of: off_session, or on_session. + /// + [JsonProperty("customer_presence")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_presence")] +#endif + public string CustomerPresence { get; set; } + + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Has the value true if the object exists in live mode or the value false if + /// the object exists in test mode. + /// + [JsonProperty("livemode")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("livemode")] +#endif + public bool Livemode { get; set; } + + /// + /// Set of key-value pairs that you can + /// attach to an object. This can be useful for storing additional information about the + /// object in a structured format. + /// + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + + /// + /// Information about the Payment Method debited for this payment. + /// + [JsonProperty("payment_method_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_details")] +#endif + public PaymentAttemptRecordPaymentMethodDetails PaymentMethodDetails { get; set; } + + /// + /// ID of the Payment Record this Payment Attempt Record belongs to. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } + + /// + /// Processor information associated with this payment. + /// + [JsonProperty("processor_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("processor_details")] +#endif + public PaymentAttemptRecordProcessorDetails ProcessorDetails { get; set; } + + /// + /// Indicates who reported the payment. + /// One of: self, or stripe. + /// + [JsonProperty("reported_by")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reported_by")] +#endif + public string ReportedBy { get; set; } + + /// + /// Shipping information for this payment. + /// + [JsonProperty("shipping_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping_details")] +#endif + public PaymentAttemptRecordShippingDetails ShippingDetails { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmount.cs new file mode 100644 index 0000000000..d7e37e3dcc --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmount.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmount : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountAuthorized.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountAuthorized.cs new file mode 100644 index 0000000000..1c51574a8d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountAuthorized.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmountAuthorized : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountCanceled.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountCanceled.cs new file mode 100644 index 0000000000..4d60c508d9 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountCanceled.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmountCanceled : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountFailed.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountFailed.cs new file mode 100644 index 0000000000..a1244e63d2 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountFailed.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmountFailed : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountGuaranteed.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountGuaranteed.cs new file mode 100644 index 0000000000..ebd770d66a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountGuaranteed.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmountGuaranteed : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountRefunded.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountRefunded.cs new file mode 100644 index 0000000000..ba3898cd59 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountRefunded.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmountRefunded : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountRequested.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountRequested.cs new file mode 100644 index 0000000000..65f3277ca1 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordAmountRequested.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordAmountRequested : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordCustomerDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordCustomerDetails.cs new file mode 100644 index 0000000000..81c3441119 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordCustomerDetails.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordCustomerDetails : StripeEntity + { + /// + /// ID of the Stripe Customer associated with this payment. + /// + [JsonProperty("customer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer")] +#endif + public string Customer { get; set; } + + /// + /// The customer's email address. + /// + [JsonProperty("email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("email")] +#endif + public string Email { get; set; } + + /// + /// The customer's name. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The customer's phone number. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs new file mode 100644 index 0000000000..2cf4480a6b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetails.cs @@ -0,0 +1,396 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetails : StripeEntity + { + [JsonProperty("ach_credit_transfer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ach_credit_transfer")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer AchCreditTransfer { get; set; } + + [JsonProperty("ach_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ach_debit")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAchDebit AchDebit { get; set; } + + [JsonProperty("acss_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("acss_debit")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAcssDebit AcssDebit { get; set; } + + [JsonProperty("affirm")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("affirm")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAffirm Affirm { get; set; } + + [JsonProperty("afterpay_clearpay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("afterpay_clearpay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay AfterpayClearpay { get; set; } + + [JsonProperty("alipay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("alipay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAlipay Alipay { get; set; } + + [JsonProperty("alma")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("alma")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAlma Alma { get; set; } + + [JsonProperty("amazon_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amazon_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAmazonPay AmazonPay { get; set; } + + [JsonProperty("au_becs_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("au_becs_debit")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit AuBecsDebit { get; set; } + + [JsonProperty("bacs_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bacs_debit")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBacsDebit BacsDebit { get; set; } + + [JsonProperty("bancontact")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bancontact")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBancontact Bancontact { get; set; } + + [JsonProperty("billie")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("billie")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBillie Billie { get; set; } + + /// + /// The billing details associated with the method of payment. + /// + [JsonProperty("billing_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("billing_details")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBillingDetails BillingDetails { get; set; } + + [JsonProperty("blik")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("blik")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBlik Blik { get; set; } + + [JsonProperty("boleto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("boleto")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBoleto Boleto { get; set; } + + /// + /// Details of the card used for this payment attempt. + /// + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCard Card { get; set; } + + [JsonProperty("card_present")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card_present")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardPresent CardPresent { get; set; } + + [JsonProperty("cashapp")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cashapp")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCashapp Cashapp { get; set; } + + [JsonProperty("crypto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("crypto")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCrypto Crypto { get; set; } + + /// + /// Custom Payment Methods represent Payment Method types not modeled directly in the Stripe + /// API. This resource consists of details about the custom payment method used for this + /// payment attempt. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCustom Custom { get; set; } + + [JsonProperty("customer_balance")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_balance")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCustomerBalance CustomerBalance { get; set; } + + [JsonProperty("eps")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("eps")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsEps Eps { get; set; } + + [JsonProperty("fpx")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fpx")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsFpx Fpx { get; set; } + + [JsonProperty("giropay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("giropay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsGiropay Giropay { get; set; } + + [JsonProperty("grabpay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("grabpay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsGrabpay Grabpay { get; set; } + + [JsonProperty("ideal")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ideal")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsIdeal Ideal { get; set; } + + [JsonProperty("interac_present")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("interac_present")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsInteracPresent InteracPresent { get; set; } + + [JsonProperty("kakao_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("kakao_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKakaoPay KakaoPay { get; set; } + + [JsonProperty("klarna")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("klarna")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKlarna Klarna { get; set; } + + [JsonProperty("konbini")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("konbini")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKonbini Konbini { get; set; } + + [JsonProperty("kr_card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("kr_card")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKrCard KrCard { get; set; } + + [JsonProperty("link")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("link")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsLink Link { get; set; } + + [JsonProperty("mb_way")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mb_way")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsMbWay MbWay { get; set; } + + [JsonProperty("mobilepay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mobilepay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsMobilepay Mobilepay { get; set; } + + [JsonProperty("multibanco")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("multibanco")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsMultibanco Multibanco { get; set; } + + [JsonProperty("naver_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("naver_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsNaverPay NaverPay { get; set; } + + [JsonProperty("nz_bank_account")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("nz_bank_account")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsNzBankAccount NzBankAccount { get; set; } + + [JsonProperty("oxxo")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("oxxo")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsOxxo Oxxo { get; set; } + + [JsonProperty("p24")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("p24")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsP24 P24 { get; set; } + + [JsonProperty("pay_by_bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("pay_by_bank")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPayByBank PayByBank { get; set; } + + [JsonProperty("payco")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payco")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPayco Payco { get; set; } + + /// + /// ID of the Stripe PaymentMethod used to make this payment. + /// + [JsonProperty("payment_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method")] +#endif + public string PaymentMethod { get; set; } + + [JsonProperty("paynow")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("paynow")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPaynow Paynow { get; set; } + + [JsonProperty("paypal")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("paypal")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPaypal Paypal { get; set; } + + [JsonProperty("pix")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("pix")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPix Pix { get; set; } + + [JsonProperty("promptpay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("promptpay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPromptpay Promptpay { get; set; } + + [JsonProperty("revolut_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("revolut_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsRevolutPay RevolutPay { get; set; } + + [JsonProperty("samsung_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("samsung_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsSamsungPay SamsungPay { get; set; } + + [JsonProperty("satispay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("satispay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsSatispay Satispay { get; set; } + + [JsonProperty("sepa_credit_transfer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sepa_credit_transfer")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer SepaCreditTransfer { get; set; } + + [JsonProperty("sepa_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sepa_debit")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsSepaDebit SepaDebit { get; set; } + + [JsonProperty("sofort")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sofort")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsSofort Sofort { get; set; } + + [JsonProperty("stripe_account")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("stripe_account")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsStripeAccount StripeAccount { get; set; } + + [JsonProperty("swish")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("swish")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsSwish Swish { get; set; } + + [JsonProperty("twint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("twint")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsTwint Twint { get; set; } + + /// + /// The type of transaction-specific details of the payment method used in the payment. See + /// PaymentMethod.type + /// for the full list of possible types. An additional hash is included on + /// payment_method_details with a name matching this value. It contains information + /// specific to the payment method. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + + /// + /// Details of the US Bank Account used for this payment attempt. + /// + [JsonProperty("us_bank_account")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("us_bank_account")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsUsBankAccount UsBankAccount { get; set; } + + [JsonProperty("wechat")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wechat")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsWechat Wechat { get; set; } + + [JsonProperty("wechat_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wechat_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsWechatPay WechatPay { get; set; } + + [JsonProperty("zip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("zip")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsZip Zip { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer.cs new file mode 100644 index 0000000000..3fc5059941 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAchCreditTransfer : StripeEntity + { + /// + /// Account number to transfer funds to. + /// + [JsonProperty("account_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_number")] +#endif + public string AccountNumber { get; set; } + + /// + /// Name of the bank associated with the routing number. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Routing transit number for the bank account to transfer funds to. + /// + [JsonProperty("routing_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("routing_number")] +#endif + public string RoutingNumber { get; set; } + + /// + /// SWIFT code of the bank associated with the routing number. + /// + [JsonProperty("swift_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("swift_code")] +#endif + public string SwiftCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchDebit.cs new file mode 100644 index 0000000000..dcd3ca760e --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAchDebit.cs @@ -0,0 +1,68 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAchDebit : StripeEntity + { + /// + /// Type of entity that holds the account. This can be either individual or + /// company. + /// One of: company, or individual. + /// + [JsonProperty("account_holder_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_type")] +#endif + public string AccountHolderType { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Two-letter ISO code representing the country the bank account is located in. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Routing transit number of the bank account. + /// + [JsonProperty("routing_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("routing_number")] +#endif + public string RoutingNumber { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAcssDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAcssDebit.cs new file mode 100644 index 0000000000..15dc865bc7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAcssDebit.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAcssDebit : StripeEntity + { + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Institution number of the bank account. + /// + [JsonProperty("institution_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("institution_number")] +#endif + public string InstitutionNumber { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// ID of the mandate used to make this payment. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + + /// + /// Transit number of the bank account. + /// + [JsonProperty("transit_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transit_number")] +#endif + public string TransitNumber { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAffirm.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAffirm.cs new file mode 100644 index 0000000000..92a2f41a54 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAffirm.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAffirm : StripeEntity + { + /// + /// ID of the location that + /// this transaction's reader is assigned to. + /// + [JsonProperty("location")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("location")] +#endif + public string Location { get; set; } + + /// + /// ID of the reader this + /// transaction was made on. + /// + [JsonProperty("reader")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reader")] +#endif + public string Reader { get; set; } + + /// + /// The Affirm transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay.cs new file mode 100644 index 0000000000..cd7e73896b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAfterpayClearpay : StripeEntity + { + /// + /// The Afterpay order ID associated with this payment intent. + /// + [JsonProperty("order_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("order_id")] +#endif + public string OrderId { get; set; } + + /// + /// Order identifier shown to the merchant in Afterpay’s online portal. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlipay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlipay.cs new file mode 100644 index 0000000000..d9df7a1589 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlipay.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAlipay : StripeEntity + { + /// + /// Uniquely identifies this particular Alipay account. You can use this attribute to check + /// whether two Alipay accounts are the same. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// Uniquely identifies this particular Alipay account. You can use this attribute to check + /// whether two Alipay accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Transaction ID of this particular Alipay transaction. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlma.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlma.cs new file mode 100644 index 0000000000..8da7be0e41 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlma.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAlma : StripeEntity + { + [JsonProperty("installments")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("installments")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAlmaInstallments Installments { get; set; } + + /// + /// The Alma transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlmaInstallments.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlmaInstallments.cs new file mode 100644 index 0000000000..8a60335e7a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAlmaInstallments.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAlmaInstallments : StripeEntity + { + /// + /// The number of installments. + /// + [JsonProperty("count")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("count")] +#endif + public long Count { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPay.cs new file mode 100644 index 0000000000..807c597ce2 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPay.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAmazonPay : StripeEntity + { + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding Funding { get; set; } + + /// + /// The Amazon Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding.cs new file mode 100644 index 0000000000..8a9a6dcf2e --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAmazonPayFunding : StripeEntity + { + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard Card { get; set; } + + /// + /// funding type of the underlying payment method. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard.cs new file mode 100644 index 0000000000..3f1f717e99 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAmazonPayFundingCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long? ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long? ExpYear { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit.cs new file mode 100644 index 0000000000..37c21720a7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit.cs @@ -0,0 +1,48 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsAuBecsDebit : StripeEntity + { + /// + /// Bank-State-Branch number of the bank account. + /// + [JsonProperty("bsb_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bsb_number")] +#endif + public string BsbNumber { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// ID of the mandate used to make this payment. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBacsDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBacsDebit.cs new file mode 100644 index 0000000000..c668237321 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBacsDebit.cs @@ -0,0 +1,48 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsBacsDebit : StripeEntity + { + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// ID of the mandate used to make this payment. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + + /// + /// Sort code of the bank account. (e.g., 10-20-30). + /// + [JsonProperty("sort_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sort_code")] +#endif + public string SortCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBancontact.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBancontact.cs new file mode 100644 index 0000000000..18c5600725 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBancontact.cs @@ -0,0 +1,154 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentAttemptRecordPaymentMethodDetailsBancontact : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + #region Expandable GeneratedSepaDebit + + /// + /// (ID of the PaymentMethod) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitId + { + get => this.InternalGeneratedSepaDebit?.Id; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit); + } + + /// + /// (Expanded) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentMethod GeneratedSepaDebit + { + get => this.InternalGeneratedSepaDebit?.ExpandedObject; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit); + } + + [JsonProperty("generated_sepa_debit")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebit { get; set; } + #endregion + + #region Expandable GeneratedSepaDebitMandate + + /// + /// (ID of the Mandate) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitMandateId + { + get => this.InternalGeneratedSepaDebitMandate?.Id; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate); + } + + /// + /// (Expanded) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate GeneratedSepaDebitMandate + { + get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate); + } + + [JsonProperty("generated_sepa_debit_mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit_mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; } + #endregion + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("iban_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban_last4")] +#endif + public string IbanLast4 { get; set; } + + /// + /// Preferred language of the Bancontact authorization page that the customer is redirected + /// to. Can be one of en, de, fr, or nl. + /// One of: de, en, fr, or nl. + /// + [JsonProperty("preferred_language")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_language")] +#endif + public string PreferredLanguage { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by Bancontact directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillie.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillie.cs new file mode 100644 index 0000000000..f218930940 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillie.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsBillie : StripeEntity + { + /// + /// The Billie transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillingDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillingDetails.cs new file mode 100644 index 0000000000..26d5815e5c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillingDetails.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsBillingDetails : StripeEntity + { + /// + /// A representation of a physical address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsBillingDetailsAddress Address { get; set; } + + /// + /// The billing email associated with the method of payment. + /// + [JsonProperty("email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("email")] +#endif + public string Email { get; set; } + + /// + /// The billing name associated with the method of payment. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The billing phone number associated with the method of payment. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillingDetailsAddress.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillingDetailsAddress.cs new file mode 100644 index 0000000000..0ca47e3589 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBillingDetailsAddress.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsBillingDetailsAddress : StripeEntity + { + /// + /// City, district, suburb, town, or village. + /// + [JsonProperty("city")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("city")] +#endif + public string City { get; set; } + + /// + /// Two-letter country code (ISO + /// 3166-1 alpha-2). + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Address line 1, such as the street, PO Box, or company name. + /// + [JsonProperty("line1")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line1")] +#endif + public string Line1 { get; set; } + + /// + /// Address line 2, such as the apartment, suite, unit, or building. + /// + [JsonProperty("line2")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line2")] +#endif + public string Line2 { get; set; } + + /// + /// ZIP or postal code. + /// + [JsonProperty("postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("postal_code")] +#endif + public string PostalCode { get; set; } + + /// + /// State, county, province, or region. + /// + [JsonProperty("state")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("state")] +#endif + public string State { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBlik.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBlik.cs new file mode 100644 index 0000000000..cd6176919f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBlik.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsBlik : StripeEntity + { + /// + /// A unique and immutable identifier assigned by BLIK to every buyer. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBoleto.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBoleto.cs new file mode 100644 index 0000000000..03575a0d61 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBoleto.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsBoleto : StripeEntity + { + /// + /// The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses + /// consumers). + /// + [JsonProperty("tax_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tax_id")] +#endif + public string TaxId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs new file mode 100644 index 0000000000..de8b905b74 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs @@ -0,0 +1,175 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// One of: amex, cartes_bancaires, diners, discover, + /// eftpos_au, interac, jcb, link, mastercard, + /// unionpay, unknown, or visa. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// When using manual capture, a future timestamp at which the charge will be automatically + /// refunded if uncaptured. + /// + [JsonProperty("capture_before")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("capture_before")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Check results by Card networks on Card address and CVC at time of payment. + /// + [JsonProperty("checks")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("checks")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardChecks Checks { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long ExpYear { get; set; } + + /// + /// Uniquely identifies this particular card number. You can use this attribute to check + /// whether two customers who’ve signed up with you are using the same card number, for + /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the + /// tokenized number might be provided instead of the underlying card number. + /// + /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two + /// fingerprints for the same card---one for India and one for the rest of the world.. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// One of: credit, debit, prepaid, or unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// True if this payment was marked as MOTO and out of scope for SCA. + /// + [JsonProperty("moto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("moto")] +#endif + public bool Moto { get; set; } + + /// + /// Identifies which network this charge was processed on. Can be amex, + /// cartes_bancaires, diners, discover, eftpos_au, + /// interac, jcb, link, mastercard, unionpay, + /// visa, or unknown. + /// One of: amex, cartes_bancaires, diners, discover, + /// eftpos_au, interac, jcb, link, mastercard, + /// unionpay, unknown, or visa. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// If this card has network token credentials, this contains the details of the network + /// token credentials. + /// + [JsonProperty("network_token")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_token")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken NetworkToken { get; set; } + + /// + /// This is used by the financial networks to identify a transaction. Visa calls this the + /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the + /// Acquirer Reference Data. This value will be present if it is returned by the financial + /// network in the authorization response, and null otherwise. + /// + [JsonProperty("network_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_transaction_id")] +#endif + public string NetworkTransactionId { get; set; } + + /// + /// Populated if this transaction used 3D Secure authentication. + /// + [JsonProperty("three_d_secure")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("three_d_secure")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure ThreeDSecure { get; set; } + + /// + /// If this Card is part of a card wallet, this contains the details of the card wallet. + /// + [JsonProperty("wallet")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wallet")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardWallet Wallet { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardChecks.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardChecks.cs new file mode 100644 index 0000000000..ed24e8d833 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardChecks.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardChecks : StripeEntity + { + /// + /// One of: fail, pass, unavailable, or unchecked. + /// + [JsonProperty("address_line1_check")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address_line1_check")] +#endif + public string AddressLine1Check { get; set; } + + /// + /// One of: fail, pass, unavailable, or unchecked. + /// + [JsonProperty("address_postal_code_check")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address_postal_code_check")] +#endif + public string AddressPostalCodeCheck { get; set; } + + /// + /// One of: fail, pass, unavailable, or unchecked. + /// + [JsonProperty("cvc_check")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cvc_check")] +#endif + public string CvcCheck { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken.cs new file mode 100644 index 0000000000..ff63a3d4ce --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardNetworkToken : StripeEntity + { + /// + /// Indicates if Stripe used a network token, either user provided or Stripe managed when + /// processing the transaction. + /// + [JsonProperty("used")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("used")] +#endif + public bool Used { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresent.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresent.cs new file mode 100644 index 0000000000..4ab40f7813 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresent.cs @@ -0,0 +1,273 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardPresent : StripeEntity + { + /// + /// The authorized amount. + /// + [JsonProperty("amount_authorized")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_authorized")] +#endif + public long? AmountAuthorized { get; set; } + + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// The product code that + /// identifies the specific program or product associated with a card. + /// + [JsonProperty("brand_product")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand_product")] +#endif + public string BrandProduct { get; set; } + + /// + /// When using manual capture, a future timestamp after which the charge will be + /// automatically refunded if uncaptured. + /// + [JsonProperty("capture_before")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("capture_before")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// The cardholder name as read from the card, in ISO 7813 format. May include + /// alphanumeric characters, special characters and first/last name separator (/). In + /// some cases, the cardholder name may not be available depending on how the issuer has + /// configured the card. Cardholder name is typically not available on swipe or contactless + /// payments, such as those made with Apple Pay and Google Pay. + /// + [JsonProperty("cardholder_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_name")] +#endif + public string CardholderName { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// A high-level description of the type of cards issued in this range. (For internal use + /// only and not typically available in standard API requests.). + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Authorization response cryptogram. + /// + [JsonProperty("emv_auth_data")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("emv_auth_data")] +#endif + public string EmvAuthData { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long ExpYear { get; set; } + + /// + /// Uniquely identifies this particular card number. You can use this attribute to check + /// whether two customers who’ve signed up with you are using the same card number, for + /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the + /// tokenized number might be provided instead of the underlying card number. + /// + /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two + /// fingerprints for the same card---one for India and one for the rest of the world.. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be + /// attached to a Customer for future transactions. Only present if it was possible to + /// generate a card PaymentMethod. + /// + [JsonProperty("generated_card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_card")] +#endif + public string GeneratedCard { get; set; } + + /// + /// Issuer identification number of the card. (For internal use only and not typically + /// available in standard API requests.). + /// + [JsonProperty("iin")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iin")] +#endif + public string Iin { get; set; } + + /// + /// Whether this PaymentIntent is + /// eligible for incremental authorizations. Request support using request_incremental_authorization_support. + /// + [JsonProperty("incremental_authorization_supported")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("incremental_authorization_supported")] +#endif + public bool IncrementalAuthorizationSupported { get; set; } + + /// + /// The name of the card's issuing bank. (For internal use only and not typically available + /// in standard API requests.). + /// + [JsonProperty("issuer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("issuer")] +#endif + public string Issuer { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Identifies which network this charge was processed on. Can be amex, + /// cartes_bancaires, diners, discover, eftpos_au, + /// interac, jcb, link, mastercard, unionpay, + /// visa, or unknown. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// This is used by the financial networks to identify a transaction. Visa calls this the + /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the + /// Acquirer Reference Data. This value will be present if it is returned by the financial + /// network in the authorization response, and null otherwise. + /// + [JsonProperty("network_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_transaction_id")] +#endif + public string NetworkTransactionId { get; set; } + + /// + /// Details about payments collected offline. + /// + [JsonProperty("offline")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("offline")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline Offline { get; set; } + + /// + /// Defines whether the authorized amount can be over-captured or not. + /// + [JsonProperty("overcapture_supported")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("overcapture_supported")] +#endif + public bool OvercaptureSupported { get; set; } + + /// + /// The languages that the issuing bank recommends using for localizing any customer-facing + /// text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's + /// chip. + /// + [JsonProperty("preferred_locales")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_locales")] +#endif + public List PreferredLocales { get; set; } + + /// + /// How card details were read in this transaction. + /// One of: contact_emv, contactless_emv, contactless_magstripe_mode, + /// magnetic_stripe_fallback, or magnetic_stripe_track2. + /// + [JsonProperty("read_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("read_method")] +#endif + public string ReadMethod { get; set; } + + /// + /// A collection of fields required to be displayed on receipts. Only required for EMV + /// transactions. + /// + [JsonProperty("receipt")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("receipt")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt Receipt { get; set; } + + [JsonProperty("wallet")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wallet")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet Wallet { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline.cs new file mode 100644 index 0000000000..a16eb61673 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardPresentOffline : StripeEntity + { + /// + /// Time at which the payment was collected while offline. + /// + [JsonProperty("stored_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("stored_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? StoredAt { get; set; } + + /// + /// The method used to process this payment method offline. Only deferred is allowed. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt.cs new file mode 100644 index 0000000000..91196f0d17 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt.cs @@ -0,0 +1,102 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardPresentReceipt : StripeEntity + { + /// + /// The type of account being debited or credited. + /// One of: checking, credit, prepaid, or unknown. + /// + [JsonProperty("account_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_type")] +#endif + public string AccountType { get; set; } + + /// + /// The Application Cryptogram, a unique value generated by the card to authenticate the + /// transaction with issuers. + /// + [JsonProperty("application_cryptogram")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_cryptogram")] +#endif + public string ApplicationCryptogram { get; set; } + + /// + /// The Application Identifier (AID) on the card used to determine which networks are + /// eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the + /// card's chip. + /// + [JsonProperty("application_preferred_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_preferred_name")] +#endif + public string ApplicationPreferredName { get; set; } + + /// + /// Identifier for this transaction. + /// + [JsonProperty("authorization_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_code")] +#endif + public string AuthorizationCode { get; set; } + + /// + /// EMV tag 8A. A code returned by the card issuer. + /// + [JsonProperty("authorization_response_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_response_code")] +#endif + public string AuthorizationResponseCode { get; set; } + + /// + /// Describes the method used by the cardholder to verify ownership of the card. One of the + /// following: approval, failure, none, offline_pin, + /// offline_pin_and_signature, online_pin, or signature. + /// + [JsonProperty("cardholder_verification_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_verification_method")] +#endif + public string CardholderVerificationMethod { get; set; } + + /// + /// Similar to the application_preferred_name, identifying the applications (AIDs) available + /// on the card. Referenced from EMV tag 84. + /// + [JsonProperty("dedicated_file_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dedicated_file_name")] +#endif + public string DedicatedFileName { get; set; } + + /// + /// A 5-byte string that records the checks and validations that occur between the card and + /// the terminal. These checks determine how the terminal processes the transaction and what + /// risk tolerance is acceptable. Referenced from EMV Tag 95. + /// + [JsonProperty("terminal_verification_results")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("terminal_verification_results")] +#endif + public string TerminalVerificationResults { get; set; } + + /// + /// An indication of which steps were completed during the card read process. Referenced + /// from EMV Tag 9B. + /// + [JsonProperty("transaction_status_information")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_status_information")] +#endif + public string TransactionStatusInformation { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet.cs new file mode 100644 index 0000000000..96da6a347a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet.cs @@ -0,0 +1,22 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardPresentWallet : StripeEntity + { + /// + /// The type of mobile wallet, one of apple_pay, google_pay, + /// samsung_pay, or unknown. + /// One of: apple_pay, google_pay, samsung_pay, or unknown. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure.cs new file mode 100644 index 0000000000..d7a9d046af --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardThreeDSecure : StripeEntity + { + /// + /// One of: challenge, or frictionless. + /// + [JsonProperty("authentication_flow")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authentication_flow")] +#endif + public string AuthenticationFlow { get; set; } + + /// + /// One of: attempt_acknowledged, authenticated, exempted, + /// failed, not_supported, or processing_error. + /// + [JsonProperty("result")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("result")] +#endif + public string Result { get; set; } + + /// + /// One of: abandoned, bypassed, canceled, card_not_enrolled, + /// network_not_supported, protocol_error, or rejected. + /// + [JsonProperty("result_reason")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("result_reason")] +#endif + public string ResultReason { get; set; } + + /// + /// One of: 1.0.2, 2.1.0, or 2.2.0. + /// + [JsonProperty("version")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("version")] +#endif + public string Version { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWallet.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWallet.cs new file mode 100644 index 0000000000..136cd2a528 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWallet.cs @@ -0,0 +1,43 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardWallet : StripeEntity + { + [JsonProperty("apple_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("apple_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardWalletApplePay ApplePay { get; set; } + + /// + /// (For tokenized numbers only.) The last four digits of the device account number. + /// + [JsonProperty("dynamic_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dynamic_last4")] +#endif + public string DynamicLast4 { get; set; } + + [JsonProperty("google_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("google_pay")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsCardWalletGooglePay GooglePay { get; set; } + + /// + /// The type of the card wallet, one of apple_pay or google_pay. An additional + /// hash is included on the Wallet subhash with a name matching this value. It contains + /// additional information specific to the card wallet type. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWalletApplePay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWalletApplePay.cs new file mode 100644 index 0000000000..2dcdf4174a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWalletApplePay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCardWalletApplePay : StripeEntity + { + /// + /// Type of the apple_pay transaction, one of apple_pay or apple_pay_later. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWalletGooglePay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWalletGooglePay.cs new file mode 100644 index 0000000000..271dc83ee1 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCardWalletGooglePay.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsCardWalletGooglePay : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCashapp.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCashapp.cs new file mode 100644 index 0000000000..32f122f929 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCashapp.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCashapp : StripeEntity + { + /// + /// A unique and immutable identifier assigned by Cash App to every buyer. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// A public identifier for buyers using Cash App. + /// + [JsonProperty("cashtag")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cashtag")] +#endif + public string Cashtag { get; set; } + + /// + /// A unique and immutable identifier of payments assigned by Cash App. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs new file mode 100644 index 0000000000..f9487ba03d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCrypto : StripeEntity + { + /// + /// The wallet address of the customer. + /// + [JsonProperty("buyer_address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_address")] +#endif + public string BuyerAddress { get; set; } + + /// + /// The blockchain network that the transaction was sent on. + /// One of: base, ethereum, polygon, or solana. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// The token currency that the transaction was sent with. + /// One of: usdc, usdg, or usdp. + /// + [JsonProperty("token_currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("token_currency")] +#endif + public string TokenCurrency { get; set; } + + /// + /// The blockchain transaction hash of the crypto payment. + /// + [JsonProperty("transaction_hash")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_hash")] +#endif + public string TransactionHash { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustom.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustom.cs new file mode 100644 index 0000000000..190522682b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustom.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsCustom : StripeEntity + { + /// + /// Display name for the custom (user-defined) payment method type used to make this + /// payment. + /// + [JsonProperty("display_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_name")] +#endif + public string DisplayName { get; set; } + + /// + /// The custom payment method type associated with this payment. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustomerBalance.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustomerBalance.cs new file mode 100644 index 0000000000..de5ccea81d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCustomerBalance.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsCustomerBalance : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsEps.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsEps.cs new file mode 100644 index 0000000000..965231462d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsEps.cs @@ -0,0 +1,57 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsEps : StripeEntity + { + /// + /// The customer's bank. Should be one of arzte_und_apotheker_bank, + /// austrian_anadi_bank_ag, bank_austria, bankhaus_carl_spangler, + /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag, + /// brull_kallmus_bank_ag, btv_vier_lander_bank, + /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank, + /// easybank_ag, erste_bank_und_sparkassen, + /// hypo_alpeadriabank_international_ag, + /// hypo_noe_lb_fur_niederosterreich_u_wien, + /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag, + /// hypo_vorarlberg_bank_ag, hypo_bank_burgenland_aktiengesellschaft, + /// marchfelder_bank, oberbank_ag, raiffeisen_bankengruppe_osterreich, + /// schoellerbank_ag, sparda_bank_wien, volksbank_gruppe, + /// volkskreditbank_ag, or vr_bank_braunau. + /// One of: arzte_und_apotheker_bank, austrian_anadi_bank_ag, + /// bank_austria, bankhaus_carl_spangler, + /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag, + /// brull_kallmus_bank_ag, btv_vier_lander_bank, + /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank, + /// easybank_ag, erste_bank_und_sparkassen, + /// hypo_alpeadriabank_international_ag, + /// hypo_bank_burgenland_aktiengesellschaft, + /// hypo_noe_lb_fur_niederosterreich_u_wien, + /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag, + /// hypo_vorarlberg_bank_ag, marchfelder_bank, oberbank_ag, + /// raiffeisen_bankengruppe_osterreich, schoellerbank_ag, + /// sparda_bank_wien, volksbank_gruppe, volkskreditbank_ag, or + /// vr_bank_braunau. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by EPS directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// EPS rarely provides this information so the attribute is usually empty. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsFpx.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsFpx.cs new file mode 100644 index 0000000000..a47ffa6452 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsFpx.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsFpx : StripeEntity + { + /// + /// Account holder type, if provided. Can be one of individual or company. + /// One of: company, or individual. + /// + [JsonProperty("account_holder_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_type")] +#endif + public string AccountHolderType { get; set; } + + /// + /// The customer's bank. Can be one of affin_bank, agrobank, + /// alliance_bank, ambank, bank_islam, bank_muamalat, + /// bank_rakyat, bsn, cimb, hong_leong_bank, hsbc, + /// kfh, maybank2u, ocbc, public_bank, rhb, + /// standard_chartered, uob, deutsche_bank, maybank2e, + /// pb_enterprise, or bank_of_china. + /// One of: affin_bank, agrobank, alliance_bank, ambank, + /// bank_islam, bank_muamalat, bank_of_china, bank_rakyat, + /// bsn, cimb, deutsche_bank, hong_leong_bank, hsbc, + /// kfh, maybank2e, maybank2u, ocbc, pb_enterprise, + /// public_bank, rhb, standard_chartered, or uob. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// Unique transaction id generated by FPX for every request from the merchant. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiropay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiropay.cs new file mode 100644 index 0000000000..a849753d5c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiropay.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsGiropay : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by Giropay directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// Giropay rarely provides this information so the attribute is usually empty. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGrabpay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGrabpay.cs new file mode 100644 index 0000000000..6a9b3a2480 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGrabpay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsGrabpay : StripeEntity + { + /// + /// Unique transaction id generated by GrabPay. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdeal.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdeal.cs new file mode 100644 index 0000000000..dd241bc1a2 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsIdeal.cs @@ -0,0 +1,145 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentAttemptRecordPaymentMethodDetailsIdeal : StripeEntity + { + /// + /// The customer's bank. Can be one of abn_amro, asn_bank, bunq, + /// buut, handelsbanken, ing, knab, moneyou, n26, + /// nn, rabobank, regiobank, revolut, sns_bank, + /// triodos_bank, van_lanschot, or yoursafe. + /// One of: abn_amro, asn_bank, bunq, buut, + /// handelsbanken, ing, knab, moneyou, n26, nn, + /// rabobank, regiobank, revolut, sns_bank, triodos_bank, + /// van_lanschot, or yoursafe. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// The Bank Identifier Code of the customer's bank. + /// One of: ABNANL2A, ASNBNL21, BITSNL2A, BUNQNL2A, + /// BUUTNL2A, FVLBNL22, HANDNL2A, INGBNL2A, KNABNL2H, + /// MOYONL21, NNBANL2G, NTSBDEB1, RABONL2U, RBRBNL21, + /// REVOIE23, REVOLT21, SNSBNL2A, or TRIONL2U. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + #region Expandable GeneratedSepaDebit + + /// + /// (ID of the PaymentMethod) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitId + { + get => this.InternalGeneratedSepaDebit?.Id; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit); + } + + /// + /// (Expanded) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentMethod GeneratedSepaDebit + { + get => this.InternalGeneratedSepaDebit?.ExpandedObject; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit); + } + + [JsonProperty("generated_sepa_debit")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebit { get; set; } + #endregion + + #region Expandable GeneratedSepaDebitMandate + + /// + /// (ID of the Mandate) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitMandateId + { + get => this.InternalGeneratedSepaDebitMandate?.Id; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate); + } + + /// + /// (Expanded) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate GeneratedSepaDebitMandate + { + get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate); + } + + [JsonProperty("generated_sepa_debit_mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit_mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; } + #endregion + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("iban_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban_last4")] +#endif + public string IbanLast4 { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by iDEAL directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresent.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresent.cs new file mode 100644 index 0000000000..3cf2b2a168 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresent.cs @@ -0,0 +1,203 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsInteracPresent : StripeEntity + { + /// + /// Card brand. Can be interac, mastercard or visa. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// The cardholder name as read from the card, in ISO 7813 format. May include + /// alphanumeric characters, special characters and first/last name separator (/). In + /// some cases, the cardholder name may not be available depending on how the issuer has + /// configured the card. Cardholder name is typically not available on swipe or contactless + /// payments, such as those made with Apple Pay and Google Pay. + /// + [JsonProperty("cardholder_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_name")] +#endif + public string CardholderName { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// A high-level description of the type of cards issued in this range. (For internal use + /// only and not typically available in standard API requests.). + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Authorization response cryptogram. + /// + [JsonProperty("emv_auth_data")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("emv_auth_data")] +#endif + public string EmvAuthData { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long ExpYear { get; set; } + + /// + /// Uniquely identifies this particular card number. You can use this attribute to check + /// whether two customers who’ve signed up with you are using the same card number, for + /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the + /// tokenized number might be provided instead of the underlying card number. + /// + /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two + /// fingerprints for the same card---one for India and one for the rest of the world.. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be + /// attached to a Customer for future transactions. Only present if it was possible to + /// generate a card PaymentMethod. + /// + [JsonProperty("generated_card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_card")] +#endif + public string GeneratedCard { get; set; } + + /// + /// Issuer identification number of the card. (For internal use only and not typically + /// available in standard API requests.). + /// + [JsonProperty("iin")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iin")] +#endif + public string Iin { get; set; } + + /// + /// The name of the card's issuing bank. (For internal use only and not typically available + /// in standard API requests.). + /// + [JsonProperty("issuer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("issuer")] +#endif + public string Issuer { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Identifies which network this charge was processed on. Can be amex, + /// cartes_bancaires, diners, discover, eftpos_au, + /// interac, jcb, link, mastercard, unionpay, + /// visa, or unknown. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// This is used by the financial networks to identify a transaction. Visa calls this the + /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the + /// Acquirer Reference Data. This value will be present if it is returned by the financial + /// network in the authorization response, and null otherwise. + /// + [JsonProperty("network_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_transaction_id")] +#endif + public string NetworkTransactionId { get; set; } + + /// + /// The languages that the issuing bank recommends using for localizing any customer-facing + /// text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's + /// chip. + /// + [JsonProperty("preferred_locales")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_locales")] +#endif + public List PreferredLocales { get; set; } + + /// + /// How card details were read in this transaction. + /// One of: contact_emv, contactless_emv, contactless_magstripe_mode, + /// magnetic_stripe_fallback, or magnetic_stripe_track2. + /// + [JsonProperty("read_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("read_method")] +#endif + public string ReadMethod { get; set; } + + /// + /// A collection of fields required to be displayed on receipts. Only required for EMV + /// transactions. + /// + [JsonProperty("receipt")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("receipt")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt Receipt { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt.cs new file mode 100644 index 0000000000..efa8119a1c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt.cs @@ -0,0 +1,102 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsInteracPresentReceipt : StripeEntity + { + /// + /// The type of account being debited or credited. + /// One of: checking, savings, or unknown. + /// + [JsonProperty("account_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_type")] +#endif + public string AccountType { get; set; } + + /// + /// The Application Cryptogram, a unique value generated by the card to authenticate the + /// transaction with issuers. + /// + [JsonProperty("application_cryptogram")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_cryptogram")] +#endif + public string ApplicationCryptogram { get; set; } + + /// + /// The Application Identifier (AID) on the card used to determine which networks are + /// eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the + /// card's chip. + /// + [JsonProperty("application_preferred_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_preferred_name")] +#endif + public string ApplicationPreferredName { get; set; } + + /// + /// Identifier for this transaction. + /// + [JsonProperty("authorization_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_code")] +#endif + public string AuthorizationCode { get; set; } + + /// + /// EMV tag 8A. A code returned by the card issuer. + /// + [JsonProperty("authorization_response_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_response_code")] +#endif + public string AuthorizationResponseCode { get; set; } + + /// + /// Describes the method used by the cardholder to verify ownership of the card. One of the + /// following: approval, failure, none, offline_pin, + /// offline_pin_and_signature, online_pin, or signature. + /// + [JsonProperty("cardholder_verification_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_verification_method")] +#endif + public string CardholderVerificationMethod { get; set; } + + /// + /// Similar to the application_preferred_name, identifying the applications (AIDs) available + /// on the card. Referenced from EMV tag 84. + /// + [JsonProperty("dedicated_file_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dedicated_file_name")] +#endif + public string DedicatedFileName { get; set; } + + /// + /// A 5-byte string that records the checks and validations that occur between the card and + /// the terminal. These checks determine how the terminal processes the transaction and what + /// risk tolerance is acceptable. Referenced from EMV Tag 95. + /// + [JsonProperty("terminal_verification_results")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("terminal_verification_results")] +#endif + public string TerminalVerificationResults { get; set; } + + /// + /// An indication of which steps were completed during the card read process. Referenced + /// from EMV Tag 9B. + /// + [JsonProperty("transaction_status_information")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_status_information")] +#endif + public string TransactionStatusInformation { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKakaoPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKakaoPay.cs new file mode 100644 index 0000000000..8cb8862dbf --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKakaoPay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKakaoPay : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Kakao Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarna.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarna.cs new file mode 100644 index 0000000000..b84eeff656 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarna.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKlarna : StripeEntity + { + /// + /// The payer details for this transaction. + /// + [JsonProperty("payer_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_details")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails PayerDetails { get; set; } + + /// + /// The Klarna payment method used for this transaction. Can be one of pay_later, + /// pay_now, pay_with_financing, or pay_in_installments. + /// + [JsonProperty("payment_method_category")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_category")] +#endif + public string PaymentMethodCategory { get; set; } + + /// + /// Preferred language of the Klarna authorization page that the customer is redirected to. + /// Can be one of de-AT, en-AT, nl-BE, fr-BE, en-BE, + /// de-DE, en-DE, da-DK, en-DK, es-ES, en-ES, + /// fi-FI, sv-FI, en-FI, en-GB, en-IE, it-IT, + /// en-IT, nl-NL, en-NL, nb-NO, en-NO, sv-SE, + /// en-SE, en-US, es-US, fr-FR, en-FR, cs-CZ, + /// en-CZ, ro-RO, en-RO, el-GR, en-GR, en-AU, + /// en-NZ, en-CA, fr-CA, pl-PL, en-PL, pt-PT, + /// en-PT, de-CH, fr-CH, it-CH, or en-CH. + /// + [JsonProperty("preferred_locale")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_locale")] +#endif + public string PreferredLocale { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails.cs new file mode 100644 index 0000000000..c7b62eae74 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetails : StripeEntity + { + /// + /// The payer's address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress Address { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs new file mode 100644 index 0000000000..721aaa7b81 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKlarnaPayerDetailsAddress : StripeEntity + { + /// + /// The payer address country. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbini.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbini.cs new file mode 100644 index 0000000000..dce6edc0ff --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbini.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKonbini : StripeEntity + { + /// + /// If the payment succeeded, this contains the details of the convenience store where the + /// payment was completed. + /// + [JsonProperty("store")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("store")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsKonbiniStore Store { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbiniStore.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbiniStore.cs new file mode 100644 index 0000000000..a8042a311c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKonbiniStore.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKonbiniStore : StripeEntity + { + /// + /// The name of the convenience store chain where the payment was completed. + /// One of: familymart, lawson, ministop, or seicomart. + /// + [JsonProperty("chain")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("chain")] +#endif + public string Chain { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKrCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKrCard.cs new file mode 100644 index 0000000000..270692aa9d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsKrCard.cs @@ -0,0 +1,52 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsKrCard : StripeEntity + { + /// + /// The local credit or debit card brand. + /// One of: bc, citi, hana, hyundai, jeju, + /// jeonbuk, kakaobank, kbank, kdbbank, kookmin, + /// kwangju, lotte, mg, nh, post, samsung, + /// savingsbank, shinhan, shinhyup, suhyup, tossbank, or + /// woori. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The last four digits of the card. This may not be present for American Express cards. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// The Korean Card transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsLink.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsLink.cs new file mode 100644 index 0000000000..cc69c21bf5 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsLink.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsLink : StripeEntity + { + /// + /// Two-letter ISO code representing the funding source country beneath the Link payment. + /// You could use this attribute to get a sense of international fees. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMbWay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMbWay.cs new file mode 100644 index 0000000000..515a4e8234 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMbWay.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsMbWay : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepay.cs new file mode 100644 index 0000000000..fbeb467031 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsMobilepay : StripeEntity + { + /// + /// Internal card details. + /// + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsMobilepayCard Card { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepayCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepayCard.cs new file mode 100644 index 0000000000..cc49dc11b9 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMobilepayCard.cs @@ -0,0 +1,56 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsMobilepayCard : StripeEntity + { + /// + /// Brand of the card used in the transaction. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long? ExpMonth { get; set; } + + /// + /// Two digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long? ExpYear { get; set; } + + /// + /// The last 4 digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMultibanco.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMultibanco.cs new file mode 100644 index 0000000000..5b9c884804 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsMultibanco.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsMultibanco : StripeEntity + { + /// + /// Entity number associated with this Multibanco payment. + /// + [JsonProperty("entity")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("entity")] +#endif + public string Entity { get; set; } + + /// + /// Reference number associated with this Multibanco payment. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNaverPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNaverPay.cs new file mode 100644 index 0000000000..9e6e3073c7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNaverPay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsNaverPay : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Naver Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNzBankAccount.cs new file mode 100644 index 0000000000..63b1e40810 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsNzBankAccount.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsNzBankAccount : StripeEntity + { + /// + /// The name on the bank account. Only present if the account holder name is different from + /// the name of the authorized signatory collected in the PaymentMethod’s billing details. + /// + [JsonProperty("account_holder_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_name")] +#endif + public string AccountHolderName { get; set; } + + /// + /// The numeric code for the bank account's bank. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// The name of the bank. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// The numeric code for the bank account's bank branch. + /// + [JsonProperty("branch_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("branch_code")] +#endif + public string BranchCode { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// The suffix of the bank account number. + /// + [JsonProperty("suffix")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("suffix")] +#endif + public string Suffix { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsOxxo.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsOxxo.cs new file mode 100644 index 0000000000..b554e3eff7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsOxxo.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsOxxo : StripeEntity + { + /// + /// OXXO reference number. + /// + [JsonProperty("number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("number")] +#endif + public string Number { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsP24.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsP24.cs new file mode 100644 index 0000000000..48fc17b79d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsP24.cs @@ -0,0 +1,55 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsP24 : StripeEntity + { + /// + /// The customer's bank. Can be one of ing, citi_handlowy, + /// tmobile_usbugi_bankowe, plus_bank, etransfer_pocztowy24, + /// banki_spbdzielcze, bank_nowy_bfg_sa, getin_bank, velobank, + /// blik, noble_pay, ideabank, envelobank, + /// santander_przelew24, nest_przelew, mbank_mtransfer, + /// inteligo, pbac_z_ipko, bnp_paribas, credit_agricole, + /// toyota_bank, bank_pekao_sa, volkswagen_bank, + /// bank_millennium, alior_bank, or boz. + /// One of: alior_bank, bank_millennium, bank_nowy_bfg_sa, + /// bank_pekao_sa, banki_spbdzielcze, blik, bnp_paribas, + /// boz, citi_handlowy, credit_agricole, envelobank, + /// etransfer_pocztowy24, getin_bank, ideabank, ing, + /// inteligo, mbank_mtransfer, nest_przelew, noble_pay, + /// pbac_z_ipko, plus_bank, santander_przelew24, + /// tmobile_usbugi_bankowe, toyota_bank, velobank, or + /// volkswagen_bank. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// Unique reference for this Przelewy24 payment. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by Przelewy24 directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// Przelewy24 rarely provides this information so the attribute is usually empty. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayByBank.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayByBank.cs new file mode 100644 index 0000000000..fa1ddbbc4f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayByBank.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsPayByBank : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayco.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayco.cs new file mode 100644 index 0000000000..eeec8b6d6c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPayco.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsPayco : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Payco transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaynow.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaynow.cs new file mode 100644 index 0000000000..b9a2c86679 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaynow.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsPaynow : StripeEntity + { + /// + /// ID of the location that + /// this transaction's reader is assigned to. + /// + [JsonProperty("location")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("location")] +#endif + public string Location { get; set; } + + /// + /// ID of the reader this + /// transaction was made on. + /// + [JsonProperty("reader")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reader")] +#endif + public string Reader { get; set; } + + /// + /// Reference number associated with this PayNow payment. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypal.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypal.cs new file mode 100644 index 0000000000..22c5434f4c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypal.cs @@ -0,0 +1,70 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsPaypal : StripeEntity + { + /// + /// Two-letter ISO code representing the buyer's country. Values are provided by PayPal + /// directly (if supported) at the time of authorization or settlement. They cannot be set + /// or mutated. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Owner's email. Values are provided by PayPal directly (if supported) at the time of + /// authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("payer_email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_email")] +#endif + public string PayerEmail { get; set; } + + /// + /// PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + /// + [JsonProperty("payer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_id")] +#endif + public string PayerId { get; set; } + + /// + /// Owner's full name. Values provided by PayPal directly (if supported) at the time of + /// authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("payer_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_name")] +#endif + public string PayerName { get; set; } + + /// + /// The level of protection offered as defined by PayPal Seller Protection for Merchants, + /// for this transaction. + /// + [JsonProperty("seller_protection")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("seller_protection")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection SellerProtection { get; set; } + + /// + /// A unique ID generated by PayPal for this transaction. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection.cs new file mode 100644 index 0000000000..3d457440a9 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection.cs @@ -0,0 +1,32 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsPaypalSellerProtection : StripeEntity + { + /// + /// An array of conditions that are covered for the transaction, if applicable. + /// One of: fraudulent, or product_not_received. + /// + [JsonProperty("dispute_categories")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dispute_categories")] +#endif + public List DisputeCategories { get; set; } + + /// + /// Indicates whether the transaction is eligible for PayPal's seller protection. + /// One of: eligible, not_eligible, or partially_eligible. + /// + [JsonProperty("status")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("status")] +#endif + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPix.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPix.cs new file mode 100644 index 0000000000..9102e73990 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPix.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsPix : StripeEntity + { + /// + /// Unique transaction id generated by BCB. + /// + [JsonProperty("bank_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_transaction_id")] +#endif + public string BankTransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPromptpay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPromptpay.cs new file mode 100644 index 0000000000..81f9e937d9 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsPromptpay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsPromptpay : StripeEntity + { + /// + /// Bill reference generated by PromptPay. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPay.cs new file mode 100644 index 0000000000..7dd9c1e0cf --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPay.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsRevolutPay : StripeEntity + { + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding Funding { get; set; } + + /// + /// The Revolut Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding.cs new file mode 100644 index 0000000000..f1bbb39b8d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsRevolutPayFunding : StripeEntity + { + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard Card { get; set; } + + /// + /// funding type of the underlying payment method. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard.cs new file mode 100644 index 0000000000..86b6528be6 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsRevolutPayFundingCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long? ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long? ExpYear { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSamsungPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSamsungPay.cs new file mode 100644 index 0000000000..66cefceb65 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSamsungPay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsSamsungPay : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Samsung Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSatispay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSatispay.cs new file mode 100644 index 0000000000..54037f6891 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSatispay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsSatispay : StripeEntity + { + /// + /// The Satispay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer.cs new file mode 100644 index 0000000000..4c5dd48911 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsSepaCreditTransfer : StripeEntity + { + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + /// + /// IBAN of the bank account to transfer funds to. + /// + [JsonProperty("iban")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban")] +#endif + public string Iban { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaDebit.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaDebit.cs new file mode 100644 index 0000000000..a20882ee35 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSepaDebit.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsSepaDebit : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Branch code of bank associated with the bank account. + /// + [JsonProperty("branch_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("branch_code")] +#endif + public string BranchCode { get; set; } + + /// + /// Two-letter ISO code representing the country the bank account is located in. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Find the ID of the mandate used for this payment under the payment_method_details.sepa_debit.mandate + /// property on the Charge. Use this mandate ID to retrieve the Mandate. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSofort.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSofort.cs new file mode 100644 index 0000000000..5f4312090d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSofort.cs @@ -0,0 +1,164 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentAttemptRecordPaymentMethodDetailsSofort : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + /// + /// Two-letter ISO code representing the country the bank account is located in. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + #region Expandable GeneratedSepaDebit + + /// + /// (ID of the PaymentMethod) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitId + { + get => this.InternalGeneratedSepaDebit?.Id; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit); + } + + /// + /// (Expanded) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentMethod GeneratedSepaDebit + { + get => this.InternalGeneratedSepaDebit?.ExpandedObject; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit); + } + + [JsonProperty("generated_sepa_debit")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebit { get; set; } + #endregion + + #region Expandable GeneratedSepaDebitMandate + + /// + /// (ID of the Mandate) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitMandateId + { + get => this.InternalGeneratedSepaDebitMandate?.Id; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate); + } + + /// + /// (Expanded) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate GeneratedSepaDebitMandate + { + get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate); + } + + [JsonProperty("generated_sepa_debit_mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit_mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; } + #endregion + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("iban_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban_last4")] +#endif + public string IbanLast4 { get; set; } + + /// + /// Preferred language of the SOFORT authorization page that the customer is redirected to. + /// Can be one of de, en, es, fr, it, nl, or + /// pl. + /// One of: de, en, es, fr, it, nl, or pl. + /// + [JsonProperty("preferred_language")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_language")] +#endif + public string PreferredLanguage { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by SOFORT directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsStripeAccount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsStripeAccount.cs new file mode 100644 index 0000000000..59386a3e58 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsStripeAccount.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsStripeAccount : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSwish.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSwish.cs new file mode 100644 index 0000000000..ce3d7941cd --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsSwish.cs @@ -0,0 +1,39 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsSwish : StripeEntity + { + /// + /// Uniquely identifies the payer's Swish account. You can use this attribute to check + /// whether two Swish transactions were paid for by the same payer. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Payer bank reference number for the payment. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + + /// + /// The last four digits of the Swish account phone number. + /// + [JsonProperty("verified_phone_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_phone_last4")] +#endif + public string VerifiedPhoneLast4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsTwint.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsTwint.cs new file mode 100644 index 0000000000..f3515f9b34 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsTwint.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsTwint : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsUsBankAccount.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsUsBankAccount.cs new file mode 100644 index 0000000000..5d64c89d8d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsUsBankAccount.cs @@ -0,0 +1,120 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentAttemptRecordPaymentMethodDetailsUsBankAccount : StripeEntity + { + /// + /// One of: company, or individual. + /// + [JsonProperty("account_holder_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_type")] +#endif + public string AccountHolderType { get; set; } + + /// + /// One of: checking, or savings. + /// + [JsonProperty("account_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_type")] +#endif + public string AccountType { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + #region Expandable Mandate + + /// + /// (ID of the Mandate) + /// ID of the mandate used to make this payment. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string MandateId + { + get => this.InternalMandate?.Id; + set => this.InternalMandate = SetExpandableFieldId(value, this.InternalMandate); + } + + /// + /// (Expanded) + /// ID of the mandate used to make this payment. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate Mandate + { + get => this.InternalMandate?.ExpandedObject; + set => this.InternalMandate = SetExpandableFieldObject(value, this.InternalMandate); + } + + [JsonProperty("mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalMandate { get; set; } + #endregion + + /// + /// Reference number to locate ACH payments with customer’s bank. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + + /// + /// Routing number of the bank account. + /// + [JsonProperty("routing_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("routing_number")] +#endif + public string RoutingNumber { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechat.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechat.cs new file mode 100644 index 0000000000..b61ddd9d1d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechat.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsWechat : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechatPay.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechatPay.cs new file mode 100644 index 0000000000..0ead641a86 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsWechatPay.cs @@ -0,0 +1,50 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordPaymentMethodDetailsWechatPay : StripeEntity + { + /// + /// Uniquely identifies this particular WeChat Pay account. You can use this attribute to + /// check whether two WeChat accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// ID of the location that + /// this transaction's reader is assigned to. + /// + [JsonProperty("location")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("location")] +#endif + public string Location { get; set; } + + /// + /// ID of the reader this + /// transaction was made on. + /// + [JsonProperty("reader")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reader")] +#endif + public string Reader { get; set; } + + /// + /// Transaction ID of this particular WeChat Pay transaction. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsZip.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsZip.cs new file mode 100644 index 0000000000..f946dbdfac --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsZip.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordPaymentMethodDetailsZip : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordProcessorDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordProcessorDetails.cs new file mode 100644 index 0000000000..cacf236e5a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordProcessorDetails.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordProcessorDetails : StripeEntity + { + /// + /// Custom processors represent payment processors not modeled directly in the Stripe API. + /// This resource consists of details about the custom processor used for this payment + /// attempt. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentAttemptRecordProcessorDetailsCustom Custom { get; set; } + + /// + /// The processor used for this payment attempt. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordProcessorDetailsCustom.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordProcessorDetailsCustom.cs new file mode 100644 index 0000000000..ccc930dedd --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordProcessorDetailsCustom.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordProcessorDetailsCustom : StripeEntity + { + /// + /// An opaque string for manual reconciliation of this payment, for example a check number + /// or a payment processor ID. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordShippingDetails.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordShippingDetails.cs new file mode 100644 index 0000000000..ab30bf7011 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordShippingDetails.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordShippingDetails : StripeEntity + { + /// + /// A representation of a physical address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public PaymentAttemptRecordShippingDetailsAddress Address { get; set; } + + /// + /// The shipping recipient's name. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The shipping recipient's phone number. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordShippingDetailsAddress.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordShippingDetailsAddress.cs new file mode 100644 index 0000000000..aae4dab913 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordShippingDetailsAddress.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordShippingDetailsAddress : StripeEntity + { + /// + /// City, district, suburb, town, or village. + /// + [JsonProperty("city")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("city")] +#endif + public string City { get; set; } + + /// + /// Two-letter country code (ISO + /// 3166-1 alpha-2). + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Address line 1, such as the street, PO Box, or company name. + /// + [JsonProperty("line1")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line1")] +#endif + public string Line1 { get; set; } + + /// + /// Address line 2, such as the apartment, suite, unit, or building. + /// + [JsonProperty("line2")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line2")] +#endif + public string Line2 { get; set; } + + /// + /// ZIP or postal code. + /// + [JsonProperty("postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("postal_code")] +#endif + public string PostalCode { get; set; } + + /// + /// State, county, province, or region. + /// + [JsonProperty("state")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("state")] +#endif + public string State { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItem.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItem.cs new file mode 100644 index 0000000000..c5317d2a8a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItem.cs @@ -0,0 +1,101 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItem : StripeEntity, IHasId, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("id")] +#endif + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("object")] +#endif + public string Object { get; set; } + + /// + /// The amount an item was discounted for. Positive integer. + /// + [JsonProperty("discount_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("discount_amount")] +#endif + public long? DiscountAmount { get; set; } + + /// + /// Payment method-specific information for line items. + /// + [JsonProperty("payment_method_options")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_options")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptions PaymentMethodOptions { get; set; } + + /// + /// Unique identifier of the product. At most 12 characters long. + /// + [JsonProperty("product_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("product_code")] +#endif + public string ProductCode { get; set; } + + /// + /// Name of the product. At most 100 characters long. + /// + [JsonProperty("product_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("product_name")] +#endif + public string ProductName { get; set; } + + /// + /// Number of items of the product. Positive integer. + /// + [JsonProperty("quantity")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("quantity")] +#endif + public long Quantity { get; set; } + + /// + /// Contains information about the tax on the item. + /// + [JsonProperty("tax")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tax")] +#endif + public PaymentIntentAmountDetailsLineItemTax Tax { get; set; } + + /// + /// Cost of the product. Non-negative integer. + /// + [JsonProperty("unit_cost")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("unit_cost")] +#endif + public long UnitCost { get; set; } + + /// + /// A unit of measure for the line item, such as gallons, feet, meters, etc. + /// + [JsonProperty("unit_of_measure")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("unit_of_measure")] +#endif + public string UnitOfMeasure { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptions.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptions.cs new file mode 100644 index 0000000000..0016369092 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptions.cs @@ -0,0 +1,35 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptions : StripeEntity + { + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCard Card { get; set; } + + [JsonProperty("card_present")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card_present")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresent CardPresent { get; set; } + + [JsonProperty("klarna")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("klarna")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarna Klarna { get; set; } + + [JsonProperty("paypal")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("paypal")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypal Paypal { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCard.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCard.cs new file mode 100644 index 0000000000..fe6b5bff36 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCard.cs @@ -0,0 +1,17 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCard : StripeEntity + { + [JsonProperty("commodity_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("commodity_code")] +#endif + public string CommodityCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresent.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresent.cs new file mode 100644 index 0000000000..75230f4a68 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresent.cs @@ -0,0 +1,17 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresent : StripeEntity + { + [JsonProperty("commodity_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("commodity_code")] +#endif + public string CommodityCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarna.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarna.cs new file mode 100644 index 0000000000..d9d9bea92c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarna.cs @@ -0,0 +1,35 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarna : StripeEntity + { + [JsonProperty("image_url")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("image_url")] +#endif + public string ImageUrl { get; set; } + + [JsonProperty("product_url")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("product_url")] +#endif + public string ProductUrl { get; set; } + + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + + [JsonProperty("subscription_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("subscription_reference")] +#endif + public string SubscriptionReference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypal.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypal.cs new file mode 100644 index 0000000000..ecbc150420 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypal.cs @@ -0,0 +1,42 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypal : StripeEntity + { + /// + /// Type of the line item. + /// One of: digital_goods, donation, or physical_goods. + /// + [JsonProperty("category")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("category")] +#endif + public string Category { get; set; } + + /// + /// Description of the line item. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// The Stripe account ID of the connected account that sells the item. This is only needed + /// when using Separate Charges + /// and Transfers. + /// + [JsonProperty("sold_by")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sold_by")] +#endif + public string SoldBy { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemTax.cs b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemTax.cs new file mode 100644 index 0000000000..85e738bb82 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemTax.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemTax : StripeEntity + { + /// + /// Total portion of the amount that is for tax. + /// + [JsonProperty("total_tax_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("total_tax_amount")] +#endif + public long TotalTaxAmount { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs index 341caec997..209931ce23 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs @@ -464,6 +464,12 @@ public Account OnBehalfOf internal ExpandableField InternalOnBehalfOf { get; set; } #endregion + [JsonProperty("payment_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_details")] +#endif + public PaymentIntentPaymentDetails PaymentDetails { get; set; } + #region Expandable PaymentMethod /// diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetails.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetails.cs index 1f305f7dcf..7823738c9d 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetails.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetails.cs @@ -8,6 +8,37 @@ namespace Stripe public class PaymentIntentAmountDetails : StripeEntity { + /// + /// The total discount applied on the transaction. + /// + [JsonProperty("discount_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("discount_amount")] +#endif + public long DiscountAmount { get; set; } + + /// + /// A list of line items, each containing information about a product in the PaymentIntent. + /// There is a maximum of 100 line items. + /// + [JsonProperty("line_items")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line_items")] +#endif + public StripeList LineItems { get; set; } + + [JsonProperty("shipping")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping")] +#endif + public PaymentIntentAmountDetailsShipping Shipping { get; set; } + + [JsonProperty("tax")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tax")] +#endif + public PaymentIntentAmountDetailsTax Tax { get; set; } + [JsonProperty("tip")] #if NET6_0_OR_GREATER [STJS.JsonPropertyName("tip")] diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetailsShipping.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetailsShipping.cs new file mode 100644 index 0000000000..8986103afe --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetailsShipping.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsShipping : StripeEntity + { + /// + /// Portion of the amount that is for shipping. + /// + [JsonProperty("amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount")] +#endif + public long? Amount { get; set; } + + /// + /// The postal code that represents the shipping source. + /// + [JsonProperty("from_postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("from_postal_code")] +#endif + public string FromPostalCode { get; set; } + + /// + /// The postal code that represents the shipping destination. + /// + [JsonProperty("to_postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("to_postal_code")] +#endif + public string ToPostalCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetailsTax.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetailsTax.cs new file mode 100644 index 0000000000..4f3e2af519 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentAmountDetailsTax.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsTax : StripeEntity + { + /// + /// Total portion of the amount that is for tax. + /// + [JsonProperty("total_tax_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("total_tax_amount")] +#endif + public long? TotalTaxAmount { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentDetails.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentDetails.cs new file mode 100644 index 0000000000..ec72b29769 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentDetails.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentPaymentDetails : StripeEntity + { + /// + /// Some customers might be required by their company or organization to provide this + /// information. If so, provide this value. Otherwise you can ignore this field. + /// + [JsonProperty("customer_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_reference")] +#endif + public string CustomerReference { get; set; } + + /// + /// A unique value assigned by the business to identify the transaction. + /// + [JsonProperty("order_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("order_reference")] +#endif + public string OrderReference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs index 23d7a0bc6c..bce7db4db2 100644 --- a/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs +++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLink.cs @@ -240,6 +240,12 @@ public Application Application #endif public Dictionary Metadata { get; set; } + [JsonProperty("name_collection")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name_collection")] +#endif + public PaymentLinkNameCollection NameCollection { get; set; } + #region Expandable OnBehalfOf /// @@ -322,7 +328,7 @@ public Account OnBehalfOf /// One of: affirm, afterpay_clearpay, alipay, alma, /// au_becs_debit, bacs_debit, bancontact, billie, blik, /// boleto, card, cashapp, eps, fpx, giropay, - /// grabpay, ideal, klarna, konbini, link, + /// grabpay, ideal, klarna, konbini, link, mb_way, /// mobilepay, multibanco, oxxo, p24, pay_by_bank, /// paynow, paypal, pix, promptpay, satispay, /// sepa_debit, sofort, swish, twint, us_bank_account, diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollection.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollection.cs new file mode 100644 index 0000000000..a14f7ecc8e --- /dev/null +++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollection.cs @@ -0,0 +1,23 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentLinkNameCollection : StripeEntity + { + [JsonProperty("business")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("business")] +#endif + public PaymentLinkNameCollectionBusiness Business { get; set; } + + [JsonProperty("individual")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("individual")] +#endif + public PaymentLinkNameCollectionIndividual Individual { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollectionBusiness.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollectionBusiness.cs new file mode 100644 index 0000000000..4d69b826f2 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollectionBusiness.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentLinkNameCollectionBusiness : StripeEntity + { + /// + /// Indicates whether business name collection is enabled for the payment link. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool Enabled { get; set; } + + /// + /// Whether the customer is required to complete the field before checking out. Defaults to + /// false. + /// + [JsonProperty("optional")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("optional")] +#endif + public bool Optional { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollectionIndividual.cs b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollectionIndividual.cs new file mode 100644 index 0000000000..8c6f95ebca --- /dev/null +++ b/src/Stripe.net/Entities/PaymentLinks/PaymentLinkNameCollectionIndividual.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentLinkNameCollectionIndividual : StripeEntity + { + /// + /// Indicates whether individual name collection is enabled for the payment link. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool Enabled { get; set; } + + /// + /// Whether the customer is required to complete the field before checking out. Defaults to + /// false. + /// + [JsonProperty("optional")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("optional")] +#endif + public bool Optional { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs index dd83520e13..39402f6ab5 100644 --- a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs +++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfiguration.cs @@ -170,6 +170,12 @@ public class PaymentMethodConfiguration : StripeEntity + { + /// + /// Whether this payment method may be offered at checkout. True if + /// display_preference is on and the payment method's capability is active. + /// + [JsonProperty("available")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("available")] +#endif + public bool Available { get; set; } + + [JsonProperty("display_preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_preference")] +#endif + public PaymentMethodConfigurationCryptoDisplayPreference DisplayPreference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoDisplayPreference.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoDisplayPreference.cs new file mode 100644 index 0000000000..9ffe4f3e5f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoDisplayPreference.cs @@ -0,0 +1,41 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationCryptoDisplayPreference : StripeEntity + { + /// + /// For child configs, whether or not the account's preference will be observed. If + /// false, the parent configuration's default is used. + /// + [JsonProperty("overridable")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("overridable")] +#endif + public bool? Overridable { get; set; } + + /// + /// The account's display preference. + /// One of: none, off, or on. + /// + [JsonProperty("preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preference")] +#endif + public string Preference { get; set; } + + /// + /// The effective display preference value. + /// One of: off, or on. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public string Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationMbWay.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationMbWay.cs new file mode 100644 index 0000000000..84959fbff3 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationMbWay.cs @@ -0,0 +1,27 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationMbWay : StripeEntity + { + /// + /// Whether this payment method may be offered at checkout. True if + /// display_preference is on and the payment method's capability is active. + /// + [JsonProperty("available")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("available")] +#endif + public bool Available { get; set; } + + [JsonProperty("display_preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_preference")] +#endif + public PaymentMethodConfigurationMbWayDisplayPreference DisplayPreference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayDisplayPreference.cs b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayDisplayPreference.cs new file mode 100644 index 0000000000..825e6fe18b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayDisplayPreference.cs @@ -0,0 +1,41 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationMbWayDisplayPreference : StripeEntity + { + /// + /// For child configs, whether or not the account's preference will be observed. If + /// false, the parent configuration's default is used. + /// + [JsonProperty("overridable")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("overridable")] +#endif + public bool? Overridable { get; set; } + + /// + /// The account's display preference. + /// One of: none, off, or on. + /// + [JsonProperty("preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preference")] +#endif + public string Preference { get; set; } + + /// + /// The effective display preference value. + /// One of: off, or on. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public string Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs index b837554ce5..629c2b7240 100644 --- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs @@ -168,6 +168,12 @@ public class PaymentMethod : StripeEntity, IHasId, IHasMetadata, #endif public PaymentMethodCrypto Crypto { get; set; } + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentMethodCustom Custom { get; set; } + #region Expandable Customer /// @@ -442,14 +448,15 @@ public Customer Customer /// One of: acss_debit, affirm, afterpay_clearpay, alipay, /// alma, amazon_pay, au_becs_debit, bacs_debit, /// bancontact, billie, blik, boleto, card, - /// card_present, cashapp, crypto, customer_balance, eps, - /// fpx, giropay, grabpay, ideal, interac_present, - /// kakao_pay, klarna, konbini, kr_card, link, - /// mb_way, mobilepay, multibanco, naver_pay, - /// nz_bank_account, oxxo, p24, pay_by_bank, payco, - /// paynow, paypal, pix, promptpay, revolut_pay, - /// samsung_pay, satispay, sepa_debit, sofort, swish, - /// twint, us_bank_account, wechat_pay, or zip. + /// card_present, cashapp, crypto, custom, + /// customer_balance, eps, fpx, giropay, grabpay, + /// ideal, interac_present, kakao_pay, klarna, konbini, + /// kr_card, link, mb_way, mobilepay, multibanco, + /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, + /// payco, paynow, paypal, pix, promptpay, + /// revolut_pay, samsung_pay, satispay, sepa_debit, + /// sofort, swish, twint, us_bank_account, wechat_pay, or + /// zip. /// [JsonProperty("type")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodCustom.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodCustom.cs new file mode 100644 index 0000000000..72d48d1cd5 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodCustom.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodCustom : StripeEntity + { + /// + /// Display name of the Dashboard-only CustomPaymentMethodType. + /// + [JsonProperty("display_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_name")] +#endif + public string DisplayName { get; set; } + + /// + /// Contains information about the Dashboard-only CustomPaymentMethodType logo. + /// + [JsonProperty("logo")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("logo")] +#endif + public PaymentMethodCustomLogo Logo { get; set; } + + /// + /// ID of the Dashboard-only CustomPaymentMethodType. Not expandable. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodCustomLogo.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodCustomLogo.cs new file mode 100644 index 0000000000..8d85e1ba94 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodCustomLogo.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodCustomLogo : StripeEntity + { + /// + /// Content type of the Dashboard-only CustomPaymentMethodType logo. + /// + [JsonProperty("content_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("content_type")] +#endif + public string ContentType { get; set; } + + /// + /// URL of the Dashboard-only CustomPaymentMethodType logo. + /// + [JsonProperty("url")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("url")] +#endif + public string Url { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecord.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecord.cs new file mode 100644 index 0000000000..c1d4598b08 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecord.cs @@ -0,0 +1,207 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + /// + /// A Payment Record is a resource that allows you to represent payments that occur on- or + /// off-Stripe. For example, you can create a Payment Record to model a payment made on a + /// different payment processor, in order to mark an Invoice as paid and a Subscription as + /// active. Payment Records consist of one or more Payment Attempt Records, which represent + /// individual attempts made on a payment network. + /// + public class PaymentRecord : StripeEntity, IHasId, IHasMetadata, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("id")] +#endif + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("object")] +#endif + public string Object { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount")] +#endif + public PaymentRecordAmount Amount { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_authorized")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_authorized")] +#endif + public PaymentRecordAmountAuthorized AmountAuthorized { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_canceled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_canceled")] +#endif + public PaymentRecordAmountCanceled AmountCanceled { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_failed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_failed")] +#endif + public PaymentRecordAmountFailed AmountFailed { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_guaranteed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_guaranteed")] +#endif + public PaymentRecordAmountGuaranteed AmountGuaranteed { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_refunded")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_refunded")] +#endif + public PaymentRecordAmountRefunded AmountRefunded { get; set; } + + /// + /// A representation of an amount of money, consisting of an amount and a currency. + /// + [JsonProperty("amount_requested")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_requested")] +#endif + public PaymentRecordAmountRequested AmountRequested { get; set; } + + /// + /// ID of the Connect application that created the PaymentRecord. + /// + [JsonProperty("application")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application")] +#endif + public string Application { get; set; } + + /// + /// Time at which the object was created. Measured in seconds since the Unix epoch. + /// + [JsonProperty("created")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("created")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Customer information for this payment. + /// + [JsonProperty("customer_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_details")] +#endif + public PaymentRecordCustomerDetails CustomerDetails { get; set; } + + /// + /// Indicates whether the customer was present in your checkout flow during this payment. + /// One of: off_session, or on_session. + /// + [JsonProperty("customer_presence")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_presence")] +#endif + public string CustomerPresence { get; set; } + + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// ID of the latest Payment Attempt Record attached to this Payment Record. + /// + [JsonProperty("latest_payment_attempt_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("latest_payment_attempt_record")] +#endif + public string LatestPaymentAttemptRecord { get; set; } + + /// + /// Has the value true if the object exists in live mode or the value false if + /// the object exists in test mode. + /// + [JsonProperty("livemode")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("livemode")] +#endif + public bool Livemode { get; set; } + + /// + /// Set of key-value pairs that you can + /// attach to an object. This can be useful for storing additional information about the + /// object in a structured format. + /// + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + + /// + /// Information about the Payment Method debited for this payment. + /// + [JsonProperty("payment_method_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_details")] +#endif + public PaymentRecordPaymentMethodDetails PaymentMethodDetails { get; set; } + + /// + /// Processor information associated with this payment. + /// + [JsonProperty("processor_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("processor_details")] +#endif + public PaymentRecordProcessorDetails ProcessorDetails { get; set; } + + /// + /// Shipping information for this payment. + /// + [JsonProperty("shipping_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping_details")] +#endif + public PaymentRecordShippingDetails ShippingDetails { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmount.cs new file mode 100644 index 0000000000..47e1df7339 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmount.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmount : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountAuthorized.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountAuthorized.cs new file mode 100644 index 0000000000..31c6e2fc1b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountAuthorized.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountAuthorized : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountCanceled.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountCanceled.cs new file mode 100644 index 0000000000..9b79530c70 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountCanceled.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountCanceled : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountFailed.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountFailed.cs new file mode 100644 index 0000000000..0fc5c933c3 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountFailed.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountFailed : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountGuaranteed.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountGuaranteed.cs new file mode 100644 index 0000000000..c948b6ec8e --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountGuaranteed.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountGuaranteed : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountRefunded.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountRefunded.cs new file mode 100644 index 0000000000..6bb55bbb0b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountRefunded.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountRefunded : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountRequested.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountRequested.cs new file mode 100644 index 0000000000..c2aa5b39db --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordAmountRequested.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountRequested : StripeEntity + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordCustomerDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordCustomerDetails.cs new file mode 100644 index 0000000000..6bcfa75160 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordCustomerDetails.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordCustomerDetails : StripeEntity + { + /// + /// ID of the Stripe Customer associated with this payment. + /// + [JsonProperty("customer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer")] +#endif + public string Customer { get; set; } + + /// + /// The customer's email address. + /// + [JsonProperty("email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("email")] +#endif + public string Email { get; set; } + + /// + /// The customer's name. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The customer's phone number. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs new file mode 100644 index 0000000000..62057a1416 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetails.cs @@ -0,0 +1,396 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetails : StripeEntity + { + [JsonProperty("ach_credit_transfer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ach_credit_transfer")] +#endif + public PaymentRecordPaymentMethodDetailsAchCreditTransfer AchCreditTransfer { get; set; } + + [JsonProperty("ach_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ach_debit")] +#endif + public PaymentRecordPaymentMethodDetailsAchDebit AchDebit { get; set; } + + [JsonProperty("acss_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("acss_debit")] +#endif + public PaymentRecordPaymentMethodDetailsAcssDebit AcssDebit { get; set; } + + [JsonProperty("affirm")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("affirm")] +#endif + public PaymentRecordPaymentMethodDetailsAffirm Affirm { get; set; } + + [JsonProperty("afterpay_clearpay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("afterpay_clearpay")] +#endif + public PaymentRecordPaymentMethodDetailsAfterpayClearpay AfterpayClearpay { get; set; } + + [JsonProperty("alipay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("alipay")] +#endif + public PaymentRecordPaymentMethodDetailsAlipay Alipay { get; set; } + + [JsonProperty("alma")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("alma")] +#endif + public PaymentRecordPaymentMethodDetailsAlma Alma { get; set; } + + [JsonProperty("amazon_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amazon_pay")] +#endif + public PaymentRecordPaymentMethodDetailsAmazonPay AmazonPay { get; set; } + + [JsonProperty("au_becs_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("au_becs_debit")] +#endif + public PaymentRecordPaymentMethodDetailsAuBecsDebit AuBecsDebit { get; set; } + + [JsonProperty("bacs_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bacs_debit")] +#endif + public PaymentRecordPaymentMethodDetailsBacsDebit BacsDebit { get; set; } + + [JsonProperty("bancontact")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bancontact")] +#endif + public PaymentRecordPaymentMethodDetailsBancontact Bancontact { get; set; } + + [JsonProperty("billie")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("billie")] +#endif + public PaymentRecordPaymentMethodDetailsBillie Billie { get; set; } + + /// + /// The billing details associated with the method of payment. + /// + [JsonProperty("billing_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("billing_details")] +#endif + public PaymentRecordPaymentMethodDetailsBillingDetails BillingDetails { get; set; } + + [JsonProperty("blik")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("blik")] +#endif + public PaymentRecordPaymentMethodDetailsBlik Blik { get; set; } + + [JsonProperty("boleto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("boleto")] +#endif + public PaymentRecordPaymentMethodDetailsBoleto Boleto { get; set; } + + /// + /// Details of the card used for this payment attempt. + /// + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentRecordPaymentMethodDetailsCard Card { get; set; } + + [JsonProperty("card_present")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card_present")] +#endif + public PaymentRecordPaymentMethodDetailsCardPresent CardPresent { get; set; } + + [JsonProperty("cashapp")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cashapp")] +#endif + public PaymentRecordPaymentMethodDetailsCashapp Cashapp { get; set; } + + [JsonProperty("crypto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("crypto")] +#endif + public PaymentRecordPaymentMethodDetailsCrypto Crypto { get; set; } + + /// + /// Custom Payment Methods represent Payment Method types not modeled directly in the Stripe + /// API. This resource consists of details about the custom payment method used for this + /// payment attempt. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentRecordPaymentMethodDetailsCustom Custom { get; set; } + + [JsonProperty("customer_balance")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_balance")] +#endif + public PaymentRecordPaymentMethodDetailsCustomerBalance CustomerBalance { get; set; } + + [JsonProperty("eps")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("eps")] +#endif + public PaymentRecordPaymentMethodDetailsEps Eps { get; set; } + + [JsonProperty("fpx")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fpx")] +#endif + public PaymentRecordPaymentMethodDetailsFpx Fpx { get; set; } + + [JsonProperty("giropay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("giropay")] +#endif + public PaymentRecordPaymentMethodDetailsGiropay Giropay { get; set; } + + [JsonProperty("grabpay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("grabpay")] +#endif + public PaymentRecordPaymentMethodDetailsGrabpay Grabpay { get; set; } + + [JsonProperty("ideal")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ideal")] +#endif + public PaymentRecordPaymentMethodDetailsIdeal Ideal { get; set; } + + [JsonProperty("interac_present")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("interac_present")] +#endif + public PaymentRecordPaymentMethodDetailsInteracPresent InteracPresent { get; set; } + + [JsonProperty("kakao_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("kakao_pay")] +#endif + public PaymentRecordPaymentMethodDetailsKakaoPay KakaoPay { get; set; } + + [JsonProperty("klarna")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("klarna")] +#endif + public PaymentRecordPaymentMethodDetailsKlarna Klarna { get; set; } + + [JsonProperty("konbini")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("konbini")] +#endif + public PaymentRecordPaymentMethodDetailsKonbini Konbini { get; set; } + + [JsonProperty("kr_card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("kr_card")] +#endif + public PaymentRecordPaymentMethodDetailsKrCard KrCard { get; set; } + + [JsonProperty("link")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("link")] +#endif + public PaymentRecordPaymentMethodDetailsLink Link { get; set; } + + [JsonProperty("mb_way")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mb_way")] +#endif + public PaymentRecordPaymentMethodDetailsMbWay MbWay { get; set; } + + [JsonProperty("mobilepay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mobilepay")] +#endif + public PaymentRecordPaymentMethodDetailsMobilepay Mobilepay { get; set; } + + [JsonProperty("multibanco")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("multibanco")] +#endif + public PaymentRecordPaymentMethodDetailsMultibanco Multibanco { get; set; } + + [JsonProperty("naver_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("naver_pay")] +#endif + public PaymentRecordPaymentMethodDetailsNaverPay NaverPay { get; set; } + + [JsonProperty("nz_bank_account")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("nz_bank_account")] +#endif + public PaymentRecordPaymentMethodDetailsNzBankAccount NzBankAccount { get; set; } + + [JsonProperty("oxxo")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("oxxo")] +#endif + public PaymentRecordPaymentMethodDetailsOxxo Oxxo { get; set; } + + [JsonProperty("p24")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("p24")] +#endif + public PaymentRecordPaymentMethodDetailsP24 P24 { get; set; } + + [JsonProperty("pay_by_bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("pay_by_bank")] +#endif + public PaymentRecordPaymentMethodDetailsPayByBank PayByBank { get; set; } + + [JsonProperty("payco")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payco")] +#endif + public PaymentRecordPaymentMethodDetailsPayco Payco { get; set; } + + /// + /// ID of the Stripe PaymentMethod used to make this payment. + /// + [JsonProperty("payment_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method")] +#endif + public string PaymentMethod { get; set; } + + [JsonProperty("paynow")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("paynow")] +#endif + public PaymentRecordPaymentMethodDetailsPaynow Paynow { get; set; } + + [JsonProperty("paypal")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("paypal")] +#endif + public PaymentRecordPaymentMethodDetailsPaypal Paypal { get; set; } + + [JsonProperty("pix")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("pix")] +#endif + public PaymentRecordPaymentMethodDetailsPix Pix { get; set; } + + [JsonProperty("promptpay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("promptpay")] +#endif + public PaymentRecordPaymentMethodDetailsPromptpay Promptpay { get; set; } + + [JsonProperty("revolut_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("revolut_pay")] +#endif + public PaymentRecordPaymentMethodDetailsRevolutPay RevolutPay { get; set; } + + [JsonProperty("samsung_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("samsung_pay")] +#endif + public PaymentRecordPaymentMethodDetailsSamsungPay SamsungPay { get; set; } + + [JsonProperty("satispay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("satispay")] +#endif + public PaymentRecordPaymentMethodDetailsSatispay Satispay { get; set; } + + [JsonProperty("sepa_credit_transfer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sepa_credit_transfer")] +#endif + public PaymentRecordPaymentMethodDetailsSepaCreditTransfer SepaCreditTransfer { get; set; } + + [JsonProperty("sepa_debit")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sepa_debit")] +#endif + public PaymentRecordPaymentMethodDetailsSepaDebit SepaDebit { get; set; } + + [JsonProperty("sofort")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sofort")] +#endif + public PaymentRecordPaymentMethodDetailsSofort Sofort { get; set; } + + [JsonProperty("stripe_account")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("stripe_account")] +#endif + public PaymentRecordPaymentMethodDetailsStripeAccount StripeAccount { get; set; } + + [JsonProperty("swish")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("swish")] +#endif + public PaymentRecordPaymentMethodDetailsSwish Swish { get; set; } + + [JsonProperty("twint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("twint")] +#endif + public PaymentRecordPaymentMethodDetailsTwint Twint { get; set; } + + /// + /// The type of transaction-specific details of the payment method used in the payment. See + /// PaymentMethod.type + /// for the full list of possible types. An additional hash is included on + /// payment_method_details with a name matching this value. It contains information + /// specific to the payment method. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + + /// + /// Details of the US Bank Account used for this payment attempt. + /// + [JsonProperty("us_bank_account")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("us_bank_account")] +#endif + public PaymentRecordPaymentMethodDetailsUsBankAccount UsBankAccount { get; set; } + + [JsonProperty("wechat")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wechat")] +#endif + public PaymentRecordPaymentMethodDetailsWechat Wechat { get; set; } + + [JsonProperty("wechat_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wechat_pay")] +#endif + public PaymentRecordPaymentMethodDetailsWechatPay WechatPay { get; set; } + + [JsonProperty("zip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("zip")] +#endif + public PaymentRecordPaymentMethodDetailsZip Zip { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchCreditTransfer.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchCreditTransfer.cs new file mode 100644 index 0000000000..99f60b5820 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchCreditTransfer.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAchCreditTransfer : StripeEntity + { + /// + /// Account number to transfer funds to. + /// + [JsonProperty("account_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_number")] +#endif + public string AccountNumber { get; set; } + + /// + /// Name of the bank associated with the routing number. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Routing transit number for the bank account to transfer funds to. + /// + [JsonProperty("routing_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("routing_number")] +#endif + public string RoutingNumber { get; set; } + + /// + /// SWIFT code of the bank associated with the routing number. + /// + [JsonProperty("swift_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("swift_code")] +#endif + public string SwiftCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchDebit.cs new file mode 100644 index 0000000000..efb89567a4 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAchDebit.cs @@ -0,0 +1,68 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAchDebit : StripeEntity + { + /// + /// Type of entity that holds the account. This can be either individual or + /// company. + /// One of: company, or individual. + /// + [JsonProperty("account_holder_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_type")] +#endif + public string AccountHolderType { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Two-letter ISO code representing the country the bank account is located in. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Routing transit number of the bank account. + /// + [JsonProperty("routing_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("routing_number")] +#endif + public string RoutingNumber { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAcssDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAcssDebit.cs new file mode 100644 index 0000000000..ca434c17bc --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAcssDebit.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAcssDebit : StripeEntity + { + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Institution number of the bank account. + /// + [JsonProperty("institution_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("institution_number")] +#endif + public string InstitutionNumber { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// ID of the mandate used to make this payment. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + + /// + /// Transit number of the bank account. + /// + [JsonProperty("transit_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transit_number")] +#endif + public string TransitNumber { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAffirm.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAffirm.cs new file mode 100644 index 0000000000..02deb6c3f6 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAffirm.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAffirm : StripeEntity + { + /// + /// ID of the location that + /// this transaction's reader is assigned to. + /// + [JsonProperty("location")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("location")] +#endif + public string Location { get; set; } + + /// + /// ID of the reader this + /// transaction was made on. + /// + [JsonProperty("reader")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reader")] +#endif + public string Reader { get; set; } + + /// + /// The Affirm transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAfterpayClearpay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAfterpayClearpay.cs new file mode 100644 index 0000000000..e1c30446be --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAfterpayClearpay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAfterpayClearpay : StripeEntity + { + /// + /// The Afterpay order ID associated with this payment intent. + /// + [JsonProperty("order_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("order_id")] +#endif + public string OrderId { get; set; } + + /// + /// Order identifier shown to the merchant in Afterpay’s online portal. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlipay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlipay.cs new file mode 100644 index 0000000000..d08602e53b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlipay.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAlipay : StripeEntity + { + /// + /// Uniquely identifies this particular Alipay account. You can use this attribute to check + /// whether two Alipay accounts are the same. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// Uniquely identifies this particular Alipay account. You can use this attribute to check + /// whether two Alipay accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Transaction ID of this particular Alipay transaction. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlma.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlma.cs new file mode 100644 index 0000000000..d6fbedddbc --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlma.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAlma : StripeEntity + { + [JsonProperty("installments")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("installments")] +#endif + public PaymentRecordPaymentMethodDetailsAlmaInstallments Installments { get; set; } + + /// + /// The Alma transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlmaInstallments.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlmaInstallments.cs new file mode 100644 index 0000000000..dd176ab9d4 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAlmaInstallments.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAlmaInstallments : StripeEntity + { + /// + /// The number of installments. + /// + [JsonProperty("count")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("count")] +#endif + public long Count { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPay.cs new file mode 100644 index 0000000000..6e05519df1 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPay.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAmazonPay : StripeEntity + { + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public PaymentRecordPaymentMethodDetailsAmazonPayFunding Funding { get; set; } + + /// + /// The Amazon Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFunding.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFunding.cs new file mode 100644 index 0000000000..c318a8ffe6 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFunding.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAmazonPayFunding : StripeEntity + { + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentRecordPaymentMethodDetailsAmazonPayFundingCard Card { get; set; } + + /// + /// funding type of the underlying payment method. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFundingCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFundingCard.cs new file mode 100644 index 0000000000..5a81878a4e --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAmazonPayFundingCard.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAmazonPayFundingCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long? ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long? ExpYear { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAuBecsDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAuBecsDebit.cs new file mode 100644 index 0000000000..95b26055d9 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsAuBecsDebit.cs @@ -0,0 +1,48 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsAuBecsDebit : StripeEntity + { + /// + /// Bank-State-Branch number of the bank account. + /// + [JsonProperty("bsb_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bsb_number")] +#endif + public string BsbNumber { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// ID of the mandate used to make this payment. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBacsDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBacsDebit.cs new file mode 100644 index 0000000000..e54a9497ba --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBacsDebit.cs @@ -0,0 +1,48 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBacsDebit : StripeEntity + { + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// ID of the mandate used to make this payment. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + + /// + /// Sort code of the bank account. (e.g., 10-20-30). + /// + [JsonProperty("sort_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sort_code")] +#endif + public string SortCode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBancontact.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBancontact.cs new file mode 100644 index 0000000000..cb77ac39d1 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBancontact.cs @@ -0,0 +1,154 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentRecordPaymentMethodDetailsBancontact : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + #region Expandable GeneratedSepaDebit + + /// + /// (ID of the PaymentMethod) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitId + { + get => this.InternalGeneratedSepaDebit?.Id; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit); + } + + /// + /// (Expanded) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentMethod GeneratedSepaDebit + { + get => this.InternalGeneratedSepaDebit?.ExpandedObject; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit); + } + + [JsonProperty("generated_sepa_debit")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebit { get; set; } + #endregion + + #region Expandable GeneratedSepaDebitMandate + + /// + /// (ID of the Mandate) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitMandateId + { + get => this.InternalGeneratedSepaDebitMandate?.Id; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate); + } + + /// + /// (Expanded) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate GeneratedSepaDebitMandate + { + get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate); + } + + [JsonProperty("generated_sepa_debit_mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit_mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; } + #endregion + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("iban_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban_last4")] +#endif + public string IbanLast4 { get; set; } + + /// + /// Preferred language of the Bancontact authorization page that the customer is redirected + /// to. Can be one of en, de, fr, or nl. + /// One of: de, en, fr, or nl. + /// + [JsonProperty("preferred_language")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_language")] +#endif + public string PreferredLanguage { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by Bancontact directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillie.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillie.cs new file mode 100644 index 0000000000..32d98156c1 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillie.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBillie : StripeEntity + { + /// + /// The Billie transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetails.cs new file mode 100644 index 0000000000..b8fe0a74bf --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetails.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBillingDetails : StripeEntity + { + /// + /// A representation of a physical address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public PaymentRecordPaymentMethodDetailsBillingDetailsAddress Address { get; set; } + + /// + /// The billing email associated with the method of payment. + /// + [JsonProperty("email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("email")] +#endif + public string Email { get; set; } + + /// + /// The billing name associated with the method of payment. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The billing phone number associated with the method of payment. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetailsAddress.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetailsAddress.cs new file mode 100644 index 0000000000..67e853084c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetailsAddress.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBillingDetailsAddress : StripeEntity + { + /// + /// City, district, suburb, town, or village. + /// + [JsonProperty("city")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("city")] +#endif + public string City { get; set; } + + /// + /// Two-letter country code (ISO + /// 3166-1 alpha-2). + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Address line 1, such as the street, PO Box, or company name. + /// + [JsonProperty("line1")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line1")] +#endif + public string Line1 { get; set; } + + /// + /// Address line 2, such as the apartment, suite, unit, or building. + /// + [JsonProperty("line2")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line2")] +#endif + public string Line2 { get; set; } + + /// + /// ZIP or postal code. + /// + [JsonProperty("postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("postal_code")] +#endif + public string PostalCode { get; set; } + + /// + /// State, county, province, or region. + /// + [JsonProperty("state")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("state")] +#endif + public string State { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBlik.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBlik.cs new file mode 100644 index 0000000000..fbfbb8fdcd --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBlik.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBlik : StripeEntity + { + /// + /// A unique and immutable identifier assigned by BLIK to every buyer. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBoleto.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBoleto.cs new file mode 100644 index 0000000000..d4f4c36823 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBoleto.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBoleto : StripeEntity + { + /// + /// The tax ID of the customer (CPF for individuals consumers or CNPJ for businesses + /// consumers). + /// + [JsonProperty("tax_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tax_id")] +#endif + public string TaxId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs new file mode 100644 index 0000000000..23835868a7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs @@ -0,0 +1,175 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// One of: amex, cartes_bancaires, diners, discover, + /// eftpos_au, interac, jcb, link, mastercard, + /// unionpay, unknown, or visa. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// When using manual capture, a future timestamp at which the charge will be automatically + /// refunded if uncaptured. + /// + [JsonProperty("capture_before")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("capture_before")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Check results by Card networks on Card address and CVC at time of payment. + /// + [JsonProperty("checks")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("checks")] +#endif + public PaymentRecordPaymentMethodDetailsCardChecks Checks { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long ExpYear { get; set; } + + /// + /// Uniquely identifies this particular card number. You can use this attribute to check + /// whether two customers who’ve signed up with you are using the same card number, for + /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the + /// tokenized number might be provided instead of the underlying card number. + /// + /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two + /// fingerprints for the same card---one for India and one for the rest of the world.. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// One of: credit, debit, prepaid, or unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// True if this payment was marked as MOTO and out of scope for SCA. + /// + [JsonProperty("moto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("moto")] +#endif + public bool Moto { get; set; } + + /// + /// Identifies which network this charge was processed on. Can be amex, + /// cartes_bancaires, diners, discover, eftpos_au, + /// interac, jcb, link, mastercard, unionpay, + /// visa, or unknown. + /// One of: amex, cartes_bancaires, diners, discover, + /// eftpos_au, interac, jcb, link, mastercard, + /// unionpay, unknown, or visa. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// If this card has network token credentials, this contains the details of the network + /// token credentials. + /// + [JsonProperty("network_token")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_token")] +#endif + public PaymentRecordPaymentMethodDetailsCardNetworkToken NetworkToken { get; set; } + + /// + /// This is used by the financial networks to identify a transaction. Visa calls this the + /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the + /// Acquirer Reference Data. This value will be present if it is returned by the financial + /// network in the authorization response, and null otherwise. + /// + [JsonProperty("network_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_transaction_id")] +#endif + public string NetworkTransactionId { get; set; } + + /// + /// Populated if this transaction used 3D Secure authentication. + /// + [JsonProperty("three_d_secure")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("three_d_secure")] +#endif + public PaymentRecordPaymentMethodDetailsCardThreeDSecure ThreeDSecure { get; set; } + + /// + /// If this Card is part of a card wallet, this contains the details of the card wallet. + /// + [JsonProperty("wallet")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wallet")] +#endif + public PaymentRecordPaymentMethodDetailsCardWallet Wallet { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardChecks.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardChecks.cs new file mode 100644 index 0000000000..27f6964fcf --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardChecks.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardChecks : StripeEntity + { + /// + /// One of: fail, pass, unavailable, or unchecked. + /// + [JsonProperty("address_line1_check")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address_line1_check")] +#endif + public string AddressLine1Check { get; set; } + + /// + /// One of: fail, pass, unavailable, or unchecked. + /// + [JsonProperty("address_postal_code_check")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address_postal_code_check")] +#endif + public string AddressPostalCodeCheck { get; set; } + + /// + /// One of: fail, pass, unavailable, or unchecked. + /// + [JsonProperty("cvc_check")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cvc_check")] +#endif + public string CvcCheck { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardNetworkToken.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardNetworkToken.cs new file mode 100644 index 0000000000..7b37b63be6 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardNetworkToken.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardNetworkToken : StripeEntity + { + /// + /// Indicates if Stripe used a network token, either user provided or Stripe managed when + /// processing the transaction. + /// + [JsonProperty("used")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("used")] +#endif + public bool Used { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresent.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresent.cs new file mode 100644 index 0000000000..4b8181c73c --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresent.cs @@ -0,0 +1,273 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardPresent : StripeEntity + { + /// + /// The authorized amount. + /// + [JsonProperty("amount_authorized")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_authorized")] +#endif + public long? AmountAuthorized { get; set; } + + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// The product code that + /// identifies the specific program or product associated with a card. + /// + [JsonProperty("brand_product")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand_product")] +#endif + public string BrandProduct { get; set; } + + /// + /// When using manual capture, a future timestamp after which the charge will be + /// automatically refunded if uncaptured. + /// + [JsonProperty("capture_before")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("capture_before")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime CaptureBefore { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// The cardholder name as read from the card, in ISO 7813 format. May include + /// alphanumeric characters, special characters and first/last name separator (/). In + /// some cases, the cardholder name may not be available depending on how the issuer has + /// configured the card. Cardholder name is typically not available on swipe or contactless + /// payments, such as those made with Apple Pay and Google Pay. + /// + [JsonProperty("cardholder_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_name")] +#endif + public string CardholderName { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// A high-level description of the type of cards issued in this range. (For internal use + /// only and not typically available in standard API requests.). + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Authorization response cryptogram. + /// + [JsonProperty("emv_auth_data")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("emv_auth_data")] +#endif + public string EmvAuthData { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long ExpYear { get; set; } + + /// + /// Uniquely identifies this particular card number. You can use this attribute to check + /// whether two customers who’ve signed up with you are using the same card number, for + /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the + /// tokenized number might be provided instead of the underlying card number. + /// + /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two + /// fingerprints for the same card---one for India and one for the rest of the world.. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be + /// attached to a Customer for future transactions. Only present if it was possible to + /// generate a card PaymentMethod. + /// + [JsonProperty("generated_card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_card")] +#endif + public string GeneratedCard { get; set; } + + /// + /// Issuer identification number of the card. (For internal use only and not typically + /// available in standard API requests.). + /// + [JsonProperty("iin")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iin")] +#endif + public string Iin { get; set; } + + /// + /// Whether this PaymentIntent is + /// eligible for incremental authorizations. Request support using request_incremental_authorization_support. + /// + [JsonProperty("incremental_authorization_supported")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("incremental_authorization_supported")] +#endif + public bool IncrementalAuthorizationSupported { get; set; } + + /// + /// The name of the card's issuing bank. (For internal use only and not typically available + /// in standard API requests.). + /// + [JsonProperty("issuer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("issuer")] +#endif + public string Issuer { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Identifies which network this charge was processed on. Can be amex, + /// cartes_bancaires, diners, discover, eftpos_au, + /// interac, jcb, link, mastercard, unionpay, + /// visa, or unknown. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// This is used by the financial networks to identify a transaction. Visa calls this the + /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the + /// Acquirer Reference Data. This value will be present if it is returned by the financial + /// network in the authorization response, and null otherwise. + /// + [JsonProperty("network_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_transaction_id")] +#endif + public string NetworkTransactionId { get; set; } + + /// + /// Details about payments collected offline. + /// + [JsonProperty("offline")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("offline")] +#endif + public PaymentRecordPaymentMethodDetailsCardPresentOffline Offline { get; set; } + + /// + /// Defines whether the authorized amount can be over-captured or not. + /// + [JsonProperty("overcapture_supported")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("overcapture_supported")] +#endif + public bool OvercaptureSupported { get; set; } + + /// + /// The languages that the issuing bank recommends using for localizing any customer-facing + /// text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's + /// chip. + /// + [JsonProperty("preferred_locales")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_locales")] +#endif + public List PreferredLocales { get; set; } + + /// + /// How card details were read in this transaction. + /// One of: contact_emv, contactless_emv, contactless_magstripe_mode, + /// magnetic_stripe_fallback, or magnetic_stripe_track2. + /// + [JsonProperty("read_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("read_method")] +#endif + public string ReadMethod { get; set; } + + /// + /// A collection of fields required to be displayed on receipts. Only required for EMV + /// transactions. + /// + [JsonProperty("receipt")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("receipt")] +#endif + public PaymentRecordPaymentMethodDetailsCardPresentReceipt Receipt { get; set; } + + [JsonProperty("wallet")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("wallet")] +#endif + public PaymentRecordPaymentMethodDetailsCardPresentWallet Wallet { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentOffline.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentOffline.cs new file mode 100644 index 0000000000..54129ab8cb --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentOffline.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardPresentOffline : StripeEntity + { + /// + /// Time at which the payment was collected while offline. + /// + [JsonProperty("stored_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("stored_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? StoredAt { get; set; } + + /// + /// The method used to process this payment method offline. Only deferred is allowed. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentReceipt.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentReceipt.cs new file mode 100644 index 0000000000..217d3ca403 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentReceipt.cs @@ -0,0 +1,102 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardPresentReceipt : StripeEntity + { + /// + /// The type of account being debited or credited. + /// One of: checking, credit, prepaid, or unknown. + /// + [JsonProperty("account_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_type")] +#endif + public string AccountType { get; set; } + + /// + /// The Application Cryptogram, a unique value generated by the card to authenticate the + /// transaction with issuers. + /// + [JsonProperty("application_cryptogram")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_cryptogram")] +#endif + public string ApplicationCryptogram { get; set; } + + /// + /// The Application Identifier (AID) on the card used to determine which networks are + /// eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the + /// card's chip. + /// + [JsonProperty("application_preferred_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_preferred_name")] +#endif + public string ApplicationPreferredName { get; set; } + + /// + /// Identifier for this transaction. + /// + [JsonProperty("authorization_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_code")] +#endif + public string AuthorizationCode { get; set; } + + /// + /// EMV tag 8A. A code returned by the card issuer. + /// + [JsonProperty("authorization_response_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_response_code")] +#endif + public string AuthorizationResponseCode { get; set; } + + /// + /// Describes the method used by the cardholder to verify ownership of the card. One of the + /// following: approval, failure, none, offline_pin, + /// offline_pin_and_signature, online_pin, or signature. + /// + [JsonProperty("cardholder_verification_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_verification_method")] +#endif + public string CardholderVerificationMethod { get; set; } + + /// + /// Similar to the application_preferred_name, identifying the applications (AIDs) available + /// on the card. Referenced from EMV tag 84. + /// + [JsonProperty("dedicated_file_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dedicated_file_name")] +#endif + public string DedicatedFileName { get; set; } + + /// + /// A 5-byte string that records the checks and validations that occur between the card and + /// the terminal. These checks determine how the terminal processes the transaction and what + /// risk tolerance is acceptable. Referenced from EMV Tag 95. + /// + [JsonProperty("terminal_verification_results")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("terminal_verification_results")] +#endif + public string TerminalVerificationResults { get; set; } + + /// + /// An indication of which steps were completed during the card read process. Referenced + /// from EMV Tag 9B. + /// + [JsonProperty("transaction_status_information")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_status_information")] +#endif + public string TransactionStatusInformation { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentWallet.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentWallet.cs new file mode 100644 index 0000000000..7461602906 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardPresentWallet.cs @@ -0,0 +1,22 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardPresentWallet : StripeEntity + { + /// + /// The type of mobile wallet, one of apple_pay, google_pay, + /// samsung_pay, or unknown. + /// One of: apple_pay, google_pay, samsung_pay, or unknown. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardThreeDSecure.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardThreeDSecure.cs new file mode 100644 index 0000000000..0aaf45b173 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardThreeDSecure.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardThreeDSecure : StripeEntity + { + /// + /// One of: challenge, or frictionless. + /// + [JsonProperty("authentication_flow")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authentication_flow")] +#endif + public string AuthenticationFlow { get; set; } + + /// + /// One of: attempt_acknowledged, authenticated, exempted, + /// failed, not_supported, or processing_error. + /// + [JsonProperty("result")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("result")] +#endif + public string Result { get; set; } + + /// + /// One of: abandoned, bypassed, canceled, card_not_enrolled, + /// network_not_supported, protocol_error, or rejected. + /// + [JsonProperty("result_reason")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("result_reason")] +#endif + public string ResultReason { get; set; } + + /// + /// One of: 1.0.2, 2.1.0, or 2.2.0. + /// + [JsonProperty("version")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("version")] +#endif + public string Version { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWallet.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWallet.cs new file mode 100644 index 0000000000..105f1509ce --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWallet.cs @@ -0,0 +1,43 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardWallet : StripeEntity + { + [JsonProperty("apple_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("apple_pay")] +#endif + public PaymentRecordPaymentMethodDetailsCardWalletApplePay ApplePay { get; set; } + + /// + /// (For tokenized numbers only.) The last four digits of the device account number. + /// + [JsonProperty("dynamic_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dynamic_last4")] +#endif + public string DynamicLast4 { get; set; } + + [JsonProperty("google_pay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("google_pay")] +#endif + public PaymentRecordPaymentMethodDetailsCardWalletGooglePay GooglePay { get; set; } + + /// + /// The type of the card wallet, one of apple_pay or google_pay. An additional + /// hash is included on the Wallet subhash with a name matching this value. It contains + /// additional information specific to the card wallet type. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWalletApplePay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWalletApplePay.cs new file mode 100644 index 0000000000..e7d049a916 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWalletApplePay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCardWalletApplePay : StripeEntity + { + /// + /// Type of the apple_pay transaction, one of apple_pay or apple_pay_later. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWalletGooglePay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWalletGooglePay.cs new file mode 100644 index 0000000000..9c9488811d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCardWalletGooglePay.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsCardWalletGooglePay : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCashapp.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCashapp.cs new file mode 100644 index 0000000000..ac41e7ea49 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCashapp.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCashapp : StripeEntity + { + /// + /// A unique and immutable identifier assigned by Cash App to every buyer. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// A public identifier for buyers using Cash App. + /// + [JsonProperty("cashtag")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cashtag")] +#endif + public string Cashtag { get; set; } + + /// + /// A unique and immutable identifier of payments assigned by Cash App. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs new file mode 100644 index 0000000000..325faf4e61 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCrypto : StripeEntity + { + /// + /// The wallet address of the customer. + /// + [JsonProperty("buyer_address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_address")] +#endif + public string BuyerAddress { get; set; } + + /// + /// The blockchain network that the transaction was sent on. + /// One of: base, ethereum, polygon, or solana. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// The token currency that the transaction was sent with. + /// One of: usdc, usdg, or usdp. + /// + [JsonProperty("token_currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("token_currency")] +#endif + public string TokenCurrency { get; set; } + + /// + /// The blockchain transaction hash of the crypto payment. + /// + [JsonProperty("transaction_hash")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_hash")] +#endif + public string TransactionHash { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustom.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustom.cs new file mode 100644 index 0000000000..aa24880e8b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustom.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCustom : StripeEntity + { + /// + /// Display name for the custom (user-defined) payment method type used to make this + /// payment. + /// + [JsonProperty("display_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_name")] +#endif + public string DisplayName { get; set; } + + /// + /// The custom payment method type associated with this payment. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomerBalance.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomerBalance.cs new file mode 100644 index 0000000000..5027cce204 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomerBalance.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsCustomerBalance : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsEps.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsEps.cs new file mode 100644 index 0000000000..01a6ea305d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsEps.cs @@ -0,0 +1,57 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsEps : StripeEntity + { + /// + /// The customer's bank. Should be one of arzte_und_apotheker_bank, + /// austrian_anadi_bank_ag, bank_austria, bankhaus_carl_spangler, + /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag, + /// brull_kallmus_bank_ag, btv_vier_lander_bank, + /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank, + /// easybank_ag, erste_bank_und_sparkassen, + /// hypo_alpeadriabank_international_ag, + /// hypo_noe_lb_fur_niederosterreich_u_wien, + /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag, + /// hypo_vorarlberg_bank_ag, hypo_bank_burgenland_aktiengesellschaft, + /// marchfelder_bank, oberbank_ag, raiffeisen_bankengruppe_osterreich, + /// schoellerbank_ag, sparda_bank_wien, volksbank_gruppe, + /// volkskreditbank_ag, or vr_bank_braunau. + /// One of: arzte_und_apotheker_bank, austrian_anadi_bank_ag, + /// bank_austria, bankhaus_carl_spangler, + /// bankhaus_schelhammer_und_schattera_ag, bawag_psk_ag, bks_bank_ag, + /// brull_kallmus_bank_ag, btv_vier_lander_bank, + /// capital_bank_grawe_gruppe_ag, deutsche_bank_ag, dolomitenbank, + /// easybank_ag, erste_bank_und_sparkassen, + /// hypo_alpeadriabank_international_ag, + /// hypo_bank_burgenland_aktiengesellschaft, + /// hypo_noe_lb_fur_niederosterreich_u_wien, + /// hypo_oberosterreich_salzburg_steiermark, hypo_tirol_bank_ag, + /// hypo_vorarlberg_bank_ag, marchfelder_bank, oberbank_ag, + /// raiffeisen_bankengruppe_osterreich, schoellerbank_ag, + /// sparda_bank_wien, volksbank_gruppe, volkskreditbank_ag, or + /// vr_bank_braunau. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by EPS directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// EPS rarely provides this information so the attribute is usually empty. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsFpx.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsFpx.cs new file mode 100644 index 0000000000..11ebee2469 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsFpx.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsFpx : StripeEntity + { + /// + /// Account holder type, if provided. Can be one of individual or company. + /// One of: company, or individual. + /// + [JsonProperty("account_holder_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_type")] +#endif + public string AccountHolderType { get; set; } + + /// + /// The customer's bank. Can be one of affin_bank, agrobank, + /// alliance_bank, ambank, bank_islam, bank_muamalat, + /// bank_rakyat, bsn, cimb, hong_leong_bank, hsbc, + /// kfh, maybank2u, ocbc, public_bank, rhb, + /// standard_chartered, uob, deutsche_bank, maybank2e, + /// pb_enterprise, or bank_of_china. + /// One of: affin_bank, agrobank, alliance_bank, ambank, + /// bank_islam, bank_muamalat, bank_of_china, bank_rakyat, + /// bsn, cimb, deutsche_bank, hong_leong_bank, hsbc, + /// kfh, maybank2e, maybank2u, ocbc, pb_enterprise, + /// public_bank, rhb, standard_chartered, or uob. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// Unique transaction id generated by FPX for every request from the merchant. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiropay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiropay.cs new file mode 100644 index 0000000000..c2451537eb --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiropay.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsGiropay : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by Giropay directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// Giropay rarely provides this information so the attribute is usually empty. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGrabpay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGrabpay.cs new file mode 100644 index 0000000000..06dfdefd16 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGrabpay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsGrabpay : StripeEntity + { + /// + /// Unique transaction id generated by GrabPay. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdeal.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdeal.cs new file mode 100644 index 0000000000..a5a16582b6 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsIdeal.cs @@ -0,0 +1,145 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentRecordPaymentMethodDetailsIdeal : StripeEntity + { + /// + /// The customer's bank. Can be one of abn_amro, asn_bank, bunq, + /// buut, handelsbanken, ing, knab, moneyou, n26, + /// nn, rabobank, regiobank, revolut, sns_bank, + /// triodos_bank, van_lanschot, or yoursafe. + /// One of: abn_amro, asn_bank, bunq, buut, + /// handelsbanken, ing, knab, moneyou, n26, nn, + /// rabobank, regiobank, revolut, sns_bank, triodos_bank, + /// van_lanschot, or yoursafe. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// The Bank Identifier Code of the customer's bank. + /// One of: ABNANL2A, ASNBNL21, BITSNL2A, BUNQNL2A, + /// BUUTNL2A, FVLBNL22, HANDNL2A, INGBNL2A, KNABNL2H, + /// MOYONL21, NNBANL2G, NTSBDEB1, RABONL2U, RBRBNL21, + /// REVOIE23, REVOLT21, SNSBNL2A, or TRIONL2U. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + #region Expandable GeneratedSepaDebit + + /// + /// (ID of the PaymentMethod) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitId + { + get => this.InternalGeneratedSepaDebit?.Id; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit); + } + + /// + /// (Expanded) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentMethod GeneratedSepaDebit + { + get => this.InternalGeneratedSepaDebit?.ExpandedObject; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit); + } + + [JsonProperty("generated_sepa_debit")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebit { get; set; } + #endregion + + #region Expandable GeneratedSepaDebitMandate + + /// + /// (ID of the Mandate) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitMandateId + { + get => this.InternalGeneratedSepaDebitMandate?.Id; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate); + } + + /// + /// (Expanded) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate GeneratedSepaDebitMandate + { + get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate); + } + + [JsonProperty("generated_sepa_debit_mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit_mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; } + #endregion + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("iban_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban_last4")] +#endif + public string IbanLast4 { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by iDEAL directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresent.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresent.cs new file mode 100644 index 0000000000..c64488af7d --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresent.cs @@ -0,0 +1,203 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsInteracPresent : StripeEntity + { + /// + /// Card brand. Can be interac, mastercard or visa. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// The cardholder name as read from the card, in ISO 7813 format. May include + /// alphanumeric characters, special characters and first/last name separator (/). In + /// some cases, the cardholder name may not be available depending on how the issuer has + /// configured the card. Cardholder name is typically not available on swipe or contactless + /// payments, such as those made with Apple Pay and Google Pay. + /// + [JsonProperty("cardholder_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_name")] +#endif + public string CardholderName { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// A high-level description of the type of cards issued in this range. (For internal use + /// only and not typically available in standard API requests.). + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Authorization response cryptogram. + /// + [JsonProperty("emv_auth_data")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("emv_auth_data")] +#endif + public string EmvAuthData { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long ExpYear { get; set; } + + /// + /// Uniquely identifies this particular card number. You can use this attribute to check + /// whether two customers who’ve signed up with you are using the same card number, for + /// example. For payment methods that tokenize card information (Apple Pay, Google Pay), the + /// tokenized number might be provided instead of the underlying card number. + /// + /// As of May 1, 2021, card fingerprint in India for Connect changed to allow two + /// fingerprints for the same card---one for India and one for the rest of the world.. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// ID of a card PaymentMethod generated from the card_present PaymentMethod that may be + /// attached to a Customer for future transactions. Only present if it was possible to + /// generate a card PaymentMethod. + /// + [JsonProperty("generated_card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_card")] +#endif + public string GeneratedCard { get; set; } + + /// + /// Issuer identification number of the card. (For internal use only and not typically + /// available in standard API requests.). + /// + [JsonProperty("iin")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iin")] +#endif + public string Iin { get; set; } + + /// + /// The name of the card's issuing bank. (For internal use only and not typically available + /// in standard API requests.). + /// + [JsonProperty("issuer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("issuer")] +#endif + public string Issuer { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Identifies which network this charge was processed on. Can be amex, + /// cartes_bancaires, diners, discover, eftpos_au, + /// interac, jcb, link, mastercard, unionpay, + /// visa, or unknown. + /// + [JsonProperty("network")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network")] +#endif + public string Network { get; set; } + + /// + /// This is used by the financial networks to identify a transaction. Visa calls this the + /// Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the + /// Acquirer Reference Data. This value will be present if it is returned by the financial + /// network in the authorization response, and null otherwise. + /// + [JsonProperty("network_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("network_transaction_id")] +#endif + public string NetworkTransactionId { get; set; } + + /// + /// The languages that the issuing bank recommends using for localizing any customer-facing + /// text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's + /// chip. + /// + [JsonProperty("preferred_locales")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_locales")] +#endif + public List PreferredLocales { get; set; } + + /// + /// How card details were read in this transaction. + /// One of: contact_emv, contactless_emv, contactless_magstripe_mode, + /// magnetic_stripe_fallback, or magnetic_stripe_track2. + /// + [JsonProperty("read_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("read_method")] +#endif + public string ReadMethod { get; set; } + + /// + /// A collection of fields required to be displayed on receipts. Only required for EMV + /// transactions. + /// + [JsonProperty("receipt")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("receipt")] +#endif + public PaymentRecordPaymentMethodDetailsInteracPresentReceipt Receipt { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresentReceipt.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresentReceipt.cs new file mode 100644 index 0000000000..17881336e2 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsInteracPresentReceipt.cs @@ -0,0 +1,102 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsInteracPresentReceipt : StripeEntity + { + /// + /// The type of account being debited or credited. + /// One of: checking, savings, or unknown. + /// + [JsonProperty("account_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_type")] +#endif + public string AccountType { get; set; } + + /// + /// The Application Cryptogram, a unique value generated by the card to authenticate the + /// transaction with issuers. + /// + [JsonProperty("application_cryptogram")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_cryptogram")] +#endif + public string ApplicationCryptogram { get; set; } + + /// + /// The Application Identifier (AID) on the card used to determine which networks are + /// eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the + /// card's chip. + /// + [JsonProperty("application_preferred_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("application_preferred_name")] +#endif + public string ApplicationPreferredName { get; set; } + + /// + /// Identifier for this transaction. + /// + [JsonProperty("authorization_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_code")] +#endif + public string AuthorizationCode { get; set; } + + /// + /// EMV tag 8A. A code returned by the card issuer. + /// + [JsonProperty("authorization_response_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("authorization_response_code")] +#endif + public string AuthorizationResponseCode { get; set; } + + /// + /// Describes the method used by the cardholder to verify ownership of the card. One of the + /// following: approval, failure, none, offline_pin, + /// offline_pin_and_signature, online_pin, or signature. + /// + [JsonProperty("cardholder_verification_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("cardholder_verification_method")] +#endif + public string CardholderVerificationMethod { get; set; } + + /// + /// Similar to the application_preferred_name, identifying the applications (AIDs) available + /// on the card. Referenced from EMV tag 84. + /// + [JsonProperty("dedicated_file_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dedicated_file_name")] +#endif + public string DedicatedFileName { get; set; } + + /// + /// A 5-byte string that records the checks and validations that occur between the card and + /// the terminal. These checks determine how the terminal processes the transaction and what + /// risk tolerance is acceptable. Referenced from EMV Tag 95. + /// + [JsonProperty("terminal_verification_results")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("terminal_verification_results")] +#endif + public string TerminalVerificationResults { get; set; } + + /// + /// An indication of which steps were completed during the card read process. Referenced + /// from EMV Tag 9B. + /// + [JsonProperty("transaction_status_information")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_status_information")] +#endif + public string TransactionStatusInformation { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKakaoPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKakaoPay.cs new file mode 100644 index 0000000000..2df48fe416 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKakaoPay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKakaoPay : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Kakao Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarna.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarna.cs new file mode 100644 index 0000000000..c3e7819abd --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarna.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKlarna : StripeEntity + { + /// + /// The payer details for this transaction. + /// + [JsonProperty("payer_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_details")] +#endif + public PaymentRecordPaymentMethodDetailsKlarnaPayerDetails PayerDetails { get; set; } + + /// + /// The Klarna payment method used for this transaction. Can be one of pay_later, + /// pay_now, pay_with_financing, or pay_in_installments. + /// + [JsonProperty("payment_method_category")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_category")] +#endif + public string PaymentMethodCategory { get; set; } + + /// + /// Preferred language of the Klarna authorization page that the customer is redirected to. + /// Can be one of de-AT, en-AT, nl-BE, fr-BE, en-BE, + /// de-DE, en-DE, da-DK, en-DK, es-ES, en-ES, + /// fi-FI, sv-FI, en-FI, en-GB, en-IE, it-IT, + /// en-IT, nl-NL, en-NL, nb-NO, en-NO, sv-SE, + /// en-SE, en-US, es-US, fr-FR, en-FR, cs-CZ, + /// en-CZ, ro-RO, en-RO, el-GR, en-GR, en-AU, + /// en-NZ, en-CA, fr-CA, pl-PL, en-PL, pt-PT, + /// en-PT, de-CH, fr-CH, it-CH, or en-CH. + /// + [JsonProperty("preferred_locale")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_locale")] +#endif + public string PreferredLocale { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetails.cs new file mode 100644 index 0000000000..1e8bc70f1b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetails.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKlarnaPayerDetails : StripeEntity + { + /// + /// The payer's address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress Address { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs new file mode 100644 index 0000000000..abe5da27c4 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKlarnaPayerDetailsAddress : StripeEntity + { + /// + /// The payer address country. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbini.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbini.cs new file mode 100644 index 0000000000..41d8c7eafa --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbini.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKonbini : StripeEntity + { + /// + /// If the payment succeeded, this contains the details of the convenience store where the + /// payment was completed. + /// + [JsonProperty("store")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("store")] +#endif + public PaymentRecordPaymentMethodDetailsKonbiniStore Store { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbiniStore.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbiniStore.cs new file mode 100644 index 0000000000..56a12701e7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKonbiniStore.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKonbiniStore : StripeEntity + { + /// + /// The name of the convenience store chain where the payment was completed. + /// One of: familymart, lawson, ministop, or seicomart. + /// + [JsonProperty("chain")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("chain")] +#endif + public string Chain { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKrCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKrCard.cs new file mode 100644 index 0000000000..56f934ef11 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsKrCard.cs @@ -0,0 +1,52 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsKrCard : StripeEntity + { + /// + /// The local credit or debit card brand. + /// One of: bc, citi, hana, hyundai, jeju, + /// jeonbuk, kakaobank, kbank, kdbbank, kookmin, + /// kwangju, lotte, mg, nh, post, samsung, + /// savingsbank, shinhan, shinhyup, suhyup, tossbank, or + /// woori. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The last four digits of the card. This may not be present for American Express cards. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// The Korean Card transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsLink.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsLink.cs new file mode 100644 index 0000000000..e8cebcffa6 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsLink.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsLink : StripeEntity + { + /// + /// Two-letter ISO code representing the funding source country beneath the Link payment. + /// You could use this attribute to get a sense of international fees. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMbWay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMbWay.cs new file mode 100644 index 0000000000..0dbc455f6b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMbWay.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsMbWay : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepay.cs new file mode 100644 index 0000000000..5ccfedf61a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsMobilepay : StripeEntity + { + /// + /// Internal card details. + /// + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentRecordPaymentMethodDetailsMobilepayCard Card { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepayCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepayCard.cs new file mode 100644 index 0000000000..f94f5ddd3a --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMobilepayCard.cs @@ -0,0 +1,56 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsMobilepayCard : StripeEntity + { + /// + /// Brand of the card used in the transaction. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long? ExpMonth { get; set; } + + /// + /// Two digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long? ExpYear { get; set; } + + /// + /// The last 4 digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMultibanco.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMultibanco.cs new file mode 100644 index 0000000000..bd5ca66af3 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsMultibanco.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsMultibanco : StripeEntity + { + /// + /// Entity number associated with this Multibanco payment. + /// + [JsonProperty("entity")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("entity")] +#endif + public string Entity { get; set; } + + /// + /// Reference number associated with this Multibanco payment. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNaverPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNaverPay.cs new file mode 100644 index 0000000000..f0352b1c4e --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNaverPay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsNaverPay : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Naver Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNzBankAccount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNzBankAccount.cs new file mode 100644 index 0000000000..0009d3525f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsNzBankAccount.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsNzBankAccount : StripeEntity + { + /// + /// The name on the bank account. Only present if the account holder name is different from + /// the name of the authorized signatory collected in the PaymentMethod’s billing details. + /// + [JsonProperty("account_holder_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_name")] +#endif + public string AccountHolderName { get; set; } + + /// + /// The numeric code for the bank account's bank. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// The name of the bank. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// The numeric code for the bank account's bank branch. + /// + [JsonProperty("branch_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("branch_code")] +#endif + public string BranchCode { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// The suffix of the bank account number. + /// + [JsonProperty("suffix")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("suffix")] +#endif + public string Suffix { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsOxxo.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsOxxo.cs new file mode 100644 index 0000000000..582ddb53d7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsOxxo.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsOxxo : StripeEntity + { + /// + /// OXXO reference number. + /// + [JsonProperty("number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("number")] +#endif + public string Number { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsP24.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsP24.cs new file mode 100644 index 0000000000..99eb947d00 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsP24.cs @@ -0,0 +1,55 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsP24 : StripeEntity + { + /// + /// The customer's bank. Can be one of ing, citi_handlowy, + /// tmobile_usbugi_bankowe, plus_bank, etransfer_pocztowy24, + /// banki_spbdzielcze, bank_nowy_bfg_sa, getin_bank, velobank, + /// blik, noble_pay, ideabank, envelobank, + /// santander_przelew24, nest_przelew, mbank_mtransfer, + /// inteligo, pbac_z_ipko, bnp_paribas, credit_agricole, + /// toyota_bank, bank_pekao_sa, volkswagen_bank, + /// bank_millennium, alior_bank, or boz. + /// One of: alior_bank, bank_millennium, bank_nowy_bfg_sa, + /// bank_pekao_sa, banki_spbdzielcze, blik, bnp_paribas, + /// boz, citi_handlowy, credit_agricole, envelobank, + /// etransfer_pocztowy24, getin_bank, ideabank, ing, + /// inteligo, mbank_mtransfer, nest_przelew, noble_pay, + /// pbac_z_ipko, plus_bank, santander_przelew24, + /// tmobile_usbugi_bankowe, toyota_bank, velobank, or + /// volkswagen_bank. + /// + [JsonProperty("bank")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank")] +#endif + public string Bank { get; set; } + + /// + /// Unique reference for this Przelewy24 payment. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by Przelewy24 directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// Przelewy24 rarely provides this information so the attribute is usually empty. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayByBank.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayByBank.cs new file mode 100644 index 0000000000..570df7ce56 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayByBank.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsPayByBank : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayco.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayco.cs new file mode 100644 index 0000000000..094e6808e2 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPayco.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsPayco : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Payco transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaynow.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaynow.cs new file mode 100644 index 0000000000..5ca7d56511 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaynow.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsPaynow : StripeEntity + { + /// + /// ID of the location that + /// this transaction's reader is assigned to. + /// + [JsonProperty("location")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("location")] +#endif + public string Location { get; set; } + + /// + /// ID of the reader this + /// transaction was made on. + /// + [JsonProperty("reader")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reader")] +#endif + public string Reader { get; set; } + + /// + /// Reference number associated with this PayNow payment. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypal.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypal.cs new file mode 100644 index 0000000000..8c83cb87da --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypal.cs @@ -0,0 +1,70 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsPaypal : StripeEntity + { + /// + /// Two-letter ISO code representing the buyer's country. Values are provided by PayPal + /// directly (if supported) at the time of authorization or settlement. They cannot be set + /// or mutated. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Owner's email. Values are provided by PayPal directly (if supported) at the time of + /// authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("payer_email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_email")] +#endif + public string PayerEmail { get; set; } + + /// + /// PayPal account PayerID. This identifier uniquely identifies the PayPal customer. + /// + [JsonProperty("payer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_id")] +#endif + public string PayerId { get; set; } + + /// + /// Owner's full name. Values provided by PayPal directly (if supported) at the time of + /// authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("payer_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payer_name")] +#endif + public string PayerName { get; set; } + + /// + /// The level of protection offered as defined by PayPal Seller Protection for Merchants, + /// for this transaction. + /// + [JsonProperty("seller_protection")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("seller_protection")] +#endif + public PaymentRecordPaymentMethodDetailsPaypalSellerProtection SellerProtection { get; set; } + + /// + /// A unique ID generated by PayPal for this transaction. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypalSellerProtection.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypalSellerProtection.cs new file mode 100644 index 0000000000..0dfe581805 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPaypalSellerProtection.cs @@ -0,0 +1,32 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsPaypalSellerProtection : StripeEntity + { + /// + /// An array of conditions that are covered for the transaction, if applicable. + /// One of: fraudulent, or product_not_received. + /// + [JsonProperty("dispute_categories")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("dispute_categories")] +#endif + public List DisputeCategories { get; set; } + + /// + /// Indicates whether the transaction is eligible for PayPal's seller protection. + /// One of: eligible, not_eligible, or partially_eligible. + /// + [JsonProperty("status")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("status")] +#endif + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPix.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPix.cs new file mode 100644 index 0000000000..ae77e6eb13 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPix.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsPix : StripeEntity + { + /// + /// Unique transaction id generated by BCB. + /// + [JsonProperty("bank_transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_transaction_id")] +#endif + public string BankTransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPromptpay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPromptpay.cs new file mode 100644 index 0000000000..c6a85f9fbf --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsPromptpay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsPromptpay : StripeEntity + { + /// + /// Bill reference generated by PromptPay. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPay.cs new file mode 100644 index 0000000000..e3ff12db0b --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPay.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsRevolutPay : StripeEntity + { + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public PaymentRecordPaymentMethodDetailsRevolutPayFunding Funding { get; set; } + + /// + /// The Revolut Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFunding.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFunding.cs new file mode 100644 index 0000000000..7705d1cc87 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFunding.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsRevolutPayFunding : StripeEntity + { + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentRecordPaymentMethodDetailsRevolutPayFundingCard Card { get; set; } + + /// + /// funding type of the underlying payment method. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFundingCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFundingCard.cs new file mode 100644 index 0000000000..dd24846028 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsRevolutPayFundingCard.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsRevolutPayFundingCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("brand")] +#endif + public string Brand { get; set; } + + /// + /// Two-letter ISO code representing the country of the card. You could use this attribute + /// to get a sense of the international breakdown of cards you've collected. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Two-digit number representing the card's expiration month. + /// + [JsonProperty("exp_month")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_month")] +#endif + public long? ExpMonth { get; set; } + + /// + /// Four-digit number representing the card's expiration year. + /// + [JsonProperty("exp_year")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("exp_year")] +#endif + public long? ExpYear { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("funding")] +#endif + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSamsungPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSamsungPay.cs new file mode 100644 index 0000000000..4ba0a0d548 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSamsungPay.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsSamsungPay : StripeEntity + { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("buyer_id")] +#endif + public string BuyerId { get; set; } + + /// + /// The Samsung Pay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSatispay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSatispay.cs new file mode 100644 index 0000000000..ca7a678e81 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSatispay.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsSatispay : StripeEntity + { + /// + /// The Satispay transaction ID associated with this payment. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaCreditTransfer.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaCreditTransfer.cs new file mode 100644 index 0000000000..de7440af4f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaCreditTransfer.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsSepaCreditTransfer : StripeEntity + { + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + /// + /// IBAN of the bank account to transfer funds to. + /// + [JsonProperty("iban")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban")] +#endif + public string Iban { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaDebit.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaDebit.cs new file mode 100644 index 0000000000..7d840918de --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSepaDebit.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsSepaDebit : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Branch code of bank associated with the bank account. + /// + [JsonProperty("branch_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("branch_code")] +#endif + public string BranchCode { get; set; } + + /// + /// Two-letter ISO code representing the country the bank account is located in. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + /// + /// Find the ID of the mandate used for this payment under the payment_method_details.sepa_debit.mandate + /// property on the Charge. Use this mandate ID to retrieve the Mandate. + /// + [JsonProperty("mandate")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] +#endif + public string Mandate { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSofort.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSofort.cs new file mode 100644 index 0000000000..98ffccf5e8 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSofort.cs @@ -0,0 +1,164 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentRecordPaymentMethodDetailsSofort : StripeEntity + { + /// + /// Bank code of bank associated with the bank account. + /// + [JsonProperty("bank_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_code")] +#endif + public string BankCode { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Bank Identifier Code of the bank associated with the bank account. + /// + [JsonProperty("bic")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bic")] +#endif + public string Bic { get; set; } + + /// + /// Two-letter ISO code representing the country the bank account is located in. + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + #region Expandable GeneratedSepaDebit + + /// + /// (ID of the PaymentMethod) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitId + { + get => this.InternalGeneratedSepaDebit?.Id; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldId(value, this.InternalGeneratedSepaDebit); + } + + /// + /// (Expanded) + /// The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public PaymentMethod GeneratedSepaDebit + { + get => this.InternalGeneratedSepaDebit?.ExpandedObject; + set => this.InternalGeneratedSepaDebit = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebit); + } + + [JsonProperty("generated_sepa_debit")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebit { get; set; } + #endregion + + #region Expandable GeneratedSepaDebitMandate + + /// + /// (ID of the Mandate) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string GeneratedSepaDebitMandateId + { + get => this.InternalGeneratedSepaDebitMandate?.Id; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldId(value, this.InternalGeneratedSepaDebitMandate); + } + + /// + /// (Expanded) + /// The mandate for the SEPA Direct Debit PaymentMethod which was generated by this Charge. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate GeneratedSepaDebitMandate + { + get => this.InternalGeneratedSepaDebitMandate?.ExpandedObject; + set => this.InternalGeneratedSepaDebitMandate = SetExpandableFieldObject(value, this.InternalGeneratedSepaDebitMandate); + } + + [JsonProperty("generated_sepa_debit_mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("generated_sepa_debit_mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalGeneratedSepaDebitMandate { get; set; } + #endregion + + /// + /// Last four characters of the IBAN. + /// + [JsonProperty("iban_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("iban_last4")] +#endif + public string IbanLast4 { get; set; } + + /// + /// Preferred language of the SOFORT authorization page that the customer is redirected to. + /// Can be one of de, en, es, fr, it, nl, or + /// pl. + /// One of: de, en, es, fr, it, nl, or pl. + /// + [JsonProperty("preferred_language")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preferred_language")] +#endif + public string PreferredLanguage { get; set; } + + /// + /// Owner's verified full name. Values are verified or provided by SOFORT directly (if + /// supported) at the time of authorization or settlement. They cannot be set or mutated. + /// + [JsonProperty("verified_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_name")] +#endif + public string VerifiedName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsStripeAccount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsStripeAccount.cs new file mode 100644 index 0000000000..8208fb1d53 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsStripeAccount.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsStripeAccount : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSwish.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSwish.cs new file mode 100644 index 0000000000..1538f8c535 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsSwish.cs @@ -0,0 +1,39 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsSwish : StripeEntity + { + /// + /// Uniquely identifies the payer's Swish account. You can use this attribute to check + /// whether two Swish transactions were paid for by the same payer. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Payer bank reference number for the payment. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + + /// + /// The last four digits of the Swish account phone number. + /// + [JsonProperty("verified_phone_last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("verified_phone_last4")] +#endif + public string VerifiedPhoneLast4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsTwint.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsTwint.cs new file mode 100644 index 0000000000..618f2de443 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsTwint.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsTwint : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsUsBankAccount.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsUsBankAccount.cs new file mode 100644 index 0000000000..40823c3e48 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsUsBankAccount.cs @@ -0,0 +1,120 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + +#if NET6_0_OR_GREATER + [STJS.JsonConverter(typeof(STJMemberSerializationOptIn))] +#endif + public class PaymentRecordPaymentMethodDetailsUsBankAccount : StripeEntity + { + /// + /// One of: company, or individual. + /// + [JsonProperty("account_holder_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_holder_type")] +#endif + public string AccountHolderType { get; set; } + + /// + /// One of: checking, or savings. + /// + [JsonProperty("account_type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("account_type")] +#endif + public string AccountType { get; set; } + + /// + /// Name of the bank associated with the bank account. + /// + [JsonProperty("bank_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("bank_name")] +#endif + public string BankName { get; set; } + + /// + /// Uniquely identifies this particular bank account. You can use this attribute to check + /// whether two bank accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last4")] +#endif + public string Last4 { get; set; } + + #region Expandable Mandate + + /// + /// (ID of the Mandate) + /// ID of the mandate used to make this payment. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public string MandateId + { + get => this.InternalMandate?.Id; + set => this.InternalMandate = SetExpandableFieldId(value, this.InternalMandate); + } + + /// + /// (Expanded) + /// ID of the mandate used to make this payment. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] +#if NET6_0_OR_GREATER + [STJS.JsonIgnore] +#endif + public Mandate Mandate + { + get => this.InternalMandate?.ExpandedObject; + set => this.InternalMandate = SetExpandableFieldObject(value, this.InternalMandate); + } + + [JsonProperty("mandate")] + [JsonConverter(typeof(ExpandableFieldConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mandate")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] +#endif + internal ExpandableField InternalMandate { get; set; } + #endregion + + /// + /// Reference number to locate ACH payments with customer’s bank. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + + /// + /// Routing number of the bank account. + /// + [JsonProperty("routing_number")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("routing_number")] +#endif + public string RoutingNumber { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechat.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechat.cs new file mode 100644 index 0000000000..05f03a39f7 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechat.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsWechat : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechatPay.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechatPay.cs new file mode 100644 index 0000000000..d8bb308e16 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsWechatPay.cs @@ -0,0 +1,50 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsWechatPay : StripeEntity + { + /// + /// Uniquely identifies this particular WeChat Pay account. You can use this attribute to + /// check whether two WeChat accounts are the same. + /// + [JsonProperty("fingerprint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fingerprint")] +#endif + public string Fingerprint { get; set; } + + /// + /// ID of the location that + /// this transaction's reader is assigned to. + /// + [JsonProperty("location")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("location")] +#endif + public string Location { get; set; } + + /// + /// ID of the reader this + /// transaction was made on. + /// + [JsonProperty("reader")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reader")] +#endif + public string Reader { get; set; } + + /// + /// Transaction ID of this particular WeChat Pay transaction. + /// + [JsonProperty("transaction_id")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("transaction_id")] +#endif + public string TransactionId { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsZip.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsZip.cs new file mode 100644 index 0000000000..d400c62aa5 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsZip.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordPaymentMethodDetailsZip : StripeEntity + { + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordProcessorDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordProcessorDetails.cs new file mode 100644 index 0000000000..4e66c2bfaa --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordProcessorDetails.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordProcessorDetails : StripeEntity + { + /// + /// Custom processors represent payment processors not modeled directly in the Stripe API. + /// This resource consists of details about the custom processor used for this payment + /// attempt. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentRecordProcessorDetailsCustom Custom { get; set; } + + /// + /// The processor used for this payment attempt. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordProcessorDetailsCustom.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordProcessorDetailsCustom.cs new file mode 100644 index 0000000000..48dea150a5 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordProcessorDetailsCustom.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordProcessorDetailsCustom : StripeEntity + { + /// + /// An opaque string for manual reconciliation of this payment, for example a check number + /// or a payment processor ID. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordShippingDetails.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordShippingDetails.cs new file mode 100644 index 0000000000..8c978850b0 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordShippingDetails.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordShippingDetails : StripeEntity + { + /// + /// A representation of a physical address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public PaymentRecordShippingDetailsAddress Address { get; set; } + + /// + /// The shipping recipient's name. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The shipping recipient's phone number. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordShippingDetailsAddress.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordShippingDetailsAddress.cs new file mode 100644 index 0000000000..2dcf3d8d89 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordShippingDetailsAddress.cs @@ -0,0 +1,66 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordShippingDetailsAddress : StripeEntity + { + /// + /// City, district, suburb, town, or village. + /// + [JsonProperty("city")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("city")] +#endif + public string City { get; set; } + + /// + /// Two-letter country code (ISO + /// 3166-1 alpha-2). + /// + [JsonProperty("country")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("country")] +#endif + public string Country { get; set; } + + /// + /// Address line 1, such as the street, PO Box, or company name. + /// + [JsonProperty("line1")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line1")] +#endif + public string Line1 { get; set; } + + /// + /// Address line 2, such as the apartment, suite, unit, or building. + /// + [JsonProperty("line2")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line2")] +#endif + public string Line2 { get; set; } + + /// + /// ZIP or postal code. + /// + [JsonProperty("postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("postal_code")] +#endif + public string PostalCode { get; set; } + + /// + /// State, county, province, or region. + /// + [JsonProperty("state")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("state")] +#endif + public string State { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs b/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs index a940d78eb3..44987e7c86 100644 --- a/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs +++ b/src/Stripe.net/Entities/Refunds/RefundDestinationDetails.cs @@ -68,6 +68,12 @@ public class RefundDestinationDetails : StripeEntity #endif public RefundDestinationDetailsCashapp Cashapp { get; set; } + [JsonProperty("crypto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("crypto")] +#endif + public RefundDestinationDetailsCrypto Crypto { get; set; } + [JsonProperty("customer_cash_balance")] #if NET6_0_OR_GREATER [STJS.JsonPropertyName("customer_cash_balance")] diff --git a/src/Stripe.net/Entities/Refunds/RefundDestinationDetailsCrypto.cs b/src/Stripe.net/Entities/Refunds/RefundDestinationDetailsCrypto.cs new file mode 100644 index 0000000000..89a70f7619 --- /dev/null +++ b/src/Stripe.net/Entities/Refunds/RefundDestinationDetailsCrypto.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class RefundDestinationDetailsCrypto : StripeEntity + { + /// + /// The transaction hash of the refund. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + } +} diff --git a/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs b/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs index 8ad9809f2d..dc09cc6069 100644 --- a/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs +++ b/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs @@ -225,6 +225,26 @@ public Customer Customer #endif public string Description { get; set; } + /// + /// Payment method types that are excluded from this SetupIntent. + /// One of: acss_debit, affirm, afterpay_clearpay, alipay, + /// alma, amazon_pay, au_becs_debit, bacs_debit, + /// bancontact, billie, blik, boleto, card, + /// cashapp, crypto, customer_balance, eps, fpx, + /// giropay, grabpay, ideal, kakao_pay, klarna, + /// konbini, kr_card, mb_way, mobilepay, multibanco, + /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, + /// payco, paynow, paypal, pix, promptpay, + /// revolut_pay, samsung_pay, satispay, sepa_debit, + /// sofort, swish, twint, us_bank_account, wechat_pay, or + /// zip. + /// + [JsonProperty("excluded_payment_method_types")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("excluded_payment_method_types")] +#endif + public List ExcludedPaymentMethodTypes { get; set; } + /// /// Indicates the directions of money movement for which this payment method is intended to /// be used. diff --git a/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs b/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs index 9ea34c42e3..ced3103a81 100644 --- a/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs +++ b/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs @@ -28,10 +28,10 @@ public class SubscriptionPaymentSettings : StripeEntity. /// One of: ach_credit_transfer, ach_debit, acss_debit, affirm, /// amazon_pay, au_becs_debit, bacs_debit, bancontact, - /// boleto, card, cashapp, crypto, customer_balance, - /// eps, fpx, giropay, grabpay, ideal, - /// jp_credit_transfer, kakao_pay, klarna, konbini, - /// kr_card, link, multibanco, naver_pay, + /// boleto, card, cashapp, crypto, custom, + /// customer_balance, eps, fpx, giropay, grabpay, + /// ideal, jp_credit_transfer, kakao_pay, klarna, + /// konbini, kr_card, link, multibanco, naver_pay, /// nz_bank_account, p24, payco, paynow, paypal, /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit, /// sofort, swish, us_bank_account, or wechat_pay. diff --git a/src/Stripe.net/Entities/Tax/Registrations/RegistrationCountryOptions.cs b/src/Stripe.net/Entities/Tax/Registrations/RegistrationCountryOptions.cs index f34e658506..c986b1ec4a 100644 --- a/src/Stripe.net/Entities/Tax/Registrations/RegistrationCountryOptions.cs +++ b/src/Stripe.net/Entities/Tax/Registrations/RegistrationCountryOptions.cs @@ -542,6 +542,12 @@ public class RegistrationCountryOptions : StripeEntity + { + /// + /// Type of registration in country. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTipping.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTipping.cs index f4a9596b30..d3d7b5ede1 100644 --- a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTipping.cs +++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTipping.cs @@ -62,6 +62,12 @@ public class ConfigurationTipping : StripeEntity #endif public ConfigurationTippingGbp Gbp { get; set; } + [JsonProperty("gip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("gip")] +#endif + public ConfigurationTippingGip Gip { get; set; } + [JsonProperty("hkd")] #if NET6_0_OR_GREATER [STJS.JsonPropertyName("hkd")] diff --git a/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTippingGip.cs b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTippingGip.cs new file mode 100644 index 0000000000..f696b2a5d6 --- /dev/null +++ b/src/Stripe.net/Entities/Terminal/Configurations/ConfigurationTippingGip.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe.Terminal +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class ConfigurationTippingGip : StripeEntity + { + /// + /// Fixed amounts displayed when collecting a tip. + /// + [JsonProperty("fixed_amounts")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fixed_amounts")] +#endif + public List FixedAmounts { get; set; } + + /// + /// Percentages displayed when collecting a tip. + /// + [JsonProperty("percentages")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("percentages")] +#endif + public List Percentages { get; set; } + + /// + /// Below this amount, fixed amounts will be displayed; above it, percentages will be + /// displayed. + /// + [JsonProperty("smart_tip_threshold")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("smart_tip_threshold")] +#endif + public long SmartTipThreshold { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Terminal/Readers/Reader.cs b/src/Stripe.net/Entities/Terminal/Readers/Reader.cs index 1aa25c1675..f6dc32f7f1 100644 --- a/src/Stripe.net/Entities/Terminal/Readers/Reader.cs +++ b/src/Stripe.net/Entities/Terminal/Readers/Reader.cs @@ -1,6 +1,7 @@ // File generated from our OpenAPI spec namespace Stripe.Terminal { + using System; using System.Collections.Generic; using Newtonsoft.Json; using Stripe.Infrastructure; @@ -96,6 +97,17 @@ public class Reader : StripeEntity, IHasId, IHasMetadata, IHasObject #endif public string Label { get; set; } + /// + /// The last time this reader reported to Stripe backend. + /// + [JsonProperty("last_seen_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("last_seen_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? LastSeenAt { get; set; } + /// /// Has the value true if the object exists in live mode or the value false if /// the object exists in test mode. diff --git a/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputSelectionChoice.cs b/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputSelectionChoice.cs index 77dd430edb..3ea637ac2d 100644 --- a/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputSelectionChoice.cs +++ b/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputSelectionChoice.cs @@ -9,7 +9,7 @@ namespace Stripe.Terminal public class ReaderActionCollectInputsInputSelectionChoice : StripeEntity, IHasId { /// - /// The id to be selected. + /// The identifier for the selected choice. Maximum 50 characters. /// [JsonProperty("id")] #if NET6_0_OR_GREATER @@ -18,7 +18,7 @@ public class ReaderActionCollectInputsInputSelectionChoice : StripeEntity - /// The button style for the choice. + /// The button style for the choice. Can be primary or secondary. /// One of: primary, or secondary. /// [JsonProperty("style")] @@ -28,7 +28,7 @@ public class ReaderActionCollectInputsInputSelectionChoice : StripeEntity - /// The text to be selected. + /// The text to be selected. Maximum 30 characters. /// [JsonProperty("text")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputToggle.cs b/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputToggle.cs index 7d93656950..7c3c7f2dc9 100644 --- a/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputToggle.cs +++ b/src/Stripe.net/Entities/Terminal/Readers/ReaderActionCollectInputsInputToggle.cs @@ -9,7 +9,7 @@ namespace Stripe.Terminal public class ReaderActionCollectInputsInputToggle : StripeEntity { /// - /// The toggle's default value. + /// The toggle's default value. Can be enabled or disabled. /// One of: disabled, or enabled. /// [JsonProperty("default_value")] @@ -19,7 +19,7 @@ public class ReaderActionCollectInputsInputToggle : StripeEntity - /// The toggle's description text. + /// The toggle's description text. Maximum 50 characters. /// [JsonProperty("description")] #if NET6_0_OR_GREATER @@ -28,7 +28,7 @@ public class ReaderActionCollectInputsInputToggle : StripeEntity - /// The toggle's title text. + /// The toggle's title text. Maximum 50 characters. /// [JsonProperty("title")] #if NET6_0_OR_GREATER @@ -37,7 +37,7 @@ public class ReaderActionCollectInputsInputToggle : StripeEntity - /// The toggle's collected value. + /// The toggle's collected value. Can be enabled or disabled. /// One of: disabled, or enabled. /// [JsonProperty("value")] diff --git a/src/Stripe.net/Entities/Terminal/Readers/ReaderActionSetReaderDisplay.cs b/src/Stripe.net/Entities/Terminal/Readers/ReaderActionSetReaderDisplay.cs index 531eccf2d6..607bf739f2 100644 --- a/src/Stripe.net/Entities/Terminal/Readers/ReaderActionSetReaderDisplay.cs +++ b/src/Stripe.net/Entities/Terminal/Readers/ReaderActionSetReaderDisplay.cs @@ -9,7 +9,7 @@ namespace Stripe.Terminal public class ReaderActionSetReaderDisplay : StripeEntity { /// - /// Cart object to be displayed by the reader. + /// Cart object to be displayed by the reader, including line items, amounts, and currency. /// [JsonProperty("cart")] #if NET6_0_OR_GREATER @@ -18,7 +18,8 @@ public class ReaderActionSetReaderDisplay : StripeEntity - /// Type of information to be displayed by the reader. + /// Type of information to be displayed by the reader. Only cart is currently + /// supported. /// [JsonProperty("type")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs b/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs index 1558dd2290..fd02dfbe35 100644 --- a/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs +++ b/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs @@ -105,11 +105,17 @@ public static class StripeTypeRegistry { "line_item", typeof(InvoiceLineItem) }, { "login_link", typeof(LoginLink) }, { "mandate", typeof(Mandate) }, + { "payment_attempt_record", typeof(PaymentAttemptRecord) }, { "payment_intent", typeof(PaymentIntent) }, + { + "payment_intent_amount_details_line_item", typeof( + PaymentIntentAmountDetailsLineItem) + }, { "payment_link", typeof(PaymentLink) }, { "payment_method", typeof(PaymentMethod) }, { "payment_method_configuration", typeof(PaymentMethodConfiguration) }, { "payment_method_domain", typeof(PaymentMethodDomain) }, + { "payment_record", typeof(PaymentRecord) }, { "payout", typeof(Payout) }, { "person", typeof(Person) }, { "plan", typeof(Plan) }, diff --git a/src/Stripe.net/Services/Accounts/AccountCompanyOptions.cs b/src/Stripe.net/Services/Accounts/AccountCompanyOptions.cs index 27b2840094..e6782175c2 100644 --- a/src/Stripe.net/Services/Accounts/AccountCompanyOptions.cs +++ b/src/Stripe.net/Services/Accounts/AccountCompanyOptions.cs @@ -184,6 +184,16 @@ public class AccountCompanyOptions : INestedOptions #endif public string RegistrationNumber { get; set; } + /// + /// This hash is used to attest that the representative is authorized to act as the + /// representative of their legal entity. + /// + [JsonProperty("representative_declaration")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("representative_declaration")] +#endif + public AccountCompanyRepresentativeDeclarationOptions RepresentativeDeclaration { get; set; } + /// /// The category identifying the legal structure of the company or legal entity. See Business diff --git a/src/Stripe.net/Services/Accounts/AccountCompanyRepresentativeDeclarationOptions.cs b/src/Stripe.net/Services/Accounts/AccountCompanyRepresentativeDeclarationOptions.cs new file mode 100644 index 0000000000..f6f1472f95 --- /dev/null +++ b/src/Stripe.net/Services/Accounts/AccountCompanyRepresentativeDeclarationOptions.cs @@ -0,0 +1,43 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class AccountCompanyRepresentativeDeclarationOptions : INestedOptions + { + /// + /// The Unix timestamp marking when the representative declaration attestation was made. + /// + [JsonProperty("date")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("date")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? Date { get; set; } + + /// + /// The IP address from which the representative declaration attestation was made. + /// + [JsonProperty("ip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ip")] +#endif + public string Ip { get; set; } + + /// + /// The user agent of the browser from which the representative declaration attestation was + /// made. + /// + [JsonProperty("user_agent")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("user_agent")] +#endif + public string UserAgent { get; set; } + } +} diff --git a/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantCreateOptions.cs b/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantCreateOptions.cs index 1299460dc3..58ce328e52 100644 --- a/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantCreateOptions.cs +++ b/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantCreateOptions.cs @@ -32,7 +32,7 @@ public class CreditGrantCreateOptions : BaseOptions, IHasMetadata public CreditGrantApplicabilityConfigOptions ApplicabilityConfig { get; set; } /// - /// The category of this credit grant. + /// The category of this credit grant. It defaults to paid if not specified. /// One of: paid, or promotional. /// [JsonProperty("category")] diff --git a/src/Stripe.net/Services/BillingPortal/Configurations/ConfigurationFeaturesPaymentMethodUpdateOptions.cs b/src/Stripe.net/Services/BillingPortal/Configurations/ConfigurationFeaturesPaymentMethodUpdateOptions.cs index 3e3b0b0172..1f3f32d618 100644 --- a/src/Stripe.net/Services/BillingPortal/Configurations/ConfigurationFeaturesPaymentMethodUpdateOptions.cs +++ b/src/Stripe.net/Services/BillingPortal/Configurations/ConfigurationFeaturesPaymentMethodUpdateOptions.cs @@ -16,5 +16,18 @@ public class ConfigurationFeaturesPaymentMethodUpdateOptions : INestedOptions [STJS.JsonPropertyName("enabled")] #endif public bool? Enabled { get; set; } + + /// + /// The Payment Method + /// Configuration to use for this portal session. When specified, customers will be able + /// to update their payment method to one of the options specified by the payment method + /// configuration. If not set or set to an empty string, the default payment method + /// configuration is used. + /// + [JsonProperty("payment_method_configuration")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_configuration")] +#endif + public string PaymentMethodConfiguration { get; set; } } } diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionBrandingSettingsOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionBrandingSettingsOptions.cs index 9bb3d95a40..017f5db46a 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionBrandingSettingsOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionBrandingSettingsOptions.cs @@ -39,7 +39,9 @@ public class SessionBrandingSettingsOptions : INestedOptions public string ButtonColor { get; set; } /// - /// A string to override the business name shown on the Checkout Session. + /// A string to override the business name shown on the Checkout Session. This only shows at + /// the top of the Checkout page, and your business name still appears in terms, receipts, + /// and other places. /// [JsonProperty("display_name")] #if NET6_0_OR_GREATER @@ -66,7 +68,7 @@ public class SessionBrandingSettingsOptions : INestedOptions public string FontFamily { get; set; } /// - /// The icon for the Checkout Session. You cannot set both logo and icon. + /// The icon for the Checkout Session. For best results, use a square image. /// [JsonProperty("icon")] #if NET6_0_OR_GREATER @@ -75,7 +77,7 @@ public class SessionBrandingSettingsOptions : INestedOptions public SessionBrandingSettingsIconOptions Icon { get; set; } /// - /// The logo for the Checkout Session. You cannot set both logo and icon. + /// The logo for the Checkout Session. /// [JsonProperty("logo")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs index 542ba4bb81..989456fb8f 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs @@ -225,11 +225,12 @@ public class SessionCreateOptions : BaseOptions, IHasMetadata /// bancontact, billie, blik, boleto, card, /// cashapp, crypto, customer_balance, eps, fpx, /// giropay, grabpay, ideal, kakao_pay, klarna, - /// konbini, kr_card, mobilepay, multibanco, naver_pay, - /// nz_bank_account, oxxo, p24, pay_by_bank, payco, - /// paynow, paypal, pix, promptpay, revolut_pay, - /// samsung_pay, satispay, sepa_debit, sofort, swish, - /// twint, us_bank_account, wechat_pay, or zip. + /// konbini, kr_card, mb_way, mobilepay, multibanco, + /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, + /// payco, paynow, paypal, pix, promptpay, + /// revolut_pay, samsung_pay, satispay, sepa_debit, + /// sofort, swish, twint, us_bank_account, wechat_pay, or + /// zip. /// [JsonProperty("excluded_payment_method_types")] #if NET6_0_OR_GREATER @@ -444,12 +445,12 @@ public class SessionCreateOptions : BaseOptions, IHasMetadata /// bancontact, billie, blik, boleto, card, /// cashapp, crypto, customer_balance, eps, fpx, /// giropay, grabpay, ideal, kakao_pay, klarna, - /// konbini, kr_card, link, mobilepay, multibanco, - /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, - /// payco, paynow, paypal, pix, promptpay, - /// revolut_pay, samsung_pay, satispay, sepa_debit, - /// sofort, swish, twint, us_bank_account, wechat_pay, or - /// zip. + /// konbini, kr_card, link, mb_way, mobilepay, + /// multibanco, naver_pay, nz_bank_account, oxxo, p24, + /// pay_by_bank, payco, paynow, paypal, pix, + /// promptpay, revolut_pay, samsung_pay, satispay, + /// sepa_debit, sofort, swish, twint, us_bank_account, + /// wechat_pay, or zip. /// [JsonProperty("payment_method_types")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs index ef6bed333a..4b26f01825 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs @@ -377,6 +377,15 @@ public class SessionPaymentMethodOptionsOptions : INestedOptions #endif public SessionPaymentMethodOptionsSwishOptions Swish { get; set; } + /// + /// contains details about the TWINT payment method options. + /// + [JsonProperty("twint")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("twint")] +#endif + public SessionPaymentMethodOptionsTwintOptions Twint { get; set; } + /// /// contains details about the Us Bank Account payment method options. /// diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsTwintOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsTwintOptions.cs new file mode 100644 index 0000000000..75a9f86437 --- /dev/null +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsTwintOptions.cs @@ -0,0 +1,37 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class SessionPaymentMethodOptionsTwintOptions : INestedOptions + { + /// + /// Indicates that you intend to make future payments with this PaymentIntent's payment + /// method. + /// + /// If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to + /// the Customer after the PaymentIntent is confirmed and the customer completes any + /// required actions. If you don't provide a Customer, you can still attach the payment method to a + /// Customer after the transaction completes. + /// + /// If the payment method is card_present and isn't a digital wallet, Stripe creates + /// and attaches a generated_card + /// payment method representing the card to the Customer instead. + /// + /// When processing card payments, Stripe uses setup_future_usage to help you comply + /// with regional legislation and network rules, such as SCA. + /// + [JsonProperty("setup_future_usage")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("setup_future_usage")] +#endif + public string SetupFutureUsage { get; set; } + } +} diff --git a/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundOptions.cs b/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundOptions.cs index 3af21a62bf..defbc51b76 100644 --- a/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundOptions.cs +++ b/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundOptions.cs @@ -18,6 +18,16 @@ public class CreditNotePreviewLinesRefundOptions : INestedOptions #endif public long? AmountRefunded { get; set; } + /// + /// The PaymentRecord refund details to link to this credit note. Required when type + /// is payment_record_refund. + /// + [JsonProperty("payment_record_refund")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record_refund")] +#endif + public CreditNotePreviewLinesRefundPaymentRecordRefundOptions PaymentRecordRefund { get; set; } + /// /// ID of an existing refund to link this credit note to. Required when type is /// refund. @@ -27,5 +37,16 @@ public class CreditNotePreviewLinesRefundOptions : INestedOptions [STJS.JsonPropertyName("refund")] #endif public string Refund { get; set; } + + /// + /// Type of the refund, one of refund or payment_record_refund. Defaults to + /// refund. + /// One of: payment_record_refund, or refund. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } } } diff --git a/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundPaymentRecordRefundOptions.cs b/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundPaymentRecordRefundOptions.cs new file mode 100644 index 0000000000..789d0830fa --- /dev/null +++ b/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesRefundPaymentRecordRefundOptions.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CreditNotePreviewLinesRefundPaymentRecordRefundOptions : INestedOptions + { + /// + /// The ID of the PaymentRecord with the refund to link to this credit note. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } + + /// + /// The PaymentRecord refund group to link to this credit note. For refunds processed + /// off-Stripe, this will correspond to the processor_details.custom.refund_reference + /// field provided when reporting the refund on the PaymentRecord. + /// + [JsonProperty("refund_group")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("refund_group")] +#endif + public string RefundGroup { get; set; } + } +} diff --git a/src/Stripe.net/Services/CreditNotes/CreditNoteRefundOptions.cs b/src/Stripe.net/Services/CreditNotes/CreditNoteRefundOptions.cs index afc64717c3..1436221f7e 100644 --- a/src/Stripe.net/Services/CreditNotes/CreditNoteRefundOptions.cs +++ b/src/Stripe.net/Services/CreditNotes/CreditNoteRefundOptions.cs @@ -18,6 +18,16 @@ public class CreditNoteRefundOptions : INestedOptions #endif public long? AmountRefunded { get; set; } + /// + /// The PaymentRecord refund details to link to this credit note. Required when type + /// is payment_record_refund. + /// + [JsonProperty("payment_record_refund")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record_refund")] +#endif + public CreditNoteRefundPaymentRecordRefundOptions PaymentRecordRefund { get; set; } + /// /// ID of an existing refund to link this credit note to. Required when type is /// refund. @@ -27,5 +37,16 @@ public class CreditNoteRefundOptions : INestedOptions [STJS.JsonPropertyName("refund")] #endif public string Refund { get; set; } + + /// + /// Type of the refund, one of refund or payment_record_refund. Defaults to + /// refund. + /// One of: payment_record_refund, or refund. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } } } diff --git a/src/Stripe.net/Services/CreditNotes/CreditNoteRefundPaymentRecordRefundOptions.cs b/src/Stripe.net/Services/CreditNotes/CreditNoteRefundPaymentRecordRefundOptions.cs new file mode 100644 index 0000000000..84d2915467 --- /dev/null +++ b/src/Stripe.net/Services/CreditNotes/CreditNoteRefundPaymentRecordRefundOptions.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CreditNoteRefundPaymentRecordRefundOptions : INestedOptions + { + /// + /// The ID of the PaymentRecord with the refund to link to this credit note. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } + + /// + /// The PaymentRecord refund group to link to this credit note. For refunds processed + /// off-Stripe, this will correspond to the processor_details.custom.refund_reference + /// field provided when reporting the refund on the PaymentRecord. + /// + [JsonProperty("refund_group")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("refund_group")] +#endif + public string RefundGroup { get; set; } + } +} diff --git a/src/Stripe.net/Services/CustomerPaymentMethods/CustomerPaymentMethodListOptions.cs b/src/Stripe.net/Services/CustomerPaymentMethods/CustomerPaymentMethodListOptions.cs index c27fef3fbf..0001f143c8 100644 --- a/src/Stripe.net/Services/CustomerPaymentMethods/CustomerPaymentMethodListOptions.cs +++ b/src/Stripe.net/Services/CustomerPaymentMethods/CustomerPaymentMethodListOptions.cs @@ -28,12 +28,12 @@ public class CustomerPaymentMethodListOptions : ListOptions /// One of: acss_debit, affirm, afterpay_clearpay, alipay, /// alma, amazon_pay, au_becs_debit, bacs_debit, /// bancontact, billie, blik, boleto, card, - /// cashapp, crypto, customer_balance, eps, fpx, - /// giropay, grabpay, ideal, kakao_pay, klarna, - /// konbini, kr_card, link, mb_way, mobilepay, - /// multibanco, naver_pay, nz_bank_account, oxxo, p24, - /// pay_by_bank, payco, paynow, paypal, pix, - /// promptpay, revolut_pay, samsung_pay, satispay, + /// cashapp, crypto, custom, customer_balance, eps, + /// fpx, giropay, grabpay, ideal, kakao_pay, + /// klarna, konbini, kr_card, link, mb_way, + /// mobilepay, multibanco, naver_pay, nz_bank_account, + /// oxxo, p24, pay_by_bank, payco, paynow, paypal, + /// pix, promptpay, revolut_pay, samsung_pay, satispay, /// sepa_debit, sofort, swish, twint, us_bank_account, /// wechat_pay, or zip. /// diff --git a/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsCustomerSheetFeaturesOptions.cs b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsCustomerSheetFeaturesOptions.cs new file mode 100644 index 0000000000..cd893b8b6d --- /dev/null +++ b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsCustomerSheetFeaturesOptions.cs @@ -0,0 +1,46 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsCustomerSheetFeaturesOptions : INestedOptions + { + /// + /// A list of allow_redisplay + /// values that controls which saved payment methods the customer sheet displays by + /// filtering to only show payment methods with an allow_redisplay value that is + /// present in this list. + /// + /// If not specified, defaults to ["always"]. In order to display all saved payment methods, + /// specify ["always", "limited", "unspecified"]. + /// One of: always, limited, or unspecified. + /// + [JsonProperty("payment_method_allow_redisplay_filters")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_allow_redisplay_filters")] +#endif + public List PaymentMethodAllowRedisplayFilters { get; set; } + + /// + /// Controls whether the customer sheet displays the option to remove a saved payment + /// method.". + /// + /// Allowing buyers to remove their saved payment methods impacts subscriptions that depend + /// on that payment method. Removing the payment method detaches the customer + /// object from that PaymentMethod. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_remove")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_remove")] +#endif + public string PaymentMethodRemove { get; set; } + } +} diff --git a/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsCustomerSheetOptions.cs b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsCustomerSheetOptions.cs new file mode 100644 index 0000000000..2da97c4ee6 --- /dev/null +++ b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsCustomerSheetOptions.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsCustomerSheetOptions : INestedOptions + { + /// + /// Whether the customer sheet is enabled. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool? Enabled { get; set; } + + /// + /// This hash defines whether the customer sheet supports certain features. + /// + [JsonProperty("features")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("features")] +#endif + public CustomerSessionComponentsCustomerSheetFeaturesOptions Features { get; set; } + } +} diff --git a/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsMobilePaymentElementFeaturesOptions.cs b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsMobilePaymentElementFeaturesOptions.cs new file mode 100644 index 0000000000..bef8ca1644 --- /dev/null +++ b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsMobilePaymentElementFeaturesOptions.cs @@ -0,0 +1,88 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsMobilePaymentElementFeaturesOptions : INestedOptions + { + /// + /// A list of allow_redisplay + /// values that controls which saved payment methods the mobile payment element displays by + /// filtering to only show payment methods with an allow_redisplay value that is + /// present in this list. + /// + /// If not specified, defaults to ["always"]. In order to display all saved payment methods, + /// specify ["always", "limited", "unspecified"]. + /// One of: always, limited, or unspecified. + /// + [JsonProperty("payment_method_allow_redisplay_filters")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_allow_redisplay_filters")] +#endif + public List PaymentMethodAllowRedisplayFilters { get; set; } + + /// + /// Controls whether or not the mobile payment element shows saved payment methods. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_redisplay")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_redisplay")] +#endif + public string PaymentMethodRedisplay { get; set; } + + /// + /// Controls whether the mobile payment element displays the option to remove a saved + /// payment method.". + /// + /// Allowing buyers to remove their saved payment methods impacts subscriptions that depend + /// on that payment method. Removing the payment method detaches the customer + /// object from that PaymentMethod. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_remove")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_remove")] +#endif + public string PaymentMethodRemove { get; set; } + + /// + /// Controls whether the mobile payment element displays a checkbox offering to save a new + /// payment method. + /// + /// If a customer checks the box, the allow_redisplay + /// value on the PaymentMethod is set to 'always' at confirmation time. For + /// PaymentIntents, the setup_future_usage + /// value is also set to the value defined in payment_method_save_usage. + /// One of: disabled, or enabled. + /// + [JsonProperty("payment_method_save")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_save")] +#endif + public string PaymentMethodSave { get; set; } + + /// + /// Allows overriding the value of allow_override when saving a new payment method when + /// payment_method_save is set to disabled. Use values: "always", "limited", or + /// "unspecified". + /// + /// If not specified, defaults to nil (no override value). + /// One of: always, limited, or unspecified. + /// + [JsonProperty("payment_method_save_allow_redisplay_override")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_save_allow_redisplay_override")] +#endif + public string PaymentMethodSaveAllowRedisplayOverride { get; set; } + } +} diff --git a/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsMobilePaymentElementOptions.cs b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsMobilePaymentElementOptions.cs new file mode 100644 index 0000000000..e8f174046f --- /dev/null +++ b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsMobilePaymentElementOptions.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class CustomerSessionComponentsMobilePaymentElementOptions : INestedOptions + { + /// + /// Whether the mobile payment element is enabled. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool? Enabled { get; set; } + + /// + /// This hash defines whether the mobile payment element supports certain features. + /// + [JsonProperty("features")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("features")] +#endif + public CustomerSessionComponentsMobilePaymentElementFeaturesOptions Features { get; set; } + } +} diff --git a/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsOptions.cs b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsOptions.cs index 0d63536302..9b5222a3f2 100644 --- a/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsOptions.cs +++ b/src/Stripe.net/Services/CustomerSessions/CustomerSessionComponentsOptions.cs @@ -17,6 +17,24 @@ public class CustomerSessionComponentsOptions : INestedOptions #endif public CustomerSessionComponentsBuyButtonOptions BuyButton { get; set; } + /// + /// Configuration for the customer sheet. + /// + [JsonProperty("customer_sheet")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_sheet")] +#endif + public CustomerSessionComponentsCustomerSheetOptions CustomerSheet { get; set; } + + /// + /// Configuration for the mobile payment element. + /// + [JsonProperty("mobile_payment_element")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mobile_payment_element")] +#endif + public CustomerSessionComponentsMobilePaymentElementOptions MobilePaymentElement { get; set; } + /// /// Configuration for the Payment Element. /// diff --git a/src/Stripe.net/Services/Files/FileCreateOptions.cs b/src/Stripe.net/Services/Files/FileCreateOptions.cs index 093dcefc53..be96d6720e 100644 --- a/src/Stripe.net/Services/Files/FileCreateOptions.cs +++ b/src/Stripe.net/Services/Files/FileCreateOptions.cs @@ -34,8 +34,8 @@ public class FileCreateOptions : BaseOptions /// One of: account_requirement, additional_verification, /// business_icon, business_logo, customer_signature, /// dispute_evidence, identity_document, issuing_regulatory_reporting, - /// pci_document, tax_document_user_upload, terminal_android_apk, or - /// terminal_reader_splashscreen. + /// pci_document, platform_terms_of_service, tax_document_user_upload, + /// terminal_android_apk, or terminal_reader_splashscreen. /// [JsonProperty("purpose")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Files/FileListOptions.cs b/src/Stripe.net/Services/Files/FileListOptions.cs index a49253fbf2..16b89ec9a4 100644 --- a/src/Stripe.net/Services/Files/FileListOptions.cs +++ b/src/Stripe.net/Services/Files/FileListOptions.cs @@ -29,9 +29,9 @@ public class FileListOptions : ListOptions /// dispute_evidence, document_provider_identity_document, /// finance_report_run, financial_account_statement, identity_document, /// identity_document_downloadable, issuing_regulatory_reporting, - /// pci_document, selfie, sigma_scheduled_query, - /// tax_document_user_upload, terminal_android_apk, or - /// terminal_reader_splashscreen. + /// pci_document, platform_terms_of_service, selfie, + /// sigma_scheduled_query, tax_document_user_upload, + /// terminal_android_apk, or terminal_reader_splashscreen. /// [JsonProperty("purpose")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/FinancialConnections/Accounts/AccountService.cs b/src/Stripe.net/Services/FinancialConnections/Accounts/AccountService.cs index d103902ecc..b6d7d0bd02 100644 --- a/src/Stripe.net/Services/FinancialConnections/Accounts/AccountService.cs +++ b/src/Stripe.net/Services/FinancialConnections/Accounts/AccountService.cs @@ -115,7 +115,8 @@ public virtual Task RefreshAsync(string id, AccountRefreshOptions optio /// ///

Subscribes to periodic refreshes of data associated with a Financial Connections - /// Account.

. + /// Account. When the account status is active, data is typically refreshed once a + /// day.

. ///
public virtual Account Subscribe(string id, AccountSubscribeOptions options = null, RequestOptions requestOptions = null) { @@ -124,7 +125,8 @@ public virtual Account Subscribe(string id, AccountSubscribeOptions options = nu /// ///

Subscribes to periodic refreshes of data associated with a Financial Connections - /// Account.

. + /// Account. When the account status is active, data is typically refreshed once a + /// day.

. ///
public virtual Task SubscribeAsync(string id, AccountSubscribeOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { diff --git a/src/Stripe.net/Services/InvoicePayments/InvoicePaymentPaymentOptions.cs b/src/Stripe.net/Services/InvoicePayments/InvoicePaymentPaymentOptions.cs index b686d13b02..761099367d 100644 --- a/src/Stripe.net/Services/InvoicePayments/InvoicePaymentPaymentOptions.cs +++ b/src/Stripe.net/Services/InvoicePayments/InvoicePaymentPaymentOptions.cs @@ -17,8 +17,18 @@ public class InvoicePaymentPaymentOptions : INestedOptions #endif public string PaymentIntent { get; set; } + /// + /// Only return invoice payments associated by this payment record ID. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } + /// /// Only return invoice payments associated by this payment type. + /// One of: payment_intent, or payment_record. /// [JsonProperty("type")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Invoices/InvoiceAttachPaymentOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceAttachPaymentOptions.cs index bb6244b060..2acd87241a 100644 --- a/src/Stripe.net/Services/Invoices/InvoiceAttachPaymentOptions.cs +++ b/src/Stripe.net/Services/Invoices/InvoiceAttachPaymentOptions.cs @@ -16,5 +16,14 @@ public class InvoiceAttachPaymentOptions : BaseOptions [STJS.JsonPropertyName("payment_intent")] #endif public string PaymentIntent { get; set; } + + /// + /// The ID of the PaymentRecord to attach to the invoice. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } } } diff --git a/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs b/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs index e983fe37c9..1b19134ad4 100644 --- a/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs +++ b/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs @@ -38,10 +38,10 @@ public class InvoicePaymentSettingsOptions : INestedOptions /// settings. /// One of: ach_credit_transfer, ach_debit, acss_debit, affirm, /// amazon_pay, au_becs_debit, bacs_debit, bancontact, - /// boleto, card, cashapp, crypto, customer_balance, - /// eps, fpx, giropay, grabpay, ideal, - /// jp_credit_transfer, kakao_pay, klarna, konbini, - /// kr_card, link, multibanco, naver_pay, + /// boleto, card, cashapp, crypto, custom, + /// customer_balance, eps, fpx, giropay, grabpay, + /// ideal, jp_credit_transfer, kakao_pay, klarna, + /// konbini, kr_card, link, multibanco, naver_pay, /// nz_bank_account, p24, payco, paynow, paypal, /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit, /// sofort, swish, us_bank_account, or wechat_pay. diff --git a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordGetOptions.cs b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordGetOptions.cs new file mode 100644 index 0000000000..a2f78c81f5 --- /dev/null +++ b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordGetOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentAttemptRecordGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordListOptions.cs b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordListOptions.cs new file mode 100644 index 0000000000..fcc3ba4d5a --- /dev/null +++ b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordListOptions.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentAttemptRecordListOptions : ListOptions + { + /// + /// The ID of the Payment Record. + /// + [JsonProperty("payment_record")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_record")] +#endif + public string PaymentRecord { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordService.cs b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordService.cs new file mode 100644 index 0000000000..09524ecd85 --- /dev/null +++ b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordService.cs @@ -0,0 +1,77 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class PaymentAttemptRecordService : Service, + IListable, + IRetrievable + { + public PaymentAttemptRecordService() + { + } + + internal PaymentAttemptRecordService(ApiRequestor requestor) + : base(requestor) + { + } + + public PaymentAttemptRecordService(IStripeClient client) + : base(client) + { + } + + /// + ///

Retrieves a Payment Attempt Record with the given ID

. + ///
+ public virtual PaymentAttemptRecord Get(string id, PaymentAttemptRecordGetOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_attempt_records/{WebUtility.UrlEncode(id)}", options, requestOptions); + } + + /// + ///

Retrieves a Payment Attempt Record with the given ID

. + ///
+ public virtual Task GetAsync(string id, PaymentAttemptRecordGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_attempt_records/{WebUtility.UrlEncode(id)}", options, requestOptions, cancellationToken); + } + + /// + ///

List all the Payment Attempt Records attached to the specified Payment Record.

. + ///
+ public virtual StripeList List(PaymentAttemptRecordListOptions options = null, RequestOptions requestOptions = null) + { + return this.Request>(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_attempt_records", options, requestOptions); + } + + /// + ///

List all the Payment Attempt Records attached to the specified Payment Record.

. + ///
+ public virtual Task> ListAsync(PaymentAttemptRecordListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync>(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_attempt_records", options, requestOptions, cancellationToken); + } + + /// + ///

List all the Payment Attempt Records attached to the specified Payment Record.

. + ///
+ public virtual IEnumerable ListAutoPaging(PaymentAttemptRecordListOptions options = null, RequestOptions requestOptions = null) + { + return this.ListRequestAutoPaging($"/v1/payment_attempt_records", options, requestOptions); + } + + /// + ///

List all the Payment Attempt Records attached to the specified Payment Record.

. + ///
+ public virtual IAsyncEnumerable ListAutoPagingAsync(PaymentAttemptRecordListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/payment_attempt_records", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemListOptions.cs b/src/Stripe.net/Services/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemListOptions.cs new file mode 100644 index 0000000000..15c3150754 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemListOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentIntentAmountDetailsLineItemListOptions : ListOptions + { + } +} diff --git a/src/Stripe.net/Services/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemService.cs b/src/Stripe.net/Services/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemService.cs new file mode 100644 index 0000000000..ae45dc3b16 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntentAmountDetailsLineItems/PaymentIntentAmountDetailsLineItemService.cs @@ -0,0 +1,61 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class PaymentIntentAmountDetailsLineItemService : Service, + INestedListable + { + public PaymentIntentAmountDetailsLineItemService() + { + } + + internal PaymentIntentAmountDetailsLineItemService( + ApiRequestor requestor) + : base(requestor) + { + } + + public PaymentIntentAmountDetailsLineItemService(IStripeClient client) + : base(client) + { + } + + /// + ///

Lists all LineItems of a given PaymentIntent.

. + ///
+ public virtual StripeList List(string parentId, PaymentIntentAmountDetailsLineItemListOptions options = null, RequestOptions requestOptions = null) + { + return this.Request>(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_intents/{WebUtility.UrlEncode(parentId)}/amount_details_line_items", options, requestOptions); + } + + /// + ///

Lists all LineItems of a given PaymentIntent.

. + ///
+ public virtual Task> ListAsync(string parentId, PaymentIntentAmountDetailsLineItemListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync>(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_intents/{WebUtility.UrlEncode(parentId)}/amount_details_line_items", options, requestOptions, cancellationToken); + } + + /// + ///

Lists all LineItems of a given PaymentIntent.

. + ///
+ public virtual IEnumerable ListAutoPaging(string parentId, PaymentIntentAmountDetailsLineItemListOptions options = null, RequestOptions requestOptions = null) + { + return this.ListRequestAutoPaging($"/v1/payment_intents/{WebUtility.UrlEncode(parentId)}/amount_details_line_items", options, requestOptions); + } + + /// + ///

Lists all LineItems of a given PaymentIntent.

. + ///
+ public virtual IAsyncEnumerable ListAutoPagingAsync(string parentId, PaymentIntentAmountDetailsLineItemListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/payment_intents/{WebUtility.UrlEncode(parentId)}/amount_details_line_items", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemOptions.cs new file mode 100644 index 0000000000..89857f091f --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemOptions.cs @@ -0,0 +1,83 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemOptions : INestedOptions + { + /// + /// The amount an item was discounted for. Positive integer. + /// + [JsonProperty("discount_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("discount_amount")] +#endif + public long? DiscountAmount { get; set; } + + /// + /// Payment method-specific information for line items. + /// + [JsonProperty("payment_method_options")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_options")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsOptions PaymentMethodOptions { get; set; } + + /// + /// Unique identifier of the product. At most 12 characters long. + /// + [JsonProperty("product_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("product_code")] +#endif + public string ProductCode { get; set; } + + /// + /// Name of the product. At most 100 characters long. + /// + [JsonProperty("product_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("product_name")] +#endif + public string ProductName { get; set; } + + /// + /// Number of items of the product. Positive integer. + /// + [JsonProperty("quantity")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("quantity")] +#endif + public long? Quantity { get; set; } + + /// + /// Contains information about the tax on the item. + /// + [JsonProperty("tax")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tax")] +#endif + public PaymentIntentAmountDetailsLineItemTaxOptions Tax { get; set; } + + /// + /// Cost of the product. Non-negative integer. + /// + [JsonProperty("unit_cost")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("unit_cost")] +#endif + public long? UnitCost { get; set; } + + /// + /// A unit of measure for the line item, such as gallons, feet, meters, etc. + /// + [JsonProperty("unit_of_measure")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("unit_of_measure")] +#endif + public string UnitOfMeasure { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardOptions.cs new file mode 100644 index 0000000000..b95fe37b51 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardOptions.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardOptions : INestedOptions + { + /// + /// Identifier that categorizes the items being purchased using a standardized commodity + /// scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + /// + [JsonProperty("commodity_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("commodity_code")] +#endif + public string CommodityCode { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresentOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresentOptions.cs new file mode 100644 index 0000000000..55ca30ab59 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresentOptions.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresentOptions : INestedOptions + { + /// + /// Identifier that categorizes the items being purchased using a standardized commodity + /// scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc. + /// + [JsonProperty("commodity_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("commodity_code")] +#endif + public string CommodityCode { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarnaOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarnaOptions.cs new file mode 100644 index 0000000000..60aea3c6ec --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarnaOptions.cs @@ -0,0 +1,48 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarnaOptions : INestedOptions + { + /// + /// URL to an image for the product. Max length, 4096 characters. + /// + [JsonProperty("image_url")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("image_url")] +#endif + public string ImageUrl { get; set; } + + /// + /// URL to the product page. Max length, 4096 characters. + /// + [JsonProperty("product_url")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("product_url")] +#endif + public string ProductUrl { get; set; } + + /// + /// Unique reference for this line item to correlate it with your system’s internal records. + /// The field is displayed in the Klarna Consumer App if passed. + /// + [JsonProperty("reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("reference")] +#endif + public string Reference { get; set; } + + /// + /// Reference for the subscription this line item is for. + /// + [JsonProperty("subscription_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("subscription_reference")] +#endif + public string SubscriptionReference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsOptions.cs new file mode 100644 index 0000000000..7db3ef8dc5 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsOptions.cs @@ -0,0 +1,51 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsOptions : INestedOptions + { + /// + /// This sub-hash contains line item details that are specific to card payment + /// method.". + /// + [JsonProperty("card")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardOptions Card { get; set; } + + /// + /// This sub-hash contains line item details that are specific to card_present + /// payment method.". + /// + [JsonProperty("card_present")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("card_present")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsCardPresentOptions CardPresent { get; set; } + + /// + /// This sub-hash contains line item details that are specific to klarna payment + /// method.". + /// + [JsonProperty("klarna")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("klarna")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsKlarnaOptions Klarna { get; set; } + + /// + /// This sub-hash contains line item details that are specific to paypal payment + /// method.". + /// + [JsonProperty("paypal")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("paypal")] +#endif + public PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypalOptions Paypal { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypalOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypalOptions.cs new file mode 100644 index 0000000000..c9889fc743 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypalOptions.cs @@ -0,0 +1,39 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemPaymentMethodOptionsPaypalOptions : INestedOptions + { + /// + /// Type of the line item. + /// One of: digital_goods, donation, or physical_goods. + /// + [JsonProperty("category")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("category")] +#endif + public string Category { get; set; } + + /// + /// Description of the line item. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// The Stripe account ID of the connected account that sells the item. + /// + [JsonProperty("sold_by")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("sold_by")] +#endif + public string SoldBy { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemTaxOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemTaxOptions.cs new file mode 100644 index 0000000000..f90e2fa0a6 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsLineItemTaxOptions.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsLineItemTaxOptions : INestedOptions + { + /// + /// The total tax on an item. Non-negative integer. + /// + [JsonProperty("total_tax_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("total_tax_amount")] +#endif + public long? TotalTaxAmount { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsOptions.cs new file mode 100644 index 0000000000..1a8f49ed81 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsOptions.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsOptions : INestedOptions + { + /// + /// The total discount applied on the transaction. + /// + [JsonProperty("discount_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("discount_amount")] +#endif + public long? DiscountAmount { get; set; } + + /// + /// A list of line items, each containing information about a product in the PaymentIntent. + /// There is a maximum of 100 line items. + /// + [JsonProperty("line_items")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("line_items")] +#endif + public List LineItems { get; set; } + + /// + /// Contains information about the shipping portion of the amount. + /// + [JsonProperty("shipping")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping")] +#endif + public PaymentIntentAmountDetailsShippingOptions Shipping { get; set; } + + /// + /// Contains information about the tax portion of the amount. + /// + [JsonProperty("tax")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tax")] +#endif + public PaymentIntentAmountDetailsTaxOptions Tax { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsShippingOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsShippingOptions.cs new file mode 100644 index 0000000000..17a2e7ca20 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsShippingOptions.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsShippingOptions : INestedOptions + { + /// + /// Portion of the amount that is for shipping. + /// + [JsonProperty("amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount")] +#endif + public long? Amount { get; set; } + + /// + /// The postal code that represents the shipping source. + /// + [JsonProperty("from_postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("from_postal_code")] +#endif + public string FromPostalCode { get; set; } + + /// + /// The postal code that represents the shipping destination. + /// + [JsonProperty("to_postal_code")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("to_postal_code")] +#endif + public string ToPostalCode { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsTaxOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsTaxOptions.cs new file mode 100644 index 0000000000..079c5fa582 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentAmountDetailsTaxOptions.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentAmountDetailsTaxOptions : INestedOptions + { + /// + /// Total portion of the amount that is for tax. + /// + [JsonProperty("total_tax_amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("total_tax_amount")] +#endif + public long? TotalTaxAmount { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs index 7a8f77a3bf..792bba1100 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs @@ -9,6 +9,15 @@ namespace Stripe public class PaymentIntentCaptureOptions : BaseOptions, IHasMetadata { + /// + /// Provides industry-specific information about the amount. + /// + [JsonProperty("amount_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_details")] +#endif + public PaymentIntentAmountDetailsOptions AmountDetails { get; set; } + /// /// The amount to capture from the PaymentIntent, which must be less than or equal to the /// original amount. Defaults to the full amount_capturable if it's not provided. @@ -58,6 +67,15 @@ public class PaymentIntentCaptureOptions : BaseOptions, IHasMetadata #endif public Dictionary Metadata { get; set; } + /// + /// Provides industry-specific information about the charge. + /// + [JsonProperty("payment_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_details")] +#endif + public PaymentIntentPaymentDetailsOptions PaymentDetails { get; set; } + /// /// Text that appears on the customer's statement as the statement descriptor for a non-card /// charge. This value overrides the account's default statement descriptor. For information diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentConfirmOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentConfirmOptions.cs index ec08536539..17f92d1600 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentConfirmOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentConfirmOptions.cs @@ -9,6 +9,15 @@ namespace Stripe public class PaymentIntentConfirmOptions : BaseOptions { + /// + /// Provides industry-specific information about the amount. + /// + [JsonProperty("amount_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_details")] +#endif + public PaymentIntentAmountDetailsOptions AmountDetails { get; set; } + /// /// Controls when the funds will be captured from the customer's account. /// One of: automatic, automatic_async, or manual. @@ -99,6 +108,15 @@ public class PaymentIntentConfirmOptions : BaseOptions #endif public bool? OffSession { get; set; } + /// + /// Provides industry-specific information about the charge. + /// + [JsonProperty("payment_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_details")] +#endif + public PaymentIntentPaymentDetailsOptions PaymentDetails { get; set; } + /// /// ID of the payment method (a PaymentMethod, Card, or compatible diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs index 373f2d72da..ee097e3af5 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs @@ -25,6 +25,15 @@ public class PaymentIntentCreateOptions : BaseOptions, IHasMetadata #endif public long? Amount { get; set; } + /// + /// Provides industry-specific information about the amount. + /// + [JsonProperty("amount_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_details")] +#endif + public PaymentIntentAmountDetailsOptions AmountDetails { get; set; } + /// /// The amount of the application fee (if any) that will be requested to be applied to the /// payment and transferred to the application owner's Stripe account. The amount of the @@ -230,6 +239,15 @@ public class PaymentIntentCreateOptions : BaseOptions, IHasMetadata #endif public string OnBehalfOf { get; set; } + /// + /// Provides industry-specific information about the charge. + /// + [JsonProperty("payment_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_details")] +#endif + public PaymentIntentPaymentDetailsOptions PaymentDetails { get; set; } + /// /// ID of the payment method (a PaymentMethod, Card, or compatible diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs index 7bfc8e4b3d..ad30bfc65a 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs @@ -19,6 +19,15 @@ public class PaymentIntentIncrementAuthorizationOptions : BaseOptions, IHasMetad #endif public long? Amount { get; set; } + /// + /// Provides industry-specific information about the amount. + /// + [JsonProperty("amount_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_details")] +#endif + public PaymentIntentAmountDetailsOptions AmountDetails { get; set; } + /// /// The amount of the application fee (if any) that will be requested to be applied to the /// payment and transferred to the application owner's Stripe account. The amount of the @@ -54,6 +63,15 @@ public class PaymentIntentIncrementAuthorizationOptions : BaseOptions, IHasMetad #endif public Dictionary Metadata { get; set; } + /// + /// Provides industry-specific information about the charge. + /// + [JsonProperty("payment_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_details")] +#endif + public PaymentIntentPaymentDetailsOptions PaymentDetails { get; set; } + /// /// Text that appears on the customer's statement as the statement descriptor for a non-card /// or card charge. This value overrides the account's default statement descriptor. For diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentDetailsOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentDetailsOptions.cs new file mode 100644 index 0000000000..9b4df9f701 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentDetailsOptions.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentIntentPaymentDetailsOptions : INestedOptions + { + /// + /// Some customers might be required by their company or organization to provide this + /// information. If so, provide this value. Otherwise you can ignore this field. + /// + [JsonProperty("customer_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_reference")] +#endif + public string CustomerReference { get; set; } + + /// + /// A unique value assigned by the business to identify the transaction. + /// + [JsonProperty("order_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("order_reference")] +#endif + public string OrderReference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentService.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentService.cs index 2bfa021346..683bbdccf7 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentService.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentService.cs @@ -15,6 +15,8 @@ public class PaymentIntentService : Service, ISearchable, IUpdatable { + private PaymentIntentAmountDetailsLineItemService amountDetailsLineItems; + public PaymentIntentService() { } @@ -29,6 +31,9 @@ public PaymentIntentService(IStripeClient client) { } + public virtual PaymentIntentAmountDetailsLineItemService AmountDetailsLineItems => this.amountDetailsLineItems ??= new PaymentIntentAmountDetailsLineItemService( + this.Requestor); + /// ///

Manually reconcile the remaining amount for a customer_balance /// PaymentIntent.

. diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs index 30335c54f4..46ba90145c 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs @@ -25,6 +25,15 @@ public class PaymentIntentUpdateOptions : BaseOptions, IHasMetadata #endif public long? Amount { get; set; } + /// + /// Provides industry-specific information about the amount. + /// + [JsonProperty("amount_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_details")] +#endif + public PaymentIntentAmountDetailsOptions AmountDetails { get; set; } + ///
/// The amount of the application fee (if any) that will be requested to be applied to the /// payment and transferred to the application owner's Stripe account. The amount of the @@ -121,6 +130,15 @@ public class PaymentIntentUpdateOptions : BaseOptions, IHasMetadata #endif public Dictionary Metadata { get; set; } + /// + /// Provides industry-specific information about the charge. + /// + [JsonProperty("payment_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_details")] +#endif + public PaymentIntentPaymentDetailsOptions PaymentDetails { get; set; } + /// /// ID of the payment method (a PaymentMethod, Card, or compatible diff --git a/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs b/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs index eda20ccea5..da38cdecbd 100644 --- a/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs @@ -164,6 +164,15 @@ public class PaymentLinkCreateOptions : BaseOptions, IHasMetadata #endif public Dictionary Metadata { get; set; } + /// + /// Controls settings applied for collecting the customer's name. + /// + [JsonProperty("name_collection")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name_collection")] +#endif + public PaymentLinkNameCollectionOptions NameCollection { get; set; } + /// /// The account on behalf of which to charge. /// @@ -225,7 +234,7 @@ public class PaymentLinkCreateOptions : BaseOptions, IHasMetadata /// One of: affirm, afterpay_clearpay, alipay, alma, /// au_becs_debit, bacs_debit, bancontact, billie, blik, /// boleto, card, cashapp, eps, fpx, giropay, - /// grabpay, ideal, klarna, konbini, link, + /// grabpay, ideal, klarna, konbini, link, mb_way, /// mobilepay, multibanco, oxxo, p24, pay_by_bank, /// paynow, paypal, pix, promptpay, satispay, /// sepa_debit, sofort, swish, twint, us_bank_account, diff --git a/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionBusinessOptions.cs b/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionBusinessOptions.cs new file mode 100644 index 0000000000..25d22feb68 --- /dev/null +++ b/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionBusinessOptions.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentLinkNameCollectionBusinessOptions : INestedOptions + { + /// + /// Enable business name collection on the payment link. Defaults to false. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool? Enabled { get; set; } + + /// + /// Whether the customer is required to provide their business name before checking out. + /// Defaults to false. + /// + [JsonProperty("optional")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("optional")] +#endif + public bool? Optional { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionIndividualOptions.cs b/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionIndividualOptions.cs new file mode 100644 index 0000000000..146c92ea9c --- /dev/null +++ b/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionIndividualOptions.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentLinkNameCollectionIndividualOptions : INestedOptions + { + /// + /// Enable individual name collection on the payment link. Defaults to false. + /// + [JsonProperty("enabled")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("enabled")] +#endif + public bool? Enabled { get; set; } + + /// + /// Whether the customer is required to provide their full name before checking out. + /// Defaults to false. + /// + [JsonProperty("optional")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("optional")] +#endif + public bool? Optional { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionOptions.cs b/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionOptions.cs new file mode 100644 index 0000000000..0863a9f1e6 --- /dev/null +++ b/src/Stripe.net/Services/PaymentLinks/PaymentLinkNameCollectionOptions.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentLinkNameCollectionOptions : INestedOptions + { + /// + /// Controls settings applied for collecting the customer's business name. + /// + [JsonProperty("business")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("business")] +#endif + public PaymentLinkNameCollectionBusinessOptions Business { get; set; } + + /// + /// Controls settings applied for collecting the customer's individual name. + /// + [JsonProperty("individual")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("individual")] +#endif + public PaymentLinkNameCollectionIndividualOptions Individual { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentLinks/PaymentLinkUpdateOptions.cs b/src/Stripe.net/Services/PaymentLinks/PaymentLinkUpdateOptions.cs index 5c36aa8319..8b17f66811 100644 --- a/src/Stripe.net/Services/PaymentLinks/PaymentLinkUpdateOptions.cs +++ b/src/Stripe.net/Services/PaymentLinks/PaymentLinkUpdateOptions.cs @@ -131,6 +131,15 @@ public class PaymentLinkUpdateOptions : BaseOptions, IHasMetadata #endif public Dictionary Metadata { get; set; } + /// + /// Controls settings applied for collecting the customer's name. + /// + [JsonProperty("name_collection")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name_collection")] +#endif + public PaymentLinkNameCollectionOptions NameCollection { get; set; } + /// /// A subset of parameters to be passed to PaymentIntent creation for Checkout Sessions in /// payment mode. @@ -168,7 +177,7 @@ public class PaymentLinkUpdateOptions : BaseOptions, IHasMetadata /// One of: affirm, afterpay_clearpay, alipay, alma, /// au_becs_debit, bacs_debit, bancontact, billie, blik, /// boleto, card, cashapp, eps, fpx, giropay, - /// grabpay, ideal, klarna, konbini, link, + /// grabpay, ideal, klarna, konbini, link, mb_way, /// mobilepay, multibanco, oxxo, p24, pay_by_bank, /// paynow, paypal, pix, promptpay, satispay, /// sepa_debit, sofort, swish, twint, us_bank_account, diff --git a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCreateOptions.cs b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCreateOptions.cs index 36c9af48b3..81d38f7543 100644 --- a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCreateOptions.cs @@ -208,6 +208,17 @@ public class PaymentMethodConfigurationCreateOptions : BaseOptions #endif public PaymentMethodConfigurationCashappOptions Cashapp { get; set; } + /// + /// Stablecoin payments + /// enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom + /// and Metamask. + /// + [JsonProperty("crypto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("crypto")] +#endif + public PaymentMethodConfigurationCryptoOptions Crypto { get; set; } + /// /// Uses a customer’s cash /// balance for the payment. The cash balance can be funded via a bank transfer. Check @@ -380,6 +391,17 @@ public class PaymentMethodConfigurationCreateOptions : BaseOptions #endif public PaymentMethodConfigurationLinkOptions Link { get; set; } + /// + /// MB WAY is the most popular wallet in Portugal. After entering their phone number in your + /// checkout, customers approve the payment directly in their MB WAY app. Check this page for more details. + /// + [JsonProperty("mb_way")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mb_way")] +#endif + public PaymentMethodConfigurationMbWayOptions MbWay { get; set; } + /// /// MobilePay is a single-use card wallet diff --git a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoDisplayPreferenceOptions.cs b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoDisplayPreferenceOptions.cs new file mode 100644 index 0000000000..763de04134 --- /dev/null +++ b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoDisplayPreferenceOptions.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationCryptoDisplayPreferenceOptions : INestedOptions + { + /// + /// The account's preference for whether or not to display this payment method. + /// One of: none, off, or on. + /// + [JsonProperty("preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preference")] +#endif + public string Preference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoOptions.cs b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoOptions.cs new file mode 100644 index 0000000000..d8277e8157 --- /dev/null +++ b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationCryptoOptions.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationCryptoOptions : INestedOptions + { + /// + /// Whether or not the payment method should be displayed. + /// + [JsonProperty("display_preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_preference")] +#endif + public PaymentMethodConfigurationCryptoDisplayPreferenceOptions DisplayPreference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayDisplayPreferenceOptions.cs b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayDisplayPreferenceOptions.cs new file mode 100644 index 0000000000..f6c36d7fd8 --- /dev/null +++ b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayDisplayPreferenceOptions.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationMbWayDisplayPreferenceOptions : INestedOptions + { + /// + /// The account's preference for whether or not to display this payment method. + /// One of: none, off, or on. + /// + [JsonProperty("preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("preference")] +#endif + public string Preference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayOptions.cs b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayOptions.cs new file mode 100644 index 0000000000..0178a3cb9c --- /dev/null +++ b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationMbWayOptions.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodConfigurationMbWayOptions : INestedOptions + { + /// + /// Whether or not the payment method should be displayed. + /// + [JsonProperty("display_preference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_preference")] +#endif + public PaymentMethodConfigurationMbWayDisplayPreferenceOptions DisplayPreference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationUpdateOptions.cs b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationUpdateOptions.cs index eccb534a85..7d26ea1f5f 100644 --- a/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationUpdateOptions.cs +++ b/src/Stripe.net/Services/PaymentMethodConfigurations/PaymentMethodConfigurationUpdateOptions.cs @@ -217,6 +217,17 @@ public class PaymentMethodConfigurationUpdateOptions : BaseOptions #endif public PaymentMethodConfigurationCashappOptions Cashapp { get; set; } + /// + /// Stablecoin payments + /// enable customers to pay in stablecoins like USDC from 100s of wallets including Phantom + /// and Metamask. + /// + [JsonProperty("crypto")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("crypto")] +#endif + public PaymentMethodConfigurationCryptoOptions Crypto { get; set; } + /// /// Uses a customer’s cash /// balance for the payment. The cash balance can be funded via a bank transfer. Check @@ -389,6 +400,17 @@ public class PaymentMethodConfigurationUpdateOptions : BaseOptions #endif public PaymentMethodConfigurationLinkOptions Link { get; set; } + /// + /// MB WAY is the most popular wallet in Portugal. After entering their phone number in your + /// checkout, customers approve the payment directly in their MB WAY app. Check this page for more details. + /// + [JsonProperty("mb_way")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("mb_way")] +#endif + public PaymentMethodConfigurationMbWayOptions MbWay { get; set; } + /// /// MobilePay is a single-use card wallet diff --git a/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs b/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs index 2d24d2fc61..4ef04b41be 100644 --- a/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs @@ -187,6 +187,16 @@ public class PaymentMethodCreateOptions : BaseOptions, IHasMetadata #endif public PaymentMethodCryptoOptions Crypto { get; set; } + /// + /// If this is a custom PaymentMethod, this hash contains details about the Custom + /// payment method. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentMethodCustomOptions Custom { get; set; } + /// /// The Customer to whom the original PaymentMethod is attached. /// @@ -555,12 +565,12 @@ public class PaymentMethodCreateOptions : BaseOptions, IHasMetadata /// One of: acss_debit, affirm, afterpay_clearpay, alipay, /// alma, amazon_pay, au_becs_debit, bacs_debit, /// bancontact, billie, blik, boleto, card, - /// cashapp, crypto, customer_balance, eps, fpx, - /// giropay, grabpay, ideal, kakao_pay, klarna, - /// konbini, kr_card, link, mb_way, mobilepay, - /// multibanco, naver_pay, nz_bank_account, oxxo, p24, - /// pay_by_bank, payco, paynow, paypal, pix, - /// promptpay, revolut_pay, samsung_pay, satispay, + /// cashapp, crypto, custom, customer_balance, eps, + /// fpx, giropay, grabpay, ideal, kakao_pay, + /// klarna, konbini, kr_card, link, mb_way, + /// mobilepay, multibanco, naver_pay, nz_bank_account, + /// oxxo, p24, pay_by_bank, payco, paynow, paypal, + /// pix, promptpay, revolut_pay, samsung_pay, satispay, /// sepa_debit, sofort, swish, twint, us_bank_account, /// wechat_pay, or zip. /// diff --git a/src/Stripe.net/Services/PaymentMethods/PaymentMethodCustomOptions.cs b/src/Stripe.net/Services/PaymentMethods/PaymentMethodCustomOptions.cs new file mode 100644 index 0000000000..d00a4c5d95 --- /dev/null +++ b/src/Stripe.net/Services/PaymentMethods/PaymentMethodCustomOptions.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentMethodCustomOptions : INestedOptions + { + /// + /// ID of the Dashboard-only CustomPaymentMethodType. This field is used by Stripe products' + /// internal code to support CPMs. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentMethods/PaymentMethodListOptions.cs b/src/Stripe.net/Services/PaymentMethods/PaymentMethodListOptions.cs index 470a72e6cb..60a435e891 100644 --- a/src/Stripe.net/Services/PaymentMethods/PaymentMethodListOptions.cs +++ b/src/Stripe.net/Services/PaymentMethods/PaymentMethodListOptions.cs @@ -18,19 +18,19 @@ public class PaymentMethodListOptions : ListOptions public string Customer { get; set; } /// - /// An optional filter on the list, based on the object type field. Without the - /// filter, the list includes all current and future payment method types. If your - /// integration expects only one type of payment method in the response, make sure to - /// provide a type value in the request. + /// Filters the list by the object type field. Unfiltered, the list returns all + /// payment method types except custom. If your integration expects only one type of + /// payment method in the response, specify that type value in the request to reduce your + /// payload. /// One of: acss_debit, affirm, afterpay_clearpay, alipay, /// alma, amazon_pay, au_becs_debit, bacs_debit, /// bancontact, billie, blik, boleto, card, - /// cashapp, crypto, customer_balance, eps, fpx, - /// giropay, grabpay, ideal, kakao_pay, klarna, - /// konbini, kr_card, link, mb_way, mobilepay, - /// multibanco, naver_pay, nz_bank_account, oxxo, p24, - /// pay_by_bank, payco, paynow, paypal, pix, - /// promptpay, revolut_pay, samsung_pay, satispay, + /// cashapp, crypto, custom, customer_balance, eps, + /// fpx, giropay, grabpay, ideal, kakao_pay, + /// klarna, konbini, kr_card, link, mb_way, + /// mobilepay, multibanco, naver_pay, nz_bank_account, + /// oxxo, p24, pay_by_bank, payco, paynow, paypal, + /// pix, promptpay, revolut_pay, samsung_pay, satispay, /// sepa_debit, sofort, swish, twint, us_bank_account, /// wechat_pay, or zip. /// diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordAmountOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordAmountOptions.cs new file mode 100644 index 0000000000..40498c8f74 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordAmountOptions.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountOptions : INestedOptions + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long? Value { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordAmountRequestedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordAmountRequestedOptions.cs new file mode 100644 index 0000000000..d2143db3b8 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordAmountRequestedOptions.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordAmountRequestedOptions : INestedOptions + { + /// + /// Three-letter ISO currency + /// code, in lowercase. Must be a supported + /// currency. + /// + [JsonProperty("currency")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("currency")] +#endif + public string Currency { get; set; } + + /// + /// A positive integer representing the amount in the currency's minor unit. For example, + /// 100 can represent 1 USD or 100 JPY. + /// + [JsonProperty("value")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("value")] +#endif + public long? Value { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordCustomerDetailsOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordCustomerDetailsOptions.cs new file mode 100644 index 0000000000..cc0421148a --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordCustomerDetailsOptions.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordCustomerDetailsOptions : INestedOptions + { + /// + /// The customer who made the payment. + /// + [JsonProperty("customer")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer")] +#endif + public string Customer { get; set; } + + /// + /// The customer's phone number. + /// + [JsonProperty("email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("email")] +#endif + public string Email { get; set; } + + /// + /// The customer's name. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The customer's phone number. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordFailedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordFailedOptions.cs new file mode 100644 index 0000000000..1706149b61 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordFailedOptions.cs @@ -0,0 +1,24 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordFailedOptions : INestedOptions + { + /// + /// When the reported payment failed. Measured in seconds since the Unix epoch. + /// + [JsonProperty("failed_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("failed_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? FailedAt { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordGetOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordGetOptions.cs new file mode 100644 index 0000000000..1976ab5d60 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordGetOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + public class PaymentRecordGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordGuaranteedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordGuaranteedOptions.cs new file mode 100644 index 0000000000..43c3bd2bb9 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordGuaranteedOptions.cs @@ -0,0 +1,24 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordGuaranteedOptions : INestedOptions + { + /// + /// When the reported payment was guaranteed. Measured in seconds since the Unix epoch. + /// + [JsonProperty("guaranteed_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("guaranteed_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? GuaranteedAt { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetailsOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetailsOptions.cs new file mode 100644 index 0000000000..b47ccf8c57 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsBillingDetailsOptions.cs @@ -0,0 +1,47 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsBillingDetailsOptions : INestedOptions + { + /// + /// The billing address associated with the method of payment. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public AddressOptions Address { get; set; } + + /// + /// The billing email associated with the method of payment. + /// + [JsonProperty("email")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("email")] +#endif + public string Email { get; set; } + + /// + /// The billing name associated with the method of payment. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The billing phone number associated with the method of payment. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomOptions.cs new file mode 100644 index 0000000000..3285fce31d --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsCustomOptions.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsCustomOptions : INestedOptions + { + /// + /// Display name for the custom (user-defined) payment method type used to make this + /// payment. + /// + [JsonProperty("display_name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("display_name")] +#endif + public string DisplayName { get; set; } + + /// + /// The custom payment method type associated with this payment. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsOptions.cs new file mode 100644 index 0000000000..630b2b4766 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordPaymentMethodDetailsOptions.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordPaymentMethodDetailsOptions : INestedOptions + { + /// + /// The billing details associated with the method of payment. + /// + [JsonProperty("billing_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("billing_details")] +#endif + public PaymentRecordPaymentMethodDetailsBillingDetailsOptions BillingDetails { get; set; } + + /// + /// Information about the custom (user-defined) payment method used to make this payment. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentRecordPaymentMethodDetailsCustomOptions Custom { get; set; } + + /// + /// ID of the Stripe Payment Method used to make this payment. + /// + [JsonProperty("payment_method")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method")] +#endif + public string PaymentMethod { get; set; } + + /// + /// The type of the payment method details. An additional hash is included on the + /// payment_method_details with a name matching this value. It contains additional + /// information specific to the type. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordProcessorDetailsCustomOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordProcessorDetailsCustomOptions.cs new file mode 100644 index 0000000000..d742cc79c2 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordProcessorDetailsCustomOptions.cs @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordProcessorDetailsCustomOptions : INestedOptions + { + /// + /// An opaque string for manual reconciliation of this payment, for example a check number + /// or a payment processor ID. + /// + [JsonProperty("payment_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_reference")] +#endif + public string PaymentReference { get; set; } + + /// + /// A reference to the external refund. This field must be unique across all refunds. + /// + [JsonProperty("refund_reference")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("refund_reference")] +#endif + public string RefundReference { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordProcessorDetailsOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordProcessorDetailsOptions.cs new file mode 100644 index 0000000000..49a853b548 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordProcessorDetailsOptions.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordProcessorDetailsOptions : INestedOptions + { + /// + /// Information about the custom processor used to make this payment. + /// + [JsonProperty("custom")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("custom")] +#endif + public PaymentRecordProcessorDetailsCustomOptions Custom { get; set; } + + /// + /// The type of the processor details. An additional hash is included on processor_details + /// with a name matching this value. It contains additional information specific to the + /// processor. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordRefundedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordRefundedOptions.cs new file mode 100644 index 0000000000..3b644dc845 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordRefundedOptions.cs @@ -0,0 +1,24 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordRefundedOptions : INestedOptions + { + /// + /// When the reported refund completed. Measured in seconds since the Unix epoch. + /// + [JsonProperty("refunded_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("refunded_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? RefundedAt { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptCanceledOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptCanceledOptions.cs new file mode 100644 index 0000000000..35d532eed2 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptCanceledOptions.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportPaymentAttemptCanceledOptions : BaseOptions, IHasMetadata + { + /// + /// When the reported payment was canceled. Measured in seconds since the Unix epoch. + /// + [JsonProperty("canceled_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("canceled_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? CanceledAt { get; set; } + + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs new file mode 100644 index 0000000000..cd36873e63 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportPaymentAttemptFailedOptions : BaseOptions, IHasMetadata + { + /// + /// When the reported payment failed. Measured in seconds since the Unix epoch. + /// + [JsonProperty("failed_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("failed_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? FailedAt { get; set; } + + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptGuaranteedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptGuaranteedOptions.cs new file mode 100644 index 0000000000..da6406a5dc --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptGuaranteedOptions.cs @@ -0,0 +1,31 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportPaymentAttemptGuaranteedOptions : BaseOptions, IHasMetadata + { + /// + /// When the reported payment was guaranteed. Measured in seconds since the Unix epoch. + /// + [JsonProperty("guaranteed_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("guaranteed_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? GuaranteedAt { get; set; } + + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptInformationalOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptInformationalOptions.cs new file mode 100644 index 0000000000..cb7fd5073f --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptInformationalOptions.cs @@ -0,0 +1,51 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportPaymentAttemptInformationalOptions : BaseOptions, IHasMetadata + { + /// + /// Customer information for this payment. + /// + [JsonProperty("customer_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_details")] +#endif + public PaymentRecordCustomerDetailsOptions CustomerDetails { get; set; } + + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Set of key-value pairs that you can + /// attach to an object. This can be useful for storing additional information about the + /// object in a structured format. Individual keys can be unset by posting an empty value to + /// them. All keys can be unset by posting an empty value to metadata. + /// + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + + /// + /// Shipping information for this payment. + /// + [JsonProperty("shipping_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping_details")] +#endif + public PaymentRecordShippingDetailsOptions ShippingDetails { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptOptions.cs new file mode 100644 index 0000000000..db9e573be6 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptOptions.cs @@ -0,0 +1,92 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportPaymentAttemptOptions : BaseOptions, IHasMetadata + { + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Information about the payment attempt failure. + /// + [JsonProperty("failed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("failed")] +#endif + public PaymentRecordFailedOptions Failed { get; set; } + + /// + /// Information about the payment attempt guarantee. + /// + [JsonProperty("guaranteed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("guaranteed")] +#endif + public PaymentRecordGuaranteedOptions Guaranteed { get; set; } + + /// + /// When the reported payment was initiated. Measured in seconds since the Unix epoch. + /// + [JsonProperty("initiated_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("initiated_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? InitiatedAt { get; set; } + + /// + /// Set of key-value pairs that you can + /// attach to an object. This can be useful for storing additional information about the + /// object in a structured format. Individual keys can be unset by posting an empty value to + /// them. All keys can be unset by posting an empty value to metadata. + /// + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + + /// + /// The outcome of the reported payment. + /// One of: failed, or guaranteed. + /// + [JsonProperty("outcome")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("outcome")] +#endif + public string Outcome { get; set; } + + /// + /// Information about the Payment Method debited for this payment. + /// + [JsonProperty("payment_method_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_details")] +#endif + public PaymentRecordPaymentMethodDetailsOptions PaymentMethodDetails { get; set; } + + /// + /// Shipping information for this payment. + /// + [JsonProperty("shipping_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping_details")] +#endif + public PaymentRecordShippingDetailsOptions ShippingDetails { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentOptions.cs new file mode 100644 index 0000000000..cb9381b6f5 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentOptions.cs @@ -0,0 +1,129 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportPaymentOptions : BaseOptions, IHasMetadata + { + /// + /// The amount you initially requested for this payment. + /// + [JsonProperty("amount_requested")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount_requested")] +#endif + public PaymentRecordAmountRequestedOptions AmountRequested { get; set; } + + /// + /// Customer information for this payment. + /// + [JsonProperty("customer_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_details")] +#endif + public PaymentRecordCustomerDetailsOptions CustomerDetails { get; set; } + + /// + /// Indicates whether the customer was present in your checkout flow during this payment. + /// One of: off_session, or on_session. + /// + [JsonProperty("customer_presence")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("customer_presence")] +#endif + public string CustomerPresence { get; set; } + + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("description")] +#endif + public string Description { get; set; } + + /// + /// Information about the payment attempt failure. + /// + [JsonProperty("failed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("failed")] +#endif + public PaymentRecordFailedOptions Failed { get; set; } + + /// + /// Information about the payment attempt guarantee. + /// + [JsonProperty("guaranteed")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("guaranteed")] +#endif + public PaymentRecordGuaranteedOptions Guaranteed { get; set; } + + /// + /// When the reported payment was initiated. Measured in seconds since the Unix epoch. + /// + [JsonProperty("initiated_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("initiated_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? InitiatedAt { get; set; } + + /// + /// Set of key-value pairs that you can + /// attach to an object. This can be useful for storing additional information about the + /// object in a structured format. Individual keys can be unset by posting an empty value to + /// them. All keys can be unset by posting an empty value to metadata. + /// + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + + /// + /// The outcome of the reported payment. + /// One of: failed, or guaranteed. + /// + [JsonProperty("outcome")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("outcome")] +#endif + public string Outcome { get; set; } + + /// + /// Information about the Payment Method debited for this payment. + /// + [JsonProperty("payment_method_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("payment_method_details")] +#endif + public PaymentRecordPaymentMethodDetailsOptions PaymentMethodDetails { get; set; } + + /// + /// Processor information for this payment. + /// + [JsonProperty("processor_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("processor_details")] +#endif + public PaymentRecordProcessorDetailsOptions ProcessorDetails { get; set; } + + /// + /// Shipping information for this payment. + /// + [JsonProperty("shipping_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("shipping_details")] +#endif + public PaymentRecordShippingDetailsOptions ShippingDetails { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs new file mode 100644 index 0000000000..905aa3aa2e --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs @@ -0,0 +1,76 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordReportRefundOptions : BaseOptions, IHasMetadata + { + /// + /// A positive integer in the smallest currency unit + /// representing how much of this payment to refund. Can refund only up to the remaining, + /// unrefunded amount of the payment. + /// + [JsonProperty("amount")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("amount")] +#endif + public PaymentRecordAmountOptions Amount { get; set; } + + /// + /// When the reported refund was initiated. Measured in seconds since the Unix epoch. + /// + [JsonProperty("initiated_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("initiated_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? InitiatedAt { get; set; } + + /// + /// Set of key-value pairs that you can + /// attach to an object. This can be useful for storing additional information about the + /// object in a structured format. Individual keys can be unset by posting an empty value to + /// them. All keys can be unset by posting an empty value to metadata. + /// + [JsonProperty("metadata")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("metadata")] +#endif + public Dictionary Metadata { get; set; } + + /// + /// The outcome of the reported refund. + /// + [JsonProperty("outcome")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("outcome")] +#endif + public string Outcome { get; set; } + + /// + /// Processor information for this refund. + /// + [JsonProperty("processor_details")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("processor_details")] +#endif + public PaymentRecordProcessorDetailsOptions ProcessorDetails { get; set; } + + /// + /// Information about the payment attempt refund. + /// + [JsonProperty("refunded")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("refunded")] +#endif + public PaymentRecordRefundedOptions Refunded { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordService.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordService.cs new file mode 100644 index 0000000000..40ec2ab842 --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordService.cs @@ -0,0 +1,169 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class PaymentRecordService : Service, + IRetrievable + { + public PaymentRecordService() + { + } + + internal PaymentRecordService(ApiRequestor requestor) + : base(requestor) + { + } + + public PaymentRecordService(IStripeClient client) + : base(client) + { + } + + /// + ///

Retrieves a Payment Record with the given ID

. + ///
+ public virtual PaymentRecord Get(string id, PaymentRecordGetOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_records/{WebUtility.UrlEncode(id)}", options, requestOptions); + } + + /// + ///

Retrieves a Payment Record with the given ID

. + ///
+ public virtual Task GetAsync(string id, PaymentRecordGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Get, $"/v1/payment_records/{WebUtility.UrlEncode(id)}", options, requestOptions, cancellationToken); + } + + /// + ///

Report a new Payment Record. You may report a Payment Record as it is initialized and + /// later report updates through the other report_* methods, or report Payment Records in a + /// terminal state directly, through this method.

. + ///
+ public virtual PaymentRecord ReportPayment(PaymentRecordReportPaymentOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/report_payment", options, requestOptions); + } + + /// + ///

Report a new Payment Record. You may report a Payment Record as it is initialized and + /// later report updates through the other report_* methods, or report Payment Records in a + /// terminal state directly, through this method.

. + ///
+ public virtual Task ReportPaymentAsync(PaymentRecordReportPaymentOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/report_payment", options, requestOptions, cancellationToken); + } + + /// + ///

Report a new payment attempt on the specified Payment Record. A new payment attempt + /// can only be specified if all other payment attempts are canceled or failed.

. + ///
+ public virtual PaymentRecord ReportPaymentAttempt(string id, PaymentRecordReportPaymentAttemptOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt", options, requestOptions); + } + + /// + ///

Report a new payment attempt on the specified Payment Record. A new payment attempt + /// can only be specified if all other payment attempts are canceled or failed.

. + ///
+ public virtual Task ReportPaymentAttemptAsync(string id, PaymentRecordReportPaymentAttemptOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt", options, requestOptions, cancellationToken); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record was + /// canceled.

. + ///
+ public virtual PaymentRecord ReportPaymentAttemptCanceled(string id, PaymentRecordReportPaymentAttemptCanceledOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_canceled", options, requestOptions); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record was + /// canceled.

. + ///
+ public virtual Task ReportPaymentAttemptCanceledAsync(string id, PaymentRecordReportPaymentAttemptCanceledOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_canceled", options, requestOptions, cancellationToken); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record failed or + /// errored.

. + ///
+ public virtual PaymentRecord ReportPaymentAttemptFailed(string id, PaymentRecordReportPaymentAttemptFailedOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_failed", options, requestOptions); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record failed or + /// errored.

. + ///
+ public virtual Task ReportPaymentAttemptFailedAsync(string id, PaymentRecordReportPaymentAttemptFailedOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_failed", options, requestOptions, cancellationToken); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record was + /// guaranteed.

. + ///
+ public virtual PaymentRecord ReportPaymentAttemptGuaranteed(string id, PaymentRecordReportPaymentAttemptGuaranteedOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_guaranteed", options, requestOptions); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record was + /// guaranteed.

. + ///
+ public virtual Task ReportPaymentAttemptGuaranteedAsync(string id, PaymentRecordReportPaymentAttemptGuaranteedOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_guaranteed", options, requestOptions, cancellationToken); + } + + /// + ///

Report informational updates on the specified Payment Record.

. + ///
+ public virtual PaymentRecord ReportPaymentAttemptInformational(string id, PaymentRecordReportPaymentAttemptInformationalOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_informational", options, requestOptions); + } + + /// + ///

Report informational updates on the specified Payment Record.

. + ///
+ public virtual Task ReportPaymentAttemptInformationalAsync(string id, PaymentRecordReportPaymentAttemptInformationalOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_payment_attempt_informational", options, requestOptions, cancellationToken); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record was + /// refunded.

. + ///
+ public virtual PaymentRecord ReportRefund(string id, PaymentRecordReportRefundOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_refund", options, requestOptions); + } + + /// + ///

Report that the most recent payment attempt on the specified Payment Record was + /// refunded.

. + ///
+ public virtual Task ReportRefundAsync(string id, PaymentRecordReportRefundOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/payment_records/{WebUtility.UrlEncode(id)}/report_refund", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordShippingDetailsOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordShippingDetailsOptions.cs new file mode 100644 index 0000000000..62bb161acc --- /dev/null +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordShippingDetailsOptions.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class PaymentRecordShippingDetailsOptions : INestedOptions + { + /// + /// The physical shipping address. + /// + [JsonProperty("address")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("address")] +#endif + public AddressOptions Address { get; set; } + + /// + /// The shipping recipient's name. + /// + [JsonProperty("name")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("name")] +#endif + public string Name { get; set; } + + /// + /// The shipping recipient's phone number. + /// + [JsonProperty("phone")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("phone")] +#endif + public string Phone { get; set; } + } +} diff --git a/src/Stripe.net/Services/Payouts/PayoutService.cs b/src/Stripe.net/Services/Payouts/PayoutService.cs index 647c2d50e8..9b75d58ca6 100644 --- a/src/Stripe.net/Services/Payouts/PayoutService.cs +++ b/src/Stripe.net/Services/Payouts/PayoutService.cs @@ -146,8 +146,9 @@ public virtual IAsyncEnumerable ListAutoPagingAsync(PayoutListOptions op /// ///

Reverses a payout by debiting the destination bank account. At this time, you can - /// only reverse payouts for connected accounts to US bank accounts. If the payout is manual - /// and in the pending status, use /v1/payouts/:id/cancel instead.

. + /// only reverse payouts for connected accounts to US and Canadian bank accounts. If the + /// payout is manual and in the pending status, use /v1/payouts/:id/cancel + /// instead.

. /// ///

By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the /// authorized signatory of the selected bank account authorizes the debit on the bank @@ -160,8 +161,9 @@ public virtual Payout Reverse(string id, PayoutReverseOptions options = null, Re ///

///

Reverses a payout by debiting the destination bank account. At this time, you can - /// only reverse payouts for connected accounts to US bank accounts. If the payout is manual - /// and in the pending status, use /v1/payouts/:id/cancel instead.

. + /// only reverse payouts for connected accounts to US and Canadian bank accounts. If the + /// payout is manual and in the pending status, use /v1/payouts/:id/cancel + /// instead.

. /// ///

By requesting a reversal through /v1/payouts/:id/reverse, you confirm that the /// authorized signatory of the selected bank account authorizes the debit on the bank diff --git a/src/Stripe.net/Services/SetupIntents/SetupIntentCreateOptions.cs b/src/Stripe.net/Services/SetupIntents/SetupIntentCreateOptions.cs index b5dfd3439a..b3afb1624a 100644 --- a/src/Stripe.net/Services/SetupIntents/SetupIntentCreateOptions.cs +++ b/src/Stripe.net/Services/SetupIntents/SetupIntentCreateOptions.cs @@ -80,6 +80,26 @@ public class SetupIntentCreateOptions : BaseOptions, IHasMetadata #endif public string Description { get; set; } + ///

+ /// The list of payment method types to exclude from use with this SetupIntent. + /// One of: acss_debit, affirm, afterpay_clearpay, alipay, + /// alma, amazon_pay, au_becs_debit, bacs_debit, + /// bancontact, billie, blik, boleto, card, + /// cashapp, crypto, customer_balance, eps, fpx, + /// giropay, grabpay, ideal, kakao_pay, klarna, + /// konbini, kr_card, mb_way, mobilepay, multibanco, + /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, + /// payco, paynow, paypal, pix, promptpay, + /// revolut_pay, samsung_pay, satispay, sepa_debit, + /// sofort, swish, twint, us_bank_account, wechat_pay, or + /// zip. + /// + [JsonProperty("excluded_payment_method_types")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("excluded_payment_method_types")] +#endif + public List ExcludedPaymentMethodTypes { get; set; } + /// /// Indicates the directions of money movement for which this payment method is intended to /// be used. diff --git a/src/Stripe.net/Services/SetupIntents/SetupIntentUpdateOptions.cs b/src/Stripe.net/Services/SetupIntents/SetupIntentUpdateOptions.cs index d172c373ad..19cc8dadd7 100644 --- a/src/Stripe.net/Services/SetupIntents/SetupIntentUpdateOptions.cs +++ b/src/Stripe.net/Services/SetupIntents/SetupIntentUpdateOptions.cs @@ -46,6 +46,26 @@ public class SetupIntentUpdateOptions : BaseOptions, IHasMetadata #endif public string Description { get; set; } + /// + /// The list of payment method types to exclude from use with this SetupIntent. + /// One of: acss_debit, affirm, afterpay_clearpay, alipay, + /// alma, amazon_pay, au_becs_debit, bacs_debit, + /// bancontact, billie, blik, boleto, card, + /// cashapp, crypto, customer_balance, eps, fpx, + /// giropay, grabpay, ideal, kakao_pay, klarna, + /// konbini, kr_card, mb_way, mobilepay, multibanco, + /// naver_pay, nz_bank_account, oxxo, p24, pay_by_bank, + /// payco, paynow, paypal, pix, promptpay, + /// revolut_pay, samsung_pay, satispay, sepa_debit, + /// sofort, swish, twint, us_bank_account, wechat_pay, or + /// zip. + /// + [JsonProperty("excluded_payment_method_types")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("excluded_payment_method_types")] +#endif + public List ExcludedPaymentMethodTypes { get; set; } + /// /// Indicates the directions of money movement for which this payment method is intended to /// be used. diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs index 72548eac73..f37edb81d4 100644 --- a/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs @@ -28,10 +28,10 @@ public class SubscriptionPaymentSettingsOptions : INestedOptions /// settings. Should not be specified with payment_method_configuration. /// One of: ach_credit_transfer, ach_debit, acss_debit, affirm, /// amazon_pay, au_becs_debit, bacs_debit, bancontact, - /// boleto, card, cashapp, crypto, customer_balance, - /// eps, fpx, giropay, grabpay, ideal, - /// jp_credit_transfer, kakao_pay, klarna, konbini, - /// kr_card, link, multibanco, naver_pay, + /// boleto, card, cashapp, crypto, custom, + /// customer_balance, eps, fpx, giropay, grabpay, + /// ideal, jp_credit_transfer, kakao_pay, klarna, + /// konbini, kr_card, link, multibanco, naver_pay, /// nz_bank_account, p24, payco, paynow, paypal, /// promptpay, revolut_pay, sepa_credit_transfer, sepa_debit, /// sofort, swish, us_bank_account, or wechat_pay. diff --git a/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsOptions.cs b/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsOptions.cs index 9087eaf07b..63143a47f0 100644 --- a/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsOptions.cs +++ b/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsOptions.cs @@ -809,6 +809,15 @@ public class RegistrationCountryOptionsOptions : INestedOptions #endif public RegistrationCountryOptionsTrOptions Tr { get; set; } + /// + /// Options for the registration in TW. + /// + [JsonProperty("tw")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("tw")] +#endif + public RegistrationCountryOptionsTwOptions Tw { get; set; } + /// /// Options for the registration in TZ. /// diff --git a/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsTwOptions.cs b/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsTwOptions.cs new file mode 100644 index 0000000000..9d813b6cf4 --- /dev/null +++ b/src/Stripe.net/Services/Tax/Registrations/RegistrationCountryOptionsTwOptions.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe.Tax +{ + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class RegistrationCountryOptionsTwOptions : INestedOptions + { + /// + /// Type of registration to be created in country. + /// + [JsonProperty("type")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("type")] +#endif + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingGipOptions.cs b/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingGipOptions.cs new file mode 100644 index 0000000000..2430945757 --- /dev/null +++ b/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingGipOptions.cs @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec +namespace Stripe.Terminal +{ + using System.Collections.Generic; + using Newtonsoft.Json; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class ConfigurationTippingGipOptions : INestedOptions + { + /// + /// Fixed amounts displayed when collecting a tip. + /// + [JsonProperty("fixed_amounts")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("fixed_amounts")] +#endif + public List FixedAmounts { get; set; } + + /// + /// Percentages displayed when collecting a tip. + /// + [JsonProperty("percentages")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("percentages")] +#endif + public List Percentages { get; set; } + + /// + /// Below this amount, fixed amounts will be displayed; above it, percentages will be + /// displayed. + /// + [JsonProperty("smart_tip_threshold")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("smart_tip_threshold")] +#endif + public long? SmartTipThreshold { get; set; } + } +} diff --git a/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingOptions.cs b/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingOptions.cs index 53cb82efed..ef1ddecdaa 100644 --- a/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingOptions.cs +++ b/src/Stripe.net/Services/Terminal/Configurations/ConfigurationTippingOptions.cs @@ -89,6 +89,15 @@ public class ConfigurationTippingOptions : INestedOptions #endif public ConfigurationTippingGbpOptions Gbp { get; set; } + /// + /// Tipping configuration for GIP. + /// + [JsonProperty("gip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("gip")] +#endif + public ConfigurationTippingGipOptions Gip { get; set; } + /// /// Tipping configuration for HKD. /// diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderCartLineItemOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderCartLineItemOptions.cs index 707ec45616..7788411dc6 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderCartLineItemOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderCartLineItemOptions.cs @@ -9,7 +9,8 @@ namespace Stripe.Terminal public class ReaderCartLineItemOptions : INestedOptions { /// - /// The price of the item in cents. + /// The price of the item in the smallest currency unit. /// [JsonProperty("amount")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderCartOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderCartOptions.cs index 6bbc865064..8d12dda56c 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderCartOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderCartOptions.cs @@ -21,7 +21,7 @@ public class ReaderCartOptions : INestedOptions public string Currency { get; set; } /// - /// Array of line items that were purchased. + /// Array of line items to display. /// [JsonProperty("line_items")] #if NET6_0_OR_GREATER @@ -30,7 +30,8 @@ public class ReaderCartOptions : INestedOptions public List LineItems { get; set; } /// - /// The amount of tax in cents. + /// The amount of tax in the smallest currency unit. /// [JsonProperty("tax")] #if NET6_0_OR_GREATER @@ -39,7 +40,8 @@ public class ReaderCartOptions : INestedOptions public long? Tax { get; set; } /// - /// Total balance of cart due in cents. + /// Total balance of cart due in the smallest currency unit. /// [JsonProperty("total")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderCollectInputsOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderCollectInputsOptions.cs index 41434d3776..2ef86947ed 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderCollectInputsOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderCollectInputsOptions.cs @@ -10,7 +10,7 @@ namespace Stripe.Terminal public class ReaderCollectInputsOptions : BaseOptions, IHasMetadata { /// - /// List of inputs to be collected using the Reader. + /// List of inputs to be collected from the customer using the Reader. Maximum 5 inputs. /// [JsonProperty("inputs")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderCollectPaymentMethodOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderCollectPaymentMethodOptions.cs index 15f5a87b38..f286b4e5d9 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderCollectPaymentMethodOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderCollectPaymentMethodOptions.cs @@ -9,7 +9,8 @@ namespace Stripe.Terminal public class ReaderCollectPaymentMethodOptions : BaseOptions { /// - /// Configuration overrides. + /// Configuration overrides for this collection, such as tipping, surcharging, and customer + /// cancellation settings. /// [JsonProperty("collect_config")] #if NET6_0_OR_GREATER @@ -18,7 +19,7 @@ public class ReaderCollectPaymentMethodOptions : BaseOptions public ReaderCollectConfigOptions CollectConfig { get; set; } /// - /// PaymentIntent ID. + /// The ID of the PaymentIntent to collect a payment method for. /// [JsonProperty("payment_intent")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderConfirmPaymentIntentOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderConfirmPaymentIntentOptions.cs index 4dace8691e..1d0e00b116 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderConfirmPaymentIntentOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderConfirmPaymentIntentOptions.cs @@ -9,7 +9,8 @@ namespace Stripe.Terminal public class ReaderConfirmPaymentIntentOptions : BaseOptions { /// - /// Configuration overrides. + /// Configuration overrides for this confirmation, such as surcharge settings and return + /// URL. /// [JsonProperty("confirm_config")] #if NET6_0_OR_GREATER @@ -18,7 +19,7 @@ public class ReaderConfirmPaymentIntentOptions : BaseOptions public ReaderConfirmConfigOptions ConfirmConfig { get; set; } /// - /// PaymentIntent ID. + /// The ID of the PaymentIntent to confirm. /// [JsonProperty("payment_intent")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderInputCustomTextOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderInputCustomTextOptions.cs index abbc331ac4..f7592aa907 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderInputCustomTextOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderInputCustomTextOptions.cs @@ -18,7 +18,7 @@ public class ReaderInputCustomTextOptions : INestedOptions public string Description { get; set; } /// - /// The skip button text. + /// Custom text for the skip button. Maximum 14 characters. /// [JsonProperty("skip_button")] #if NET6_0_OR_GREATER @@ -27,7 +27,7 @@ public class ReaderInputCustomTextOptions : INestedOptions public string SkipButton { get; set; } /// - /// The submit button text. + /// Custom text for the submit button. Maximum 30 characters. /// [JsonProperty("submit_button")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderInputSelectionChoiceOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderInputSelectionChoiceOptions.cs index 6517aa2602..c3f64e9208 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderInputSelectionChoiceOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderInputSelectionChoiceOptions.cs @@ -18,7 +18,8 @@ public class ReaderInputSelectionChoiceOptions : INestedOptions, IHasId public string Id { get; set; } /// - /// The style of the button which will be shown for this choice. + /// The style of the button which will be shown for this choice. Can be primary or + /// secondary. /// One of: primary, or secondary. /// [JsonProperty("style")] diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderInputToggleOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderInputToggleOptions.cs index 2c819df31d..45bfe67d1f 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderInputToggleOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderInputToggleOptions.cs @@ -9,7 +9,7 @@ namespace Stripe.Terminal public class ReaderInputToggleOptions : INestedOptions { /// - /// The default value of the toggle. + /// The default value of the toggle. Can be enabled or disabled. /// One of: disabled, or enabled. /// [JsonProperty("default_value")] @@ -19,7 +19,8 @@ public class ReaderInputToggleOptions : INestedOptions public string DefaultValue { get; set; } /// - /// The description which will be displayed for the toggle. + /// The description which will be displayed for the toggle. Maximum 50 characters. At least + /// one of title or description must be provided. /// [JsonProperty("description")] #if NET6_0_OR_GREATER @@ -28,7 +29,8 @@ public class ReaderInputToggleOptions : INestedOptions public string Description { get; set; } /// - /// The title which will be displayed for the toggle. + /// The title which will be displayed for the toggle. Maximum 50 characters. At least one of + /// title or description must be provided. /// [JsonProperty("title")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderProcessPaymentIntentOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderProcessPaymentIntentOptions.cs index 02d62fc787..ef450ab3a1 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderProcessPaymentIntentOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderProcessPaymentIntentOptions.cs @@ -9,7 +9,7 @@ namespace Stripe.Terminal public class ReaderProcessPaymentIntentOptions : BaseOptions { /// - /// PaymentIntent ID. + /// The ID of the PaymentIntent to process on the reader. /// [JsonProperty("payment_intent")] #if NET6_0_OR_GREATER @@ -18,7 +18,8 @@ public class ReaderProcessPaymentIntentOptions : BaseOptions public string PaymentIntent { get; set; } /// - /// Configuration overrides. + /// Configuration overrides for this transaction, such as tipping and customer cancellation + /// settings. /// [JsonProperty("process_config")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderProcessSetupIntentOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderProcessSetupIntentOptions.cs index 9ee775e098..fc3e8419a1 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderProcessSetupIntentOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderProcessSetupIntentOptions.cs @@ -21,7 +21,7 @@ public class ReaderProcessSetupIntentOptions : BaseOptions public string AllowRedisplay { get; set; } /// - /// Configuration overrides. + /// Configuration overrides for this setup, such as MOTO and customer cancellation settings. /// [JsonProperty("process_config")] #if NET6_0_OR_GREATER @@ -30,7 +30,7 @@ public class ReaderProcessSetupIntentOptions : BaseOptions public ReaderProcessConfigOptions ProcessConfig { get; set; } /// - /// SetupIntent ID. + /// The ID of the SetupIntent to process on the reader. /// [JsonProperty("setup_intent")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderRefundPaymentOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderRefundPaymentOptions.cs index 4b5c25cf0e..858e8b9b03 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderRefundPaymentOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderRefundPaymentOptions.cs @@ -63,7 +63,7 @@ public class ReaderRefundPaymentOptions : BaseOptions, IHasMetadata public bool? RefundApplicationFee { get; set; } /// - /// Configuration overrides. + /// Configuration overrides for this refund, such as customer cancellation settings. /// [JsonProperty("refund_payment_config")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderService.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderService.cs index 5c55c1463f..4073d3c016 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderService.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderService.cs @@ -30,7 +30,9 @@ public ReaderService(IStripeClient client) } /// - ///

Cancels the current reader action.

. + ///

Cancels the current reader action. See Programmatic + /// Cancellation for more details.

. ///
public virtual Reader CancelAction(string id, ReaderCancelActionOptions options = null, RequestOptions requestOptions = null) { @@ -38,7 +40,9 @@ public virtual Reader CancelAction(string id, ReaderCancelActionOptions options } /// - ///

Cancels the current reader action.

. + ///

Cancels the current reader action. See Programmatic + /// Cancellation for more details.

. ///
public virtual Task CancelActionAsync(string id, ReaderCancelActionOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -46,7 +50,9 @@ public virtual Task CancelActionAsync(string id, ReaderCancelActionOptio } /// - ///

Initiates an input collection flow on a Reader.

. + ///

Initiates an input + /// collection flow on a Reader to display input forms and collect information from your + /// customers.

. ///
public virtual Reader CollectInputs(string id, ReaderCollectInputsOptions options = null, RequestOptions requestOptions = null) { @@ -54,7 +60,9 @@ public virtual Reader CollectInputs(string id, ReaderCollectInputsOptions option } /// - ///

Initiates an input collection flow on a Reader.

. + ///

Initiates an input + /// collection flow on a Reader to display input forms and collect information from your + /// customers.

. ///
public virtual Task CollectInputsAsync(string id, ReaderCollectInputsOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -63,7 +71,9 @@ public virtual Task CollectInputsAsync(string id, ReaderCollectInputsOpt /// ///

Initiates a payment flow on a Reader and updates the PaymentIntent with card details - /// before manual confirmation.

. + /// before manual confirmation. See Collecting + /// a Payment method for more details.

. ///
public virtual Reader CollectPaymentMethod(string id, ReaderCollectPaymentMethodOptions options = null, RequestOptions requestOptions = null) { @@ -72,7 +82,9 @@ public virtual Reader CollectPaymentMethod(string id, ReaderCollectPaymentMethod /// ///

Initiates a payment flow on a Reader and updates the PaymentIntent with card details - /// before manual confirmation.

. + /// before manual confirmation. See Collecting + /// a Payment method for more details.

. ///
public virtual Task CollectPaymentMethodAsync(string id, ReaderCollectPaymentMethodOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -80,7 +92,9 @@ public virtual Task CollectPaymentMethodAsync(string id, ReaderCollectPa } /// - ///

Finalizes a payment on a Reader.

. + ///

Finalizes a payment on a Reader. See Confirming + /// a Payment for more details.

. ///
public virtual Reader ConfirmPaymentIntent(string id, ReaderConfirmPaymentIntentOptions options = null, RequestOptions requestOptions = null) { @@ -88,7 +102,9 @@ public virtual Reader ConfirmPaymentIntent(string id, ReaderConfirmPaymentIntent } /// - ///

Finalizes a payment on a Reader.

. + ///

Finalizes a payment on a Reader. See Confirming + /// a Payment for more details.

. ///
public virtual Task ConfirmPaymentIntentAsync(string id, ReaderConfirmPaymentIntentOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -176,7 +192,9 @@ public virtual IAsyncEnumerable ListAutoPagingAsync(ReaderListOptions op } /// - ///

Initiates a payment flow on a Reader.

. + ///

Initiates a payment flow on a Reader. See process + /// the payment for more details.

. ///
public virtual Reader ProcessPaymentIntent(string id, ReaderProcessPaymentIntentOptions options = null, RequestOptions requestOptions = null) { @@ -184,7 +202,9 @@ public virtual Reader ProcessPaymentIntent(string id, ReaderProcessPaymentIntent } /// - ///

Initiates a payment flow on a Reader.

. + ///

Initiates a payment flow on a Reader. See process + /// the payment for more details.

. ///
public virtual Task ProcessPaymentIntentAsync(string id, ReaderProcessPaymentIntentOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -192,7 +212,9 @@ public virtual Task ProcessPaymentIntentAsync(string id, ReaderProcessPa } /// - ///

Initiates a setup intent flow on a Reader.

. + ///

Initiates a SetupIntent flow on a Reader. See Save + /// directly without charging for more details.

. ///
public virtual Reader ProcessSetupIntent(string id, ReaderProcessSetupIntentOptions options = null, RequestOptions requestOptions = null) { @@ -200,7 +222,9 @@ public virtual Reader ProcessSetupIntent(string id, ReaderProcessSetupIntentOpti } /// - ///

Initiates a setup intent flow on a Reader.

. + ///

Initiates a SetupIntent flow on a Reader. See Save + /// directly without charging for more details.

. ///
public virtual Task ProcessSetupIntentAsync(string id, ReaderProcessSetupIntentOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -208,7 +232,9 @@ public virtual Task ProcessSetupIntentAsync(string id, ReaderProcessSetu } /// - ///

Initiates a refund on a Reader

. + ///

Initiates an in-person refund on a Reader. See Refund + /// an Interac Payment for more details.

. ///
public virtual Reader RefundPayment(string id, ReaderRefundPaymentOptions options = null, RequestOptions requestOptions = null) { @@ -216,7 +242,9 @@ public virtual Reader RefundPayment(string id, ReaderRefundPaymentOptions option } /// - ///

Initiates a refund on a Reader

. + ///

Initiates an in-person refund on a Reader. See Refund + /// an Interac Payment for more details.

. ///
public virtual Task RefundPaymentAsync(string id, ReaderRefundPaymentOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { @@ -224,7 +252,8 @@ public virtual Task RefundPaymentAsync(string id, ReaderRefundPaymentOpt } /// - ///

Sets reader display to show cart details.

. + ///

Sets the reader display to show cart details.

. ///
public virtual Reader SetReaderDisplay(string id, ReaderSetReaderDisplayOptions options = null, RequestOptions requestOptions = null) { @@ -232,7 +261,8 @@ public virtual Reader SetReaderDisplay(string id, ReaderSetReaderDisplayOptions } /// - ///

Sets reader display to show cart details.

. + ///

Sets the reader display to show cart details.

. ///
public virtual Task SetReaderDisplayAsync(string id, ReaderSetReaderDisplayOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) { diff --git a/src/Stripe.net/Services/Terminal/Readers/ReaderSetReaderDisplayOptions.cs b/src/Stripe.net/Services/Terminal/Readers/ReaderSetReaderDisplayOptions.cs index c7bed33a55..abe18c57ab 100644 --- a/src/Stripe.net/Services/Terminal/Readers/ReaderSetReaderDisplayOptions.cs +++ b/src/Stripe.net/Services/Terminal/Readers/ReaderSetReaderDisplayOptions.cs @@ -9,7 +9,8 @@ namespace Stripe.Terminal public class ReaderSetReaderDisplayOptions : BaseOptions { /// - /// Cart. + /// Cart details to display on the reader screen, including line items, amounts, and + /// currency. /// [JsonProperty("cart")] #if NET6_0_OR_GREATER @@ -18,7 +19,7 @@ public class ReaderSetReaderDisplayOptions : BaseOptions public ReaderCartOptions Cart { get; set; } /// - /// Type. + /// Type of information to display. Only cart is currently supported. /// [JsonProperty("type")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/TestHelpers/Terminal/Readers/ReaderInteracPresentOptions.cs b/src/Stripe.net/Services/TestHelpers/Terminal/Readers/ReaderInteracPresentOptions.cs index c5ff2be0d5..b96c0064ef 100644 --- a/src/Stripe.net/Services/TestHelpers/Terminal/Readers/ReaderInteracPresentOptions.cs +++ b/src/Stripe.net/Services/TestHelpers/Terminal/Readers/ReaderInteracPresentOptions.cs @@ -9,7 +9,7 @@ namespace Stripe.TestHelpers.Terminal public class ReaderInteracPresentOptions : INestedOptions { /// - /// Card Number. + /// The Interac card number. /// [JsonProperty("number")] #if NET6_0_OR_GREATER diff --git a/src/Stripe.net/Services/Tokens/TokenAccountCompanyOptions.cs b/src/Stripe.net/Services/Tokens/TokenAccountCompanyOptions.cs index 4ff41ec6c6..cebe7ed292 100644 --- a/src/Stripe.net/Services/Tokens/TokenAccountCompanyOptions.cs +++ b/src/Stripe.net/Services/Tokens/TokenAccountCompanyOptions.cs @@ -194,6 +194,16 @@ public class TokenAccountCompanyOptions : INestedOptions #endif public string RegistrationNumber { get; set; } + /// + /// This hash is used to attest that the representative is authorized to act as the + /// representative of their legal entity. + /// + [JsonProperty("representative_declaration")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("representative_declaration")] +#endif + public TokenAccountCompanyRepresentativeDeclarationOptions RepresentativeDeclaration { get; set; } + /// /// The category identifying the legal structure of the company or legal entity. See Business diff --git a/src/Stripe.net/Services/Tokens/TokenAccountCompanyRepresentativeDeclarationOptions.cs b/src/Stripe.net/Services/Tokens/TokenAccountCompanyRepresentativeDeclarationOptions.cs new file mode 100644 index 0000000000..f43416c042 --- /dev/null +++ b/src/Stripe.net/Services/Tokens/TokenAccountCompanyRepresentativeDeclarationOptions.cs @@ -0,0 +1,43 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; +#if NET6_0_OR_GREATER + using STJS = System.Text.Json.Serialization; +#endif + + public class TokenAccountCompanyRepresentativeDeclarationOptions : INestedOptions + { + /// + /// The Unix timestamp marking when the representative declaration attestation was made. + /// + [JsonProperty("date")] + [JsonConverter(typeof(UnixDateTimeConverter))] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("date")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] +#endif + public DateTime? Date { get; set; } + + /// + /// The IP address from which the representative declaration attestation was made. + /// + [JsonProperty("ip")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("ip")] +#endif + public string Ip { get; set; } + + /// + /// The user agent of the browser from which the representative declaration attestation was + /// made. + /// + [JsonProperty("user_agent")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("user_agent")] +#endif + public string UserAgent { get; set; } + } +} diff --git a/src/Stripe.net/Services/V1Services.cs b/src/Stripe.net/Services/V1Services.cs index 47715da6b0..5a9cde2300 100644 --- a/src/Stripe.net/Services/V1Services.cs +++ b/src/Stripe.net/Services/V1Services.cs @@ -44,11 +44,13 @@ public class V1Services : Service private InvoiceRenderingTemplateService invoiceRenderingTemplates; private IssuingService issuing; private MandateService mandates; + private PaymentAttemptRecordService paymentAttemptRecords; private PaymentIntentService paymentIntents; private PaymentLinkService paymentLinks; private PaymentMethodService paymentMethods; private PaymentMethodConfigurationService paymentMethodConfigurations; private PaymentMethodDomainService paymentMethodDomains; + private PaymentRecordService paymentRecords; private PayoutService payouts; private PlanService plans; private PriceService prices; @@ -200,6 +202,9 @@ internal V1Services(IStripeClient client) public virtual MandateService Mandates => this.mandates ??= new MandateService( this.Requestor); + public virtual PaymentAttemptRecordService PaymentAttemptRecords => this.paymentAttemptRecords ??= new PaymentAttemptRecordService( + this.Requestor); + public virtual PaymentIntentService PaymentIntents => this.paymentIntents ??= new PaymentIntentService( this.Requestor); @@ -215,6 +220,9 @@ internal V1Services(IStripeClient client) public virtual PaymentMethodDomainService PaymentMethodDomains => this.paymentMethodDomains ??= new PaymentMethodDomainService( this.Requestor); + public virtual PaymentRecordService PaymentRecords => this.paymentRecords ??= new PaymentRecordService( + this.Requestor); + public virtual PayoutService Payouts => this.payouts ??= new PayoutService( this.Requestor); diff --git a/src/Stripe.net/Services/V2/Core/Events/EventListOptions.cs b/src/Stripe.net/Services/V2/Core/Events/EventListOptions.cs index 49db479c1a..db38556e8c 100644 --- a/src/Stripe.net/Services/V2/Core/Events/EventListOptions.cs +++ b/src/Stripe.net/Services/V2/Core/Events/EventListOptions.cs @@ -1,6 +1,8 @@ // File generated from our OpenAPI spec namespace Stripe.V2.Core { + using System; + using System.Collections.Generic; using Newtonsoft.Json; #if NET6_0_OR_GREATER using STJS = System.Text.Json.Serialization; @@ -8,6 +10,42 @@ namespace Stripe.V2.Core public class EventListOptions : V2.ListOptions { + /// + /// Filter for events created after the specified timestamp. + /// + [JsonProperty("gt")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("gt")] +#endif + public DateTime? Gt { get; set; } + + /// + /// Filter for events created at or after the specified timestamp. + /// + [JsonProperty("gte")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("gte")] +#endif + public DateTime? Gte { get; set; } + + /// + /// Filter for events created before the specified timestamp. + /// + [JsonProperty("lt")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("lt")] +#endif + public DateTime? Lt { get; set; } + + /// + /// Filter for events created at or before the specified timestamp. + /// + [JsonProperty("lte")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("lte")] +#endif + public DateTime? Lte { get; set; } + /// /// Primary object ID used to retrieve related events. /// @@ -16,5 +54,14 @@ public class EventListOptions : V2.ListOptions [STJS.JsonPropertyName("object_id")] #endif public string ObjectId { get; set; } + + /// + /// An array of up to 20 strings containing specific event names. + /// + [JsonProperty("types")] +#if NET6_0_OR_GREATER + [STJS.JsonPropertyName("types")] +#endif + public List Types { get; set; } } } diff --git a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs index ca44906800..de5b267fbc 100644 --- a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs +++ b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs @@ -41,8 +41,8 @@ public class WebhookEndpointCreateOptions : BaseOptions, IHasMetadata /// 2024-10-28.acacia, 2024-11-20.acacia, 2024-12-18.acacia, /// 2025-01-27.acacia, 2025-02-24.acacia, 2025-03-01.dashboard, /// 2025-03-31.basil, 2025-04-30.basil, 2025-05-28.basil, - /// 2025-06-30.basil, 2025-07-30.basil, 2025-08-27.basil, or - /// 2025-09-30.clover. + /// 2025-06-30.basil, 2025-07-30.basil, 2025-08-27.basil, + /// 2025-09-30.clover, or 2025-10-29.clover. /// [JsonProperty("api_version")] #if NET6_0_OR_GREATER @@ -77,8 +77,8 @@ public class WebhookEndpointCreateOptions : BaseOptions, IHasMetadata /// account.external_account.deleted, account.external_account.updated, /// account.updated, application_fee.created, /// application_fee.refund.updated, application_fee.refunded, - /// balance.available, billing.alert.triggered, - /// billing_portal.configuration.created, + /// balance.available, balance_settings.updated, + /// billing.alert.triggered, billing_portal.configuration.created, /// billing_portal.configuration.updated, billing_portal.session.created, /// capability.updated, cash_balance.funds_available, charge.captured, /// charge.dispute.closed, charge.dispute.created, @@ -123,17 +123,17 @@ public class WebhookEndpointCreateOptions : BaseOptions, IHasMetadata /// invoice.deleted, invoice.finalization_failed, invoice.finalized, /// invoice.marked_uncollectible, invoice.overdue, invoice.overpaid, /// invoice.paid, invoice.payment_action_required, - /// invoice.payment_failed, invoice.payment_succeeded, invoice.sent, - /// invoice.upcoming, invoice.updated, invoice.voided, - /// invoice.will_be_due, invoice_payment.paid, invoiceitem.created, - /// invoiceitem.deleted, issuing_authorization.created, - /// issuing_authorization.request, issuing_authorization.updated, - /// issuing_card.created, issuing_card.updated, - /// issuing_cardholder.created, issuing_cardholder.updated, - /// issuing_dispute.closed, issuing_dispute.created, - /// issuing_dispute.funds_reinstated, issuing_dispute.funds_rescinded, - /// issuing_dispute.submitted, issuing_dispute.updated, - /// issuing_personalization_design.activated, + /// invoice.payment_attempt_required, invoice.payment_failed, + /// invoice.payment_succeeded, invoice.sent, invoice.upcoming, + /// invoice.updated, invoice.voided, invoice.will_be_due, + /// invoice_payment.paid, invoiceitem.created, invoiceitem.deleted, + /// issuing_authorization.created, issuing_authorization.request, + /// issuing_authorization.updated, issuing_card.created, + /// issuing_card.updated, issuing_cardholder.created, + /// issuing_cardholder.updated, issuing_dispute.closed, + /// issuing_dispute.created, issuing_dispute.funds_reinstated, + /// issuing_dispute.funds_rescinded, issuing_dispute.submitted, + /// issuing_dispute.updated, issuing_personalization_design.activated, /// issuing_personalization_design.deactivated, /// issuing_personalization_design.rejected, /// issuing_personalization_design.updated, issuing_token.created, diff --git a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs index 0e1da9ffd9..065ab55d4a 100644 --- a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs +++ b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs @@ -35,8 +35,8 @@ public class WebhookEndpointUpdateOptions : BaseOptions, IHasMetadata /// account.external_account.deleted, account.external_account.updated, /// account.updated, application_fee.created, /// application_fee.refund.updated, application_fee.refunded, - /// balance.available, billing.alert.triggered, - /// billing_portal.configuration.created, + /// balance.available, balance_settings.updated, + /// billing.alert.triggered, billing_portal.configuration.created, /// billing_portal.configuration.updated, billing_portal.session.created, /// capability.updated, cash_balance.funds_available, charge.captured, /// charge.dispute.closed, charge.dispute.created, @@ -81,17 +81,17 @@ public class WebhookEndpointUpdateOptions : BaseOptions, IHasMetadata /// invoice.deleted, invoice.finalization_failed, invoice.finalized, /// invoice.marked_uncollectible, invoice.overdue, invoice.overpaid, /// invoice.paid, invoice.payment_action_required, - /// invoice.payment_failed, invoice.payment_succeeded, invoice.sent, - /// invoice.upcoming, invoice.updated, invoice.voided, - /// invoice.will_be_due, invoice_payment.paid, invoiceitem.created, - /// invoiceitem.deleted, issuing_authorization.created, - /// issuing_authorization.request, issuing_authorization.updated, - /// issuing_card.created, issuing_card.updated, - /// issuing_cardholder.created, issuing_cardholder.updated, - /// issuing_dispute.closed, issuing_dispute.created, - /// issuing_dispute.funds_reinstated, issuing_dispute.funds_rescinded, - /// issuing_dispute.submitted, issuing_dispute.updated, - /// issuing_personalization_design.activated, + /// invoice.payment_attempt_required, invoice.payment_failed, + /// invoice.payment_succeeded, invoice.sent, invoice.upcoming, + /// invoice.updated, invoice.voided, invoice.will_be_due, + /// invoice_payment.paid, invoiceitem.created, invoiceitem.deleted, + /// issuing_authorization.created, issuing_authorization.request, + /// issuing_authorization.updated, issuing_card.created, + /// issuing_card.updated, issuing_cardholder.created, + /// issuing_cardholder.updated, issuing_dispute.closed, + /// issuing_dispute.created, issuing_dispute.funds_reinstated, + /// issuing_dispute.funds_rescinded, issuing_dispute.submitted, + /// issuing_dispute.updated, issuing_personalization_design.activated, /// issuing_personalization_design.deactivated, /// issuing_personalization_design.rejected, /// issuing_personalization_design.updated, issuing_token.created, diff --git a/src/StripeTests/Services/GeneratedExamplesTest.cs b/src/StripeTests/Services/GeneratedExamplesTest.cs index 12e3a0d7f7..74d295d303 100644 --- a/src/StripeTests/Services/GeneratedExamplesTest.cs +++ b/src/StripeTests/Services/GeneratedExamplesTest.cs @@ -3093,6 +3093,22 @@ public void TestPromotionCodesGet2() [Fact] public void TestPromotionCodesPost() + { + var options = new PromotionCodeCreateOptions + { + Promotion = new PromotionCodePromotionOptions + { + Type = "coupon", + Coupon = "Z4OV52SU", + }, + }; + var service = new PromotionCodeService(this.StripeClient); + PromotionCode promotionCode = service.Create(options); + this.AssertRequest(HttpMethod.Post, "/v1/promotion_codes"); + } + + [Fact] + public void TestPromotionCodesPost2() { var options = new PromotionCodeUpdateOptions { @@ -6246,20 +6262,11 @@ public void TestV2CoreEventGet() HttpMethod.Get, "/v2/core/events", (HttpStatusCode)200, - "{\"data\":[{\"id\":\"obj_123\",\"object\":\"v2.core.event\",\"created\":\"1970-01-12T21:42:34.472Z\",\"livemode\":true,\"type\":\"type\"}],\"next_page_url\":null,\"previous_page_url\":null}", - "object_id=object_id"); - var options = new Stripe.V2.Core.EventListOptions - { - ObjectId = "object_id", - }; + "{\"data\":[{\"id\":\"obj_123\",\"object\":\"v2.core.event\",\"created\":\"1970-01-12T21:42:34.472Z\",\"livemode\":true,\"type\":\"type\"}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.Core.Events; - Stripe.V2.StripeList events = service.List( - options); - this.AssertRequest( - HttpMethod.Get, - "/v2/core/events", - "object_id=object_id"); + Stripe.V2.StripeList events = service.List(); + this.AssertRequest(HttpMethod.Get, "/v2/core/events"); } [Fact]