# CRUD: Update an amendment Endpoint: PUT /v1/object/amendment/{id} Version: 2025-12-17 ## Header parameters: - `Accept-Encoding` (string) Include the Accept-Encoding: gzip header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response. If specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a Content-Encoding header with the compression algorithm so that your client can decompress it. - `Content-Encoding` (string) Include the Content-Encoding: gzip header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload. - `Authorization` (string) The value is in the Bearer {token} format where {token} is a valid OAuth token generated by calling Create an OAuth token. - `Zuora-Entity-Ids` (string) An entity ID. If you have Zuora Multi-entity enabled and the OAuth token is valid for more than one entity, you must use this header to specify which entity to perform the operation in. If the OAuth token is only valid for a single entity, or you do not have Zuora Multi-entity enabled, you do not need to set this header. - `Zuora-Track-Id` (string) A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue. The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (:), semicolon (;), double quote ("), and quote ('). ## Query parameters: - `rejectUnknownFields` (boolean) Specifies whether the call fails if the request body contains unknown fields. With rejectUnknownFields set to true, Zuora returns a 400 response if the request body contains unknown fields. The body of the 400 response is: json { "message": "Error - unrecognised fields" } By default, Zuora ignores unknown fields in the request body. ## Path parameters: - `id` (string, required) Object id ## Request fields (application/json): - `AutoRenew` (boolean) Determines whether the subscription is automatically renewed, or whether it expires at the end of the term and needs to be manually renewed. This field can be updated when Status is Draft. Required: For amendment of type TermsAndConditions when changing the automatic renewal status of a subscription. Values: true, false - `ContractEffectiveDate` (string) The date when the amendment's changes become effective for billing purposes. Version notes: -- - `CurrentTerm` (integer) The length of the period for the current subscription term. This field can be updated when Status is Draft. Required: Only if the value of the Type field is set to TermsAndConditions and TermType is set to TERMED. This field is not required if TermType is set to EVERGREEN. Character limit: Values: a valid number - `CurrentTermPeriodType` (string) The period type for the current subscription term. This field can be updated when Status is Draft. Values: - Month (default) - Year - Day - Week Note: - This field can be updated when Status is Draft. - This field is used with the CurrentTerm field to specify the current subscription term. - `CustomerAcceptanceDate` (string) The date when the customer accepts the amendment's changes to the subscription. This field is only required if [Zuora is configured to require customer acceptance in Z-Billing](https://knowledgecenter.zuora.com/CB_Billing/W_Billing_and_Payments_Settings/Define_Default_Subscription_Settings) and the subscription is currently in the Pending Acceptance status (the value of the Status field is currently PendingAcceptance). Use this field together with the Status field. When you set a date in this field as a customer acceptance date, you should also set the Status field as Completed. - `Description` (string) A description of the amendment. This field can be updated when Status is Draft. Character limit: 500 Values: maximum 500 characters - `EffectiveDate` (string) The date when the amendment's changes take effective. This field validates that the amendment's changes are within valid ranges of products and product rate plans. Required: For the cancellation amendments. Optional for other types of amendments. Version notes: -- - `Name` (string) The name of the amendment. This field can be updated when Status is Draft. Character limit: 100 Values: a string of 100 characters or fewer Example: "Name of the amendment" - `RenewalSetting` (string) Specifies whether a termed subscription will remain termed or change to evergreen when it is renewed. Required: If TermType is Termed Values: RENEW_WITH_SPECIFIC_TERM (default), RENEW_TO_EVERGREEN - `RenewalTerm` (integer) The term of renewal for the amended subscription. This field can be updated when Status is Draft. Required: Only if the value of the Type field is set to TermsAndConditions. Character limit: Values: a valid number - `RenewalTermPeriodType` (string) The period type for the subscription renewal term. This field can be updated when Status is Draft. Required: Only if the value of the Type field is set to TermsAndConditions. This field is used with the RenewalTerm field to specify the subscription renewal term. Values: - Month (default) - Year - Day - Week - `ServiceActivationDate` (string) The date when service is activated. This field is only required if [Zuora is configured to require service activation in Z-Billing](https://knowledgecenter.zuora.com/CB_Billing/W_Billing_and_Payments_Settings/Define_Default_Subscription_Settings) and the subscription is currently in the PendingActivation status (the value of the Status field is currently PendingActivation). Use this field together with the Status field. When you set a date in this field as a service activation date, you should also set the Status field as the expected next phase status: Completed or PendingAcceptance. - `SpecificUpdateDate` (string) The date when the UpdateProduct amendment takes effect. This field is only applicable if there is already a future-dated UpdateProduct amendment on the subscription. Required: Only for the UpdateProduct amendments if there is already a future-dated UpdateProduct amendment on the subscription. - `Status` (string) The status of the amendment. Type: string (enum) Character limit: 17 Values: one of the following: - Draft (default, if left null) - PendingActivation - PendingAcceptance - Completed - `SubscriptionId` (string) The ID of the subscription that the amendment changes. This field can be updated when Status is Draft. Character limit: 32 Values: a valid subscription ID - `TermStartDate` (string) The date when the new terms and conditions take effect. Required: Only if the value of the Type field is set to TermsAndConditions. Version notes: -- - `TermType` (string) Indicates if the subscription is TERMED or EVERGREEN. This field can be updated when Status is Draft. - A TERMED subscription has an expiration date, and must be manually renewed. - An EVERGREEN subscription doesn't have an expiration date, and must be manually ended. Required: Only when as part of an amendment of type TermsAndConditions to change the term type of a subscription. Type: string Character limit: 9 Values: TERMED, EVERGREEN - `Type` (string) The type of amendment. This field can be updated when Status is Draft. Character limit: 18 Values: one of the following: - Cancellation - NewProduct - OwnerTransfer - RemoveProduct - Renewal - UpdateProduct - TermsAndConditions - SuspendSubscription - ResumeSubscription ## Response 200 fields (application/json): - `Id` (string) Example: "2c93808457d787030157e030232f3748" - `Success` (boolean) Example: true ## Response 401 fields (application/json): - `message` (string) Error message. If the error message is "Authentication error", ensure that the Authorization request header contains valid authentication credentials, then retry the request. See [Authentication](https://developer.zuora.com/rest-api/general-concepts/authentication/) for more information. If the error message is "Failed to get user info", retry the request.