Skip to content

10.0.0

Latest

Choose a tag to compare

@imlukedewitt imlukedewitt released this 14 Aug 14:28
· 0 commits to main since this release

ab-dotnet-sdk 10.0.0 Changelog

Breaking Changes

  • unit_balance is now a union container instead of an integer. This affects SubscriptionComponent, CreateSubscriptionComponent, MeteredUsage, and PrepaidUsage. Each container exposes FromNumber and FromString factory methods, and a Match method that takes a handler for each case.
  • GetOneTimeTokenRequest.PaymentProfile is now a discriminated union. The endpoint can return a credit card profile or a bank account profile, keyed on payment_type. Direct property access no longer reaches the profile fields, and GetOneTimeTokenRequestPaymentProfile exposes Match for both variants.
  • ListSubscriptionsInput.Product is now a union container. The filter accepts a product ID or an exact product name. Product handles are not supported. ListSubscriptionsInputProduct exposes FromNumber and FromString factory methods.
  • ListSubcriptionGroupPrepaymentItem is renamed to ListSubscriptionGroupPrepaymentItem. We corrected a typo in the schema title, and the generated class name follows the title. The properties of the model are unchanged.
  • The ListSubscriptionsInput constructor argument order changed. The parameter count went from 16 to 25. sort and direction moved to positions 3 and 4.
  • Surcharging was inserted mid-list in four customer constructors. The new parameter sits directly after taxExempt on Customer, CustomerAttributes, CreateCustomer, and UpdateCustomer. Every parameter after it shifted by one position. For positional calls, a type mismatch usually causes a compile error, but a positional null can bind to Surcharging silently.
  • CreditCardPaymentProfile.CardType can now be null. The C# type is unchanged at Models.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 UpdateInvoice and DeleteInvoice to InvoicesController, with async variants. Both act only on ad hoc invoices in draft status.
  • Added support for the subscription_product_change_scheduled webhook event, as EventKey.SubscriptionProductChangeScheduled and WebhookSubscription.SubscriptionProductChangeScheduled. The payload deserializes into the existing SubscriptionProductChange model.
  • Added nine filters to ListSubscriptionsInput: Q, QScope, CustomerId, CollectionMethod, GroupStatus, DunningExemption, PaymentGateways, Currencies, and BrandingThemeId.
  • Added three SubscriptionListInclude values: CurrentAccountBalanceInCents, CurrentBillingAmount, and Coupons.
  • Added five SubscriptionStateFilter values: EnumExpiredCardsLiveSubscriptions, EnumExpiredCardsAllSubscriptions, AwaitingSignup, AwaitingSignupDate, and PrepaidDunning.

New Models

  • UpdateInvoice
  • UpdateInvoiceItem
  • UpdateInvoiceRequest
  • GetOneTimeTokenBankAccountPaymentProfile
  • QScope (enum)
  • GroupStatus (enum)
  • CollectionMethod1 (enum). The 1 suffix avoids a collision with the existing CollectionMethod.

New container types under AdvancedBilling.Standard.Models.Containers:

  • SubscriptionComponentUnitBalance
  • CreateSubscriptionComponentUnitBalance
  • MeteredUsageNewUnitBalance
  • PrepaidUsageNewUnitBalance
  • PrepaidUsageNewOverageUnitBalance
  • GetOneTimeTokenRequestPaymentProfile
  • ListSubscriptionsInputProduct
  • UpdateInvoiceItemQuantity
  • UpdateInvoiceItemUnitPrice
  • UpdateInvoiceItemProductId
  • UpdateInvoiceItemProductPricePointId
  • UpdateInvoiceItemComponentId
  • UpdateInvoiceItemPricePointId

Model Enhancements

  • Component, CreateOrUpdateProduct, Product, EBBComponent, MeteredComponent, OnOffComponent, PrepaidUsageComponent, QuantityBasedComponent, UpdateComponent
    • Added UnspscCode (string?).
  • Customer
    • Added Surcharging (bool?).
    • Added BrandingThemeId (int?).
  • CustomerAttributes
    • Added Surcharging (bool?).
  • CreateCustomer
    • Added Surcharging (bool?).
    • Added BrandingThemeId (int?).
  • UpdateCustomer
    • Added Surcharging (bool?).
    • Added BrandingThemeId (int?).
  • ProductFamily
    • Added Surcharging (bool?).
  • CreateProductFamily
    • Added Surcharging (bool?).
  • CreateSubscription
    • Added BrandingThemeId (int?). Write-only. The subscription response does not return it.
  • UpdateSubscription
    • Added BrandingThemeId (int?). Write-only. The subscription response does not return it.
  • Invoice
    • Added BrandingThemeId (int?).
  • SubscriptionProductChange
    • Added PreviousProductPricePointId (int?).
    • Added NewProductPricePointId (int?).
    • Added EffectiveAt (DateTimeOffset?).
    • Only the subscription_product_change_scheduled event populates these three fields.

Bug Fixes

  • subscription_product_change_scheduled events no longer fail to deserialize. The payload carries previous_product_price_point_id, new_product_price_point_id, and effective_at. SubscriptionProductChange did 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