Search journal entries
Operation ID: searchJournalEntries
Group: Accounting › Journal Entries
Open in the interactive reference
POST /accounting/journal-entries/search
Read-only: A read that takes its filters in the body. Changes nothing, and ignores Idempotency-Key.
Searches journal entries. Each journal entry in the response includes its lines.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
Request body
Required, application/json: searchJournalEntriesInput.
| Field | Type | Required | Description |
|---|---|---|---|
filters |
object | no | The filters to apply. A journal entry must match every filter you send. Omit to return all journal entries. |
filters.id |
string | no | Limits results to the journal entry with this identifier. |
filters.bookId |
string | no | Limits results to entries in this accounting book. See id on GET accounting/books/:id. |
filters.status |
string | no | Limits results to entries with this posting status. Accepted values: 'posted', 'unposted', 'voided'. Any other value matches no entry. |
filters.type |
string | no | Limits results to entries of this origin type, for example 'manual' or 'invoice'. |
filters.name |
string | no | Limits results to entries whose name contains this text. The match is case-insensitive. |
filters.description |
string | no | Limits results to entries whose description contains this text. The match is case-insensitive. |
filters.postingDate |
object | no | A window on the posting date. Both bounds are inclusive. Omit a bound to leave that side open. |
filters.postingDate.start |
date | no | The inclusive start of the posting-date window. Use format YYYY-MM-DD. |
filters.postingDate.end |
date | no | The inclusive end of the posting-date window. Use format YYYY-MM-DD. |
page |
object | no | The pagination controls. Omit for the first page. |
page.cursor |
string | no | The cursor from the previous response's pagination.nextCursor. Omit for the first page. |
page.size |
number | no | The number of entries per page. Defaults to 50. A value above 200 is treated as 200, not rejected. |
{
"filters": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bookId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "<status>",
"type": "<type>",
"name": "<name>",
"description": "<description>",
"postingDate": {
"start": "2026-01-15",
"end": "2026-01-15"
}
},
"page": {
"cursor": "<cursor>",
"size": 0
}
}
Response
200 Success
Under data (searchJournalEntriesOutput):
| Field | Type | Required | Description |
|---|---|---|---|
items |
array<object> | yes | The journal entries that match, most recently created first. An empty array when nothing matches. |
items[].id |
string | yes | The unique identifier for the journal entry. |
items[].approvalStatus |
string | no | The approval status of the journal entry. Possible values: 'draft', 'pendingApproval', 'revise', 'approved', 'rejected'. Absent on entries that never entered the approval workflow. |
items[].bookId |
string | no | The accounting book this entry posts to. See id on GET accounting/books/:id. |
items[].description |
string | no | A free-form description of the journal entry. |
items[].name |
string | no | The display name of the journal entry. |
items[].postingDate |
date | yes | The date the entry posts to the general ledger. Format YYYY-MM-DD. |
items[].reversalDate |
date | no | The reversal date recorded on the entry. Format YYYY-MM-DD. Set only on a reversed entry or a reversal entry. |
items[].reversalDescription |
string | no | The description recorded on the reversal. |
items[].reversalReason |
string | no | The reason recorded for the reversal. Possible values: 'accrualReversal', 'revaluationReversal', 'estimate', 'rebook', 'reversingSFD', 'other'. |
items[].status |
string | yes | The posting status of the journal entry. Possible values: 'posted', 'unposted', 'voided'. |
items[].type |
string | no | How the entry originated, for example 'manual', 'invoice', 'revaluation' or 'reversal'. A system-assigned value. |
items[].url |
string | no | A link to the source document this entry comes from. |
items[].lastModifiedDate |
date-time | yes | The date and time the journal entry last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
items[].lines |
array<object> | yes | The debit and credit lines of the entry. |
items[].lines[].id |
string | yes | The unique identifier for the line. |
items[].lines[].accountId |
string | yes | The general ledger account this line posts to. See id on GET accounting/accounts/:id. |
items[].lines[].credit |
decimal | no | The credit amount for this line, in its transactionalCurrency. A line has either a debit or a credit, not both. |
items[].lines[].debit |
decimal | no | The debit amount for this line, in its transactionalCurrency. A line has either a debit or a credit, not both. |
items[].lines[].description |
string | no | A free-form description of the line. |
items[].lines[].entityId |
string | yes | The legal entity this line posts to. See id on GET base/entities. |
items[].lines[].intercompanyPartnerId |
string | no | The intercompany counterparty for this line. Set on intercompany lines. |
items[].lines[].exchangeRate |
decimal | no | The exchange rate used to convert the line's transactional amount to its functional amount. |
items[].lines[].functionalCredit |
decimal | no | The credit amount for this line, in the functional currency. |
items[].lines[].functionalCurrency |
string | no | The functional currency of the posting entity. Format ISO 4217, for example 'USD'. |
items[].lines[].functionalDebit |
decimal | no | The debit amount for this line, in the functional currency. |
items[].lines[].journalEntryId |
string | no | The journal entry this line belongs to. See id on GET accounting/journal-entries/:id. |
items[].lines[].lineNumber |
number | no | The line's sequential number within the entry. |
items[].lines[].lineType |
string | no | The classification of the line, for example 'standard', 'tax', 'offset' or 'fxRoundingDifference'. A system-assigned value. Absent when the line has no classification. |
items[].lines[].postingPeriodId |
string | no | The accounting period this line posts to. See id on GET accounting/accounting-periods/:id. |
items[].lines[].revaluation |
boolean | no | Whether a currency-revaluation process created this line. |
items[].lines[].sourceTransaction |
string | no | The identifier of the source transaction that generated this line, for example an invoice or payment number. |
items[].lines[].transactionalCurrency |
string | no | The currency of the line's transactional amounts. Format ISO 4217, for example 'USD'. |
items[].lines[].transactionDate |
date | no | The date of the underlying transaction. Format YYYY-MM-DD. It can differ from the posting date. |
items[].lines[].reportingTags |
array<object> | no | The reporting tags assigned to this line. Set them with create or update. |
items[].lines[].reportingTags[].dimensionCode |
string | yes | The reporting dimension this tag is for. Possible values: 'department', 'businessUnit', 'team', 'location', 'region', 'employee', 'vendor', 'customer', 'valueCenter', 'custom'. |
items[].lines[].reportingTags[].modelId |
string | yes | The dimension record this tag points to, on the model that dimensionCode names. |
items[].lines[].reportingTags[].customDimensionId |
string | no | The custom dimension this tag belongs to. Present only for a custom-dimension tag. See id on GET base/custom-dimensions. |
items[].lines[].reportingTags[].isActive |
boolean | yes | Whether the referenced dimension record is currently active. A historical entry can have tags that point at records since made inactive. |
pagination |
object | yes | The pagination cursor for this page. |
pagination.nextCursor |
string | no | The cursor for the next page. Pass it as page.cursor. Absent on the last page. |
pagination.hasMore |
boolean | yes | True when more entries remain beyond this page. |
{
"data": {
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"approvalStatus": "<approvalStatus>",
"bookId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "<description>",
"name": "<name>",
"postingDate": "2026-01-15",
"reversalDate": "2026-01-15",
"reversalDescription": "<reversalDescription>",
"reversalReason": "<reversalReason>",
"status": "<status>",
"type": "<type>",
"url": "<url>",
"lastModifiedDate": "2026-01-15T09:30:00.000Z",
"lines": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"credit": "19.99",
"debit": "19.99",
"description": "<description>",
"entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"intercompanyPartnerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"exchangeRate": "19.99",
"functionalCredit": "19.99",
"functionalCurrency": "<functionalCurrency>",
"functionalDebit": "19.99",
"journalEntryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"lineNumber": 0,
"lineType": "<lineType>",
"postingPeriodId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"revaluation": true,
"sourceTransaction": "<sourceTransaction>",
"transactionalCurrency": "<transactionalCurrency>",
"transactionDate": "2026-01-15",
"reportingTags": [
null
]
}
]
}
],
"pagination": {
"nextCursor": "<nextCursor>",
"hasMore": true
}
},
"diagnostics": [
{
"code": "<code>",
"message": "<message>",
"severity": "error",
"path": [
"<path>"
],
"details": "<details>"
}
]
}
Statuses
400— Invalid request or business failure401— The request carries no valid access token.403— Not authorized404— Not found429— Too many requests from this client address. The response has no body and noRetry-Afterheader.500— Internal server error