Order API Reference

Complete endpoint reference for the Omnium Order API. Covers creating, retrieving, updating, searching, and deleting orders, as well as managing order lines, payments, and documents.

This is the full endpoint reference for the Omnium Order API. For conceptual guides on order models, pricing, discounts, and workflows, see Order API Guide.

Base URL

All Order API endpoints are available at:

https://api.omnium.no/api/Orders

Full Swagger reference: Omnium Orders API Documentation


Authentication

All endpoints require Bearer token authentication. Order endpoints use role-based access control:

RoleAccess
Order ReadRead-only operations (GET, search, scroll)
Order AdminAll operations including create, update, and delete

See Authentication for details on obtaining tokens.


Create orders

Create order

Create a new order. The order ID must be unique across all markets.

Endpoint: POST /api/Orders

Authorization: Order Admin

Request body: OmniumOrder

Example request:

{
  "id": "ORD-2024-000001",
  "customerId": "customer@example.com",
  "billingCurrency": "NOK",
  "customerName": "Ola Nordmann",
  "customerPhone": "+4740000000",
  "customerEmail": "customer@example.com",
  "marketId": "NOR",
  "storeId": "WebShop",
  "status": "New",
  "orderType": "Online",
  "billingAddress": {
    "name": "Ola Nordmann",
    "line1": "Storgata 1",
    "city": "Oslo",
    "countryCode": "NO",
    "postalCode": "0159"
  },
  "orderForm": {
    "lineItems": [
      {
        "lineItemId": "1",
        "code": "SKU-001",
        "displayName": "Product A",
        "placedPrice": 499.00,
        "quantity": 2,
        "taxRate": 25
      }
    ],
    "shipments": [
      {
        "shipmentId": "1",
        "shippingMethodName": "Bring_SERVICEPAKKE",
        "warehouseCode": "MainWarehouse",
        "lineItems": [
          {
            "lineItemId": "1",
            "code": "SKU-001",
            "placedPrice": 499.00,
            "quantity": 2,
            "taxRate": 25
          }
        ],
        "address": {
          "name": "Ola Nordmann",
          "line1": "Storgata 1",
          "city": "Oslo",
          "countryCode": "NO",
          "postalCode": "0159"
        }
      }
    ],
    "payments": [
      {
        "amount": 998.00,
        "paymentMethodName": "Klarna",
        "transactionId": "klarna-tx-12345",
        "transactionType": "Authorization",
        "status": "Processed"
      }
    ]
  }
}

Response: 201 Created with the created OmniumOrder


Create order with auto-generated order number

Create a new order and let Omnium generate the order number automatically based on the configured number sequence.

Endpoint: PUT /api/Orders

Authorization: Order Admin

Request body: OmniumOrder (OrderNumber can be omitted)

Response: 201 Created with the created OmniumOrder

The auto-generated order number follows the number sequence pattern configured in your tenant settings. See Number Options for configuration details.


Create POS order

Create a point-of-sale order. The order type is automatically set to "Pos" and status to "Completed".

Endpoint: PUT /api/Orders/PosOrders

Authorization: POS Writer

Required properties: MarketId, OrderNumber, StoreId

Request body: OmniumOrder

Response: 201 Created with the created OmniumOrder


Add many orders (batch)

Add multiple new orders in a single request.

Endpoint: POST /api/Orders/AddMany

Authorization: Order Admin

Request body: List<OmniumOrder>

Response: 204 No Content


Import many orders (batch)

Import multiple orders, typically used for migrating orders from external systems.

Endpoint: POST /api/Orders/ImportMany

Authorization: Order Admin

Request body: List<OmniumOrder>

Response: 204 No Content


Retrieve orders

Get order by ID

Retrieve a single order by its ID.

Endpoint: GET /api/Orders/{id}

Parameters:

ParameterTypeLocationRequiredDescription
idstringpathYesThe order ID

Response: 200 OK with OmniumOrder, or 404 Not Found

Example request:

GET /api/Orders/ORD-2024-000001

Get order version

Retrieve a specific historical version of an order.

Endpoint: GET /api/Orders/{id}/{versionId}

Parameters:

ParameterTypeLocationRequiredDescription
idstringpathYesThe order ID
versionIdstringpathYesThe version ID

Response: 200 OK with versioned order object containing version, modifiedBy, and modified metadata alongside the order data.


Get order by cart ID

Retrieve an order that was created from a specific cart.

Endpoint: GET /api/Orders/carts/{cartId}

Parameters:

ParameterTypeLocationRequiredDescription
cartIdstringpathYesThe cart ID used to create the order

Response: 200 OK with OmniumOrder


Get order by secret key

Retrieve an order using a secure, randomly generated secret key. Useful for guest order tracking without requiring authentication.

Endpoint: GET /api/Orders/secret/{secretKey}

Parameters:

ParameterTypeLocationRequiredDescription
secretKeystringpathYesThe secret key associated with the order

Response: 200 OK with OmniumOrder, or 404 Not Found

See Order API Guide - Secret Key for detailed usage and security considerations.


Check if order exists

Check whether an order exists without retrieving the full order data.

Endpoint: HEAD /api/Orders/{id}/Exists

Parameters:

ParameterTypeLocationRequiredDescription
idstringpathYesThe order ID

Response: 200 OK if the order exists, 404 Not Found otherwise


Get multiple orders by IDs

Retrieve multiple orders in a single request. The response includes a list of found orders and a separate list of IDs that were not found.

Endpoint: GET /api/Orders/GetOrders/ByIds

Parameters:

ParameterTypeLocationRequiredDescription
idsList<string>queryYesList of order IDs to retrieve

Example request:

GET /api/Orders/GetOrders/ByIds?ids=ORD-001&ids=ORD-002&ids=ORD-003

Example response:

{
  "items": [
    { "id": "ORD-001", "status": "New" },
    { "id": "ORD-002", "status": "Completed" }
  ],
  "missingIds": ["ORD-003"]
}

Get orders (paginated list)

Get a paginated list of orders filtered by store and status.

Endpoint: GET /api/Orders/GetOrders

Parameters:

ParameterTypeLocationRequiredDefaultDescription
storeIdList<string>queryYes-Store ID(s) to filter by
statusList<string>queryNo-Status(es) to filter by
changedSinceDateTimequeryNo-Only return orders modified after this date
pageintqueryNo1Page number
pageSizeintqueryNo20Results per page (max 100)

Example request:

GET /api/Orders/GetOrders?storeId=WebShop&status=New&status=InProgress&page=1&pageSize=50

Response: 200 OK with paginated search result:

{
  "items": [ /* array of OmniumOrder */ ],
  "totalCount": 142,
  "page": 1,
  "pageSize": 50
}

Get orders by order type

Get orders filtered by store, status, and order type.

Endpoint: GET /api/Orders/GetOrders/ByOrderType

Parameters:

ParameterTypeLocationRequiredDefaultDescription
storeIdList<string>queryNo-Store ID(s)
statusList<string>queryNo-Status filter
orderTypesList<string>queryNo-Order type filter (e.g., "Online", "Pos")
changedSinceDateTimequeryNo-Modified since filter
pageintqueryNo1Page number
pageSizeintqueryNo20Results per page (max 100)

Example request:

GET /api/Orders/GetOrders/ByOrderType?storeId=WebShop&orderTypes=Online&orderTypes=ClickAndCollect&page=1

Count orders

Get the count of orders matching the given filters.

Endpoint: GET /api/Orders/GetOrders/Count

Parameters:

ParameterTypeLocationRequiredDescription
storeIdList<string>queryNoStore ID(s)
statusList<string>queryNoStatus filter
changedSinceDateTimequeryNoModified since filter

Response: 200 OK with integer count


Get orders for customer

Retrieve orders belonging to a specific customer.

Endpoint: GET /api/Orders/Customers/{customerId}/Orders

Parameters:

ParameterTypeLocationRequiredDefaultDescription
customerIdstringpathYes-Customer identifier
pageintqueryNo1Page number
pageSizeintqueryNo20Results per page
statusList<string>queryNo-Status filter

Example request:

GET /api/Orders/Customers/CUST-001/Orders?page=1&pageSize=10

Search orders

Perform an advanced search with filtering, sorting, and faceted results.

Endpoint: POST /api/Orders/Search

Request body: OmniumOrderSearchRequest

Example request:

{
  "selectedStores": ["WebShop"],
  "selectedStatuses": ["New", "InProgress"],
  "createdFrom": "2024-01-01T00:00:00Z",
  "createdTo": "2024-12-31T23:59:59Z",
  "searchText": "Nordmann",
  "sortOrder": "CreatedDescending",
  "take": 20,
  "page": 1
}

Response: 200 OK with paginated results and facets:

{
  "items": [ /* array of OmniumOrder */ ],
  "totalCount": 85,
  "page": 1,
  "pageSize": 20
}

The Search endpoint has a maximum result window of 10,000 documents (take * page <= 10000). For larger result sets, use the Scroll endpoint.


Search orders for customer

Search within a specific customer's orders.

Endpoint: POST /api/Orders/Customers/{customerId}/Orders/Search

Parameters:

ParameterTypeLocationRequiredDescription
customerIdstringpathYesCustomer identifier

Request body: OmniumOrderSearchRequest


Search by custom properties

Search for orders that have specific custom property values.

Endpoint: POST /api/Orders/SearchByCustomProperties

Parameters:

ParameterTypeLocationRequiredDescription
keystringqueryYesProperty key to search
valuestringqueryYesProperty value to match

Example request:

POST /api/Orders/SearchByCustomProperties?key=ErpReference&value=SAP-12345

For retrieving large result sets beyond the 10,000 document limit, use scroll search. This creates a point-in-time snapshot and allows paging through all results.

Endpoint: POST /api/Orders/Scroll

Request body: OmniumOrderSearchRequest

Response: 200 OK with a scroll result containing a scrollId for subsequent pages:

{
  "items": [ /* array of OmniumOrder */ ],
  "scrollId": "abc123..."
}

Get next scroll page:

Endpoint: GET /api/Orders/Scroll/{scrollId}

ParameterTypeLocationRequiredDescription
scrollIdstringpathYesScroll ID from previous response

Continue calling the scroll endpoint until the response returns an empty items array.

For more details on scroll search patterns, see Scrolling.


Update orders

Update order (with workflow)

Update an order and optionally execute the workflow associated with the order's current status transition.

Endpoint: POST /api/Orders/Update

Parameters:

ParameterTypeLocationRequiredDefaultDescription
runWorkflowboolqueryNofalseWhether to execute the workflow after update

Request body: OmniumOrder

Response: 200 OK with workflow execution result:

{
  "order": { /* updated OmniumOrder */ },
  "workflowExecutionResult": {
    "isSuccessful": true,
    "executedSteps": ["CapturePayment", "SendConfirmation"]
  }
}

When runWorkflow=true, the workflow steps configured for the order's status transition will execute automatically. This is the recommended way to progress orders through their lifecycle (e.g., from "New" to "InProgress" to "Shipped").


Overwrite order

Replace an existing order entirely. The full order object must be provided.

Endpoint: PUT /api/Orders/Update

Authorization: Order Admin

Request body: OmniumOrder

Response: 200 OK with workflow execution result

This replaces the entire order. Use Patch Order for partial updates to avoid overwriting data.


Update many orders (batch)

Update multiple orders in a single request, optionally running workflows.

Endpoint: POST /api/Orders/UpdateMany

Parameters:

ParameterTypeLocationRequiredDefaultDescription
runWorkflowboolqueryNofalseWhether to execute workflows

Request body: List<OmniumOrder>

Response: 204 No Content


Patch order

Perform a partial update to an order. Only the properties included in the request body are updated; all other properties remain unchanged.

Endpoint: PATCH /api/Orders/{orderId}/PatchOrder

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID

Request body: OmniumOrderPatch

Example request - update status and add a property:

{
  "id": "ORD-2024-000001",
  "status": "InProgress",
  "properties": [
    { "key": "ErpReference", "value": "SAP-12345" }
  ],
  "keepExistingCustomProperties": true
}

Response: 200 OK with patch result:

{
  "isSuccessful": true,
  "order": { /* updated OmniumOrder */ }
}

Patch order lines

Perform partial updates to one or more order lines.

Endpoint: PATCH /api/Orders/{orderId}/PatchUpdateOrderLines

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID

Request body: List of order line patches. Each item must include lineItemId to identify the line.

Example request:

[
  {
    "lineItemId": "1",
    "deliveredQuantity": 2,
    "serialNumber": "SN-12345"
  },
  {
    "lineItemId": "2",
    "canceledQuantity": 1,
    "cancelReason": "Out of stock"
  }
]

Response: 200 OK with update result


Patch line item IDs

Update the line item IDs on an order. Useful when mapping line items between systems.

Endpoint: POST /api/Orders/PatchLineItemIds

Request body: Object containing the order ID and a mapping of old to new line item IDs.


Order line operations

Add order line

Add a new order line to an existing order.

Endpoint: POST /api/Orders/{orderId}/OrderLines

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID
shipmentIdstringqueryNoShipment to add the line to

Request body: OmniumOrderLine

Example request:

{
  "lineItemId": "3",
  "code": "SKU-NEW",
  "displayName": "Additional Product",
  "placedPrice": 299.00,
  "quantity": 1,
  "taxRate": 25
}

Response: 200 OK with updated OmniumOrder


Add multiple order lines

Add multiple order lines in a single request.

Endpoint: POST /api/Orders/{orderId}/AddManyOrderLines

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID
shipmentIdstringqueryNoShipment to add lines to

Request body: List<OmniumOrderLine>

Response: 200 OK with updated OmniumOrder


Cancel order line

Cancel a single order line on an order.

Endpoint: POST /api/Orders/{orderId}/OrderLines/{lineItemId}/Cancel

Parameters:

ParameterTypeLocationRequiredDefaultDescription
orderIdstringpathYes-The order ID
lineItemIdstringpathYes-The line item ID to cancel
sendNotificationsboolqueryNofalseWhether to send cancellation notifications

Response: 200 OK with updated OmniumOrder


Cancel order lines (batch)

Cancel order lines across multiple orders in a single request.

Endpoint: POST /api/Orders/OrderLines/Cancel

Parameters:

ParameterTypeLocationRequiredDefaultDescription
sendNotificationsboolqueryNofalseWhether to send notifications

Request body: List of order line references (max 100 orders):

[
  { "orderId": "ORD-001", "lineItemId": "1" },
  { "orderId": "ORD-001", "lineItemId": "2" },
  { "orderId": "ORD-002", "lineItemId": "1" }
]

Response: 200 OK with count of cancelled lines


Add/update order line properties

Add or update custom properties on specific order lines.

Endpoint: PUT /api/Orders/{orderId}/AddOrderLineProperties

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID

Request body: List of line item property patches:

[
  {
    "lineItemId": "1",
    "properties": [
      { "key": "CustomField", "value": "CustomValue" }
    ]
  }
]

Response: 200 OK with updated OmniumOrder


Payment operations

Add payments

Add one or more payment transactions to an existing order.

Endpoint: POST /api/Orders/{orderId}/AddPayments

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID

Request body: List<OmniumPayment>

Example request:

[
  {
    "amount": 998.00,
    "paymentMethodName": "Klarna",
    "transactionId": "klarna-tx-67890",
    "transactionType": "Authorization",
    "status": "Processed"
  }
]

Response: 200 OK with updated OmniumOrder


Replace all payments

Replace the entire payment list on an order.

Endpoint: PUT /api/Orders/{orderId}/PutPayments

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID

Request body: List<OmniumPayment>

Response: 200 OK with updated OmniumOrder

This replaces ALL payments on the order. Use POST AddPayments to add new payments without removing existing ones.


Get payment options

Get available payment methods for an order based on market configuration.

Endpoint: GET /api/Orders/{orderId}/GetPaymentOptions

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID

Response: 200 OK with list of available payment options:

[
  {
    "paymentMethodName": "Klarna",
    "displayName": "Klarna - Pay later"
  },
  {
    "paymentMethodName": "Vipps",
    "displayName": "Vipps"
  }
]

Comments

Add comment

Add a comment to an order, optionally sending it as an SMS and/or email notification.

Endpoint: POST /api/Orders/AddComment

Request body:

{
  "orderId": "ORD-2024-000001",
  "comment": "Your order has been prepared for shipping.",
  "sendSms": false,
  "sendEmail": true
}

Response: 200 OK


Documents

Get order as PDF

Generate a PDF document for an order using a configured template.

Endpoint: GET /api/Orders/GetOrderAsPdf/{orderId}

Parameters:

ParameterTypeLocationRequiredDescription
orderIdstringpathYesThe order ID
templateFilestringqueryYesName of the PDF template file
shipmentIdstringqueryNoGenerate PDF for a specific shipment only

Response: 200 OK with application/pdf content, or 429 Too Many Requests if rate limited


Export orders

Export orders to a file based on search criteria.

Endpoint: POST /api/Orders/ExportOrders

Request body: Export request containing search filters and export format configuration.


Delete order

Delete an order. By default, orders are soft-deleted (marked as deleted but retained). Use the deletePermanently flag for permanent removal.

Endpoint: DELETE /api/Orders/{orderId}

Authorization: Order Admin

Parameters:

ParameterTypeLocationRequiredDefaultDescription
orderIdstringpathYes-The order ID
deletePermanentlyboolqueryNofalseIf true, permanently removes the order

Response: 200 OK

Permanently deleted orders cannot be recovered. Soft-deleted orders can be restored.


Models

Order model

The main order object used for creating, updating, and retrieving orders.

Core properties

PropertyTypeRequiredDescription
IdstringYesUnique order identifier across all markets
OrderNumberstringNoUser-friendly order number (auto-generated if omitted on PUT)
CustomerIdstringNoCustomer identifier
CustomerNumberstringNoUser-friendly customer number
CustomerNamestringNoCustomer full name
CustomerPhonestringNoCustomer phone with prefix (e.g., "+4740000000")
CustomerEmailstringNoCustomer email address
CustomerTypestringNo"B2B" or "B2C"
MarketIdstringYesMarket identifier (e.g., "NOR", "SWE", "US")
StoreIdstringYesStore identifier for the selling store
BillingCurrencystringNoCurrency code (e.g., "NOK", "SEK", "EUR")
StatusstringYesOrder status (e.g., "New", "InProgress", "Shipped", "Completed", "Cancelled")
OrderTypestringYesOrder type matching a configured workflow (e.g., "Online", "Pos", "ClickAndCollect")
OrderOriginstringNoSource of the order: "OMS", "ERP", "WEB", or "POS"
SalesChannelstringNoSales channel identifier

Address and contact

PropertyTypeDescription
BillingAddressOmniumOrderAddressBilling address
ContactPersonOmniumContactPersonContact person details

Order content

PropertyTypeDescription
OrderFormOmniumOrderFormContains line items, shipments, payments, and discounts
ReturnOrderFormsList<OmniumReturnOrderForm>Return order forms (max 250)
GroupsList<OmniumOrderGroup>Order line groups

Dates

PropertyTypeDescription
CreatedDateTimeOrder creation date
ModifiedDateTimeLast modified date (calculated)
ReceivedDateTime?Date order was received
CompletedDateTime?Completion date (calculated)
FollowUpDateDateTime?Follow-up reminder date
RequestedDeliveryDateDateTime?Customer's requested delivery date
ReadyForPickupDateTime?Date order became ready for pickup (calculated)
CustomerPickupDeadlineDateTime?Pickup deadline (calculated)

Totals (calculated)

PropertyTypeDescription
RemainingPaymentdecimalOutstanding payment amount
LineItemsCostdecimalTotal cost of all line items
NetTotaldecimalOrderForm total minus return totals
NetTotalExclTaxdecimalNet total excluding tax

Sales

PropertyTypeDescription
SalesPersonIdstringSales person identifier
SalesPersonNamestringSales person name
CustomerClubMemberIdstringLoyalty club membership ID
CustomerReferencestringCustomer's reference number
CustomerRequisitionstringCustomer's requisition number
PaymentTermsNetint?Invoice due date in days
InvoiceCommentstringComment to appear on invoice

Metadata

PropertyTypeDescription
OrderNotesList<OmniumComment>Internal notes (max 250)
PublicOrderNotesList<OmniumComment>Customer-visible notes (max 250)
PropertiesList<OmniumPropertyItem>Custom key-value properties (max 250)
ExternalIdsList<OmniumExternalId>External system references (max 250)
TagsList<string>Tags for categorization (max 250)
AssetsList<OmniumAsset>Attached documents, media, files (max 250)
ErrorsList<OmniumEntityError>Processing errors (max 250)
RelatedOrdersList<string>Related order IDs (max 250)
ReplacementOrderIdsList<string>Replacement order IDs (max 250)
ProjectIdsList<string>Associated project IDs (max 250)
SubscriptionIdstringSubscription identifier
SessionstringWeb session reference
SecretKeystringSecure key for guest order lookup

Flags

PropertyTypeDescription
IsReadOnlyboolIf true, order cannot be modified
IsNotificationsDisabledboolIf true, notifications are suppressed
IsNewCustomerbool?Whether the customer is new (calculated)

Read-only

PropertyTypeDescription
VersionIdstringCurrent version identifier
ModifiedBystringUser/system that last modified the order

Order form model

The order form contains the commercial content of the order.

PropertyTypeDescription
LineItemsList<OmniumOrderLine>Products in the order (max 1000)
ShipmentsList<OmniumShipment>Shipping selections (max 250)
PaymentsList<OmniumPayment>Payment transactions (max 250)
DiscountsList<OmniumDiscount>Applied discounts (max 250)
CartIdstringSource cart ID if created from cart
CartNamestringCart/offer name
PurchaseOrderIdstringPurchase order reference
CouponCodesList<string>Applied coupon codes (max 250)
PropertiesList<OmniumPropertyItem>Custom properties (max 250)
IsPrioritybool?Whether the order is marked as priority
FullRefundboolWhether the order is fully refunded

Calculated totals

PropertyTypeDescription
SubTotaldecimalSum of line item extended prices
SubTotalExclTaxdecimalSubtotal excluding tax
TotaldecimalFinal order total
TotalExclTaxdecimalTotal excluding tax
TaxTotaldecimalTotal tax amount
DiscountAmountdecimalTotal discount amount
ShippingSubTotaldecimalShipping cost before discounts
ShippingDiscountTotaldecimalTotal shipping discounts
ShippingTotaldecimalNet shipping cost
HandlingTotaldecimalHandling fees
AuthorizedPaymentTotaldecimalTotal authorized payment amount
CapturedPaymentTotaldecimalTotal captured payment amount
CreditPaymentTotaldecimalTotal credited/refunded amount

Order line model

Represents a product line item in the order.

Identification

PropertyTypeRequiredDescription
LineItemIdstringYesUnique line item identifier
CodestringNoProduct SKU / article number
ProductIdstringNoProduct identifier
GtinsList<string>NoGTIN/barcode numbers
ExternalIdsList<OmniumExternalId>NoExternal system references (max 250)

Product details

PropertyTypeDescription
DisplayNamestringProduct name
AlternativeProductNamestringAlternative display name
BrandstringProduct brand
SizestringSize variant
ColorstringColor variant
ProductTypestringProduct type/category
ImageUrlstringProduct image URL
WebSiteProductUrlstringURL to product on website
SerialNumberstringProduct serial number

Pricing

PropertyTypeDescription
PlacedPricedecimalUnit price (before discounts, not multiplied by quantity)
PlacedPriceExclTaxdecimalUnit price excluding tax (calculated)
DiscountedPricedecimalTotal after line-level discounts (calculated)
DiscountedPriceExclTaxdecimalDiscounted price excluding tax (calculated)
ExtendedPricedecimalFinal line total including all discounts (calculated)
ExtendedPriceExclTaxdecimalExtended price excluding tax (calculated)
SuggestedRetailPricedecimalRecommended retail price (informational)
OrderDiscountAmountdecimalOrder-level discount apportioned to this line (calculated)
CreditedAmountdecimalAmount credited/refunded (calculated)
TaxRatedecimal?Tax rate percentage (e.g., 25.00)
TaxTotaldecimalTax amount (calculated)
CostdecimalProduct cost per unit
CostTotaldecimalTotal cost (calculated)

Quantities

PropertyTypeDescription
QuantitydecimalOrdered quantity
DeliveredQuantitydecimalQuantity delivered
ReturnQuantitydecimalQuantity returned
CanceledQuantitydecimalQuantity cancelled
ReadyForPickupQuantitydecimal?Quantity ready for pickup
ReservedInventoryQuantitydecimalQuantity reserved in inventory (calculated)

Units of measure

PropertyTypeDescription
UnitstringBase unit (e.g., "Pcs", "Meter", "Litre")
SelectedUnitstringCustomer-selected unit
SelectedUnitConversionFactordecimal?Conversion factor to base unit
SelectedUnitQuantitydecimal?Quantity in selected unit

Cancellation

PropertyTypeDescription
CanceledQuantitydecimalQuantity cancelled
CanceledDateDateTime?Cancellation date
CancelReasonstringReason for cancellation
CancelCommentstringAdditional cancellation details

Return

PropertyTypeDescription
ReturnQuantitydecimalQuantity returned
ReturnReasonstringReason for return
ReturnDateDateTime?Return date
ReturnTypestringType of return

Replacement

PropertyTypeDescription
ReplacedQuantitydecimal?Quantity replaced
ReplacedDateDateTime?Replacement date
ReplacementTypestringType of replacement
ReplacementReasonstringReason for replacement

Supplier

PropertyTypeDescription
SupplierIdstringSupplier identifier
SupplierSkuIdstringSupplier's SKU
SupplierNamestringSupplier name

Dates

PropertyTypeDescription
ExpectedDeliveryDateDateTime?Expected delivery date
RequestedDeliveryDateDateTime?Requested delivery date
ReadyForPickupDateDateTime?Ready for pickup date
DeliveredDateDateTime?Actual delivery date
CustomerPickupDeadlineDateTime?Pickup deadline

Flags

PropertyTypeDescription
IsGiftboolLine is a gift
IsBackorderboolLine is on backorder
IsBundleboolLine is a bundle product
IsPackageProductboolLine is a package product
IsVirtualProductboolLine is a virtual/digital product
IsConfigurableProductboolLine is configurable
IsReadOnlyboolLine cannot be modified
UpdateStockboolWhether to update inventory
CreatePurchaseOrderbool?Whether to create a purchase order

Discounts and promotions

PropertyTypeDescription
DiscounteddecimalLine-level discount amount
DiscountedExclTaxdecimalLine-level discount excluding tax
OrderLineDiscountsList<OmniumOrderLineDiscount>Detailed discount breakdown (max 250)
OrderLineBonusPointsOmniumOrderLineBonusPoints?Bonus points for this line
CampaignIdstringAssociated campaign
IsExcludedFromPromotionsbool?Whether excluded from automatic promotions
DiscountReasonCodestring?Reason code for manual discounts

Other

PropertyTypeDescription
CommentstringLine item comment
PropertiesList<OmniumPropertyItem>Custom properties (max 250)
ComponentsList<OmniumProductComponent>Bundle/package components (max 250)
GroupIdstringGroup identifier for grouping lines
ModifiedReasonstringReason for last modification
InternalWarehouseLocationstring?Warehouse location reference

Payment model

Represents a payment transaction on the order.

PropertyTypeRequiredDescription
AmountdecimalYesTransaction amount
PaymentMethodNamestringYesPayment provider name (e.g., "Klarna", "Vipps", "Stripe")
TransactionIdstringYesPayment provider's transaction reference
TransactionTypestringYesSee Transaction Types
StatusstringYes"Processed", "Failed", "Pending", "Paid", "Approved"
IdstringNoOmnium-assigned payment ID
PaymentTypestringNoPayment category (e.g., "Invoice", "Card", "Swish")
AuthorizationCodestringNoProvider authorization reference
PaidDateDateTime?NoDate payment was completed
CreatedDateTime?NoTransaction creation date
AuthorizationExpiresDateTime?NoWhen the authorization expires
CommentstringNoPayment comment
ReasonstringNoReason for the transaction (e.g., "Return of damaged item")
InternalReferencestringNoInternal reference number
InvoiceIdstringNoAssociated invoice ID
StoreIdstringNoStore where payment was made
ShipmentIdstringNoAssociated shipment
IsManuallyAddedboolNoWhether payment was added manually
PropertiesList<OmniumPropertyItem>NoCustom properties (max 250)
ExternalIdsList<OmniumExternalId>NoExternal system references (max 250)
OrderLineReferencesList<OmniumPaymentOrderLineReference>NoOrder lines this payment applies to (for returns)

Transaction types

TypeUsageDescription
AuthorizationE-commercePayment reserved but not yet charged
CaptureFulfillmentPayment charged from customer
SalePOSImmediate capture (no separate authorization)
CreditReturnsRefund back to customer
InvoicedInvoiceInvoice-based payment
VoidCancellationAuthorization cancelled

For a full explanation of the payment lifecycle, see Order API Guide - Payments.


Address model

PropertyTypeDescription
NamestringFull name
FirstNamestringFirst name
LastNamestringLast name
OrganizationstringCompany/organization name
OrganizationalNumberstringVAT/company registration number
Line1stringAddress line 1
Line2stringAddress line 2
StreetNumberstringStreet number
ApartmentNumberstringApartment/unit number
CitystringCity
StatestringState/province
PostalCodestringPostal/ZIP code
CountryCodestringISO country code (e.g., "NO", "SE", "DK")
CountryNamestringCountry name
RegionCodestringRegion code
RegionNamestringRegion name
DaytimePhoneNumberstringPhone number
EveningPhoneNumberstringAlternative phone number
EmailstringEmail address

Patch model

Used with the Patch Order endpoint for partial updates. Includes the same properties as the order model, plus these control properties:

PropertyTypeDefaultDescription
KeepExistingCustomPropertiesbool?trueIf true, existing custom properties not in the patch are preserved
KeepExistingListItemsbool?trueIf true, existing list items (e.g., ExternalIds) are preserved
ForceUpdateList<string>-Property names to force-update even when the patch value is null
PropertiesRemovalConditionsList<OmniumPropertyItem>-Properties matching these conditions will be removed

When keepExistingCustomProperties is true (default), any properties you include in the patch are merged with existing properties. Set it to false to replace the entire properties list.


Search request model

Used with the Search and Scroll endpoints.

Pagination and sorting

PropertyTypeDefaultDescription
Takeint20Number of results per page (max 100)
Pageint1Page number
SortOrderstring-Sort order (see values below)
DisableFacetsbool?falseDisable facet calculation for faster queries

Sort order values: CreatedAscending, CreatedDescending, ModifiedAscending, ModifiedDescending, CustomerNameAscending, CustomerNameDescending, StatusAscending, StatusDescending, OrderIdAscending, OrderIdDescending, StoreAscending, StoreDescending, TotalAscending, TotalDescending

Filters

PropertyTypeDescription
SearchTextstringFree-text search across order fields
OrderNumberstringExact order number match
SelectedStoresList<string>Filter by store IDs
SelectedStatusesList<string>Include only these statuses
ExcludedStatusesList<string>Exclude these statuses
SelectedMarketsList<string>Filter by market IDs
OrderTypestringFilter by order type
SalesChannelsList<string>Filter by sales channels
TagsList<string>Filter by tags
ExcludedTagsList<string>Exclude orders with these tags

Customer filters

PropertyTypeDescription
EmailstringCustomer email
PhonestringCustomer phone
CustomerNamestringCustomer name (partial match)
CustomerNumberstringCustomer number
CustomerIdstringExact customer ID
CustomerIdsList<string>Multiple customer IDs
ContactPersonPhonestringContact person phone
ContactPersonEmailstringContact person email
SalesPersonIdstringSales person ID

Date filters

PropertyTypeDescription
CreatedFromDateTime?Orders created on or after
CreatedToDateTime?Orders created on or before
ModifiedFromDateTime?Orders modified on or after
ModifiedToDateTime?Orders modified on or before
ReadyForPickupFromDateTime?Ready for pickup on or after
ReadyForPickupToDateTime?Ready for pickup on or before
CompletedFromDateTime?Completed on or after
CompletedToDateTime?Completed on or before
FollowUpDateFromDateTime?Follow-up date on or after
FollowUpDateToDateTime?Follow-up date on or before

Product filters

PropertyTypeDescription
ProductNumbersList<string>Filter by product SKUs
ProductSerialNumbersList<string>Filter by serial numbers
ProductTypesList<string>Filter by product types

Payment filters

PropertyTypeDescription
PaymentStatusesList<string>"OverPaid", "Paid", "NotPaid", "PartiallyPaid"
PaymentTransactionTypesList<string>"Authorization", "Capture", etc.
PaymentTransactionStatusstring"Failed"
PaymentTransactionDateFromDateTime?Payment date range start
PaymentTransactionDateToDateTime?Payment date range end
ShowOrdersWithAuthExpiresboolShow orders with expiring authorizations

Other filters

PropertyTypeDescription
InventoryStatusstring"InStock", "PartiallyInStock", "NotInStock"
ShippingMethodNamesList<string>Filter by shipping methods
SelectedDiscountsList<string>Filter by applied discounts
ExternalIdsList<string>Filter by external IDs
ShipmentExternalIdsList<string>Filter by shipment external IDs
UrgentboolOnly urgent orders
FutureDeliveriesboolOrders with future delivery dates
HasErrorsboolOrders with errors
PropertyOmniumPropertyItemFilter by single custom property
PropertiesList<OmniumPropertyItem>Filter by multiple custom properties
ProjectIdstringFilter by project
SubscriptionIdstringFilter by subscription
PicklistIdsList<string>Filter by picklist
SecretKeystringFilter by secret key

Error handling

The Order API uses standard HTTP status codes:

StatusMeaning
200Success
201Created (new order)
204No Content (batch operations)
400Bad Request (invalid parameters or validation failure)
404Order not found
409Conflict (concurrent modification)
429Too Many Requests (rate limited)
500Internal Server Error

Concurrency control

Most write operations use resource locking to prevent concurrent modifications. If another process is currently modifying the same order, you will receive a 409 Conflict response. Retry the operation after a short delay.


Pagination limits

ConstraintValue
Default page size20
Maximum page size100
Maximum search window10,000 results (take * page)
Scroll APIUnlimited (use for large exports)
Batch cancel limit100 orders per request
Max line items per order1,000
Max list items (payments, shipments, etc.)250

On this page