Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,20 @@ This release changes the pinned API version to `2026-01-28.preview`.
* Add support for snapshot event `InvoicePaymentDetached` with resource `InvoicePayment`
* [#3276](https://github.com/stripe/stripe-dotnet/pull/3276) Add EventNotificationHandler example

## 50.3.0 - 2026-01-28
This release changes the pinned API version to `2026-01-28.clover`.

* [#3296](https://github.com/stripe/stripe-dotnet/pull/3296) Update generated code
* Add support for new resource `Radar.PaymentEvaluation`
* Add support for `Create` method on resource `Radar.PaymentEvaluation`
* Add support for `AdjustableQuantity` on `LineItem`
* Add support for `EnforceArithmeticValidation` on `PaymentIntentAmountDetailsOptions`
* Add support for `Error` on `PaymentIntent.AmountDetails`
* Remove support for `Bgn` on `Terminal.Configuration.Tipping` and `TerminalConfigurationTippingOptions`
* Add support for `Topup` on `Treasury.ReceivedDebit.LinkedFlows`
* Add support for `ContactPhone` on `V2.Core.AccountCreateOptions`, `V2.Core.AccountTokenCreateOptions`, `V2.Core.AccountUpdateOptions`, and `V2.Core.Account`
* Add support for `RegistrationDate` on `V2.Core.Account.Identity.BusinessDetails`, `V2CoreAccountIdentityBusinessDetailsOptions`, and `V2CoreAccountTokenIdentityBusinessDetailsOptions`

## 50.2.0 - 2026-01-16
* [#3292](https://github.com/stripe/stripe-dotnet/pull/3292) Update generated code
* Add support for event notifications `V2CoreAccountClosedEvent`, `V2CoreAccountCreatedEvent`, `V2CoreAccountIncludingConfigurationCustomerCapabilityStatusUpdatedEvent`, `V2CoreAccountIncludingConfigurationCustomerUpdatedEvent`, `V2CoreAccountIncludingConfigurationMerchantCapabilityStatusUpdatedEvent`, `V2CoreAccountIncludingConfigurationMerchantUpdatedEvent`, `V2CoreAccountIncludingConfigurationRecipientCapabilityStatusUpdatedEvent`, `V2CoreAccountIncludingConfigurationRecipientUpdatedEvent`, `V2CoreAccountIncludingDefaultsUpdatedEvent`, `V2CoreAccountIncludingFutureRequirementsUpdatedEvent`, `V2CoreAccountIncludingIdentityUpdatedEvent`, `V2CoreAccountIncludingRequirementsUpdatedEvent`, and `V2CoreAccountUpdatedEvent` with related object `V2.Core.Account`
Expand Down
2 changes: 1 addition & 1 deletion CODEGEN_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
529796460735eb8ef64a29787291f1b4d4b29f1c
e65e48569f6dfad2d5f1b58018017856520c3ae6
2 changes: 1 addition & 1 deletion OPENAPI_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v2160
v2186
2 changes: 1 addition & 1 deletion src/Stripe.net/Constants/ApiVersion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ namespace Stripe
{
internal class ApiVersion
{
public const string Current = "2026-01-28.preview";
public const string Current = "2026-02-25.preview";
}
}
35 changes: 35 additions & 0 deletions src/Stripe.net/Constants/EventTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1172,6 +1172,41 @@ public static class EventTypes
/// </summary>
public const string ReportingReportTypeUpdated = "reporting.report_type.updated";

/// <summary>
/// Occurs when a reserve hold is created.
/// </summary>
public const string ReserveHoldCreated = "reserve.hold.created";

/// <summary>
/// Occurs when a reserve hold is updated.
/// </summary>
public const string ReserveHoldUpdated = "reserve.hold.updated";

/// <summary>
/// Occurs when a reserve plan is created.
/// </summary>
public const string ReservePlanCreated = "reserve.plan.created";

/// <summary>
/// Occurs when a reserve plan is disabled.
/// </summary>
public const string ReservePlanDisabled = "reserve.plan.disabled";

/// <summary>
/// Occurs when a reserve plan expires.
/// </summary>
public const string ReservePlanExpired = "reserve.plan.expired";

/// <summary>
/// Occurs when a reserve plan is updated.
/// </summary>
public const string ReservePlanUpdated = "reserve.plan.updated";

/// <summary>
/// Occurs when a reserve release is created.
/// </summary>
public const string ReserveReleaseCreated = "reserve.release.created";

/// <summary>
/// Occurs whenever a review is closed. The review's <c>reason</c> field indicates why:
/// <c>approved</c>, <c>disputed</c>, <c>refunded</c>, <c>refunded_as_fraud</c>, or
Expand Down
4 changes: 4 additions & 0 deletions src/Stripe.net/Constants/FilePurpose.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,9 @@ public static class FilePurpose
public const string TerminalAndroidApk = "terminal_android_apk";

public const string TerminalReaderSplashscreen = "terminal_reader_splashscreen";

public const string TerminalWifiCertificate = "terminal_wifi_certificate";

public const string TerminalWifiPrivateKey = "terminal_wifi_private_key";
}
}
6 changes: 6 additions & 0 deletions src/Stripe.net/Entities/Accounts/AccountSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,12 @@ public class AccountSettings : StripeEntity<AccountSettings>
#endif
public AccountSettingsSepaDebitPayments SepaDebitPayments { get; set; }

[JsonProperty("smart_disputes")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("smart_disputes")]
#endif
public AccountSettingsSmartDisputes SmartDisputes { get; set; }

[JsonProperty("tax_forms")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("tax_forms")]
Expand Down
10 changes: 10 additions & 0 deletions src/Stripe.net/Entities/Accounts/AccountSettingsPayments.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ namespace Stripe

public class AccountSettingsPayments : StripeEntity<AccountSettingsPayments>
{
/// <summary>
/// When enabled, the customer of this Account will receive an email receipt when their
/// payment is successful. If this parameter is not set, the default value is <c>false</c>.
/// </summary>
[JsonProperty("email_customers_on_successful_payment")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("email_customers_on_successful_payment")]
#endif
public bool? EmailCustomersOnSuccessfulPayment { get; set; }

/// <summary>
/// The default text that appears on credit card statements when a charge is made. This
/// field prefixes any dynamic <c>statement_descriptor</c> specified on the charge.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// File generated from our OpenAPI spec
namespace Stripe
{
using Newtonsoft.Json;
#if NET6_0_OR_GREATER
using STJS = System.Text.Json.Serialization;
#endif

public class AccountSettingsSmartDisputes : StripeEntity<AccountSettingsSmartDisputes>
{
[JsonProperty("auto_respond")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("auto_respond")]
#endif
public AccountSettingsSmartDisputesAutoRespond AutoRespond { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// File generated from our OpenAPI spec
namespace Stripe
{
using Newtonsoft.Json;
#if NET6_0_OR_GREATER
using STJS = System.Text.Json.Serialization;
#endif

public class AccountSettingsSmartDisputesAutoRespond : StripeEntity<AccountSettingsSmartDisputesAutoRespond>
{
/// <summary>
/// The preference setting for auto-respond. Can be 'on', 'off', or 'inherit'.
/// One of: <c>inherit</c>, <c>off</c>, or <c>on</c>.
/// </summary>
[JsonProperty("preference")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("preference")]
#endif
public string Preference { get; set; }

/// <summary>
/// The effective value for auto-respond. Can be 'on' or 'off'.
/// One of: <c>off</c>, or <c>on</c>.
/// </summary>
[JsonProperty("value")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("value")]
#endif
public string Value { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,16 @@ public class ChargePaymentMethodDetailsCardPresent : StripeEntity<ChargePaymentM
#endif
public string Last4 { get; set; }

/// <summary>
/// ID of the <a href="https://docs.stripe.com/api/terminal/locations">location</a> that
/// this transaction's reader is assigned to.
/// </summary>
[JsonProperty("location")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("location")]
#endif
public string Location { get; set; }

/// <summary>
/// Identifies which network this charge was processed on. Can be <c>amex</c>,
/// <c>cartes_bancaires</c>, <c>diners</c>, <c>discover</c>, <c>eftpos_au</c>,
Expand Down Expand Up @@ -254,6 +264,16 @@ public class ChargePaymentMethodDetailsCardPresent : StripeEntity<ChargePaymentM
#endif
public string ReadMethod { get; set; }

/// <summary>
/// ID of the <a href="https://docs.stripe.com/api/terminal/readers">reader</a> this
/// transaction was made on.
/// </summary>
[JsonProperty("reader")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("reader")]
#endif
public string Reader { get; set; }

/// <summary>
/// A collection of fields required to be displayed on receipts. Only required for EMV
/// transactions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,16 @@ public class ChargePaymentMethodDetailsInteracPresent : StripeEntity<ChargePayme
#endif
public string Last4 { get; set; }

/// <summary>
/// ID of the <a href="https://docs.stripe.com/api/terminal/locations">location</a> that
/// this transaction's reader is assigned to.
/// </summary>
[JsonProperty("location")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("location")]
#endif
public string Location { get; set; }

/// <summary>
/// Identifies which network this charge was processed on. Can be <c>amex</c>,
/// <c>cartes_bancaires</c>, <c>diners</c>, <c>discover</c>, <c>eftpos_au</c>,
Expand Down Expand Up @@ -190,6 +200,16 @@ public class ChargePaymentMethodDetailsInteracPresent : StripeEntity<ChargePayme
#endif
public string ReadMethod { get; set; }

/// <summary>
/// ID of the <a href="https://docs.stripe.com/api/terminal/readers">reader</a> this
/// transaction was made on.
/// </summary>
[JsonProperty("reader")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("reader")]
#endif
public string Reader { get; set; }

/// <summary>
/// A collection of fields required to be displayed on receipts. Only required for EMV
/// transactions.
Expand Down
12 changes: 12 additions & 0 deletions src/Stripe.net/Entities/Checkout/Sessions/Session.cs
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,18 @@ public Invoice Invoice
#endif
public string Locale { get; set; }

/// <summary>
/// Settings for Managed Payments for this Checkout Session and resulting <a
/// href="https://stripe.com/api/payment_intents/object">PaymentIntents</a>, <a
/// href="https://stripe.com/api/invoices/object">Invoices</a>, and <a
/// href="https://stripe.com/api/subscriptions/object">Subscriptions</a>.
/// </summary>
[JsonProperty("managed_payments")]
#if NET6_0_OR_GREATER
[STJS.JsonPropertyName("managed_payments")]
#endif
public SessionManagedPayments ManagedPayments { get; set; }

/// <summary>
/// Set of <a href="https://docs.stripe.com/api/metadata">key-value pairs</a> that you can
/// attach to an object. This can be useful for storing additional information about the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@ public class SessionCollectedInformationTaxId : StripeEntity<SessionCollectedInf
/// <c>au_arn</c>, <c>in_gst</c>, <c>no_vat</c>, <c>no_voec</c>, <c>za_vat</c>,
/// <c>ch_vat</c>, <c>mx_rfc</c>, <c>sg_uen</c>, <c>ru_inn</c>, <c>ru_kpp</c>, <c>ca_bn</c>,
/// <c>hk_br</c>, <c>es_cif</c>, <c>pl_nip</c>, <c>tw_vat</c>, <c>th_vat</c>, <c>jp_cn</c>,
/// <c>jp_rn</c>, <c>jp_trn</c>, <c>li_uid</c>, <c>li_vat</c>, <c>my_itn</c>, <c>us_ein</c>,
/// <c>kr_brn</c>, <c>ca_qst</c>, <c>ca_gst_hst</c>, <c>ca_pst_bc</c>, <c>ca_pst_mb</c>,
/// <c>ca_pst_sk</c>, <c>my_sst</c>, <c>sg_gst</c>, <c>ae_trn</c>, <c>cl_tin</c>,
/// <c>sa_vat</c>, <c>id_npwp</c>, <c>my_frp</c>, <c>il_vat</c>, <c>ge_vat</c>,
/// <c>ua_vat</c>, <c>is_vat</c>, <c>bg_uic</c>, <c>hu_tin</c>, <c>si_tin</c>,
/// <c>ke_pin</c>, <c>tr_tin</c>, <c>eg_tin</c>, <c>ph_tin</c>, <c>al_tin</c>,
/// <c>bh_vat</c>, <c>kz_bin</c>, <c>ng_tin</c>, <c>om_vat</c>, <c>de_stn</c>,
/// <c>ch_uid</c>, <c>tz_vat</c>, <c>uz_vat</c>, <c>uz_tin</c>, <c>md_vat</c>,
/// <c>ma_vat</c>, <c>by_tin</c>, <c>ao_tin</c>, <c>bs_tin</c>, <c>bb_tin</c>,
/// <c>cd_nif</c>, <c>mr_nif</c>, <c>me_pib</c>, <c>zw_tin</c>, <c>ba_tin</c>,
/// <c>gn_nif</c>, <c>mk_vat</c>, <c>sr_fin</c>, <c>sn_ninea</c>, <c>am_tin</c>,
/// <c>np_pan</c>, <c>tj_tin</c>, <c>ug_tin</c>, <c>zm_tin</c>, <c>kh_tin</c>,
/// <c>aw_tin</c>, <c>az_tin</c>, <c>bd_bin</c>, <c>bj_ifu</c>, <c>et_tin</c>,
/// <c>kg_tin</c>, <c>la_tin</c>, <c>cm_niu</c>, <c>cv_nif</c>, <c>bf_ifu</c>, or
/// <c>unknown</c>.
/// <c>jp_rn</c>, <c>jp_trn</c>, <c>li_uid</c>, <c>li_vat</c>, <c>lk_vat</c>, <c>my_itn</c>,
/// <c>us_ein</c>, <c>kr_brn</c>, <c>ca_qst</c>, <c>ca_gst_hst</c>, <c>ca_pst_bc</c>,
/// <c>ca_pst_mb</c>, <c>ca_pst_sk</c>, <c>my_sst</c>, <c>sg_gst</c>, <c>ae_trn</c>,
/// <c>cl_tin</c>, <c>sa_vat</c>, <c>id_npwp</c>, <c>my_frp</c>, <c>il_vat</c>,
/// <c>ge_vat</c>, <c>ua_vat</c>, <c>is_vat</c>, <c>bg_uic</c>, <c>hu_tin</c>,
/// <c>si_tin</c>, <c>ke_pin</c>, <c>tr_tin</c>, <c>eg_tin</c>, <c>ph_tin</c>,
/// <c>al_tin</c>, <c>bh_vat</c>, <c>kz_bin</c>, <c>ng_tin</c>, <c>om_vat</c>,
/// <c>de_stn</c>, <c>ch_uid</c>, <c>tz_vat</c>, <c>uz_vat</c>, <c>uz_tin</c>,
/// <c>md_vat</c>, <c>ma_vat</c>, <c>by_tin</c>, <c>ao_tin</c>, <c>bs_tin</c>,
/// <c>bb_tin</c>, <c>cd_nif</c>, <c>mr_nif</c>, <c>me_pib</c>, <c>zw_tin</c>,
/// <c>ba_tin</c>, <c>gn_nif</c>, <c>mk_vat</c>, <c>sr_fin</c>, <c>sn_ninea</c>,
/// <c>am_tin</c>, <c>np_pan</c>, <c>tj_tin</c>, <c>ug_tin</c>, <c>zm_tin</c>,
/// <c>kh_tin</c>, <c>aw_tin</c>, <c>az_tin</c>, <c>bd_bin</c>, <c>bj_ifu</c>,
/// <c>et_tin</c>, <c>kg_tin</c>, <c>la_tin</c>, <c>cm_niu</c>, <c>cv_nif</c>,
/// <c>bf_ifu</c>, or <c>unknown</c>.
/// One of: <c>ad_nrt</c>, <c>ae_trn</c>, <c>al_tin</c>, <c>am_tin</c>, <c>ao_tin</c>,
/// <c>ar_cuit</c>, <c>au_abn</c>, <c>au_arn</c>, <c>aw_tin</c>, <c>az_tin</c>,
/// <c>ba_tin</c>, <c>bb_tin</c>, <c>bd_bin</c>, <c>bf_ifu</c>, <c>bg_uic</c>,
Expand All @@ -44,16 +44,17 @@ public class SessionCollectedInformationTaxId : StripeEntity<SessionCollectedInf
/// <c>gb_vat</c>, <c>ge_vat</c>, <c>gn_nif</c>, <c>hk_br</c>, <c>hr_oib</c>, <c>hu_tin</c>,
/// <c>id_npwp</c>, <c>il_vat</c>, <c>in_gst</c>, <c>is_vat</c>, <c>jp_cn</c>, <c>jp_rn</c>,
/// <c>jp_trn</c>, <c>ke_pin</c>, <c>kg_tin</c>, <c>kh_tin</c>, <c>kr_brn</c>,
/// <c>kz_bin</c>, <c>la_tin</c>, <c>li_uid</c>, <c>li_vat</c>, <c>ma_vat</c>,
/// <c>md_vat</c>, <c>me_pib</c>, <c>mk_vat</c>, <c>mr_nif</c>, <c>mx_rfc</c>,
/// <c>my_frp</c>, <c>my_itn</c>, <c>my_sst</c>, <c>ng_tin</c>, <c>no_vat</c>,
/// <c>no_voec</c>, <c>np_pan</c>, <c>nz_gst</c>, <c>om_vat</c>, <c>pe_ruc</c>,
/// <c>ph_tin</c>, <c>pl_nip</c>, <c>ro_tin</c>, <c>rs_pib</c>, <c>ru_inn</c>,
/// <c>ru_kpp</c>, <c>sa_vat</c>, <c>sg_gst</c>, <c>sg_uen</c>, <c>si_tin</c>,
/// <c>sn_ninea</c>, <c>sr_fin</c>, <c>sv_nit</c>, <c>th_vat</c>, <c>tj_tin</c>,
/// <c>tr_tin</c>, <c>tw_vat</c>, <c>tz_vat</c>, <c>ua_vat</c>, <c>ug_tin</c>,
/// <c>unknown</c>, <c>us_ein</c>, <c>uy_ruc</c>, <c>uz_tin</c>, <c>uz_vat</c>,
/// <c>ve_rif</c>, <c>vn_tin</c>, <c>za_vat</c>, <c>zm_tin</c>, or <c>zw_tin</c>.
/// <c>kz_bin</c>, <c>la_tin</c>, <c>li_uid</c>, <c>li_vat</c>, <c>lk_vat</c>,
/// <c>ma_vat</c>, <c>md_vat</c>, <c>me_pib</c>, <c>mk_vat</c>, <c>mr_nif</c>,
/// <c>mx_rfc</c>, <c>my_frp</c>, <c>my_itn</c>, <c>my_sst</c>, <c>ng_tin</c>,
/// <c>no_vat</c>, <c>no_voec</c>, <c>np_pan</c>, <c>nz_gst</c>, <c>om_vat</c>,
/// <c>pe_ruc</c>, <c>ph_tin</c>, <c>pl_nip</c>, <c>ro_tin</c>, <c>rs_pib</c>,
/// <c>ru_inn</c>, <c>ru_kpp</c>, <c>sa_vat</c>, <c>sg_gst</c>, <c>sg_uen</c>,
/// <c>si_tin</c>, <c>sn_ninea</c>, <c>sr_fin</c>, <c>sv_nit</c>, <c>th_vat</c>,
/// <c>tj_tin</c>, <c>tr_tin</c>, <c>tw_vat</c>, <c>tz_vat</c>, <c>ua_vat</c>,
/// <c>ug_tin</c>, <c>unknown</c>, <c>us_ein</c>, <c>uy_ruc</c>, <c>uz_tin</c>,
/// <c>uz_vat</c>, <c>ve_rif</c>, <c>vn_tin</c>, <c>za_vat</c>, <c>zm_tin</c>, or
/// <c>zw_tin</c>.
/// </summary>
[JsonProperty("type")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Stripe.Checkout
public class SessionCustomFieldDropdown : StripeEntity<SessionCustomFieldDropdown>
{
/// <summary>
/// The value that will pre-fill on the payment page.
/// The value that pre-fills on the payment page.
/// </summary>
[JsonProperty("default_value")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Stripe.Checkout
public class SessionCustomFieldNumeric : StripeEntity<SessionCustomFieldNumeric>
{
/// <summary>
/// The value that will pre-fill the field on the payment page.
/// The value that pre-fills the field on the payment page.
/// </summary>
[JsonProperty("default_value")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Stripe.Checkout
public class SessionCustomFieldText : StripeEntity<SessionCustomFieldText>
{
/// <summary>
/// The value that will pre-fill the field on the payment page.
/// The value that pre-fills the field on the payment page.
/// </summary>
[JsonProperty("default_value")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Stripe.Checkout
public class SessionCustomTextAfterSubmit : StripeEntity<SessionCustomTextAfterSubmit>
{
/// <summary>
/// Text may be up to 1200 characters in length.
/// Text can be up to 1200 characters in length.
/// </summary>
[JsonProperty("message")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Stripe.Checkout
public class SessionCustomTextShippingAddress : StripeEntity<SessionCustomTextShippingAddress>
{
/// <summary>
/// Text may be up to 1200 characters in length.
/// Text can be up to 1200 characters in length.
/// </summary>
[JsonProperty("message")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Stripe.Checkout
public class SessionCustomTextSubmit : StripeEntity<SessionCustomTextSubmit>
{
/// <summary>
/// Text may be up to 1200 characters in length.
/// Text can be up to 1200 characters in length.
/// </summary>
[JsonProperty("message")]
#if NET6_0_OR_GREATER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Stripe.Checkout
public class SessionCustomTextTermsOfServiceAcceptance : StripeEntity<SessionCustomTextTermsOfServiceAcceptance>
{
/// <summary>
/// Text may be up to 1200 characters in length.
/// Text can be up to 1200 characters in length.
/// </summary>
[JsonProperty("message")]
#if NET6_0_OR_GREATER
Expand Down
Loading
Loading