Skip to content

Orders

Document representing orders from POS. An order is the primary transaction entity containing line items (products sold) and payment transactions. Orders are stored in daily JSON files organized by business date.

Storage Location

{customer_id}/order/{year}/{month}/{yyyymmdd}.json

Fields

FieldTypeRequiredDescription
idguidYesGUID of order. Unique key.
soidintegerYesUnique order id. Increments and can be used as a high-water mark for incremental loading.
soguidguidYesSame value as id. For internal purposes.
customer_idintegerYesReference to Customer. Entity owning the order. Partition key.
terminal_idintegerYesReference to Terminal that committed the order.
short_keyintegerNoShort key for order lookup.
receipt_numstringYesSerial number from receipt.
namestringNoName set on order in POS. Can contain order-split info (/1, /2 etc).
statestringYesOrder state. Values: committed, cancelled.
typestringYesOrder type. Values: sales, refund, deposit, invoice, internalsales.
openeddatetimeYesDate and time order was opened (created) at local POS.
closeddatetimeYesDate and time order was committed or cancelled.
closed_business_datedateYesThe business date order was committed/cancelled. Business date can differ from closed date when opening hours extend past local midnight.
closed_by_user_idguidYesReference to user who committed the order.
closed_by_usernamestringNoUsername who committed the order (denormalized).
receipt_typestringYesReceipt type. Values: cash, credit.
revenue_unit_idintegerNoReference to RevenueUnit.
revenue_unit_namestringNoName of revenue unit at time of order (denormalized).
order_type_idintegerNoReference to OrderType.
order_type_namestringNoName of order type (denormalized).
order_channelstringNoChannel that originated the order. Typical values: pos, external.
order_source_namestringNoSource of order. Typical values: pos, external.
delivery_typestringNoDelivery type. Values: inhouse, takeaway.
table_idintegerNoReference to table in local installation (resource).
guest_count_registeredintegerNoNumber of guests input by operator.
guest_count_calculatedintegerNoNumber of guests based on system config and calculation.
ready_timedatetimeNoOrder ready time for pickup or delivery.
discount_amountfloatNoTotal discount amount (gross) given on order.
discount_reasonstringNoInformation about % discount given. Not for calculations, use discount_amount.
discount_reason_idintegerNoReference to discount reason.
discount_commentstringNoComment about discount.
corr_countintegerNoCount of line corrections performed.
corr_amountfloatNoSum amount (gross) of line corrections performed.
cd_open_countintegerNoCash drawer open count. Does not count openings due to cash payment.
cancel_reason_idintegerNoReference to reason code for cancelling order.
cancel_commentstringNoComment given by operator when cancelling order.
refund_of_soguidguidNoReference to soguid this order is refunding.
refund_user_idguidNoUser ID who processed refund.
refund_usernamestringNoUsername who processed refund.
refund_commentstringNoComment about refund.
refund_approved_user_idguidNoUser ID who approved the refund.
customer_client_guidguidNoReference to CustomerClient tagged to order.
external_payment_refstringNoReference value from external payment solution.
webshop_store_namestringNoName of Munu Webshop store that produced the order.
linesarrayYesArray of line items. See Lines.
paymentsarrayYesArray of payment transactions. See Payments.

State Values

ValueDescription
committedOrder successfully completed
cancelledOrder was cancelled

Type Values

ValueDescription
salesStandard sales order
refundRefund/return transaction
depositDeposit payment
invoiceInvoice-based order
internalsalesInternal sales (staff purchases, etc.)

Example

json
{
  "soid": 188160255,
  "id": "87b397da-594d-4f48-8c0b-dcaabf442935",
  "customer_id": 10352,
  "terminal_id": 26023,
  "short_key": 67688979,
  "soguid": "87b397da-594d-4f48-8c0b-dcaabf442935",
  "receipt_num": "100182917",
  "state": "committed",
  "type": "cash",
  "opened": "2026-01-19T17:24:09",
  "closed": "2026-01-20T06:54:49",
  "closed_by_user_id": "26647814-d29d-e755-e063-0a01000ab9cc",
  "closed_by_username": "PAULINA MUCAJ",
  "closed_business_date": "2026-01-20T00:00:00",
  "receipt_type": "cash",
  "revenue_unit_id": 5307,
  "revenue_unit_name": "BB Kanelsnurren Østbanehallen Oslo",
  "order_type_name": "-",
  "order_channel": "pos",
  "order_source_name": "pos",
  "corr_count": 0,
  "corr_amount": 0,
  "discount_amount": 0,
  "cd_open_count": 3,
  "guest_count_calculated": 1,
  "lines": [
    {
      "solid": 380019009,
      "article_id": 584758,
      "article_ext_num": "4202",
      "article_name": "Latte",
      "quantity": 1,
      "tax_pct_value": 15,
      "net_amount": 54.78,
      "gross_amount": 63,
      "discount_amount": 0,
      "account_id": 35116,
      "cost_price": 0,
      "line_item_guid": "b33f64cd-2829-4b6b-a269-ca9bc3ad714f",
      "line_added_time": "2026-01-20T06:54:36",
      "base_net_amount": 54.78,
      "base_gross_amount": 63,
      "total_net_amount": 54.78,
      "total_gross_amount": 63,
      "comment": "Enkel\r\nLettmelk\r\n"
    }
  ],
  "payments": [
    {
      "soptid": 187434642,
      "payment_type_id": 2,
      "amount": 63,
      "change": 0,
      "rounding": 0,
      "tip": 0,
      "cashback": 0,
      "card_type_name": "BankAxept *",
      "payment_guid": "a17b1666-550b-4fbe-8ec8-a93a90fc5218",
      "account_id": 35068,
      "account_num": 1923,
      "account_description": "Bankkort",
      "card_ident_string": "957852********8872",
      "psp_ref": "010288059334402026012017688884740180476000001"
    }
  ]
}

Example - Order with Modifiers

This example shows an order where a Latte has modifiers (extra shot and syrup) as child line items:

json
{
  "soid": 188160264,
  "id": "7a77d63e-d5d2-4a9d-8fee-0943270fef99",
  "customer_id": 10352,
  "terminal_id": 26346,
  "receipt_num": "100101564",
  "state": "committed",
  "type": "cash",
  "closed_business_date": "2026-01-20T00:00:00",
  "revenue_unit_name": "BB Gjelleråsen",
  "lines": [
    {
      "solid": 380019033,
      "article_id": 584758,
      "article_name": "Latte",
      "quantity": 1,
      "gross_amount": 63,
      "total_gross_amount": 85
    },
    {
      "solid": 380019035,
      "article_id": 590397,
      "article_name": "Ekstra shot",
      "quantity": 1,
      "gross_amount": 10,
      "parent_solid": 380019033
    },
    {
      "solid": 380019034,
      "article_id": 585437,
      "article_name": "Karamel sirup",
      "quantity": 1,
      "gross_amount": 12,
      "parent_solid": 380019033
    }
  ],
  "payments": [
    {
      "payment_type_id": 2,
      "amount": 85,
      "card_type_name": "Visa"
    }
  ]
}

Incremental Loading

Use soid as a high-water mark for incremental data fetching. The soid value increments monotonically and can be used to fetch only new orders since the last sync.

Technical documentation for partners and integrators