A valid request URL is required to generate request examples{
"items": [
{
"id": "audit-1",
"action": "procurement.createPurchaseOrder",
"actorId": "audit-actor-x",
"outcome": "success",
"at": "2026-07-16T09:30:00.000Z",
"correlationId": "corr-1",
"entityType": "purchaseOrder",
"entityId": "po-audit-1",
"metadata": {
"resultCode": "OK"
}
}
],
"total": 3421,
"page": 1,
"pageSize": 20,
"pageCount": 172
}{
"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
}
}Query the central audit log
Lists ONE PAGE of the network’s recorded sensitive actions (the piste d’audit / journal d’audit), most recent first, optionally narrowed by ?actorId=, ?entityType=, ?entityId= and/or ?action=, by ?outcome=success|failure and by the recorded ?resultCode= (BUSINESS_RULE_VIOLATION, INTERNAL_ERROR, …), and bounded by ISO-8601 ?from= / ?to= instants. Use resultCode rather than outcome alone when you need to tell an authoritative refusal from a server that broke; a write that never reached the server is not in this trail at all. Walk it with ?page= / ?pageSize= (default 20, max 100): total counts every matching entry across all pages and pageCount tells you when to stop. This trail is APPEND-ONLY and the highest-volume table in the system — never assume one response holds the whole answer; narrow it with the facets and the time window rather than walking every page. Every use-case run is appended to it by the ExecutionContext sink, so an audited action is immediately visible here. Cross-cutting compliance, not a fiscal read (hence the Audit tag). Reading the log requires the finance read grant.
A valid request URL is required to generate request examples{
"items": [
{
"id": "audit-1",
"action": "procurement.createPurchaseOrder",
"actorId": "audit-actor-x",
"outcome": "success",
"at": "2026-07-16T09:30:00.000Z",
"correlationId": "corr-1",
"entityType": "purchaseOrder",
"entityId": "po-audit-1",
"metadata": {
"resultCode": "OK"
}
}
],
"total": 3421,
"page": 1,
"pageSize": 20,
"pageCount": 172
}{
"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 actions performed by this actor id.
Narrow to a target entity kind (e.g. purchaseOrder, product).
Narrow to actions against one target entity id.
Narrow to one audited action key (e.g. procurement.createPurchaseOrder).
Narrow to success or failure — the recorded outcome. NOTE: a write that never reached the server leaves NO row at all, so failure means 'the server judged this and refused or broke', never 'the till was offline'.
Narrow to one recorded ResultCode (VALIDATION_FAILED, UNAUTHORIZED, FORBIDDEN, NOT_FOUND, CONFLICT, BUSINESS_RULE_VIOLATION, INTERNAL_ERROR, OK). This is the facet that separates an authoritative refusal from a server that broke — ?outcome=failure alone lumps them together.
Lower bound (inclusive) of the audit window, as an ISO-8601 instant.
Upper bound (inclusive) of the audit window, as an ISO-8601 instant.
Response
One page of the matching audit-log entries, most recent first.
One page of the matching audit-log entries, most recent first.
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
