Skip to main content

Overview

Journal Entries are the fundamental building blocks of the General Ledger. They record financial transactions by debiting one or more accounts and crediting one or more accounts. The total debits must always equal total credits.

Journal Entry Properties

PropertyTypeDescription
journal_entry_idstringUnique identifier
tran_datestringTransaction date (YYYY-MM-DD)
posting_period_idstringAssociated accounting period
memostringDescription of the entry
entry_typestringStandard, Adjusting, Closing, etc.
currencystringISO 4217 currency code
statusstringCurrent workflow status
linesarrayDebit and credit line items

Entry Types

TypeDescription
StandardRegular business transactions
AdjustingPeriod-end adjustments
ClosingYear-end closing entries
ReversingAutomatic reversals of adjusting entries

Document Statuses

StatusDescription
DraftInitial state, can be modified
Pending ApprovalSubmitted for approval
On HoldTemporarily held
ApprovedAll approvals obtained
PostedPosted to the GL
RejectedRejected during approval
VoidedEntry has been voided

Line Item Structure

Each journal entry line contains:
FieldTypeDescription
line_numbernumberSequential line number
account_idstringGL account ID
debitnumberDebit amount (0 if credit)
creditnumberCredit amount (0 if debit)
memostringLine-level description

Endpoints

Approval Workflow

1

Create Draft

Create a journal entry in Draft status
2

Submit for Approval

Submit the entry for approval. Required approval level is determined by amount thresholds.
3

Approve

Approvers review and approve. Multi-level approval may be required for larger amounts.
4

Post

Entry is automatically posted after final approval, or manually posted if configured.

Balancing Rules

Journal entries must balance - total debits must equal total credits. The API will reject entries that don’t balance.
{
  "lines": [
    { "account_id": "expense-001", "debit": 500, "credit": 0 },
    { "account_id": "cash-001", "debit": 0, "credit": 500 }
  ]
}
// Total Debits: 500
// Total Credits: 500
// Entry is balanced ✓