# CRUD: Update an invoice Endpoint: PUT /v1/object/invoice/{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): - `RegenerateInvoicePDF` (boolean) Whether to regenerate a PDF file for an invoice that already has PDF files generated. This field is valid only if you enable the billing document file generation feature. To enable this feature, you have to select the Enable the billing document generation check box after navigating to Billing > Manage Billing Document Configuration through the Zuora UI. Otherwise, the request is rejected. For one specific invoice, you can use this field to regenerate PDF files for a maximum of 100 times. Note: If you set this field to true, you cannot update any other fields in the same update request. Otherwise, you will receive the following INVALID_VALUE error: "When field RegenerateInvoicePDF is set to true to regenerate the invoice PDF file, changes on other fields of the invoice are not allowed." - `Status` (string) The status of the invoice in the system. This status is not the status of the payment of the invoice, just the status of the invoice itself. With the [Cancel Posted Billing Documents](https://knowledgecenter.zuora.com/Billing/Tenant_Management/A_Administrator_Settings/User_Roles/d_Billing_Roles#Billing_Permissions) billing permission, you can directly update the status of an invoice from Posted to Draft. Character limit: 8 Values: one of the following: - Draft (default, automatically set upon invoice creation) - Posted - Canceled Example: "Posted" - `TransferredToAccounting` (string) Specifies whether or not the invoice was transferred to an external accounting system, such as NetSuite. Character limit: 10 Values: Processing, Yes, Error, Ignore - `IntegrationId__NS` (string) ID of the corresponding object in NetSuite. Only available if you have installed the [Zuora Connector for NetSuite](https://www.zuora.com/connect/app/?appId=265). - `IntegrationStatus__NS` (string) Status of the invoice's synchronization with NetSuite. Only available if you have installed the [Zuora Connector for NetSuite](https://www.zuora.com/connect/app/?appId=265). - `SyncDate__NS` (string) Date when the invoice was synchronized with NetSuite. Only available if you have installed the [Zuora Connector for NetSuite](https://www.zuora.com/connect/app/?appId=265). ## 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.