---
title: "Order item data model"
slug: "order-item-data-model"
abstract: "Describes the standard data model for order items (Sitecore CDP Batch API)."
---
# Order item data model

When you create a batch file, ensure that you include all [required attributes](https://doc.sitecore.com/cdp/en/developers/api/batch-api/batch-api-offline-orders/batch-file-formatting-requirements.html#UUID-4499e082-be7d-9ebb-4936-c178936c1e06_para-idm1903351877649584) in addition to any attributes from the following table:

::::tabs
:::tab{title="2.1"}

| Attribute | Description | Type | Example(s) | Insert | Upsert | Migration |
| --- | --- | --- | --- | --- | --- | --- |
| `type` | The type of order item. The accepted values must be predefined for your organization in the schema. | string (uppercase) | `"FLIGHT"` | Required | Not supported | Not supported |
| `productId` | The ID of the product code. | string | `"DUB-LAS"` | Required | Not supported | Not supported |
| `name` | The name of the order item. A free text value for the name of the order item. Max limit: 128 | string (title case recommended) | `"flight"` | Required | Not supported | Not supported |
| `description` | A description of the order items. | string (title case recommended) | `"individualSegments"` | Required | Not supported | Not supported |
| `vendor` | The organization that is selling the order item. | string (title case recommended) | `"Company ABC"` | Required | Not supported | Not supported |
| `orderedAt` | The date and time the order item was made. | ISO 8601 Date/Time UTC | `"2026-03-07T16:`15:11`.000Z"` | Optional | Not supported | Not supported |
| `quantity` | The number or quantity of the order item. | number | `2` | Optional | Not supported | Not supported |
| `price` | The organization’s price for the order item. | number (currency) | `50, 30.6, -45` | Required | Not supported | Not supported |
| `currencyCode` | The organization’s currency code for the order item. | 3 letter ISO 4217 | `"EUR", "NZD", "USD"` | Required | Not supported | Not supported |
| `originalPrice` | The unit price of the order item before conversion to the organization's currency. | number (currency) | `100` | Optional | Not supported | Not supported |
| `originalCurrencyCode` | The original currency code for the order item. | 3 letter ISO 4217 | `"EUR", "NZD", "USD"` | Optional | Not supported | Not supported |
| `referenceId` | An ID generated by the client to reference the order item. | string | `"B94TXY-1"` | Required | Not supported | Not supported |
| `status` | The status of the order item. | string (uppercase) | `"PURCHASED", "CONFIRMED", "REFUNDED", "CANCELLED"` | Required | Optional | Not supported |
| `channel` | The channel used in the order. | string (uppercase) | `"AIRPORT_KIOSK", "BRANCH", "CALL_CENTER", "GDS", "KIOSK", "MOBILE_APP", "MOBILE_WEB", "OFFLINE", "OTA", "OTHER", "WEB"` | Optional | Not supported | Not supported |
| `language` | The language used when making the order. | 2 letter ISO 639 language code (uppercase) | `"EN", "FR", "DE"` | Optional | Not supported | Not supported |

Here's a JSON example that includes Personally Identifiable Information (PII) and uses `insert` mode for a flight order item:

```json
{
   "ref":"056621C2-C955-492D-B7EE-C77C6BDDFDEE",
   "schema":"order",
   "mode":"insert",
   "value":{
      "referenceId":"BXTOF9",
      "channel":"WEB",
      "pointOfSale":"spinair.com",
      "status":"PURCHASED",
      "orderedAt":"2026-03-07T16:`15:11`.000Z",
      "currencyCode":"EUR",
      "price":50,
      "paymentType":"Card",
      "cardType":"Visa",
      "contact":{
         "title":"Mr",
         "firstName":"John",
         "lastName":"Doe",
         "gender":"male",
         "dateOfBirth":"1985-12-24T00:00Z",
         "email":"john.doe@sitecore.com",
         "phoneNumbers":[
            "+353161123345",
            "+353861123311"]
},
       "orderItems":[
            {
               "type":"FLIGHT",
               "productId":"DUB-LAS",
               "name":"flight",
               "description":"individualSegments",
               "vendor":"Company ABC",
               "orderedAt":"2026-03-07T16:`15:11`.000Z",
               "quantity":1,
               "price":50.00,
               "currencyCode":"EUR",
               "originalPrice":100.00,
               "originalCurrencyCode":"EUR",
               "referenceId":"B94TXY-1",
               "status":"PURCHASED",
               "consumerTypeCode":"ADT",
               "flightSegments":[
                  {
                     "id":"1234",
                     "origin":"DUB",
                     "destination":"LHR",
                     "departureDateTime":"2026-08-15T16:00Z",
                     "arrivalDateTime":"2026-08-15T17:20Z",
                     "flightNumber":"459",
                     "fareClass":"Economy",
                     "fareFamily":"Plus",
                     "carrier":"FR",
                     "originDestination":"DUB-LHR"
                  },
                  {
                     "id":"1235",
                     "origin":"LHR",
                     "destination":"LAS",
                     "departureDateTime":"2026-08-15T20:00Z",
                     "arrivalDateTime":"2026-08-15T22:30Z",
                     "flightNumber":"460",
                     "fareClass":"Economy",
                     "fareFamily":"Plus",
                     "carrier":"FR",
                     "originDestination":"LHR-LAS"
                  }
               ]
            }
         ]
      }
   }

```

Here's a JSON example that includes the `identifiers` attribute and uses `insert` mode for an order item:

```json
{
   "ref":"056621C2-C955-492D-B7EE-C77C6BDDFDEE",
   "schema":"order",
   "mode":"insert",
   "value":{
      "referenceId":"BET_001-1",
      "channel":"WEB",
      "pointOfSale":"spinbet.com",
      "status":"PURCHASED",
      "orderedAt":"2026-03-07T16:`15:11`.000Z",
      "currencyCode":"EUR",
      "price":50,
      "paymentType":"Card",
      "cardType":"Visa",
      "contact":{
         "identifiers":[
            {
               "provider":"IDENTITY_SYSTEM",
               "id":"B7524AE6-CF1C-440F-B1A2-0C9D42F5CB41",
               "expiryDate":"2025-08-23T16:`17:16`.000Z"
            },
            {
               "provider":"CRM",
               "id":"123456789t"
            }
         ]
      },
      "orderItems":[
         {
            "type":"BET_001-1",
            "productId":"CORRECT_SCORE",
            "name":"Exact score after 90 minutes",
            "description":"footballBets",
            "vendor":"Company ABC",
            "orderedAt":"2026-03-07T16:`15:11`.000Z",
            "quantity":1,
            "price":50.00,
            "currencyCode":"EUR",
            "originalPrice":100.00,
            "originalCurrencyCode":"EUR",
            "referenceId":"BET_001-1",
            "status":"PURCHASED"
         }
      ]
   }
}

```

:::
:::tab{title="2.0"}

| Attribute | Description | Type | Example(s) | Insert | Upsert | Migration |
| --- | --- | --- | --- | --- | --- | --- |
| `type` | The type of order item. | string (uppercase with underscore if more than one word) | `"FLIGHT", "HOTEL", "CAR", "BAG", "INSURANCE", "CAR_SEAT", "MEAL", "FEE", "LOUNGE_ACCESS", "HOTEL_WIFI", "HOTEL_BREAKFAST", "SEAT_UPGRADE", "TAXI", "PARKING", "SEAT", "UPGRADE", "TRANSPORT", "OTHER", "INFLIGHT_ENTERTAINMENT", "ACTIVITY", "CARBON_OFFSET", "PAID_SUBSCRIPTION", "COMFORT_PACK", "INFLIGHT_VOUCHER", "PACKAGE", "SMS_ITINERARY", "SPECIAL_ASSISTANCE", "CHARITY_DONATION", "TRANSFER"*Deprecated:"BAGGAGE", "FEES", "SEAT_UPGRADES", "INFLIGHT_VOUCHERS"` | Required | Not supported | Not supported |
| `productId` | The ID of the product code. | string | `"DUB-LAS"` | Required | Not supported | Not supported |
| `quantity` | The number or quantity of the order item. | number | `2` | Optional | Not supported | Not supported |
| `orderedAt` | The date and time the order item was made. | ISO 8601 Date/Time UTC | `"2026-01-01T16:`17:16`.000Z"` | Optional | Not supported | Not supported |
| `price` | The organization’s price for the order item. | number (currency) | `50, 30.6, -45` | Required | Not supported | Not supported |
| `currencyCode` | The organization’s currency code for the order item. | 3 letter ISO 4217 | `"EUR", "NZD", "USD"` | Required | Not supported | Not supported |
| `originalPrice` | The unit price of the order item before conversion to the organization's currency. | number (currency) | `100` | Optional | Not supported | Not supported |
| `originalCurrencyCode` | The original currency code for the order item. | 3 letter ISO 4217 | `"EUR", "NZD", "USD"` | Optional | Not supported | Not supported |
| `referenceId` | An ID generated by the client to reference the order item. | string | `"B94TXY-1"` | Required | Not supported | Not supported |
| `vendor` | The organization that is selling the order item. | string (title case recommended) | `"Company ABC"` | Optional | Not supported | Not supported |
| `status` | The status of the order item. | string (uppercase) | `"RESERVED", "PENDING", "DECLINED", "CONFIRMED", "CANCELLED", "REFUNDED", "PURCHASED", "UNKNOWN"` | Required | Not supported | Not supported |
| `channel` | The channel used in the order. | string (uppercase) | `"AIRPORT_KIOSK", "BRANCH", "CALL_CENTER", "GDS", "KIOSK", "MOBILE_APP", "MOBILE_WEB", "OFFLINE", "OTA", "OTHER", "WEB"` | Optional | Not supported | Not supported |
| `language` | The language used when making the order. | 2 letter ISO 639 language code (uppercase) | `"EN", "FR", "DE"` | Optional | Not supported | Not supported |
| `name` | The name of the order item. A free text value for the name of the order item. Max limit: 128 | string (title case recommended) | `"Insurance"` | Optional | Not supported | Not supported |
| `description` | A description of the order items. | string (title case recommended) | `"Family Insurance"` | Optional | Not supported | Not supported |
| `consumerTypeCode` | The code used to represent the type of passenger. Only applicable for flight. | string (uppercase) | `"ADT", "CHD", "INF", "INS"` | Optional/Required depending on product category | Not supported | Not supported |
| `flightSegments` | A list of flight segments associated with the order item. Only applicable for flight orders. | JSON array of JSON objects | N/A | Optional | Not supported | Not supported |
| `tripType` (deprecated) | The type of trip the guest is taking. | string (uppercase) | `"OW", "RT"` | Deprecated | Deprecated | Deprecated |

The Batch API matches orders that have the same `referenceId` values, for example, the Passenger Number Record (PNR), and have `orderedAt` values (purchase dates) within 24 hours of another.

```json
{
   "ref":"056621C2-C955-492D-B7EE-C77C6BDDFDEE",
   "schema":"order",
   "mode":"insert",
   "value":{
      "referenceId":"B94TXY",
      "channel":"WEB",
      "pointOfSale":"spinair.com",
      "status":"PURCHASED",
      "orderedAt":"2026-08-23T16:`17:16`.000Z",
      "currencyCode":"EUR",
      "price":50,
      "paymentType":"Card",
      "cardType":"Visa",
      "contact":{
         "title":"Mr",
         "firstName":"John",
         "lastName":"Doe",
         "gender":"male",
         "dateOfBirth":"1985-12-24T00:00Z",
         "email":"john.doe@sitecore.com",
         "phoneNumbers":[
            "+353161123345",
            "+353861123311"
         ],
         "identifiers":[
            {
               "provider":"IDENTITY_SYSTEM",
               "id":"B7524AE6-CF1C-440F-B1A2-0C9D42F5CB41",
               "expiryDate":"2025-08-23T16:`17:16`.000Z"
            },
            {
               "provider":"Loyalty Program",
               "id":"123456789t"
            }
         ]
      },
      "consumers":[
         {
            "title":"Mr",
            "firstName":"John",
            "lastName":"Doe",
            "identifiers":[
               {
                  "provider":"IDENTITY_SYSTEM",
                  "id":"B7524AE6-CF1C-440F-B1A2-0C9D42F5CB41",
                  "expiryDate":"2025-08-23T16:`17:16`.000Z"
               }
            ],
            "orderItems":[
               {
                  "referenceId":"B94TXY-1-item001"
               }
            ]
         }
      ],
      "orderItems":[
         {
            "type":"FLIGHT",
            "productId":"DUB-LAS",
            "orderedAt":"2026-01-01T16:`17:16`.000Z",
            "quantity":1,
            "price":50.00,
            "currencyCode":"EUR",
            "originalPrice":100.00,
            "originalCurrencyCode":"EUR",
            "referenceId":"B94TXY-1-item001",
            "status":"PURCHASED",
            "consumerTypeCode":"ADT",
            "flightSegments":[
               {
                  "id":"1234",
                  "origin":"DUB",
                  "destination":"LHR",
                  "departureDateTime":"2026-08-15T16:00Z",
                  "arrivalDateTime":"2026-08-15T17:20Z",
                  "flightNumber":"459",
                  "fareClass":"Economy",
                  "fareFamily":"Plus",
                  "carrier":"FR",
                  "originDestination":"DUB-LHR"
               },
               {
                  "id":"1235",
                  "origin":"LHR",
                  "destination":"LAS",
                  "departureDateTime":"2026-08-15T20:00Z",
                  "arrivalDateTime":"2026-08-15T22:30Z",
                  "flightNumber":"460",
                  "fareClass":"Economy",
                  "fareFamily":"Plus",
                  "carrier":"FR",
                  "originDestination":"LHR-LAS"
               }
            ]
         }
      ]
   }
}

```

:::::::
