ab-dotnet-sdk 10.0.0 Changelog
Breaking Changes
unit_balanceis now a union container instead of an integer. This affectsSubscriptionComponent,CreateSubscriptionComponent,MeteredUsage, andPrepaidUsage. Each container exposesFromNumberandFromStringfactory methods, and aMatchmethod that takes a handler for each case.GetOneTimeTokenRequest.PaymentProfileis now a discriminated union. The endpoint can return a credit card profile or a bank account profile, keyed onpayment_type. Direct property access no longer reaches the profile fields, andGetOneTimeTokenRequestPaymentProfileexposesMatchfor both variants.ListSubscriptionsInput.Productis now a union container. The filter accepts a product ID or an exact product name. Product handles are not supported.ListSubscriptionsInputProductexposesFromNumberandFromStringfactory methods.ListSubcriptionGroupPrepaymentItemis renamed toListSubscriptionGroupPrepaymentItem. We corrected a typo in the schema title, and the generated class name follows the title. The properties of the model are unchanged.- The
ListSubscriptionsInputconstructor argument order changed. The parameter count went from 16 to 25.sortanddirectionmoved to positions 3 and 4. Surchargingwas inserted mid-list in four customer constructors. The new parameter sits directly aftertaxExemptonCustomer,CustomerAttributes,CreateCustomer, andUpdateCustomer. Every parameter after it shifted by one position. For positional calls, a type mismatch usually causes a compile error, but a positionalnullcan bind toSurchargingsilently.CreditCardPaymentProfile.CardTypecan now be null. The C# type is unchanged atModels.CardType?, so this does not break compilation. The API can now return null on a profile that previously always carried a value.
New Features
- Added
UpdateInvoiceandDeleteInvoicetoInvoicesController, with async variants. Both act only on ad hoc invoices indraftstatus. - Added support for the
subscription_product_change_scheduledwebhook event, asEventKey.SubscriptionProductChangeScheduledandWebhookSubscription.SubscriptionProductChangeScheduled. The payload deserializes into the existingSubscriptionProductChangemodel. - Added nine filters to
ListSubscriptionsInput:Q,QScope,CustomerId,CollectionMethod,GroupStatus,DunningExemption,PaymentGateways,Currencies, andBrandingThemeId. - Added three
SubscriptionListIncludevalues:CurrentAccountBalanceInCents,CurrentBillingAmount, andCoupons. - Added five
SubscriptionStateFiltervalues:EnumExpiredCardsLiveSubscriptions,EnumExpiredCardsAllSubscriptions,AwaitingSignup,AwaitingSignupDate, andPrepaidDunning.
New Models
UpdateInvoiceUpdateInvoiceItemUpdateInvoiceRequestGetOneTimeTokenBankAccountPaymentProfileQScope(enum)GroupStatus(enum)CollectionMethod1(enum). The1suffix avoids a collision with the existingCollectionMethod.
New container types under AdvancedBilling.Standard.Models.Containers:
SubscriptionComponentUnitBalanceCreateSubscriptionComponentUnitBalanceMeteredUsageNewUnitBalancePrepaidUsageNewUnitBalancePrepaidUsageNewOverageUnitBalanceGetOneTimeTokenRequestPaymentProfileListSubscriptionsInputProductUpdateInvoiceItemQuantityUpdateInvoiceItemUnitPriceUpdateInvoiceItemProductIdUpdateInvoiceItemProductPricePointIdUpdateInvoiceItemComponentIdUpdateInvoiceItemPricePointId
Model Enhancements
Component,CreateOrUpdateProduct,Product,EBBComponent,MeteredComponent,OnOffComponent,PrepaidUsageComponent,QuantityBasedComponent,UpdateComponent- Added
UnspscCode(string?).
- Added
Customer- Added
Surcharging(bool?). - Added
BrandingThemeId(int?).
- Added
CustomerAttributes- Added
Surcharging(bool?).
- Added
CreateCustomer- Added
Surcharging(bool?). - Added
BrandingThemeId(int?).
- Added
UpdateCustomer- Added
Surcharging(bool?). - Added
BrandingThemeId(int?).
- Added
ProductFamily- Added
Surcharging(bool?).
- Added
CreateProductFamily- Added
Surcharging(bool?).
- Added
CreateSubscription- Added
BrandingThemeId(int?). Write-only. The subscription response does not return it.
- Added
UpdateSubscription- Added
BrandingThemeId(int?). Write-only. The subscription response does not return it.
- Added
Invoice- Added
BrandingThemeId(int?).
- Added
SubscriptionProductChange- Added
PreviousProductPricePointId(int?). - Added
NewProductPricePointId(int?). - Added
EffectiveAt(DateTimeOffset?). - Only the
subscription_product_change_scheduledevent populates these three fields.
- Added
Bug Fixes
subscription_product_change_scheduledevents no longer fail to deserialize. The payload carriesprevious_product_price_point_id,new_product_price_point_id, andeffective_at.SubscriptionProductChangedid not model these fields. It now does.
Internal / Non-functional Changes
- API endpoint doc comments reworded across controllers after a wording and punctuation pass in the spec (no behavioral impact).
Full Changelog: 9.1.0...10.0.0