Purpose
Updates a journal entry that is still editable (for example New, Validated, Error or Rejected). Two request formats:
- JSON (
application/json) - partial header update. Send only the fields to change; lines are not touched. - CSV full-file update (
multipart/form-data) - thelinesfile is the complete new set of lines. Rows whoseIDcolumn matches an existing line are updated, other rows are inserted, and existing lines missing from the file are deleted. Header changes may be sent in an optional CSV header section or ajeHeaderJSON part (not both). The file must contain at least one line.
After an update the entry is re-validated and the preview waterfall is regenerated.
When to use
- Correct an entry that failed validation or was rejected, before (re)submitting it.
- Use JSON to change header values only (name, period, category, description...).
- Use CSV full-file update to replace the entry's lines in one atomic operation (edit, add and remove lines together).
- Not possible once the entry is
Approval PendingorApproved- recall it first, or reverse an approved entry.
Notes
- Full-file CSV update: a row whose
IDis blank or does not match an existing line of this entry is inserted as a new line, and every existing line not matched is deleted. The lines export (POST /{jeId}/lines/export) does not include anIDcolumn - add anIDcolumn with the line IDs from GET /journal-entries/{jeId}/lines before re-uploading, otherwise all lines are replaced. - Reference columns must be titled
Reference1...Reference15on upload; tenant-specific labels used in the template or export (for example Ticket Number) are not recognized and their values are ignored. - A JSON header update is checked by journal entry processing, not by the up-front field validation used on create.
Name of the journal entry. Shown in the Zuora Revenue UI and in GL interfaces. Must be meaningful to approvers, for example SEP-2026 Revenue Reclass.
Free-text description of the journal entry's business purpose.
Identifier of the accounting (posting) period the journal entry is posted to. The period must be open. Retrieve valid IDs from GET /journal-entries/metadata/periods or GET /journal-entries/current-period.
Identifier of the accounting period in which an automatic reversal of this entry is posted. Leave empty when the entry should not reverse.
Journal entry category code. Classifies why the entry is posted (for example an accrual, reclass or adjustment). Valid values are configured in your tenant's MANUAL_JOURNAL lookup; retrieve them from categoryId in GET /journal-entries/metadata.
Exchange rate type used to convert transaction currency to functional and reporting currency (for example User or Corporate). Valid values come from exchangeRates in GET /journal-entries/metadata.
Name of the Set of Books. On create and update the service derives this from sobId; any value you send is overwritten.
Identifier of the Set of Books (SOB) the entry posts to. A Set of Books groups the ledger, functional currency and calendar used for accounting. When supplied it must match an existing Set of Books.
ISO 4217 currency code of the functional (ledger) currency of the Set of Books, for example USD.
Accounting method used to post the entry. Valid values come from accountingMethod in GET /journal-entries/metadata.
Identifier of the accounting book (for example the primary book or a secondary/parallel book) the entry belongs to.
Organization (operating unit) identifier the entry belongs to, also called the security attribute value (secAtrVal). Valid values come from orgId in GET /journal-entries/metadata.
Whether the entry is transferred to the general ledger. Accepted values on input: Yes or No (the service reports Yes when not set).
- Zuora Revenue API (base URL)https://one.zuora.com/revenue/services/v1/journal-entries/{jeId}
{ "name": "SEP-2026 Revenue Reclass v2", "periodId": 202609, "description": "Corrected amounts" }
Journal entry updated
Unique system-generated identifier of the journal entry (JE header ID).
Journal entry status. One of New, Draft, Validated, Approval Pending, Approved, Rejected, Approval Cancelled, Error, Approval Rule not Defined.
{ "id": 10045, "status": "New", "waterfallStatus": "IN PROGRESS" }