# Java client library 3.10.0 changelog

## ZuoraClient

* Updated the client behavior when fetching an OAuth bearer token. Based on the existing HttpClient, a new ApiClient is now generated to fetch a bearer token. With this change, only the headers required by ApiClient are used while other headers are ignored.


## ObjectQueriesApi

* Renamed methods and classes related to `CommitmentCycle` to `CommitmentPeriod`. This includes method names, class names, and API paths. Developers will need to update their code to use the new `CommitmentPeriod` terminology.


## PaymentMethodsApi

* Added support for specifying `bankAccountType` in the PAD (Pre-Authorized Debit) payment method.


## BillingPeriod

* Added a new billing period option `SPECIFIC_DAYS` to the BillingPeriod enum.


## CommitmentBaseAttributes

* Removed the `prorationOption` field and its associated methods.
* Removed the `defaultAssociationRule` field and its associated methods.
* Changed the `priority` field to be nullable.
* Added `associationRules` field as a List of AssociationRule objects.
* Added methods to manage `associationRules`, including `addAssociationRulesItem`.


## CommitmentInput

* Renamed fields: `taxCodeName` to `taxCode`, `segments` to `periods`.
* Changed priority field annotation from @Nonnull to @Nullable.
* Added fields: `associationRules`, `accountReceivableAccountingCode`, `revenueRecognitionTiming`, `revenueAmortizationMethod`.


## CommitmentOutput

* The `segments` field has been removed and replaced with `periods`. This change will require developers to update their code to use the new `periods` field instead of `segments`.
* Added new fields: `startDate`, `endDate`, and `amount` to the CommitmentOutput class, providing additional information about the commitment.


## CommonRevenueAttributes

* Added new field `accountReceivableAccountingCode`.
* Added new field `revenueRecognitionTiming`.
* Added new field `revenueAmortizationMethod`.


## CommonTaxationAttributes

* Renamed the field `taxCodeName` to `taxCode`.


## CreatePADPaymentMethod

* Added support for specifying the bank account type with the new field `bankAccountType` in the `CreatePADPaymentMethod` class.


## ExpandedCommitment

* Renamed field `taxCodeName` to `taxCode`.
* Added new fields: `revenueRecognitionTiming`, `revenueAmortizationMethod`, and `accountReceivableAccountingCode`.


## ExpandedRatePlanCharge

* The field `negotiatedPriceTable` has been removed and replaced with `isDimensionalPrice`. This change requires developers to update their code to use the new field.
* Added a new Boolean field `isDimensionalPrice` to the ExpandedRatePlanCharge class.


## PaymentMethodResponse

* Added support for `bankAccountType` in PaymentMethodResponse, allowing developers to specify and retrieve the type of bank account associated with a payment method.


## PaymentMethodResponseBankTransfer

* Added a new field `bankAccountType` of type `PaymentMethodPADBankAccountType` to the `PaymentMethodResponseBankTransfer` class.


## PreviewOptions

* Added a new field `skipTax` to the PreviewOptions class, allowing developers to bypass tax calculation during order preview, which can improve performance for customers using external tax engines.


## UpsertCreateCommitmentInput

* Removed fields: `prorationOption`, `defaultAssociationRule`, `cyclePeriodType`, `specificCyclePeriodLength`, `excludeItemBookingFromRevenueAccounting`, `taxCodeName`, `segments`.
* Changed field: `priority` is now nullable.
* Renamed field: `taxCodeName` to `taxCode`.
* Renamed field: `segments` to `periods`.
* Added fields: `associationRules`, `accountReceivableAccountingCode`, `revenueRecognitionTiming`, `revenueAmortizationMethod`.


## UpsertUpdateCommitmentInput

* Removed the `defaultAssociationRule` field and its associated methods.
* Replaced `segments` field with `periods`, including associated methods and validation logic.


## sdk/ZuoraClient (Quickstart API client)

* Updated the client behavior when fetching an OAuth bearer token. Based on the existing HttpClient, a new ApiClient is now generated to fetch a bearer token. With this change, only the headers required by ApiClient are used while other headers are ignored.