A valid request URL is required to generate request examples{
"items": [
{
"id": "cash-2026-07-16-1",
"store": "store-bastille",
"date": "2026-07-16T20:00:00.000Z",
"status": "closed",
"openingFloatCents": 20000,
"expectedCashCents": 157000,
"countedCashCents": 156500,
"varianceCents": -500
}
],
"total": 8,
"page": 1,
"pageSize": 20,
"pageCount": 1
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}List finance entries
Returns one page of the finance read model — the LIVE projection of the register-session cash truth (one row per till session: opening float, expected vs counted drawer cash, signed variance, i.e. the écart de caisse / cash discrepancy). This is the back-office grand livre de caisse (cash ledger). Optionally narrow by store (canonical store id) and status (open / closed), sort by store or date, and walk with page / pageSize. A malformed page / pageSize returns 400.
A valid request URL is required to generate request examples{
"items": [
{
"id": "cash-2026-07-16-1",
"store": "store-bastille",
"date": "2026-07-16T20:00:00.000Z",
"status": "closed",
"openingFloatCents": 20000,
"expectedCashCents": 157000,
"countedCashCents": 156500,
"varianceCents": -500
}
],
"total": 8,
"page": 1,
"pageSize": 20,
"pageCount": 1
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Query Parameters
1-based page index to return. Defaults to 1.
1 <= x <= 9007199254740991Rows per page, 1..100. Defaults to 20.
1 <= x <= 100Narrow to one store by its canonical store id (e.g. store-bastille).
Narrow by till-session lifecycle: open or closed.
Sort key of the finance listing: store or date.
Sort direction paired with sortField: asc (default) or desc.
Response
A page of finance entries with the pagination totals.
A page of finance entries with the pagination totals.
The rows on this page, in the query's sort order.
Show child attributes
Show child attributes
Total rows matching the filter across ALL pages, not just this one.
0 <= x <= 9007199254740991The 1-based page number served.
0 < x <= 9007199254740991Rows requested per page.
0 < x <= 9007199254740991Total number of pages; stop walking when page reaches it.
0 <= x <= 9007199254740991
