diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index 1418e2ae43..794622303c 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v680 \ No newline at end of file +v691 \ No newline at end of file diff --git a/src/Stripe.net/Constants/Events.cs b/src/Stripe.net/Constants/Events.cs index f8fdd6dee6..aa01b0eb80 100644 --- a/src/Stripe.net/Constants/Events.cs +++ b/src/Stripe.net/Constants/Events.cs @@ -177,6 +177,41 @@ public static class Events /// public const string CheckoutSessionExpired = "checkout.session.expired"; + /// + /// Occurs when a Climate order is canceled. + /// + public const string ClimateOrderCanceled = "climate.order.canceled"; + + /// + /// Occurs when a Climate order is created. + /// + public const string ClimateOrderCreated = "climate.order.created"; + + /// + /// Occurs when a Climate order is delayed. + /// + public const string ClimateOrderDelayed = "climate.order.delayed"; + + /// + /// Occurs when a Climate order is delivered. + /// + public const string ClimateOrderDelivered = "climate.order.delivered"; + + /// + /// Occurs when a Climate order's product is substituted for another. + /// + public const string ClimateOrderProductSubstituted = "climate.order.product_substituted"; + + /// + /// Occurs when a Climate product is created. + /// + public const string ClimateProductCreated = "climate.product.created"; + + /// + /// Occurs when a Climate product is updated. + /// + public const string ClimateProductPricingUpdated = "climate.product.pricing_updated"; + /// /// Occurs whenever a coupon is created. /// diff --git a/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs b/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs index c6bada57ef..7d6cde7bbb 100644 --- a/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs +++ b/src/Stripe.net/Entities/BalanceTransactions/BalanceTransaction.cs @@ -147,7 +147,8 @@ public IBalanceTransactionSource Source /// /// Transaction type: adjustment, advance, advance_funding, /// anticipation_repayment, application_fee, application_fee_refund, - /// charge, connect_collection_transfer, contribution, + /// charge, climate_order_purchase, climate_order_refund, + /// connect_collection_transfer, contribution, /// issuing_authorization_hold, issuing_authorization_release, /// issuing_dispute, issuing_transaction, obligation_inbound, /// obligation_outbound, obligation_reversal_inbound, @@ -164,7 +165,8 @@ public IBalanceTransactionSource Source /// consider reporting_category instead. /// One of: adjustment, advance, advance_funding, /// anticipation_repayment, application_fee, application_fee_refund, - /// charge, connect_collection_transfer, contribution, + /// charge, climate_order_purchase, climate_order_refund, + /// connect_collection_transfer, contribution, /// issuing_authorization_hold, issuing_authorization_release, /// issuing_dispute, issuing_transaction, obligation_inbound, /// obligation_outbound, obligation_payout, obligation_payout_failure, diff --git a/src/Stripe.net/Entities/Climate/Orders/Order.cs b/src/Stripe.net/Entities/Climate/Orders/Order.cs new file mode 100644 index 0000000000..3d15acaf39 --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Orders/Order.cs @@ -0,0 +1,185 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + + /// + /// Orders represent your intent to purchase a particular Climate product. When you create + /// an order, the payment is deducted from your merchant balance. + /// + public class Order : StripeEntity, IHasId, IHasMetadata, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public string Object { get; set; } + + /// + /// Total amount of Frontier's service fees in + /// the currency's smallest unit. + /// + [JsonProperty("amount_fees")] + public long AmountFees { get; set; } + + /// + /// Total amount of the carbon removal in the currency's smallest unit. + /// + [JsonProperty("amount_subtotal")] + public long AmountSubtotal { get; set; } + + /// + /// Total amount of the order including fees in the currency's smallest unit. + /// + [JsonProperty("amount_total")] + public long AmountTotal { get; set; } + + [JsonProperty("beneficiary")] + public OrderBeneficiary Beneficiary { get; set; } + + /// + /// Time at which the order was canceled. Measured in seconds since the Unix epoch. + /// + [JsonProperty("canceled_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime? CanceledAt { get; set; } + + /// + /// Reason for the cancellation of this order. + /// One of: expired, product_unavailable, or requested. + /// + [JsonProperty("cancellation_reason")] + public string CancellationReason { get; set; } + + /// + /// For delivered orders, a URL to a delivery certificate for the order. + /// + [JsonProperty("certificate")] + public string Certificate { get; set; } + + /// + /// Time at which the order was confirmed. Measured in seconds since the Unix epoch. + /// + [JsonProperty("confirmed_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime? ConfirmedAt { get; set; } + + /// + /// Time at which the object was created. Measured in seconds since the Unix epoch. + /// + [JsonProperty("created")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Three-letter ISO currency + /// code, in lowercase, representing the currency for this order. + /// + [JsonProperty("currency")] + public string Currency { get; set; } + + /// + /// Time at which the order's expected_delivery_year was delayed. Measured in seconds since + /// the Unix epoch. + /// + [JsonProperty("delayed_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime? DelayedAt { get; set; } + + /// + /// Time at which the order was delivered. Measured in seconds since the Unix epoch. + /// + [JsonProperty("delivered_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime? DeliveredAt { get; set; } + + /// + /// Details about the delivery of carbon removal for this order. + /// + [JsonProperty("delivery_details")] + public List DeliveryDetails { get; set; } + + /// + /// The year this order is expected to be delivered. + /// + [JsonProperty("expected_delivery_year")] + public long ExpectedDeliveryYear { get; set; } + + /// + /// Has the value true if the object exists in live mode or the value false if + /// the object exists in test mode. + /// + [JsonProperty("livemode")] + 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")] + public Dictionary Metadata { get; set; } + + /// + /// Quantity of carbon removal that is included in this order. + /// + [JsonProperty("metric_tons")] + public decimal MetricTons { get; set; } + + #region Expandable Product + + /// + /// (ID of the Product) + /// Unique ID for the Climate Product this order is purchasing. + /// + [JsonIgnore] + public string ProductId + { + get => this.InternalProduct?.Id; + set => this.InternalProduct = SetExpandableFieldId(value, this.InternalProduct); + } + + /// + /// (Expanded) + /// Unique ID for the Climate Product this order is purchasing. + /// + /// For more information, see the expand documentation. + /// + [JsonIgnore] + public Product Product + { + get => this.InternalProduct?.ExpandedObject; + set => this.InternalProduct = SetExpandableFieldObject(value, this.InternalProduct); + } + + [JsonProperty("product")] + [JsonConverter(typeof(ExpandableFieldConverter))] + internal ExpandableField InternalProduct { get; set; } + #endregion + + /// + /// Time at which the order's product was substituted for a different product. Measured in + /// seconds since the Unix epoch. + /// + [JsonProperty("product_substituted_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime? ProductSubstitutedAt { get; set; } + + /// + /// The current status of this order. + /// One of: awaiting_funds, canceled, confirmed, delivered, or + /// open. + /// + [JsonProperty("status")] + public string Status { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Orders/OrderBeneficiary.cs b/src/Stripe.net/Entities/Climate/Orders/OrderBeneficiary.cs new file mode 100644 index 0000000000..72a9cf6573 --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Orders/OrderBeneficiary.cs @@ -0,0 +1,14 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using Newtonsoft.Json; + + public class OrderBeneficiary : StripeEntity + { + /// + /// Publicly displayable name for the end beneficiary of carbon removal. + /// + [JsonProperty("public_name")] + public string PublicName { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Orders/OrderDeliveryDetail.cs b/src/Stripe.net/Entities/Climate/Orders/OrderDeliveryDetail.cs new file mode 100644 index 0000000000..ef371a5822 --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Orders/OrderDeliveryDetail.cs @@ -0,0 +1,41 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System; + using Newtonsoft.Json; + using Stripe.Infrastructure; + + public class OrderDeliveryDetail : StripeEntity + { + /// + /// Time at which the delivery occurred. Measured in seconds since the Unix epoch. + /// + [JsonProperty("delivered_at")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime DeliveredAt { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Specific location of this delivery. + /// + [JsonProperty("location")] + public OrderDeliveryDetailLocation Location { get; set; } + + /// + /// Quantity of carbon removal supplied by this delivery. + /// + [JsonProperty("metric_tons")] + public string MetricTons { get; set; } + + /// + /// Once retired, a URL to the registry entry for the tons from this delivery. + /// + [JsonProperty("registry_url")] + public string RegistryUrl { get; set; } + + /// + /// A supplier of carbon removal. + /// + [JsonProperty("supplier")] + public Supplier Supplier { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Orders/OrderDeliveryDetailLocation.cs b/src/Stripe.net/Entities/Climate/Orders/OrderDeliveryDetailLocation.cs new file mode 100644 index 0000000000..c94ede0be0 --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Orders/OrderDeliveryDetailLocation.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using Newtonsoft.Json; + + public class OrderDeliveryDetailLocation : StripeEntity + { + /// + /// The city where the supplier is located. + /// + [JsonProperty("city")] + public string City { get; set; } + + /// + /// Two-letter ISO code representing the country where the supplier is located. + /// + [JsonProperty("country")] + public string Country { get; set; } + + /// + /// The geographic latitude where the supplier is located. + /// + [JsonProperty("latitude")] + public decimal? Latitude { get; set; } + + /// + /// The geographic longitude where the supplier is located. + /// + [JsonProperty("longitude")] + public decimal? Longitude { get; set; } + + /// + /// The state/county/province/region where the supplier is located. + /// + [JsonProperty("region")] + public string Region { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Products/Product.cs b/src/Stripe.net/Entities/Climate/Products/Product.cs new file mode 100644 index 0000000000..01a05ce9eb --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Products/Product.cs @@ -0,0 +1,74 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System; + using System.Collections.Generic; + using Newtonsoft.Json; + using Stripe.Infrastructure; + + /// + /// A Climate product represents a type of carbon removal unit available for reservation. + /// You can retrieve it to see the current price and availability. + /// + public class Product : StripeEntity, IHasId, IHasObject + { + /// + /// Unique identifier for the object. For convenience, Climate product IDs are + /// human-readable strings that start with climsku_. See carbon removal + /// inventory for a list of available carbon removal products. + /// + [JsonProperty("id")] + public string Id { get; set; } + + /// + /// String representing the object's type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public string Object { get; set; } + + /// + /// Time at which the object was created. Measured in seconds since the Unix epoch. + /// + [JsonProperty("created")] + [JsonConverter(typeof(UnixDateTimeConverter))] + public DateTime Created { get; set; } = Stripe.Infrastructure.DateTimeUtils.UnixEpoch; + + /// + /// Current prices for a metric ton of carbon removal in a currency's smallest unit. + /// + [JsonProperty("current_prices_per_metric_ton")] + public Dictionary CurrentPricesPerMetricTon { get; set; } + + /// + /// The year in which the carbon removal is expected to be delivered. + /// + [JsonProperty("delivery_year")] + public long? DeliveryYear { get; set; } + + /// + /// Has the value true if the object exists in live mode or the value false if + /// the object exists in test mode. + /// + [JsonProperty("livemode")] + public bool Livemode { get; set; } + + /// + /// The quantity of metric tons available for reservation. + /// + [JsonProperty("metric_tons_available")] + public decimal MetricTonsAvailable { get; set; } + + /// + /// The Climate product's name. + /// + [JsonProperty("name")] + public string Name { get; set; } + + /// + /// The carbon removal suppliers that fulfill orders for this Climate product. + /// + [JsonProperty("suppliers")] + public List Suppliers { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Products/ProductCurrentPricesPerMetricTon.cs b/src/Stripe.net/Entities/Climate/Products/ProductCurrentPricesPerMetricTon.cs new file mode 100644 index 0000000000..29cbde6eb2 --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Products/ProductCurrentPricesPerMetricTon.cs @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using Newtonsoft.Json; + + public class ProductCurrentPricesPerMetricTon : StripeEntity + { + /// + /// Fees for one metric ton of carbon removal in the currency's smallest unit. + /// + [JsonProperty("amount_fees")] + public long AmountFees { get; set; } + + /// + /// Subtotal for one metric ton of carbon removal (excluding fees) in the currency's + /// smallest unit. + /// + [JsonProperty("amount_subtotal")] + public long AmountSubtotal { get; set; } + + /// + /// Total for one metric ton of carbon removal (including fees) in the currency's smallest + /// unit. + /// + [JsonProperty("amount_total")] + public long AmountTotal { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Suppliers/Supplier.cs b/src/Stripe.net/Entities/Climate/Suppliers/Supplier.cs new file mode 100644 index 0000000000..3cadd1c4e8 --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Suppliers/Supplier.cs @@ -0,0 +1,57 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System.Collections.Generic; + using Newtonsoft.Json; + + /// + /// A supplier of carbon removal. + /// + public class Supplier : StripeEntity, IHasId, IHasObject + { + /// + /// Unique identifier for the object. + /// + [JsonProperty("id")] + public string Id { get; set; } + + /// + /// String representing the object’s type. Objects of the same type share the same value. + /// + [JsonProperty("object")] + public string Object { get; set; } + + /// + /// Link to a webpage to learn more about the supplier. + /// + [JsonProperty("info_url")] + public string InfoUrl { get; set; } + + /// + /// Has the value true if the object exists in live mode or the value false if + /// the object exists in test mode. + /// + [JsonProperty("livemode")] + public bool Livemode { get; set; } + + /// + /// The locations in which this supplier operates. + /// + [JsonProperty("locations")] + public List Locations { get; set; } + + /// + /// Name of this carbon removal supplier. + /// + [JsonProperty("name")] + public string Name { get; set; } + + /// + /// The scientific pathway used for carbon removal. + /// One of: biomass_carbon_removal_and_storage, direct_air_capture, + /// enhanced_weathering, or various. + /// + [JsonProperty("removal_pathway")] + public string RemovalPathway { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Climate/Suppliers/SupplierLocation.cs b/src/Stripe.net/Entities/Climate/Suppliers/SupplierLocation.cs new file mode 100644 index 0000000000..244985b13f --- /dev/null +++ b/src/Stripe.net/Entities/Climate/Suppliers/SupplierLocation.cs @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using Newtonsoft.Json; + + public class SupplierLocation : StripeEntity + { + /// + /// The city where the supplier is located. + /// + [JsonProperty("city")] + public string City { get; set; } + + /// + /// Two-letter ISO code representing the country where the supplier is located. + /// + [JsonProperty("country")] + public string Country { get; set; } + + /// + /// The geographic latitude where the supplier is located. + /// + [JsonProperty("latitude")] + public decimal? Latitude { get; set; } + + /// + /// The geographic longitude where the supplier is located. + /// + [JsonProperty("longitude")] + public decimal? Longitude { get; set; } + + /// + /// The state/county/province/region where the supplier is located. + /// + [JsonProperty("region")] + public string Region { get; set; } + } +} diff --git a/src/Stripe.net/Entities/Events/Event.cs b/src/Stripe.net/Entities/Events/Event.cs index d76e2ae130..d54e408f74 100644 --- a/src/Stripe.net/Entities/Events/Event.cs +++ b/src/Stripe.net/Entities/Events/Event.cs @@ -111,14 +111,18 @@ public class Event : StripeEntity, IHasId, IHasObject /// charge.succeeded, charge.updated, /// checkout.session.async_payment_failed, /// checkout.session.async_payment_succeeded, checkout.session.completed, - /// checkout.session.expired, coupon.created, coupon.deleted, - /// coupon.updated, credit_note.created, credit_note.updated, - /// credit_note.voided, customer.created, customer.deleted, - /// customer.discount.created, customer.discount.deleted, - /// customer.discount.updated, customer.source.created, - /// customer.source.deleted, customer.source.expiring, - /// customer.source.updated, customer.subscription.created, - /// customer.subscription.deleted, customer.subscription.paused, + /// checkout.session.expired, climate.order.canceled, + /// climate.order.created, climate.order.delayed, + /// climate.order.delivered, climate.order.product_substituted, + /// climate.product.created, climate.product.pricing_updated, + /// coupon.created, coupon.deleted, coupon.updated, + /// credit_note.created, credit_note.updated, credit_note.voided, + /// customer.created, customer.deleted, customer.discount.created, + /// customer.discount.deleted, customer.discount.updated, + /// customer.source.created, customer.source.deleted, + /// customer.source.expiring, customer.source.updated, + /// customer.subscription.created, customer.subscription.deleted, + /// customer.subscription.paused, /// customer.subscription.pending_update_applied, /// customer.subscription.pending_update_expired, /// customer.subscription.resumed, customer.subscription.trial_will_end, diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs index e8a53a4800..bc11b85ab7 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntent.cs @@ -506,8 +506,10 @@ public IPaymentSource Source #endregion /// - /// For non-card charges, you can use this value as the complete description that appears on - /// your customers’ statements. Must contain at least one letter, maximum 22 characters. + /// For card charges, use statement_descriptor_suffix. + /// Otherwise, you can use this value as the complete description of a charge on your + /// customers' statements. It must contain at least one letter and be 1–22 characters long. /// [JsonProperty("statement_descriptor")] public string StatementDescriptor { get; set; } diff --git a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCard.cs b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCard.cs index ae75734778..232224245e 100644 --- a/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCard.cs +++ b/src/Stripe.net/Entities/PaymentIntents/PaymentIntentPaymentMethodOptionsCard.cs @@ -81,7 +81,7 @@ public class PaymentIntentPaymentMethodOptionsCard : StripeEntitymanually requesting 3D /// Secure for more information on how this configuration interacts with Radar and our /// SCA Engine. - /// One of: any, automatic, or challenge_only. + /// One of: any, automatic, challenge, or challenge_only. /// [JsonProperty("request_three_d_secure")] public string RequestThreeDSecure { get; set; } diff --git a/src/Stripe.net/Entities/SetupIntents/SetupIntentPaymentMethodOptionsCard.cs b/src/Stripe.net/Entities/SetupIntents/SetupIntentPaymentMethodOptionsCard.cs index e45804d63f..b5f5be3a93 100644 --- a/src/Stripe.net/Entities/SetupIntents/SetupIntentPaymentMethodOptionsCard.cs +++ b/src/Stripe.net/Entities/SetupIntents/SetupIntentPaymentMethodOptionsCard.cs @@ -31,7 +31,7 @@ public class SetupIntentPaymentMethodOptionsCard : StripeEntitymanually requesting 3D /// Secure for more information on how this configuration interacts with Radar and our /// SCA Engine. - /// One of: any, automatic, or challenge_only. + /// One of: any, automatic, challenge, or challenge_only. /// [JsonProperty("request_three_d_secure")] public string RequestThreeDSecure { get; set; } diff --git a/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs b/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs index 12e66e4082..76521b3f35 100644 --- a/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs +++ b/src/Stripe.net/Infrastructure/Public/StripeTypeRegistry.cs @@ -35,6 +35,9 @@ public static class StripeTypeRegistry { "cash_balance", typeof(CashBalance) }, { "charge", typeof(Charge) }, { "checkout.session", typeof(Checkout.Session) }, + { "climate.order", typeof(Climate.Order) }, + { "climate.product", typeof(Climate.Product) }, + { "climate.supplier", typeof(Climate.Supplier) }, { "connect_collection_transfer", typeof( ConnectCollectionTransfer) diff --git a/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs b/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs index 0619b9f28d..9c47cf6592 100644 --- a/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs +++ b/src/Stripe.net/Services/BalanceTransactions/BalanceTransactionListOptions.cs @@ -30,15 +30,16 @@ public class BalanceTransactionListOptions : ListOptionsWithCreated /// /// Only returns transactions of the given type. One of: adjustment, advance, /// advance_funding, anticipation_repayment, application_fee, - /// application_fee_refund, charge, connect_collection_transfer, - /// contribution, issuing_authorization_hold, - /// issuing_authorization_release, issuing_dispute, - /// issuing_transaction, obligation_inbound, obligation_outbound, - /// obligation_reversal_inbound, obligation_reversal_outbound, - /// obligation_payout, obligation_payout_failure, payment, - /// payment_failure_refund, payment_refund, payment_reversal, - /// payment_unreconciled, payout, payout_cancel, payout_failure, - /// refund, refund_failure, reserve_transaction, reserved_funds, + /// application_fee_refund, charge, climate_order_purchase, + /// climate_order_refund, connect_collection_transfer, contribution, + /// issuing_authorization_hold, issuing_authorization_release, + /// issuing_dispute, issuing_transaction, obligation_inbound, + /// obligation_outbound, obligation_reversal_inbound, + /// obligation_reversal_outbound, obligation_payout, + /// obligation_payout_failure, payment, payment_failure_refund, + /// payment_refund, payment_reversal, payment_unreconciled, + /// payout, payout_cancel, payout_failure, refund, + /// refund_failure, reserve_transaction, reserved_funds, /// stripe_fee, stripe_fx_fee, tax_fee, topup, /// topup_reversal, transfer, transfer_cancel, transfer_failure, /// or transfer_refund. diff --git a/src/Stripe.net/Services/Checkout/Sessions/SessionListOptions.cs b/src/Stripe.net/Services/Checkout/Sessions/SessionListOptions.cs index 1db17656f5..c242456d67 100644 --- a/src/Stripe.net/Services/Checkout/Sessions/SessionListOptions.cs +++ b/src/Stripe.net/Services/Checkout/Sessions/SessionListOptions.cs @@ -3,7 +3,7 @@ namespace Stripe.Checkout { using Newtonsoft.Json; - public class SessionListOptions : ListOptions + public class SessionListOptions : ListOptionsWithCreated { /// /// Only return the Checkout Sessions for the Customer specified. diff --git a/src/Stripe.net/Services/Climate/Orders/OrderBeneficiaryOptions.cs b/src/Stripe.net/Services/Climate/Orders/OrderBeneficiaryOptions.cs new file mode 100644 index 0000000000..078dbd985d --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderBeneficiaryOptions.cs @@ -0,0 +1,14 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using Newtonsoft.Json; + + public class OrderBeneficiaryOptions : INestedOptions + { + /// + /// Publicly displayable name for the end beneficiary of carbon removal. + /// + [JsonProperty("public_name")] + public string PublicName { get; set; } + } +} diff --git a/src/Stripe.net/Services/Climate/Orders/OrderCancelOptions.cs b/src/Stripe.net/Services/Climate/Orders/OrderCancelOptions.cs new file mode 100644 index 0000000000..6982f6f6f9 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderCancelOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class OrderCancelOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Orders/OrderCreateOptions.cs b/src/Stripe.net/Services/Climate/Orders/OrderCreateOptions.cs new file mode 100644 index 0000000000..a02faa61c6 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderCreateOptions.cs @@ -0,0 +1,53 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System.Collections.Generic; + using Newtonsoft.Json; + + public class OrderCreateOptions : BaseOptions, IHasMetadata + { + /// + /// Requested amount of carbon removal units. Either this or metric_tons must be + /// specified. + /// + [JsonProperty("amount")] + public long? Amount { get; set; } + + /// + /// Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the + /// Stripe account if not set. + /// + [JsonProperty("beneficiary")] + public OrderBeneficiaryOptions Beneficiary { get; set; } + + /// + /// Request currency for the order as a three-letter ISO currency code, in + /// lowercase. Must be a supported settlement + /// currency for your account. If omitted, the account's default currency will be used. + /// + [JsonProperty("currency")] + public string Currency { 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")] + public Dictionary Metadata { get; set; } + + /// + /// Requested number of tons for the order. Either this or amount must be specified. + /// + [JsonProperty("metric_tons")] + public decimal? MetricTons { get; set; } + + /// + /// Unique identifier of the Climate product. + /// + [JsonProperty("product")] + public string Product { get; set; } + } +} diff --git a/src/Stripe.net/Services/Climate/Orders/OrderGetOptions.cs b/src/Stripe.net/Services/Climate/Orders/OrderGetOptions.cs new file mode 100644 index 0000000000..1724b3e45d --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderGetOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class OrderGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Orders/OrderListOptions.cs b/src/Stripe.net/Services/Climate/Orders/OrderListOptions.cs new file mode 100644 index 0000000000..248cdf6437 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderListOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class OrderListOptions : ListOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Orders/OrderService.cs b/src/Stripe.net/Services/Climate/Orders/OrderService.cs new file mode 100644 index 0000000000..11751e38a0 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderService.cs @@ -0,0 +1,87 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class OrderService : Service, + ICreatable, + IListable, + IRetrievable, + IUpdatable + { + public OrderService() + : base(null) + { + } + + public OrderService(IStripeClient client) + : base(client) + { + } + + public override string BasePath => "/v1/climate/orders"; + + public virtual Order Cancel(string id, OrderCancelOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(HttpMethod.Post, $"/v1/climate/orders/{id}/cancel", options, requestOptions); + } + + public virtual Task CancelAsync(string id, OrderCancelOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(HttpMethod.Post, $"/v1/climate/orders/{id}/cancel", options, requestOptions, cancellationToken); + } + + public virtual Order Create(OrderCreateOptions options, RequestOptions requestOptions = null) + { + return this.Request(HttpMethod.Post, $"/v1/climate/orders", options, requestOptions); + } + + public virtual Task CreateAsync(OrderCreateOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(HttpMethod.Post, $"/v1/climate/orders", options, requestOptions, cancellationToken); + } + + public virtual Order Get(string id, OrderGetOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(HttpMethod.Get, $"/v1/climate/orders/{id}", options, requestOptions); + } + + public virtual Task GetAsync(string id, OrderGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(HttpMethod.Get, $"/v1/climate/orders/{id}", options, requestOptions, cancellationToken); + } + + public virtual StripeList List(OrderListOptions options = null, RequestOptions requestOptions = null) + { + return this.Request>(HttpMethod.Get, $"/v1/climate/orders", options, requestOptions); + } + + public virtual Task> ListAsync(OrderListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync>(HttpMethod.Get, $"/v1/climate/orders", options, requestOptions, cancellationToken); + } + + public virtual IEnumerable ListAutoPaging(OrderListOptions options = null, RequestOptions requestOptions = null) + { + return this.ListRequestAutoPaging($"/v1/climate/orders", options, requestOptions); + } + + public virtual IAsyncEnumerable ListAutoPagingAsync(OrderListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/climate/orders", options, requestOptions, cancellationToken); + } + + public virtual Order Update(string id, OrderUpdateOptions options, RequestOptions requestOptions = null) + { + return this.Request(HttpMethod.Post, $"/v1/climate/orders/{id}", options, requestOptions); + } + + public virtual Task UpdateAsync(string id, OrderUpdateOptions options, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(HttpMethod.Post, $"/v1/climate/orders/{id}", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Climate/Orders/OrderUpdateOptions.cs b/src/Stripe.net/Services/Climate/Orders/OrderUpdateOptions.cs new file mode 100644 index 0000000000..118fcedcb0 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Orders/OrderUpdateOptions.cs @@ -0,0 +1,25 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System.Collections.Generic; + using Newtonsoft.Json; + + public class OrderUpdateOptions : BaseOptions, IHasMetadata + { + /// + /// Publicly sharable reference for the end beneficiary of carbon removal. Assumed to be the + /// Stripe account if not set. + /// + [JsonProperty("beneficiary")] + public OrderBeneficiaryOptions Beneficiary { 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")] + public Dictionary Metadata { get; set; } + } +} diff --git a/src/Stripe.net/Services/Climate/Products/ProductGetOptions.cs b/src/Stripe.net/Services/Climate/Products/ProductGetOptions.cs new file mode 100644 index 0000000000..3fdb002160 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Products/ProductGetOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class ProductGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Products/ProductListOptions.cs b/src/Stripe.net/Services/Climate/Products/ProductListOptions.cs new file mode 100644 index 0000000000..d3722ad0d3 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Products/ProductListOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class ProductListOptions : ListOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Products/ProductService.cs b/src/Stripe.net/Services/Climate/Products/ProductService.cs new file mode 100644 index 0000000000..2717b6df69 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Products/ProductService.cs @@ -0,0 +1,55 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class ProductService : Service, + IListable, + IRetrievable + { + public ProductService() + : base(null) + { + } + + public ProductService(IStripeClient client) + : base(client) + { + } + + public override string BasePath => "/v1/climate/products"; + + public virtual Product Get(string id, ProductGetOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(HttpMethod.Get, $"/v1/climate/products/{id}", options, requestOptions); + } + + public virtual Task GetAsync(string id, ProductGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(HttpMethod.Get, $"/v1/climate/products/{id}", options, requestOptions, cancellationToken); + } + + public virtual StripeList List(ProductListOptions options = null, RequestOptions requestOptions = null) + { + return this.Request>(HttpMethod.Get, $"/v1/climate/products", options, requestOptions); + } + + public virtual Task> ListAsync(ProductListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync>(HttpMethod.Get, $"/v1/climate/products", options, requestOptions, cancellationToken); + } + + public virtual IEnumerable ListAutoPaging(ProductListOptions options = null, RequestOptions requestOptions = null) + { + return this.ListRequestAutoPaging($"/v1/climate/products", options, requestOptions); + } + + public virtual IAsyncEnumerable ListAutoPagingAsync(ProductListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/climate/products", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Climate/Suppliers/SupplierGetOptions.cs b/src/Stripe.net/Services/Climate/Suppliers/SupplierGetOptions.cs new file mode 100644 index 0000000000..ee18c9ea4e --- /dev/null +++ b/src/Stripe.net/Services/Climate/Suppliers/SupplierGetOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class SupplierGetOptions : BaseOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Suppliers/SupplierListOptions.cs b/src/Stripe.net/Services/Climate/Suppliers/SupplierListOptions.cs new file mode 100644 index 0000000000..84c5a6c28d --- /dev/null +++ b/src/Stripe.net/Services/Climate/Suppliers/SupplierListOptions.cs @@ -0,0 +1,7 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + public class SupplierListOptions : ListOptions + { + } +} diff --git a/src/Stripe.net/Services/Climate/Suppliers/SupplierService.cs b/src/Stripe.net/Services/Climate/Suppliers/SupplierService.cs new file mode 100644 index 0000000000..31c12e4a10 --- /dev/null +++ b/src/Stripe.net/Services/Climate/Suppliers/SupplierService.cs @@ -0,0 +1,55 @@ +// File generated from our OpenAPI spec +namespace Stripe.Climate +{ + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public class SupplierService : Service, + IListable, + IRetrievable + { + public SupplierService() + : base(null) + { + } + + public SupplierService(IStripeClient client) + : base(client) + { + } + + public override string BasePath => "/v1/climate/suppliers"; + + public virtual Supplier Get(string id, SupplierGetOptions options = null, RequestOptions requestOptions = null) + { + return this.Request(HttpMethod.Get, $"/v1/climate/suppliers/{id}", options, requestOptions); + } + + public virtual Task GetAsync(string id, SupplierGetOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync(HttpMethod.Get, $"/v1/climate/suppliers/{id}", options, requestOptions, cancellationToken); + } + + public virtual StripeList List(SupplierListOptions options = null, RequestOptions requestOptions = null) + { + return this.Request>(HttpMethod.Get, $"/v1/climate/suppliers", options, requestOptions); + } + + public virtual Task> ListAsync(SupplierListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.RequestAsync>(HttpMethod.Get, $"/v1/climate/suppliers", options, requestOptions, cancellationToken); + } + + public virtual IEnumerable ListAutoPaging(SupplierListOptions options = null, RequestOptions requestOptions = null) + { + return this.ListRequestAutoPaging($"/v1/climate/suppliers", options, requestOptions); + } + + public virtual IAsyncEnumerable ListAutoPagingAsync(SupplierListOptions options = null, RequestOptions requestOptions = null, CancellationToken cancellationToken = default) + { + return this.ListRequestAutoPagingAsync($"/v1/climate/suppliers", options, requestOptions, cancellationToken); + } + } +} diff --git a/src/Stripe.net/Services/Customers/CustomerTaxOptions.cs b/src/Stripe.net/Services/Customers/CustomerTaxOptions.cs index 4fc65f3a65..a6f4c62479 100644 --- a/src/Stripe.net/Services/Customers/CustomerTaxOptions.cs +++ b/src/Stripe.net/Services/Customers/CustomerTaxOptions.cs @@ -13,5 +13,13 @@ public class CustomerTaxOptions : INestedOptions /// [JsonProperty("ip_address")] public string IpAddress { get; set; } + + /// + /// A flag that indicates when Stripe should validate the customer tax location. Defaults to + /// deferred. + /// One of: deferred, or immediately. + /// + [JsonProperty("validate_location")] + public string ValidateLocation { get; set; } } } diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs index b3c3df79f7..d25b89f0d5 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCaptureOptions.cs @@ -45,8 +45,10 @@ public class PaymentIntentCaptureOptions : BaseOptions, IHasMetadata public Dictionary Metadata { get; set; } /// - /// For non-card charges, you can use this value as the complete description that appears on - /// your customers’ statements. Must contain at least one letter, maximum 22 characters. + /// For card charges, use statement_descriptor_suffix. + /// Otherwise, you can use this value as the complete description of a charge on your + /// customers' statements. It must contain at least one letter and be 1–22 characters long. /// [JsonProperty("statement_descriptor")] public string StatementDescriptor { get; set; } diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs index 01d1a19e9d..1c0df28990 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentCreateOptions.cs @@ -238,9 +238,10 @@ public class PaymentIntentCreateOptions : BaseOptions, IHasMetadata public ChargeShippingOptions Shipping { get; set; } /// - /// For non-card charges, you can use this value as the complete description that appears on - /// your customers’ statements. It must contain at least one letter and be 1–22 characters - /// long. + /// For card charges, use statement_descriptor_suffix. + /// Otherwise, you can use this value as the complete description of a charge on your + /// customers' statements. It must contain at least one letter and be 1–22 characters long. /// [JsonProperty("statement_descriptor")] public string StatementDescriptor { get; set; } diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs index 299fc55e5b..54dea0d71f 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentIncrementAuthorizationOptions.cs @@ -40,8 +40,10 @@ public class PaymentIntentIncrementAuthorizationOptions : BaseOptions, IHasMetad public Dictionary Metadata { get; set; } /// - /// For non-card charges, you can use this value as the complete description that appears on - /// your customers’ statements. Must contain at least one letter, maximum 22 characters. + /// For card charges, use statement_descriptor_suffix. + /// Otherwise, you can use this value as the complete description of a charge on your + /// customers' statements. It must contain at least one letter and be 1–22 characters long. /// [JsonProperty("statement_descriptor")] public string StatementDescriptor { get; set; } diff --git a/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs b/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs index 42c24e1fe3..13145d071f 100644 --- a/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs +++ b/src/Stripe.net/Services/PaymentIntents/PaymentIntentUpdateOptions.cs @@ -150,8 +150,10 @@ public class PaymentIntentUpdateOptions : BaseOptions, IHasMetadata public ChargeShippingOptions Shipping { get; set; } /// - /// For non-card charges, you can use this value as the complete description that appears on - /// your customers’ statements. Must contain at least one letter, maximum 22 characters. + /// For card charges, use statement_descriptor_suffix. + /// Otherwise, you can use this value as the complete description of a charge on your + /// customers' statements. It must contain at least one letter and be 1–22 characters long. /// [JsonProperty("statement_descriptor")] public string StatementDescriptor { get; set; } diff --git a/src/Stripe.net/Services/Reporting/ReportRuns/ReportRunParametersOptions.cs b/src/Stripe.net/Services/Reporting/ReportRuns/ReportRunParametersOptions.cs index 4c687297fa..b500d053e6 100644 --- a/src/Stripe.net/Services/Reporting/ReportRuns/ReportRunParametersOptions.cs +++ b/src/Stripe.net/Services/Reporting/ReportRuns/ReportRunParametersOptions.cs @@ -50,7 +50,8 @@ public class ReportRunParametersOptions : INestedOptions /// /// Category of balance transactions to be included in the report run. /// One of: advance, advance_funding, anticipation_repayment, - /// charge, charge_failure, connect_collection_transfer, + /// charge, charge_failure, climate_order_purchase, + /// climate_order_refund, connect_collection_transfer, /// connect_reserved_funds, contribution, dispute, /// dispute_reversal, fee, financing_paydown, /// financing_paydown_reversal, financing_payout, diff --git a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs index 57801aafcf..cde5dcdfcb 100644 --- a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs +++ b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointCreateOptions.cs @@ -69,14 +69,18 @@ public class WebhookEndpointCreateOptions : BaseOptions, IHasMetadata /// charge.succeeded, charge.updated, /// checkout.session.async_payment_failed, /// checkout.session.async_payment_succeeded, checkout.session.completed, - /// checkout.session.expired, coupon.created, coupon.deleted, - /// coupon.updated, credit_note.created, credit_note.updated, - /// credit_note.voided, customer.created, customer.deleted, - /// customer.discount.created, customer.discount.deleted, - /// customer.discount.updated, customer.source.created, - /// customer.source.deleted, customer.source.expiring, - /// customer.source.updated, customer.subscription.created, - /// customer.subscription.deleted, customer.subscription.paused, + /// checkout.session.expired, climate.order.canceled, + /// climate.order.created, climate.order.delayed, + /// climate.order.delivered, climate.order.product_substituted, + /// climate.product.created, climate.product.pricing_updated, + /// coupon.created, coupon.deleted, coupon.updated, + /// credit_note.created, credit_note.updated, credit_note.voided, + /// customer.created, customer.deleted, customer.discount.created, + /// customer.discount.deleted, customer.discount.updated, + /// customer.source.created, customer.source.deleted, + /// customer.source.expiring, customer.source.updated, + /// customer.subscription.created, customer.subscription.deleted, + /// customer.subscription.paused, /// customer.subscription.pending_update_applied, /// customer.subscription.pending_update_expired, /// customer.subscription.resumed, customer.subscription.trial_will_end, diff --git a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs index 412909632c..5ea3389993 100644 --- a/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs +++ b/src/Stripe.net/Services/WebhookEndpoints/WebhookEndpointUpdateOptions.cs @@ -36,14 +36,18 @@ public class WebhookEndpointUpdateOptions : BaseOptions, IHasMetadata /// charge.succeeded, charge.updated, /// checkout.session.async_payment_failed, /// checkout.session.async_payment_succeeded, checkout.session.completed, - /// checkout.session.expired, coupon.created, coupon.deleted, - /// coupon.updated, credit_note.created, credit_note.updated, - /// credit_note.voided, customer.created, customer.deleted, - /// customer.discount.created, customer.discount.deleted, - /// customer.discount.updated, customer.source.created, - /// customer.source.deleted, customer.source.expiring, - /// customer.source.updated, customer.subscription.created, - /// customer.subscription.deleted, customer.subscription.paused, + /// checkout.session.expired, climate.order.canceled, + /// climate.order.created, climate.order.delayed, + /// climate.order.delivered, climate.order.product_substituted, + /// climate.product.created, climate.product.pricing_updated, + /// coupon.created, coupon.deleted, coupon.updated, + /// credit_note.created, credit_note.updated, credit_note.voided, + /// customer.created, customer.deleted, customer.discount.created, + /// customer.discount.deleted, customer.discount.updated, + /// customer.source.created, customer.source.deleted, + /// customer.source.expiring, customer.source.updated, + /// customer.subscription.created, customer.subscription.deleted, + /// customer.subscription.paused, /// customer.subscription.pending_update_applied, /// customer.subscription.pending_update_expired, /// customer.subscription.resumed, customer.subscription.trial_will_end,