Journal entries
The ledger itself, including manual entries and starting balances.
Paths are relative to https://evenbooks.org/api/v1. How keys, errors, paging and versions work is in the guide; the whole reference is also an OpenAPI 3.1 document.
Administrator key marks endpoints that need a key with the admin role, Write access those a read-only key can’t call, and Idempotent those that accept an idempotency key.
List journal entries
/journalDrafts and posted entries with their lines, newest first by default (sort, dir). Filter by date range, status, an account the entry touches, source type or memo text. total counts every match; pass nextCursor as cursor for the next page.
Parameters
limitintegerquerycursorstring · PageCursorquerysortstringqueryOne of:
datenumberdirstring · SortDirectionqueryOne of:
ascdescfromstring · PlainDateStringquerytostring · PlainDateStringquerystatusstring · JournalStatusqueryOne of:
draftpostedaccountIdstring · UuidquerysourceTypestring · JournalSourceTypequery21 possible values
manualopening_balanceinvoiceinvoice_voidcredit_notecredit_note_voidpaymentpayment_voidallocationallocation_reversalrefundrefund_voidpurchasepurchase_voidtransferbank_categorizationreversaladjustmentprocessor_feeprocessor_payoutimportqstringquery
Response 200
A page of JournalEntryDto ({ items, nextCursor, total }, see paging).
Errors 400 · 401 · 403 · 404 · 409 · 429
Create a journal entry
/journalA manual entry; its lines must balance (400 unbalanced). Saved as a draft unless post: true, which posts it to the books at once (409 period_locked in a closed period). Posting refuses control accounts such as Accounts Receivable, which only invoices, payments and credit notes change. Idempotent with idempotencyKey.
Request body
CreateManualJournalInput
datestring · PlainDateStringrequiredmemostringcashTreatmentstringrequiredOne of:
includeexcludelinesarray of JournalLineInputrequiredShow 5 fields of each item
accountIdstring · Uuidrequireddebitstring · NonNegativeDecimalStringcreditstring · NonNegativeDecimalStringmemostring or nullcontactIdstring · Uuid or null
postbooleanidempotencyKeystring · IdempotencyKey
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Get a journal entry
/journal/{id}With its lines and totals.
Parameters
idstring (uuid)path · required
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Change a draft journal entry
/journal/{id}Manual drafts only: posted entries are never edited (409 immutable); reverse them instead. Omitted fields stay as they are; lines, when sent, replace every line and must balance. Needs version from the last read (409 version_conflict otherwise).
Parameters
idstring (uuid)path · required
Request body
UpdateDraftJournalInput
versionintegerrequireddatestring · PlainDateStringmemostringcashTreatmentstringOne of:
includeexcludelinesarray of JournalLineInputShow 5 fields of each item
accountIdstring · Uuidrequireddebitstring · NonNegativeDecimalStringcreditstring · NonNegativeDecimalStringmemostring or nullcontactIdstring · Uuid or null
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Delete a draft journal entry
/journal/{id}Drafts only: posted entries cannot be deleted (409 immutable); reverse them instead. Returns no content.
Parameters
idstring (uuid)path · required
Response 204
Done; no body
No body.
Errors 400 · 401 · 403 · 404 · 409 · 429
Set the cash-basis amounts of an imported entry
/journal/{id}/cash-basisAdministrators only. For a posted entry from a ledger import: components (active income and expense accounts, nonzero amounts) replace what the entry counts as on cash-basis reports; the accrual ledger is unchanged and its reversals follow. Refused when the entry or a reversal of it is in a closed period (409 period_locked). The reason is kept in History. Needs version from the last read (409 version_conflict otherwise).
Parameters
idstring (uuid)path · required
Request body
ReviewImportedCashInput
versionintegerrequiredreasonstringrequiredcomponentsarray of ImportCashComponentInputrequiredShow 2 fields of each item
accountIdstring · Uuidrequiredamountstring · DecimalStringrequired
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Post a draft journal entry
/journal/{id}/postPosts the draft to the books and gives it an entry number. Refused in a closed period (409 period_locked), for an entry already posted (409 invalid_state) and for control accounts such as Accounts Receivable. Needs version from the last read (409 version_conflict otherwise). Idempotent with idempotencyKey.
Parameters
idstring (uuid)path · required
Request body
PostJournalInput
versionintegerrequiredidempotencyKeystring · IdempotencyKey
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Reverse a journal entry
/journal/{id}/reversePosts a new entry dated date (not before the original, not in a closed period) with debits and credits swapped, links the two, and returns the reversal. An entry can be reversed once. Entries made by invoices, payments and credit notes are corrected from that record instead (400 validation). Completed reconciliations that cleared the entry become flagged. Idempotent with idempotencyKey.
Parameters
idstring (uuid)path · required
Request body
ReverseJournalInput
datestring · PlainDateStringrequiredreasonstringrequiredidempotencyKeystring · IdempotencyKey
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Enter opening balances
/journal/opening-balancesAdministrators only. Posts one entry dated date with each account’s starting balance in its natural direction (positive is a debit for assets and expenses); the difference goes to Opening Balance Equity and zero balances are skipped. Accounts Receivable and other control accounts are refused: enter open invoices instead. Idempotent with idempotencyKey.
Request body
OpeningBalancesInput
datestring · PlainDateStringrequiredlinesarray of OpeningBalanceLineInputrequiredShow 2 fields of each item
accountIdstring · Uuidrequiredbalancestring · DecimalStringrequired
idempotencyKeystring · IdempotencyKey
Response 200
JournalEntryDto (fields under Schemas)
Errors 400 · 401 · 403 · 404 · 409 · 429
Schemas
The types these endpoints take or return, by name. Type names above link here.
CashTreatment
string
One of: derived include exclude
DecimalString
decimal string
string
IdempotencyKey
string
ImportCashComponentInput
accountIdstring · Uuidrequiredamountstring · DecimalStringrequired
ImportCashComponentInputOutput
accountIdstring · Uuidamountstring · DecimalString
JournalEntryDto
idstringentryNumberinteger or nulldatestring · PlainDateStringmemostringstatusstring · JournalStatusOne of:
draftpostedsourceTypestringsourceIdstring or nullcurrencystringcashTreatmentstring · CashTreatmentOne of:
derivedincludeexcludecashComponentsarray of ImportCashComponentInputOutput or nullreversesEntryIdstring or nullreversedByEntryIdstring or nullpostedAtstring or nullpostedBystring or nullcreatedBystringcreatedAtstringversionintegertotalDebitstring · DecimalStringtotalCreditstring · DecimalStringlinesarray of JournalLineDto
JournalLineDto
idstringlineNointegeraccountIdstringaccountCodestringoptionalaccountNamestringoptionaldebitstring · DecimalStringcreditstring · DecimalStringmemostring or nullcontactIdstring or null
JournalLineInput
accountIdstring · Uuidrequireddebitstring · NonNegativeDecimalStringcreditstring · NonNegativeDecimalStringmemostring or nullcontactIdstring · Uuid or null
JournalSourceType
string
21 possible values
manual opening_balance invoice invoice_void credit_note credit_note_void payment payment_void allocation allocation_reversal refund refund_void purchase purchase_void transfer bank_categorization reversal adjustment processor_fee processor_payout import
JournalStatus
string
One of: draft posted
NonNegativeDecimalString
string
OpeningBalanceLineInput
accountIdstring · Uuidrequiredbalancestring · DecimalStringrequired
PageCursor
string
PlainDateString
string
SortDirection
string
One of: asc desc
Uuid
string (uuid)