Submit a business event link
The event is validated against the applicable rule sets’ ontologies, entries are derived, conflicts between rule sets are detected — and only then is the event appended. Processing is asynchronous: the API answers 202 Accepted.
| Header | Required |
|---|
X-Tenant-ID | yes |
Authorization | in production |
Request body link
{
"eventType": "SalesInvoice",
"transactionDate": "2026-07-01",
"accountingEntries": [
{ "accountCode": "1500-receivables", "entryType": "DEBIT", "amount": 125000,
"currency": "EUR", "description": "Invoice #42",
"dimensions": { "CUSTOMER": "cust-001" } },
{ "accountCode": "3000-sales", "entryType": "CREDIT", "amount": 100000, "currency": "EUR" },
{ "accountCode": "2700-vat-out", "entryType": "CREDIT", "amount": 25000, "currency": "EUR" }
],
"metadata": {
"idempotencyKey": "f4b6a2d8-1c3e-4f5a-9b7d-8e2f0a1c3b5d",
"tags": { "channel": "webshop" }
}
}
| Field | Type | Constraints |
|---|
eventType | string | required, e.g. SalesInvoice, PayrollRun |
transactionDate | date | optional yyyy-MM-dd; defaults to today |
accountingEntries | array | required, non-empty |
accountingEntries[].accountCode | string | required |
accountingEntries[].entryType | enum | required, DEBIT or CREDIT |
accountingEntries[].amount | integer | scaled by the unit — see Amounts and units |
accountingEntries[].currency | string | optional — a currency or other registered unit |
accountingEntries[].dimensions | object | optional |
metadata.idempotencyKey | string | optional; parsed as a correlation UUID when valid |
metadata.tags | object | optional string map |
Response — 202 Accepted link
{ "eventId": "9c2e4f6a-…", "message": "Event accepted for processing" }
| Status | Code | Cause |
|---|
400 | VALIDATION_ERROR | Bad entryType, missing fields |
400 | — | Ontology violations: {"error": "Event validation failed against ontology constraints", "violations": [...]} |
403 | FORBIDDEN | No write access to tenant |
409 | — | Conflicting rule-set derivations (body lists conflictingEntries per domain) |
Inquire events link
A lightweight read on the command side, useful for reconciliation and for finding events that still lack a correction.
| Header | Required | Notes |
|---|
X-Tenant-ID | yes | 400 if missing; requires read access to the tenant |
Query parameters link
| Parameter | Required | Notes |
|---|
eventType | no | Filter by event type |
name | no | Matches the event’s name payload field |
year | no | Filter by year |
correctionEventType | no | Return only events without a matching correction of this type |
Response — 200 OK link
Ordered by timestamp, ascending:
[
{ "id": "9c2e4f6a-…", "tenantId": "org-84120557", "eventType": "SalesInvoice",
"timestamp": "2026-07-01T09:14:03.512Z" }
]
| Status | Code | Cause |
|---|
400 | VALIDATION_ERROR | Missing X-Tenant-ID header |
403 | FORBIDDEN | Token lacks read access to the tenant |