---
title: "List journal entries"
method: GET
path: "/books/journal-entries"
tags: ["Books"]
---

# List journal entries

`GET /books/journal-entries`

## Request

- Base URL: `https://api.mercury.com/api/v1`
- URL: `https://api.mercury.com/api/v1/books/journal-entries`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/mercurytechnologies/apis/mercury-api/docs/books/journal-entries/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the journal entries of a Books instance. A journal entry is a balanced set of line entries, each a debit or credit to one ledger, i.e. a general ledger (GL) account in the organization's chart of accounts. Each journal entry includes its ID, datetime, description, creation source, categorization and review status, and the IDs of its line entries; pass expand=lineEntries to include the line entries themselves, with their ledger IDs, amounts, and debit/credit direction. Filter by date range with startDate and endDate, by ledger with ledgerId or ledgerIdGroups, by amount with amount, minAmount, and maxAmount, by description with keywords, and by creationSource, categorizationStatus, reviewStatus, and categorizationMethod. A ledgerId filter must belong to the Books instance. Results are paginated: pass a response's nextPageToken as pageToken to fetch the next page. To read one journal entry by ID, use retrieveBooksJournalEntry; to discover ledger IDs, use getBooksLedgers; to read individual debits and credits across ledgers, use getBooksLineEntries.

## Query parameters

- `booksId` string, uuid: The Books instance to act on. Must be the token organization's own instance, which it defaults to.
- `startDate` string, date: Only return Journal Entries after the start date (inclusive).
- `endDate` string, date: Only return Journal Entries before the end date (inclusive).
- `ledgerId` string, base58 (max length 22): Only return Journal Entries where at least one Line Entry belongs to the specified Ledger.
- `creationSource` 'manual' | 'transaction' | 'accrual' | 'paymentApplication' | 'legacy': Only return Journal Entries with the specified creation source.
- `journalEntrySort` 'descriptionAsc' | 'descriptionDesc' | 'dateTimeAsc' | 'dateTimeDesc' | 'amountAsc' | 'amountDesc' | 'creationDateAsc' | 'creationDateDesc' | 'transactionSourceAccountAsc' | 'transactionSourceAccountDesc' | 'transactionContraLedgerAsc' | 'transactionContraLedgerDesc' | 'tagNameAsc' | 'tagNameDesc' | 'debitLedgerAsc' | 'debitLedgerDesc' | 'creditLedgerAsc' | 'creditLedgerDesc' | 'reconciliationContraLedgerAsc' | 'reconciliationContraLedgerDesc': The sort order for the results.
- `expand` 'lineEntries' | 'lineEntriesTransactions' | 'lineEntriesLedger' | 'lineEntriesOpposingLedgerIds' | 'lineEntriesPaymentApplications' | 'lineEntriesLinePaymentApplications' | 'accrualSource' | 'transfer' | 'autocatResult': Comma-separated list of expandable paths.
- `pageToken` string: token for pagination
- `keywords` string: Only return Journal Entries where the description matches the specified keyword(s).
- `amount` number, double: Only return journal entries with the specified monetary amount. If specified, `minAmount` and `maxAmount` parameters are ignored. If no decimal place provided, rounded values will be matched. E.g. an input of `100` will match 100.13 and 100.45, but an input of `100.13` will only match that value.
- `minAmount` number, double: Only return journal entries with a monetary amount of at least the specified amount. Ignored if `amount` is set.
- `maxAmount` number, double: Only return journal entries with a monetary amount less than specified amount. Ignored if `amount` is set.
- `ledgerIdGroups` string[]: One or more comma-separated lists of ledger IDs. Only return Journal Entries where at least one Line Entry belongs to one of the specified ledgers in a group. Specifying multiple groups will return an intersection of the matches.
- `limit` integer: The maximum number of journal entries to return per page.
- `categorizationStatus` string[]: Comma-separated list of categorization statuses ('pending', 'delayed', 'completed', 'notAttempted'). Only return Journal Entries whose categorization status matches one of the specified values.
- `reviewStatus` string[]: Comma-separated list of review statuses ('unreviewed', 'reviewed'). Only return Journal Entries whose review status matches one of the specified values.
- `categorizationMethod` string[]: Comma-separated list of categorization methods ('ai', 'rule', 'user', 'matched', 'uncategorized'). Only return Journal Entries that were categorized by one of the specified methods. 'ai' matches every automatic method except 'rule'; 'user' matches Journal Entries with no live automatic categorization; 'matched' matches payment-application Journal Entries; 'uncategorized' matches Journal Entries with a Line Entry on an Uncategorized ledger. The other values never match the last two.

## Response `200`

- GetBooksAPIJournalEntriesResponse: Response containing a paginated list of journal entries.
  - `journalEntries` BooksJournalEntry[], required: The journal entries matching the query
    - `accrualSource` object, nullable: The accrual source for the journal entry, if applicable. Included in expanded responses.
      - `amountOutstanding` number, double, required: The amount outstanding
      - `amountPaid` number, double, required: The amount of payments made against the accrual source.
      - `billPayInvoiceAttachment` object, nullable: For bills synced from Bill Pay: the invoice file the bill was created from, served by MWB with a presigned download URL. Read-only in Books. Populated only on the GetBooksAccrualSources and UpdateBooksAccrualSource endpoint responses; other surfaces that embed accrual sources (journal entries, payment suggestions, create, Command tools) leave it null.
        - `downloadUrl` string, required: A presigned URL for downloading the attachment (valid for 1 hour).
        - `fileName` string, required: The filename of the attachment.
        - `id` string, required: Opaque display-only identifier (e.g. for React keys). Depending on the invoice's origin it comes from one of two different id namespaces, so it must not be fed back to any attachment endpoint.
      - `displayStatus` 'open' | 'paid' | 'draft' | 'cancelled' | 'overdue' | 'partiallyPaid' | 'processing', required: The display status of the accrual source
      - `dueDate` string, date, nullable: The due date of the accrual source (e.g invoice/bill due date)
      - `effectiveDate` string, date, required: The effective date of the accrual source (e.g invoice/bill date)
      - `externalId` string, nullable: The external ID of the accrual source, if applicable
      - `externalPartyId` union
        - object, nullable: The external party ID of the accrual source
          - `contents` string, uuid, required: ID for this books counterparty
          - `tag` 'counterpartyId', required
        - object, nullable: The external party ID of the accrual source
          - `contents` string, uuid, required: The customer who will receive the invoice. Use the /api/v1/ar/customers endpoint to list your customers and find the corresponding id, or create a new customer first.
          - `tag` 'customerId', required
      - `files` BooksAccrualSourceFile[], nullable: The files associated with the accrual source, if any
        - `fileName` string, required: The name of the file
        - `id` string, base58 (max length 22), required: The ID of the accrual source file
      - `grossAmount` number, double, required: The gross amount of the accrual source. Total of all lines.
      - `id` string, base58 (max length 22), nullable: The ID of the accrual source. Missing when the accrual source has not yet been created in Teal — i.e. when the synchronous Teal sync failed and was deferred to an async workflow. Signal that the accrual source is pending sync.
      - `journalEntryIds` string[], required: The journal entry IDs generated from the accrual source.
      - `lines` BooksAccrualSourceLine[], nullable: The lines that make up the accrual source. At least one line is required.
        - `accountId` string, base58 (max length 22), required: The ID of the ledger
        - `accrualSourceId` string, base58 (max length 22), required: The ID of the accrual source
        - `amount` number, double, required: The amount of the accrual source line
        - `description` string, required: The description of the accrual source line
        - `externalId` string, nullable: The external ID of the accrual source line. This is the ID of the accrual source line in an external system.
        - `id` string, base58 (max length 22), required: The ID of the accrual source line
        - `lineNumber` integer, required: The line number. Used for maintaining a consistent order of lines within an accrual source.
      - `needsActionReason` 'transactionNotInTeal' | 'transactionAmountExceedsInvoiceBalance' | 'transactionAmountDoesNotCoverInvoices' | 'sourceAccountNotMapped' | 'transactionPredatesBooksStartDate' | 'transactionAppliedToOtherInvoices' | 'cardChargeStripeNotConnected' | 'cardChargeStripeSetupPending', nullable: Present when the invoice is paid but the payment can't sync to Books without user intervention. Deprecated in favour of unappliedPayments, which reports a reason per payment along with how much each leaves unaccounted for, rather than one reason for the whole accrual source. Derived from that list, so the two cannot disagree: this is the lowest-ranked of its reasons.
      - `notes` string, nullable: Optional notes or memo for the accrual source
      - `paymentApplications` BooksAccrualSourcePaymentApplication[], nullable: Payments applied to the accrual source
        - `adjustments` BooksPaymentApplicationAccrualAdjustment[], required: Applicable adjustments
          - `accrualAdjustmentId` string, base58 (max length 22), required: ID of the adjustment
          - `amount` number, double, required: Value of the adjustment against the accrual source
          - `creditAccountId` string, base58 (max length 22), required: ID of the applicable credit ledger
          - `debitAccountId` string, base58 (max length 22), required: ID of the applicable debit ledger
        - `lineEntry` object, required: Metadata for the line entry for this payment application
          - `journalEntryDescription` string, required: The description of the journal entry
          - `journalEntryId` string, base58 (max length 22), required: The ID of the line entry's journal entry
          - `lineEntryAmount` number, double, required: The amount of the line entry
          - `lineEntryDescription` string, required: The description of the line entry
          - `lineEntryId` string, base58 (max length 22), required: The ID of the line entry
        - `matchedAmount` number, double, required: What amount of the line entry is applied as a payment to the accrual source
        - `paymentApplicationId` string, base58 (max length 22), required: The ID of the payment application
        - `sourceType` 'bankTransaction' | 'customerCredit' | 'manual', required: The source type of the payment application
        - `status` 'proposed' | 'confirmed' | 'rejected', required: The status of the payment application
      - `referenceNumber` string, nullable: The reference number of the accrual source
      - `status` 'open' | 'paid' | 'draft' | 'cancelled' | 'processing', required: The status of the accrual source
      - `type` 'invoice' | 'bill' | 'payroll', required: The type of the accrual source
      - `unappliedPayments` BooksAccrualSourceUnappliedPayment[], nullable: Payments Mercury recorded against this accrual source that have not reached Books, each with the reason it hasn't.
        - `amount` number, double, required: The payment's amount as Mercury recorded it against this accrual source. Unlike amountPaid and amountOutstanding, which are Books' figures, this is Mercury's: money received that Books has not been able to record. It is this payment's share of its transaction, so a transaction split across several invoices reports only the share belonging to each.
        - `needsActionReason` 'transactionNotInTeal' | 'transactionAmountExceedsInvoiceBalance' | 'transactionAmountDoesNotCoverInvoices' | 'sourceAccountNotMapped' | 'transactionPredatesBooksStartDate' | 'transactionAppliedToOtherInvoices' | 'cardChargeStripeNotConnected' | 'cardChargeStripeSetupPending', required: Why the payment has not reached Books. Always present: an entry exists only because something is blocking it.
    - `autocatResult` object, nullable: How the transaction underlying this journal entry was auto-categorized (method, confidence, and rule), if any. Null for manual journal entries, entries not categorized by the autocat pipeline, and entries a user has since manually recategorized. Included in expanded responses.
      - `confidence` number, double, required: The autocat model's confidence in the assignment, 0.0 to 1.0.
      - `createdAt` string, yyyy-mm-ddThh:MM:ssZ, required: When the autocat result was recorded, in UTC.
      - `id` string, required: The unique identifier of the autocat result.
      - `ledgerId` string, base58 (max length 22), required: The category ledger autocat assigned to the transaction.
      - `method` 'rule' | 'transactionKindDefaults' | 'similarity' | 'embedding' | 'llmClassifier' | 'transfersBetweenAccounts', required: How the category was assigned (rule/transactionKindDefaults/similarity/embedding/llmClassifier/transfersBetweenAccounts).
      - `ruleId` string, nullable: If method is `rule`, the id of the rule that matched; otherwise null. An opaque identifier supplied by the external categorizer.
    - `categorizationStatus` 'pending' | 'delayed' | 'completed' | 'notAttempted', required: The categorization lifecycle status of the journal entry. - `pending`: Uncategorized JE posted at sync, auto-categorization not yet resolved. - `delayed`: Auto-categorization fell back to uncategorized; can still transition to `completed`. - `completed`: Categorization settled (a real category applied, an explicit uncategorized result, or a manually-created JE). - `notAttempted`: Auto-categorization is disabled for the instance, so the JE was booked uncategorized and settled at once; no result will ever arrive.
    - `creationDate` string, yyyy-mm-ddThh:MM:ssZ, required: The date and time the journal entry was created
    - `creationSource` 'manual' | 'transaction' | 'accrual' | 'paymentApplication' | 'legacy', required: The source that created a journal entry. - `manual`: Created manually by the user via the UI. - `transaction`: Created automatically from a transaction categorization (e.g., Plaid sync). - `accrual`: Created automatically as part of an accrual workflow. - `paymentApplication`: Created automatically as part of a payment application workflow. - `legacy`: Created automatically from the old AR/AP system (receivables/payables).
    - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: The datetime the Journal Entry was created in UTC time
    - `description` string, size < 513, required: An arbitrary string on the object, useful for displaying to the user.
    - `id` string, base58 (max length 22), required: The unique ID of the object.
    - `isOpeningBalance` boolean, required: Whether the Journal Entry represents an opening balance.
    - `lineEntries` BooksLineEntry[], nullable: List of Line Entries. Included in expanded responses.
      - `accrualSource` object, nullable: Expandable. The accrual source for the line entry, if any.
        - `amountOutstanding` number, double, required: The amount outstanding
        - `amountPaid` number, double, required: The amount of payments made against the accrual source.
        - `displayStatus` 'open' | 'paid' | 'draft' | 'cancelled' | 'overdue' | 'partiallyPaid' | 'processing', required: The display status of the accrual source
        - `dueDate` string, date, nullable: The due date of the accrual source (e.g invoice/bill due date)
        - `effectiveDate` string, date, required: The effective date of the accrual source (e.g invoice/bill date)
        - `externalId` string, nullable: The external ID of the accrual source, if applicable
        - `externalPartyId` union
          - object, nullable: The external party ID of the accrual source
            - `contents` string, uuid, required: ID for this books counterparty
            - `tag` 'counterpartyId', required
          - object, nullable: The external party ID of the accrual source
            - `contents` string, uuid, required: The customer who will receive the invoice. Use the /api/v1/ar/customers endpoint to list your customers and find the corresponding id, or create a new customer first.
            - `tag` 'customerId', required
        - `grossAmount` number, double, required: The gross amount of the accrual source. Total of all lines.
        - `id` string, base58 (max length 22), required: The ID of the accrual source
        - `lines` BooksAccrualSourceLine[], nullable: The lines that make up the accrual source. At least one line is required.
          - `accountId` string, base58 (max length 22), required: The ID of the ledger
          - `accrualSourceId` string, base58 (max length 22), required: The ID of the accrual source
          - `amount` number, double, required: The amount of the accrual source line
          - `description` string, required: The description of the accrual source line
          - `externalId` string, nullable: The external ID of the accrual source line. This is the ID of the accrual source line in an external system.
          - `id` string, base58 (max length 22), required: The ID of the accrual source line
          - `lineNumber` integer, required: The line number. Used for maintaining a consistent order of lines within an accrual source.
        - `notes` string, nullable: Optional notes or memo for the accrual source
        - `referenceNumber` string, nullable: The reference number of the accrual source
        - `status` 'open' | 'paid' | 'draft' | 'cancelled' | 'processing', required: The status of the accrual source
        - `type` 'invoice' | 'bill' | 'payroll', required: The type of the accrual source
      - `amount` number, double, required: The value of the line entry in decimal dollar cents.
      - `categorizationStatus` 'pending' | 'delayed' | 'completed' | 'notAttempted', required: Whether the associated journal entry is still awaiting an auto-categorization result: 'pending' (awaiting), 'delayed' (timed out, a late result may still resolve it), 'completed' (settled, whether by a result or by being manually created), or 'notAttempted' (auto-categorization is disabled for the instance, so no result was ever requested). Both line entries of a journal entry share this value.
      - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: The datetime the Line Entry was created in UTC time.
      - `debitCredit` 'debit' | 'credit', required: Indicates if the amount is a credit or debit.
      - `description` string, size < 4001, nullable: An arbitrary string on the object, useful for displaying to the user or for categorization.
      - `editable` boolean, required: Indicates if the Line Entry can be manually added or removed from a Ledger, as dictated by the `editable` property on the Ledger.
      - `id` string, base58 (max length 22), required: The unique ID of the object.
      - `journalEntryDescription` string, size < 513, required: An arbitrary string on the object, useful for displaying to the user.
      - `journalEntryId` string, base58 (max length 22), required: The ID of the associated Journal Entry.
      - `ledgerId` string, base58 (max length 22), required: The ID of the Line Entry's Ledger.
      - `ledgerName` string, required: The name of the Line Entry's Ledger.
      - `opposingLedgerIds` string[], nullable: Expandable. IDs of the ledgers on the other side(s) of the line entry with opposite debit/credit.
      - `paymentApplications` BooksLineEntryPaymentApplication[], nullable: Payments applied using the Line Entry — source-level (bill/invoice/closing adjustment) and line-level (payroll), tagged on `type`. Contains only the kinds that were expanded: request both `lineEntriesPaymentApplications` and `lineEntriesLinePaymentApplications` for the full set.
        - union
          - BooksLineEntryLinePaymentApplication: Line-level (payroll) payment application. The @paymentApplicationLine@ variant of 'BooksLineEntryPaymentApplication'.
            - `accrualSource` object, required: The payroll accrual source (run + pay period) of this payment application
              - …
            - `linePaymentApplicationId` string, base58 (max length 22), required: The ID of the line-level payment application
            - `matchedAmount` number, double, required: What amount of the line entry is applied as a payment to the payroll line
            - `sourceType` 'bankTransaction' | 'customerCredit' | 'manual', required: The source type of the payment application
            - `status` 'proposed' | 'confirmed' | 'rejected', required: The status of the payment application
          - BooksLineEntryPaymentApplicationSource: Source-level payment application (invoice, bill, or closing adjustment). The @paymentApplication@ variant of 'BooksLineEntryPaymentApplication'.
            - `accrualSource` object, nullable: Metadata for the accrual source for this payment application
              - …
            - `adjustments` BooksPaymentApplicationAccrualAdjustment[], required: Applicable adjustments
              - …
            - `matchedAmount` number, double, required: What amount of the line entry is applied as a payment to the accrual source
            - `paymentApplicationId` string, base58 (max length 22), required: The ID of the payment application
            - `sourceType` 'bankTransaction' | 'customerCredit' | 'manual', required: The source type of the payment application
            - `status` 'proposed' | 'confirmed' | 'rejected', required: The status of the payment application
      - `relatedLineEntryId` string, base58 (max length 22), nullable: If the Line Entry is identified as a transfer between accounts, the ID of the Line Entry in the opposing Ledger. Related guide: [Auto-categorization](https://docs.teal.dev/guides/platform/categorization/pipeline#transfers-between-accounts)
      - `sortOrder` integer, nullable: The position of the line entry within its journal entry, used to determine display order. May be null for rows created before sort_order was introduced.
      - `tags` BooksTag[], nullable: The tags associated with the line entry, if any.
        - `id` string, base58 (max length 22), required: Unique identifier for the tag.
        - `name` string, required: Display name of the tag.
        - `tagGroupId` string, base58 (max length 22), required: unique id for a tag group; emitted as base-58, but a base-16 UUID is also accepted
      - `transaction` object, nullable: Expandable. The associated Transaction object, if one exists.
        - `amount` number, double, required: the value of the transaction in decimal dollar cents.
        - `attachments` BooksTransactionAttachment[], nullable: Attachments associated with the transaction from Mercury Banking, if any. Only included if enrichment is requested.
          - `downloadUrl` string, required: A presigned URL for downloading the attachment (valid for 1 hour).
          - `fileName` string, required: The filename of the attachment.
          - `id` string, required: The unique identifier of the attachment.
        - `cardLastFourDigits` string, nullable: The last four digits of the card used for the transaction, if applicable. Only included if enrichment is requested.
        - `categorizationMethod` 'aI' | 'rules' | 'similarity' | 'transferBetweenAccounts' | 'uncategorized' | 'user', nullable: how the transaction was assigned its category
        - `counterpartyName` string, nullable: The name of the transaction counterparty (To/From), if available. Only included if enrichment is requested.
        - `customCategoryId` string, nullable: The unique id of the Banking custom category assigned to this transaction, if any. Only included if enrichment is requested.
        - `customCategoryName` string, nullable: The display name of the Banking custom category assigned to this transaction, if any. Only included if enrichment is requested.
        - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: the UTC datetime that the Transaction was created.
        - `description` string, size < 513, required: an arbitrary string on the object, useful for displaying information to the user. Descriptions over 512 characters will be truncated.
        - `externalMetadataId` string, nullable: the TransactionMetadataId banking identifier for this transaction
        - `id` string, required: the unique identifier for this transaction
        - `journalEntryId` string, base58 (max length 22), nullable: the ID of the journal entry that the transaction's line entry is associated with.
        - `ledgerId` string, base58 (max length 22), nullable: the ID of the financial account ledger associated with the transaction.
        - `lineEntryId` string, base58 (max length 22), nullable: the ID of the line entry associated with the transaction
        - `merchantType` object, nullable: The merchant type (Mercury category) automatically assigned to the transaction, along with its display name and icon, if any. Only included if enrichment is requested.
          - `category` 'Other' | 'Advertising' | 'Airlines' | 'AlcoholAndBars' | 'BooksAndNewspaper' | 'CarRental' | 'Charity' | 'Clothing' | 'Conferences' | 'Education' | 'Electronics' | 'Entertainment' | 'FacilitiesExpenses' | 'Fees' | 'FoodDelivery' | 'FuelAndGas' | 'Gambling' | 'GovernmentServices' | 'Grocery' | 'GroundTransportation' | 'Insurance' | 'InternetAndTelephone' | 'Legal' | 'Lodging' | 'Medical' | 'Memberships' | 'OfficeSupplies' | 'OtherTravel' | 'Parking' | 'Political' | 'ProfessionalServices' | 'Restaurants' | 'Retail' | 'RideshareAndTaxis' | 'Shipping' | 'Software' | 'Taxes' | 'Utilities' | 'VehicleExpenses', required: the canonical mercury category
          - `display` string, required: prettified display name for category
          - `icon` 'arrowsLeftRightIcon' | 'arrowsRotateIcon' | 'atomSimpleIcon' | 'ballotCheckIcon' | 'bankIcon' | 'bellConciergeIcon' | 'boltIcon' | 'bookOpenCoverIcon' | 'booksIcon' | 'boxIcon' | 'buildingIcon' | 'burgerIcon' | 'carIcon' | 'cartShoppingFastIcon' | 'carWrenchIcon' | 'chartLineUpIcon' | 'circleParkingIcon' | 'computerIcon' | 'creditCardIcon' | 'crownIcon' | 'envelopeOpenTextIcon' | 'faucetIcon' | 'fileInvoiceIcon' | 'fileInvoiceDollarIcon' | 'fingerprintIcon' | 'gasPumpIcon' | 'gavelIcon' | 'gearIcon' | 'giftIcon' | 'globeIcon' | 'graduationCapIcon' | 'handHoldingDollarIcon' | 'handshakeIcon' | 'headSideMedicalIcon' | 'heartIcon' | 'homeIcon' | 'idBadgeIcon' | 'keyIcon' | 'keynoteIcon' | 'landmarkFlagIcon' | 'laptopIcon' | 'laptopMobileIcon' | 'listCheckIcon' | 'lockIcon' | 'lockOpenIcon' | 'martiniGlassIcon' | 'masksTheaterIcon' | 'messagesIcon' | 'mobileIcon' | 'moneyBillTransferIcon' | 'moneyBillWaveIcon' | 'moneyCheckIcon' | 'mugSaucerIcon' | 'planeIcon' | 'planetRingedIcon' | 'receiptIcon' | 'rectanglesMixedIcon' | 'seedlingIcon' | 'shieldCheckIcon' | 'shieldHavedIcon' | 'shirtIcon' | 'shopIcon' | 'shoppingCartIcon' | 'signInIcon' | 'signOutIcon' | 'slotMachineIcon' | 'staplerIcon' | 'starsIcon' | 'sunBrightIcon' | 'taxiBusIcon' | 'taxiIcon' | 'towerBroadcastIcon' | 'trainIcon' | 'tvIcon' | 'userIcon' | 'userPlusIcon' | 'usersIcon' | 'utensilsIcon' | 'warningIcon' | 'wifiIcon' | 'wineGlassIcon' | 'wrenchIcon', required: corresponding icon type
        - `note` string, nullable: A note on the transaction set in Mercury Banking, if any. Only included if enrichment is requested.
        - `opposingLineEntryIds` string[], nullable: a list of IDs of all the line entries objects in the journal entry with the opposite debit/credit status. For example if the transaction's line entry is a debit this opposing line entries will be credit line entries.
        - `personal` boolean, required: whether the transaction is a non-business personal transaction.
        - `postedStatus` 'notPosted' | 'posted' | 'deleted', required: indicates if the corresponding journal entry and line entries for the transaction have been created.
        - `reviewStatus` 'reviewed' | 'unreviewed', required: indicates if the transaction has been reviewed.
        - `sourceAccountId` string, base58 (max length 22), required: the ID of the source account where the transaction is stored.
        - `teamMemberId` string, nullable: The unique id of the team member associated with this transaction, if any. Only included if enrichment is requested.
        - `teamMemberName` string, nullable: The full name of the team member associated with this transaction, if any. Only included if enrichment is requested.
        - `transactionMethodKind` 'outgoingElectronicPayment' | 'outgoingCheckPayment' | 'endogenousOutgoingAchTransfer' | 'endogenousIncomingAchTransfer' | 'exogenousOutgoingAch' | 'exogenousIncomingAch' | 'incomingCredit' | 'outgoingCredit' | 'incomingDebit' | 'outgoingDebit' | 'internalTransfer' | 'incomingCheck' | 'outgoingInternationalWire' | 'incomingInternationalWire' | 'outgoingDomesticWire' | 'incomingDomesticWire' | 'wireFee' | 'conversionFee' | 'personalBankingSubscriptionFee' | 'billingEngineSubscriptionFee' | 'physicalCardUpgradeFee' | 'exogenousOutgoingCheck' | 'exogenousOutgoingWire' | 'treasuryTransfer' | 'investTransfer' | 'currencyCloudReturn' | 'internationalWirePartnerReturn' | 'internalCreditAccountPayment' | 'autoRoutingTransfer' | 'ventureDebtFunding' | 'ventureDebtRepayment' | 'creditCashbackRewardsDeposit' | 'externalCreditCashbackRewardsDeposit' | 'interestPayment' | 'outgoingProvisionalCredit' | 'incomingProvisionalCredit' | 'lineOfCreditFunding' | 'lineOfCreditRepayment' | 'lineOfCreditInterestRepayment' | 'atmFeeReimbursement' | 'atmFeeReimbursementReversal' | 'expenseReimbursement' | 'requestedPayment' | 'exogenousWireDrawdown' | 'incomingCreditAccountRepayment' | 'cardIntlTransactionFee' | 'cardIntlTransactionFeeRebate' | 'cardIntlTransactionFeeReversal' | 'cardIntlTransactionFeeRebateReversal' | 'externalCreditAccountPayment' | 'realtimePayment' | 'outgoingRealTimePayment' | 'balanceHold' | 'linkedMercuryAccountTransfer', nullable: The kind of the Mercury Banking transaction, if available. Only included if enrichment is requested.
      - `transactionId` string, nullable: The ID of the associated Transaction, if one exists.
    - `lineEntryIds` string[], nullable: The ids of the Line Entries detailing the Journal Entry's movement of value.
    - `reviewStatus` 'unreviewed' | 'reviewed', required: Whether the user has reviewed the journal entry. New journal entries default to `unreviewed`.
    - `reviewStatusSetAt` string, yyyy-mm-ddThh:MM:ssZ, nullable: When the review status was last set. Null if the journal entry has never been reviewed.
    - `transfer` object, nullable: The transfer linking this journal entry to the journal entry on the other side of a transfer between accounts (e.g. Stripe Payouts), if any. Included in expanded responses.
      - `fromEntry` object, required: The 'from' side of the transfer.
        - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: This side's Journal Entry datetime.
        - `description` string, size < 513, required: This side's Journal Entry description.
        - `journalEntryId` string, base58 (max length 22), required: The id of this side's Journal Entry.
        - `lineEntries` BooksLineEntry[], required: This side's Line Entries (used to derive the amount and source account).
          - `accrualSource` object, nullable: Expandable. The accrual source for the line entry, if any.
            - `amountOutstanding` number, double, required: The amount outstanding
            - `amountPaid` number, double, required: The amount of payments made against the accrual source.
            - `displayStatus` 'open' | 'paid' | 'draft' | 'cancelled' | 'overdue' | 'partiallyPaid' | 'processing', required: The display status of the accrual source
            - `dueDate` string, date, nullable: The due date of the accrual source (e.g invoice/bill due date)
            - `effectiveDate` string, date, required: The effective date of the accrual source (e.g invoice/bill date)
            - `externalId` string, nullable: The external ID of the accrual source, if applicable
            - `externalPartyId` union
              - …
            - `grossAmount` number, double, required: The gross amount of the accrual source. Total of all lines.
            - `id` string, base58 (max length 22), required: The ID of the accrual source
            - `lines` BooksAccrualSourceLine[], nullable: The lines that make up the accrual source. At least one line is required.
              - …
            - `notes` string, nullable: Optional notes or memo for the accrual source
            - `referenceNumber` string, nullable: The reference number of the accrual source
            - `status` 'open' | 'paid' | 'draft' | 'cancelled' | 'processing', required: The status of the accrual source
            - `type` 'invoice' | 'bill' | 'payroll', required: The type of the accrual source
          - `amount` number, double, required: The value of the line entry in decimal dollar cents.
          - `categorizationStatus` 'pending' | 'delayed' | 'completed' | 'notAttempted', required: Whether the associated journal entry is still awaiting an auto-categorization result: 'pending' (awaiting), 'delayed' (timed out, a late result may still resolve it), 'completed' (settled, whether by a result or by being manually created), or 'notAttempted' (auto-categorization is disabled for the instance, so no result was ever requested). Both line entries of a journal entry share this value.
          - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: The datetime the Line Entry was created in UTC time.
          - `debitCredit` 'debit' | 'credit', required: Indicates if the amount is a credit or debit.
          - `description` string, size < 4001, nullable: An arbitrary string on the object, useful for displaying to the user or for categorization.
          - `editable` boolean, required: Indicates if the Line Entry can be manually added or removed from a Ledger, as dictated by the `editable` property on the Ledger.
          - `id` string, base58 (max length 22), required: The unique ID of the object.
          - `journalEntryDescription` string, size < 513, required: An arbitrary string on the object, useful for displaying to the user.
          - `journalEntryId` string, base58 (max length 22), required: The ID of the associated Journal Entry.
          - `ledgerId` string, base58 (max length 22), required: The ID of the Line Entry's Ledger.
          - `ledgerName` string, required: The name of the Line Entry's Ledger.
          - `opposingLedgerIds` string[], nullable: Expandable. IDs of the ledgers on the other side(s) of the line entry with opposite debit/credit.
          - `paymentApplications` BooksLineEntryPaymentApplication[], nullable: Payments applied using the Line Entry — source-level (bill/invoice/closing adjustment) and line-level (payroll), tagged on `type`. Contains only the kinds that were expanded: request both `lineEntriesPaymentApplications` and `lineEntriesLinePaymentApplications` for the full set.
            - union
              - …
          - `relatedLineEntryId` string, base58 (max length 22), nullable: If the Line Entry is identified as a transfer between accounts, the ID of the Line Entry in the opposing Ledger. Related guide: [Auto-categorization](https://docs.teal.dev/guides/platform/categorization/pipeline#transfers-between-accounts)
          - `sortOrder` integer, nullable: The position of the line entry within its journal entry, used to determine display order. May be null for rows created before sort_order was introduced.
          - `tags` BooksTag[], nullable: The tags associated with the line entry, if any.
            - `id` string, base58 (max length 22), required: Unique identifier for the tag.
            - `name` string, required: Display name of the tag.
            - `tagGroupId` string, base58 (max length 22), required: unique id for a tag group; emitted as base-58, but a base-16 UUID is also accepted
          - `transaction` object, nullable: Expandable. The associated Transaction object, if one exists.
            - `amount` number, double, required: the value of the transaction in decimal dollar cents.
            - `attachments` BooksTransactionAttachment[], nullable: Attachments associated with the transaction from Mercury Banking, if any. Only included if enrichment is requested.
              - …
            - `cardLastFourDigits` string, nullable: The last four digits of the card used for the transaction, if applicable. Only included if enrichment is requested.
            - `categorizationMethod` 'aI' | 'rules' | 'similarity' | 'transferBetweenAccounts' | 'uncategorized' | 'user', nullable: how the transaction was assigned its category
            - `counterpartyName` string, nullable: The name of the transaction counterparty (To/From), if available. Only included if enrichment is requested.
            - `customCategoryId` string, nullable: The unique id of the Banking custom category assigned to this transaction, if any. Only included if enrichment is requested.
            - `customCategoryName` string, nullable: The display name of the Banking custom category assigned to this transaction, if any. Only included if enrichment is requested.
            - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: the UTC datetime that the Transaction was created.
            - `description` string, size < 513, required: an arbitrary string on the object, useful for displaying information to the user. Descriptions over 512 characters will be truncated.
            - `externalMetadataId` string, nullable: the TransactionMetadataId banking identifier for this transaction
            - `id` string, required: the unique identifier for this transaction
            - `journalEntryId` string, base58 (max length 22), nullable: the ID of the journal entry that the transaction's line entry is associated with.
            - `ledgerId` string, base58 (max length 22), nullable: the ID of the financial account ledger associated with the transaction.
            - `lineEntryId` string, base58 (max length 22), nullable: the ID of the line entry associated with the transaction
            - `merchantType` object, nullable: The merchant type (Mercury category) automatically assigned to the transaction, along with its display name and icon, if any. Only included if enrichment is requested.
              - …
            - `note` string, nullable: A note on the transaction set in Mercury Banking, if any. Only included if enrichment is requested.
            - `opposingLineEntryIds` string[], nullable: a list of IDs of all the line entries objects in the journal entry with the opposite debit/credit status. For example if the transaction's line entry is a debit this opposing line entries will be credit line entries.
            - `personal` boolean, required: whether the transaction is a non-business personal transaction.
            - `postedStatus` 'notPosted' | 'posted' | 'deleted', required: indicates if the corresponding journal entry and line entries for the transaction have been created.
            - `reviewStatus` 'reviewed' | 'unreviewed', required: indicates if the transaction has been reviewed.
            - `sourceAccountId` string, base58 (max length 22), required: the ID of the source account where the transaction is stored.
            - `teamMemberId` string, nullable: The unique id of the team member associated with this transaction, if any. Only included if enrichment is requested.
            - `teamMemberName` string, nullable: The full name of the team member associated with this transaction, if any. Only included if enrichment is requested.
            - `transactionMethodKind` 'outgoingElectronicPayment' | 'outgoingCheckPayment' | 'endogenousOutgoingAchTransfer' | 'endogenousIncomingAchTransfer' | 'exogenousOutgoingAch' | 'exogenousIncomingAch' | 'incomingCredit' | 'outgoingCredit' | 'incomingDebit' | 'outgoingDebit' | 'internalTransfer' | 'incomingCheck' | 'outgoingInternationalWire' | 'incomingInternationalWire' | 'outgoingDomesticWire' | 'incomingDomesticWire' | 'wireFee' | 'conversionFee' | 'personalBankingSubscriptionFee' | 'billingEngineSubscriptionFee' | 'physicalCardUpgradeFee' | 'exogenousOutgoingCheck' | 'exogenousOutgoingWire' | 'treasuryTransfer' | 'investTransfer' | 'currencyCloudReturn' | 'internationalWirePartnerReturn' | 'internalCreditAccountPayment' | 'autoRoutingTransfer' | 'ventureDebtFunding' | 'ventureDebtRepayment' | 'creditCashbackRewardsDeposit' | 'externalCreditCashbackRewardsDeposit' | 'interestPayment' | 'outgoingProvisionalCredit' | 'incomingProvisionalCredit' | 'lineOfCreditFunding' | 'lineOfCreditRepayment' | 'lineOfCreditInterestRepayment' | 'atmFeeReimbursement' | 'atmFeeReimbursementReversal' | 'expenseReimbursement' | 'requestedPayment' | 'exogenousWireDrawdown' | 'incomingCreditAccountRepayment' | 'cardIntlTransactionFee' | 'cardIntlTransactionFeeRebate' | 'cardIntlTransactionFeeReversal' | 'cardIntlTransactionFeeRebateReversal' | 'externalCreditAccountPayment' | 'realtimePayment' | 'outgoingRealTimePayment' | 'balanceHold' | 'linkedMercuryAccountTransfer', nullable: The kind of the Mercury Banking transaction, if available. Only included if enrichment is requested.
          - `transactionId` string, nullable: The ID of the associated Transaction, if one exists.
      - `toEntry` object, required: The 'to' side of the transfer.
        - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: This side's Journal Entry datetime.
        - `description` string, size < 513, required: This side's Journal Entry description.
        - `journalEntryId` string, base58 (max length 22), required: The id of this side's Journal Entry.
        - `lineEntries` BooksLineEntry[], required: This side's Line Entries (used to derive the amount and source account).
          - `accrualSource` object, nullable: Expandable. The accrual source for the line entry, if any.
            - `amountOutstanding` number, double, required: The amount outstanding
            - `amountPaid` number, double, required: The amount of payments made against the accrual source.
            - `displayStatus` 'open' | 'paid' | 'draft' | 'cancelled' | 'overdue' | 'partiallyPaid' | 'processing', required: The display status of the accrual source
            - `dueDate` string, date, nullable: The due date of the accrual source (e.g invoice/bill due date)
            - `effectiveDate` string, date, required: The effective date of the accrual source (e.g invoice/bill date)
            - `externalId` string, nullable: The external ID of the accrual source, if applicable
            - `externalPartyId` union
              - …
            - `grossAmount` number, double, required: The gross amount of the accrual source. Total of all lines.
            - `id` string, base58 (max length 22), required: The ID of the accrual source
            - `lines` BooksAccrualSourceLine[], nullable: The lines that make up the accrual source. At least one line is required.
              - …
            - `notes` string, nullable: Optional notes or memo for the accrual source
            - `referenceNumber` string, nullable: The reference number of the accrual source
            - `status` 'open' | 'paid' | 'draft' | 'cancelled' | 'processing', required: The status of the accrual source
            - `type` 'invoice' | 'bill' | 'payroll', required: The type of the accrual source
          - `amount` number, double, required: The value of the line entry in decimal dollar cents.
          - `categorizationStatus` 'pending' | 'delayed' | 'completed' | 'notAttempted', required: Whether the associated journal entry is still awaiting an auto-categorization result: 'pending' (awaiting), 'delayed' (timed out, a late result may still resolve it), 'completed' (settled, whether by a result or by being manually created), or 'notAttempted' (auto-categorization is disabled for the instance, so no result was ever requested). Both line entries of a journal entry share this value.
          - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: The datetime the Line Entry was created in UTC time.
          - `debitCredit` 'debit' | 'credit', required: Indicates if the amount is a credit or debit.
          - `description` string, size < 4001, nullable: An arbitrary string on the object, useful for displaying to the user or for categorization.
          - `editable` boolean, required: Indicates if the Line Entry can be manually added or removed from a Ledger, as dictated by the `editable` property on the Ledger.
          - `id` string, base58 (max length 22), required: The unique ID of the object.
          - `journalEntryDescription` string, size < 513, required: An arbitrary string on the object, useful for displaying to the user.
          - `journalEntryId` string, base58 (max length 22), required: The ID of the associated Journal Entry.
          - `ledgerId` string, base58 (max length 22), required: The ID of the Line Entry's Ledger.
          - `ledgerName` string, required: The name of the Line Entry's Ledger.
          - `opposingLedgerIds` string[], nullable: Expandable. IDs of the ledgers on the other side(s) of the line entry with opposite debit/credit.
          - `paymentApplications` BooksLineEntryPaymentApplication[], nullable: Payments applied using the Line Entry — source-level (bill/invoice/closing adjustment) and line-level (payroll), tagged on `type`. Contains only the kinds that were expanded: request both `lineEntriesPaymentApplications` and `lineEntriesLinePaymentApplications` for the full set.
            - union
              - …
          - `relatedLineEntryId` string, base58 (max length 22), nullable: If the Line Entry is identified as a transfer between accounts, the ID of the Line Entry in the opposing Ledger. Related guide: [Auto-categorization](https://docs.teal.dev/guides/platform/categorization/pipeline#transfers-between-accounts)
          - `sortOrder` integer, nullable: The position of the line entry within its journal entry, used to determine display order. May be null for rows created before sort_order was introduced.
          - `tags` BooksTag[], nullable: The tags associated with the line entry, if any.
            - `id` string, base58 (max length 22), required: Unique identifier for the tag.
            - `name` string, required: Display name of the tag.
            - `tagGroupId` string, base58 (max length 22), required: unique id for a tag group; emitted as base-58, but a base-16 UUID is also accepted
          - `transaction` object, nullable: Expandable. The associated Transaction object, if one exists.
            - `amount` number, double, required: the value of the transaction in decimal dollar cents.
            - `attachments` BooksTransactionAttachment[], nullable: Attachments associated with the transaction from Mercury Banking, if any. Only included if enrichment is requested.
              - …
            - `cardLastFourDigits` string, nullable: The last four digits of the card used for the transaction, if applicable. Only included if enrichment is requested.
            - `categorizationMethod` 'aI' | 'rules' | 'similarity' | 'transferBetweenAccounts' | 'uncategorized' | 'user', nullable: how the transaction was assigned its category
            - `counterpartyName` string, nullable: The name of the transaction counterparty (To/From), if available. Only included if enrichment is requested.
            - `customCategoryId` string, nullable: The unique id of the Banking custom category assigned to this transaction, if any. Only included if enrichment is requested.
            - `customCategoryName` string, nullable: The display name of the Banking custom category assigned to this transaction, if any. Only included if enrichment is requested.
            - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required: the UTC datetime that the Transaction was created.
            - `description` string, size < 513, required: an arbitrary string on the object, useful for displaying information to the user. Descriptions over 512 characters will be truncated.
            - `externalMetadataId` string, nullable: the TransactionMetadataId banking identifier for this transaction
            - `id` string, required: the unique identifier for this transaction
            - `journalEntryId` string, base58 (max length 22), nullable: the ID of the journal entry that the transaction's line entry is associated with.
            - `ledgerId` string, base58 (max length 22), nullable: the ID of the financial account ledger associated with the transaction.
            - `lineEntryId` string, base58 (max length 22), nullable: the ID of the line entry associated with the transaction
            - `merchantType` object, nullable: The merchant type (Mercury category) automatically assigned to the transaction, along with its display name and icon, if any. Only included if enrichment is requested.
              - …
            - `note` string, nullable: A note on the transaction set in Mercury Banking, if any. Only included if enrichment is requested.
            - `opposingLineEntryIds` string[], nullable: a list of IDs of all the line entries objects in the journal entry with the opposite debit/credit status. For example if the transaction's line entry is a debit this opposing line entries will be credit line entries.
            - `personal` boolean, required: whether the transaction is a non-business personal transaction.
            - `postedStatus` 'notPosted' | 'posted' | 'deleted', required: indicates if the corresponding journal entry and line entries for the transaction have been created.
            - `reviewStatus` 'reviewed' | 'unreviewed', required: indicates if the transaction has been reviewed.
            - `sourceAccountId` string, base58 (max length 22), required: the ID of the source account where the transaction is stored.
            - `teamMemberId` string, nullable: The unique id of the team member associated with this transaction, if any. Only included if enrichment is requested.
            - `teamMemberName` string, nullable: The full name of the team member associated with this transaction, if any. Only included if enrichment is requested.
            - `transactionMethodKind` 'outgoingElectronicPayment' | 'outgoingCheckPayment' | 'endogenousOutgoingAchTransfer' | 'endogenousIncomingAchTransfer' | 'exogenousOutgoingAch' | 'exogenousIncomingAch' | 'incomingCredit' | 'outgoingCredit' | 'incomingDebit' | 'outgoingDebit' | 'internalTransfer' | 'incomingCheck' | 'outgoingInternationalWire' | 'incomingInternationalWire' | 'outgoingDomesticWire' | 'incomingDomesticWire' | 'wireFee' | 'conversionFee' | 'personalBankingSubscriptionFee' | 'billingEngineSubscriptionFee' | 'physicalCardUpgradeFee' | 'exogenousOutgoingCheck' | 'exogenousOutgoingWire' | 'treasuryTransfer' | 'investTransfer' | 'currencyCloudReturn' | 'internationalWirePartnerReturn' | 'internalCreditAccountPayment' | 'autoRoutingTransfer' | 'ventureDebtFunding' | 'ventureDebtRepayment' | 'creditCashbackRewardsDeposit' | 'externalCreditCashbackRewardsDeposit' | 'interestPayment' | 'outgoingProvisionalCredit' | 'incomingProvisionalCredit' | 'lineOfCreditFunding' | 'lineOfCreditRepayment' | 'lineOfCreditInterestRepayment' | 'atmFeeReimbursement' | 'atmFeeReimbursementReversal' | 'expenseReimbursement' | 'requestedPayment' | 'exogenousWireDrawdown' | 'incomingCreditAccountRepayment' | 'cardIntlTransactionFee' | 'cardIntlTransactionFeeRebate' | 'cardIntlTransactionFeeReversal' | 'cardIntlTransactionFeeRebateReversal' | 'externalCreditAccountPayment' | 'realtimePayment' | 'outgoingRealTimePayment' | 'balanceHold' | 'linkedMercuryAccountTransfer', nullable: The kind of the Mercury Banking transaction, if available. Only included if enrichment is requested.
          - `transactionId` string, nullable: The ID of the associated Transaction, if one exists.
  - `nextPageToken` string, nullable: Token to fetch the next page of results
  - `prevPageToken` string, nullable: Token to fetch the previous page of results

## Other responses

- `400`: Invalid `categorizationMethod` or `reviewStatus` or `categorizationStatus` or `limit` or `ledgerIdGroups` or `maxAmount` or `minAmount` or `amount` or `keywords` or `pageToken` or `expand` or `journalEntrySort` or `creationSource` or `ledgerId` or `endDate` or `startDate` or `booksId`

## Changes

- **2026-11-03** `95c77a617769`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mercurytechnologies/apis/mercury-api/changes/books/journal-entries/get.md)

---

[API](https://skmtc.dev/mercurytechnologies/apis/mercury-api.md) - [All operations](https://skmtc.dev/mercurytechnologies/apis/mercury-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mercurytechnologies/apis/mercury-api/revisions/95c77a617769?raw)
