Skip to content

Create a journal entry

Request

Purpose

Creates a manual journal entry (header plus at least one line) in a single atomic call. Choose the request format:

  • JSON (application/json) - send jeHeader and lines.
  • CSV upload (multipart/form-data) - send the lines file part. Use a combined CSV (header section, blank line, lines section) or a lines-only CSV together with a jeHeader JSON part. Supplying the header in both places is rejected.

All mandatory fields are validated before anything is saved; if any check fails, nothing is created and every problem is reported in one message. The new entry starts in status New and is validated asynchronously - poll GET /journal-entries/{jeId}/validation-status, then submit it for approval.

When to use

  • You need to record a new manual adjustment (reclass, accrual, correction) in Zuora Revenue from an external system.
  • Use JSON when your integration builds entries programmatically; use CSV upload when users prepare entries in a spreadsheet or when migrating many lines at once.
  • Do not use it to change an existing entry - use PATCH /journal-entries/{jeId}; to repeat an existing entry use POST /journal-entries/{jeId}/copy.
Security
OneIdOAuth
Headers
Idempotency-Keystring

Optional client-generated unique key (for example a UUID). Accepted for forward compatibility; not currently enforced - the service does not de-duplicate retries, so do not rely on it to prevent duplicate entries.

Example:6f1c2c3e-0b7a-4d1e-9a51-1f1e2a3b4c5d
Bodyrequired
jeHeaderobject(JournalEntryHeaderInput)required

Journal entry header.

linesArray of objects(JournalEntryLineInput)required

Journal entry lines. At least one line is required.

{ "jeHeader": { "name": "SEP-2026 Revenue Reclass", "description": "Reclass deferred revenue for contract RC-1001", "bookId": 1, "orgId": "101", "periodId": 202609, "categoryCode": "RECLASS", "sobId": 1, "functionalCurrency": "USD", "exchangeRateType": "User", "accountMethod": "Standard", "glTransfer": "Yes", "approvalCurrency": "USD" }, "lines": [ { … }, { … } ] }

Responses

Journal entry created

Headers
traceIdstring

Identifier of the request. Quote it when you contact Zuora Support.

Bodyapplication/json
successboolean

true when the operation succeeded.

Example:true
idinteger or null, (int64)

Unique system-generated identifier of the journal entry (JE header ID).

Example:10045
namestring or null

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.

Example:"SEP-2026 Revenue Reclass"
statusstring or null

Journal entry status. One of New, Draft, Validated, Approval Pending, Approved, Rejected, Approval Cancelled, Error, Approval Rule not Defined.

Example:"New"
descriptionstring or null

Free-text description of the journal entry's business purpose.

Example:"Reclass deferred revenue for contract RC-1001"
waterfallStatusstring or null

Status of revenue waterfall (schedule) generation for the entry. One of NEW, IN PROGRESS, SUCCESS, ERROR. For approved entries this reflects the final waterfall; otherwise the preview waterfall.

Example:"NEW"
jeHeaderobject(JournalEntryHeader)

Full header. Returned by create, get and copy.

linesobject(JournalEntryLinesPage)

Page of lines. Returned by GET /journal-entries/{jeId}/lines.

schedulesobject(JournalEntrySchedulesPage)

Page of schedules. Returned by GET /journal-entries/{jeId}/schedules.

Response
{ "success": true, "id": 10045, "name": "SEP-2026 Revenue Reclass", "status": "New", "description": "Reclass deferred revenue for contract RC-1001", "waterfallStatus": "NEW", "jeHeader": { "id": 10045, "name": "SEP-2026 Revenue Reclass", "description": "Reclass deferred revenue for contract RC-1001", "categoryCode": "RECLASS", "exchangeRateType": "User", "sobId": 1, "sobName": "US Primary SOB", "functionalCurrency": "USD", "periodId": 202609, "clientId": 1, "orgId": "101", "bookId": 1, "accountMethod": "Standard", "status": "New", "approvalCurrency": "USD", "glTransfer": "Yes", "waterfallStatus": "NEW", "createdBy": "jane.doe@example.com", "createdDate": "2026-09-28T10:21:04.000+00:00", "updatedBy": "jane.doe@example.com", "updatedDate": "2026-09-28T10:21:04.000+00:00" } }