# List Journal Entries List journal entries (double-entry accounting records). Sources: - INVOICE - Created when invoice is posted (DR: A/R, CR: Revenue) - PAYMENT - Created when payment is received (DR: Bank, CR: A/R) - REFUND - Created when refund is processed - ADJUSTMENT - Manual corrections - REMITTANCE - Payment processor fee tracking Endpoint: GET /ledger/journalEntries Version: 1.0.0 Security: OAuth2 ## Query parameters: - `source` (string) Filter by journal entry source Enum: "INVOICE", "PAYMENT", "REFUND", "ADJUSTMENT", "REMITTANCE" - `entry_date_from` (string) Filter journal entries on or after this date - `entry_date_to` (string) Filter journal entries on or before this date - `source_reference` (string) Filter by source reference (e.g., invoice ID) - `page` (integer) Page number (1-indexed) Example: 1 - `page_size` (integer) Number of items per page Example: 50 ## Response 200 fields (application/json): - `results` (array, required) - `results.id` (string, required) - `results.entityId` (string, required) - `results.entryDate` (string, required) - `results.currency` (string, required) ISO 4217 currency code - `results.source` (string, required) Source of journal entry Enum: "INVOICE", "PAYMENT", "REFUND", "ADJUSTMENT", "REMITTANCE" - `results.sourceReference` (string) Reference to source document (e.g., invoice ID) - `results.references` (object) Nested map of invoice IDs to charge IDs for tracing. Structure: { "invoiceId": ["chargeId1", "chargeId2"], ... } Enables tracking when a payment applies to multiple invoices. - `results.adjustmentType` (string) Type of adjustment for manual entries Enum: "STANDARD", "DISCOUNT_CORRECTION", "FEE_CORRECTION", "CREDIT_MEMO", "DEBIT_MEMO", "WRITE_OFF" - `results.reason` (string) Reason for adjustment (if applicable) - `results.adminUserId` (string) Admin user who created the entry (for adjustments) - `results.relatedSourceRef` (string) Reference to related entries - `results.totalAmount` (integer, required) Total amount of the entry in cents - `results.isBalanced` (boolean, required) Whether debits equal credits - `results.lines` (array, required) - `results.lines.accountCode` (string, required) Chart of accounts code Enum: "REVENUE", "AR", "CONTRA_REVENUE", "CLEARING", "BANK", "FEE_EXPENSE", "REFUND_EXPENSE" - `results.lines.externalAccountCode` (string) External GL account code for export - `results.lines.direction` (string, required) Direction of journal line Enum: "DEBIT", "CREDIT" - `results.lines.amount` (integer, required) Amount in cents (always positive) - `results.lines.description` (string) - `results.lines.billableEntityId` (string) - `results.lines.accountId` (string) - `results.lines.invoiceId` (string) - `results.lines.dimensions` (object) Reporting dimensions - `results.lines.tags` (object) - `results.optimisticLockVersion` (integer) Optimistic locking version (managed by Hibernate @Version). Prevents concurrent update conflicts. - `results.createdAt` (string, required) - `pagination` (object, required) - `pagination.totalRecords` (integer, required) Total number of records across all pages Example: 100 - `pagination.currentPage` (integer, required) Current page number (1-indexed) Example: 1 - `pagination.totalPages` (integer, required) Total number of pages Example: 10 - `pagination.nextPage` (integer,null) Next page number, null if on last page Example: 2 - `pagination.prevPage` (integer,null) Previous page number, null if on first page ## Response 401 fields (application/json): - `result` (object, required) - `result.status` (string, required) Response status (always ERROR for error responses) Enum: "ERROR" - `error` (object, required) - `error.responseCode` (string, required) Response code (numeric or contains numbers, e.g., "404", "409", "500", "ERR001") Example: "404" - `error.responseMessage` (array, required) Array of error message strings for multiple error details Example: ["Charge not found","The requested charge ID does not exist in the system"]