Update a manual journal entry
Changes the fields you send. Sending lines replaces the whole set and they must still balance. Requires the manual_journal_entries:write permission.
Authorization
AuthorizationstringrequiredPath parameters
manualJournalEntryIdstringrequiredSnowflake id of the manual journal entry.
Body
application/json
Only the fields present in the body are applied; there is no way to clear description or rejectionReason through this endpoint. An entry can be edited in any state, including posted.
companyBillbooleanMove the entry between the company books and the property books.
postingDatestring · date-timeThe date the entry is booked on, read in the company's timezone.
descriptionstringWhat the entry is for, up to 1000 characters.
statusenum<string>Set the state directly. This bypasses the transition rules that submit, approve, reject and post enforce, and it does not record who did it or when.
rejectionReasonstringFree text, up to 1000 characters.
linesLine[]The complete new set of lines — at least two, balanced.
Response
200 · The entry after the change. Sending a body with no fields returns it unchanged.
idstringSnowflake id of the entry.
createdstring · date-timeWhen the entry was created, in the company's timezone.
updatedstring · date-timeWhen the entry was last changed, in the company's timezone.
companyBillbooleantrue puts the entry on the management company's own books, false on the property books. It decides which set of reports the entry shows up in — a company entry never appears in a property report and vice versa.
postingDatestring · date-timeThe date the entry is booked on, in the company's timezone. Reports include it from this date.
descriptionstringWhat the entry is for. Absent when none was set.
statusenum<string>Where the entry sits in the approval flow. Only posted entries reach the general ledger and the financial reports.
rejectionReasonstringWhy the entry was rejected. Cleared when the entry is resubmitted, and absent otherwise.
creatorobjectWho created the entry. Deprecated mirrors of id — propertyManagerId, tenantId, vendorId, ownerId — are also present, whichever matches type.
submittedByUserIdstringWho was recorded as submitting it for approval. Absent until it is submitted.
submittedAtstring · date-timeWhen it was submitted, in the company's timezone. Absent until it is submitted.
approvedByUserIdstringWho was recorded as approving it. Absent until it is approved.
approvedAtstring · date-timeWhen it was approved, in the company's timezone. Absent until it is approved.
postedByUserIdstringWho was recorded as posting it. Absent until it is posted.
postedAtstring · date-timeWhen it was posted, in the company's timezone. Absent until it is posted.
rejectedByUserIdstringWho was recorded as rejecting it. Absent unless it has been rejected.
rejectedAtstring · date-timeWhen it was rejected, in the company's timezone. Absent unless it has been rejected.
linesLine[]The debit and credit lines. There are always at least two, and the debits equal the credits.
chartOfAccountsChartOfAccount[]The chart-of-account entries every line refers to, resolved so you do not have to look them up.
400 · A field failed validation: fewer than two lines, a line amount outside 0.01–999999999.99, a negative or duplicated `order`, a description over 1000 characters, debits that do not equal credits, or an entry with only debits or only credits.
401 · The access token is missing, expired, or not for this company.
403 · The caller does not hold the `manual_journal_entries:write` permission.
404 · The entry is not in this company, or a `chartOfAccountId` or `bankAccountId` names nothing visible to it.
Every amount is positive; isDebit decides the side. The sum of the debit lines and the sum of the credit lines must agree to within one cent, there must be at least one line of each kind, and there must be at least two lines in total. Anything else is rejected with a 400 that names Lines.
There is no state guard on this endpoint. An entry that is already posted can be re-edited here, and the general ledger and reports follow the new lines. Prefer creating a correcting entry if you need an audit trail.