diff --git a/CHANGELOG.md b/CHANGELOG.md index bd2ece2cda..d007c80035 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,6 +78,29 @@ This release changes the pinned API version to 2026-06-24.preview. * Add support for event notification `V2MoneyManagementOutboundTransferUnderReviewEvent` with related object `V2.MoneyManagement.OutboundTransfer` * ⚠️ Remove support for event notifications `V2CoreAccountIncludingConfigurationStorerCapabilityStatusUpdatedEvent` and `V2CoreAccountIncludingConfigurationStorerUpdatedEvent` with related object `V2.Core.Account` +## 52.1.0 - 2026-06-24 +This release changes the pinned API version to 2026-06-24.dahlia. + +* [#3399](https://github.com/stripe/stripe-dotnet/pull/3399) Update generated code + * Add support for `ReleaseDetails` on `Reserve.Hold` + * Add support for `BuyerId` on `Charge.PaymentMethodDetails.Bizum`, `ConfirmationToken.PaymentMethodPreview.Bizum`, `ConfirmationToken.PaymentMethodPreview.Blik`, `PaymentAttemptRecord.PaymentMethodDetails.Bizum`, `PaymentMethod.Bizum`, `PaymentMethod.Blik`, and `PaymentRecord.PaymentMethodDetails.Bizum` + * Add support for `TransactionLinkId` on `Charge.PaymentMethodDetails.Card` + * Add support for `Fingerprint` on `Charge.PaymentMethodDetails.Pix`, `ConfirmationToken.PaymentMethodPreview.Pix`, `PaymentMethod.Pix`, and `SetupAttempt.PaymentMethodDetails.Pix` + * Add support for `Sunbit` on `Checkout.Session.PaymentMethodOptions`, `CheckoutSessionPaymentMethodOptionsOptions`, `PaymentIntent.PaymentMethodOptions`, and `PaymentIntentPaymentMethodOptionsOptions` + * Add support for `BillingCycleAnchorConfig` on `CheckoutSessionSubscriptionDataOptions` + * Add support for `WechatPay` on `Checkout.Session.PaymentMethodOptions` + * Add support for `MastercardCompliance` on `Dispute.Evidence.EnhancedEvidence`, `Dispute.EvidenceDetails.EnhancedEligibility`, and `DisputeEvidenceEnhancedEvidenceOptions` + * Add support for `StatusDetails` on `FinancialConnections.Account` + * ⚠️ Remove support for `StoredCredentialUsage` on `PaymentAttemptRecord.PaymentMethodDetails.Card` and `PaymentRecord.PaymentMethodDetails.Card` + * Add support for `SetupFutureUsage` on `PaymentIntent.PaymentMethodOptions.Satispay` and `PaymentIntentPaymentMethodOptionsSatispayOptions` + * Add support for `Satispay` on `SetupAttempt.PaymentMethodDetails` + * Add support for `CustomFields`, `Description`, and `Footer` on `Subscription.InvoiceSettings` and `SubscriptionInvoiceSettingsOptions` + * Add support for `PaymentMethodOptions` and `PaymentMethod` on `TopupCreateOptions` + * Add support for `Mode` on `V2.Commerce.ProductCatalogImport` + * Add support for `SunbitPayments` on `V2.Core.Account.Configuration.Merchant.Capabilities` and `V2CoreAccountConfigurationMerchantCapabilitiesOptions` + * Add support for `CryptoMoneyManager` and `MoneyManager` on `V2CoreAccountIdentityAttestationsTermsOfServiceOptions` + * ⚠️ Remove support for `CryptoStorer` and `Storer` on `V2CoreAccountIdentityAttestationsTermsOfServiceOptions` + ## 52.1.0-alpha.2 - 2026-06-17 * [#3397](https://github.com/stripe/stripe-dotnet/pull/3397) Update generated code for private-preview * Add support for `Get` method on resource `Radar.CustomerEvaluation` diff --git a/CODEGEN_VERSION b/CODEGEN_VERSION index 308e72af1a..001f568a9d 100644 --- a/CODEGEN_VERSION +++ b/CODEGEN_VERSION @@ -1 +1 @@ -088388aa159596ba4e240aeb0bb65d5bb4a562ab \ No newline at end of file +23a0d1c154d81b4b4185658446b2ee07f06f969a \ No newline at end of file diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index c22138244c..7b59154f38 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v2323 \ No newline at end of file +v2342 \ No newline at end of file diff --git a/src/Stripe.net/Constants/ApiVersion.cs b/src/Stripe.net/Constants/ApiVersion.cs index 740e4bc93e..d732dd8a12 100644 --- a/src/Stripe.net/Constants/ApiVersion.cs +++ b/src/Stripe.net/Constants/ApiVersion.cs @@ -3,6 +3,6 @@ namespace Stripe { internal class ApiVersion { - public const string Current = "2026-06-24.preview"; + public const string Current = "2026-07-01.preview"; } } \ No newline at end of file diff --git a/src/Stripe.net/Constants/EventTypes.cs b/src/Stripe.net/Constants/EventTypes.cs index 00149fa025..377123e864 100644 --- a/src/Stripe.net/Constants/EventTypes.cs +++ b/src/Stripe.net/Constants/EventTypes.cs @@ -469,8 +469,13 @@ public static class EventTypes public const string CustomerSubscriptionResumed = "customer.subscription.resumed"; /// - /// Occurs three days before a subscription's trial period is scheduled to end, or when a - /// trial is ended immediately (using trial_end=now). + /// Occurs three days before a subscription's trial period is scheduled to end, or + /// immediately when a trial is ended early (for example, with trial_end=now or when + /// a Customer Portal plan change ends a trial). If a trial is shortened so that fewer than + /// three days remain, this event can fire immediately, including during the same + /// transaction that collects payment. Before sending payment-reminder communications from + /// this webhook, check the subscription status and latest invoice to determine whether + /// payment has already been collected. /// public const string CustomerSubscriptionTrialWillEnd = "customer.subscription.trial_will_end"; diff --git a/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs b/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs index 76b8948a2f..eb0c000d4c 100644 --- a/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs +++ b/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs @@ -175,13 +175,13 @@ public IBalanceTransactionSource Source public string Status { get; set; } /// - /// Transaction type: adjustment, advance, advance_funding, - /// anticipation_repayment, application_fee, application_fee_refund, - /// charge, climate_order_purchase, climate_order_refund, - /// connect_collection_transfer, contribution, inbound_transfer, - /// inbound_transfer_reversal, issuing_authorization_hold, - /// issuing_authorization_release, issuing_dispute, - /// issuing_transaction, obligation_outbound, + /// Transaction type: tax_fund, adjustment, advance, + /// advance_funding, anticipation_repayment, application_fee, + /// application_fee_refund, charge, climate_order_purchase, + /// climate_order_refund, connect_collection_transfer, contribution, + /// inbound_transfer, inbound_transfer_reversal, + /// issuing_authorization_hold, issuing_authorization_release, + /// issuing_dispute, issuing_transaction, obligation_outbound, /// obligation_reversal_inbound, payment, payment_failure_refund, /// payment_network_reserve_hold, payment_network_reserve_release, /// payment_refund, payment_reversal, payment_unreconciled, @@ -211,7 +211,7 @@ public IBalanceTransactionSource Source /// refund, refund_failure, reserve_hold, reserve_release, /// reserve_transaction, reserved_funds, stripe_balance_payment_debit, /// stripe_balance_payment_debit_reversal, stripe_fee, stripe_fx_fee, - /// tax_fee, topup, topup_reversal, transfer, + /// tax_fee, tax_fund, topup, topup_reversal, transfer, /// transfer_cancel, transfer_failure, or transfer_refund. /// [JsonProperty("type")] diff --git a/src/Stripe.net/Entities/Capital/FinancingOffers/FinancingOffer.cs b/src/Stripe.net/Entities/Capital/FinancingOffers/FinancingOffer.cs index 9854bc86b6..6123892afa 100644 --- a/src/Stripe.net/Entities/Capital/FinancingOffers/FinancingOffer.cs +++ b/src/Stripe.net/Entities/Capital/FinancingOffers/FinancingOffer.cs @@ -63,6 +63,17 @@ public class FinancingOffer : StripeEntity, IHasId, IHasMetadata [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + /// + /// The type of disclaimer to use for a financing offer in user-facing surfaces. The + /// corresponding disclaimer text to use for each disclaimer_variant value can be found in + /// the marketing docs. + /// One of: celtic_us_loan, fundbox_au_financing, youlend_de_financing, + /// youlend_fr_financing, youlend_uk_mca, or youlend_us_mca. + /// + [JsonProperty("disclaimer_variant")] + [STJS.JsonPropertyName("disclaimer_variant")] + public string DisclaimerVariant { get; set; } + /// /// Time at which the offer expires. Given in seconds since unix epoch. /// diff --git a/src/Stripe.net/Entities/Capital/FinancingSummaries/FinancingSummaryDetails.cs b/src/Stripe.net/Entities/Capital/FinancingSummaries/FinancingSummaryDetails.cs index ee8ba5b2d4..042c3b4f00 100644 --- a/src/Stripe.net/Entities/Capital/FinancingSummaries/FinancingSummaryDetails.cs +++ b/src/Stripe.net/Entities/Capital/FinancingSummaries/FinancingSummaryDetails.cs @@ -38,6 +38,18 @@ public class FinancingSummaryDetails : StripeEntity [STJS.JsonPropertyName("current_repayment_interval")] public FinancingSummaryDetailsCurrentRepaymentInterval CurrentRepaymentInterval { get; set; } + /// + /// The type of disclaimer to use for a financing offer in user-facing surfaces. The + /// corresponding disclaimer text to use for each disclaimer_variant value can be found in + /// the regulatory + /// compliance docs. + /// One of: celtic_us_loan, fundbox_au_financing, youlend_de_financing, + /// youlend_fr_financing, youlend_uk_mca, or youlend_us_mca. + /// + [JsonProperty("disclaimer_variant")] + [STJS.JsonPropertyName("disclaimer_variant")] + public string DisclaimerVariant { get; set; } + /// /// Fixed fee amount, in minor units. For example, 100 USD is represented as 10000. /// diff --git a/src/Stripe.net/Entities/Cards/Card.cs b/src/Stripe.net/Entities/Cards/Card.cs index fba1182582..d2968a8104 100644 --- a/src/Stripe.net/Entities/Cards/Card.cs +++ b/src/Stripe.net/Entities/Cards/Card.cs @@ -339,6 +339,13 @@ public Customer Customer [STJS.JsonPropertyName("networks")] public CardNetworks Networks { get; set; } + /// + /// Redaction status of this card. If not null, this card is associated to a redaction job. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public CardRedaction Redaction { get; set; } + /// /// Status of a card based on the card issuer. /// One of: regulated, or unregulated. diff --git a/src/Stripe.net/Entities/Cards/CardRedaction.cs b/src/Stripe.net/Entities/Cards/CardRedaction.cs new file mode 100644 index 0000000000..9f0422b853 --- /dev/null +++ b/src/Stripe.net/Entities/Cards/CardRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CardRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Charges/Charge.cs b/src/Stripe.net/Entities/Charges/Charge.cs index b0bd98f6d4..2b1c8725bf 100644 --- a/src/Stripe.net/Entities/Charges/Charge.cs +++ b/src/Stripe.net/Entities/Charges/Charge.cs @@ -505,6 +505,14 @@ public PaymentIntent PaymentIntent [STJS.JsonPropertyName("receipt_url")] public string ReceiptUrl { get; set; } + /// + /// Redaction status of this charge. If not null, this charge is associated to a redaction + /// job. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public ChargeRedaction Redaction { get; set; } + /// /// Whether the charge has been fully refunded. If the charge is only partially refunded, /// this attribute will still be false. diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsBizum.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsBizum.cs index 7902a803cb..d5350d137c 100644 --- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsBizum.cs +++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsBizum.cs @@ -8,6 +8,13 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class ChargePaymentMethodDetailsBizum : StripeEntity { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } + /// /// The Bizum transaction ID associated with this payment. /// diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCard.cs index ca28009c02..087b19c34f 100644 --- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCard.cs +++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCard.cs @@ -84,6 +84,16 @@ public class ChargePaymentMethodDetailsCard : StripeEntity + /// The Electronic Commerce Indicator (ECI) returned by the card network in the + /// authorization response. Indicates the level of authentication used. Only populated for + /// Visa and Mastercard transactions. The response value is the source of truth; it may + /// differ from the request value if the network downgraded the transaction. + /// + [JsonProperty("electronic_commerce_indicator")] + [STJS.JsonPropertyName("electronic_commerce_indicator")] + public string ElectronicCommerceIndicator { get; set; } + /// /// Two-digit number representing the card's expiration month. /// @@ -246,6 +256,16 @@ public class ChargePaymentMethodDetailsCard : StripeEntity + /// Transaction Link ID (TLID) is a unique identifier for a transaction. This is used by + /// some card networks, such as Mastercard, for transaction linking, in addition to Network + /// Transaction IDs. This value will be present if it is returned by the financial network + /// in the authorization response, and null otherwise. + /// + [JsonProperty("transaction_link_id")] + [STJS.JsonPropertyName("transaction_link_id")] + public string TransactionLinkId { get; set; } + /// /// If this Card is part of a card wallet, this contains the details of the card wallet. /// diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs index de7e39573d..19cf7e34e5 100644 --- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs +++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsCrypto.cs @@ -8,6 +8,20 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class ChargePaymentMethodDetailsCrypto : StripeEntity { + /// + /// The amount received for the crypto payment. + /// + [JsonProperty("amount_received")] + [STJS.JsonPropertyName("amount_received")] + public long AmountReceived { get; set; } + + /// + /// The amount requested for the crypto payment. + /// + [JsonProperty("amount_requested")] + [STJS.JsonPropertyName("amount_requested")] + public long AmountRequested { get; set; } + /// /// The wallet address of the customer. /// @@ -17,7 +31,8 @@ public class ChargePaymentMethodDetailsCrypto : StripeEntity /// The blockchain network that the transaction was sent on. - /// One of: base, ethereum, polygon, solana, or tempo. + /// One of: base, ethereum, polygon, solana, sui, or + /// tempo. /// [JsonProperty("network")] [STJS.JsonPropertyName("network")] @@ -25,7 +40,8 @@ public class ChargePaymentMethodDetailsCrypto : StripeEntity /// The token currency that the transaction was sent with. - /// One of: phantom_cash, usdc, usdg, usdp, or usdt. + /// One of: phantom_cash, usdc, usdg, usdp, usdsui, or + /// usdt. /// [JsonProperty("token_currency")] [STJS.JsonPropertyName("token_currency")] diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsGiftCard.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsGiftCard.cs index 9f2b19bcf1..001e3dbae6 100644 --- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsGiftCard.cs +++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsGiftCard.cs @@ -34,6 +34,14 @@ public class ChargePaymentMethodDetailsGiftCard : StripeEntity + /// Uniquely identifies this particular gift card number. You can use this attribute to + /// check whether two transactions were made using the same gift card. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } + /// /// The first six digits of the gift card number. /// diff --git a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsPix.cs b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsPix.cs index 4a69313412..2a2abfc1c1 100644 --- a/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsPix.cs +++ b/src/Stripe.net/Entities/Charges/ChargePaymentMethodDetailsPix.cs @@ -15,6 +15,14 @@ public class ChargePaymentMethodDetailsPix : StripeEntity + /// Uniquely identifies this particular Pix account. You can use this attribute to check + /// whether two Pix accounts are the same. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } + /// /// ID of the multi use Mandate generated by the PaymentIntent. /// diff --git a/src/Stripe.net/Entities/Charges/ChargeRedaction.cs b/src/Stripe.net/Entities/Charges/ChargeRedaction.cs new file mode 100644 index 0000000000..72bece0fc8 --- /dev/null +++ b/src/Stripe.net/Entities/Charges/ChargeRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class ChargeRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/Session.cs b/src/Stripe.net/Entities/Checkout/Sessions/Session.cs index 3c84fa91ca..a5b8357451 100644 --- a/src/Stripe.net/Entities/Checkout/Sessions/Session.cs +++ b/src/Stripe.net/Entities/Checkout/Sessions/Session.cs @@ -641,6 +641,14 @@ public PaymentRecord PaymentRecord [STJS.JsonPropertyName("recovered_from")] public string RecoveredFrom { get; set; } + /// + /// The redaction status of the Checkout Session. If the Session is not redacted, this field + /// is null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public SessionRedaction Redaction { get; set; } + /// /// This parameter applies to ui_mode: embedded_page. Learn more about the redirect diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionItem.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionItem.cs index 969dbbcf43..43d2ec9056 100644 --- a/src/Stripe.net/Entities/Checkout/Sessions/SessionItem.cs +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionItem.cs @@ -15,6 +15,13 @@ public class SessionItem : StripeEntity [STJS.JsonPropertyName("key")] public string Key { get; set; } + /// + /// Details on the subscription for this item. + /// + [JsonProperty("subscription")] + [STJS.JsonPropertyName("subscription")] + public SessionItemSubscription Subscription { get; set; } + /// /// The type of the item. /// diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscription.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscription.cs new file mode 100644 index 0000000000..e135858c09 --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscription.cs @@ -0,0 +1,107 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionItemSubscription : StripeEntity, IHasMetadata + { + /// + /// The description for the subscription. + /// + [JsonProperty("description")] + [STJS.JsonPropertyName("description")] + public string Description { get; set; } + + /// + /// The items in the subscription. + /// + [JsonProperty("items")] + [STJS.JsonPropertyName("items")] + public List Items { get; set; } + + /// + /// Set of key-value pairs attached to the subscription. + /// + [JsonProperty("metadata")] + [STJS.JsonPropertyName("metadata")] + public Dictionary Metadata { get; set; } + + /// + /// Specifies an interval for how often to bill for any pending invoice items. + /// + [JsonProperty("pending_invoice_item_interval")] + [STJS.JsonPropertyName("pending_invoice_item_interval")] + public SessionItemSubscriptionPendingInvoiceItemInterval PendingInvoiceItemInterval { get; set; } + + /// + /// Determines how to handle prorations when the subscription is updated. + /// One of: create_prorations, or none. + /// + [JsonProperty("proration_behavior")] + [STJS.JsonPropertyName("proration_behavior")] + public string ProrationBehavior { get; set; } + + #region Expandable Subscription + + /// + /// (ID of the Subscription) + /// The ID of the Subscription. + /// + [JsonIgnore] + [STJS.JsonIgnore] + public string SubscriptionId + { + get => this.InternalSubscription?.Id; + set => this.InternalSubscription = SetExpandableFieldId(value, this.InternalSubscription); + } + + /// + /// (Expanded) + /// The ID of the Subscription. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] + [STJS.JsonIgnore] + public Subscription Subscription + { + get => this.InternalSubscription?.ExpandedObject; + set => this.InternalSubscription = SetExpandableFieldObject(value, this.InternalSubscription); + } + + [JsonProperty("subscription")] + [JsonConverter(typeof(ExpandableFieldConverter))] + [STJS.JsonPropertyName("subscription")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] + internal ExpandableField InternalSubscription { get; set; } + #endregion + + /// + /// The Unix timestamp marking when the trial period ends. + /// + [JsonProperty("trial_end")] + [JsonConverter(typeof(UnixDateTimeConverter))] + [STJS.JsonPropertyName("trial_end")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] + public DateTime? TrialEnd { get; set; } + + /// + /// The number of trial period days before the customer is charged for the first time. + /// + [JsonProperty("trial_period_days")] + [STJS.JsonPropertyName("trial_period_days")] + public long? TrialPeriodDays { get; set; } + + /// + /// Settings related to subscription trials. + /// + [JsonProperty("trial_settings")] + [STJS.JsonPropertyName("trial_settings")] + public SessionItemSubscriptionTrialSettings TrialSettings { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionItem.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionItem.cs new file mode 100644 index 0000000000..7cae21bc0c --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionItem.cs @@ -0,0 +1,53 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionItemSubscriptionItem : StripeEntity + { + #region Expandable Price + + /// + /// (ID of the Price) + /// The price for this subscription item. + /// + [JsonIgnore] + [STJS.JsonIgnore] + public string PriceId + { + get => this.InternalPrice?.Id; + set => this.InternalPrice = SetExpandableFieldId(value, this.InternalPrice); + } + + /// + /// (Expanded) + /// The price for this subscription item. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] + [STJS.JsonIgnore] + public Price Price + { + get => this.InternalPrice?.ExpandedObject; + set => this.InternalPrice = SetExpandableFieldObject(value, this.InternalPrice); + } + + [JsonProperty("price")] + [JsonConverter(typeof(ExpandableFieldConverter))] + [STJS.JsonPropertyName("price")] + [STJS.JsonConverter(typeof(STJExpandableFieldConverter))] + internal ExpandableField InternalPrice { get; set; } + #endregion + + /// + /// The quantity for this subscription item. + /// + [JsonProperty("quantity")] + [STJS.JsonPropertyName("quantity")] + public long? Quantity { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionPendingInvoiceItemInterval.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionPendingInvoiceItemInterval.cs new file mode 100644 index 0000000000..7c6295c973 --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionPendingInvoiceItemInterval.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionItemSubscriptionPendingInvoiceItemInterval : StripeEntity + { + /// + /// Specifies invoicing frequency. Either day, week, month or + /// year. + /// One of: day, month, week, or year. + /// + [JsonProperty("interval")] + [STJS.JsonPropertyName("interval")] + public string Interval { get; set; } + + /// + /// The number of intervals between invoices. For example, interval=month and + /// interval_count=3 bills every 3 months. Maximum of one year interval allowed (1 + /// year, 12 months, or 52 weeks). + /// + [JsonProperty("interval_count")] + [STJS.JsonPropertyName("interval_count")] + public long IntervalCount { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionTrialSettings.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionTrialSettings.cs new file mode 100644 index 0000000000..2ff0c1a457 --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionTrialSettings.cs @@ -0,0 +1,18 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionItemSubscriptionTrialSettings : StripeEntity + { + /// + /// Defines how a subscription behaves when a free trial ends. + /// + [JsonProperty("end_behavior")] + [STJS.JsonPropertyName("end_behavior")] + public SessionItemSubscriptionTrialSettingsEndBehavior EndBehavior { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionTrialSettingsEndBehavior.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionTrialSettingsEndBehavior.cs new file mode 100644 index 0000000000..0d3cdc64fc --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionItemSubscriptionTrialSettingsEndBehavior.cs @@ -0,0 +1,20 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionItemSubscriptionTrialSettingsEndBehavior : StripeEntity + { + /// + /// Indicates how the subscription should change when the trial ends if the user did not + /// provide a payment method. + /// One of: cancel, create_invoice, or pause. + /// + [JsonProperty("missing_payment_method")] + [STJS.JsonPropertyName("missing_payment_method")] + public string MissingPaymentMethod { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs index a64ec799f6..6e60333edd 100644 --- a/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptions.cs @@ -172,6 +172,10 @@ public class SessionPaymentMethodOptions : StripeEntity + { + /// + /// Controls when the funds will be captured from the customer's account. + /// + [JsonProperty("capture_method")] + [STJS.JsonPropertyName("capture_method")] + public string CaptureMethod { get; set; } + + /// + /// 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")] + [STJS.JsonPropertyName("setup_future_usage")] + public string SetupFutureUsage { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptionsWechatPay.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptionsWechatPay.cs new file mode 100644 index 0000000000..103ba955b1 --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionPaymentMethodOptionsWechatPay.cs @@ -0,0 +1,50 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionPaymentMethodOptionsWechatPay : StripeEntity + { + /// + /// The app ID registered with WeChat Pay. Only required when client is iOS or Android. + /// + [JsonProperty("app_id")] + [STJS.JsonPropertyName("app_id")] + public string AppId { get; set; } + + /// + /// The client type that the end customer will pay from. + /// One of: android, ios, or web. + /// + [JsonProperty("client")] + [STJS.JsonPropertyName("client")] + public string Client { get; set; } + + /// + /// 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")] + [STJS.JsonPropertyName("setup_future_usage")] + public string SetupFutureUsage { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Checkout/Sessions/SessionRedaction.cs b/src/Stripe.net/Entities/Checkout/Sessions/SessionRedaction.cs new file mode 100644 index 0000000000..a429602c02 --- /dev/null +++ b/src/Stripe.net/Entities/Checkout/Sessions/SessionRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SessionRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBizum.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBizum.cs index 64cabee29d..feb5026cb0 100644 --- a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBizum.cs +++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBizum.cs @@ -8,5 +8,11 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class ConfirmationTokenPaymentMethodPreviewBizum : StripeEntity { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } } } diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBlik.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBlik.cs index 8550e9d5e0..7902300d1c 100644 --- a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBlik.cs +++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewBlik.cs @@ -8,5 +8,11 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class ConfirmationTokenPaymentMethodPreviewBlik : StripeEntity { + /// + /// A unique and immutable identifier assigned by BLIK to every buyer. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } } } diff --git a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewPix.cs b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewPix.cs index 648c256d65..5bdaf6b914 100644 --- a/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewPix.cs +++ b/src/Stripe.net/Entities/ConfirmationTokens/ConfirmationTokenPaymentMethodPreviewPix.cs @@ -8,5 +8,12 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class ConfirmationTokenPaymentMethodPreviewPix : StripeEntity { + /// + /// Uniquely identifies this particular Pix account. You can use this attribute to check + /// whether two Pix accounts are the same. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } } } diff --git a/src/Stripe.net/Entities/Crypto/CustomerConsumerWallets/CustomerConsumerWallet.cs b/src/Stripe.net/Entities/Crypto/CustomerConsumerWallets/CustomerConsumerWallet.cs new file mode 100644 index 0000000000..79cd68e08a --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/CustomerConsumerWallets/CustomerConsumerWallet.cs @@ -0,0 +1,60 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + /// + /// A consumer wallet represents a cryptocurrency wallet address associated with a Crypto + /// Customer. + /// + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerConsumerWallet : StripeEntity, IHasId, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] + [STJS.JsonPropertyName("id")] + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + [STJS.JsonPropertyName("object")] + public string Object { get; set; } + + /// + /// If the object exists in live mode, the value is true. If the object exists in + /// test mode, the value is false. + /// + [JsonProperty("livemode")] + [STJS.JsonPropertyName("livemode")] + public bool Livemode { get; set; } + + /// + /// The blockchain network for this wallet. + /// One of: aptos, avalanche, base, bitcoin, ethereum, + /// optimism, polygon, solana, stellar, or worldchain. + /// + [JsonProperty("network")] + [STJS.JsonPropertyName("network")] + public string Network { get; set; } + + /// + /// Whether ownership of this wallet has been verified. + /// + [JsonProperty("verified_ownership")] + [STJS.JsonPropertyName("verified_ownership")] + public bool VerifiedOwnership { get; set; } + + /// + /// The wallet address. + /// + [JsonProperty("wallet_address")] + [STJS.JsonPropertyName("wallet_address")] + public string WalletAddress { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentToken.cs b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentToken.cs new file mode 100644 index 0000000000..dbbf4517e9 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentToken.cs @@ -0,0 +1,52 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + /// + /// A read-only representation of a user's PaymentMethod for use in Crypto On Ramp + /// transactions. + /// + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerPaymentToken : StripeEntity, IHasId, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] + [STJS.JsonPropertyName("id")] + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + [STJS.JsonPropertyName("object")] + public string Object { get; set; } + + /// + /// A card PaymentToken, this hash contains details of the card PaymentToken. + /// + [JsonProperty("card")] + [STJS.JsonPropertyName("card")] + public CustomerPaymentTokenCard Card { get; set; } + + /// + /// Type of the Payment Token. + /// One of: card, or us_bank_account. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + + /// + /// A us_bank_account PaymentToken, this hash contains details of the US bank account + /// PaymentToken. + /// + [JsonProperty("us_bank_account")] + [STJS.JsonPropertyName("us_bank_account")] + public CustomerPaymentTokenUsBankAccount UsBankAccount { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenCard.cs b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenCard.cs new file mode 100644 index 0000000000..51c08eebda --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenCard.cs @@ -0,0 +1,56 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerPaymentTokenCard : StripeEntity + { + /// + /// Card brand. Can be amex, cartes_bancaires, diners, discover, + /// eftpos_au, jcb, link, mastercard, unionpay, + /// visa or unknown. + /// + [JsonProperty("brand")] + [STJS.JsonPropertyName("brand")] + public string Brand { get; set; } + + /// + /// Two-digit number representing the card’s expiration month. + /// + [JsonProperty("exp_month")] + [STJS.JsonPropertyName("exp_month")] + public long? ExpMonth { get; set; } + + /// + /// Four-digit number representing the card’s expiration year. + /// + [JsonProperty("exp_year")] + [STJS.JsonPropertyName("exp_year")] + public long? ExpYear { get; set; } + + /// + /// Card funding type. Can be credit, debit, prepaid, or + /// unknown. + /// + [JsonProperty("funding")] + [STJS.JsonPropertyName("funding")] + public string Funding { get; set; } + + /// + /// The last four digits of the card. + /// + [JsonProperty("last4")] + [STJS.JsonPropertyName("last4")] + public string Last4 { get; set; } + + /// + /// If this Card is part of a card wallet, this contains the details of the card wallet. + /// + [JsonProperty("wallet")] + [STJS.JsonPropertyName("wallet")] + public CustomerPaymentTokenCardWallet Wallet { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenCardWallet.cs b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenCardWallet.cs new file mode 100644 index 0000000000..2de557b2e1 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenCardWallet.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerPaymentTokenCardWallet : StripeEntity + { + /// + /// The type of the card wallet, one of apple_pay or google_pay. + /// One of: apple_pay, or google_pay. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenUsBankAccount.cs b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenUsBankAccount.cs new file mode 100644 index 0000000000..1197c60560 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/CustomerPaymentTokens/CustomerPaymentTokenUsBankAccount.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerPaymentTokenUsBankAccount : StripeEntity + { + /// + /// Account type: checkings or savings. + /// One of: checking, or savings. + /// + [JsonProperty("account_type")] + [STJS.JsonPropertyName("account_type")] + public string AccountType { get; set; } + + /// + /// The name of the bank. + /// + [JsonProperty("bank_name")] + [STJS.JsonPropertyName("bank_name")] + public string BankName { get; set; } + + /// + /// Last four digits of the bank account number. + /// + [JsonProperty("last4")] + [STJS.JsonPropertyName("last4")] + public string Last4 { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/Customers/Customer.cs b/src/Stripe.net/Entities/Crypto/Customers/Customer.cs new file mode 100644 index 0000000000..851c18d5f1 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/Customers/Customer.cs @@ -0,0 +1,64 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + /// + /// This object represents a crypto onramp customer. Use it to get their kyc status and + /// payment methods. + /// + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class Customer : StripeEntity, IHasId, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] + [STJS.JsonPropertyName("id")] + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + [STJS.JsonPropertyName("object")] + public string Object { get; set; } + + /// + /// The KYC region determined by the customer's address country. + /// One of: eu, or us. + /// + [JsonProperty("kyc_region")] + [STJS.JsonPropertyName("kyc_region")] + public string KycRegion { get; set; } + + /// + /// List of KYC tiers and their verification status. + /// + [JsonProperty("kyc_tiers")] + [STJS.JsonPropertyName("kyc_tiers")] + public List KycTiers { get; set; } + + /// + /// The set of KYC Fields provided for this customers. + /// One of: address_city, address_country, address_line_1, + /// address_line_2, address_postal_code, address_state, + /// attestation, birth_city, birth_country, dob, + /// first_name, id_document, id_number, id_type, + /// identifiers, last_name, nationalities, or selfie. + /// + [JsonProperty("provided_fields")] + [STJS.JsonPropertyName("provided_fields")] + public List ProvidedFields { get; set; } + + /// + /// List of verifications and their outcome. + /// + [JsonProperty("verifications")] + [STJS.JsonPropertyName("verifications")] + public List Verifications { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/Customers/CustomerKycTier.cs b/src/Stripe.net/Entities/Crypto/Customers/CustomerKycTier.cs new file mode 100644 index 0000000000..8a1db8de92 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/Customers/CustomerKycTier.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerKycTier : StripeEntity + { + /// + /// The KYC tier level (e.g., l0, l1, l2). + /// One of: l0, l1, or l2. + /// + [JsonProperty("tier")] + [STJS.JsonPropertyName("tier")] + public string Tier { get; set; } + + /// + /// List of errors associated with this KYC tier verification. + /// One of: id_document_verification_failed, phone_verification_failed, or + /// user_has_reached_max_verification_attempts. + /// + [JsonProperty("verification_errors")] + [STJS.JsonPropertyName("verification_errors")] + public List VerificationErrors { get; set; } + + /// + /// The verification status for this KYC tier. + /// One of: not_available, not_started, pending, rejected, or + /// verified. + /// + [JsonProperty("verification_status")] + [STJS.JsonPropertyName("verification_status")] + public string VerificationStatus { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/Customers/CustomerVerification.cs b/src/Stripe.net/Entities/Crypto/Customers/CustomerVerification.cs new file mode 100644 index 0000000000..50dd802d61 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/Customers/CustomerVerification.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerVerification : StripeEntity + { + /// + /// List of errors associated with the verification. + /// One of: id_document_verification_failed, phone_verification_failed, or + /// user_has_reached_max_verification_attempts. + /// + [JsonProperty("errors")] + [STJS.JsonPropertyName("errors")] + public List Errors { get; set; } + + /// + /// Type of verification. + /// One of: id_document_verified, kyc_verified, or phone_verified. + /// + [JsonProperty("name")] + [STJS.JsonPropertyName("name")] + public string Name { get; set; } + + /// + /// Outcome of the verification. + /// One of: not_available, not_started, pending, rejected, or + /// verified. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSession.cs b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSession.cs new file mode 100644 index 0000000000..84178dfd75 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSession.cs @@ -0,0 +1,107 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + /// + /// A Crypto Onramp Session represents your customer's session as they purchase + /// cryptocurrency through Stripe. Once payment is successful, Stripe will fulfill the + /// delivery of cryptocurrency to your user's wallet and contain a reference to the crypto + /// transaction ID. + /// + /// You can create an onramp session on your server and embed the widget on your frontend. + /// Alternatively, you can redirect your users to the standalone hosted onramp. + /// + /// Related guide: Integrate + /// the onramp. + /// + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class OnrampSession : StripeEntity, IHasId, IHasMetadata, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] + [STJS.JsonPropertyName("id")] + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + [STJS.JsonPropertyName("object")] + public string Object { get; set; } + + /// + /// A client secret that can be used to drive a single session using our embedded widget. + /// + /// Related guide: Set up an + /// onramp integration. + /// + [JsonProperty("client_secret")] + [STJS.JsonPropertyName("client_secret")] + public string ClientSecret { get; set; } + + /// + /// Time at which the object was created. Measured in seconds since the Unix epoch. + /// + [JsonProperty("created")] + [JsonConverter(typeof(UnixDateTimeConverter))] + [STJS.JsonPropertyName("created")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] + public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Has the value true if any user kyc details were provided during the creation of + /// the onramp session. Otherwise, has the value false. + /// + [JsonProperty("kyc_details_provided")] + [STJS.JsonPropertyName("kyc_details_provided")] + public bool KycDetailsProvided { get; set; } + + /// + /// If the object exists in live mode, the value is true. If the object exists in + /// test mode, the value is false. + /// + [JsonProperty("livemode")] + [STJS.JsonPropertyName("livemode")] + 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")] + [STJS.JsonPropertyName("metadata")] + public Dictionary Metadata { get; set; } + + /// + /// Redirect your users to the URL for a prebuilt frontend integration of the crypto onramp + /// on the standalone hosted onramp. + /// + /// Related guide: Mint + /// a session with a redirect url. + /// + [JsonProperty("redirect_url")] + [STJS.JsonPropertyName("redirect_url")] + public string RedirectUrl { get; set; } + + /// + /// The status of the Onramp Session. One of = {initialized, rejected, requires_payment, + /// fulfillment_processing, fulfillment_complete}. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + + [JsonProperty("transaction_details")] + [STJS.JsonPropertyName("transaction_details")] + public OnrampSessionTransactionDetails TransactionDetails { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetails.cs b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetails.cs new file mode 100644 index 0000000000..0423d058a9 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetails.cs @@ -0,0 +1,126 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class OnrampSessionTransactionDetails : StripeEntity + { + /// + /// The amount of crypto the customer will get deposited into their wallet. + /// + [JsonProperty("destination_amount")] + [STJS.JsonPropertyName("destination_amount")] + public string DestinationAmount { get; set; } + + /// + /// If a platform wants to lock the currencies an session will support, they can add + /// supported currencies to this array. If left null, the experience will allow selection of + /// all supported destination currencies. + /// One of: avax, btc, eth, matic, sol, usdc, + /// wld, or xlm. + /// + [JsonProperty("destination_currencies")] + [STJS.JsonPropertyName("destination_currencies")] + public List DestinationCurrencies { get; set; } + + /// + /// The selected destination_currency to convert the source to. This should be + /// a crypto currency code. If destination_currencies is set, it must be a value in + /// that array. + /// One of: avax, btc, eth, matic, sol, usdc, + /// wld, or xlm. + /// + [JsonProperty("destination_currency")] + [STJS.JsonPropertyName("destination_currency")] + public string DestinationCurrency { get; set; } + + /// + /// The specific crypto network the destination_currency is settled on. If + /// destination_networks is set, it must be a value in that array. + /// One of: avalanche, base, bitcoin, ethereum, optimism, + /// polygon, solana, stellar, or worldchain. + /// + [JsonProperty("destination_network")] + [STJS.JsonPropertyName("destination_network")] + public string DestinationNetwork { get; set; } + + /// + /// If a platform wants to lock the supported networks, they can do so through this array. + /// If left null, the experience will allow selection of all supported networks. + /// One of: avalanche, base, bitcoin, ethereum, optimism, + /// polygon, solana, stellar, or worldchain. + /// + [JsonProperty("destination_networks")] + [STJS.JsonPropertyName("destination_networks")] + public List DestinationNetworks { get; set; } + + /// + /// Details about the fees associated with this transaction. + /// + [JsonProperty("fees")] + [STJS.JsonPropertyName("fees")] + public OnrampSessionTransactionDetailsFees Fees { get; set; } + + /// + /// Whether or not to lock the suggested wallet address. + /// + [JsonProperty("lock_wallet_address")] + [STJS.JsonPropertyName("lock_wallet_address")] + public bool? LockWalletAddress { get; set; } + + /// + /// Speed at which the cryptocurrency is delivered to the wallet One of: instant + /// (default): crypto is delivered when payment is confirmed standard: crypto is + /// delivered when payment settles. + /// One of: instant, or standard. + /// + [JsonProperty("settlement_speed")] + [STJS.JsonPropertyName("settlement_speed")] + public string SettlementSpeed { get; set; } + + /// + /// The amount of fiat we intend to onramp - excluding fees. + /// + [JsonProperty("source_amount")] + [STJS.JsonPropertyName("source_amount")] + public string SourceAmount { get; set; } + + /// + /// A fiat currency code. + /// One of: eur, gbp, or usd. + /// + [JsonProperty("source_currency")] + [STJS.JsonPropertyName("source_currency")] + public string SourceCurrency { get; set; } + + /// + /// The on-chain transaction hash (also referred to as transaction ID or tx_hash) of the + /// transaction that was sent to the customer's wallet. The format varies by chain (e.g. + /// 0xc257...1a95 on Ethereum, 5UB1...v3xZ on Solana, or a1b2...bf00 on + /// Bitcoin). This will only be set if the session reaches + /// status=fulfillment_complete and we've transferred the crypto successfully to the + /// external wallet. + /// + [JsonProperty("transaction_id")] + [STJS.JsonPropertyName("transaction_id")] + public string TransactionId { get; set; } + + /// + /// The consumer's wallet address (where crypto will be sent to). + /// + [JsonProperty("wallet_address")] + [STJS.JsonPropertyName("wallet_address")] + public string WalletAddress { get; set; } + + /// + /// The end customer's crypto wallet address (for each network) to use for this transaction. + /// + [JsonProperty("wallet_addresses")] + [STJS.JsonPropertyName("wallet_addresses")] + public OnrampSessionTransactionDetailsWalletAddresses WalletAddresses { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsFees.cs b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsFees.cs new file mode 100644 index 0000000000..5390d069d5 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsFees.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class OnrampSessionTransactionDetailsFees : StripeEntity + { + /// + /// The cost associated with moving crypto from Stripe to the end consumer's wallet. e.g: + /// for ETH, this is called 'gas fee', for BTC this is a 'miner's fee'. + /// + [JsonProperty("network_fee_amount")] + [STJS.JsonPropertyName("network_fee_amount")] + public string NetworkFeeAmount { get; set; } + + /// + /// Fee for processing the transaction. + /// + [JsonProperty("transaction_fee_amount")] + [STJS.JsonPropertyName("transaction_fee_amount")] + public string TransactionFeeAmount { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsWalletAddresses.cs b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsWalletAddresses.cs new file mode 100644 index 0000000000..0d787d0bbc --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsWalletAddresses.cs @@ -0,0 +1,82 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class OnrampSessionTransactionDetailsWalletAddresses : StripeEntity + { + /// + /// An avalanche address. + /// + [JsonProperty("avalanche")] + [STJS.JsonPropertyName("avalanche")] + public string Avalanche { get; set; } + + /// + /// A base address. + /// + [JsonProperty("base_network")] + [STJS.JsonPropertyName("base_network")] + public string BaseNetwork { get; set; } + + /// + /// A bitcoin address. + /// + [JsonProperty("bitcoin")] + [STJS.JsonPropertyName("bitcoin")] + public string Bitcoin { get; set; } + + /// + /// The end customer's crypto wallet destination tag (for each network) to use for this + /// transaction. + /// + [JsonProperty("destination_tags")] + [STJS.JsonPropertyName("destination_tags")] + public OnrampSessionTransactionDetailsWalletAddressesDestinationTags DestinationTags { get; set; } + + /// + /// An ethereum address. + /// + [JsonProperty("ethereum")] + [STJS.JsonPropertyName("ethereum")] + public string Ethereum { get; set; } + + /// + /// An optimism address. + /// + [JsonProperty("optimism")] + [STJS.JsonPropertyName("optimism")] + public string Optimism { get; set; } + + /// + /// A polygon address. + /// + [JsonProperty("polygon")] + [STJS.JsonPropertyName("polygon")] + public string Polygon { get; set; } + + /// + /// A solana address. + /// + [JsonProperty("solana")] + [STJS.JsonPropertyName("solana")] + public string Solana { get; set; } + + /// + /// A stellar address. + /// + [JsonProperty("stellar")] + [STJS.JsonPropertyName("stellar")] + public string Stellar { get; set; } + + /// + /// A worldchain address. + /// + [JsonProperty("worldchain")] + [STJS.JsonPropertyName("worldchain")] + public string Worldchain { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsWalletAddressesDestinationTags.cs b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsWalletAddressesDestinationTags.cs new file mode 100644 index 0000000000..6c12b3020b --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/OnrampSessions/OnrampSessionTransactionDetailsWalletAddressesDestinationTags.cs @@ -0,0 +1,18 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class OnrampSessionTransactionDetailsWalletAddressesDestinationTags : StripeEntity + { + /// + /// A stellar destination tag. + /// + [JsonProperty("stellar")] + [STJS.JsonPropertyName("stellar")] + public string Stellar { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Crypto/OnrampTransactionLimits/OnrampTransactionLimits.cs b/src/Stripe.net/Entities/Crypto/OnrampTransactionLimits/OnrampTransactionLimits.cs new file mode 100644 index 0000000000..f930995358 --- /dev/null +++ b/src/Stripe.net/Entities/Crypto/OnrampTransactionLimits/OnrampTransactionLimits.cs @@ -0,0 +1,50 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + /// + /// This object represents the limit for the remaining amount that the crypto customer can + /// onramp. + /// + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class OnrampTransactionLimits : StripeEntity, IHasObject + { + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + [STJS.JsonPropertyName("object")] + public string Object { get; set; } + + /// + /// The ID of the crypto customer. + /// + [JsonProperty("crypto_customer_id")] + [STJS.JsonPropertyName("crypto_customer_id")] + public string CryptoCustomerId { get; set; } + + /// + /// The remaining onramp limit for the crypto customer, separated by currency, payment + /// method, and settlement speed. + /// + /// Limits are shown for currencies that correspond to the regions where the customer + /// previously transacted. If the customer has no prior transactions, we return limits for + /// all supported currencies. + /// + [JsonProperty("limits")] + [STJS.JsonPropertyName("limits")] + public Dictionary Limits { get; set; } + + /// + /// If the object exists in live mode, the value is true. If the object exists in + /// test mode, the value is false. + /// + [JsonProperty("livemode")] + [STJS.JsonPropertyName("livemode")] + public bool Livemode { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Customers/Customer.cs b/src/Stripe.net/Entities/Customers/Customer.cs index a31235815f..9417c62d24 100644 --- a/src/Stripe.net/Entities/Customers/Customer.cs +++ b/src/Stripe.net/Entities/Customers/Customer.cs @@ -261,6 +261,14 @@ public IPaymentSource DefaultSource [STJS.JsonPropertyName("preferred_locales")] public List PreferredLocales { get; set; } + /// + /// Redaction status of this customer. If not null, this customer is associated to a + /// redaction job. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public CustomerRedaction Redaction { get; set; } + /// /// Mailing and shipping address for the customer. Appears on invoices emailed to this /// customer. diff --git a/src/Stripe.net/Entities/Customers/CustomerRedaction.cs b/src/Stripe.net/Entities/Customers/CustomerRedaction.cs new file mode 100644 index 0000000000..fa4fd54c01 --- /dev/null +++ b/src/Stripe.net/Entities/Customers/CustomerRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CustomerRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Disputes/Dispute.cs b/src/Stripe.net/Entities/Disputes/Dispute.cs index bbc1f6802d..899ee858fc 100644 --- a/src/Stripe.net/Entities/Disputes/Dispute.cs +++ b/src/Stripe.net/Entities/Disputes/Dispute.cs @@ -111,7 +111,8 @@ public Charge Charge /// /// List of eligibility types that are included in enhanced_evidence. - /// One of: visa_compelling_evidence_3, or visa_compliance. + /// One of: mastercard_compliance, visa_compelling_evidence_3, or + /// visa_compliance. /// [JsonProperty("enhanced_eligibility_types")] [STJS.JsonPropertyName("enhanced_eligibility_types")] diff --git a/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibility.cs b/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibility.cs index 2757a80f1f..618d830058 100644 --- a/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibility.cs +++ b/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibility.cs @@ -8,6 +8,10 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class DisputeEvidenceDetailsEnhancedEligibility : StripeEntity { + [JsonProperty("mastercard_compliance")] + [STJS.JsonPropertyName("mastercard_compliance")] + public DisputeEvidenceDetailsEnhancedEligibilityMastercardCompliance MastercardCompliance { get; set; } + [JsonProperty("visa_compelling_evidence_3")] [STJS.JsonPropertyName("visa_compelling_evidence_3")] public DisputeEvidenceDetailsEnhancedEligibilityVisaCompellingEvidence3 VisaCompellingEvidence3 { get; set; } diff --git a/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibilityMastercardCompliance.cs b/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibilityMastercardCompliance.cs new file mode 100644 index 0000000000..506c617b52 --- /dev/null +++ b/src/Stripe.net/Entities/Disputes/DisputeEvidenceDetailsEnhancedEligibilityMastercardCompliance.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class DisputeEvidenceDetailsEnhancedEligibilityMastercardCompliance : StripeEntity + { + /// + /// Mastercard compliance eligibility status. + /// One of: fee_acknowledged, or requires_fee_acknowledgement. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidence.cs b/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidence.cs index 51f3e33771..e1610d4636 100644 --- a/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidence.cs +++ b/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidence.cs @@ -8,6 +8,10 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class DisputeEvidenceEnhancedEvidence : StripeEntity { + [JsonProperty("mastercard_compliance")] + [STJS.JsonPropertyName("mastercard_compliance")] + public DisputeEvidenceEnhancedEvidenceMastercardCompliance MastercardCompliance { get; set; } + [JsonProperty("visa_compelling_evidence_3")] [STJS.JsonPropertyName("visa_compelling_evidence_3")] public DisputeEvidenceEnhancedEvidenceVisaCompellingEvidence3 VisaCompellingEvidence3 { get; set; } diff --git a/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidenceMastercardCompliance.cs b/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidenceMastercardCompliance.cs new file mode 100644 index 0000000000..82f7f604f6 --- /dev/null +++ b/src/Stripe.net/Entities/Disputes/DisputeEvidenceEnhancedEvidenceMastercardCompliance.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class DisputeEvidenceEnhancedEvidenceMastercardCompliance : StripeEntity + { + /// + /// A field acknowledging the fee incurred when countering a Mastercard compliance dispute. + /// If this field is set to true, evidence can be submitted for the compliance dispute. + /// + [JsonProperty("fee_acknowledged")] + [STJS.JsonPropertyName("fee_acknowledged")] + public bool FeeAcknowledged { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Events/Event.cs b/src/Stripe.net/Entities/Events/Event.cs index 37bbadbe6b..6161373858 100644 --- a/src/Stripe.net/Entities/Events/Event.cs +++ b/src/Stripe.net/Entities/Events/Event.cs @@ -125,7 +125,10 @@ public class Event : StripeEntity, IHasId, IHasObject /// application_fee.created, application_fee.refund.updated, /// application_fee.refunded, balance.available, /// balance_settings.updated, billing.alert.recovered, - /// billing.alert.triggered, billing.credit_grant.created, + /// billing.alert.triggered, billing.credit_balance_transaction.created, + /// billing.credit_grant.created, billing.credit_grant.updated, + /// billing.meter.created, billing.meter.deactivated, + /// billing.meter.reactivated, billing.meter.updated, /// billing_portal.configuration.created, /// billing_portal.configuration.updated, billing_portal.session.created, /// capability.updated, capital.financing_offer.accepted, @@ -188,15 +191,15 @@ public class Event : StripeEntity, IHasId, IHasObject /// invoice.payment_action_required, 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_dispute_settlement_detail.created, + /// invoice.will_be_due, invoice_payment.detached, + /// 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_dispute_settlement_detail.created, /// issuing_dispute_settlement_detail.updated, /// issuing_fraud_liability_debit.created, /// issuing_personalization_design.activated, @@ -270,11 +273,8 @@ public class Event : StripeEntity, IHasId, IHasObject /// treasury.outbound_transfer.returned, /// treasury.outbound_transfer.tracking_details_updated, /// treasury.received_credit.created, treasury.received_credit.failed, - /// treasury.received_credit.succeeded, treasury.received_debit.created, - /// invoice_payment.detached, billing.credit_balance_transaction.created, - /// billing.credit_grant.updated, billing.meter.created, - /// billing.meter.deactivated, billing.meter.reactivated, - /// billing.meter.updated, or ping. + /// treasury.received_credit.succeeded, treasury.received_debit.created, or + /// ping. /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] diff --git a/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetails.cs b/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetails.cs index 7338164e5b..1e4064bf04 100644 --- a/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetails.cs +++ b/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetails.cs @@ -8,6 +8,10 @@ namespace Stripe.FinancialConnections [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class AccountStatusDetails : StripeEntity { + [JsonProperty("active")] + [STJS.JsonPropertyName("active")] + public AccountStatusDetailsActive Active { get; set; } + [JsonProperty("inactive")] [STJS.JsonPropertyName("inactive")] public AccountStatusDetailsInactive Inactive { get; set; } diff --git a/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetailsActive.cs b/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetailsActive.cs new file mode 100644 index 0000000000..4653dcd091 --- /dev/null +++ b/src/Stripe.net/Entities/FinancialConnections/Accounts/AccountStatusDetailsActive.cs @@ -0,0 +1,37 @@ +// File generated from our OpenAPI spec +namespace Stripe.FinancialConnections +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class AccountStatusDetailsActive : StripeEntity + { + /// + /// The action (if any) to proactively relink the Account. + /// One of: none, or relink_required. + /// + [JsonProperty("action")] + [STJS.JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// The underlying cause of the Account becoming inactive. + /// One of: access_expired, institution_requirement, or unspecified. + /// + [JsonProperty("cause")] + [STJS.JsonPropertyName("cause")] + public string Cause { get; set; } + + /// + /// When the Account is expected to become inactive, if applicable. + /// + [JsonProperty("expected_deactivation_date")] + [JsonConverter(typeof(UnixDateTimeConverter))] + [STJS.JsonPropertyName("expected_deactivation_date")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] + public DateTime ExpectedDeactivationDate { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + } +} diff --git a/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetails.cs b/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetails.cs index bd0889c77a..fad514c35e 100644 --- a/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetails.cs +++ b/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetails.cs @@ -8,6 +8,10 @@ namespace Stripe.FinancialConnections [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class AuthorizationStatusDetails : StripeEntity { + [JsonProperty("active")] + [STJS.JsonPropertyName("active")] + public AuthorizationStatusDetailsActive Active { get; set; } + [JsonProperty("inactive")] [STJS.JsonPropertyName("inactive")] public AuthorizationStatusDetailsInactive Inactive { get; set; } diff --git a/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetailsActive.cs b/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetailsActive.cs new file mode 100644 index 0000000000..ce929c9009 --- /dev/null +++ b/src/Stripe.net/Entities/FinancialConnections/Authorizations/AuthorizationStatusDetailsActive.cs @@ -0,0 +1,29 @@ +// File generated from our OpenAPI spec +namespace Stripe.FinancialConnections +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class AuthorizationStatusDetailsActive : StripeEntity + { + /// + /// The action (if any) to proactively relink the Authorization. + /// One of: none, or relink_required. + /// + [JsonProperty("action")] + [STJS.JsonPropertyName("action")] + public string Action { get; set; } + + /// + /// When the Authorization is expected to become inactive, if applicable. + /// + [JsonProperty("expected_deactivation_date")] + [JsonConverter(typeof(UnixDateTimeConverter))] + [STJS.JsonPropertyName("expected_deactivation_date")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] + public DateTime ExpectedDeactivationDate { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + } +} diff --git a/src/Stripe.net/Entities/GiftCardOperations/GiftCardOperation.cs b/src/Stripe.net/Entities/GiftCardOperations/GiftCardOperation.cs index 57fc9642a1..0c877c41bf 100644 --- a/src/Stripe.net/Entities/GiftCardOperations/GiftCardOperation.cs +++ b/src/Stripe.net/Entities/GiftCardOperations/GiftCardOperation.cs @@ -8,7 +8,7 @@ namespace Stripe /// /// A GiftCardOperation represents an operation performed on a third-party gift card, such - /// as activation, deactivation, reload, cashout, balance check, or void. + /// as activation, reload, cashout, balance check, or void. /// [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class GiftCardOperation : StripeEntity, IHasId, IHasObject @@ -80,13 +80,6 @@ public class GiftCardOperation : StripeEntity, IHasId, IHasOb [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; - /// - /// Details about a gift card deactivation operation. - /// - [JsonProperty("deactivation")] - [STJS.JsonPropertyName("deactivation")] - public GiftCardOperationDeactivation Deactivation { get; set; } - /// /// The failure code of the operation. Only present if the status is failed. /// One of: action_not_supported, card_already_activated, card_expired, @@ -190,7 +183,7 @@ public GiftCard GiftCard /// /// The type of operation performed. /// One of: activation, activation_void, balance_check, cashout, - /// cashout_void, deactivation, reload, or reload_void. + /// cashout_void, reload, or reload_void. /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] diff --git a/src/Stripe.net/Entities/Identity/VerificationSessions/VerificationSessionRedaction.cs b/src/Stripe.net/Entities/Identity/VerificationSessions/VerificationSessionRedaction.cs index acb79a7251..9ca62b4b4e 100644 --- a/src/Stripe.net/Entities/Identity/VerificationSessions/VerificationSessionRedaction.cs +++ b/src/Stripe.net/Entities/Identity/VerificationSessions/VerificationSessionRedaction.cs @@ -10,7 +10,7 @@ public class VerificationSessionRedaction : StripeEntity /// Indicates whether this object and its related objects have been redacted or not. - /// One of: processing, or redacted. + /// One of: processing, redacted, or validated. /// [JsonProperty("status")] [STJS.JsonPropertyName("status")] diff --git a/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs b/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs index ca93fa98c3..8a9ac3a2fc 100644 --- a/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs +++ b/src/Stripe.net/Entities/Invoices/InvoicePaymentSettings.cs @@ -41,8 +41,9 @@ public class InvoicePaymentSettings : StripeEntity /// kr_card, link, momo, multibanco, naver_pay, /// nz_bank_account, p24, pay_by_bank, payco, paynow, /// paypal, payto, pix, promptpay, revolut_pay, - /// sepa_credit_transfer, sepa_debit, sofort, stripe_balance, - /// swish, twint, upi, us_bank_account, or wechat_pay. + /// satispay, sepa_credit_transfer, sepa_debit, sofort, + /// stripe_balance, swish, twint, upi, us_bank_account, + /// or wechat_pay. /// [JsonProperty("payment_method_types")] [STJS.JsonPropertyName("payment_method_types")] diff --git a/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs b/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs index 6297b9fba5..89c11cac01 100644 --- a/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs +++ b/src/Stripe.net/Entities/Issuing/Authorizations/Authorization.cs @@ -207,6 +207,15 @@ public Cardholder Cardholder [STJS.JsonPropertyName("merchant_amount")] public long MerchantAmount { get; set; } + /// + /// The exchange rate used by the network to convert the merchant_amount to + /// amount. The merchant_amount multiplied with this rate will equal to the + /// amount. + /// + [JsonProperty("merchant_amount_exchange_rate")] + [STJS.JsonPropertyName("merchant_amount_exchange_rate")] + public decimal? MerchantAmountExchangeRate { get; set; } + /// /// The local currency that was presented to the cardholder for the authorization. This /// currency can be different from the cardholder currency and the currency field on @@ -247,6 +256,14 @@ public Cardholder Cardholder [STJS.JsonPropertyName("pending_request")] public AuthorizationPendingRequest PendingRequest { get; set; } + /// + /// Redaction status of this authorization. If the authorization is not redacted, this field + /// will be null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public AuthorizationRedaction Redaction { get; set; } + /// /// History of every time a pending_request authorization was approved/declined, /// either by you directly or by Stripe (e.g. based on your spending_controls). If the diff --git a/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationRedaction.cs b/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationRedaction.cs new file mode 100644 index 0000000000..82abac581d --- /dev/null +++ b/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Issuing +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class AuthorizationRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationTokenDetailsNetworkDataDevice.cs b/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationTokenDetailsNetworkDataDevice.cs index 8abdad7096..6465c7f107 100644 --- a/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationTokenDetailsNetworkDataDevice.cs +++ b/src/Stripe.net/Entities/Issuing/Authorizations/AuthorizationTokenDetailsNetworkDataDevice.cs @@ -8,6 +8,13 @@ namespace Stripe.Issuing [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class AuthorizationTokenDetailsNetworkDataDevice : StripeEntity { + /// + /// An identifier for the device used during wallet provisioning. + /// + [JsonProperty("device_id")] + [STJS.JsonPropertyName("device_id")] + public string DeviceId { get; set; } + /// /// The IP address of the device at provisioning time. /// diff --git a/src/Stripe.net/Entities/Issuing/Cardholders/Cardholder.cs b/src/Stripe.net/Entities/Issuing/Cardholders/Cardholder.cs index 323f00cc5a..e6fafbac29 100644 --- a/src/Stripe.net/Entities/Issuing/Cardholders/Cardholder.cs +++ b/src/Stripe.net/Entities/Issuing/Cardholders/Cardholder.cs @@ -113,6 +113,14 @@ public class Cardholder : StripeEntity, IHasId, IHasMetadata, IHasOb [STJS.JsonPropertyName("preferred_locales")] public List PreferredLocales { get; set; } + /// + /// Redaction status of this cardholder. If the cardholder is not redacted, this field will + /// be null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public CardholderRedaction Redaction { get; set; } + [JsonProperty("requirements")] [STJS.JsonPropertyName("requirements")] public CardholderRequirements Requirements { get; set; } diff --git a/src/Stripe.net/Entities/Issuing/Cardholders/CardholderRedaction.cs b/src/Stripe.net/Entities/Issuing/Cardholders/CardholderRedaction.cs new file mode 100644 index 0000000000..29b6cc6a08 --- /dev/null +++ b/src/Stripe.net/Entities/Issuing/Cardholders/CardholderRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Issuing +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CardholderRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Issuing/Cards/Card.cs b/src/Stripe.net/Entities/Issuing/Cards/Card.cs index 284f5e4aa7..086bfcf4cd 100644 --- a/src/Stripe.net/Entities/Issuing/Cards/Card.cs +++ b/src/Stripe.net/Entities/Issuing/Cards/Card.cs @@ -194,6 +194,20 @@ public PersonalizationDesign PersonalizationDesign internal ExpandableField InternalPersonalizationDesign { get; set; } #endregion + /// + /// The program that this card belongs to — will not be nil. + /// + [JsonProperty("program")] + [STJS.JsonPropertyName("program")] + public string Program { get; set; } + + /// + /// Redaction status of this card. If not null, this card is associated to a redaction job. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public CardRedaction Redaction { get; set; } + #region Expandable ReplacedBy /// diff --git a/src/Stripe.net/Entities/Issuing/Cards/CardRedaction.cs b/src/Stripe.net/Entities/Issuing/Cards/CardRedaction.cs new file mode 100644 index 0000000000..90e09c3706 --- /dev/null +++ b/src/Stripe.net/Entities/Issuing/Cards/CardRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Issuing +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class CardRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Issuing/Disputes/Dispute.cs b/src/Stripe.net/Entities/Issuing/Disputes/Dispute.cs index 36a8e9310a..bf6daad7f3 100644 --- a/src/Stripe.net/Entities/Issuing/Disputes/Dispute.cs +++ b/src/Stripe.net/Entities/Issuing/Disputes/Dispute.cs @@ -130,6 +130,14 @@ public class Dispute : StripeEntity, IHasId, IHasMetadata, IHasObject, [STJS.JsonPropertyName("provisional_credit")] public DisputeProvisionalCredit ProvisionalCredit { get; set; } + /// + /// Redaction status of this dispute. If the dispute is not redacted, this field will be + /// null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public DisputeRedaction Redaction { get; set; } + /// /// Current status of the dispute. /// One of: expired, lost, submitted, unsubmitted, or diff --git a/src/Stripe.net/Entities/Issuing/Disputes/DisputeRedaction.cs b/src/Stripe.net/Entities/Issuing/Disputes/DisputeRedaction.cs new file mode 100644 index 0000000000..22cf5ea2d2 --- /dev/null +++ b/src/Stripe.net/Entities/Issuing/Disputes/DisputeRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Issuing +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class DisputeRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Issuing/Tokens/TokenNetworkDataDevice.cs b/src/Stripe.net/Entities/Issuing/Tokens/TokenNetworkDataDevice.cs index 97acf4c320..16861a543e 100644 --- a/src/Stripe.net/Entities/Issuing/Tokens/TokenNetworkDataDevice.cs +++ b/src/Stripe.net/Entities/Issuing/Tokens/TokenNetworkDataDevice.cs @@ -15,6 +15,13 @@ public class TokenNetworkDataDevice : StripeEntity [STJS.JsonPropertyName("device_fingerprint")] public string DeviceFingerprint { get; set; } + /// + /// An identifier for the device used during wallet provisioning. + /// + [JsonProperty("device_id")] + [STJS.JsonPropertyName("device_id")] + public string DeviceId { get; set; } + /// /// The IP address of the device at provisioning time. /// diff --git a/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs b/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs index c0de5c1cdf..61c18e1a2c 100644 --- a/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs +++ b/src/Stripe.net/Entities/Issuing/Transactions/Transaction.cs @@ -270,6 +270,15 @@ public Dispute Dispute [STJS.JsonPropertyName("merchant_amount")] public long MerchantAmount { get; set; } + /// + /// The exchange rate used by the network to convert the merchant_amount to + /// amount. The merchant_amount multiplied with this rate will equal to the + /// amount. + /// + [JsonProperty("merchant_amount_exchange_rate")] + [STJS.JsonPropertyName("merchant_amount_exchange_rate")] + public decimal? MerchantAmountExchangeRate { get; set; } + /// /// The currency with which the merchant is taking payment. /// @@ -304,6 +313,14 @@ public Dispute Dispute [STJS.JsonPropertyName("purchase_details")] public TransactionPurchaseDetails PurchaseDetails { get; set; } + /// + /// Redaction status of this transaction. If the transaction is not redacted, this field + /// will be null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public TransactionRedaction Redaction { get; set; } + #region Expandable Settlement /// diff --git a/src/Stripe.net/Entities/Issuing/Transactions/TransactionRedaction.cs b/src/Stripe.net/Entities/Issuing/Transactions/TransactionRedaction.cs new file mode 100644 index 0000000000..3520640c6c --- /dev/null +++ b/src/Stripe.net/Entities/Issuing/Transactions/TransactionRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe.Issuing +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class TransactionRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPay.cs b/src/Stripe.net/Entities/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPay.cs index 8137903f1e..d23d0b9123 100644 --- a/src/Stripe.net/Entities/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPay.cs +++ b/src/Stripe.net/Entities/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPay.cs @@ -9,7 +9,8 @@ namespace Stripe public class OrderPaymentSettingsPaymentMethodOptionsWechatPay : StripeEntity { /// - /// The app ID registered with WeChat Pay. Only required when client is ios or android. + /// The app ID registered with WeChat Pay. Only required when client is ios, android, or + /// mini_program. /// [JsonProperty("app_id")] [STJS.JsonPropertyName("app_id")] diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBizum.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBizum.cs index 727fe3a66b..4adfc21b9c 100644 --- a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBizum.cs +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsBizum.cs @@ -8,6 +8,13 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentAttemptRecordPaymentMethodDetailsBizum : StripeEntity { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } + /// /// The Bizum transaction ID associated with this payment. /// diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs index 879f8bfb11..458d3225bf 100644 --- a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCard.cs @@ -176,15 +176,6 @@ public class PaymentAttemptRecordPaymentMethodDetailsCard : StripeEntity - /// The transaction type that was passed for an off-session, Merchant-Initiated transaction, - /// one of recurring or unscheduled. - /// One of: recurring, or unscheduled. - /// - [JsonProperty("stored_credential_usage")] - [STJS.JsonPropertyName("stored_credential_usage")] - public string StoredCredentialUsage { get; set; } - /// /// Populated if this transaction used 3D Secure authentication. /// diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs index e7a918d8a4..2f5be13c03 100644 --- a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsCrypto.cs @@ -8,6 +8,20 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentAttemptRecordPaymentMethodDetailsCrypto : StripeEntity { + /// + /// The amount received for the crypto payment. + /// + [JsonProperty("amount_received")] + [STJS.JsonPropertyName("amount_received")] + public long AmountReceived { get; set; } + + /// + /// The amount requested for the crypto payment. + /// + [JsonProperty("amount_requested")] + [STJS.JsonPropertyName("amount_requested")] + public long AmountRequested { get; set; } + /// /// The wallet address of the customer. /// @@ -17,7 +31,8 @@ public class PaymentAttemptRecordPaymentMethodDetailsCrypto : StripeEntity /// The blockchain network that the transaction was sent on. - /// One of: base, ethereum, polygon, solana, or tempo. + /// One of: base, ethereum, polygon, solana, sui, or + /// tempo. /// [JsonProperty("network")] [STJS.JsonPropertyName("network")] @@ -25,7 +40,8 @@ public class PaymentAttemptRecordPaymentMethodDetailsCrypto : StripeEntity /// The token currency that the transaction was sent with. - /// One of: phantom_cash, usdc, usdg, usdp, or usdt. + /// One of: phantom_cash, usdc, usdg, usdp, usdsui, or + /// usdt. /// [JsonProperty("token_currency")] [STJS.JsonPropertyName("token_currency")] diff --git a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiftCard.cs b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiftCard.cs index 46669ea4b2..3969556e79 100644 --- a/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiftCard.cs +++ b/src/Stripe.net/Entities/PaymentAttemptRecords/PaymentAttemptRecordPaymentMethodDetailsGiftCard.cs @@ -37,6 +37,14 @@ public class PaymentAttemptRecordPaymentMethodDetailsGiftCard : StripeEntity + /// Uniquely identifies this particular gift card number. You can use this attribute to + /// check whether two transactions were made using the same gift card. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } + /// /// The first six digits of the gift card number. /// diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs index cdc8775d45..c47cea1463 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs @@ -606,6 +606,14 @@ public PaymentRecord PaymentRecord [STJS.JsonPropertyName("receipt_email")] public string ReceiptEmail { get; set; } + /// + /// Redaction status of this PaymentIntent. If the PaymentIntent isn't redacted, this field + /// is null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public PaymentIntentRedaction Redaction { get; set; } + #region Expandable Review /// diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs index 25002fcbd7..506aebea90 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptions.cs @@ -236,6 +236,10 @@ public class PaymentIntentPaymentMethodOptions : StripeEntity { + [JsonProperty("amount_reconciliation")] + [STJS.JsonPropertyName("amount_reconciliation")] + public PaymentIntentPaymentMethodOptionsCryptoAmountReconciliation AmountReconciliation { get; set; } + [JsonProperty("deposit_options")] [STJS.JsonPropertyName("deposit_options")] public PaymentIntentPaymentMethodOptionsCryptoDepositOptions DepositOptions { get; set; } diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoAmountReconciliation.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoAmountReconciliation.cs new file mode 100644 index 0000000000..54c23d2f3f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoAmountReconciliation.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class PaymentIntentPaymentMethodOptionsCryptoAmountReconciliation : StripeEntity + { + /// + /// Controls how crypto funding amounts are reconciled for the PaymentIntent. + /// One of: accept_partial_funding, or exact. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispay.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispay.cs index 22b31b6fda..2f5023893a 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispay.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispay.cs @@ -14,5 +14,30 @@ public class PaymentIntentPaymentMethodOptionsSatispay : 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. + /// One of: none, off_session, or on_session. + /// + [JsonProperty("setup_future_usage")] + [STJS.JsonPropertyName("setup_future_usage")] + public string SetupFutureUsage { get; set; } } } diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSunbit.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSunbit.cs new file mode 100644 index 0000000000..5a4605ca1f --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsSunbit.cs @@ -0,0 +1,42 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class PaymentIntentPaymentMethodOptionsSunbit : StripeEntity + { + /// + /// Controls when the funds will be captured from the customer's account. + /// + [JsonProperty("capture_method")] + [STJS.JsonPropertyName("capture_method")] + public string CaptureMethod { get; set; } + + /// + /// 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")] + [STJS.JsonPropertyName("setup_future_usage")] + public string SetupFutureUsage { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPay.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPay.cs index 1fd3888999..618955e601 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPay.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPay.cs @@ -9,7 +9,8 @@ namespace Stripe public class PaymentIntentPaymentMethodOptionsWechatPay : StripeEntity { /// - /// The app ID registered with WeChat Pay. Only required when client is ios or android. + /// The app ID registered with WeChat Pay. Only required when client is ios, android, or + /// mini_program. /// [JsonProperty("app_id")] [STJS.JsonPropertyName("app_id")] diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentRedaction.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentRedaction.cs new file mode 100644 index 0000000000..f312d21d97 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class PaymentIntentRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs index 75ccb490a3..4034234547 100644 --- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethod.cs @@ -333,6 +333,14 @@ public Customer Customer [STJS.JsonPropertyName("rechnung")] public PaymentMethodRechnung Rechnung { get; set; } + /// + /// Redaction status of this PaymentMethod. If the PaymentMethod is not redacted, this field + /// will be null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public PaymentMethodRedaction Redaction { get; set; } + [JsonProperty("revolut_pay")] [STJS.JsonPropertyName("revolut_pay")] public PaymentMethodRevolutPay RevolutPay { get; set; } diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBizum.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBizum.cs index 285d8bedce..b5500d887b 100644 --- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBizum.cs +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBizum.cs @@ -8,5 +8,11 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentMethodBizum : StripeEntity { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } } } diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBlik.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBlik.cs index 2bf1ed91ad..1fa8c34375 100644 --- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBlik.cs +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodBlik.cs @@ -8,5 +8,11 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentMethodBlik : StripeEntity { + /// + /// A unique and immutable identifier assigned by BLIK to every buyer. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } } } diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodPix.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodPix.cs index d876ec0578..858e3b3e15 100644 --- a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodPix.cs +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodPix.cs @@ -8,5 +8,12 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentMethodPix : StripeEntity { + /// + /// Uniquely identifies this particular Pix account. You can use this attribute to check + /// whether two Pix accounts are the same. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } } } diff --git a/src/Stripe.net/Entities/PaymentMethods/PaymentMethodRedaction.cs b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodRedaction.cs new file mode 100644 index 0000000000..66113e2d52 --- /dev/null +++ b/src/Stripe.net/Entities/PaymentMethods/PaymentMethodRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class PaymentMethodRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBizum.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBizum.cs index 8a7a6146ca..5ed8ca7965 100644 --- a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBizum.cs +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsBizum.cs @@ -8,6 +8,13 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentRecordPaymentMethodDetailsBizum : StripeEntity { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } + /// /// The Bizum transaction ID associated with this payment. /// diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs index 4aecb47e21..f90bbf2efb 100644 --- a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCard.cs @@ -176,15 +176,6 @@ public class PaymentRecordPaymentMethodDetailsCard : StripeEntity - /// The transaction type that was passed for an off-session, Merchant-Initiated transaction, - /// one of recurring or unscheduled. - /// One of: recurring, or unscheduled. - /// - [JsonProperty("stored_credential_usage")] - [STJS.JsonPropertyName("stored_credential_usage")] - public string StoredCredentialUsage { get; set; } - /// /// Populated if this transaction used 3D Secure authentication. /// diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs index 6acb605c15..c4869cb02b 100644 --- a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsCrypto.cs @@ -8,6 +8,20 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class PaymentRecordPaymentMethodDetailsCrypto : StripeEntity { + /// + /// The amount received for the crypto payment. + /// + [JsonProperty("amount_received")] + [STJS.JsonPropertyName("amount_received")] + public long AmountReceived { get; set; } + + /// + /// The amount requested for the crypto payment. + /// + [JsonProperty("amount_requested")] + [STJS.JsonPropertyName("amount_requested")] + public long AmountRequested { get; set; } + /// /// The wallet address of the customer. /// @@ -17,7 +31,8 @@ public class PaymentRecordPaymentMethodDetailsCrypto : StripeEntity /// The blockchain network that the transaction was sent on. - /// One of: base, ethereum, polygon, solana, or tempo. + /// One of: base, ethereum, polygon, solana, sui, or + /// tempo. /// [JsonProperty("network")] [STJS.JsonPropertyName("network")] @@ -25,7 +40,8 @@ public class PaymentRecordPaymentMethodDetailsCrypto : StripeEntity /// The token currency that the transaction was sent with. - /// One of: phantom_cash, usdc, usdg, usdp, or usdt. + /// One of: phantom_cash, usdc, usdg, usdp, usdsui, or + /// usdt. /// [JsonProperty("token_currency")] [STJS.JsonPropertyName("token_currency")] diff --git a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiftCard.cs b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiftCard.cs index 173777a03b..e8826d36c0 100644 --- a/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiftCard.cs +++ b/src/Stripe.net/Entities/PaymentRecords/PaymentRecordPaymentMethodDetailsGiftCard.cs @@ -37,6 +37,14 @@ public class PaymentRecordPaymentMethodDetailsGiftCard : StripeEntity + /// Uniquely identifies this particular gift card number. You can use this attribute to + /// check whether two transactions were made using the same gift card. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } + /// /// The first six digits of the gift card number. /// diff --git a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs index df16a1094f..5ae23e1cd6 100644 --- a/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs +++ b/src/Stripe.net/Entities/QuotePreviewInvoices/QuotePreviewInvoicePaymentSettings.cs @@ -41,8 +41,9 @@ public class QuotePreviewInvoicePaymentSettings : StripeEntitykr_card, link, momo, multibanco, naver_pay, /// nz_bank_account, p24, pay_by_bank, payco, paynow, /// paypal, payto, pix, promptpay, revolut_pay, - /// sepa_credit_transfer, sepa_debit, sofort, stripe_balance, - /// swish, twint, upi, us_bank_account, or wechat_pay. + /// satispay, sepa_credit_transfer, sepa_debit, sofort, + /// stripe_balance, swish, twint, upi, us_bank_account, + /// or wechat_pay. /// [JsonProperty("payment_method_types")] [STJS.JsonPropertyName("payment_method_types")] diff --git a/src/Stripe.net/Entities/Reserve/Holds/Hold.cs b/src/Stripe.net/Entities/Reserve/Holds/Hold.cs index fe58e86c74..54758b2f9a 100644 --- a/src/Stripe.net/Entities/Reserve/Holds/Hold.cs +++ b/src/Stripe.net/Entities/Reserve/Holds/Hold.cs @@ -102,6 +102,13 @@ public class Hold : StripeEntity, IHasId, IHasMetadata, IHasObject [STJS.JsonPropertyName("reason")] public string Reason { get; set; } + /// + /// List of ReserveReleases and the amounts released from this ReserveHold. + /// + [JsonProperty("release_details")] + [STJS.JsonPropertyName("release_details")] + public List ReleaseDetails { get; set; } + [JsonProperty("release_schedule")] [STJS.JsonPropertyName("release_schedule")] public HoldReleaseSchedule ReleaseSchedule { get; set; } diff --git a/src/Stripe.net/Entities/Reserve/Holds/HoldReleaseDetail.cs b/src/Stripe.net/Entities/Reserve/Holds/HoldReleaseDetail.cs new file mode 100644 index 0000000000..6bcf26de98 --- /dev/null +++ b/src/Stripe.net/Entities/Reserve/Holds/HoldReleaseDetail.cs @@ -0,0 +1,27 @@ +// File generated from our OpenAPI spec +namespace Stripe.Reserve +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class HoldReleaseDetail : StripeEntity + { + /// + /// The amount released by the ReserveRelease from this ReserveHold. A positive integer + /// representing how much is released in the smallest currency unit. + /// + [JsonProperty("amount")] + [STJS.JsonPropertyName("amount")] + public long Amount { get; set; } + + /// + /// The ReserveRelease which released funds from this ReserveHold (e.g., resrel_123). + /// + [JsonProperty("reserve_release")] + [STJS.JsonPropertyName("reserve_release")] + public string ReserveRelease { get; set; } + } +} diff --git a/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs index d2f88cbf28..862a50ed50 100644 --- a/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs +++ b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetails.cs @@ -92,6 +92,10 @@ public class SetupAttemptPaymentMethodDetails : StripeEntity { + /// + /// Uniquely identifies this particular Pix account. You can use this attribute to check + /// whether two Pix accounts are the same. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } } } diff --git a/src/Stripe.net/Entities/GiftCardOperations/GiftCardOperationDeactivation.cs b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetailsSatispay.cs similarity index 67% rename from src/Stripe.net/Entities/GiftCardOperations/GiftCardOperationDeactivation.cs rename to src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetailsSatispay.cs index d212968d6b..22217fd27a 100644 --- a/src/Stripe.net/Entities/GiftCardOperations/GiftCardOperationDeactivation.cs +++ b/src/Stripe.net/Entities/SetupAttempts/SetupAttemptPaymentMethodDetailsSatispay.cs @@ -6,7 +6,7 @@ namespace Stripe using STJS = System.Text.Json.Serialization; [STJS.JsonConverter(typeof(STJStripeEntityConverter))] - public class GiftCardOperationDeactivation : StripeEntity + public class SetupAttemptPaymentMethodDetailsSatispay : StripeEntity { } } diff --git a/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs b/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs index 6990cd01b5..724c0a9fac 100644 --- a/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs +++ b/src/Stripe.net/Entities/SetupIntents/SetupIntent.cs @@ -445,6 +445,14 @@ public PaymentMethod PaymentMethod [STJS.JsonPropertyName("payment_method_types")] public List PaymentMethodTypes { get; set; } + /// + /// Redaction status of this SetupIntent. If the SetupIntent isn't redacted, this field is + /// null. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public SetupIntentRedaction Redaction { get; set; } + [JsonProperty("setup_details")] [STJS.JsonPropertyName("setup_details")] public SetupIntentSetupDetails SetupDetails { get; set; } diff --git a/src/Stripe.net/Entities/SetupIntents/SetupIntentRedaction.cs b/src/Stripe.net/Entities/SetupIntents/SetupIntentRedaction.cs new file mode 100644 index 0000000000..b22d507fee --- /dev/null +++ b/src/Stripe.net/Entities/SetupIntents/SetupIntentRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SetupIntentRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBizum.cs b/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBizum.cs index 3f48efe3cb..e71efd7e83 100644 --- a/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBizum.cs +++ b/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBizum.cs @@ -8,5 +8,11 @@ namespace Stripe.SharedPayment [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class GrantedTokenPaymentMethodDetailsBizum : StripeEntity { + /// + /// A unique identifier for the buyer as determined by the local payment processor. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } } } diff --git a/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBlik.cs b/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBlik.cs index a9a8e96623..3fcecf1faf 100644 --- a/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBlik.cs +++ b/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsBlik.cs @@ -8,5 +8,11 @@ namespace Stripe.SharedPayment [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class GrantedTokenPaymentMethodDetailsBlik : StripeEntity { + /// + /// A unique and immutable identifier assigned by BLIK to every buyer. + /// + [JsonProperty("buyer_id")] + [STJS.JsonPropertyName("buyer_id")] + public string BuyerId { get; set; } } } diff --git a/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsPix.cs b/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsPix.cs index ff3ad86bd7..c58e6056c5 100644 --- a/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsPix.cs +++ b/src/Stripe.net/Entities/SharedPayment/GrantedTokens/GrantedTokenPaymentMethodDetailsPix.cs @@ -8,5 +8,12 @@ namespace Stripe.SharedPayment [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class GrantedTokenPaymentMethodDetailsPix : StripeEntity { + /// + /// Uniquely identifies this particular Pix account. You can use this attribute to check + /// whether two Pix accounts are the same. + /// + [JsonProperty("fingerprint")] + [STJS.JsonPropertyName("fingerprint")] + public string Fingerprint { get; set; } } } diff --git a/src/Stripe.net/Entities/Sources/Source.cs b/src/Stripe.net/Entities/Sources/Source.cs index 704333b728..1ca79ccc63 100644 --- a/src/Stripe.net/Entities/Sources/Source.cs +++ b/src/Stripe.net/Entities/Sources/Source.cs @@ -193,6 +193,14 @@ public class Source : StripeEntity, IHasId, IHasMetadata, IHasObject, IP [STJS.JsonPropertyName("receiver")] public SourceReceiver Receiver { get; set; } + /// + /// Redaction status of this source. If not null, this source is associated to a redaction + /// job. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public SourceRedaction Redaction { get; set; } + [JsonProperty("redirect")] [STJS.JsonPropertyName("redirect")] public SourceRedirect Redirect { get; set; } diff --git a/src/Stripe.net/Entities/Sources/SourceRedaction.cs b/src/Stripe.net/Entities/Sources/SourceRedaction.cs new file mode 100644 index 0000000000..009f96419a --- /dev/null +++ b/src/Stripe.net/Entities/Sources/SourceRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SourceRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettings.cs b/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettings.cs index 0e2f34addb..f7ec351cb2 100644 --- a/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettings.cs +++ b/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettings.cs @@ -45,6 +45,27 @@ public List AccountTaxIds internal List> InternalAccountTaxIds { get; set; } #endregion + /// + /// A list of up to 4 custom fields to be displayed on the invoice. + /// + [JsonProperty("custom_fields")] + [STJS.JsonPropertyName("custom_fields")] + public List CustomFields { get; set; } + + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] + [STJS.JsonPropertyName("description")] + public string Description { get; set; } + + /// + /// Footer to be displayed on the invoice. + /// + [JsonProperty("footer")] + [STJS.JsonPropertyName("footer")] + public string Footer { get; set; } + [JsonProperty("issuer")] [STJS.JsonPropertyName("issuer")] public SubscriptionInvoiceSettingsIssuer Issuer { get; set; } diff --git a/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettingsCustomField.cs b/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettingsCustomField.cs new file mode 100644 index 0000000000..cb1e63c11c --- /dev/null +++ b/src/Stripe.net/Entities/Subscriptions/SubscriptionInvoiceSettingsCustomField.cs @@ -0,0 +1,25 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class SubscriptionInvoiceSettingsCustomField : StripeEntity + { + /// + /// The name of the custom field. + /// + [JsonProperty("name")] + [STJS.JsonPropertyName("name")] + public string Name { get; set; } + + /// + /// The value of the custom field. + /// + [JsonProperty("value")] + [STJS.JsonPropertyName("value")] + public string Value { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs b/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs index d737ab8fb7..54ac5af10e 100644 --- a/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs +++ b/src/Stripe.net/Entities/Subscriptions/SubscriptionPaymentSettings.cs @@ -33,8 +33,9 @@ public class SubscriptionPaymentSettings : StripeEntitykr_card, link, momo, multibanco, naver_pay, /// nz_bank_account, p24, pay_by_bank, payco, paynow, /// paypal, payto, pix, promptpay, revolut_pay, - /// sepa_credit_transfer, sepa_debit, sofort, stripe_balance, - /// swish, twint, upi, us_bank_account, or wechat_pay. + /// satispay, sepa_credit_transfer, sepa_debit, sofort, + /// stripe_balance, swish, twint, upi, us_bank_account, + /// or wechat_pay. /// [JsonProperty("payment_method_types")] [STJS.JsonPropertyName("payment_method_types")] diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundContext.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundContext.cs index 5cf2c9e8ff..cd99d7ffe2 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundContext.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundContext.cs @@ -8,26 +8,44 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class TaxFundContext : StripeEntity { + /// + /// The Checkout Session associated with this sweep, if any. + /// [JsonProperty("checkout_session")] [STJS.JsonPropertyName("checkout_session")] public string CheckoutSession { get; set; } + /// + /// The Credit Note associated with this sweep, if any. + /// [JsonProperty("credit_note")] [STJS.JsonPropertyName("credit_note")] public string CreditNote { get; set; } + /// + /// The Invoice associated with this sweep, if any. + /// [JsonProperty("invoice")] [STJS.JsonPropertyName("invoice")] public string Invoice { get; set; } + /// + /// The PaymentIntent associated with this sweep, if any. + /// [JsonProperty("payment_intent")] [STJS.JsonPropertyName("payment_intent")] public string PaymentIntent { get; set; } + /// + /// The Refund associated with this sweep, if any. + /// [JsonProperty("refund")] [STJS.JsonPropertyName("refund")] public string Refund { get; set; } + /// + /// The Tax Transaction associated with this sweep, if any. + /// [JsonProperty("tax_transaction")] [STJS.JsonPropertyName("tax_transaction")] public string TaxTransaction { get; set; } diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundDestination.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundDestination.cs index b5aa3e8127..02cf71e3b5 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundDestination.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundDestination.cs @@ -22,6 +22,10 @@ public class TaxFundDestination : StripeEntity [STJS.JsonPropertyName("tax_fund_account")] public TaxFundDestinationTaxFundAccount TaxFundAccount { get; set; } + /// + /// The type of account funds moved to or from. Either payments_balance or + /// tax_fund_account. + /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] public string Type { get; set; } diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationPaymentsBalance.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationPaymentsBalance.cs index 8326aee640..8f4a21f684 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationPaymentsBalance.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationPaymentsBalance.cs @@ -10,6 +10,10 @@ public class TaxFundDestinationPaymentsBalance : StripeEntity + /// (ID of the BalanceTransaction) + /// The balance transaction on the payments balance side of the sweep. + /// [JsonIgnore] [STJS.JsonIgnore] public string BalanceTransactionId @@ -18,6 +22,12 @@ public string BalanceTransactionId set => this.InternalBalanceTransaction = SetExpandableFieldId(value, this.InternalBalanceTransaction); } + /// + /// (Expanded) + /// The balance transaction on the payments balance side of the sweep. + /// + /// For more information, see the expand documentation. + /// [JsonIgnore] [STJS.JsonIgnore] public BalanceTransaction BalanceTransaction diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationTaxFundAccount.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationTaxFundAccount.cs index 95693427ed..1d71222ef4 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationTaxFundAccount.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundDestinationTaxFundAccount.cs @@ -8,10 +8,16 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class TaxFundDestinationTaxFundAccount : StripeEntity { + /// + /// The tax fund financial account involved in the sweep. + /// [JsonProperty("financial_account")] [STJS.JsonPropertyName("financial_account")] public string FinancialAccount { get; set; } + /// + /// The financial account transaction on the tax fund account side of the sweep. + /// [JsonProperty("transaction")] [STJS.JsonPropertyName("transaction")] public string Transaction { get; set; } diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundSource.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundSource.cs index 4044900dce..07df49b4e1 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundSource.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundSource.cs @@ -22,6 +22,10 @@ public class TaxFundSource : StripeEntity [STJS.JsonPropertyName("tax_fund_account")] public TaxFundSourceTaxFundAccount TaxFundAccount { get; set; } + /// + /// The type of account funds moved to or from. Either payments_balance or + /// tax_fund_account. + /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] public string Type { get; set; } diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundSourcePaymentsBalance.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundSourcePaymentsBalance.cs index bc31791c9e..27c58aafb2 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundSourcePaymentsBalance.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundSourcePaymentsBalance.cs @@ -10,6 +10,10 @@ public class TaxFundSourcePaymentsBalance : StripeEntity + /// (ID of the BalanceTransaction) + /// The balance transaction on the payments balance side of the sweep. + /// [JsonIgnore] [STJS.JsonIgnore] public string BalanceTransactionId @@ -18,6 +22,12 @@ public string BalanceTransactionId set => this.InternalBalanceTransaction = SetExpandableFieldId(value, this.InternalBalanceTransaction); } + /// + /// (Expanded) + /// The balance transaction on the payments balance side of the sweep. + /// + /// For more information, see the expand documentation. + /// [JsonIgnore] [STJS.JsonIgnore] public BalanceTransaction BalanceTransaction diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundSourceTaxFundAccount.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundSourceTaxFundAccount.cs index 86a8fe37c8..5f8f9aa8cb 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundSourceTaxFundAccount.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundSourceTaxFundAccount.cs @@ -8,10 +8,16 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class TaxFundSourceTaxFundAccount : StripeEntity { + /// + /// The tax fund financial account involved in the sweep. + /// [JsonProperty("financial_account")] [STJS.JsonPropertyName("financial_account")] public string FinancialAccount { get; set; } + /// + /// The financial account transaction on the tax fund account side of the sweep. + /// [JsonProperty("transaction")] [STJS.JsonPropertyName("transaction")] public string Transaction { get; set; } diff --git a/src/Stripe.net/Entities/TaxFunds/TaxFundTrigger.cs b/src/Stripe.net/Entities/TaxFunds/TaxFundTrigger.cs index b213fec9b3..fd2e92036f 100644 --- a/src/Stripe.net/Entities/TaxFunds/TaxFundTrigger.cs +++ b/src/Stripe.net/Entities/TaxFunds/TaxFundTrigger.cs @@ -10,6 +10,10 @@ public class TaxFundTrigger : StripeEntity { #region Expandable BalanceTransaction + /// + /// (ID of the BalanceTransaction) + /// The balance transaction on the payments balance that triggered the sweep. + /// [JsonIgnore] [STJS.JsonIgnore] public string BalanceTransactionId @@ -18,6 +22,12 @@ public string BalanceTransactionId set => this.InternalBalanceTransaction = SetExpandableFieldId(value, this.InternalBalanceTransaction); } + /// + /// (Expanded) + /// The balance transaction on the payments balance that triggered the sweep. + /// + /// For more information, see the expand documentation. + /// [JsonIgnore] [STJS.JsonIgnore] public BalanceTransaction BalanceTransaction @@ -33,6 +43,9 @@ public BalanceTransaction BalanceTransaction internal ExpandableField InternalBalanceTransaction { get; set; } #endregion + /// + /// The type of event that triggered the sweep. Always balance_transaction. + /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] public string Type { get; set; } diff --git a/src/Stripe.net/Entities/Tokens/Token.cs b/src/Stripe.net/Entities/Tokens/Token.cs index 358cbbb1ca..b6d5fc22b9 100644 --- a/src/Stripe.net/Entities/Tokens/Token.cs +++ b/src/Stripe.net/Entities/Tokens/Token.cs @@ -93,6 +93,14 @@ public class Token : StripeEntity, IHasId, IHasObject [STJS.JsonPropertyName("livemode")] public bool Livemode { get; set; } + /// + /// Redaction status of this token. If not null, this token is associated to a redaction + /// job. + /// + [JsonProperty("redaction")] + [STJS.JsonPropertyName("redaction")] + public TokenRedaction Redaction { get; set; } + /// /// Type of the token: account, bank_account, card, or pii. /// diff --git a/src/Stripe.net/Entities/Tokens/TokenRedaction.cs b/src/Stripe.net/Entities/Tokens/TokenRedaction.cs new file mode 100644 index 0000000000..69d0084969 --- /dev/null +++ b/src/Stripe.net/Entities/Tokens/TokenRedaction.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class TokenRedaction : StripeEntity + { + /// + /// Indicates whether this object and its related objects have been redacted or not. + /// One of: processing, redacted, or validated. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/V2/Iam/ApiKeys/ApiKey.cs b/src/Stripe.net/Entities/V2/Iam/ApiKeys/ApiKey.cs index 3086e1c8f8..a7c0516cc9 100644 --- a/src/Stripe.net/Entities/V2/Iam/ApiKeys/ApiKey.cs +++ b/src/Stripe.net/Entities/V2/Iam/ApiKeys/ApiKey.cs @@ -28,6 +28,13 @@ public class ApiKey : StripeEntity, IHasId, IHasObject [STJS.JsonPropertyName("object")] public string Object { get; set; } + /// + /// List of connect permissions for this API key. + /// + [JsonProperty("connect_permissions")] + [STJS.JsonPropertyName("connect_permissions")] + public List ConnectPermissions { get; set; } + /// /// Timestamp when the API key was created. /// @@ -86,6 +93,13 @@ public class ApiKey : StripeEntity, IHasId, IHasObject [STJS.JsonPropertyName("note")] public string Note { get; set; } + /// + /// List of permissions for this API key. + /// + [JsonProperty("permissions")] + [STJS.JsonPropertyName("permissions")] + public List Permissions { get; set; } + /// /// Token set for a publishable key. /// diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccount.cs b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccount.cs index 3138214c86..da9597f8ee 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccount.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccount.cs @@ -61,6 +61,14 @@ public class FinancialAccount : StripeEntity, IHasId, IHasMeta [STJS.JsonPropertyName("created")] public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + /// + /// If this is a credit FinancialAccount, this hash includes details specific to + /// credit FinancialAccounts. + /// + [JsonProperty("credit")] + [STJS.JsonPropertyName("credit")] + public FinancialAccountCredit Credit { get; set; } + /// /// A descriptive name for the FinancialAccount, up to 50 characters long. This name will be /// used in the Stripe Dashboard and embedded components. @@ -145,8 +153,8 @@ public class FinancialAccount : StripeEntity, IHasId, IHasMeta /// Type of the FinancialAccount. An additional hash is included on the FinancialAccount /// with a name matching this value. It contains additional information specific to the /// FinancialAccount type. - /// One of: accrued_fees, multiprocessor_settlement, other, - /// payments, or storage. + /// One of: accrued_fees, credit, multiprocessor_settlement, + /// other, payments, or storage. /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCredit.cs b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCredit.cs new file mode 100644 index 0000000000..35d7e410f1 --- /dev/null +++ b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCredit.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe.V2.MoneyManagement +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class FinancialAccountCredit : StripeEntity + { + /// + /// Details about how this credit FinancialAccount is funded. + /// + [JsonProperty("funded_by")] + [STJS.JsonPropertyName("funded_by")] + public FinancialAccountCreditFundedBy FundedBy { get; set; } + + /// + /// The currencies supported by this credit FinancialAccount. + /// + [JsonProperty("supported_currencies")] + [STJS.JsonPropertyName("supported_currencies")] + public List SupportedCurrencies { get; set; } + } +} diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreditFundedBy.cs b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreditFundedBy.cs new file mode 100644 index 0000000000..10431479df --- /dev/null +++ b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreditFundedBy.cs @@ -0,0 +1,26 @@ +// File generated from our OpenAPI spec +namespace Stripe.V2.MoneyManagement +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class FinancialAccountCreditFundedBy : StripeEntity + { + /// + /// Details for platform-funded credit FinancialAccounts. + /// + [JsonProperty("platform")] + [STJS.JsonPropertyName("platform")] + public FinancialAccountCreditFundedByPlatform Platform { get; set; } + + /// + /// The type of funding source for this credit FinancialAccount. + /// One of: platform, or stripe. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreditFundedByPlatform.cs b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreditFundedByPlatform.cs new file mode 100644 index 0000000000..d72229515f --- /dev/null +++ b/src/Stripe.net/Entities/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreditFundedByPlatform.cs @@ -0,0 +1,18 @@ +// File generated from our OpenAPI spec +namespace Stripe.V2.MoneyManagement +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeEntityConverter))] + public class FinancialAccountCreditFundedByPlatform : StripeEntity + { + /// + /// The platform FinancialAccount used to fund this credit FinancialAccount. + /// + [JsonProperty("financial_account")] + [STJS.JsonPropertyName("financial_account")] + public string FinancialAccount { get; set; } + } +} diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/InboundTransfers/InboundTransfer.cs b/src/Stripe.net/Entities/V2/MoneyManagement/InboundTransfers/InboundTransfer.cs index bb8c1eefc9..0c8d674a43 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/InboundTransfers/InboundTransfer.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/InboundTransfers/InboundTransfer.cs @@ -82,7 +82,8 @@ public class InboundTransfer : StripeEntity, IHasId, IHasObject public InboundTransferTo To { get; set; } /// - /// A list of history objects, representing changes in the state of the InboundTransfer. + /// A list of history objects, representing changes in the state of the InboundTransfer. The + /// most recent entry's type indicates the current status of the InboundTransfer. /// [JsonProperty("transfer_history")] [STJS.JsonPropertyName("transfer_history")] diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/PayoutIntents/PayoutIntentNextActionHandleFailure.cs b/src/Stripe.net/Entities/V2/MoneyManagement/PayoutIntents/PayoutIntentNextActionHandleFailure.cs index 5e250b9573..0dd654fbde 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/PayoutIntents/PayoutIntentNextActionHandleFailure.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/PayoutIntents/PayoutIntentNextActionHandleFailure.cs @@ -11,7 +11,7 @@ public class PayoutIntentNextActionHandleFailure : StripeEntity /// Open Enum. The reason for the failure. /// One of: account_not_configured_as_recipient, - /// currency_not_supported_for_financial_account_balance, + /// currency_not_supported_for_financial_account_balance, currency_required, /// feature_not_active_for_recipient, fx_rate_drift_exceeded_after_review, /// insufficient_funds, payout_method_account_type_incorrect, /// payout_method_amount_limit_exceeded, payout_method_canceled_by_customer, diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetails.cs b/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetails.cs index b0f2b53887..89b6658316 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetails.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetails.cs @@ -18,20 +18,20 @@ public class TransactionEntryTransactionDetails : StripeEntitydispute_reversal, financing_paydown, financing_paydown_reversal, /// inbound_payment, inbound_payment_failure, inbound_transfer, /// inbound_transfer_reversal, india_mdr_processing_fee, - /// issuing_dispute, issuing_dispute_fraud_liability_debit, - /// issuing_dispute_provisional_credit, - /// issuing_dispute_provisional_credit_reversal, minimum_balance_hold, - /// network_cost, obligation, outbound_payment, - /// outbound_payment_reversal, outbound_transfer, + /// issuing_authorization, issuing_dispute, + /// issuing_dispute_fraud_liability_debit, issuing_dispute_provisional_credit, + /// issuing_dispute_provisional_credit_reversal, issuing_transaction, + /// minimum_balance_hold, network_cost, obligation, + /// outbound_payment, outbound_payment_reversal, outbound_transfer, /// outbound_transfer_reversal, partial_capture_reversal, /// payment_method_passthrough_fee, payment_network_reserved_funds, /// platform_earning, platform_earning_refund, platform_fee, - /// received_credit, received_credit_reversal, received_debit, - /// received_debit_reversal, refund, refund_failure, - /// risk_reserved_funds, stripe_balance_payment_debit, - /// stripe_balance_payment_debit_reversal, stripe_fee, stripe_fee_tax, - /// tax_fund, tax_withholding, transfer_reversal, or - /// unreconciled_customer_funds. + /// platform_funded_credit_transaction, received_credit, + /// received_credit_reversal, received_debit, received_debit_reversal, + /// refund, refund_failure, risk_reserved_funds, + /// stripe_balance_payment_debit, stripe_balance_payment_debit_reversal, + /// stripe_fee, stripe_fee_tax, tax_fund, tax_withholding, + /// transfer_reversal, or unreconciled_customer_funds. /// [JsonProperty("category")] [STJS.JsonPropertyName("category")] diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetailsFlow.cs b/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetailsFlow.cs index 3e482f75a3..61d6ac0442 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetailsFlow.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/TransactionEntries/TransactionEntryTransactionDetailsFlow.cs @@ -8,6 +8,13 @@ namespace Stripe.V2.MoneyManagement [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class TransactionEntryTransactionDetailsFlow : StripeEntity { + /// + /// If applicable, the connected account associated with this Transaction's flow. + /// + [JsonProperty("account")] + [STJS.JsonPropertyName("account")] + public string Account { get; set; } + /// /// If applicable, the ID of the Adjustment that created this Transaction. /// @@ -72,6 +79,27 @@ public class TransactionEntryTransactionDetailsFlow : StripeEntity + /// If applicable, the ID of the Issuing authorization that created this Transaction. + /// + [JsonProperty("issuing_authorization")] + [STJS.JsonPropertyName("issuing_authorization")] + public string IssuingAuthorization { get; set; } + + /// + /// If applicable, the ID of the Issuing dispute that created this Transaction. + /// + [JsonProperty("issuing_dispute")] + [STJS.JsonPropertyName("issuing_dispute")] + public string IssuingDispute { get; set; } + + /// + /// If applicable, the ID of the Issuing transaction that created this Transaction. + /// + [JsonProperty("issuing_transaction")] + [STJS.JsonPropertyName("issuing_transaction")] + public string IssuingTransaction { get; set; } + /// /// If applicable, the ID of the OutboundPayment that created this Transaction. /// @@ -218,7 +246,8 @@ public class TransactionEntryTransactionDetailsFlow : StripeEntityadjustment, application_fee, application_fee_refund, /// charge, currency_conversion, debit_dispute, dispute, - /// fee_transaction, inbound_transfer, outbound_payment, + /// fee_transaction, inbound_transfer, issuing_authorization, + /// issuing_dispute, issuing_transaction, outbound_payment, /// outbound_transfer, payout, received_credit, received_debit, /// refund, reserve_hold, reserve_release, tax_fund, /// topup, transfer, transfer_reversal, diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/Transaction.cs b/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/Transaction.cs index 46cc4778a7..843044e033 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/Transaction.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/Transaction.cs @@ -55,20 +55,20 @@ public class Transaction : StripeEntity, IHasId, IHasObject /// dispute_reversal, financing_paydown, financing_paydown_reversal, /// inbound_payment, inbound_payment_failure, inbound_transfer, /// inbound_transfer_reversal, india_mdr_processing_fee, - /// issuing_dispute, issuing_dispute_fraud_liability_debit, - /// issuing_dispute_provisional_credit, - /// issuing_dispute_provisional_credit_reversal, minimum_balance_hold, - /// network_cost, obligation, outbound_payment, - /// outbound_payment_reversal, outbound_transfer, + /// issuing_authorization, issuing_dispute, + /// issuing_dispute_fraud_liability_debit, issuing_dispute_provisional_credit, + /// issuing_dispute_provisional_credit_reversal, issuing_transaction, + /// minimum_balance_hold, network_cost, obligation, + /// outbound_payment, outbound_payment_reversal, outbound_transfer, /// outbound_transfer_reversal, partial_capture_reversal, /// payment_method_passthrough_fee, payment_network_reserved_funds, /// platform_earning, platform_earning_refund, platform_fee, - /// received_credit, received_credit_reversal, received_debit, - /// received_debit_reversal, refund, refund_failure, - /// risk_reserved_funds, stripe_balance_payment_debit, - /// stripe_balance_payment_debit_reversal, stripe_fee, stripe_fee_tax, - /// tax_fund, tax_withholding, transfer_reversal, or - /// unreconciled_customer_funds. + /// platform_funded_credit_transaction, received_credit, + /// received_credit_reversal, received_debit, received_debit_reversal, + /// refund, refund_failure, risk_reserved_funds, + /// stripe_balance_payment_debit, stripe_balance_payment_debit_reversal, + /// stripe_fee, stripe_fee_tax, tax_fund, tax_withholding, + /// transfer_reversal, or unreconciled_customer_funds. /// [JsonProperty("category")] [STJS.JsonPropertyName("category")] diff --git a/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/TransactionFlow.cs b/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/TransactionFlow.cs index ccb86680c6..f04d9f495c 100644 --- a/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/TransactionFlow.cs +++ b/src/Stripe.net/Entities/V2/MoneyManagement/Transactions/TransactionFlow.cs @@ -8,6 +8,13 @@ namespace Stripe.V2.MoneyManagement [STJS.JsonConverter(typeof(STJStripeEntityConverter))] public class TransactionFlow : StripeEntity { + /// + /// If applicable, the connected account associated with this Transaction's flow. + /// + [JsonProperty("account")] + [STJS.JsonPropertyName("account")] + public string Account { get; set; } + /// /// If applicable, the ID of the Adjustment that created this Transaction. /// @@ -72,6 +79,27 @@ public class TransactionFlow : StripeEntity [STJS.JsonPropertyName("inbound_transfer")] public string InboundTransfer { get; set; } + /// + /// If applicable, the ID of the Issuing authorization that created this Transaction. + /// + [JsonProperty("issuing_authorization")] + [STJS.JsonPropertyName("issuing_authorization")] + public string IssuingAuthorization { get; set; } + + /// + /// If applicable, the ID of the Issuing dispute that created this Transaction. + /// + [JsonProperty("issuing_dispute")] + [STJS.JsonPropertyName("issuing_dispute")] + public string IssuingDispute { get; set; } + + /// + /// If applicable, the ID of the Issuing transaction that created this Transaction. + /// + [JsonProperty("issuing_transaction")] + [STJS.JsonPropertyName("issuing_transaction")] + public string IssuingTransaction { get; set; } + /// /// If applicable, the ID of the OutboundPayment that created this Transaction. /// @@ -218,7 +246,8 @@ public class TransactionFlow : StripeEntity /// will contain the ID of the flow. /// One of: adjustment, application_fee, application_fee_refund, /// charge, currency_conversion, debit_dispute, dispute, - /// fee_transaction, inbound_transfer, outbound_payment, + /// fee_transaction, inbound_transfer, issuing_authorization, + /// issuing_dispute, issuing_transaction, outbound_payment, /// outbound_transfer, payout, received_credit, received_debit, /// refund, reserve_hold, reserve_release, tax_fund, /// topup, transfer, transfer_reversal, diff --git a/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs b/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs index 1356284fd7..ed3281d4be 100644 --- a/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs +++ b/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs @@ -63,6 +63,11 @@ public static class StripeTypeRegistry { "coupon", typeof(Coupon) }, { "credit_note", typeof(CreditNote) }, { "credit_note_line_item", typeof(CreditNoteLineItem) }, + { "crypto.consumer_wallet", typeof(Crypto.CustomerConsumerWallet) }, + { "crypto.customer", typeof(Crypto.Customer) }, + { "crypto.onramp_session", typeof(Crypto.OnrampSession) }, + { "crypto.onramp_transaction_limits", typeof(Crypto.OnrampTransactionLimits) }, + { "crypto.payment_token", typeof(Crypto.CustomerPaymentToken) }, { "customer", typeof(Customer) }, { "customer_balance_transaction", typeof(CustomerBalanceTransaction) }, { "customer_cash_balance_transaction", typeof(CustomerCashBalanceTransaction) }, diff --git a/src/Stripe.net/Services/Accounts/AccountDocumentsOptions.cs b/src/Stripe.net/Services/Accounts/AccountDocumentsOptions.cs index f09c75ff75..b4fc03faa1 100644 --- a/src/Stripe.net/Services/Accounts/AccountDocumentsOptions.cs +++ b/src/Stripe.net/Services/Accounts/AccountDocumentsOptions.cs @@ -27,7 +27,8 @@ public class AccountDocumentsOptions : INestedOptions public AccountDocumentsCompanyLicenseOptions CompanyLicense { get; set; } /// - /// One or more documents showing the company's Memorandum of Association. + /// One or more documents showing the company's governing document (for example, a + /// memorandum of association, constitution, or articles of association). /// [JsonProperty("company_memorandum_of_association")] [STJS.JsonPropertyName("company_memorandum_of_association")] diff --git a/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs b/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs index e494a56600..d2058468cf 100644 --- a/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs +++ b/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs @@ -44,13 +44,14 @@ public class BalanceTransactionListOptions : ListOptions public string Source { get; set; } /// - /// Only returns transactions of the given type. One of: adjustment, advance, - /// advance_funding, anticipation_repayment, application_fee, - /// application_fee_refund, charge, climate_order_purchase, - /// climate_order_refund, connect_collection_transfer, contribution, - /// inbound_transfer, inbound_transfer_reversal, - /// issuing_authorization_hold, issuing_authorization_release, - /// issuing_dispute, issuing_transaction, obligation_outbound, + /// Only returns transactions of the given type. One of: tax_fund, adjustment, + /// advance, advance_funding, anticipation_repayment, + /// application_fee, application_fee_refund, charge, + /// climate_order_purchase, climate_order_refund, + /// connect_collection_transfer, contribution, inbound_transfer, + /// inbound_transfer_reversal, issuing_authorization_hold, + /// issuing_authorization_release, issuing_dispute, + /// issuing_transaction, obligation_outbound, /// obligation_reversal_inbound, payment, payment_failure_refund, /// payment_network_reserve_hold, payment_network_reserve_release, /// payment_refund, payment_reversal, payment_unreconciled, diff --git a/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionService.cs b/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionService.cs index 9a2bfcb22f..5e6328bb24 100644 --- a/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionService.cs +++ b/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionService.cs @@ -48,10 +48,10 @@ public virtual Task GetAsync(string id, BalanceTransactionGe /// ///

Returns a list of transactions that have contributed to the Stripe account balance - /// (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, + /// (for example, charges, transfers, and so on). The transactions return in sorted order, /// with the most recent transactions appearing first.

. /// - ///

Note that this endpoint was previously called “Balance history” and used the path + ///

The previous name of this endpoint was “Balance history,” and it used the path /// /v1/balance/history.

. ///
public virtual StripeList List(BalanceTransactionListOptions options = null, RequestOptions requestOptions = null) @@ -61,10 +61,10 @@ public virtual StripeList List(BalanceTransactionListOptions /// ///

Returns a list of transactions that have contributed to the Stripe account balance - /// (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, + /// (for example, charges, transfers, and so on). The transactions return in sorted order, /// with the most recent transactions appearing first.

. /// - ///

Note that this endpoint was previously called “Balance history” and used the path + ///

The previous name of this endpoint was “Balance history,” and it used the path /// /v1/balance/history.

. ///
public virtual Task> ListAsync(BalanceTransactionListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) @@ -74,10 +74,10 @@ public virtual Task> ListAsync(BalanceTransaction /// ///

Returns a list of transactions that have contributed to the Stripe account balance - /// (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, + /// (for example, charges, transfers, and so on). The transactions return in sorted order, /// with the most recent transactions appearing first.

. /// - ///

Note that this endpoint was previously called “Balance history” and used the path + ///

The previous name of this endpoint was “Balance history,” and it used the path /// /v1/balance/history.

. ///
public virtual IEnumerable ListAutoPaging(BalanceTransactionListOptions options = null, RequestOptions requestOptions = null) @@ -87,10 +87,10 @@ public virtual IEnumerable ListAutoPaging(BalanceTransaction /// ///

Returns a list of transactions that have contributed to the Stripe account balance - /// (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, + /// (for example, charges, transfers, and so on). The transactions return in sorted order, /// with the most recent transactions appearing first.

. /// - ///

Note that this endpoint was previously called “Balance history” and used the path + ///

The previous name of this endpoint was “Balance history,” and it used the path /// /v1/balance/history.

. ///
public virtual IAsyncEnumerable ListAutoPagingAsync(BalanceTransactionListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) diff --git a/src/Stripe.net/Services/Billing/CreditBalanceSummaries/CreditBalanceSummaryFilterApplicabilityScopeOptions.cs b/src/Stripe.net/Services/Billing/CreditBalanceSummaries/CreditBalanceSummaryFilterApplicabilityScopeOptions.cs index 25ec17777c..23d81bb79b 100644 --- a/src/Stripe.net/Services/Billing/CreditBalanceSummaries/CreditBalanceSummaryFilterApplicabilityScopeOptions.cs +++ b/src/Stripe.net/Services/Billing/CreditBalanceSummaries/CreditBalanceSummaryFilterApplicabilityScopeOptions.cs @@ -28,7 +28,8 @@ public class CreditBalanceSummaryFilterApplicabilityScopeOptions : INestedOption /// /// A list of prices that the credit grant can apply to. We currently only support the - /// metered prices. Cannot be used in combination with price_type. + /// metered prices. Cannot be used in combination with price_type. Limit 20 + /// prices. /// [JsonProperty("prices")] [STJS.JsonPropertyName("prices")] diff --git a/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantApplicabilityConfigScopeOptions.cs b/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantApplicabilityConfigScopeOptions.cs index 47c408414f..1bc9985786 100644 --- a/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantApplicabilityConfigScopeOptions.cs +++ b/src/Stripe.net/Services/Billing/CreditGrants/CreditGrantApplicabilityConfigScopeOptions.cs @@ -28,7 +28,8 @@ public class CreditGrantApplicabilityConfigScopeOptions : INestedOptions /// /// A list of prices that the credit grant can apply to. We currently only support the - /// metered prices. Cannot be used in combination with price_type. + /// metered prices. Cannot be used in combination with price_type. Limit 20 + /// prices. /// [JsonProperty("prices")] [STJS.JsonPropertyName("prices")] diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionAutomaticTaxOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionAutomaticTaxOptions.cs index 15fd4f6276..a25d786487 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionAutomaticTaxOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionAutomaticTaxOptions.cs @@ -8,6 +8,25 @@ namespace Stripe.Checkout [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] public class SessionAutomaticTaxOptions : INestedOptions { + /// + /// Controls how much address information Checkout collects when automatic_tax + /// is enabled. + /// + /// Defaults to full, which collects the address fields needed for the most accurate + /// tax calculation. Set to minimal to collect only the fields required for tax in + /// the buyer's country, accepting potentially less precise tax calculation in exchange for + /// a streamlined form. + /// + /// Only honored when automatic_tax.enabled is true, + /// billing_address_collection is auto, the resolved tax address source is the + /// session billing address, and ui_mode is form. + /// One of: full, or minimal. + /// + [JsonProperty("address_collection_precision")] + [STJS.JsonPropertyName("address_collection_precision")] + public string AddressCollectionPrecision { get; set; } + /// /// Set to true to calculate tax /// automatically using the customer's location. diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs index b65e0e9db8..21fbe2e334 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionCreateOptions.cs @@ -351,8 +351,6 @@ public class SessionCreateOptions : BaseOptions, IHasMetadata /// /// If a Customer is created or /// provided, the names can be saved to the Customer object as well. - /// - /// You can't set this parameter if ui_mode is custom. /// [JsonProperty("name_collection")] [STJS.JsonPropertyName("name_collection")] diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs index c5f7786800..03b6c7e986 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsOptions.cs @@ -325,6 +325,13 @@ public class SessionPaymentMethodOptionsOptions : INestedOptions [STJS.JsonPropertyName("sofort")] public SessionPaymentMethodOptionsSofortOptions Sofort { get; set; } + /// + /// contains details about the Sunbit payment method options. + /// + [JsonProperty("sunbit")] + [STJS.JsonPropertyName("sunbit")] + public SessionPaymentMethodOptionsSunbitOptions Sunbit { get; set; } + /// /// contains details about the Swish payment method options. /// diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsSunbitOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsSunbitOptions.cs new file mode 100644 index 0000000000..23c7146c0b --- /dev/null +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionPaymentMethodOptionsSunbitOptions.cs @@ -0,0 +1,42 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class SessionPaymentMethodOptionsSunbitOptions : INestedOptions + { + /// + /// Controls when the funds will be captured from the customer's account. + /// + [JsonProperty("capture_method")] + [STJS.JsonPropertyName("capture_method")] + public string CaptureMethod { get; set; } + + /// + /// 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")] + [STJS.JsonPropertyName("setup_future_usage")] + public string SetupFutureUsage { get; set; } + } +} diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataBillingCycleAnchorConfigOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataBillingCycleAnchorConfigOptions.cs new file mode 100644 index 0000000000..2050b9bd7d --- /dev/null +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataBillingCycleAnchorConfigOptions.cs @@ -0,0 +1,46 @@ +// File generated from our OpenAPI spec +namespace Stripe.Checkout +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class SessionSubscriptionDataBillingCycleAnchorConfigOptions : INestedOptions + { + /// + /// The day of the month the anchor should be. Ranges from 1 to 31. + /// + [JsonProperty("day_of_month")] + [STJS.JsonPropertyName("day_of_month")] + public long? DayOfMonth { get; set; } + + /// + /// The hour of the day the anchor should be. Ranges from 0 to 23. + /// + [JsonProperty("hour")] + [STJS.JsonPropertyName("hour")] + public long? Hour { get; set; } + + /// + /// The minute of the hour the anchor should be. Ranges from 0 to 59. + /// + [JsonProperty("minute")] + [STJS.JsonPropertyName("minute")] + public long? Minute { get; set; } + + /// + /// The month to start full cycle periods. Ranges from 1 to 12. + /// + [JsonProperty("month")] + [STJS.JsonPropertyName("month")] + public long? Month { get; set; } + + /// + /// The second of the minute the anchor should be. Ranges from 0 to 59. + /// + [JsonProperty("second")] + [STJS.JsonPropertyName("second")] + public long? Second { get; set; } + } +} diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataOptions.cs index 219557ed58..29eba7903f 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionSubscriptionDataOptions.cs @@ -39,6 +39,14 @@ public class SessionSubscriptionDataOptions : INestedOptions, IHasMetadata, IHas [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] public DateTime? BillingCycleAnchor { get; set; } + /// + /// Configures when the subscription schedule's billing cycle anchors to a specific day of + /// the week or month. + /// + [JsonProperty("billing_cycle_anchor_config")] + [STJS.JsonPropertyName("billing_cycle_anchor_config")] + public SessionSubscriptionDataBillingCycleAnchorConfigOptions BillingCycleAnchorConfig { get; set; } + /// /// Controls how prorations and invoices for subscriptions are calculated and orchestrated. /// diff --git a/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesLineOptions.cs b/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesLineOptions.cs index df3e1be72a..e2dac94340 100644 --- a/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesLineOptions.cs +++ b/src/Stripe.net/Services/CreditNotePreviewLines/CreditNotePreviewLinesLineOptions.cs @@ -59,7 +59,7 @@ public class CreditNotePreviewLinesLineOptions : INestedOptions, IHasMetadata, I public long? Quantity { get; set; } /// - /// A list of up to 10 tax amounts for the credit note line item. Not valid when + /// A list of up to 20 tax amounts for the credit note line item. Not valid when /// tax_rates is used or if invoice is set up with /// automatic_tax[enabled]=true. /// diff --git a/src/Stripe.net/Services/CreditNotes/CreditNoteLineOptions.cs b/src/Stripe.net/Services/CreditNotes/CreditNoteLineOptions.cs index 1694583aeb..8c16f801f6 100644 --- a/src/Stripe.net/Services/CreditNotes/CreditNoteLineOptions.cs +++ b/src/Stripe.net/Services/CreditNotes/CreditNoteLineOptions.cs @@ -59,7 +59,7 @@ public class CreditNoteLineOptions : INestedOptions, IHasMetadata, IHasSetTracki public long? Quantity { get; set; } /// - /// A list of up to 10 tax amounts for the credit note line item. Not valid when + /// A list of up to 20 tax amounts for the credit note line item. Not valid when /// tax_rates is used or if invoice is set up with /// automatic_tax[enabled]=true. /// diff --git a/src/Stripe.net/Services/Crypto/CustomerConsumerWallets/CustomerConsumerWalletListOptions.cs b/src/Stripe.net/Services/Crypto/CustomerConsumerWallets/CustomerConsumerWalletListOptions.cs new file mode 100644 index 0000000000..3c72531f8f --- /dev/null +++ b/src/Stripe.net/Services/Crypto/CustomerConsumerWallets/CustomerConsumerWalletListOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class CustomerConsumerWalletListOptions : ListOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/CustomerConsumerWallets/CustomerConsumerWalletService.cs b/src/Stripe.net/Services/Crypto/CustomerConsumerWallets/CustomerConsumerWalletService.cs new file mode 100644 index 0000000000..d2c6eda03e --- /dev/null +++ b/src/Stripe.net/Services/Crypto/CustomerConsumerWallets/CustomerConsumerWalletService.cs @@ -0,0 +1,60 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class CustomerConsumerWalletService : Service, + INestedListable + { + public CustomerConsumerWalletService() + { + } + + internal CustomerConsumerWalletService(ApiRequestor requestor) + : base(requestor) + { + } + + public CustomerConsumerWalletService(IStripeClient client) + : base(client) + { + } + + /// + ///

Lists the Consumer Wallets for a Crypto Customer.

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

Lists the Consumer Wallets for a Crypto Customer.

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

Lists the Consumer Wallets for a Crypto Customer.

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

Lists the Consumer Wallets for a Crypto Customer.

. + ///
+ public virtual IAsyncEnumerable ListAutoPagingAsync(string parentId, CustomerConsumerWalletListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/crypto/customers/{WebUtility.UrlEncode(parentId)}/crypto_consumer_wallets", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Crypto/CustomerPaymentTokens/CustomerPaymentTokenListOptions.cs b/src/Stripe.net/Services/Crypto/CustomerPaymentTokens/CustomerPaymentTokenListOptions.cs new file mode 100644 index 0000000000..279e9c0d72 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/CustomerPaymentTokens/CustomerPaymentTokenListOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class CustomerPaymentTokenListOptions : ListOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/CustomerPaymentTokens/CustomerPaymentTokenService.cs b/src/Stripe.net/Services/Crypto/CustomerPaymentTokens/CustomerPaymentTokenService.cs new file mode 100644 index 0000000000..3378d2cd43 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/CustomerPaymentTokens/CustomerPaymentTokenService.cs @@ -0,0 +1,60 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class CustomerPaymentTokenService : Service, + INestedListable + { + public CustomerPaymentTokenService() + { + } + + internal CustomerPaymentTokenService(ApiRequestor requestor) + : base(requestor) + { + } + + public CustomerPaymentTokenService(IStripeClient client) + : base(client) + { + } + + /// + ///

Lists the Payment Tokens for a Crypto Customer.

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

Lists the Payment Tokens for a Crypto Customer.

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

Lists the Payment Tokens for a Crypto Customer.

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

Lists the Payment Tokens for a Crypto Customer.

. + ///
+ public virtual IAsyncEnumerable ListAutoPagingAsync(string parentId, CustomerPaymentTokenListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/crypto/customers/{WebUtility.UrlEncode(parentId)}/payment_tokens", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Crypto/Customers/CustomerGetOptions.cs b/src/Stripe.net/Services/Crypto/Customers/CustomerGetOptions.cs new file mode 100644 index 0000000000..2ef99c6ca4 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/Customers/CustomerGetOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class CustomerGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/Customers/CustomerService.cs b/src/Stripe.net/Services/Crypto/Customers/CustomerService.cs new file mode 100644 index 0000000000..5f88726e5d --- /dev/null +++ b/src/Stripe.net/Services/Crypto/Customers/CustomerService.cs @@ -0,0 +1,52 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class CustomerService : Service, + IRetrievable + { + private CustomerConsumerWalletService consumerWallets; + private CustomerPaymentTokenService paymentTokens; + + public CustomerService() + { + } + + internal CustomerService(ApiRequestor requestor) + : base(requestor) + { + } + + public CustomerService(IStripeClient client) + : base(client) + { + } + + public virtual CustomerConsumerWalletService ConsumerWallets => this.consumerWallets ??= new CustomerConsumerWalletService( + this.Requestor); + + public virtual CustomerPaymentTokenService PaymentTokens => this.paymentTokens ??= new CustomerPaymentTokenService( + this.Requestor); + + /// + ///

Retrieves the details of a Crypto Customer.

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

Retrieves the details of a Crypto Customer.

. + ///
+ public virtual Task GetAsync(string id, CustomerGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Get, $"/v1/crypto/customers/{WebUtility.UrlEncode(id)}", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionCheckoutOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionCheckoutOptions.cs new file mode 100644 index 0000000000..6252a14684 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionCheckoutOptions.cs @@ -0,0 +1,18 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionCheckoutOptions : BaseOptions + { + /// + /// This hash contains details about the mandate to create. + /// + [JsonProperty("mandate_data")] + [STJS.JsonPropertyName("mandate_data")] + public OnrampSessionMandateDataOptions MandateData { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionCreateOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionCreateOptions.cs new file mode 100644 index 0000000000..8e78182d30 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionCreateOptions.cs @@ -0,0 +1,179 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionCreateOptions : BaseOptions, IHasMetadata + { + /// + /// The IP address of the customer the platform intends to onramp. + /// + /// If the user's IP is in a region we can't support, we return an HTTP 400 with an + /// appropriate error code. + /// + /// We support IPv4 and IPv6 addresses. Geographic supportability is checked again later in + /// the onramp flow, which provides a way to hide the onramp option from ineligible users + /// for a better user experience. + /// + [JsonProperty("customer_ip_address")] + [STJS.JsonPropertyName("customer_ip_address")] + public string CustomerIpAddress { get; set; } + + /// + /// The default amount of crypto to exchange into. + /// + /// * When left null, a default value is computed if source_amount, + /// destination_currency, and destination_network are set. * When set, both + /// destination_currency and destination_network must also be set. All + /// cryptocurrencies are supported to their full precisions (for example, 18 decimal places + /// for eth). We validate and generate an error if the amount exceeds the supported + /// precision based on the exchange currency. Setting source_amount is mutually + /// exclusive with setting destination_amount (only one or the other is supported). + /// Users can update the amount in the onramp UI. + /// + [JsonProperty("destination_amount")] + [STJS.JsonPropertyName("destination_amount")] + public string DestinationAmount { get; set; } + + /// + /// The list of destination cryptocurrencies a user can choose from. + /// + /// * When left null, all supported cryptocurrencies are shown in the onramp UI subject to + /// destination_networks if set. * When set, it must be a non-empty array where all + /// values in the array are valid cryptocurrencies. You can use it to lock users to a + /// specific cryptocurrency by passing a single value array. Users cannot + /// override this parameter. + /// One of: avax, btc, eth, matic, sol, usdc, + /// wld, or xlm. + /// + [JsonProperty("destination_currencies")] + [STJS.JsonPropertyName("destination_currencies")] + public List DestinationCurrencies { get; set; } + + /// + /// The default destination cryptocurrency. + /// + /// * When left null, the first value of destination_currencies is selected. * When + /// set, if destination_currencies is also set, the value of + /// destination_currency must be present in that array. To lock a + /// destination_currency, specify that value as the single value for + /// destination_currencies. Users can select a different cryptocurrency in the onramp + /// UI subject to destination_currencies if set. + /// One of: avax, btc, eth, matic, sol, usdc, + /// wld, or xlm. + /// + [JsonProperty("destination_currency")] + [STJS.JsonPropertyName("destination_currency")] + public string DestinationCurrency { get; set; } + + /// + /// The default destination crypto network. + /// + /// * When left null, the first value of destination_networks is selected. * When + /// set, if destination_networks is also set, the value of destination_network + /// must be present in that array. To lock a destination_network, specify that value + /// as the single value for destination_networks. Users can select a different + /// network in the onramp UI subject to destination_networks if set. + /// One of: avalanche, base, bitcoin, ethereum, optimism, + /// polygon, solana, stellar, or worldchain. + /// + [JsonProperty("destination_network")] + [STJS.JsonPropertyName("destination_network")] + public string DestinationNetwork { get; set; } + + /// + /// The list of destination crypto networks user can choose from. + /// + /// * When left null, all supported crypto networks are shown in the onramp UI. * When set, + /// it must be a non-empty array where values in the array are each a valid crypto network. + /// It can be used to lock users to a specific network by passing a single value array. + /// Users cannot override this parameter. + /// One of: avalanche, base, bitcoin, ethereum, optimism, + /// polygon, solana, stellar, or worldchain. + /// + [JsonProperty("destination_networks")] + [STJS.JsonPropertyName("destination_networks")] + public List DestinationNetworks { get; set; } + + /// + /// Pre-populate some of the required KYC information for the user if you've already + /// collected it within your application. + /// + /// Related guide: Using + /// the API. + /// + [JsonProperty("kyc_details")] + [STJS.JsonPropertyName("kyc_details")] + public OnrampSessionKycDetailsOptions KycDetails { get; set; } + + /// + /// Whether or not to lock the suggested wallet address. If destination tags are provided, + /// this will also lock the destination tags. + /// + [JsonProperty("lock_wallet_address")] + [STJS.JsonPropertyName("lock_wallet_address")] + public bool? LockWalletAddress { 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")] + [STJS.JsonPropertyName("metadata")] + public Dictionary Metadata { get; set; } + + /// + /// Speed at which the cryptocurrency is delivered to the wallet One of: instant + /// (default): crypto is delivered when payment is confirmed standard: crypto is + /// delivered when payment settles. + /// One of: instant, or standard. + /// + [JsonProperty("settlement_speed")] + [STJS.JsonPropertyName("settlement_speed")] + public string SettlementSpeed { get; set; } + + /// + /// The default amount of fiat (in decimal) to exchange into crypto. + /// + /// * When left null, a default value is computed if destination_amount is set. * + /// When set, setting source_amount is mutually exclusive with setting + /// destination_amount (only one or the other is supported). We don't support + /// fractional pennies. If fractional minor units of a currency are passed in, it generates + /// an error. Users can update the value in the onramp UI. + /// + [JsonProperty("source_amount")] + [STJS.JsonPropertyName("source_amount")] + public string SourceAmount { get; set; } + + /// + /// The default source fiat currency for the onramp session. + /// + /// * When left null, a default currency is selected based on user locale. * When set, it + /// must be one of the fiat currencies supported by onramp. Users can still select a + /// different currency in the onramp UI. + /// One of: eur, gbp, or usd. + /// + [JsonProperty("source_currency")] + [STJS.JsonPropertyName("source_currency")] + public string SourceCurrency { get; set; } + + /// + /// The end customer's crypto wallet address (for each network) to use for this transaction. + /// + /// * When left null, the user enters their wallet in the onramp UI. * When set, the + /// platform must set either destination_networks or destination_network and + /// we perform address validation. Users can still select a different wallet in the onramp + /// UI. + /// + [JsonProperty("wallet_addresses")] + [STJS.JsonPropertyName("wallet_addresses")] + public OnrampSessionWalletAddressesOptions WalletAddresses { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionGetOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionGetOptions.cs new file mode 100644 index 0000000000..4c699aca8d --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionGetOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionKycDetailsOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionKycDetailsOptions.cs new file mode 100644 index 0000000000..e970ba00d0 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionKycDetailsOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionKycDetailsOptions : INestedOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionListOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionListOptions.cs new file mode 100644 index 0000000000..e9ca5a8ab0 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionListOptions.cs @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionListOptions : ListOptions + { + /// + /// Only return onramp sessions that were created during the given date interval. + /// + [JsonProperty("created")] + [JsonConverter(typeof(AnyOfConverter))] + [STJS.JsonPropertyName("created")] + [STJS.JsonConverter(typeof(STJAnyOfConverter))] + public AnyOf Created { get; set; } + + /// + /// The destination cryptocurrency to filter by. + /// One of: avax, btc, eth, matic, sol, usdc, + /// wld, or xlm. + /// + [JsonProperty("destination_currency")] + [STJS.JsonPropertyName("destination_currency")] + public string DestinationCurrency { get; set; } + + /// + /// The destination blockchain network to filter by. + /// One of: avalanche, base, bitcoin, ethereum, optimism, + /// polygon, solana, stellar, or worldchain. + /// + [JsonProperty("destination_network")] + [STJS.JsonPropertyName("destination_network")] + public string DestinationNetwork { get; set; } + + /// + /// The status of the Onramp Session. One of = {initialized, rejected, requires_payment, + /// fulfillment_processing, fulfillment_complete}. + /// One of: fulfillment_complete, fulfillment_processing, initialized, + /// rejected, or requires_payment. + /// + [JsonProperty("status")] + [STJS.JsonPropertyName("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOfflineOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOfflineOptions.cs new file mode 100644 index 0000000000..857ce016cf --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOfflineOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionMandateDataCustomerAcceptanceOfflineOptions : INestedOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOnlineOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOnlineOptions.cs new file mode 100644 index 0000000000..e80e54cac5 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOnlineOptions.cs @@ -0,0 +1,25 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionMandateDataCustomerAcceptanceOnlineOptions : INestedOptions + { + /// + /// The IP address from which the Mandate was accepted by the customer. + /// + [JsonProperty("ip_address")] + [STJS.JsonPropertyName("ip_address")] + public string IpAddress { get; set; } + + /// + /// The user agent of the browser from which the Mandate was accepted by the customer. + /// + [JsonProperty("user_agent")] + [STJS.JsonPropertyName("user_agent")] + public string UserAgent { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOptions.cs new file mode 100644 index 0000000000..3d7b02d867 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataCustomerAcceptanceOptions.cs @@ -0,0 +1,46 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionMandateDataCustomerAcceptanceOptions : INestedOptions + { + /// + /// The time at which the customer accepted the Mandate. + /// + [JsonProperty("accepted_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + [STJS.JsonPropertyName("accepted_at")] + [STJS.JsonConverter(typeof(STJUnixDateTimeConverter))] + public DateTime? AcceptedAt { get; set; } + + /// + /// If this is a Mandate accepted offline, this hash contains details about the offline + /// acceptance. + /// + [JsonProperty("offline")] + [STJS.JsonPropertyName("offline")] + public OnrampSessionMandateDataCustomerAcceptanceOfflineOptions Offline { get; set; } + + /// + /// If this is a Mandate accepted online, this hash contains details about the online + /// acceptance. + /// + [JsonProperty("online")] + [STJS.JsonPropertyName("online")] + public OnrampSessionMandateDataCustomerAcceptanceOnlineOptions Online { get; set; } + + /// + /// The type of customer acceptance information included with the Mandate. One of + /// online or offline. + /// One of: offline, or online. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataOptions.cs new file mode 100644 index 0000000000..edc5718f36 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionMandateDataOptions.cs @@ -0,0 +1,18 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionMandateDataOptions : INestedOptions + { + /// + /// This hash contains details about the customer acceptance of the Mandate. + /// + [JsonProperty("customer_acceptance")] + [STJS.JsonPropertyName("customer_acceptance")] + public OnrampSessionMandateDataCustomerAcceptanceOptions CustomerAcceptance { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionQuoteOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionQuoteOptions.cs new file mode 100644 index 0000000000..c6fcf86d86 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionQuoteOptions.cs @@ -0,0 +1,12 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionQuoteOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionService.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionService.cs new file mode 100644 index 0000000000..6febc55cc3 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionService.cs @@ -0,0 +1,148 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class OnrampSessionService : Service, + ICreatable, + IListable, + IRetrievable + { + public OnrampSessionService() + { + } + + internal OnrampSessionService(ApiRequestor requestor) + : base(requestor) + { + } + + public OnrampSessionService(IStripeClient client) + : base(client) + { + } + + /// + ///

Completes a headless CryptoOnrampSession.

. + /// + ///

This method will attempt to confirm the payment and execute the quote to deliver the + /// crypto to the customer.

. + ///
+ public virtual OnrampSession Checkout(string id, OnrampSessionCheckoutOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/crypto/onramp_sessions/{WebUtility.UrlEncode(id)}/checkout", options, requestOptions); + } + + /// + ///

Completes a headless CryptoOnrampSession.

. + /// + ///

This method will attempt to confirm the payment and execute the quote to deliver the + /// crypto to the customer.

. + ///
+ public virtual Task CheckoutAsync(string id, OnrampSessionCheckoutOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/crypto/onramp_sessions/{WebUtility.UrlEncode(id)}/checkout", options, requestOptions, cancellationToken); + } + + /// + ///

Creates a CryptoOnrampSession object.

. + /// + ///

After the CryptoOnrampSession is created, display the onramp session modal using the + /// client_secret.

. + /// + ///

Related guide: Set up + /// an onramp integration

. + ///
+ public virtual OnrampSession Create(OnrampSessionCreateOptions options, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/crypto/onramp_sessions", options, requestOptions); + } + + /// + ///

Creates a CryptoOnrampSession object.

. + /// + ///

After the CryptoOnrampSession is created, display the onramp session modal using the + /// client_secret.

. + /// + ///

Related guide: Set up + /// an onramp integration

. + ///
+ public virtual Task CreateAsync(OnrampSessionCreateOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/crypto/onramp_sessions", options, requestOptions, cancellationToken); + } + + /// + ///

Retrieves the details of a CryptoOnrampSession that was previously created.

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

Retrieves the details of a CryptoOnrampSession that was previously created.

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

Returns a list of onramp sessions that match the filter criteria. The onramp sessions + /// are returned in sorted order, with the most recent onramp sessions appearing first.

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

Returns a list of onramp sessions that match the filter criteria. The onramp sessions + /// are returned in sorted order, with the most recent onramp sessions appearing first.

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

Returns a list of onramp sessions that match the filter criteria. The onramp sessions + /// are returned in sorted order, with the most recent onramp sessions appearing first.

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

Returns a list of onramp sessions that match the filter criteria. The onramp sessions + /// are returned in sorted order, with the most recent onramp sessions appearing first.

. + ///
+ public virtual IAsyncEnumerable ListAutoPagingAsync(OnrampSessionListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/crypto/onramp_sessions", options, requestOptions, cancellationToken); + } + + /// + ///

Refreshes an executable quote for a CryptoOnrampSession.

. + ///
+ public virtual OnrampSession Quote(string id, OnrampSessionQuoteOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Post, $"/v1/crypto/onramp_sessions/{WebUtility.UrlEncode(id)}/quote", options, requestOptions); + } + + /// + ///

Refreshes an executable quote for a CryptoOnrampSession.

. + ///
+ public virtual Task QuoteAsync(string id, OnrampSessionQuoteOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Post, $"/v1/crypto/onramp_sessions/{WebUtility.UrlEncode(id)}/quote", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionWalletAddressesDestinationTagsOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionWalletAddressesDestinationTagsOptions.cs new file mode 100644 index 0000000000..591f2d60d8 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionWalletAddressesDestinationTagsOptions.cs @@ -0,0 +1,15 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionWalletAddressesDestinationTagsOptions : INestedOptions + { + [JsonProperty("stellar")] + [STJS.JsonPropertyName("stellar")] + public string Stellar { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionWalletAddressesOptions.cs b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionWalletAddressesOptions.cs new file mode 100644 index 0000000000..d0983ea3d5 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampSessions/OnrampSessionWalletAddressesOptions.cs @@ -0,0 +1,21 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampSessionWalletAddressesOptions : INestedOptions + { + /// + /// The end customer's crypto wallet destination tag (for each network) to use for this + /// transaction. This only applies for tag-based assets such as XLM. + /// + /// * When left null, the user enters their wallet in the onramp UI. + /// + [JsonProperty("destination_tags")] + [STJS.JsonPropertyName("destination_tags")] + public OnrampSessionWalletAddressesDestinationTagsOptions DestinationTags { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampTransactionLimits/OnrampTransactionLimitsGetOptions.cs b/src/Stripe.net/Services/Crypto/OnrampTransactionLimits/OnrampTransactionLimitsGetOptions.cs new file mode 100644 index 0000000000..e88d529ca5 --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampTransactionLimits/OnrampTransactionLimitsGetOptions.cs @@ -0,0 +1,42 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class OnrampTransactionLimitsGetOptions : BaseOptions + { + /// + /// The IP address of the customer requesting transaction limits. We support IPv4 and IPv6 + /// addresses. + /// + [JsonProperty("customer_ip_address")] + [STJS.JsonPropertyName("customer_ip_address")] + public string CustomerIpAddress { get; set; } + + /// + /// The destination blockchain network to use for limit calculations. + /// One of: avalanche, base, bitcoin, ethereum, optimism, + /// polygon, solana, stellar, or worldchain. + /// + [JsonProperty("destination_network")] + [STJS.JsonPropertyName("destination_network")] + public string DestinationNetwork { get; set; } + + /// + /// The destination tag for the wallet address, if applicable for the network. + /// + [JsonProperty("destination_tag")] + [STJS.JsonPropertyName("destination_tag")] + public string DestinationTag { get; set; } + + /// + /// The wallet address to use for destination-specific limit calculations. + /// + [JsonProperty("wallet_address")] + [STJS.JsonPropertyName("wallet_address")] + public string WalletAddress { get; set; } + } +} diff --git a/src/Stripe.net/Services/Crypto/OnrampTransactionLimits/OnrampTransactionLimitsService.cs b/src/Stripe.net/Services/Crypto/OnrampTransactionLimits/OnrampTransactionLimitsService.cs new file mode 100644 index 0000000000..a85f499daa --- /dev/null +++ b/src/Stripe.net/Services/Crypto/OnrampTransactionLimits/OnrampTransactionLimitsService.cs @@ -0,0 +1,58 @@ +// File generated from our OpenAPI spec +namespace Stripe.Crypto +{ + using System; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class OnrampTransactionLimitsService : Service, + ISingletonRetrievable + { + public OnrampTransactionLimitsService() + { + } + + internal OnrampTransactionLimitsService(ApiRequestor requestor) + : base(requestor) + { + } + + public OnrampTransactionLimitsService(IStripeClient client) + : base(client) + { + } + + /// + ///

Retrieves the remaining onramp limit for a crypto customer.

. + ///
+ public virtual OnrampTransactionLimits Get(RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Get, $"/v1/crypto/onramp_transaction_limits", null, requestOptions); + } + + /// + ///

Retrieves the remaining onramp limit for a crypto customer.

. + ///
+ public virtual Task GetAsync(RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Get, $"/v1/crypto/onramp_transaction_limits", null, requestOptions, cancellationToken); + } + + /// + ///

Retrieves the remaining onramp limit for a crypto customer.

. + ///
+ public virtual OnrampTransactionLimits Get(OnrampTransactionLimitsGetOptions options, RequestOptions requestOptions = null) + { + return this.Request(BaseAddress.Api, HttpMethod.Get, $"/v1/crypto/onramp_transaction_limits", options, requestOptions); + } + + /// + ///

Retrieves the remaining onramp limit for a crypto customer.

. + ///
+ public virtual Task GetAsync(OnrampTransactionLimitsGetOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(BaseAddress.Api, HttpMethod.Get, $"/v1/crypto/onramp_transaction_limits", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/CryptoService.cs b/src/Stripe.net/Services/CryptoService.cs new file mode 100644 index 0000000000..aea87e3589 --- /dev/null +++ b/src/Stripe.net/Services/CryptoService.cs @@ -0,0 +1,33 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using System; + using System.Threading; + using System.Threading.Tasks; + + public class CryptoService : Service + { + private Crypto.CustomerService customers; + private Crypto.OnrampSessionService onrampSessions; + private Crypto.OnrampTransactionLimitsService onrampTransactionLimits; + + internal CryptoService(ApiRequestor requestor) + : base(requestor) + { + } + + internal CryptoService(IStripeClient client) + : base(client) + { + } + + public virtual Crypto.CustomerService Customers => this.customers ??= new Crypto.CustomerService( + this.Requestor); + + public virtual Crypto.OnrampSessionService OnrampSessions => this.onrampSessions ??= new Crypto.OnrampSessionService( + this.Requestor); + + public virtual Crypto.OnrampTransactionLimitsService OnrampTransactionLimits => this.onrampTransactionLimits ??= new Crypto.OnrampTransactionLimitsService( + this.Requestor); + } +} diff --git a/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceMastercardComplianceOptions.cs b/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceMastercardComplianceOptions.cs new file mode 100644 index 0000000000..d7ff2529c3 --- /dev/null +++ b/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceMastercardComplianceOptions.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class DisputeEvidenceEnhancedEvidenceMastercardComplianceOptions : INestedOptions + { + /// + /// A field acknowledging the fee incurred when countering a Mastercard compliance dispute. + /// If this field is set to true, evidence can be submitted for the compliance dispute. + /// + [JsonProperty("fee_acknowledged")] + [STJS.JsonPropertyName("fee_acknowledged")] + public bool? FeeAcknowledged { get; set; } + } +} diff --git a/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceOptions.cs b/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceOptions.cs index dfbdb60550..82685dc6b7 100644 --- a/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceOptions.cs +++ b/src/Stripe.net/Services/Disputes/DisputeEvidenceEnhancedEvidenceOptions.cs @@ -8,6 +8,13 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] public class DisputeEvidenceEnhancedEvidenceOptions : INestedOptions { + /// + /// Evidence provided for Mastercard compliance evidence submission. + /// + [JsonProperty("mastercard_compliance")] + [STJS.JsonPropertyName("mastercard_compliance")] + public DisputeEvidenceEnhancedEvidenceMastercardComplianceOptions MastercardCompliance { get; set; } + /// /// Evidence provided for Visa Compelling Evidence 3.0 evidence submission. /// diff --git a/src/Stripe.net/Services/FinancialConnections/Sessions/SessionLimitsOptions.cs b/src/Stripe.net/Services/FinancialConnections/Sessions/SessionLimitsOptions.cs index 72f93e3d64..56033e2b38 100644 --- a/src/Stripe.net/Services/FinancialConnections/Sessions/SessionLimitsOptions.cs +++ b/src/Stripe.net/Services/FinancialConnections/Sessions/SessionLimitsOptions.cs @@ -6,13 +6,34 @@ namespace Stripe.FinancialConnections using STJS = System.Text.Json.Serialization; [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] - public class SessionLimitsOptions : INestedOptions + public class SessionLimitsOptions : INestedOptions, IHasSetTracking { + private long? accounts; + + [JsonIgnore] + [STJS.JsonIgnore] + internal SetTracker SetTracker { get; } = new SetTracker(); + /// - /// The number of accounts that can be linked in this Session. + /// The number of accounts that can be linked in this Session. Pass an empty value to allow + /// any number of accounts. /// - [JsonProperty("accounts")] + [JsonProperty("accounts", NullValueHandling = NullValueHandling.Ignore)] [STJS.JsonPropertyName("accounts")] - public long? Accounts { get; set; } + [STJS.JsonIgnore(Condition = STJS.JsonIgnoreCondition.WhenWritingNull)] + public long? Accounts + { + get => this.accounts; + set + { + this.accounts = value; + this.SetTracker.Track(); + } + } + + bool IHasSetTracking.IsPropertySet(string propertyName) + { + return this.SetTracker.IsSet(propertyName); + } } } diff --git a/src/Stripe.net/Services/InvoiceLineItems/InvoiceLineItemUpdateOptions.cs b/src/Stripe.net/Services/InvoiceLineItems/InvoiceLineItemUpdateOptions.cs index d8028d4431..d5032d0287 100644 --- a/src/Stripe.net/Services/InvoiceLineItems/InvoiceLineItemUpdateOptions.cs +++ b/src/Stripe.net/Services/InvoiceLineItems/InvoiceLineItemUpdateOptions.cs @@ -147,7 +147,7 @@ public Dictionary Metadata public decimal? QuantityDecimal { get; set; } /// - /// A list of up to 10 tax amounts for this line item. This can be useful if you calculate + /// A list of up to 20 tax amounts for this line item. This can be useful if you calculate /// taxes on your own or use a third-party to calculate them. You cannot set tax amounts if /// any line item has tax_rates diff --git a/src/Stripe.net/Services/Invoices/InvoiceLineOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceLineOptions.cs index 2040bf7112..6f13e7be1e 100644 --- a/src/Stripe.net/Services/Invoices/InvoiceLineOptions.cs +++ b/src/Stripe.net/Services/Invoices/InvoiceLineOptions.cs @@ -175,7 +175,7 @@ public Dictionary Metadata public decimal? QuantityDecimal { get; set; } /// - /// A list of up to 10 tax amounts for this line item. This can be useful if you calculate + /// A list of up to 20 tax amounts for this line item. This can be useful if you calculate /// taxes on your own or use a third-party to calculate them. You cannot set tax amounts if /// any line item has tax_rates diff --git a/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs b/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs index 0d1fca14fc..360210c6e5 100644 --- a/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs +++ b/src/Stripe.net/Services/Invoices/InvoicePaymentSettingsOptions.cs @@ -57,8 +57,9 @@ public string DefaultMandate /// kr_card, link, momo, multibanco, naver_pay, /// nz_bank_account, p24, pay_by_bank, payco, paynow, /// paypal, payto, pix, promptpay, revolut_pay, - /// sepa_credit_transfer, sepa_debit, sofort, stripe_balance, - /// swish, twint, upi, us_bank_account, or wechat_pay. + /// satispay, sepa_credit_transfer, sepa_debit, sofort, + /// stripe_balance, swish, twint, upi, us_bank_account, + /// or wechat_pay. /// [JsonProperty("payment_method_types", NullValueHandling = NullValueHandling.Ignore)] [STJS.JsonPropertyName("payment_method_types")] diff --git a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsItemOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsItemOptions.cs index 22a9078af5..2bbd2a9034 100644 --- a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsItemOptions.cs +++ b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsItemOptions.cs @@ -75,7 +75,10 @@ public List Discounts } /// - /// Subscription item to update. + /// Subscription item to update. If you omit id, the API adds a new subscription item + /// rather than updating the existing one. See Changing a + /// subscription's price. /// [JsonProperty("id")] [STJS.JsonPropertyName("id")] diff --git a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsOptions.cs index 81f7cfe299..c56c239336 100644 --- a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsOptions.cs +++ b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsOptions.cs @@ -115,6 +115,20 @@ public List DefaultTaxRates [STJS.JsonPropertyName("items")] public List Items { get; set; } + /// + /// Previews the invoice that would be generated when pausing the subscription. Passing an + /// empty hash won't preview pausing and instead returns the next invoice. + /// + /// To receive a preview invoice, set invoicing_behavior to invoice. A preview + /// isn't available if the bill_for options produce no billable amounts. + /// + /// pending_invoice_item never has a preview available because pausing wouldn't + /// generate an invoice, and paused subscriptions don't generate invoices either. + /// + [JsonProperty("pause")] + [STJS.JsonPropertyName("pause")] + public InvoiceSubscriptionDetailsPauseOptions Pause { get; set; } + /// /// The pre-billing to apply to the subscription as a preview. /// diff --git a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForOptions.cs new file mode 100644 index 0000000000..ebe4f72e1b --- /dev/null +++ b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForOptions.cs @@ -0,0 +1,27 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class InvoiceSubscriptionDetailsPauseBillForOptions : INestedOptions + { + /// + /// Controls when to bill for metered usage in the current period. Defaults to { type: + /// "now" }. + /// + [JsonProperty("outstanding_usage_through")] + [STJS.JsonPropertyName("outstanding_usage_through")] + public InvoiceSubscriptionDetailsPauseBillForOutstandingUsageThroughOptions OutstandingUsageThrough { get; set; } + + /// + /// Controls when to credit for unused time on licensed items. Defaults to { type: "now" + /// }. + /// + [JsonProperty("unused_time_from")] + [STJS.JsonPropertyName("unused_time_from")] + public InvoiceSubscriptionDetailsPauseBillForUnusedTimeFromOptions UnusedTimeFrom { get; set; } + } +} diff --git a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForOutstandingUsageThroughOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForOutstandingUsageThroughOptions.cs new file mode 100644 index 0000000000..f060ae7f89 --- /dev/null +++ b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForOutstandingUsageThroughOptions.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class InvoiceSubscriptionDetailsPauseBillForOutstandingUsageThroughOptions : INestedOptions + { + /// + /// When to bill metered usage in the current period. + /// One of: none, or now. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForUnusedTimeFromOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForUnusedTimeFromOptions.cs new file mode 100644 index 0000000000..c754cb5463 --- /dev/null +++ b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseBillForUnusedTimeFromOptions.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class InvoiceSubscriptionDetailsPauseBillForUnusedTimeFromOptions : INestedOptions + { + /// + /// When to credit for unused time. + /// One of: item_current_period_start, none, or now. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseOptions.cs b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseOptions.cs new file mode 100644 index 0000000000..d430651370 --- /dev/null +++ b/src/Stripe.net/Services/Invoices/InvoiceSubscriptionDetailsPauseOptions.cs @@ -0,0 +1,34 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class InvoiceSubscriptionDetailsPauseOptions : INestedOptions + { + /// + /// Controls what to bill for when pausing the subscription. + /// + [JsonProperty("bill_for")] + [STJS.JsonPropertyName("bill_for")] + public InvoiceSubscriptionDetailsPauseBillForOptions BillFor { get; set; } + + /// + /// Determines how to handle debits and credits when pausing. Defaults to + /// pending_invoice_item. + /// One of: invoice, or pending_invoice_item. + /// + [JsonProperty("invoicing_behavior")] + [STJS.JsonPropertyName("invoicing_behavior")] + public string InvoicingBehavior { get; set; } + + /// + /// The type of pause to apply. Defaults to subscription. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPayOptions.cs b/src/Stripe.net/Services/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPayOptions.cs index b1fbafb0c9..4fd67d91e5 100644 --- a/src/Stripe.net/Services/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPayOptions.cs +++ b/src/Stripe.net/Services/Orders/OrderPaymentSettingsPaymentMethodOptionsWechatPayOptions.cs @@ -9,7 +9,8 @@ namespace Stripe public class OrderPaymentSettingsPaymentMethodOptionsWechatPayOptions : INestedOptions { /// - /// The app ID registered with WeChat Pay. Only required when client is ios or android. + /// The app ID registered with WeChat Pay. Only required when client is ios, android, or + /// mini_program. /// [JsonProperty("app_id")] [STJS.JsonPropertyName("app_id")] diff --git a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportFailedOptions.cs b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportFailedOptions.cs index d420717068..72db64ec9b 100644 --- a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportFailedOptions.cs +++ b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportFailedOptions.cs @@ -58,6 +58,13 @@ public Dictionary Metadata [STJS.JsonPropertyName("payment_evaluations")] public List PaymentEvaluations { get; set; } + /// + /// Information about the Payment Method debited for this payment. + /// + [JsonProperty("payment_method_details")] + [STJS.JsonPropertyName("payment_method_details")] + public PaymentAttemptRecordPaymentMethodDetailsOptions PaymentMethodDetails { get; set; } + /// /// Processor information for this payment. /// diff --git a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportRefundOptions.cs b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportRefundOptions.cs index 28f834305a..d7fb6e0bf4 100644 --- a/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportRefundOptions.cs +++ b/src/Stripe.net/Services/PaymentAttemptRecords/PaymentAttemptRecordReportRefundOptions.cs @@ -72,6 +72,15 @@ public Dictionary Metadata [STJS.JsonPropertyName("processor_details")] public PaymentAttemptRecordProcessorDetailsOptions ProcessorDetails { get; set; } + /// + /// The reason for the refund. One of duplicate, fraudulent, or + /// requested_by_customer. + /// One of: duplicate, fraudulent, or requested_by_customer. + /// + [JsonProperty("reason")] + [STJS.JsonPropertyName("reason")] + public string Reason { get; set; } + /// /// A key to group refunds together. /// diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodDataOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodDataOptions.cs index fd33e1ba4a..6c38c3dff7 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodDataOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodDataOptions.cs @@ -494,8 +494,8 @@ public class PaymentIntentPaymentMethodDataOptions : INestedOptions, IHasMetadat public PaymentIntentPaymentMethodDataStripeBalanceOptions StripeBalance { get; set; } /// - /// If this is a Sunbit PaymentMethod, this hash contains details about the Sunbit payment - /// method. + /// If this is a sunbit PaymentMethod, this hash contains details about the Sunbit + /// payment method. /// [JsonProperty("sunbit")] [STJS.JsonPropertyName("sunbit")] diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoAmountReconciliationOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoAmountReconciliationOptions.cs new file mode 100644 index 0000000000..ba80440224 --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoAmountReconciliationOptions.cs @@ -0,0 +1,19 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class PaymentIntentPaymentMethodOptionsCryptoAmountReconciliationOptions : INestedOptions + { + /// + /// Controls how crypto funding amounts are reconciled for the PaymentIntent. + /// One of: accept_partial_funding, or exact. + /// + [JsonProperty("type")] + [STJS.JsonPropertyName("type")] + public string Type { get; set; } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoOptions.cs index 8286d62163..0adb8bfb3c 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsCryptoOptions.cs @@ -8,6 +8,13 @@ namespace Stripe [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] public class PaymentIntentPaymentMethodOptionsCryptoOptions : INestedOptions { + /// + /// Controls how crypto funding amounts are reconciled for this PaymentIntent. + /// + [JsonProperty("amount_reconciliation")] + [STJS.JsonPropertyName("amount_reconciliation")] + public PaymentIntentPaymentMethodOptionsCryptoAmountReconciliationOptions AmountReconciliation { get; set; } + /// /// Specific configuration for this PaymentIntent when the mode is deposit. /// diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsOptions.cs index 93def7d61b..d4d4eeb72e 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsOptions.cs @@ -64,6 +64,7 @@ public class PaymentIntentPaymentMethodOptionsOptions : INestedOptions, IHasSetT private PaymentIntentPaymentMethodOptionsShopeepayOptions shopeepay; private PaymentIntentPaymentMethodOptionsSofortOptions sofort; private PaymentIntentPaymentMethodOptionsStripeBalanceOptions stripeBalance; + private PaymentIntentPaymentMethodOptionsSunbitOptions sunbit; private PaymentIntentPaymentMethodOptionsSwishOptions swish; private PaymentIntentPaymentMethodOptionsTwintOptions twint; private PaymentIntentPaymentMethodOptionsUpiOptions upi; @@ -1034,6 +1035,23 @@ public PaymentIntentPaymentMethodOptionsStripeBalanceOptions StripeBalance } } + /// + /// If this is a sunbit PaymentMethod, this sub-hash contains details about the + /// Sunbit payment method options. + /// + [JsonProperty("sunbit", NullValueHandling = NullValueHandling.Ignore)] + [STJS.JsonPropertyName("sunbit")] + [STJS.JsonIgnore(Condition = STJS.JsonIgnoreCondition.WhenWritingNull)] + public PaymentIntentPaymentMethodOptionsSunbitOptions Sunbit + { + get => this.sunbit; + set + { + this.sunbit = value; + this.SetTracker.Track(); + } + } + /// /// If this is a Swish PaymentMethod, this sub-hash contains details about the Swish /// payment method options. diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispayOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispayOptions.cs index 582e277a09..e1a867e138 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispayOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSatispayOptions.cs @@ -9,6 +9,7 @@ namespace Stripe public class PaymentIntentPaymentMethodOptionsSatispayOptions : INestedOptions, IHasSetTracking { private string captureMethod; + private string setupFutureUsage; [JsonIgnore] [STJS.JsonIgnore] @@ -37,6 +38,40 @@ public string CaptureMethod } } + /// + /// 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. + /// One of: none, off_session, or on_session. + /// + [JsonProperty("setup_future_usage", NullValueHandling = NullValueHandling.Ignore)] + [STJS.JsonPropertyName("setup_future_usage")] + [STJS.JsonIgnore(Condition = STJS.JsonIgnoreCondition.WhenWritingNull)] + public string SetupFutureUsage + { + get => this.setupFutureUsage; + set + { + this.setupFutureUsage = value; + this.SetTracker.Track(); + } + } + bool IHasSetTracking.IsPropertySet(string propertyName) { return this.SetTracker.IsSet(propertyName); diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSunbitOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSunbitOptions.cs new file mode 100644 index 0000000000..ecbe3d30fb --- /dev/null +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsSunbitOptions.cs @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class PaymentIntentPaymentMethodOptionsSunbitOptions : INestedOptions, IHasSetTracking + { + private string captureMethod; + + [JsonIgnore] + [STJS.JsonIgnore] + internal SetTracker SetTracker { get; } = new SetTracker(); + + /// + /// Controls when the funds are captured from the customer's account. + /// + /// If provided, this parameter overrides the behavior of the top-level capture_method + /// for this payment method type when finalizing the payment with this payment method type. + /// + /// If capture_method is already set on the PaymentIntent, providing an empty value + /// for this parameter unsets the stored value for this payment method type. + /// + [JsonProperty("capture_method", NullValueHandling = NullValueHandling.Ignore)] + [STJS.JsonPropertyName("capture_method")] + [STJS.JsonIgnore(Condition = STJS.JsonIgnoreCondition.WhenWritingNull)] + public string CaptureMethod + { + get => this.captureMethod; + set + { + this.captureMethod = value; + this.SetTracker.Track(); + } + } + + /// + /// 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")] + [STJS.JsonPropertyName("setup_future_usage")] + public string SetupFutureUsage { get; set; } + + bool IHasSetTracking.IsPropertySet(string propertyName) + { + return this.SetTracker.IsSet(propertyName); + } + } +} diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPayOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPayOptions.cs index d602aa3812..3f9f0e69f5 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPayOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentPaymentMethodOptionsWechatPayOptions.cs @@ -9,7 +9,8 @@ namespace Stripe public class PaymentIntentPaymentMethodOptionsWechatPayOptions : INestedOptions { /// - /// The app ID registered with WeChat Pay. Only required when client is ios or android. + /// The app ID registered with WeChat Pay. Only required when client is ios, android, or + /// mini_program. /// [JsonProperty("app_id")] [STJS.JsonPropertyName("app_id")] diff --git a/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs b/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs index 1534c5a600..300089e737 100644 --- a/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentLinks/PaymentLinkCreateOptions.cs @@ -204,6 +204,9 @@ public class PaymentLinkCreateOptions : BaseOptions, IHasMetadata [STJS.JsonPropertyName("payment_method_collection")] public string PaymentMethodCollection { get; set; } + /// + /// Payment-method-specific configuration. + /// [JsonProperty("payment_method_options")] [STJS.JsonPropertyName("payment_method_options")] public PaymentLinkPaymentMethodOptionsOptions PaymentMethodOptions { get; set; } diff --git a/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs b/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs index f97fb5d4a2..c64ade47b0 100644 --- a/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentMethods/PaymentMethodCreateOptions.cs @@ -522,8 +522,8 @@ public class PaymentMethodCreateOptions : BaseOptions, IHasMetadata public PaymentMethodStripeBalanceOptions StripeBalance { get; set; } /// - /// If this is a Sunbit PaymentMethod, this hash contains details about the Sunbit payment - /// method. + /// If this is a sunbit PaymentMethod, this hash contains details about the Sunbit + /// payment method. /// [JsonProperty("sunbit")] [STJS.JsonPropertyName("sunbit")] diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs index 9c459d9c4b..7f7ff394de 100644 --- a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportPaymentAttemptFailedOptions.cs @@ -58,6 +58,13 @@ public Dictionary Metadata [STJS.JsonPropertyName("payment_evaluations")] public List PaymentEvaluations { get; set; } + /// + /// Information about the Payment Method debited for this payment. + /// + [JsonProperty("payment_method_details")] + [STJS.JsonPropertyName("payment_method_details")] + public PaymentRecordPaymentMethodDetailsOptions PaymentMethodDetails { get; set; } + /// /// Processor information for this payment. /// diff --git a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs index 8152105d09..ed0200930b 100644 --- a/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs +++ b/src/Stripe.net/Services/PaymentRecords/PaymentRecordReportRefundOptions.cs @@ -72,6 +72,15 @@ public Dictionary Metadata [STJS.JsonPropertyName("processor_details")] public PaymentRecordProcessorDetailsOptions ProcessorDetails { get; set; } + /// + /// The reason for the refund. One of duplicate, fraudulent, or + /// requested_by_customer. + /// One of: duplicate, fraudulent, or requested_by_customer. + /// + [JsonProperty("reason")] + [STJS.JsonPropertyName("reason")] + public string Reason { get; set; } + /// /// A key to group refunds together. /// diff --git a/src/Stripe.net/Services/SetupIntents/SetupIntentPaymentMethodDataOptions.cs b/src/Stripe.net/Services/SetupIntents/SetupIntentPaymentMethodDataOptions.cs index e9942fea7f..ce8624ea56 100644 --- a/src/Stripe.net/Services/SetupIntents/SetupIntentPaymentMethodDataOptions.cs +++ b/src/Stripe.net/Services/SetupIntents/SetupIntentPaymentMethodDataOptions.cs @@ -494,8 +494,8 @@ public class SetupIntentPaymentMethodDataOptions : INestedOptions, IHasMetadata public SetupIntentPaymentMethodDataStripeBalanceOptions StripeBalance { get; set; } /// - /// If this is a Sunbit PaymentMethod, this hash contains details about the Sunbit payment - /// method. + /// If this is a sunbit PaymentMethod, this hash contains details about the Sunbit + /// payment method. /// [JsonProperty("sunbit")] [STJS.JsonPropertyName("sunbit")] diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsCustomFieldOptions.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsCustomFieldOptions.cs new file mode 100644 index 0000000000..b1f4e47b24 --- /dev/null +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsCustomFieldOptions.cs @@ -0,0 +1,25 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class SubscriptionInvoiceSettingsCustomFieldOptions : INestedOptions + { + /// + /// The name of the custom field. This may be up to 40 characters. + /// + [JsonProperty("name")] + [STJS.JsonPropertyName("name")] + public string Name { get; set; } + + /// + /// The value of the custom field. This may be up to 140 characters. + /// + [JsonProperty("value")] + [STJS.JsonPropertyName("value")] + public string Value { get; set; } + } +} diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsOptions.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsOptions.cs index f1eedb1452..70947f676d 100644 --- a/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsOptions.cs +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionInvoiceSettingsOptions.cs @@ -10,6 +10,7 @@ namespace Stripe public class SubscriptionInvoiceSettingsOptions : INestedOptions, IHasSetTracking { private List accountTaxIds; + private List customFields; [JsonIgnore] [STJS.JsonIgnore] @@ -32,6 +33,36 @@ public List AccountTaxIds } } + /// + /// A list of up to 4 custom fields to be displayed on the invoice. + /// + [JsonProperty("custom_fields", NullValueHandling = NullValueHandling.Ignore)] + [STJS.JsonPropertyName("custom_fields")] + [STJS.JsonIgnore(Condition = STJS.JsonIgnoreCondition.WhenWritingNull)] + public List CustomFields + { + get => this.customFields; + set + { + this.customFields = value; + this.SetTracker.Track(); + } + } + + /// + /// An arbitrary string attached to the object. Often useful for displaying to users. + /// + [JsonProperty("description")] + [STJS.JsonPropertyName("description")] + public string Description { get; set; } + + /// + /// Footer to be displayed on the invoice. + /// + [JsonProperty("footer")] + [STJS.JsonPropertyName("footer")] + public string Footer { get; set; } + /// /// The connected account that issues the invoice. The invoice is presented with the /// branding and support information of the specified account. diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionItemOptions.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionItemOptions.cs index 0be0dc8b85..fb4a8e4319 100644 --- a/src/Stripe.net/Services/Subscriptions/SubscriptionItemOptions.cs +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionItemOptions.cs @@ -74,7 +74,10 @@ public List Discounts } /// - /// Subscription item to update. + /// Subscription item to update. If you omit id, the API adds a new subscription item + /// rather than updating the existing one. See Changing a + /// subscription's price. /// [JsonProperty("id")] [STJS.JsonPropertyName("id")] diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionPauseOptions.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionPauseOptions.cs index 4116bdcfdd..aeb72edff3 100644 --- a/src/Stripe.net/Services/Subscriptions/SubscriptionPauseOptions.cs +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionPauseOptions.cs @@ -16,7 +16,7 @@ public class SubscriptionPauseOptions : BaseOptions public SubscriptionBillForOptions BillFor { get; set; } /// - /// Determines how to handle debits and credits when pausing. The default is + /// Determines how to handle debits and credits when pausing. Defaults to /// pending_invoice_item. /// One of: invoice, or pending_invoice_item. /// diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs index 783cf4ed4b..a7ab09f521 100644 --- a/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionPaymentSettingsOptions.cs @@ -39,8 +39,9 @@ public class SubscriptionPaymentSettingsOptions : INestedOptions, IHasSetTrackin /// kr_card, link, momo, multibanco, naver_pay, /// nz_bank_account, p24, pay_by_bank, payco, paynow, /// paypal, payto, pix, promptpay, revolut_pay, - /// sepa_credit_transfer, sepa_debit, sofort, stripe_balance, - /// swish, twint, upi, us_bank_account, or wechat_pay. + /// satispay, sepa_credit_transfer, sepa_debit, sofort, + /// stripe_balance, swish, twint, upi, us_bank_account, + /// or wechat_pay. /// [JsonProperty("payment_method_types", NullValueHandling = NullValueHandling.Ignore)] [STJS.JsonPropertyName("payment_method_types")] diff --git a/src/Stripe.net/Services/Subscriptions/SubscriptionService.cs b/src/Stripe.net/Services/Subscriptions/SubscriptionService.cs index df44f138c4..b5ab02eef9 100644 --- a/src/Stripe.net/Services/Subscriptions/SubscriptionService.cs +++ b/src/Stripe.net/Services/Subscriptions/SubscriptionService.cs @@ -62,7 +62,7 @@ public virtual Task AttachCadenceAsync(string id, SubscriptionAtta /// subscription to cancel at the end of the period, any pending prorations are also left in /// place and collected at the end of the period. But if the subscription is set to cancel /// immediately, pending prorations are removed if invoice_now and prorate are - /// both set to true.

. + /// both set to false.

. /// ///

By default, upon subscription cancellation, Stripe stops automatic collection of all /// finalized invoices for the customer. This is intended to prevent unexpected payment @@ -88,7 +88,7 @@ public virtual Subscription Cancel(string id, SubscriptionCancelOptions options /// subscription to cancel at the end of the period, any pending prorations are also left in /// place and collected at the end of the period. But if the subscription is set to cancel /// immediately, pending prorations are removed if invoice_now and prorate are - /// both set to true.

. + /// both set to false.

. /// ///

By default, upon subscription cancellation, Stripe stops automatic collection of all /// finalized invoices for the customer. This is intended to prevent unexpected payment diff --git a/src/Stripe.net/Services/TestHelpers/ConfirmationTokens/ConfirmationTokenPaymentMethodDataOptions.cs b/src/Stripe.net/Services/TestHelpers/ConfirmationTokens/ConfirmationTokenPaymentMethodDataOptions.cs index c774f140ae..1850414b15 100644 --- a/src/Stripe.net/Services/TestHelpers/ConfirmationTokens/ConfirmationTokenPaymentMethodDataOptions.cs +++ b/src/Stripe.net/Services/TestHelpers/ConfirmationTokens/ConfirmationTokenPaymentMethodDataOptions.cs @@ -494,8 +494,8 @@ public class ConfirmationTokenPaymentMethodDataOptions : INestedOptions, IHasMet public ConfirmationTokenPaymentMethodDataStripeBalanceOptions StripeBalance { get; set; } ///

- /// If this is a Sunbit PaymentMethod, this hash contains details about the Sunbit payment - /// method. + /// If this is a sunbit PaymentMethod, this hash contains details about the Sunbit + /// payment method. /// [JsonProperty("sunbit")] [STJS.JsonPropertyName("sunbit")] diff --git a/src/Stripe.net/Services/Topups/TopupCreateOptions.cs b/src/Stripe.net/Services/Topups/TopupCreateOptions.cs index a6d172a431..0019c9444e 100644 --- a/src/Stripe.net/Services/Topups/TopupCreateOptions.cs +++ b/src/Stripe.net/Services/Topups/TopupCreateOptions.cs @@ -53,6 +53,21 @@ public Dictionary Metadata } } + /// + /// The ID of a PaymentMethod representing the payment method to be used for the top-up. A + /// PaymentMethod of type us_bank_account can be used. + /// + [JsonProperty("payment_method")] + [STJS.JsonPropertyName("payment_method")] + public string PaymentMethod { get; set; } + + /// + /// Payment method-specific configuration for this top-up. + /// + [JsonProperty("payment_method_options")] + [STJS.JsonPropertyName("payment_method_options")] + public TopupPaymentMethodOptionsOptions PaymentMethodOptions { get; set; } + /// /// The ID of a source to transfer funds from. For most users, this should be left /// unspecified which will use the bank account that was set up in the dashboard for the diff --git a/src/Stripe.net/Services/Topups/TopupPaymentMethodOptionsOptions.cs b/src/Stripe.net/Services/Topups/TopupPaymentMethodOptionsOptions.cs new file mode 100644 index 0000000000..43b34a97ea --- /dev/null +++ b/src/Stripe.net/Services/Topups/TopupPaymentMethodOptionsOptions.cs @@ -0,0 +1,15 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class TopupPaymentMethodOptionsOptions : INestedOptions + { + [JsonProperty("us_bank_account")] + [STJS.JsonPropertyName("us_bank_account")] + public TopupPaymentMethodOptionsUsBankAccountOptions UsBankAccount { get; set; } + } +} diff --git a/src/Stripe.net/Services/Topups/TopupPaymentMethodOptionsUsBankAccountOptions.cs b/src/Stripe.net/Services/Topups/TopupPaymentMethodOptionsUsBankAccountOptions.cs new file mode 100644 index 0000000000..3cbe5bad14 --- /dev/null +++ b/src/Stripe.net/Services/Topups/TopupPaymentMethodOptionsUsBankAccountOptions.cs @@ -0,0 +1,15 @@ +// File generated from our OpenAPI spec +namespace Stripe +{ + using Newtonsoft.Json; + using Stripe.Infrastructure; + using STJS = System.Text.Json.Serialization; + + [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] + public class TopupPaymentMethodOptionsUsBankAccountOptions : INestedOptions + { + [JsonProperty("network")] + [STJS.JsonPropertyName("network")] + public string Network { get; set; } + } +} diff --git a/src/Stripe.net/Services/V1Services.cs b/src/Stripe.net/Services/V1Services.cs index f66fac135d..c26923a44a 100644 --- a/src/Stripe.net/Services/V1Services.cs +++ b/src/Stripe.net/Services/V1Services.cs @@ -30,6 +30,7 @@ public class V1Services : Service private CountrySpecService countrySpecs; private CouponService coupons; private CreditNoteService creditNotes; + private CryptoService crypto; private CustomerService customers; private CustomerSessionService customerSessions; private DelegatedCheckoutService delegatedCheckout; @@ -179,6 +180,9 @@ internal V1Services(IStripeClient client) public virtual CreditNoteService CreditNotes => this.creditNotes ??= new CreditNoteService( this.Requestor); + public virtual CryptoService Crypto => this.crypto ??= new CryptoService( + this.Requestor); + public virtual CustomerService Customers => this.customers ??= new CustomerService( this.Requestor); diff --git a/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyCreateOptions.cs b/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyCreateOptions.cs index 51213d3ad0..85c16168e8 100644 --- a/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyCreateOptions.cs +++ b/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyCreateOptions.cs @@ -1,6 +1,8 @@ // File generated from our OpenAPI spec namespace Stripe.V2.Iam { + using System; + using System.Collections.Generic; using Newtonsoft.Json; using Stripe.Infrastructure; using STJS = System.Text.Json.Serialization; @@ -8,6 +10,20 @@ namespace Stripe.V2.Iam [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] public class ApiKeyCreateOptions : BaseOptions { + /// + /// List of connect permissions for this API key. + /// + [JsonProperty("connect_permissions")] + [STJS.JsonPropertyName("connect_permissions")] + public List ConnectPermissions { get; set; } + + /// + /// Timestamp at which the key expires. If not provided, the key never expires. + /// + [JsonProperty("expires_at")] + [STJS.JsonPropertyName("expires_at")] + public DateTime? ExpiresAt { get; set; } + /// /// Name for the API key. /// @@ -22,6 +38,13 @@ public class ApiKeyCreateOptions : BaseOptions [STJS.JsonPropertyName("note")] public string Note { get; set; } + /// + /// List of permissions for this API key. + /// + [JsonProperty("permissions")] + [STJS.JsonPropertyName("permissions")] + public List Permissions { get; set; } + /// /// Public key for encrypting the API key secret. This must a PEM-formatted RSA key suitable /// for encryption, >= 2048 bits. A public key is required when creating secret keys. diff --git a/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyUpdateOptions.cs b/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyUpdateOptions.cs index 8052f968cf..8fb18be8af 100644 --- a/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyUpdateOptions.cs +++ b/src/Stripe.net/Services/V2/Iam/ApiKeys/ApiKeyUpdateOptions.cs @@ -1,6 +1,7 @@ // File generated from our OpenAPI spec namespace Stripe.V2.Iam { + using System.Collections.Generic; using Newtonsoft.Json; using Stripe.Infrastructure; using STJS = System.Text.Json.Serialization; @@ -8,6 +9,13 @@ namespace Stripe.V2.Iam [STJS.JsonConverter(typeof(STJStripeOptionsConverter))] public class ApiKeyUpdateOptions : BaseOptions { + /// + /// List of connect permissions for this API key. + /// + [JsonProperty("connect_permissions")] + [STJS.JsonPropertyName("connect_permissions")] + public List ConnectPermissions { get; set; } + /// /// Name to set for the API key. If blank, the field is left unchanged. /// @@ -21,5 +29,12 @@ public class ApiKeyUpdateOptions : BaseOptions [JsonProperty("note")] [STJS.JsonPropertyName("note")] public string Note { get; set; } + + /// + /// List of permissions for this API key. + /// + [JsonProperty("permissions")] + [STJS.JsonPropertyName("permissions")] + public List Permissions { get; set; } } } diff --git a/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreateOptions.cs b/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreateOptions.cs index 0b69e59bb2..1d316eb31f 100644 --- a/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreateOptions.cs +++ b/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountCreateOptions.cs @@ -33,6 +33,7 @@ public class FinancialAccountCreateOptions : BaseOptions, IHasMetadata /// /// The type of FinancialAccount to create. + /// One of: credit, or storage. /// [JsonProperty("type")] [STJS.JsonPropertyName("type")] diff --git a/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountListOptions.cs b/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountListOptions.cs index c870e12610..ce53be7df2 100644 --- a/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountListOptions.cs +++ b/src/Stripe.net/Services/V2/MoneyManagement/FinancialAccounts/FinancialAccountListOptions.cs @@ -28,8 +28,8 @@ public class FinancialAccountListOptions : V2.ListOptions /// /// Filter for FinancialAccount type. By default, FinancialAccounts of any /// type are returned. - /// One of: accrued_fees, multiprocessor_settlement, payments, or - /// storage. + /// One of: accrued_fees, credit, multiprocessor_settlement, + /// payments, or storage. /// [JsonProperty("types")] [STJS.JsonPropertyName("types")] diff --git a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs index 749f5e0b08..ca6c6430e3 100644 --- a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs +++ b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs @@ -47,7 +47,8 @@ public class WebhookEndpointCreateOptions : BaseOptions, IHasMetadata /// 2025-06-30.basil, 2025-07-30.basil, 2025-08-27.basil, /// 2025-09-30.clover, 2025-10-29.clover, 2025-11-17.clover, /// 2025-12-15.clover, 2026-01-28.clover, 2026-02-25.clover, - /// 2026-03-25.dahlia, 2026-04-22.dahlia, or 2026-05-27.dahlia. + /// 2026-03-25.dahlia, 2026-04-22.dahlia, 2026-05-27.dahlia, or + /// 2026-06-24.dahlia. /// [JsonProperty("api_version")] [STJS.JsonPropertyName("api_version")] @@ -87,7 +88,10 @@ public string Description /// application_fee.created, application_fee.refund.updated, /// application_fee.refunded, balance.available, /// balance_settings.updated, billing.alert.triggered, - /// billing.credit_grant.created, billing_portal.configuration.created, + /// billing.credit_balance_transaction.created, billing.credit_grant.created, + /// billing.credit_grant.updated, billing.meter.created, + /// billing.meter.deactivated, billing.meter.reactivated, + /// billing.meter.updated, billing_portal.configuration.created, /// billing_portal.configuration.updated, billing_portal.session.created, /// capability.updated, capital.financing_offer.accepted, /// capital.financing_offer.accepted_other_offer, @@ -230,11 +234,8 @@ public string Description /// treasury.outbound_transfer.returned, /// treasury.outbound_transfer.tracking_details_updated, /// treasury.received_credit.created, treasury.received_credit.failed, - /// treasury.received_credit.succeeded, treasury.received_debit.created, - /// invoice_payment.detached, billing.credit_balance_transaction.created, - /// billing.credit_grant.updated, billing.meter.created, - /// billing.meter.deactivated, billing.meter.reactivated, - /// billing.meter.updated, or ping. + /// treasury.received_credit.succeeded, treasury.received_debit.created, or + /// ping. /// [JsonProperty("enabled_events")] [STJS.JsonPropertyName("enabled_events")] diff --git a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs index 00a3398645..9ec7be9943 100644 --- a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs +++ b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs @@ -45,7 +45,10 @@ public string Description /// application_fee.created, application_fee.refund.updated, /// application_fee.refunded, balance.available, /// balance_settings.updated, billing.alert.triggered, - /// billing.credit_grant.created, billing_portal.configuration.created, + /// billing.credit_balance_transaction.created, billing.credit_grant.created, + /// billing.credit_grant.updated, billing.meter.created, + /// billing.meter.deactivated, billing.meter.reactivated, + /// billing.meter.updated, billing_portal.configuration.created, /// billing_portal.configuration.updated, billing_portal.session.created, /// capability.updated, capital.financing_offer.accepted, /// capital.financing_offer.accepted_other_offer, @@ -188,11 +191,8 @@ public string Description /// treasury.outbound_transfer.returned, /// treasury.outbound_transfer.tracking_details_updated, /// treasury.received_credit.created, treasury.received_credit.failed, - /// treasury.received_credit.succeeded, treasury.received_debit.created, - /// invoice_payment.detached, billing.credit_balance_transaction.created, - /// billing.credit_grant.updated, billing.meter.created, - /// billing.meter.deactivated, billing.meter.reactivated, - /// billing.meter.updated, or ping. + /// treasury.received_credit.succeeded, treasury.received_debit.created, or + /// ping. ///
[JsonProperty("enabled_events")] [STJS.JsonPropertyName("enabled_events")] diff --git a/src/StripeTests/Services/GeneratedExamplesTest.cs b/src/StripeTests/Services/GeneratedExamplesTest.cs index 09df785614..48f436a7cf 100644 --- a/src/StripeTests/Services/GeneratedExamplesTest.cs +++ b/src/StripeTests/Services/GeneratedExamplesTest.cs @@ -24318,7 +24318,7 @@ public void TestV2MoneyManagementFinancialAccountPost() "{\"object\":\"v2.money_management.financial_account\",\"balance\":{\"available\":{\"key\":{\"currency\":\"USD\",\"value\":35}},\"inbound_pending\":{\"key\":{\"currency\":\"USD\",\"value\":11}},\"outbound_pending\":{\"key\":{\"currency\":\"USD\",\"value\":60}}},\"country\":\"country\",\"created\":\"1970-01-12T21:42:34.472Z\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"closed\",\"type\":\"accrued_fees\"}"); var options = new Stripe.V2.MoneyManagement.FinancialAccountCreateOptions { - Type = "storage", + Type = "credit", }; var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.FinancialAccounts; @@ -24339,7 +24339,7 @@ public async Task TestV2MoneyManagementFinancialAccountPostAsync() "{\"object\":\"v2.money_management.financial_account\",\"balance\":{\"available\":{\"key\":{\"currency\":\"USD\",\"value\":35}},\"inbound_pending\":{\"key\":{\"currency\":\"USD\",\"value\":11}},\"outbound_pending\":{\"key\":{\"currency\":\"USD\",\"value\":60}}},\"country\":\"country\",\"created\":\"1970-01-12T21:42:34.472Z\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"closed\",\"type\":\"accrued_fees\"}"); var options = new Stripe.V2.MoneyManagement.FinancialAccountCreateOptions { - Type = "storage", + Type = "credit", }; var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.FinancialAccounts; @@ -26496,7 +26496,7 @@ public void TestV2MoneyManagementTransactionGet() HttpMethod.Get, "/v2/money_management/transactions", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"inbound_transfer_reversal\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"platform_earning_refund\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.Transactions; Stripe.V2.StripeList transactions = service @@ -26513,7 +26513,7 @@ public async Task TestV2MoneyManagementTransactionGetAsync() HttpMethod.Get, "/v2/money_management/transactions", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"inbound_transfer_reversal\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"platform_earning_refund\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.Transactions; Stripe.V2.StripeList transactions = await service @@ -26530,7 +26530,7 @@ public void TestV2MoneyManagementTransactionGetAutoPaging() HttpMethod.Get, "/v2/money_management/transactions", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"inbound_transfer_reversal\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"platform_earning_refund\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.Transactions; var transaction = service.ListAutoPaging().First(); @@ -26546,7 +26546,7 @@ public async Task TestV2MoneyManagementTransactionGetAutoPagingAsync() HttpMethod.Get, "/v2/money_management/transactions", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"inbound_transfer_reversal\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"platform_earning_refund\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.Transactions; var transaction = await service.ListAutoPagingAsync().FirstAsync(); @@ -26562,7 +26562,7 @@ public void TestV2MoneyManagementTransactionGet2() HttpMethod.Get, "/v2/money_management/transactions/id_123", (HttpStatusCode)200, - "{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"inbound_transfer_reversal\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}"); + "{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"platform_earning_refund\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.Transactions; Stripe.V2.MoneyManagement.Transaction transaction = service.Get( @@ -26579,7 +26579,7 @@ public async Task TestV2MoneyManagementTransactionGet2Async() HttpMethod.Get, "/v2/money_management/transactions/id_123", (HttpStatusCode)200, - "{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"inbound_transfer_reversal\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}"); + "{\"object\":\"v2.money_management.transaction\",\"amount\":{\"currency\":\"USD\",\"value\":96},\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"category\":\"platform_earning_refund\",\"created\":\"1970-01-12T21:42:34.472Z\",\"financial_account\":\"financial_account\",\"id\":\"obj_123\",\"livemode\":true,\"status\":\"pending\",\"status_transitions\":{}}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.Transactions; Stripe.V2.MoneyManagement.Transaction transaction = await service @@ -26596,7 +26596,7 @@ public void TestV2MoneyManagementTransactionEntryGet() HttpMethod.Get, "/v2/money_management/transaction_entries", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"inbound_transfer_reversal\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"platform_earning_refund\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.TransactionEntries; Stripe.V2.StripeList transactionEntries = service @@ -26613,7 +26613,7 @@ public async Task TestV2MoneyManagementTransactionEntryGetAsync() HttpMethod.Get, "/v2/money_management/transaction_entries", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"inbound_transfer_reversal\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"platform_earning_refund\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.TransactionEntries; Stripe.V2.StripeList transactionEntries = await service @@ -26630,7 +26630,7 @@ public void TestV2MoneyManagementTransactionEntryGetAutoPaging() HttpMethod.Get, "/v2/money_management/transaction_entries", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"inbound_transfer_reversal\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"platform_earning_refund\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.TransactionEntries; var transactionEntry = service.ListAutoPaging().First(); @@ -26646,7 +26646,7 @@ public async Task TestV2MoneyManagementTransactionEntryGetAutoPagingAsync() HttpMethod.Get, "/v2/money_management/transaction_entries", (HttpStatusCode)200, - "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"inbound_transfer_reversal\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); + "{\"data\":[{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"platform_earning_refund\",\"financial_account\":\"financial_account\"}}],\"next_page_url\":null,\"previous_page_url\":null}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.TransactionEntries; var transactionEntry = await service.ListAutoPagingAsync() @@ -26663,7 +26663,7 @@ public void TestV2MoneyManagementTransactionEntryGet2() HttpMethod.Get, "/v2/money_management/transaction_entries/id_123", (HttpStatusCode)200, - "{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"inbound_transfer_reversal\",\"financial_account\":\"financial_account\"}}"); + "{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"platform_earning_refund\",\"financial_account\":\"financial_account\"}}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.TransactionEntries; Stripe.V2.MoneyManagement.TransactionEntry transactionEntry = service @@ -26680,7 +26680,7 @@ public async Task TestV2MoneyManagementTransactionEntryGet2Async() HttpMethod.Get, "/v2/money_management/transaction_entries/id_123", (HttpStatusCode)200, - "{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"inbound_transfer_reversal\",\"financial_account\":\"financial_account\"}}"); + "{\"object\":\"v2.money_management.transaction_entry\",\"balance_impact\":{\"available\":{\"currency\":\"USD\",\"value\":35},\"inbound_pending\":{\"currency\":\"USD\",\"value\":11},\"outbound_pending\":{\"currency\":\"USD\",\"value\":60}},\"created\":\"1970-01-12T21:42:34.472Z\",\"effective_at\":\"1970-01-03T20:38:28.043Z\",\"id\":\"obj_123\",\"livemode\":true,\"transaction\":\"transaction\",\"transaction_details\":{\"category\":\"platform_earning_refund\",\"financial_account\":\"financial_account\"}}"); var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.TransactionEntries; Stripe.V2.MoneyManagement.TransactionEntry transactionEntry = await service @@ -28399,7 +28399,7 @@ public void TestAlreadyExistsError() { var options = new Stripe.V2.MoneyManagement.FinancialAccountCreateOptions { - Type = "storage", + Type = "credit", }; var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.FinancialAccounts; @@ -28424,7 +28424,7 @@ public async Task TestAlreadyExistsErrorAsync() { var options = new Stripe.V2.MoneyManagement.FinancialAccountCreateOptions { - Type = "storage", + Type = "credit", }; var client = new StripeClient(this.Requestor); var service = client.V2.MoneyManagement.FinancialAccounts;