API Reference

Public Accounting API reference — read accounting postings and ledger lines produced by Omnium, with endpoints, search requests, response models, and enums.

The public Accounting API is read-only. It exposes the postings and ledger lines Omnium generates from POS Z-report closes and daily web-fulfillment batches, so an ERP or accounting integration can pull vouchers for export and reconciliation. Postings are created and managed inside Omnium — the API does not create, update, or delete them.

For the concepts behind these objects, see Postings & Ledger Lines.

Base URL

https://api.omnium.no/api/Accounting

The endpoints appear under the commerce group in Swagger: Omnium API Documentation.

Authentication

All endpoints require Bearer token authentication and the Accounting Read access level. See Authentication for obtaining tokens.

Draft postings are never returned by the public API. Superseded postings are excluded by default and only returned when you set IncludeSuperseded on a search request.


Get posting by ID

Retrieve a single posting by its ID.

Endpoint: GET /api/Accounting/Postings/{id}

ParameterTypeLocationRequiredDescription
idstringpathYesThe posting ID

Response: 200 OK with OmniumAccountingPosting, 400 if the ID is missing, or 404 if not found.


Get posting by Z-report

Retrieve the current (non-superseded) posting built from a given Z-report.

Endpoint: GET /api/Accounting/Postings/ByZReport/{zReportId}

ParameterTypeLocationRequiredDescription
zReportIdstringpathYesThe Z-report ID

Response: 200 OK with OmniumAccountingPosting, or 404 if no posting exists for that Z-report.


Search postings

Search postings with filters and pagination.

Endpoint: POST /api/Accounting/Postings/Search

Request body: OmniumAccountingPostingSearchRequest

Example request:

{
  "postingDateFrom": "2026-01-01T00:00:00Z",
  "postingDateTo": "2026-01-31T23:59:59Z",
  "storeId": "Oslo-01",
  "source": "WebFulfillment",
  "status": "Posted",
  "take": 50,
  "page": 1
}

Response: 200 OK with a search result of OmniumAccountingPosting.

Take must be between 1 and 100. Take * Page must be ≤ 10,000. Specify either StoreId or StoreGroupId, not both.


Get lines for a posting

Retrieve all ledger lines for a posting.

Endpoint: GET /api/Accounting/Postings/{id}/Lines

ParameterTypeLocationRequiredDescription
idstringpathYesThe posting ID

Response: 200 OK with a list of OmniumAccountingLedgerLine.


Get a single ledger line

Retrieve one ledger line. The posting ID is required because lines are partitioned by posting.

Endpoint: GET /api/Accounting/Postings/{postingId}/Lines/{id}

ParameterTypeLocationRequiredDescription
postingIdstringpathYesThe parent posting ID
idstringpathYesThe ledger line ID

Response: 200 OK with OmniumAccountingLedgerLine, or 404 if the line does not exist on that posting.


Search ledger lines

Search ledger lines across postings — useful for building an account-by-account export.

Endpoint: POST /api/Accounting/LedgerLines/Search

Request body: OmniumAccountingLedgerLineSearchRequest

Example request:

{
  "postingDateFrom": "2026-01-01T00:00:00Z",
  "postingDateTo": "2026-01-31T23:59:59Z",
  "accountNumber": "3000",
  "category": "Sales",
  "sortBy": "PostingDate",
  "sortDescending": true,
  "take": 200,
  "page": 1
}

Response: 200 OK with a search result of OmniumAccountingLedgerLine.

Take must be between 1 and 1000. Take * Page must be ≤ 10,000. Specify either StoreId or StoreGroupId, not both.


Models

Posting model

OmniumAccountingPosting — a voucher header summarising a balanced set of ledger lines.

PropertyTypeDescription
IdstringUnique posting ID.
SourceOmniumPostingSourcePosZReport or WebFulfillment.
ZReportIdstringZ-report the posting was built from (POS only).
ZReportNumberlong?Z-report number, when applicable.
OrderIdsList<string>Orders that contributed to the posting.
StoreIdsList<string>Stores covered. WebFulfillment postings have a single entry.
RegisterIdsList<string>Registers covered by the source Z-report. Empty for WebFulfillment.
AccountingCompanyCodestringAccounting company code, when configured per store/market.
PostingDateDateTimeAccounting period date (store-local time zone → date).
CreatedAtDateTimeUTC creation timestamp.
CurrencyCodestringISO currency code (e.g. NOK).
StatusstringPosted, Exported, Reconciled, Rejected, or Superseded.
SupersedesPostingIdstringID of the posting this one replaces, if any.
ExternalReferencestringERP voucher ID, once exported.
ExportedAtDateTime?UTC export timestamp, if exported.
TotalDebitdecimalSum of all debit amounts.
TotalCreditdecimalSum of all credit amounts.
ImbalancedecimalSigned residual (debit − credit). 0 on a balanced posting.
AutoBalancedboolTrue if a suspense line was added to balance the posting.
LineCountintNumber of ledger lines.
WarningsList<string>Builder diagnostics (e.g. auto-balance notes).
RejectionReasonstringReason recorded when the posting was rejected.
PostingHashstringDeterministic hash over identity fields and ordered lines; stable across lifecycle changes.

Ledger line model

OmniumAccountingLedgerLine — one debit/credit entry against one account.

PropertyTypeDescription
IdstringUnique ledger line ID.
PostingIdstringParent posting ID.
LineSequenceintStable order within the posting.
PostingDateDateTime?Accounting period date (denormalised from the posting).
RegisterIdstringRegister that produced the line (POS), when applicable.
StoreIdstringStore the line is booked to.
AccountingCompanyCodestringAccounting company code, when configured.
AccountNumberstringGL account number.
AccountNamestringHuman-readable account name.
CategoryOmniumAccountCategoryWhat kind of entry this is.
DebitdecimalDebit amount in posting currency.
CreditdecimalCredit amount in posting currency.
CurrencyCodestringISO currency code.
VatCodestringVAT code on VAT-related lines.
VatRatedecimal?VAT rate as a percentage (e.g. 25).
VatAmountdecimal?VAT amount in posting currency.
TaxGroupCodestringTax-group code from the line-level snapshot.
DescriptionstringFree-text description.
CustomerNumberstringCustomer number, when applicable (e.g. receivables).
InvoiceNumberstringInvoice number, when applicable.
CreditNoteNumberstringCredit note number, when applicable.
InvoiceDateDateTime?Invoice date, when applicable.
DueDateDateTime?Due date, when applicable.
KidNumberstringKID / payment reference, when applicable.
DimensionsDictionary<string,string>Free-form dimensions / cost centres carried on the line.

Posting search request

OmniumAccountingPostingSearchRequest.

PropertyTypeDefaultDescription
Takeint50Page size. Max 100.
Pageint1Page number.
StoreIdstringFilter by store. Mutually exclusive with StoreGroupId.
StoreGroupIdstringFilter by store group (resolved to its stores). Mutually exclusive with StoreId.
RegisterIdstringFilter by register.
AccountingCompanyCodestringFilter by accounting company code.
StatusstringFilter by status.
SourceOmniumPostingSource?Filter by source.
PostingDateFromDateTime?Posting date on or after (inclusive).
PostingDateToDateTime?Posting date on or before (inclusive).
OrderIdsList<string>Include postings containing any of these order IDs.
IncludeSupersededboolfalseInclude superseded postings (audit view).

Ledger line search request

OmniumAccountingLedgerLineSearchRequest.

PropertyTypeDefaultDescription
Takeint200Page size. Max 1000.
Pageint1Page number.
PostingIdstringFilter to one posting's lines.
PostingDateFromDateTime?Posting date on or after (inclusive).
PostingDateToDateTime?Posting date on or before (inclusive).
StoreIdstringFilter by store. Mutually exclusive with StoreGroupId.
StoreGroupIdstringFilter by store group. Mutually exclusive with StoreId.
RegisterIdstringFilter by register.
AccountNumberstringSingle account number. Takes precedence over AccountNumbers.
AccountNumbersList<string>Filter to any of these account numbers.
CategoryOmniumAccountCategory?Filter by category.
TaxGroupCodestringFilter by tax-group code.
VatCodestringFilter by VAT code.
CurrencyCodestringFilter by currency.
SourceOmniumPostingSource?Filter by parent posting source.
IncludeSupersededboolfalseInclude lines whose parent posting is superseded.
SortBystringPostingDateSort field: PostingDate, AccountNumber, or PostingId.
SortDescendingboolfalseSort descending.

Search result

Both search endpoints return a paged result:

{
  "totalHits": 142,
  "result": [ /* postings or ledger lines */ ]
}
PropertyTypeDescription
TotalHitslongTotal number of matching documents.
ResultarrayThe page of results.

Enums

OmniumPostingSource

ValueMeaning
PosZReportBuilt inline when a POS Z-report is closed.
WebFulfillmentBuilt daily per (store, fulfillment date) from web/CS orders shipped from the store.

OmniumAccountCategory

Sales, OutputVat, PaymentMethod, Shipping, Discount, Rounding, RefundPaymentMethod, InternalTransferOut, InternalTransferIn, Receivable, GiftCardLiability, PaymentProviderFee, Other, CashFloat, CashInTransit, OverShort, Tip.

See Account categories for what each represents.


Error handling

StatusMeaning
200Success
400Bad request (missing ID, invalid pagination, or both StoreId and StoreGroupId set)
404Posting or ledger line not found
500Internal server error

On this page