# Node.js client library 3.8.0 changelog

## ObjectQueriesApi

* Introduced the `include_null_fields` parameter to control inclusion of null fields in the response.
* Added queryCommitmentByKey and queryCommitmentByKeyWithHttpInfo methods for querying Commitment objects by key.
* Added queryCommitmentSegmentByKey and queryCommitmentSegmentByKeyWithHttpInfo methods for querying CommitmentSegment objects by key.
* Added queryCommitmentSegments and queryCommitmentSegmentsWithHttpInfo methods for querying multiple CommitmentSegment objects.
* Added queryCommitments and queryCommitmentsWithHttpInfo methods for querying multiple Commitment objects.
* Added queryDeliveryAdjustmentByKey and queryDeliveryAdjustmentByKeyWithHttpInfo methods for querying DeliveryAdjustment objects by key.
* Added queryDeliveryAdjustments and queryDeliveryAdjustmentsWithHttpInfo methods for querying multiple DeliveryAdjustment objects.
* Added queryFulfillmentByKey and queryFulfillmentByKeyWithHttpInfo methods for querying Fulfillment objects by key.
* Added queryFulfillments and queryFulfillmentsWithHttpInfo methods for querying multiple Fulfillment objects.
* Added queryRampByKey and queryRampByKeyWithHttpInfo methods for querying Ramp objects by key.
* Added queryRamps and queryRampsWithHttpInfo methods for querying multiple Ramp objects.


## src/zuora_api/index

* Added new payment method models: CreateACHPaymentMethod, CreateAutogiroPaymentMethod, CreateBacsPaymentMethod, CreateBasePaymentMethod, CreateBecsPaymentMethod, CreateBecsnzPaymentMethod, CreateBetalingsservicePaymentMethod, CreateCCReferenceTransactionPaymentMethod, CreateCreditCardPaymentMethod, CreateOpenPaymentMethod, CreatePADPaymentMethod, CreatePayPalAdaptivePaymentMethod, CreatePayPalCPPaymentMethod, CreatePayPalECPaymentMethod, CreatePayPalNativeECPaymentMethod, CreateSEPAPaymentMethod.
* Added new expanded models: ExpandedCommitment, ExpandedCommitmentSegment, ExpandedDeliveryAdjustment, ExpandedFulfillment, ExpandedRamp.
* Added new query response models: QueryCommitmentSegmentsResponse, QueryCommitmentsResponse, QueryDeliveryAdjustmentsResponse, QueryFulfillmentsResponse, QueryRampsResponse.
* Added new update payment method models: UpdateACHPaymentMethod, UpdateBankTransferPaymentMethod, UpdateBasePaymentMethod, UpdateCCReferenceTransactionPaymentMethod,UpdateCreditCardPaymentMethod, UpdateOpenPaymentMethod.
* Added InvoiceForBulkUpdate model.
* Removed UpdatePaymentMethodRequestCreditCardInfo model.


## BulkUpdateInvoicesRequest

* Replaced the use of `UpdateInvoiceRequest` with `InvoiceForBulkUpdate` for handling invoice updates. This change requires developers to update their code to use the new `InvoiceForBulkUpdate` model when working with bulk invoice updates.


## BulkUpdateOrderLineItem

* The `itemNumber` field has been removed from the BulkUpdateOrderLineItem class. This may require developers to update their code if they were using this field.


## CreateAccountRequest

* Removed `organizationId` and `organizationName` properties from CreateAccountRequest. Developers using these properties will need to update their code.


## CreateCatalogGroupRequest

* Constructor now requires a `name` parameter, which is a mandatory field for creating a catalog group.
* Added validation to ensure that the `name` property is present in the JSON data when creating a catalog group.


## CreateCreditMemoFromInvoice

* Constructor now requires `items` parameter, which is a mandatory field.
* Added validation to ensure `items` property is present in JSON data.


## CreateCreditMemoFromInvoiceRequest

* The constructor now requires an `items` parameter, which is an array of CreditMemoItemFromInvoiceItem. This change requires developers to update their code to pass this parameter when creating a new instance of CreateCreditMemoFromInvoiceRequest.
* Added validation to ensure that the `items` property is present in the JSON data, throwing an error if it is missing. This ensures that the required data is provided when creating a credit memo from an invoice.


## CreateCreditMemoTaxationItemsRequest

* The constructor now requires a `taxation_items` parameter, which is mandatory for initialization.
* The `initialize` method now requires a `taxation_items` parameter.
* Added validation to ensure that the `taxationItems` property is present in the JSON data.


## CreateDebitMemoFromChargeRequest

* The constructor now requires a `charges` parameter, which is an array of DebitMemoItemFromChargeDetail. This change requires developers to update their code to pass this parameter when creating an instance of CreateDebitMemoFromChargeRequest.
* Added validation to ensure that the `charges` property is present in the JSON data. This enhances data integrity by ensuring required fields are included.


## CreateDebitMemoFromInvoiceRequest

* The constructor now requires an `items` parameter, which is an array of DebitMemoItemFromInvoiceItemRequest objects. This change requires developers to update their code to pass this parameter when creating an instance of CreateDebitMemoFromInvoiceRequest.
* Added validation to ensure that the `items` property is present in the JSON data, throwing an error if it is missing. This ensures that the required data is provided when creating a debit memo from an invoice.


## CreateDebitMemosFromInvoiceRequest

* The constructor now requires an `items` parameter, which is an array of DebitMemoItemFromInvoiceItemRequest objects. This change requires developers to update their code to pass this parameter when creating a new instance of CreateDebitMemosFromInvoiceRequest.
* Added validation to ensure that the `items` property is present in the JSON data, throwing an error if it is missing. This enhances data integrity by ensuring required fields are provided.


## CreateInvoiceCollectRequest

* Removed support for `invoiceNumber` field. Developers must now use `invoiceId` for identifying invoices.


## CreateOrderRequest

* The `externallyManagedBy` property has been removed from the CreateOrderRequest model. This may require updates to code that previously utilized this property.


## CreatePaymentMethodRequest

* The constructor now accepts an instance parameter instead of a type parameter, which may require changes in how instances are created.
* The method `constructFromObject` now returns a new instance of CreatePaymentMethodRequest directly from data, which may affect how objects are constructed from plain JavaScript objects.
* The `validateJSON` method has been removed, which may affect validation processes previously relying on it.
* Added support for multiple payment method types using a oneOf schema, allowing for more flexible payment method creation.
* Introduced a new method `fromJSON` to create an instance of CreatePaymentMethodRequest from a JSON string.
* Added new fields such as `mandateId`, `mandateReceivedStatus`, `existingMandateStatus`, `mandateCreationDate`, and `mandateUpdateDate` for enhanced mandate management.


## CreatePaymentScheduleItemsRequest

* The constructor now requires an `items` parameter, which must be provided when creating an instance of CreatePaymentScheduleItemsRequest.
* Added validation to ensure that the `items` property is present in the JSON data and is an array.


## CreatePaymentSchedulesRequest

* Constructor now requires a `payment_schedules` parameter, which may require updates to existing code that uses this constructor without arguments.
* Added validation to ensure `paymentSchedules` is present and is an array in the JSON data.


## CreateTaxationItemsForDebitMemoRequest

* Constructor now requires a `taxation_items` parameter, which may require updates to existing code that instantiates this class.
* Added validation to ensure `taxationItems` is present in JSON data, throwing an error if missing.


## CreateTaxationItemsRequest

* The constructor now requires a `taxation_items` parameter, which must be provided when creating an instance of CreateTaxationItemsRequest.
* Added validation to ensure that the `taxationItems` property is present in the JSON data when creating a CreateTaxationItemsRequest instance.


## GenerateBillingDocumentRequest

* Constructor now requires `effective_date` and `target_date` parameters, which may require updates to existing code that uses this constructor.
* Added validation to ensure `effectiveDate` and `targetDate` are present in the JSON data, improving data integrity.


## PreviewExistingSubscriptionRequest

* The constructor now requires a `preview_through_date` parameter, which is a breaking change for any existing code that instantiates `PreviewExistingSubscriptionRequest` without this parameter.
* Added validation to ensure the `previewThroughDate` property is present in the JSON data, enhancing data integrity checks.


## ReconcileRefundRequest

* Constructor now requires `action` and `gateway_reconciliation_status` parameters.
* Added validation to ensure required properties `action` and `gatewayReconciliationStatus` are present in JSON data.


## RegenerateBillingRequest

* The constructor now requires a `type` parameter.
* The `documentId` property has been renamed to `id`.
* Added validation to ensure all required properties, including `type`, are present in the JSON data.


## RegenerateBookingRequest

* The constructor now requires a `type` parameter.
* The property `subscriptionNumber` has been renamed to `subscriptionName`.
* Added validation to ensure all required properties, including `type`, are present in the JSON data.


## UpdateAccountRequest

* The `organizationLabel` property has been removed from the UpdateAccountRequest model. Any code relying on this property will need to be updated.


## UpdateAccountingPeriodRequest

* Renamed property `fiscal_quarter` to `fiscalQuarter`. This change requires developers to update their code to use the new property name.


## UpdateFulfillmentRequest

* Removed properties `excludeItemBillingFromRevenueAccounting` and `excludeItemBookingFromRevenueAccounting`.
* Removed property `fulfillmentType`.
* Removed property `orderLineItemId`.


## UpdateInvoiceRequest

* The `id` field has been removed from the UpdateInvoiceRequest model. Any code relying on this field will need to be updated.


## UpdateOrderActionRequest

* Added `changeReason` property to UpdateOrderActionRequest and UpdateOrderAction, allowing developers to specify a reason for the order action change.
* Introduced `customFields` property to UpdateOrderActionRequest and UpdateOrderAction, enabling developers to include custom fields in an Order Action object.


## UpdateOrderLineItem

* The `itemNumber` field has been removed. This may affect any code that relies on this field for order line items.


## UpdateOrderLineItemRequest

* The `itemNumber` field has been removed from the UpdateOrderLineItemRequest model. Any code relying on this field will need to be updated.


## UpdateOrderRequest

* Removed the `externallyManagedBy` property from the UpdateOrderRequest model. This may require updates to code that relied on this property.


## UpdatePaymentMethodRequest

* Removed PaymentMethodObjectCustomFields and UpdatePaymentMethodRequestCreditCardInfo from the constructor and initialization process.
* Changed the constructor to accept an instance of one of the specific payment method update types (e.g., UpdateACHPaymentMethod, UpdateBankTransferPaymentMethod, etc.) instead of initializing with UpdatePaymentMethodRequestCreditCardInfo and PaymentMethodObjectCustomFields.
* Updated constructFromObject method to return a new UpdatePaymentMethodRequest instance directly.
* Removed validation logic for JSON data fields like securityCode, accountKey, authGateway, etc.
* Added support for multiple payment method update types: UpdateACHPaymentMethod, UpdateBankTransferPaymentMethod, UpdateCCReferenceTransactionPaymentMethod, UpdateCreditCardPaymentMethod, and UpdateOpenPaymentMethod.
* Introduced a mechanism to handle multiple matches when constructing UpdatePaymentMethodRequest with oneOf schemas.
* Added methods to get and set the actual instance of the payment method update type.
* Added toJSON and fromJSON methods for JSON serialization and deserialization.


## UsageOveragePricingOverride

* Added `originalListPrice` property to the UsageOveragePricingOverride class, allowing developers to access the original list price of a product or service.


## UsageOveragePricingUpdate

* Added `originalListPrice` property to the UsageOveragePricingUpdate model, allowing developers to access the original list price of a product or service.