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

# List all journal entries

`GET /books/journal-entries/{booksId}`

## Path parameters

- `booksId` string, uuid, required

## Query parameters

- `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' — 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'). Only return Journal Entries whose categorization status matches one of the specified values.

## 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.
      - `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', nullable — Present when the invoice is paid but the payment can't sync to Books without user intervention.
      - `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, required — 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
    - `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' | 'similarity' | 'embedding' | 'transfersBetweenAccounts', required — How the category was assigned (rule/similarity/embedding/transfers_between_accounts).
      - `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', 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).
    - `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, required — 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', 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), or 'completed' (resolved, or not auto-categorized). 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
      - `transaction` object, nullable — Expandable. The associated Transaction object, if one exists.
        - `amount` number, double, required — A dollar amount
        - `attachments` BooksTransactionAttachment[], nullable — Attachments associated with the transaction from Mercury Banking, if any.
          - `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.
        - `categorizationMethod` 'aI' | 'rules' | 'similarity' | 'transferBetweenAccounts' | 'uncategorized' | 'user'
        - `counterpartyName` string, nullable — The name of the transaction counterparty (To/From), if available.
        - `customCategoryId` string, nullable
        - `customCategoryName` string, nullable — The display name of the Banking custom category assigned to this transaction, if any.
        - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required
        - `description` string, size < 513, required
        - `externalMetadataId` string, nullable
        - `id` string, required — unique id for a transaction
        - `journalEntryId` string, base58 (max length 22), nullable — unique id for a journal entry
        - `ledgerId` string, base58 (max length 22), nullable — unique id for a ledger
        - `lineEntryId` string, base58 (max length 22), nullable — unique id for a line entry
        - `merchantCategoryCode` string, nullable — The merchant category code (MCC) for the transaction, if available.
        - `note` string, nullable — A note on the transaction set in Mercury Banking, if any.
        - `opposingLineEntryIds` string[], nullable
        - `personal` boolean, required
        - `postedStatus` 'notPosted' | 'posted' | 'deleted', required
        - `reviewStatus` 'reviewed' | 'unreviewed', required
        - `sourceAccountId` string, required
        - `teamMemberId` string, nullable
        - `teamMemberName` string, nullable — The full name of the team member associated with this transaction, if any.
        - `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.
      - `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.
    - `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, required — 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', 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), or 'completed' (resolved, or not auto-categorized). 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
          - `transaction` object, nullable — Expandable. The associated Transaction object, if one exists.
            - `amount` number, double, required — A dollar amount
            - `attachments` BooksTransactionAttachment[], nullable — Attachments associated with the transaction from Mercury Banking, if any.
              - …
            - `cardLastFourDigits` string, nullable — The last four digits of the card used for the transaction, if applicable.
            - `categorizationMethod` 'aI' | 'rules' | 'similarity' | 'transferBetweenAccounts' | 'uncategorized' | 'user'
            - `counterpartyName` string, nullable — The name of the transaction counterparty (To/From), if available.
            - `customCategoryId` string, nullable
            - `customCategoryName` string, nullable — The display name of the Banking custom category assigned to this transaction, if any.
            - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required
            - `description` string, size < 513, required
            - `externalMetadataId` string, nullable
            - `id` string, required — unique id for a transaction
            - `journalEntryId` string, base58 (max length 22), nullable — unique id for a journal entry
            - `ledgerId` string, base58 (max length 22), nullable — unique id for a ledger
            - `lineEntryId` string, base58 (max length 22), nullable — unique id for a line entry
            - `merchantCategoryCode` string, nullable — The merchant category code (MCC) for the transaction, if available.
            - `note` string, nullable — A note on the transaction set in Mercury Banking, if any.
            - `opposingLineEntryIds` string[], nullable
            - `personal` boolean, required
            - `postedStatus` 'notPosted' | 'posted' | 'deleted', required
            - `reviewStatus` 'reviewed' | 'unreviewed', required
            - `sourceAccountId` string, required
            - `teamMemberId` string, nullable
            - `teamMemberName` string, nullable — The full name of the team member associated with this transaction, if any.
            - `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.
          - `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, required — 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', 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), or 'completed' (resolved, or not auto-categorized). 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
          - `transaction` object, nullable — Expandable. The associated Transaction object, if one exists.
            - `amount` number, double, required — A dollar amount
            - `attachments` BooksTransactionAttachment[], nullable — Attachments associated with the transaction from Mercury Banking, if any.
              - …
            - `cardLastFourDigits` string, nullable — The last four digits of the card used for the transaction, if applicable.
            - `categorizationMethod` 'aI' | 'rules' | 'similarity' | 'transferBetweenAccounts' | 'uncategorized' | 'user'
            - `counterpartyName` string, nullable — The name of the transaction counterparty (To/From), if available.
            - `customCategoryId` string, nullable
            - `customCategoryName` string, nullable — The display name of the Banking custom category assigned to this transaction, if any.
            - `datetime` string, yyyy-mm-ddThh:MM:ssZ, required
            - `description` string, size < 513, required
            - `externalMetadataId` string, nullable
            - `id` string, required — unique id for a transaction
            - `journalEntryId` string, base58 (max length 22), nullable — unique id for a journal entry
            - `ledgerId` string, base58 (max length 22), nullable — unique id for a ledger
            - `lineEntryId` string, base58 (max length 22), nullable — unique id for a line entry
            - `merchantCategoryCode` string, nullable — The merchant category code (MCC) for the transaction, if available.
            - `note` string, nullable — A note on the transaction set in Mercury Banking, if any.
            - `opposingLineEntryIds` string[], nullable
            - `personal` boolean, required
            - `postedStatus` 'notPosted' | 'posted' | 'deleted', required
            - `reviewStatus` 'reviewed' | 'unreviewed', required
            - `sourceAccountId` string, required
            - `teamMemberId` string, nullable
            - `teamMemberName` string, nullable — The full name of the team member associated with this transaction, if any.
            - `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.
          - `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 `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`
- `404` — `booksId` not found

---

[API](https://skmtc.net/mercurytechnologies/apis/mercury-api.md) · [All operations](https://skmtc.net/mercurytechnologies/apis/mercury-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mercurytechnologies/mercury-api/revisions/0bdf4a496e03/schema)
