Skip to content

10.0.0

Latest

Choose a tag to compare

@imlukedewitt imlukedewitt released this 14 Aug 14:32
97cb898

ab-java-sdk 10.0.0 Changelog

Breaking Changes

  • unit_balance is now a one-of 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 case for each variant.
  • GetOneTimeTokenRequest.paymentProfile is now an any-of container. The endpoint can return a credit card profile or a bank account profile, keyed on payment_type. Direct getter access no longer reaches the profile fields, and GetOneTimeTokenRequestPaymentProfile exposes match for both variants.
  • ListSubscriptionsInput.getProduct() now returns ListSubscriptionsInputProduct instead of Integer. 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. 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.cardType can now be null. The API can now return null on a profile that previously always carried a value.

New Features

  • Added updateInvoice and deleteInvoice to InvoicesController. Both act only on ad hoc invoices in draft status.
  • Added support for the subscription_product_change_scheduled webhook event, as EventKey.SUBSCRIPTION_PRODUCT_CHANGE_SCHEDULED and WebhookSubscription.SUBSCRIPTION_PRODUCT_CHANGE_SCHEDULED. 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: CURRENT_ACCOUNT_BALANCE_IN_CENTS, CURRENT_BILLING_AMOUNT, and COUPONS.
  • Added five SubscriptionStateFilter values: ENUM_EXPIRED_CARDS_LIVE_SUBSCRIPTIONS, ENUM_EXPIRED_CARDS_ALL_SUBSCRIPTIONS, AWAITING_SIGNUP, AWAITING_SIGNUP_DATE, and PREPAID_DUNNING.

New Models

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

New container types in com.maxio.advancedbilling.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, nullable).
  • Customer
    • Added surcharging (Boolean).
    • Added brandingThemeId (Integer, nullable).
  • CustomerAttributes
    • Added surcharging (Boolean).
  • CreateCustomer
    • Added surcharging (Boolean).
    • Added brandingThemeId (Integer, nullable).
  • UpdateCustomer
    • Added surcharging (Boolean).
    • Added brandingThemeId (Integer, nullable).
  • ProductFamily
    • Added surcharging (Boolean).
  • CreateProductFamily
    • Added surcharging (Boolean).
  • CreateSubscription
    • Added brandingThemeId (Integer, nullable). Write-only. The subscription response does not return it.
  • UpdateSubscription
    • Added brandingThemeId (Integer, nullable). Write-only. The subscription response does not return it.
  • Invoice
    • Added brandingThemeId (Integer, nullable).
  • SubscriptionProductChange
    • Added previousProductPricePointId (Integer, nullable).
    • Added newProductPricePointId (Integer, nullable).
    • Added effectiveAt (ZonedDateTime, nullable).
    • 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

  • 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