Operation Definitions
POST /v1/companies/{companyId}/sites
Summary
Use this endpoint create a new site with the option to copy from a base site. For the copy option:
If
source_site_copy_idis provided, the API copies the selected entities from the source (base) site.The
copy_entitiesfield controls which entities are copied. Send only what the destination site requires.
Disable automatic updates:
Set
automatic_updates=false.Provide
apps[]with pinned preferred versions for each managed app, commonly XKS/XPOS.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The Bearer token |
path |
| string | Yes | The company identifier (ID) |
body |
| Yes | The request body information |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response Site created | |
201 | Success Response Site created | |
403 | Error Response Message: Permission denied | None |
404 | Error Response Message: Validation error | None |
Default | Error Response Message: Unexpected Error | None |
CreateSiteRequest
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The site name |
| string | Yes | The store number |
| string | Yes | The business classification for the site. The practical default for normal restaurant stores: |
| string | Yes | The operational environment (runtime context). The practical default for normal restaurant stores: |
| string | Yes | The business model classification. The practical default for normal restaurant stores: |
| string | Yes | The time zone for the site. For example, |
| string | Yes | The preferred language for the site. For example, |
| Yes | The list of locations for the site | |
| No | The phone number information for the site | |
| boolean | No | A global automatic updates flag used by some payload variants. If |
| No* | *This field is required when | |
| Yes | The subscription list for the site. At site level, Genius Gateway (
| |
| string | No | The source site identifier (ID) used for copy behavior |
| array | No | Entities to copy from the source site. Use a minimal list. Large lists increase runtime and integration risk. |
| string | No | The site website |
| string | No | The site email address |
| string | No | The site support phone option |
| No | The support phone number information for the site | |
| boolean | No | |
| No | The federal and state/province tax IDs | |
| string | No | Alternate language information |
| No | Revenue and billings IDs | |
| array | No | |
| string | No |
Sample Request Body
{
"name": "Site 3 (Copy)",
"store_number": "4",
"type": "Production",
"environment": "Production",
"business_type": "QSR",
"timezone": "US/Eastern",
"preferred_language": "en-US",
"location": {
"address_1": "4444",
"address_2": "",
"city": "444",
"state": "AL",
"zip": "44444",
"country": "US"
},
"automatic_updates": false,
"apps": [
{
"app_code": "XKS",
"preferred_version": {
"version": "4.0.444",
"uri": "https://<official-host>/xks/4.0.444/"
}
},
{
"app_code": "XPOS",
"preferred_version": {
"version": "13131313131313",
"uri": "https://pos-download.xenial.com/pos-app/13131313131313/"
}
}
],
"subscriptions": [
{
"count": 1,
"name": "Enterprise Kitchen",
"product": "XKS",
"is_active": true,
"external_data": {
"automatic_updates": false,
"enable_encryption": false
}
},
{
"count": 1,
"name": "Enterprise POS",
"product": "XENIAL POS",
"is_active": true,
"external_data": {
"automatic_updates": false
}
},
{
"count": 1,
"name": "Genius Gateway",
"product": "genius_transport",
"is_active": true,
"external_data": {
"environment": "Production",
"merchant_name": "merchant_name",
"merchant_site_id": "merchant_site_id",
"merchant_key": "merchant_key",
"web_checkout_key": "web_checkout_key",
"kount_fraud_detection": true,
"applepay_merchant_id": "apple_merchant_id",
"googlepay_merchant_id": "google_merchant_id"
}
}
],
"source_site_copy_id": "{source_site_id}",
"copy_entities": [
"audio-file",
"break-time",
"bundle-component",
"calendar",
"configuration-group",
"count-frequency",
"country-state",
"course",
"currency-scheme",
"custom-label-definition",
"customer-survey",
"date-range",
"day-part",
"day-part-type",
"default-user",
"discount-definition",
"donation",
"dynamic-matrix",
"employee-status-change-reason",
"employee-status-config",
"event-type",
"external-application",
"fee-definition",
"fixed-matrix",
"floor-plan",
"forecast-definition",
"forecast-definition-mapping",
"general-ledger-account",
"gift-service",
"history-definition",
"house-account",
"i9-document-class",
"i9-status",
"inventory-item-venue",
"inventory-location",
"job-change-reason",
"job-code",
"job-code-category",
"job-code-rate",
"labor-matrix",
"load-balancing-rule",
"main-variant-mix",
"measure",
"menu",
"menu-category",
"menu-item-group",
"min-wage-config",
"modifier-build",
"modifier-collection",
"modifier-group",
"named-calculation",
"notification-template",
"online-ordering-settings",
"order-destination",
"order-lane",
"order-screen",
"order-source",
"pay-type",
"pay-type-scheme",
"payroll-employee-status-mapping",
"payroll-job-category-mapping",
"payrule-group",
"peripheral",
"pos-job-code",
"pos-pay-mapping",
"pos-reason-code",
"preferences",
"product",
"product-availability",
"product-price",
"punch-adjustment-reason",
"receipt-message",
"receipt-template",
"report-options",
"schedule-type",
"service-point",
"store-hours-config",
"store-hours-config-group",
"support-user",
"tag-rule",
"tare",
"tax-definition",
"tax-group",
"tender-currency",
"tender-mapping",
"terminal",
"terminal-scheme",
"time-period",
"tip-group",
"validation-format",
"variant-build",
"vendor",
"w4-filing-status",
"web-meta-data",
"workflow",
"xks-bumpbar",
"xks-display-definition",
"xks-display-scheme",
"xks-general-settings",
"xks-station-config",
"modifier"
]
}Location
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The site's street number and name |
| string | No | Additional site address information such as a suite number, if applicable |
| string | Yes | The site's city name |
| string | Yes | The site's state abbreviation |
| string | Yes | The site's zip or postal code |
| string | Yes | The site's country abbreviation |
PhoneSettings
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The site phone number |
| string | No | The site area code |
| string | No | The site country code |
AppPreference
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The app code |
| Yes | The preferred app version information |
AppRelease
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The app version |
| string | Yes | The app uniform resource identifier (URI) |
Subscriptions
Field Name | Type | Required | Description |
|---|---|---|---|
| integer | Yes | The number of subscriptions for the site |
| string | Yes | The subscription name |
| string | Yes | The subscription product information |
| boolean | Yes | A flag that indicates if the subscription is active currently |
| No | Product-specific fields |
ExternalData
Field Name | Type | Required | Description |
|---|---|---|---|
| boolean | No | A flag that indicates if there are automatic updates for XKS/XPOS |
| boolean | No | For XKS. This field is optional and defaults to |
| string | Yes* | The product's environment. *This field is required for Genius Gateway if |
| string | Yes* | The product's merchant name. *This field is required for Genius Gateway if |
| string | Yes* | The product's merchant site identifier (ID). *This field is required for Genius Gateway if |
| string | Yes* | The product's merchant key. *This field is required for Genius Gateway if |
Tax
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The federal tax identifier (ID) |
| string | No | The state/province tax ID |
Salesforce
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The revenue identifier (ID) for Salesforce |
| string | No | The billing ID for Salesforce |
SiteResponse
This is a simplified response shape. The actual response may include additional fields
Field Name | Type | Description |
|---|---|---|
| string | The site identifier (ID) |
| string | The site name |
| string | The site store number |
| string | The site company name |
Sample Response Body
{
"id": "string",
"name": "string",
"store_number": "string",
"company": "string"
}GET /v1/apps
Summary
Get a list of available applications and releases. This operation is used when automatic updates are disabled to select preferred versions for XKS/XPOS.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
query |
| string | No | The recommended default query |
query |
| string | No | Use only when end-of-life is in the future and the uniform resource identifier (URI) is an official host |
query |
| boolean | Yes | When the value is |
Response
Code | Description | Schema |
|---|---|---|
200 | The app list |
AppsResponse
Field Name | Type | Description |
|---|---|---|
| integer | The total number of items in the response |
| The list of apps |
Sample Response Body
{
"total": 0,
"items": [
{
"id": "string",
"name": "string",
"code": "string",
"force_update": true,
"current_release": {
"version": "string",
"uri": "string",
"end_of_life": "2026-02-20T17:26:51.978Z"
},
"other_releases": [
{
"version": "string",
"uri": "string",
"end_of_life": "2026-02-20T17:26:51.978Z"
}
]
}
]
}AppItem
Field Name | Type | Description |
|---|---|---|
| string | The app identifier (ID) |
| string | The app name |
| string | the app code |
| boolean | |
| The list of current releases | |
| The list of other releases |
AppReleaseWithEol
Field Name | Type | Description |
|---|---|---|
| string | The app version information |
| string | The app uniform resource identifier (URI) |
| string (date/time) | The app's end of life date and time |
PATCH /v1/companies/{companyId}/site-hierarchies/{siteHierarchyId}
Summary
Use this endpoint to add or move a site assignment in a hierarchy. Key behavior for this endpoint:
Each level object must include
id,name,sites, andchildren.children: []is schema-required and does not delete existing children.Omitted nodes are not treated as removals.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
path |
| string | Yes | The company identifier (ID) |
query |
| string | Yes | The site hierarchy ID |
query |
| boolean | No | A flag that indicates whether to filter by assigned sites. The default value is |
body |
| Yes | The request body information |
Response
Code | Description | Schema |
|---|---|---|
200 | Updated hierarchy |
PatchHierarchyRequest
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | |
| Yes | The hierarchy level information |
Sample Request Body
{
"name": "Hierarchy name",
"levels": [
{
"id": "{levelId}",
"name": "Level name",
"sites": [
{
"id": "{newSiteId}",
"name": "4 (Copy)"
}
],
"children": []
}
]
}HierarchyLevel
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The hierarchy level identifier (ID) |
| string | Yes | The hierarchy level name |
| Yes | The hierarchy sites information | |
| array | Yes | Schema-required list of child levels. |
HierarchySite
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The hierarchy site identifier (ID) |
| string | Yes | The hierarchy site name |
| integer | No | The hierarchy site order |
SiteHierarchiesResponse
Field Name | Type | Description |
|---|---|---|
| integer | The total number of returned items |
| The site hierarchy item information |
Sample Response Body
{
"id": "string",
"name": "string",
"company_id": "string",
"assigned_sites": 0,
"levels": [
{
"id": "string",
"name": "string",
"sites": [
{
"id": "string",
"name": "string",
"order": 0
}
],
"children": [
"string"
]
}
]
}SiteHierarchyItem
Field Name | Type | Description |
|---|---|---|
| string | The site hierarchy item identifier (ID) |
| string | The site hierarchy item name |
| string | The company ID for the site hierarchy item |
| integer | The number of assigned sites for the site hierarchy item |
| The hierarchy level information |
GET /v1/companies/{companyId}/site-hierarchies
Summary
Get a list of site hierarchies and level identifiers (IDs). This endpoint returns the hierarchy ID and nested level IDs used by PATCH /v1/companies/{companyId}/site-hierarchies/{siteHierarchyId}. Use this endpoint to discover:
items[].idassiteHierarchyIditems[].levels[].idas top-levellevelIditems[].levels[].children[].idas nested childlevelId
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
path |
| string | Yes | The company identifier (ID) |
query |
| integer | No | The number of items to be returned. The default value is |
query |
| integer | No | The number of items to be skipped. The default value is |
query |
| string | No | A filter expression in OData v4 format |
query |
| string | No | An order by expression in OData v4 format |
query |
| boolean | No | The default value is |
query |
| boolean | No | A flag that indicates whether to filter by assigned sites. The default value is |
Response
Code | Description | Schema |
|---|---|---|
200 | Hierarchy list |