ab-java-sdk 10.0.0 Changelog
Breaking Changes
unit_balanceis now a one-of container instead of an integer. This affectsSubscriptionComponent,CreateSubscriptionComponent,MeteredUsage, andPrepaidUsage. Each container exposesfromNumberandfromStringfactory methods, and amatchmethod that takes a case for each variant.GetOneTimeTokenRequest.paymentProfileis now an any-of container. The endpoint can return a credit card profile or a bank account profile, keyed onpayment_type. Direct getter access no longer reaches the profile fields, andGetOneTimeTokenRequestPaymentProfileexposesmatchfor both variants.ListSubscriptionsInput.getProduct()now returnsListSubscriptionsInputProductinstead ofInteger. 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. Because the arity changed, existing positional calls fail to compile rather than misbind. - All-args constructors widened on models that gained properties. Any model listed under Model Enhancements has a longer all-args constructor.
CreditCardPaymentProfile.cardTypecan now be null. The API can now return null on a profile that previously always carried a value.
New Features
- Added
updateInvoiceanddeleteInvoicetoInvoicesController. Both act only on ad hoc invoices indraftstatus. - Added support for the
subscription_product_change_scheduledwebhook event, asEventKey.SUBSCRIPTION_PRODUCT_CHANGE_SCHEDULEDandWebhookSubscription.SUBSCRIPTION_PRODUCT_CHANGE_SCHEDULED. The payload deserializes into the existingSubscriptionProductChangemodel. - Added nine filters to
ListSubscriptionsInput:q,qScope,customerId,collectionMethod,groupStatus,dunningExemption,paymentGateways,currencies, andbrandingThemeId. - Added three
SubscriptionListIncludevalues:CURRENT_ACCOUNT_BALANCE_IN_CENTS,CURRENT_BILLING_AMOUNT, andCOUPONS. - Added five
SubscriptionStateFiltervalues:ENUM_EXPIRED_CARDS_LIVE_SUBSCRIPTIONS,ENUM_EXPIRED_CARDS_ALL_SUBSCRIPTIONS,AWAITING_SIGNUP,AWAITING_SIGNUP_DATE, andPREPAID_DUNNING.
New Models
UpdateInvoiceUpdateInvoiceItemUpdateInvoiceRequestGetOneTimeTokenBankAccountPaymentProfileQScope(enum)CollectionMethod1(enum). The1suffix avoids a collision with the existingCollectionMethod.GroupStatus(enum)
New container types in com.maxio.advancedbilling.models.containers:
SubscriptionComponentUnitBalanceCreateSubscriptionComponentUnitBalanceMeteredUsageNewUnitBalancePrepaidUsageNewUnitBalancePrepaidUsageNewOverageUnitBalanceGetOneTimeTokenRequestPaymentProfileListSubscriptionsInputProductUpdateInvoiceItemQuantityUpdateInvoiceItemUnitPriceUpdateInvoiceItemProductIdUpdateInvoiceItemProductPricePointIdUpdateInvoiceItemComponentIdUpdateInvoiceItemPricePointId
Model Enhancements
Component,CreateOrUpdateProduct,Product,EBBComponent,MeteredComponent,OnOffComponent,PrepaidUsageComponent,QuantityBasedComponent,UpdateComponent- Added
unspscCode(String, nullable).
- Added
Customer- Added
surcharging(Boolean). - Added
brandingThemeId(Integer, nullable).
- Added
CustomerAttributes- Added
surcharging(Boolean).
- Added
CreateCustomer- Added
surcharging(Boolean). - Added
brandingThemeId(Integer, nullable).
- Added
UpdateCustomer- Added
surcharging(Boolean). - Added
brandingThemeId(Integer, nullable).
- Added
ProductFamily- Added
surcharging(Boolean).
- Added
CreateProductFamily- Added
surcharging(Boolean).
- Added
CreateSubscription- Added
brandingThemeId(Integer, nullable). Write-only. The subscription response does not return it.
- Added
UpdateSubscription- Added
brandingThemeId(Integer, nullable). Write-only. The subscription response does not return it.
- Added
Invoice- Added
brandingThemeId(Integer, nullable).
- Added
SubscriptionProductChange- Added
previousProductPricePointId(Integer, nullable). - Added
newProductPricePointId(Integer, nullable). - Added
effectiveAt(ZonedDateTime, nullable). - 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
- Javadoc and doc comments reworded across models and controllers after a wording and punctuation pass in the spec (no behavioral impact).
Full Changelog: 9.1.0...10.0.0