{
  "openapi": "3.0.0",
  "info": {
    "title": "Zoined API (ZAPI)",
    "version": null,
    "description": "Zoined API enables customers or third parties to send their data to\nZoined using RESTful HTTP API. Uploaded data will be processed and stored to our data\nwarehouse and used for generating analytic reports for the retailers. API service has end\npoints for almost every facet of a retail business be it sales, inventory or even\nemployee time keeping.\n\nThis document contains instructions on how to access the Zoined API. This document \ncontains two parts: introduction and reference. Introduction walks you through the \ngeneral structure of the API and how to use it. Reference contains detailed\ndocumentation for each API end point including code examples for multiple programming\nlanguages, and live in-browser testing tool for the API end points.\n\nIf you have any questions related to Zoined API, don't hesitate to contact \n[Zoined support](mailto:support@zoined.com).\n\n## Authentication and security\n\nEvery client must authenticate itself to send data towards any end points in Zoined API service.\nThis means that every request to the service must have an authorization header with\nan identification token. Token is unique to every customer and can be obtained by\ncontacting Zoined support services.\n\nAn example of the header would be:\n\n```\nAuthorization: Bearer dGVzdGlhc2lha2FzOnZhaWtlYXBhc3N1\n```\n\nAll traffic to Zoined API is sent with HTTPS and protected with [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security).\n\n<a name=\"messaging\"></a>\n\n## Messaging and error handling\n\nAPI service uses JSON data format to exchange data with clients. This means all\nreplies to clients will be delivered in JSON (including all possible error messages).\nThe successful requests; i.e. the requests which delivered data in the correct format\nand thereby resulted in successful archiving of data will get 200 OK response with a\nJSON message conveying number of records and the model to which it has\nbeen been added. This message looks like:\n\n```\n{\n status: OK\n msg: \"1 Customer added\"\n}\n```\n\nError handling is done through standard HTTP status codes where code 200 means successful\nreply (no errors) and any other code describes error conditions while executing the service. \nUsually error code is accompanied by JSON reply that further describes what went wrong. \nGenerally following error codes are used:\n\n* **400** – Means that there is something wrong with the request submitted by the client. \nUsually there is JSON-reply describing the error. In most cases it is caused by missing \nor malformed request body (JSON), missing mandatory fields in the JSON or Type errors, \ne.g character instead of number, date/time format issues etc. Below is an example of \nvisitors end point if an empty request body was sent.\n\n```\n{\n  \"status\": \"NOT OK\",\n  \"msg\": [\n    \"/visitors: error.path.missing\",\n    \"/date: error.path.missing\",\n    \"/organisation_id: error.path.missing\",\n    \"/time: error.path.missing\"\n  ]\n}\n```\n\n* **401** – This code means that authentication has failed, due to missing or incorrect access token in authorization header. The response JSON body would be:\n\n```\n{\n  \"status\":\"NOT OK\",\n  \"msg\":\"Unauthorized\"\n}\n```\n\n* **404** – Requested service does not exist or request method (eg. GET vs. POST) is incorrect. The response JSON in this case would be:\n\n```\n{\n  \"status\":\"NOT OK\",\n  \"msg\":\"End point requested does not exist\"\n}\n```\n\n* **500** – There was an internal error while processing the request. This is often a problem with the service itself. If this persists please contact Zoined service team with detailed information about the error\n\n```\n{\n  \"status\":\"NOT OK\",\n  \"msg\":\"An Exception Occurred\"\n}\n```\n\n* **503** – Service is entirely offline. This indicates maintenance break or problem with the infrastructure. If error persists, please contact support.\n\n## Frequently asked questions\n\nQ: How do I choose data format to send my data?</br>\nA: You need to set Content-Type header in your request to correct value. Zoined API currently supports either JSON or CSV data formats. Any other format is NOT supported and will cause error reply. \nBy default we assume content is `application/json` but it can be changed to CSV by adding header:\n\n```\nContent-Type: application/csv\n```\n\nQ: What is the number format?<br/>\nNo thousand separators. Use dot `.` as decimal separator.\n\nQ: What is the date format?<br/>\nA: All dates should be in ISO-format \"YYYY-MM-DD\".\n\nQ: How do I enter the time? What is \"Z\" at the end of the time example?<br/>\nA: Enter the time in 24 hour format \"H24:Mi:ss\". 'Z' stands for UTC time zone and is optional like all time zone information. \nZoined will always use local time so any time zone information is just ignored and no time zone conversions are done.\n\nQ: Do I enter values and headers with quotes (single or double) or without?<br/>\nA: For JSON, use double quotes for all headers and values. For CSV, do not use anything for either except when escaping special characters (see below).\n\nQ: How do I escape special characters in CSV?<br/>\nA: If field value has separator character (eg. `;`) backslash `\\` or double quote `\"` in it, you'll need to escape it by \nwrapping the field value with double quotes `\"` and prefixing any double quotes and backslashes with backslash. For example value \n`example;\\\"value\"` should be converted to `\"example;\\\\\\\"value\\\"\"`. Separator character can be specified with `separator` query string parameter. \nBy default we assume semicolon ';'. Escape characters ('\\' and '\"') cannot be changed.\n\nQ: What character encoding should be used?<br/>\nA: For JSON the standard specifies that character set should be Unicode with either UTF-8, UTF-16 or UTF-32 encoding.\nFor CSV you can use any character encoding where separators and other special characters are encoded with single byte. \nHence pure multi-byte encodings like UTF-16 are NOT supported with CSV format but mixed ones like UTF-8 are as long as special characters are encoded with single byte. \nEncoding should be specified with `encoding` query string parameter and it must correspond to encoding used in actual data. If unspecified then by default UTF-8 is assumed.\n\nQ: How to get best performance for bigger data volume uploads?<br/>\nA: First of don't send your data one row at a time by making separate API call for each row. \nThat will severely degrade performance of overall data load causing it to take significantly longer time to complete.\nInstead use fixed size chunks of suitable size (eg. 100000 rows per chunk) for each API call. \nJson format is also generally slightly faster to process than csv data format."
  },
  "servers": [
    {
      "url": "https://api.zoined.com"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "overview-data-upload",
      "x-displayName": "Data upload: Introduction",
      "description": "Data upload end points allow one to upload data into Zoined warehouse. Each different\ndata type has their own end points which are documented below, however all of these end points have the\nsame structure. They expect HTTP POST request with either JSON or CSV data as request body. \nPlease not that all end point names in URL string are case sensitive and must be written exactly as written in this document.\n\n1) JSON data should be array of objects. For example for campaigns this could be\n\n```\n[\n  { \"campaign_id\": \"My campaign ID\", \"campaign_name\": \"February 2016\", \"start_date\": \"2016-02-01\", \"end_date\": \"2016-02-29\"\n},\n  { \"campaign_id\": \"My campaign ID2\", \"campaign_name\": \"March 2016\", \"start_date\": \"2016-03-01\", \"end_date\": \"2016-03-31\"\n} ]\n```\n\n2) CSV data should declare fields on the first line (header), and remaining lines should contain data to be uploaded. You can select\nfield separator by adding parameter `separator` to URL (URL escaping might be needed depending on separator char selected). \nDefault separator is `;`. You also need to escape all field values properly in case they contain separator chars and/or double quotes `\"` \nor backslashes `\\`. Escaping is done by enclosing whole field with double quotes and adding backslash in front of any double quote or \nbackslash characters. Eg. field: `\\this\\ ;is; \"test\"` would be escaped as: `\"\\\\this\\\\ ;is; \\\"test\\\"\"`.\n\nFor campaigns the uploaded CSV -file could be\n\n```\ncampaign_id; campaign_name; start_date; end_date\nMy Campaign ID; February 2016; 2016-02-01; 2016-02-29\n\"My Campaign \\\"March\\\"\";\"March 2016\";\"2016-03-01\";\"2016-03-31\"\n```\n\nDetails for usable fields available within individual end point documentation.\n\nEach of the data upload end points also support \"dry run\" mode where data is validated, but not\nstored into warehouse. This is useful when testing the API integration, as no changes\nare stored, but any structural errors are reported immediately.\n\nOur API end points can handle very large messages as received data is streaming within our back-end.\nHowever, it usually makes sense to split files into max 5Gb chunks. This makes it faster\nto retry transfers if there are any network errors while transferring data.\n\nFor large files we recommend using Gzip encoding, as it can dramatically reduce amount\nof data to transfer. Gzip encoding can be used by encoding the data when sending\nand adding Content-Encoding header.\n\n```\nContent-Encoding: gzip\n```"
    },
    {
      "name": "upload-sales-transactions",
      "x-displayName": "Sales transactions",
      "description": "This is the main fact entity within Zoined. It contains essential information about sales, such as number of items sold, sales price, rebates and purchase price.\n\nIt also links masterdata together by storing information about:\n- What was sold (Product dimension)\n- Where was it sold (Organisation dimension)\n- Who sold it (Salesperson Dimension)\n- To whom was it sold (Customer dimension)"
    },
    {
      "name": "upload-products",
      "x-displayName": "Products",
      "description": "Sales items or services being sold.\n\nProducts usually belong to product hierarchy which allows one to drill down from top of hierarchy to lower levels in the Zoined Analytics Portal. There are two ways of defining the product hierarchy:\n\n1. Use FlatHierarchies endpoint with one of the product hierarchy keys `entity_id` having same `product_id` value.\n2. Upload product hierarchy using ProductHierarchy endpoint, and add `category_id` field pointing to correct hierarchy level."
    },
    {
      "name": "upload-customers",
      "x-displayName": "Customers",
      "description": "Customers are identified consumers or businesses that buy your products or services. Details about customers are not shown in the service for data security reasons."
    },
    {
      "name": "upload-customer-feedback",
      "x-displayName": "Customer feedback",
      "description": "Customer feedback endpoint can be used to upload either free form survey results or satisfaction grades."
    },
    {
      "name": "upload-cashier-balance",
      "x-displayName": "Cashier balance",
      "description": "Cashier balance end point can be used to upload cash register book keeping reports mainly used to verify that payments match with store sales."
    },
    {
      "name": "upload-organisations",
      "x-displayName": "Organisations",
      "description": "Organisations are the sales locations. They can be physical stores, web commerce sites, warehouses or personal payment terminals."
    },
    {
      "name": "upload-departments",
      "x-displayName": "Departments",
      "description": "Departments are sections of sales locations."
    },
    {
      "name": "upload-sales-persons",
      "x-displayName": "Sales persons",
      "description": "This is the sales person associated with the receipt."
    },
    {
      "name": "upload-cash-registers",
      "x-displayName": "Cash registers",
      "description": "This is the physical cash register device associated with the receipt."
    },
    {
      "name": "upload-store-open-hours",
      "x-displayName": "Store open hours",
      "description": "Open hours end point can be used to upload store open hours for all weekdays and for different seasons. Helps forecasting accuracy."
    },
    {
      "name": "upload-counters",
      "x-displayName": "Counters",
      "description": "Counters are visitor counting devices."
    },
    {
      "name": "upload-accounts",
      "x-displayName": "Accounts",
      "description": "This is the account associated with accounting data."
    },
    {
      "name": "upload-events",
      "x-displayName": "Events",
      "description": "This is the event associated with booking data."
    },
    {
      "name": "upload-calendar",
      "x-displayName": "Calendar",
      "description": "Custom calendar attributes can be used to define custom retail calendar like 4-4-5 etc. with year starting and ending at desirable dates.\nSupported attributes include year, period (month), season and week number."
    },
    {
      "name": "upload-campaigns",
      "x-displayName": "Campaigns",
      "description": "A campaign is a sales effort which can be measured for progress and success.\nCampaigns can be linked to sales transactions either directly or via Campaign Products."
    },
    {
      "name": "upload-campaign-products",
      "x-displayName": "Campaign products",
      "description": "Campaign products associates products with specific campaigns.\nThis allows creation of campaigns retroactively, but will slow down data loading as each sales row needs to be matched against existing campaigns.\n\nCampaign products should only be used if it is not possible to add campaign information directly to sales transactions."
    },
    {
      "name": "upload-campaign-sales",
      "x-displayName": "Campaign Sales",
      "description": "Campaign sales provides a way to link multiple campaigns to a single sales, sales order or sales offer line. Ordinarily only one campaign can be linked directly but this allows support for any number of campaigns per line."
    },
    {
      "name": "upload-currency-rates",
      "x-displayName": "Currency rates",
      "description": "Currency rates allow you to define internal exchange rates between different currencies in use."
    },
    {
      "name": "upload-work-shifts",
      "x-displayName": "Work shifts",
      "description": "Allows you to upload planned of punched work shifts. This is interesting when combined with number of visitors or receipts - are the sales people working during the busiest times?\n\nIf you are also recording breaks, you should send multiple entries per shift and just have suitable absence codes in place. We'll combine the shifts based on shift ids."
    },
    {
      "name": "upload-employee-hour-entries",
      "x-displayName": "Employee hour entries",
      "description": "Allows you to upload worked hours for specific time. This is interesting when combined with number of visitors or receipts - are the sales people working during the busiest times?\n\nThis endpoint is intended to be used when you have aggregate level information per minute/hour/day. If your data is consists of workshifts, you should use Workshifts endpoint."
    },
    {
      "name": "upload-hourly-staff-costs",
      "x-displayName": "Hourly staff costs",
      "description": "Allows you to upload store, department or sales person level hourly salaries for specific time period.\nThis data is used as fallback method when provided employee hour or work shift data does not have costs included."
    },
    {
      "name": "upload-inventory-snapshots",
      "x-displayName": "Inventory snapshots",
      "description": "Inventory snapshots are used to provide product inventory saldo at specific point of time."
    },
    {
      "name": "upload-inventory-transactions",
      "x-displayName": "Inventory transactions",
      "description": "Inventory transactions provide information about balance changes in inventories. They allow you to send information when new items have been purchased for inventory, or when existing products have been removed from inventory as waste.\n\nInventory transactions are not used to update inventory saldo values. For that you should use Inventory snapshots."
    },
    {
      "name": "upload-capacity",
      "x-displayName": "Capacity",
      "description": "Capacities are used to provide details about available capacity for various resources at specific point of time. These could be eg. hotel rooms or event tickets."
    },
    {
      "name": "upload-flat-hierarchies",
      "x-displayName": "Flat hierarchies",
      "description": "This end point provides way to upload hierarchy information for different entities like products and organisations in \"flat\"-form.\n\nThis means that for each entity its full path in hierarchy is send, and hierarchy tree is build by us based on that."
    },
    {
      "name": "upload-product-hierarchies",
      "x-displayName": "Product hierarchies",
      "description": "Product hierarchies provide a way to assign products into categories and subcategories."
    },
    {
      "name": "upload-rebate-codes",
      "x-displayName": "Rebate codes",
      "description": "The rebate codes can be used to describe reason for giving rebate on sales transactions."
    },
    {
      "name": "upload-payment-types",
      "x-displayName": "Payment types",
      "description": "Payment types provide attributes for payment methods used in sales transactions and/or payments."
    },
    {
      "name": "upload-purchase-orders",
      "x-displayName": "Purchase orders",
      "description": "This end point can be used to record purchase orders into Zoined service."
    },
    {
      "name": "upload-sales-offers",
      "x-displayName": "Sales offers",
      "description": "This end point can be used to record sales offers into Zoined service. Offers can be linked to sales orders."
    },
    {
      "name": "upload-sales-orders",
      "x-displayName": "Sales orders",
      "description": "This end point can be used to record sales orders into Zoined service."
    },
    {
      "name": "upload-sales-summary",
      "x-displayName": "Sales summary",
      "description": "Sales Summary is a reduced, simplified data set that can be used instead of the detailed endpoints.\n\nIt allows demoing Zoined with own, aggregated data, or can be used in production environment when the more detailed data set is not required or available."
    },
    {
      "name": "upload-sales-payment",
      "x-displayName": "Sales payment",
      "description": "Sales payment can be used to send payment data for sales receipts since payment data with multiple payment types per receipt does not mix well with receipt row level transactions.\n\nSummed sales values from payment receipts should of course correspond to line item level sum in sales data and transaction_id should be the same as corresponding sales receipt transaction_id so that we can match them together when needed."
    },
    {
      "name": "upload-giftcard-payments",
      "x-displayName": "Giftcard Payments",
      "description": "Giftcard Payments can be used to send giftcard payments data for sales transactions involving gift cards as a payment method.\n\nIt streamlines the management of giftcard payment information and usage, ensuring accuracy and consistency in sales records."
    },
    {
      "name": "upload-accounting",
      "x-displayName": "Accounting",
      "description": "Accounting can be used to send account level information (receipts) about operational income and costs of running the company.\n\nThis information is used to eg. to calculate various margins usually found in profit loss statements."
    },
    {
      "name": "upload-bookings",
      "x-displayName": "Bookings",
      "description": "This end point can be used to record bookings into Zoined service."
    },
    {
      "name": "upload-suppliers",
      "x-displayName": "Suppliers",
      "description": "The party that sells your organisation the goods or merchandise."
    },
    {
      "name": "upload-visitors",
      "x-displayName": "Visitors",
      "description": "Visitor count information from anti-theft gates or camera systems. Five different types of visitors can be reported: visitors coming in, visitors going out, visitors passing by, visitor average occupancy and visitor average visit time.\n\nYou can also send data for visiting cars & bicycles for all of these five metrics but default is people.\n\nVisitor data can be sent either on store or department level. If department is empty visitors are considered to be entering/leaving/passing/visiting store. If department is specified then visitor entry is considered to be person moving inside the store.\n\nWhen showing visitor counts on portal store-level visitor counts are used, unless data is viewed on department level."
    },
    {
      "name": "upload-visitor-demographics",
      "x-displayName": "Visitor demographics",
      "description": "Visitor demographics endpoint can be used to send data for detected visitor's age and gender.\n\nDemographic data is usually obtained with different (camera) system, and only for part of the visitors. This API endpoint allows sending of the data separately, so that we can then combine data with visitor information.\n\nOur analytics backend will use combined data to project gender & age group estimates into actual visitor counts."
    },
    {
      "name": "upload-id-mapping",
      "x-displayName": "Id mapping",
      "description": "ID Mapping allows you to define mappings between identifiers in different source systems and the master data.\n\nThis allows you to link data between different systems so that they can be correlated and shown in sensible way in Zoined Analytics Portal."
    },
    {
      "name": "upload-budgets",
      "x-displayName": "Budgets",
      "description": "Budget end point allows you to upload budgets for individual metrics at the with selected level of granularity.\n\nYou can for example send daily budget per store and monthly forecasts per category for sales value."
    },
    {
      "name": "upload-last-updated",
      "x-displayName": "Last updated",
      "description": "This end point allows you to send information about last update time stamps for different entities you send to Zoined.\n\nAfter uploading entities you can post last update time stamp for each entity here, optionally on store level.\n\nThis information is used to report to end users when certain data set was last updated. Times should be posted in UTC time as they will be converted to user local time zone when presented in portal.\n\nSimilarly entity keys will be localized in user's selected language provided that correct key names are used."
    },
    {
      "name": "overview-data-download",
      "x-displayName": "Data download: Introduction",
      "description": "Data download end points provide means for retrieving data from Zoined. This allows\nbuilding integrations feeding external systems with the data sent to Zoined. Data returned\nfrom the download end points closely match the structures used while uploading the data\nbut doesn't always match exactly due to deprecations in upload API and processing on\nthe Zoined system. Each data download end point will contain full list of fields supported.\nCurrently we support both JSON and CSV formats for all download end points.\n\nFor large downloads windowing should be used to keep individual result sets reasonable.\n`offset` and `limit` query parameters should be used to control this for each successive request.\nFor example with 100000 limit the first request would be with offset 0, next with 100000, then 200000 and so on.\nPlease note that max limit is hard capped to 1000000 rows per request so tune your parameters accordingly."
    },
    {
      "name": "download-sales-transactions",
      "x-displayName": "Sales transactions",
      "description": "Returns list of sales transactions in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-sales-orders",
      "x-displayName": "Sales orders",
      "description": "Returns list of sales orders in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-sales-offers",
      "x-displayName": "Sales offers",
      "description": "Returns list of sales offers in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-purchase-orders",
      "x-displayName": "Purchase orders",
      "description": "Returns list of purchase orders in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-sales-summaries",
      "x-displayName": "Sales summaries",
      "description": "Returns list of sales summaries in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-sales-payments",
      "x-displayName": "Sales payments",
      "description": "Returns list of sales payments in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-giftcard-payments",
      "x-displayName": "Giftcard payments",
      "description": "Returns list of giftcard payments in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-bookings",
      "x-displayName": "Bookings",
      "description": "Returns list of bookings in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-accounting-data",
      "x-displayName": "Accounting data",
      "description": "Returns list of accounting data in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-cashier-balance",
      "x-displayName": "Cashier balance",
      "description": "Returns list of cashier balances in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-customer-feedback",
      "x-displayName": "Customer feedback",
      "description": "Returns list of customer feedback in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-inventory-transactions",
      "x-displayName": "Inventory transactions",
      "description": "Returns list of inventory transactions in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-inventory-snapshots",
      "x-displayName": "Inventory snapshots",
      "description": "Returns list of inventory snapshots in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-capacity",
      "x-displayName": "Capacity",
      "description": "Returns list of resource capacities in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-visitors",
      "x-displayName": "Visitors",
      "description": "Returns list of visitors in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-visitor-demographics",
      "x-displayName": "Visitor demographics",
      "description": "Returns list of visitor demographics in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-work-shifts",
      "x-displayName": "Work shifts",
      "description": "Returns list of worked shifts in the system. Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-employee-hours",
      "x-displayName": "Employee hours",
      "description": "Returns list of employee hours in the system (simpler form of work shifts without shift). Returned data can be limited with\n`start` and `end` query parameters."
    },
    {
      "name": "download-hourly-staff-costs",
      "x-displayName": "Hourly staff costs",
      "description": "Returns list of hourly store, department and employee level hourly salary data in the system.\nReturned data can be limited with `start` and `end` query parameters."
    },
    {
      "name": "download-products",
      "x-displayName": "Products",
      "description": "Returns list of products in the system. Returned data can be limited with\n`product_id` query parameters."
    },
    {
      "name": "download-customers",
      "x-displayName": "Customers",
      "description": "Returns list of customers in the system. Returned data can be limited with\n`customer_id` query parameters."
    },
    {
      "name": "download-organisations",
      "x-displayName": "Organisations",
      "description": "Returns list of organisations in the system. Returned data can be limited with\n`organisation_id` query parameters."
    },
    {
      "name": "download-departments",
      "x-displayName": "Departments",
      "description": "Returns list of departments in the system. Returned data can be limited with\n`department_id` query parameters."
    },
    {
      "name": "download-sales-persons",
      "x-displayName": "Sales persons",
      "description": "Returns list of sales persons in the system. Returned data can be limited with\n`salesperson_id` query parameters."
    },
    {
      "name": "download-cash-registers",
      "x-displayName": "Cash Registers",
      "description": "Returns list of cash registers in the system. Returned data can be limited with `register_id` query parameter."
    },
    {
      "name": "download-accounts",
      "x-displayName": "Accounts",
      "description": "Returns list of bookkeeping accounts in the system. Returned data can be limited with\n`account_id` query parameter."
    },
    {
      "name": "download-events",
      "x-displayName": "Events",
      "description": "Returns list of booking events in the system. Returned data can be limited with\n`event_id` query parameter."
    },
    {
      "name": "download-category-hierarchies",
      "x-displayName": "Category hierarchies",
      "description": "Returns list of all category hierarchies in the system. Returned data can be limited with\n`category_id` and `hierarchy_key` query parameters."
    },
    {
      "name": "download-flat-hierarchies",
      "x-displayName": "Flat hierarchies",
      "description": "Returns list of all hierarchies in the system in a flat format. Returned data can be limited with\n`hierarchy_key` query parameters."
    },
    {
      "name": "download-counters",
      "x-displayName": "Counters",
      "description": "Returns list of visitor counters in the system. Returned data can be limited with\n`counter_id` query parameters."
    },
    {
      "name": "download-campaigns",
      "x-displayName": "Campaigns",
      "description": "Returns list of campaigns in the system. Returned data can be limited with\n`campaign_id`, `start` and `end` query parameters."
    },
    {
      "name": "download-payment-types",
      "x-displayName": "Payment types",
      "description": "Returns list of payment types in the system. Returned data can be limited with\n`payment_type_id` query parameters."
    },
    {
      "name": "download-rebate-codes",
      "x-displayName": "Rebate codes",
      "description": "Returns list of rebate codes in the system. Returned data can be limited with\n`rebate_code_id` query parameters."
    },
    {
      "name": "download-suppliers",
      "x-displayName": "Suppliers",
      "description": "Returns list of suppliers in the system. Returned data can be limited with\n`id` query parameters."
    },
    {
      "name": "download-custom-calendars",
      "x-displayName": "Custom calendars",
      "description": "Returns custom calendar periods available in the system. Returned data can be limited with\n`year` and `period` query parameters."
    },
    {
      "name": "download-flat-calendars",
      "x-displayName": "Flat calendars",
      "description": "Returns custom calendar periods available in the system in a flat format (one row per day). Returned data can be limited with\n`year` query parameter."
    },
    {
      "name": "download-currency-rates",
      "x-displayName": "Currency rates",
      "description": "Returns currency rates available in the system. Returned data can be limited with\n`start`, `end` and `currency` query parameters."
    },
    {
      "name": "download-budgets",
      "x-displayName": "Budgets",
      "description": "Returns budgets available in the system. Returned data can be limited with `year` query parameter."
    },
    {
      "name": "overview-data-queries",
      "x-displayName": "Data queries: Introduction",
      "description": "These end points allow you to retrieve aggregated data from the warehouse.\nResults are provided by analytics back-end and as such very closely match the result sets we provide to end users through our portal and newsletters.\nHence these end points can be most readily used to get such data sets integrated to other customer systems also.\nYou'll minimally need to provide dimensions you want to group data over and metrics you'd like to see.\nYou can also additionally filter results by time, or by dimension values and sort your result set by given fields."
    },
    {
      "name": "query-query-data-in-tabular-format",
      "x-displayName": "Query data in tabular format",
      "description": "Returns requested dimensions and metrics as either JSON array or CSV table.\nData is limited by default to 1000 entries and pagination information can be found\nfrom `X-Zoined-*` headers."
    },
    {
      "name": "query-query-data-in-stream-format",
      "x-displayName": "Query data in stream format",
      "description": "Returns requested dimensions and metrics as either JSON array or CSV table.\nEntire flat data set returned by request is always fetched as a streamed http response which client should store in one go.\nStreamed requests are ideal for fetching large base data sets quickly but they have certain limitations\nincluding no support for things like custom result set sorting, secondary aggregation or grouped series."
    },
    {
      "name": "overview-maintenance",
      "x-displayName": "Data maintenance: Introduction",
      "description": "These endpoints allow you to do maintenance operations for warehouse."
    },
    {
      "name": "maintenance-data",
      "x-displayName": "Data",
      "description": ""
    }
  ],
  "paths": {
    "/sales": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of sales transactions",
        "description": "**POST** `https://api.zoined.com/sales?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSalesTransactions",
        "tags": [
          "upload-sales-transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesTransactionUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesTransactionUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/products": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of products",
        "description": "**POST** `https://api.zoined.com/products?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadProducts",
        "tags": [
          "upload-products"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ProductUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "type": "string",
                "description": "Product data in CSV format.\n\nProducts can be uploaded either with category levels defined inline,\nor by referencing an existing category using `category_id`.\n"
              },
              "examples": {
                "categoryId": {
                  "summary": "Category defined with category_id",
                  "description": "Use this format when the product is linked to an existing category\nusing `category_id`.\n",
                  "value": "product_id;product_name;product_description;category_id;purchase_price;vat_rate;unit_of_measure;product_size;product_color;product_type;product_season;model;model_number;country_of_origin;freight;supplier_id;fabric;\nXYZ;Widget XYZ;Best performance XYZ on the market;23;10;24;PCS;XS;Dark Blue;Type A;Spring;XYZ B40;X311;Moldovia;5;221;Felt;\n"
                },
                "categoryLevelsInline": {
                  "summary": "Category levels defined inline",
                  "description": "Use this format when the product category hierarchy is defined\ndirectly in the product data.\n",
                  "value": "product_id;product_name;product_description;purchase_price;vat_rate;unit_of_measure;product_size;product_color;product_type;product_season;model;model_number;country_of_origin;freight;supplier_id;fabric\nXYZ;Widget XYZ;Best performance XYZ on the market;10;24;PCS;XS;Dark Blue;Type A;Spring;XYZ B40;X311;Moldovia;5;221;Felt\n"
                }
              }
            }
          }
        }
      }
    },
    "/customers": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of customers",
        "description": "**POST** `https://api.zoined.com/customers?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCustomers",
        "tags": [
          "upload-customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CustomerUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/customerFeedbacks": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of customer feedback",
        "description": "**POST** `https://api.zoined.com/customerFeedbacks?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCustomerFeedback",
        "tags": [
          "upload-customer-feedback"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CustomerFeedbackUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CustomerFeedbackUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/cashierBalance": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of cashier balances",
        "description": "**POST** `https://api.zoined.com/cashierBalance?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCashierBalance",
        "tags": [
          "upload-cashier-balance"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CashierBalanceUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CashierBalanceUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/organisations": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of organisation units",
        "description": "**POST** `https://api.zoined.com/organisations?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadOrganisations",
        "tags": [
          "upload-organisations"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OrganisationUnitUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/OrganisationUnitUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/departments": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of departments",
        "description": "**POST** `https://api.zoined.com/departments?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadDepartments",
        "tags": [
          "upload-departments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/DepartmentUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/DepartmentUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/salesPersons": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of sales persons",
        "description": "**POST** `https://api.zoined.com/salesPersons?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSalesPersons",
        "tags": [
          "upload-sales-persons"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesPersonUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesPersonUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/cashRegisters": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of cash registers",
        "description": "**POST** `https://api.zoined.com/cashRegisters?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCashRegisters",
        "tags": [
          "upload-cash-registers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CashRegisterUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CashRegisterUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/openHours": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of open hours",
        "description": "**POST** `https://api.zoined.com/openHours?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadStoreOpenHours",
        "tags": [
          "upload-store-open-hours"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OpeningHourUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/OpeningHourUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/counters": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of counters",
        "description": "**POST** `https://api.zoined.com/counters?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCounters",
        "tags": [
          "upload-counters"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CounterUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CounterUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/accounts": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of bookkeeping accounts",
        "description": "**POST** `https://api.zoined.com/accounts?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadAccounts",
        "tags": [
          "upload-accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AccountUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/AccountUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/events": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of booking events",
        "description": "**POST** `https://api.zoined.com/events?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadEvents",
        "tags": [
          "upload-events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EventUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/EventUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/calendar": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload custom calendar attributes",
        "description": "**POST** `https://api.zoined.com/calendar?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCalendar",
        "tags": [
          "upload-calendar"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CalendarUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CalendarUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/campaigns": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of campaigns",
        "description": "**POST** `https://api.zoined.com/campaigns?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCampaigns",
        "tags": [
          "upload-campaigns"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CampaignUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CampaignUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/campaignProducts": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorWhileProcessingTheRequest"
          }
        },
        "summary": "Upload list of campaign products",
        "description": "**POST** `https://api.zoined.com/campaignProducts?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCampaignProducts",
        "tags": [
          "upload-campaign-products"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CampaignProductUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CampaignProductUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/salesCampaigns": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of campaign sales",
        "description": "**POST** `https://api.zoined.com/salesCampaigns?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCampaignSales",
        "tags": [
          "upload-campaign-sales"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesCampaignUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesCampaignUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/currencyRates": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorWhileProcessingTheRequest"
          }
        },
        "summary": "Upload list of currency rates",
        "description": "**POST** `https://api.zoined.com/currencyRates?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCurrencyRates",
        "tags": [
          "upload-currency-rates"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CurrencyRateUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CurrencyRateUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/workShifts": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of work shifts",
        "description": "**POST** `https://api.zoined.com/workShifts?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadWorkShifts",
        "tags": [
          "upload-work-shifts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/WorkshiftUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/WorkshiftUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/employeeHours": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of employee hour entries",
        "description": "**POST** `https://api.zoined.com/employeeHours?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadEmployeeHourEntries",
        "tags": [
          "upload-employee-hour-entries"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EmployeeHourUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeHourUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/staffCosts": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of staff cost entries",
        "description": "**POST** `https://api.zoined.com/staffCosts?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadHourlyStaffCosts",
        "tags": [
          "upload-hourly-staff-costs"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StaffCostUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/StaffCostUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/inventorySnapshots": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of inventory snapshots",
        "description": "**POST** `https://api.zoined.com/inventorySnapshots?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadInventorySnapshots",
        "tags": [
          "upload-inventory-snapshots"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InventorySnapshotUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/InventorySnapshotUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/inventoryTransactions": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of inventory transactions",
        "description": "**POST** `https://api.zoined.com/inventoryTransactions?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadInventoryTransactions",
        "tags": [
          "upload-inventory-transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InventoryTransactionUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/InventoryTransactionUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/capacity": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of capacities",
        "description": "**POST** `https://api.zoined.com/capacity?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadCapacity",
        "tags": [
          "upload-capacity"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CapacityUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CapacityUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/flatHierarchies": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of flat hierarchies",
        "description": "**POST** `https://api.zoined.com/flatHierarchies?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadFlatHierarchies",
        "tags": [
          "upload-flat-hierarchies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FlatHierarchyUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/FlatHierarchyUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/productHierarchies": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of product categories",
        "description": "**POST** `https://api.zoined.com/productHierarchies?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadProductHierarchies",
        "tags": [
          "upload-product-hierarchies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CategoryUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/CategoryUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/rebateCodes": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of rebate codes",
        "description": "**POST** `https://api.zoined.com/rebateCodes?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadRebateCodes",
        "tags": [
          "upload-rebate-codes"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RebateCodeUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/RebateCodeUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/paymentTypes": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of payment types",
        "description": "**POST** `https://api.zoined.com/paymentTypes?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadPaymentTypes",
        "tags": [
          "upload-payment-types"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PaymentTypeUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/PaymentTypeUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/purchaseOrders": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of purchase orders",
        "description": "**POST** `https://api.zoined.com/purchaseOrders?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadPurchaseOrders",
        "tags": [
          "upload-purchase-orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PurchaseOrdersUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/PurchaseOrdersUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/salesOffers": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of sales offers",
        "description": "**POST** `https://api.zoined.com/salesOffers?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSalesOffers",
        "tags": [
          "upload-sales-offers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesOffersUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesOffersUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/salesOrders": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of sales orders",
        "description": "**POST** `https://api.zoined.com/salesOrders?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSalesOrders",
        "tags": [
          "upload-sales-orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesOrdersUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesOrdersUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/salesSummaries": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload sales summaries",
        "description": "**POST** `https://api.zoined.com/salesSummaries?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSalesSummary",
        "tags": [
          "upload-sales-summary"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesSummaryUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesSummaryUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/salesPayments": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload sales payments",
        "description": "**POST** `https://api.zoined.com/salesPayments?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSalesPayment",
        "tags": [
          "upload-sales-payment"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SalesPaymentUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SalesPaymentUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/giftcardPayments": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of giftcard payments",
        "description": "**POST** `https://api.zoined.com/giftcardPayments?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadGiftcardPayments",
        "tags": [
          "upload-giftcard-payments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/GiftcardPaymentUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/GiftcardPaymentUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/accounting": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload accounting data",
        "description": "**POST** `https://api.zoined.com/accounting?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadAccounting",
        "tags": [
          "upload-accounting"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/AccountingUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/AccountingUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/bookings": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of bookings",
        "description": "**POST** `https://api.zoined.com/bookings?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadBookings",
        "tags": [
          "upload-bookings"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/BookingUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/BookingUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/suppliers": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of suppliers",
        "description": "**POST** `https://api.zoined.com/suppliers?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadSuppliers",
        "tags": [
          "upload-suppliers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SupplierUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/SupplierUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/visitors": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of visitors",
        "description": "**POST** `https://api.zoined.com/visitors?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadVisitors",
        "tags": [
          "upload-visitors"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VisitorUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/VisitorUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/visitorDemographics": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of visitor demographics",
        "description": "**POST** `https://api.zoined.com/visitorDemographics?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadVisitorDemographics",
        "tags": [
          "upload-visitor-demographics"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/VisitorDemographicsUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/VisitorDemographicsUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/idMapping": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of identifier mappings",
        "description": "**POST** `https://api.zoined.com/idMapping?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadIdMapping",
        "tags": [
          "upload-id-mapping"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/IdMappingUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/IdMappingUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/budgets/{type}": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload list of budget entries",
        "description": "**POST** `https://api.zoined.com/budgets/budget?dryRun=false&isoWeeks=true`\n",
        "operationId": "uploadBudgets",
        "tags": [
          "upload-budgets"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "description": "Type for the budget. Currently supported types are `budget` and `forecast`.",
            "required": true,
            "example": "budget",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isoWeeks",
            "in": "query",
            "description": "For weekly budgets whether to use ISO 8610 weeks or US weeks (default true).",
            "required": false,
            "example": "true",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/BudgetEntry"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "year": {
                          "type": "number",
                          "description": "Year this budget entry refers to",
                          "example": 2017
                        },
                        "month": {
                          "type": "number",
                          "description": "Month this budget entry refers to. Either month or week must be there.",
                          "example": 1
                        },
                        "week": {
                          "type": "number",
                          "description": "Week number this budget entry refers to. Either month or week must be there.",
                          "example": 12
                        },
                        "day": {
                          "type": "number",
                          "description": "Optional day this budget entry refers to",
                          "example": 1
                        },
                        "hour": {
                          "type": "number",
                          "description": "Optional hour this budget refers to. Day must be also specified if hour is specified.",
                          "example": 1
                        },
                        "dimensions": {
                          "type": "object",
                          "properties": {},
                          "additionalProperties": false,
                          "description": "Key-value pairs of dimensions and values for entry"
                        },
                        "metrics": {
                          "type": "object",
                          "properties": {},
                          "additionalProperties": false,
                          "description": "Key-value pairs of metric values for given time and dimensions"
                        }
                      },
                      "required": [
                        "year",
                        "dimensions",
                        "metrics"
                      ],
                      "additionalProperties": false,
                      "example": {
                        "year": 2017,
                        "month": 1,
                        "week": 12,
                        "day": 1,
                        "hour": 1,
                        "dimensions": {},
                        "metrics": {}
                      }
                    },
                    "example": [
                      {
                        "year": 2017,
                        "month": 1,
                        "week": 12,
                        "day": 1,
                        "hour": 1,
                        "dimensions": {},
                        "metrics": {}
                      }
                    ]
                  }
                ],
                "description": ""
              }
            }
          }
        }
      }
    },
    "/updateTime": {
      "post": {
        "responses": {
          "200": {
            "$ref": "#/components/responses/SuccessRequestHasBeenProcessedSuccessfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidMalformedOrMissingJSONDataInRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Upload last updated time stamps",
        "description": "**POST** `https://api.zoined.com/updateTime?dryRun=false&separator=%3B&encoding=utf-8`\n",
        "operationId": "uploadLastUpdated",
        "tags": [
          "upload-last-updated"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/DryRunQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SeparatorQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EncodingQueryParameter"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateTimeUploadPayloadJson"
                  }
                ],
                "description": ""
              }
            },
            "text/csv": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTimeUploadPayloadCsv"
              }
            }
          }
        }
      }
    },
    "/v2/download/sales.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transaction_id": {
                      "type": "string",
                      "description": "Unique ID for the transaction",
                      "example": "242224"
                    },
                    "line_item_id": {
                      "type": "string",
                      "description": "Secondary transaction identifier",
                      "example": "1"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID for identified customer",
                      "example": "32"
                    },
                    "delivery_customer_id": {
                      "type": "string",
                      "description": "Delivery customer ID for identified customer",
                      "example": "35"
                    },
                    "sales_date": {
                      "type": "string",
                      "description": "Sales date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "sales_time": {
                      "type": "string",
                      "description": "Sales time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "XYZ"
                    },
                    "product_quantity": {
                      "type": "number",
                      "description": "Sold quantity",
                      "example": 2
                    },
                    "product_unit_price": {
                      "type": "number",
                      "description": "Unit price for single product",
                      "example": 10
                    },
                    "sales_value": {
                      "type": "number",
                      "description": "Total sales amount including tax",
                      "example": 20
                    },
                    "sales_value_wo_vat": {
                      "type": "number",
                      "description": "Total sales amount without tax",
                      "example": 20
                    },
                    "compensation_amount": {
                      "type": "number",
                      "description": "Optional compensation paid for this sale",
                      "example": 3
                    },
                    "rebate": {
                      "type": "number",
                      "description": "Amount of rebate given including tax",
                      "example": 0
                    },
                    "rebate_wo_vat": {
                      "type": "number",
                      "description": "Amount of rebate given without tax",
                      "example": 0
                    },
                    "currency": {
                      "type": "string",
                      "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "payment_method": {
                      "type": "string",
                      "description": "Payment method",
                      "example": "Visa"
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "13"
                    },
                    "parent_product_id": {
                      "type": "string",
                      "description": "Parent Product ID",
                      "example": "123"
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Total purchase price including tax",
                      "example": 5
                    },
                    "purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Total purchase price without tax",
                      "example": 5
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit ID",
                      "example": "540"
                    },
                    "deparment_id": {
                      "type": "string",
                      "description": "Department unit ID",
                      "example": "5400"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person / cashier ID",
                      "example": "5402101"
                    },
                    "sales_representative_id": {
                      "type": "string",
                      "description": "Responsible sales person ID",
                      "example": "5402100"
                    },
                    "campaign_id": {
                      "type": "string",
                      "description": "Campaign ID",
                      "example": "6344"
                    },
                    "delivery_date": {
                      "type": "string",
                      "description": "Delivery date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "delivery_time": {
                      "type": "string",
                      "description": "Delivery time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "invoice_date": {
                      "type": "string",
                      "description": "Invoice date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "invoice_time": {
                      "type": "string",
                      "description": "Invoice time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "register_id": {
                      "type": "string",
                      "description": "Cash register ID",
                      "example": "54022"
                    },
                    "table_number": {
                      "type": "string",
                      "description": "Table number",
                      "example": "54"
                    },
                    "rebate_code_id": {
                      "type": "string",
                      "description": "Rebate Code ID",
                      "example": "3313V"
                    },
                    "booking_id": {
                      "type": "string",
                      "description": "12 (string, optional) - Optional reference to booking that generated this sale.",
                      "example": "B1224"
                    },
                    "booking_line_id": {
                      "type": "string",
                      "description": "Optional booking line that corresponds to this sale.",
                      "example": "1"
                    },
                    "event_id": {
                      "type": "string",
                      "description": "Event ID",
                      "example": "221"
                    },
                    "sales_order_id": {
                      "type": "string",
                      "description": "56 (string, optional) - Optional sales order that generated this sale.",
                      "example": "SO1234"
                    },
                    "sales_order_line_id": {
                      "type": "string",
                      "description": "Optional sales order line that corresponds to this sale.",
                      "example": "1"
                    },
                    "parent_line_id": {
                      "type": "string",
                      "description": "Line item id for parent line item in this sales transaction that this line is child to.",
                      "example": "1"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "User defined custom field 1",
                      "example": "extra info"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "User defined custom field 2",
                      "example": "extra info"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "User defined custom field 3",
                      "example": "extra info"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "User defined custom field 4",
                      "example": "extra info"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "User defined custom field 5",
                      "example": "extra info"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "User defined custom field 6",
                      "example": "extra info"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "User defined custom field 7",
                      "example": "extra info"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "User defined custom field 8",
                      "example": "extra info"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "User defined custom field 9",
                      "example": "extra info"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "User defined custom field 10",
                      "example": "extra info"
                    },
                    "custom_field_11": {
                      "type": "string",
                      "description": "User defined custom field 11",
                      "example": "extra info"
                    },
                    "custom_field_12": {
                      "type": "string",
                      "description": "User defined custom field 12",
                      "example": "extra info"
                    },
                    "custom_field_13": {
                      "type": "string",
                      "description": "User defined custom field 13",
                      "example": "extra info"
                    },
                    "custom_field_14": {
                      "type": "string",
                      "description": "User defined custom field 14",
                      "example": "extra info"
                    },
                    "custom_field_15": {
                      "type": "string",
                      "description": "User defined custom field 15",
                      "example": "extra info"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    },
                    "custom_metric_6": {
                      "type": "number",
                      "description": "Custom metric 6",
                      "example": 1
                    },
                    "custom_metric_7": {
                      "type": "number",
                      "description": "Custom metric 7",
                      "example": 100
                    },
                    "custom_metric_8": {
                      "type": "number",
                      "description": "Custom metric 8",
                      "example": 2.2
                    },
                    "custom_metric_9": {
                      "type": "number",
                      "description": "Custom metric 9",
                      "example": 1.05
                    },
                    "custom_metric_10": {
                      "type": "number",
                      "description": "Custom metric 10",
                      "example": 10000
                    }
                  },
                  "required": [
                    "transaction_id",
                    "line_item_id",
                    "sales_date",
                    "sales_time",
                    "product_id",
                    "product_quantity",
                    "product_unit_price",
                    "sales_value"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "transaction_id": "242224",
                      "line_item_id": "1",
                      "customer_id": "32",
                      "delivery_customer_id": "35",
                      "sales_date": "2016-01-01",
                      "sales_time": "15:00:00",
                      "product_id": "XYZ",
                      "product_quantity": 2,
                      "product_unit_price": 10,
                      "sales_value": 20,
                      "sales_value_wo_vat": 20,
                      "compensation_amount": 3,
                      "rebate": 0,
                      "rebate_wo_vat": 0,
                      "currency": "EUR",
                      "payment_method": "Visa",
                      "supplier_id": "13",
                      "parent_product_id": "123",
                      "purchase_price": 5,
                      "purchase_price_wo_vat": 5,
                      "organisation_id": "540",
                      "deparment_id": "5400",
                      "salesperson_id": "5402101",
                      "sales_representative_id": "5402100",
                      "campaign_id": "6344",
                      "delivery_date": "2016-01-01",
                      "delivery_time": "15:00:00",
                      "invoice_date": "2016-01-01",
                      "invoice_time": "15:00:00",
                      "register_id": "54022",
                      "table_number": "54",
                      "rebate_code_id": "3313V",
                      "booking_id": "B1224",
                      "booking_line_id": "1",
                      "event_id": "221",
                      "sales_order_id": "SO1234",
                      "sales_order_line_id": "1",
                      "parent_line_id": "1",
                      "custom_field_1": "extra info",
                      "custom_field_2": "extra info",
                      "custom_field_3": "extra info",
                      "custom_field_4": "extra info",
                      "custom_field_5": "extra info",
                      "custom_field_6": "extra info",
                      "custom_field_7": "extra info",
                      "custom_field_8": "extra info",
                      "custom_field_9": "extra info",
                      "custom_field_10": "extra info",
                      "custom_field_11": "extra info",
                      "custom_field_12": "extra info",
                      "custom_field_13": "extra info",
                      "custom_field_14": "extra info",
                      "custom_field_15": "extra info",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000,
                      "custom_metric_6": 1,
                      "custom_metric_7": 100,
                      "custom_metric_8": 2.2,
                      "custom_metric_9": 1.05,
                      "custom_metric_10": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales transactions as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/sales.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadSalesTransactionsJson",
        "tags": [
          "download-sales-transactions"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "How many entries to return.",
            "required": false,
            "example": "1000",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Which starting offset to return data from",
            "required": false,
            "example": "0",
            "schema": {
              "type": "number"
            }
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/sales.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "transaction_id; line_item_id; customer_id; sales_date; sales_time; product_id; product_quantity; product_unit_price; sales_value; sales_value_wo_vat; rebate; rebate_wo_vat; sales_currency; payment_method; supplier_id; purchase_price; purchase_price_wo_vat; organisation_id; salesperson_id; delivery_date; delivery_time; invoice_date; invoice_time;  register_id; rebate_code_id\n242224 ; 1 ; 32 ; 2016-01-01 ; 15:00:00 ; XYZ ;2;10;20;20;0;0; EUR ; Visa ; 13 ;5;5; 540 ; 5402101 ; 6344 ; 2016-01-01 ; 15:00:00 ; 2016-01-01 ; 15:00:00 ; 54022 ; 3233V\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales transactions as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/sales.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadSalesTransactionsCsv",
        "tags": [
          "download-sales-transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesOrders.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transaction_id": {
                      "type": "string",
                      "description": "Unique ID for the transaction",
                      "example": "er/232/f31"
                    },
                    "line_item_id": {
                      "type": "string",
                      "description": "Secondary transaction identifier",
                      "example": "1"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID for identified customer",
                      "example": "32"
                    },
                    "delivery_customer_id": {
                      "type": "string",
                      "description": "Delivery customer ID for identified customer",
                      "example": "35"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "XYZ"
                    },
                    "product_quantity": {
                      "type": "number",
                      "description": "Sold quantity",
                      "example": 2
                    },
                    "delivered_quantity": {
                      "type": "number",
                      "description": "Delivered quantity",
                      "example": 1
                    },
                    "planned_quantity": {
                      "type": "number",
                      "description": "Planned quantity",
                      "example": 2
                    },
                    "product_unit_price": {
                      "type": "number",
                      "description": "Unit price for single product",
                      "example": 10
                    },
                    "sales_value": {
                      "type": "number",
                      "description": "Total sales amount including tax",
                      "example": 20
                    },
                    "sales_value_wo_vat": {
                      "type": "number",
                      "description": "Total sales amount without tax",
                      "example": 20
                    },
                    "rebate": {
                      "type": "number",
                      "description": "Amount of rebate given including tax",
                      "example": 0
                    },
                    "rebate_wo_vat": {
                      "type": "number",
                      "description": "Amount of rebate given without tax",
                      "example": 0
                    },
                    "rebate_code_id": {
                      "type": "string",
                      "description": "Rebate Code ID",
                      "example": "3313V"
                    },
                    "currency": {
                      "type": "string",
                      "description": "Order currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "payment_method": {
                      "type": "string",
                      "description": "Payment method",
                      "example": "Invoice 30"
                    },
                    "tender_amount": {
                      "type": "number",
                      "description": "Amount paid with given payment method.",
                      "example": 20
                    },
                    "deposit_amount": {
                      "type": "number",
                      "description": "Amount of deposit paid for this order item.",
                      "example": 10
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "parent_product_id": {
                      "type": "string",
                      "description": "Parent Product ID",
                      "example": "123"
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Total purchase price including tax",
                      "example": 5
                    },
                    "purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Total purchase price without tax",
                      "example": 5
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "54011"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "order_date": {
                      "type": "string",
                      "description": "Order date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "order_time": {
                      "type": "string",
                      "description": "Order time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "invoice_date": {
                      "type": "string",
                      "description": "Invoice date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "invoice_time": {
                      "type": "string",
                      "description": "Invoice time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "arrival_date": {
                      "type": "string",
                      "description": "Arrival date (yyyy-mm-dd)",
                      "example": "2016-01-03"
                    },
                    "arrival_time": {
                      "type": "string",
                      "description": "Arrival time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "order_status": {
                      "type": "number",
                      "description": "Order status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled",
                      "example": 1
                    },
                    "order_type": {
                      "type": "string",
                      "description": "Order type",
                      "example": "internal"
                    },
                    "gross_weight": {
                      "type": "number",
                      "description": "Gross weight for this order item",
                      "example": 123
                    },
                    "customer_order_number": {
                      "type": "string",
                      "description": "Optional order ID visible to end users",
                      "example": "12345"
                    },
                    "sales_offer_id": {
                      "type": "string",
                      "description": "Optional transaction ID for offer this order was created from",
                      "example": "123"
                    },
                    "sales_offer_line_id": {
                      "type": "string",
                      "description": "Optional line ID for offer this order was created from",
                      "example": "1"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "User defined custom field 1",
                      "example": "extra info"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "User defined custom field 2",
                      "example": "extra info"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "User defined custom field 3",
                      "example": "extra info"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "User defined custom field 4",
                      "example": "extra info"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "User defined custom field 5",
                      "example": "extra info"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "User defined custom field 6",
                      "example": "extra info"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "User defined custom field 7",
                      "example": "extra info"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "User defined custom field 8",
                      "example": "extra info"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "User defined custom field 9",
                      "example": "extra info"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "User defined custom field 10",
                      "example": "extra info"
                    },
                    "custom_field_11": {
                      "type": "string",
                      "description": "User defined custom field 11",
                      "example": "extra info"
                    },
                    "custom_field_12": {
                      "type": "string",
                      "description": "User defined custom field 12",
                      "example": "extra info"
                    },
                    "custom_field_13": {
                      "type": "string",
                      "description": "User defined custom field 13",
                      "example": "extra info"
                    },
                    "custom_field_14": {
                      "type": "string",
                      "description": "User defined custom field 14",
                      "example": "extra info"
                    },
                    "custom_field_15": {
                      "type": "string",
                      "description": "User defined custom field 15",
                      "example": "extra info"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "transaction_id",
                    "line_item_id",
                    "product_id",
                    "product_quantity",
                    "product_unit_price",
                    "sales_value"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "transaction_id": "er/232/f31",
                      "line_item_id": "1",
                      "customer_id": "32",
                      "delivery_customer_id": "35",
                      "product_id": "XYZ",
                      "product_quantity": 2,
                      "delivered_quantity": 1,
                      "planned_quantity": 2,
                      "product_unit_price": 10,
                      "sales_value": 20,
                      "sales_value_wo_vat": 20,
                      "rebate": 0,
                      "rebate_wo_vat": 0,
                      "rebate_code_id": "3313V",
                      "currency": "EUR",
                      "payment_method": "Invoice 30",
                      "tender_amount": 20,
                      "deposit_amount": 10,
                      "supplier_id": "221",
                      "parent_product_id": "123",
                      "purchase_price": 5,
                      "purchase_price_wo_vat": 5,
                      "organisation_id": "540",
                      "department_id": "54011",
                      "salesperson_id": "5402101",
                      "order_date": "2016-01-01",
                      "order_time": "15:00:00",
                      "invoice_date": "2016-01-01",
                      "invoice_time": "15:00:00",
                      "arrival_date": "2016-01-03",
                      "arrival_time": "15:00:00",
                      "order_status": 1,
                      "order_type": "internal",
                      "gross_weight": 123,
                      "customer_order_number": "12345",
                      "sales_offer_id": "123",
                      "sales_offer_line_id": "1",
                      "custom_field_1": "extra info",
                      "custom_field_2": "extra info",
                      "custom_field_3": "extra info",
                      "custom_field_4": "extra info",
                      "custom_field_5": "extra info",
                      "custom_field_6": "extra info",
                      "custom_field_7": "extra info",
                      "custom_field_8": "extra info",
                      "custom_field_9": "extra info",
                      "custom_field_10": "extra info",
                      "custom_field_11": "extra info",
                      "custom_field_12": "extra info",
                      "custom_field_13": "extra info",
                      "custom_field_14": "extra info",
                      "custom_field_15": "extra info",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales orders as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/salesOrders.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&order_status=3`\n",
        "operationId": "downloadSalesOrdersJson",
        "tags": [
          "download-sales-orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OrderStatusQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesOrders.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "transaction_id;line_item_id;customer_id;product_id;product_quantity;product_unit_price;sales_value;sales_value_wo_vat;rebate;rebate_wo_vat;sales_currency;payment_method;supplier_id;purchase_price;purchase_price_wo_vat;piece_good;organisation_id;salesperson_id;order_date;order_time;invoice_date;invoice_time;order_status\ner/232/f31; 1; 32; XYZ; 2; 10; 20; 20; 0; 0; EUR; Invoice 30; ; 5; 5; EUR; true; 540; 5402101; 2016-01-01; 15:00:00; 2016-01-01; 15:00:00; 1\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales orders as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/salesOrders.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&order_status=3`\n",
        "operationId": "downloadSalesOrdersCsv",
        "tags": [
          "download-sales-orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OrderStatusQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesOffers.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transaction_id": {
                      "type": "string",
                      "description": "Unique ID for the transaction",
                      "example": "er/232/f31"
                    },
                    "line_item_id": {
                      "type": "string",
                      "description": "Secondary transaction identifier",
                      "example": "1"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID for identified customer",
                      "example": "32"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "XYZ"
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "parent_product_id": {
                      "type": "string",
                      "description": "Parent Product ID",
                      "example": "123"
                    },
                    "product_quantity": {
                      "type": "number",
                      "description": "Sold quantity",
                      "example": 2
                    },
                    "product_unit_price": {
                      "type": "number",
                      "description": "Unit price for single product",
                      "example": 10
                    },
                    "sales_value": {
                      "type": "number",
                      "description": "Total sales amount including tax",
                      "example": 20
                    },
                    "sales_value_wo_vat": {
                      "type": "number",
                      "description": "Total sales amount without tax",
                      "example": 20
                    },
                    "rebate": {
                      "type": "number",
                      "description": "Amount of rebate given including tax",
                      "example": 0
                    },
                    "rebate_wo_vat": {
                      "type": "number",
                      "description": "Amount of rebate given without tax",
                      "example": 0
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Total purchase price including tax",
                      "example": 5
                    },
                    "purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Total purchase price without tax",
                      "example": 5
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit ID",
                      "example": "540"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "offer_date": {
                      "type": "string",
                      "description": "Order date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "offer_time": {
                      "type": "string",
                      "description": "Order time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "valid_date": {
                      "type": "string",
                      "description": "Invoice date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "valid_time": {
                      "type": "string",
                      "description": "Invoice time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "offer_status": {
                      "type": "number",
                      "description": "Offer status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled",
                      "example": 1
                    },
                    "offer_type": {
                      "type": "string",
                      "description": "Offer type",
                      "example": "internal"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "User defined custom field 1",
                      "example": "extra info"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "User defined custom field 2",
                      "example": "extra info"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "User defined custom field 3",
                      "example": "extra info"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "User defined custom field 4",
                      "example": "extra info"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "User defined custom field 5",
                      "example": "extra info"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "User defined custom field 6",
                      "example": "extra info"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "User defined custom field 7",
                      "example": "extra info"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "User defined custom field 8",
                      "example": "extra info"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "User defined custom field 9",
                      "example": "extra info"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "User defined custom field 10",
                      "example": "extra info"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "transaction_id",
                    "line_item_id",
                    "product_id",
                    "product_quantity",
                    "product_unit_price",
                    "sales_value"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "transaction_id": "er/232/f31",
                      "line_item_id": "1",
                      "customer_id": "32",
                      "product_id": "XYZ",
                      "supplier_id": "221",
                      "parent_product_id": "123",
                      "product_quantity": 2,
                      "product_unit_price": 10,
                      "sales_value": 20,
                      "sales_value_wo_vat": 20,
                      "rebate": 0,
                      "rebate_wo_vat": 0,
                      "purchase_price": 5,
                      "purchase_price_wo_vat": 5,
                      "currency": "EUR",
                      "organisation_id": "540",
                      "salesperson_id": "5402101",
                      "offer_date": "2016-01-01",
                      "offer_time": "15:00:00",
                      "valid_date": "2016-01-01",
                      "valid_time": "15:00:00",
                      "offer_status": 1,
                      "offer_type": "internal",
                      "custom_field_1": "extra info",
                      "custom_field_2": "extra info",
                      "custom_field_3": "extra info",
                      "custom_field_4": "extra info",
                      "custom_field_5": "extra info",
                      "custom_field_6": "extra info",
                      "custom_field_7": "extra info",
                      "custom_field_8": "extra info",
                      "custom_field_9": "extra info",
                      "custom_field_10": "extra info",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales offers as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/salesOffers.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&offer_status=3`\n",
        "operationId": "downloadSalesOffersJson",
        "tags": [
          "download-sales-offers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OfferStatusQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesOffers.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "transaction_id;line_item_id;customer_id;product_id;product_quantity;product_unit_price;sales_value;sales_value_wo_vat;rebate;rebate_wo_vat;currency;supplier_id;purchase_price;purchase_price_wo_vat;organisation_id;salesperson_id;offer_date;offer_time;valid_date;valid_time;offer_status;offer_type\ner/232/f31; 1; 32; XYZ; 2; 10; 20; 20; 0; 0; EUR; ; 5; 5; 540; 5402101; 2016-01-01; 15:00:00; 2016-01-01; 15:00:00; 1;internal\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales offers as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/salesOffers.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&offer_status=3`\n",
        "operationId": "downloadSalesOffersCsv",
        "tags": [
          "download-sales-offers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OfferStatusQueryParameter"
          }
        ]
      }
    },
    "/v2/download/purchaseOrders.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transaction_id": {
                      "type": "string",
                      "description": "Unique ID for the transaction",
                      "example": "er/232/f31"
                    },
                    "line_item_id": {
                      "type": "string",
                      "description": "Secondary transaction identifier",
                      "example": "1"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "XYZ"
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "parent_product_id": {
                      "type": "string",
                      "description": "Parent Product ID",
                      "example": "123"
                    },
                    "ordered_quantity": {
                      "type": "number",
                      "description": "Purchased quantity",
                      "example": 2
                    },
                    "delivered_quantity": {
                      "type": "number",
                      "description": "Delivered quantity",
                      "example": 2
                    },
                    "product_unit_price": {
                      "type": "number",
                      "description": "Unit price including tax",
                      "example": 2.5
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Total purchase price including tax",
                      "example": 5
                    },
                    "purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Total purchase price without tax",
                      "example": 4
                    },
                    "rebate": {
                      "type": "number",
                      "description": "Amount of rebate given including tax",
                      "example": 0
                    },
                    "rebate_wo_vat": {
                      "type": "number",
                      "description": "Amount of rebate given without tax",
                      "example": 0
                    },
                    "retail_value": {
                      "type": "number",
                      "description": "Total retail (sales) value including tax",
                      "example": 10
                    },
                    "retail_value_wo_vat": {
                      "type": "number",
                      "description": "Total retail (sales) value without tax",
                      "example": 8
                    },
                    "sales_unit": {
                      "type": "string",
                      "description": "Unit of packaging",
                      "example": "pcs"
                    },
                    "gross_weight": {
                      "type": "number",
                      "description": "Total weight of this order item",
                      "example": 12.5
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "54011"
                    },
                    "purchaser_id": {
                      "type": "string",
                      "description": "Purchaser ID",
                      "example": "5400"
                    },
                    "order_date": {
                      "type": "string",
                      "description": "Order date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "order_time": {
                      "type": "string",
                      "description": "Order time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "delivery_date": {
                      "type": "string",
                      "description": "Delivery date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "delivery_time": {
                      "type": "string",
                      "description": "Delivery time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "arrival_date": {
                      "type": "string",
                      "description": "Arrival date (yyyy-mm-dd)",
                      "example": "2016-01-03"
                    },
                    "arrival_time": {
                      "type": "string",
                      "description": "Arrival time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "order_status": {
                      "type": "number",
                      "description": "Order status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled",
                      "example": 1
                    },
                    "order_type": {
                      "type": "string",
                      "description": "Order Type",
                      "example": "Express"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "User defined custom field 1",
                      "example": "extra info"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "User defined custom field 2",
                      "example": "extra info"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "User defined custom field 3",
                      "example": "extra info"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "User defined custom field 4",
                      "example": "extra info"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "User defined custom field 5",
                      "example": "extra info"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "User defined custom field 6",
                      "example": "extra info"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "User defined custom field 7",
                      "example": "extra info"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "User defined custom field 8",
                      "example": "extra info"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "User defined custom field 9",
                      "example": "extra info"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "User defined custom field 10",
                      "example": "extra info"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "transaction_id",
                    "line_item_id",
                    "product_id",
                    "ordered_quantity",
                    "organisation_id",
                    "order_date",
                    "order_status"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "transaction_id": "er/232/f31",
                      "line_item_id": "1",
                      "product_id": "XYZ",
                      "supplier_id": "221",
                      "parent_product_id": "123",
                      "ordered_quantity": 2,
                      "delivered_quantity": 2,
                      "product_unit_price": 2.5,
                      "currency": "EUR",
                      "purchase_price": 5,
                      "purchase_price_wo_vat": 4,
                      "rebate": 0,
                      "rebate_wo_vat": 0,
                      "retail_value": 10,
                      "retail_value_wo_vat": 8,
                      "sales_unit": "pcs",
                      "gross_weight": 12.5,
                      "organisation_id": "540",
                      "department_id": "54011",
                      "purchaser_id": "5400",
                      "order_date": "2016-01-01",
                      "order_time": "15:00:00",
                      "delivery_date": "2016-01-01",
                      "delivery_time": "15:00:00",
                      "arrival_date": "2016-01-03",
                      "arrival_time": "15:00:00",
                      "order_status": 1,
                      "order_type": "Express",
                      "custom_field_1": "extra info",
                      "custom_field_2": "extra info",
                      "custom_field_3": "extra info",
                      "custom_field_4": "extra info",
                      "custom_field_5": "extra info",
                      "custom_field_6": "extra info",
                      "custom_field_7": "extra info",
                      "custom_field_8": "extra info",
                      "custom_field_9": "extra info",
                      "custom_field_10": "extra info",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download purchase orders as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/purchaseOrders.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&order_status=3`\n",
        "operationId": "downloadPurchaseOrdersJson",
        "tags": [
          "download-purchase-orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OrderStatusQueryParameter"
          }
        ]
      }
    },
    "/v2/download/purchaseOrders.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "transaction_id;line_item_id;product_id;ordered_quantity;delivered_quantity;supplier_id;purchase_price;purchase_price_wo_vat;currency;organisation_id;order_date;order_time;delivery_date;delivery_time;order_status\ner/232/f31; 1; XYZ; 2; 2; 1; 5.50; 4.10; EUR; 540; 2016-01-01; 15:00:00; 2016-01-01; 15:00:00; 1\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download purchase orders as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/purchaseOrders.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&order_status=3`\n",
        "operationId": "downloadPurchaseOrdersCsv",
        "tags": [
          "download-purchase-orders"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OrderStatusQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesSummaries.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sales_date": {
                      "type": "string",
                      "description": "Sales date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "sales_time": {
                      "type": "string",
                      "description": "Sales time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation/Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Store department ID",
                      "example": "5401"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "15:00:00"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID",
                      "example": "1234"
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "12"
                    },
                    "campaign_id": {
                      "type": "string",
                      "description": "Campaign ID",
                      "example": "123"
                    },
                    "rebate_code_id": {
                      "type": "string",
                      "description": "Rebate Code ID",
                      "example": "3313V"
                    },
                    "sales_value": {
                      "type": "number",
                      "description": "Total sales amount including tax",
                      "example": 2000
                    },
                    "sales_value_wo_vat": {
                      "type": "number",
                      "description": "Total sales amount without tax",
                      "example": 1600
                    },
                    "sales_currency": {
                      "type": "string",
                      "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "rebate": {
                      "type": "number",
                      "description": "Amount of rebate given including tax",
                      "example": 0
                    },
                    "rebate_wo_vat": {
                      "type": "number",
                      "description": "Amount of rebate given without tax",
                      "example": 0
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Total purchase price including tax",
                      "example": 500
                    },
                    "purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Total purchase price without tax",
                      "example": 400
                    },
                    "product_quantity": {
                      "type": "number",
                      "description": "Sold quantity",
                      "example": 4
                    },
                    "number_of_transactions": {
                      "type": "number",
                      "description": "Number of receipts",
                      "example": 2
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "User defined custom field 1",
                      "example": "extra info"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "User defined custom field 2",
                      "example": "extra info"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "User defined custom field 3",
                      "example": "extra info"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "User defined custom field 4",
                      "example": "extra info"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "User defined custom field 5",
                      "example": "extra info"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "User defined custom field 6",
                      "example": "extra info"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "User defined custom field 7",
                      "example": "extra info"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "User defined custom field 8",
                      "example": "extra info"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "User defined custom field 9",
                      "example": "extra info"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "User defined custom field 10",
                      "example": "extra info"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "sales_date",
                    "organisation_id"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "sales_date": "2016-01-01",
                      "sales_time": "15:00:00",
                      "organisation_id": "540",
                      "department_id": "5401",
                      "salesperson_id": "15:00:00",
                      "customer_id": "1234",
                      "supplier_id": "12",
                      "campaign_id": "123",
                      "rebate_code_id": "3313V",
                      "sales_value": 2000,
                      "sales_value_wo_vat": 1600,
                      "sales_currency": "EUR",
                      "rebate": 0,
                      "rebate_wo_vat": 0,
                      "purchase_price": 500,
                      "purchase_price_wo_vat": 400,
                      "product_quantity": 4,
                      "number_of_transactions": 2,
                      "custom_field_1": "extra info",
                      "custom_field_2": "extra info",
                      "custom_field_3": "extra info",
                      "custom_field_4": "extra info",
                      "custom_field_5": "extra info",
                      "custom_field_6": "extra info",
                      "custom_field_7": "extra info",
                      "custom_field_8": "extra info",
                      "custom_field_9": "extra info",
                      "custom_field_10": "extra info",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales summaries as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/salesSummaries.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadSalesSummariesJson",
        "tags": [
          "download-sales-summaries"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesSummaries.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "sales_date; sales_time; organisation_id; department_id; salesperson_id; product_quantity; number_of_transactions; sales_value; sales_value_wo_vat; sales_currency; rebate; rebate_wo_vat; purchase_price; purchase_price_wo_vat\n2016-01-01 ; 15:00:00 ; 540;5401;'15:00:00'1;4;2;2150.1700.0; EUR ;0;0;1000.0;750.0\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales summaries as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/salesSummaries.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadSalesSummariesCsv",
        "tags": [
          "download-sales-summaries"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesPayments.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transaction_id": {
                      "type": "string",
                      "description": "Unique ID for the transaction",
                      "example": "242224"
                    },
                    "line_item_id": {
                      "type": "string",
                      "description": "Transaction line identifier",
                      "example": "1"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID for identified customer",
                      "example": "32"
                    },
                    "delivery_customer_id": {
                      "type": "string",
                      "description": "Delivery customer ID for identified customer",
                      "example": "35"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department unit ID",
                      "example": "5400"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "register_id": {
                      "type": "string",
                      "description": "Cash register ID",
                      "example": "54022"
                    },
                    "table_number": {
                      "type": "string",
                      "description": "Table number",
                      "example": "54"
                    },
                    "payment_method": {
                      "type": "string",
                      "description": "Payment method ID",
                      "example": "Visa"
                    },
                    "giftcard_payment_id": {
                      "type": "string",
                      "description": "Id to link to possible giftcard used for this payment.",
                      "example": "12345"
                    },
                    "sales_date": {
                      "type": "string",
                      "description": "Sales date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "sales_time": {
                      "type": "string",
                      "description": "Sales time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "product_quantity": {
                      "type": "number",
                      "description": "Sold quantity",
                      "example": 4
                    },
                    "sales_value": {
                      "type": "number",
                      "description": "Total sales amount including tax",
                      "example": 20
                    },
                    "sales_value_wo_vat": {
                      "type": "number",
                      "description": "Total sales amount without tax",
                      "example": 20
                    },
                    "rebate": {
                      "type": "number",
                      "description": "Amount of rebate given including tax",
                      "example": 0
                    },
                    "rebate_wo_vat": {
                      "type": "number",
                      "description": "Amount of rebate given without tax",
                      "example": 0
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Total purchase price including tax",
                      "example": 500
                    },
                    "purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Total purchase price without tax",
                      "example": 400
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "User defined custom field 1",
                      "example": "extra info"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "User defined custom field 2",
                      "example": "extra info"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "User defined custom field 3",
                      "example": "extra info"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "User defined custom field 4",
                      "example": "extra info"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "User defined custom field 5",
                      "example": "extra info"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "User defined custom field 6",
                      "example": "extra info"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "User defined custom field 7",
                      "example": "extra info"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "User defined custom field 8",
                      "example": "extra info"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "User defined custom field 9",
                      "example": "extra info"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "User defined custom field 10",
                      "example": "extra info"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    },
                    "custom_metric_6": {
                      "type": "number",
                      "description": "Custom metric 6",
                      "example": 1
                    },
                    "custom_metric_7": {
                      "type": "number",
                      "description": "Custom metric 7",
                      "example": 100
                    },
                    "custom_metric_8": {
                      "type": "number",
                      "description": "Custom metric 8",
                      "example": 2.2
                    },
                    "custom_metric_9": {
                      "type": "number",
                      "description": "Custom metric 9",
                      "example": 1.05
                    },
                    "custom_metric_10": {
                      "type": "number",
                      "description": "Custom metric 10",
                      "example": 10000
                    }
                  },
                  "required": [
                    "transaction_id",
                    "line_item_id",
                    "sales_date",
                    "sales_time",
                    "sales_value"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "transaction_id": "242224",
                      "line_item_id": "1",
                      "customer_id": "32",
                      "delivery_customer_id": "35",
                      "organisation_id": "540",
                      "department_id": "5400",
                      "salesperson_id": "5402101",
                      "register_id": "54022",
                      "table_number": "54",
                      "payment_method": "Visa",
                      "giftcard_payment_id": "12345",
                      "sales_date": "2016-01-01",
                      "sales_time": "15:00:00",
                      "product_quantity": 4,
                      "sales_value": 20,
                      "sales_value_wo_vat": 20,
                      "rebate": 0,
                      "rebate_wo_vat": 0,
                      "purchase_price": 500,
                      "purchase_price_wo_vat": 400,
                      "currency": "EUR",
                      "custom_field_1": "extra info",
                      "custom_field_2": "extra info",
                      "custom_field_3": "extra info",
                      "custom_field_4": "extra info",
                      "custom_field_5": "extra info",
                      "custom_field_6": "extra info",
                      "custom_field_7": "extra info",
                      "custom_field_8": "extra info",
                      "custom_field_9": "extra info",
                      "custom_field_10": "extra info",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000,
                      "custom_metric_6": 1,
                      "custom_metric_7": 100,
                      "custom_metric_8": 2.2,
                      "custom_metric_9": 1.05,
                      "custom_metric_10": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales payments as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/salesPayments.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadSalesPaymentsJson",
        "tags": [
          "download-sales-payments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesPayments.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "transaction_id;line_item_id;customer_id;sales_value;sales_value_wo_vat;rebate;rebate_wo_vat;currency;payment_method;organisation_id;salesperson_id;cancel_id;sales_date;sales_time;register_id;custom_field1;custom_field2\ner/232/f31;1 ; 32; 20; 20; 0; 0; EUR; Invoice; 540; 5402101; ; 2016-01-01; 15:00:00; 1;payment 1 ; extra pay\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales payments as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/salesPayments.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadSalesPaymentsCsv",
        "tags": [
          "download-sales-payments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/giftcardPayments.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "giftcard_id": {
                      "type": "string",
                      "description": "Unique ID for the gift card.",
                      "example": "A67gigMp"
                    },
                    "giftcard_number": {
                      "type": "string",
                      "description": "Gift card number",
                      "example": "7TON39"
                    },
                    "giftcard_status": {
                      "type": "string",
                      "description": "Gift card status",
                      "example": "Active"
                    },
                    "giftcard_balance": {
                      "type": "number",
                      "description": "Gift card balance",
                      "example": 50
                    },
                    "creation_date": {
                      "type": "string",
                      "description": "Gift card creation date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "creation_time": {
                      "type": "string",
                      "description": "Gift card creation time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "expiration_date": {
                      "type": "string",
                      "description": "Gift card expiration date (yyyy-mm-dd)",
                      "example": "2017-01-01"
                    },
                    "expiration_time": {
                      "type": "string",
                      "description": "Gift card expiration time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "sales_id": {
                      "type": "string",
                      "description": "Sales Id",
                      "example": "dbeba367"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation/Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Store department ID",
                      "example": "5401"
                    },
                    "register_id": {
                      "type": "string",
                      "description": "Cash register ID",
                      "example": "32"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID for identified customer",
                      "example": "32"
                    },
                    "payment_id": {
                      "type": "string",
                      "description": "Payment method ID",
                      "example": "A65A"
                    },
                    "payment_type": {
                      "type": "string",
                      "description": "Payment type",
                      "example": "Activation"
                    },
                    "payment_date": {
                      "type": "string",
                      "description": "Payment date (yyyy-mm-dd)",
                      "example": "2016-05-15"
                    },
                    "payment_time": {
                      "type": "string",
                      "description": "Payment time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "payment_value": {
                      "type": "number",
                      "description": "Payment amount",
                      "example": 20
                    },
                    "payment_currency": {
                      "type": "string",
                      "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "giftcard_id",
                    "giftcard_number",
                    "giftcard_status",
                    "creation_date",
                    "organisation_id",
                    "payment_id",
                    "payment_type",
                    "payment_date",
                    "payment_time",
                    "payment_value"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "giftcard_id": "A67gigMp",
                      "giftcard_number": "7TON39",
                      "giftcard_status": "Active",
                      "giftcard_balance": 50,
                      "creation_date": "2016-01-01",
                      "creation_time": "15:00:00",
                      "expiration_date": "2017-01-01",
                      "expiration_time": "15:00:00",
                      "sales_id": "dbeba367",
                      "organisation_id": "540",
                      "department_id": "5401",
                      "register_id": "32",
                      "salesperson_id": "5402101",
                      "customer_id": "32",
                      "payment_id": "A65A",
                      "payment_type": "Activation",
                      "payment_date": "2016-05-15",
                      "payment_time": "15:00:00",
                      "payment_value": 20,
                      "payment_currency": "EUR",
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download giftcard payments as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/giftcardPayments.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadGiftcardPaymentsJson",
        "tags": [
          "download-giftcard-payments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/giftcardPayments.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "giftcard_id; giftcard_number; giftcard_status; giftcard_balance; creation_date; organisation_id; payment_id; payment_type; payment_date; payment_time; payment_value; payment_currency; salesperson_id\nA67gigMp ; 7TON39 ; Active ; 50.00 ; 2016-01-01 ; 540 ; A65A ; Activation ; 2016-05-15 ; 18:00:00 ; 20.00; EUR ; '15:00:00'1\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download giftcard payments as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/giftcardPayments.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadGiftcardPaymentsCsv",
        "tags": [
          "download-giftcard-payments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/bookings.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "booking_id": {
                      "type": "string",
                      "description": "Unique ID for the booking",
                      "example": "er/232/f31"
                    },
                    "booking_line_id": {
                      "type": "string",
                      "description": "Secondary booking identifier",
                      "example": "1"
                    },
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID for identified customer",
                      "example": "32"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "XYZ"
                    },
                    "event_id": {
                      "type": "string",
                      "description": "A (string, optional) - Optional ID for the event this booking is done for.",
                      "example": "123"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "54011"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "booked_quantity": {
                      "type": "number",
                      "description": "Booked quantity",
                      "example": 2
                    },
                    "number_of_guests": {
                      "type": "number",
                      "description": "Number of guests booked",
                      "example": 2
                    },
                    "number_of_visits": {
                      "type": "number",
                      "description": "Number of visits allowed per guest within start and end dates.",
                      "example": 2
                    },
                    "sales_value": {
                      "type": "number",
                      "description": "Total booking sales amount including tax",
                      "example": 20
                    },
                    "sales_value_wo_vat": {
                      "type": "number",
                      "description": "Total booking sales amount without tax",
                      "example": 20
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "canceled": {
                      "type": "boolean",
                      "description": "True when this booking has been cancelled.",
                      "example": false
                    },
                    "booking_date": {
                      "type": "string",
                      "description": "Booking date (yyyy-mm-dd)",
                      "example": "2020-03-01"
                    },
                    "booking_time": {
                      "type": "string",
                      "description": "Booking time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "event_start_date": {
                      "type": "string",
                      "description": "Event start date (yyyy-mm-dd)",
                      "example": "2020-03-10"
                    },
                    "event_start_time": {
                      "type": "string",
                      "description": "Event start time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "event_end_date": {
                      "type": "string",
                      "description": "Event end date (yyyy-mm-dd)",
                      "example": "2020-03-11"
                    },
                    "event_end_time": {
                      "type": "string",
                      "description": "Event end time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "booking_type": {
                      "type": "string",
                      "description": "Booking type. Must be either event, ticket or room.",
                      "example": "event"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom field 1",
                      "example": "EU only"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom field 2",
                      "example": "EU only"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom field 3",
                      "example": "EU only"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom field 4",
                      "example": "EU only"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom field 5",
                      "example": "EU only"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "booking_id",
                    "booking_line_id",
                    "product_id",
                    "organisation_id",
                    "booked_quantity",
                    "sales_value",
                    "booking_date",
                    "event_start_date",
                    "booking_type"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "booking_id": "er/232/f31",
                      "booking_line_id": "1",
                      "customer_id": "32",
                      "product_id": "XYZ",
                      "event_id": "123",
                      "organisation_id": "540",
                      "department_id": "54011",
                      "salesperson_id": "5402101",
                      "booked_quantity": 2,
                      "number_of_guests": 2,
                      "number_of_visits": 2,
                      "sales_value": 20,
                      "sales_value_wo_vat": 20,
                      "currency": "EUR",
                      "canceled": false,
                      "booking_date": "2020-03-01",
                      "booking_time": "15:00:00",
                      "event_start_date": "2020-03-10",
                      "event_start_time": "15:00:00",
                      "event_end_date": "2020-03-11",
                      "event_end_time": "15:00:00",
                      "booking_type": "event",
                      "custom_field_1": "EU only",
                      "custom_field_2": "EU only",
                      "custom_field_3": "EU only",
                      "custom_field_4": "EU only",
                      "custom_field_5": "EU only",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download bookings as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/bookings.json?limit=1000&offset=0&start=2021-01-01&end=2021-01-31`\n",
        "operationId": "downloadBookingsJson",
        "tags": [
          "download-bookings"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter2"
          }
        ]
      }
    },
    "/v2/download/bookings.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "booking_id;booking_line_id;customer_id;product_id;booked_quantity;product_unit_price;sales_value;sales_value_wo_vat;currency;organisation_id;salesperson_id;event_id;booking_date;booking_time;event_start_date;event_start_time;event_end_date;event_end_time\ner/232/f31; 1; 32; XYZ; 2; 10; 20; 20; EUR; 540; 5402101; 6344; 2021-02-01; 15:30:00; 2021-03-01; 15:00:00; 2021-03-01; 15:00:00\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download bookings as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/bookings.csv?limit=1000&offset=0&start=2021-01-01&end=2021-01-31`\n",
        "operationId": "downloadBookingsCsv",
        "tags": [
          "download-bookings"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter2"
          }
        ]
      }
    },
    "/v2/download/accounting.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transaction_id": {
                      "type": "string",
                      "description": "Unique ID for this accounting receipt",
                      "example": "1234"
                    },
                    "line_item_id": {
                      "type": "string",
                      "description": "Unique ID for this accounting receipt line item",
                      "example": "1"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation/Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Store department ID",
                      "example": "5401"
                    },
                    "account_id": {
                      "type": "string",
                      "description": "Account ID",
                      "example": "1150"
                    },
                    "event_date": {
                      "type": "string",
                      "description": "Event date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "event_time": {
                      "type": "string",
                      "description": "Event time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "receipt_type": {
                      "type": "string",
                      "description": "Receipt type",
                      "enum": [
                        "income",
                        "cost",
                        "asset",
                        "liability"
                      ],
                      "x-enumDescriptions": {
                        "income": "This receipt is income for the company in income statement",
                        "cost": "This receipt is cost for the company in income statement",
                        "asset": "This receipt is balance sheet asset (eg. property) for the company",
                        "liability": "This receipt is balance sheet liability (eg. debt) for the company"
                      },
                      "example": "cost"
                    },
                    "receipt_number": {
                      "type": "string",
                      "description": "XZY (string, optional) - Optional bookkeeping receipt number",
                      "example": "12345"
                    },
                    "receipt_value": {
                      "type": "number",
                      "description": "Total amount of this line item",
                      "example": 2000
                    },
                    "receipt_value_wo_vat": {
                      "type": "number",
                      "description": "Total amount of this line item without taxes",
                      "example": 1600
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "cancelled": {
                      "type": "boolean",
                      "description": "If set then this receipt has been cancelled.",
                      "example": true
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    }
                  },
                  "required": [
                    "transaction_id",
                    "line_item_id",
                    "organisation_id",
                    "account_id",
                    "event_date",
                    "receipt_type"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "transaction_id": "1234",
                      "line_item_id": "1",
                      "organisation_id": "540",
                      "department_id": "5401",
                      "account_id": "1150",
                      "event_date": "2016-01-01",
                      "event_time": "15:00:00",
                      "receipt_type": "cost",
                      "receipt_number": "12345",
                      "receipt_value": 2000,
                      "receipt_value_wo_vat": 1600,
                      "currency": "EUR",
                      "cancelled": true,
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download accounting data as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/accounting.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadAccountingDataJson",
        "tags": [
          "download-accounting-data"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/accounting.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "transaction_id;line_item_id;receipt_type;receipt_value;receipt_value_wo_vat;currency;organisation_id;account_id;event_date;event_time;custom_field1\n1234-XY;1 ; cost; 20; 20; EUR; 540; 1230; 2016-01-01; 15:00:00; extra pay\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download accounting dat as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/accounting.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadAccountingDataCsv",
        "tags": [
          "download-accounting-data"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/cashierBalance.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Identifier of store for this balance",
                      "example": "ORG1"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Optional identifier of department for this balance",
                      "example": "DEP1"
                    },
                    "register_id": {
                      "type": "string",
                      "description": "Optional cash register identifier for this balance",
                      "example": "123"
                    },
                    "batch_id": {
                      "type": "string",
                      "description": "Optional batch or shift identifier for this balance row",
                      "example": "1"
                    },
                    "payment_method": {
                      "type": "string",
                      "description": "Payment method of this balance row",
                      "example": "Cash"
                    },
                    "sales_date": {
                      "type": "string",
                      "description": "Date of balance (yyyy-mm-dd)",
                      "example": "2018-01-01"
                    },
                    "sales_time": {
                      "type": "string",
                      "description": "Optional time of balance (hh:mm:ss)",
                      "example": "15:00:00"
                    },
                    "batch_status": {
                      "type": "string",
                      "description": "Optional status of this batch ID",
                      "example": "OK"
                    },
                    "transaction_count": {
                      "type": "number",
                      "description": "Number of transactions for this shift and payment method",
                      "example": 9
                    },
                    "shift_amount": {
                      "type": "number",
                      "description": "Total amount of payments for this shift and payment method",
                      "example": 1000
                    },
                    "over_short": {
                      "type": "number",
                      "description": "Difference in money between sales and shift amounts",
                      "example": 100
                    },
                    "cash_dropped": {
                      "type": "number",
                      "description": "How much cash was dropped from register during this shift",
                      "example": 0
                    },
                    "cash_paid_out": {
                      "type": "number",
                      "description": "How much cash was paid out from register during this shift",
                      "example": 50
                    },
                    "currency": {
                      "type": "string",
                      "description": "Shift currency as ISO 4217 currency code. Required if multiple currencies are used by the customer.",
                      "example": "EUR"
                    }
                  },
                  "required": [
                    "organisation_id",
                    "payment_method",
                    "sales_date",
                    "transaction_count",
                    "shift_amount"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "ORG1",
                      "department_id": "DEP1",
                      "register_id": "123",
                      "batch_id": "1",
                      "payment_method": "Cash",
                      "sales_date": "2018-01-01",
                      "sales_time": "15:00:00",
                      "batch_status": "OK",
                      "transaction_count": 9,
                      "shift_amount": 1000,
                      "over_short": 100,
                      "cash_dropped": 0,
                      "cash_paid_out": 50,
                      "currency": "EUR"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download cashier balances as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/cashierBalance.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadCashierBalanceJson",
        "tags": [
          "download-cashier-balance"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/cashierBalance.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;shift_amount;over_short;cash_dropped;cash_paid_out;currency;payment_method;batch_id;batch_status;sales_date;sales_time;register_id\n32; 20; 25; 0; 0; EUR; Invoice; 5402101; OK; 2016-01-01; 15:00:00; 1\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download cashier balances as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/cashierBalance.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadCashierBalanceCsv",
        "tags": [
          "download-cashier-balance"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/customerFeedbacks.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "feedback_id": {
                      "type": "string",
                      "description": "Unique ID for this feedback entry",
                      "example": "xyz"
                    },
                    "respondent_id": {
                      "type": "string",
                      "description": "Optional ID for survey respondent. Can be used to group all responses by single respondent.",
                      "example": "1234"
                    },
                    "survey_id": {
                      "type": "string",
                      "description": "Optional ID for survey. Can be used to separate responses between different surveys.",
                      "example": "Survey 1"
                    },
                    "question_id": {
                      "type": "string",
                      "description": "Optional ID for feedback question. Should be used if multiple separate feedback questions are needed.",
                      "example": "Q1"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Identifier of store this feedback entry refers to",
                      "example": "ORG1"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Optional identifier of department this feedback entry refers to",
                      "example": "DEP1"
                    },
                    "feedback_date": {
                      "type": "string",
                      "description": "Date of feedback (yyyy-mm-dd)",
                      "example": "2018-01-01"
                    },
                    "feedback_time": {
                      "type": "string",
                      "description": "Optional time of feedback (hh:mm:ss)",
                      "example": "15:00:00"
                    },
                    "feedback_type": {
                      "type": "string",
                      "description": "Optional type of feedback",
                      "example": "Store survey"
                    },
                    "main_feedback": {
                      "type": "boolean",
                      "description": "Is this main (overall grade) feedback. Default is true",
                      "example": true
                    },
                    "grade": {
                      "type": "number",
                      "description": "Numerical grade for feedback",
                      "example": 9
                    },
                    "grade_total": {
                      "type": "number",
                      "description": "Optional numerical total grade calculated by source (eg. Google Review) for feedback",
                      "example": 8.5
                    },
                    "comments": {
                      "type": "string",
                      "description": "Optional free form feedback",
                      "example": "Great service today!"
                    },
                    "comments_en": {
                      "type": "string",
                      "description": "Optional free form feedback translated in English",
                      "example": "Great service today!"
                    },
                    "review_url": {
                      "type": "string",
                      "description": "Google review URL",
                      "example": "https://www.google.com/maps/reviews?data=XYZ"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    }
                  },
                  "required": [
                    "feedback_id",
                    "organisation_id",
                    "feedback_date",
                    "grade"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "feedback_id": "xyz",
                      "respondent_id": "1234",
                      "survey_id": "Survey 1",
                      "question_id": "Q1",
                      "organisation_id": "ORG1",
                      "department_id": "DEP1",
                      "feedback_date": "2018-01-01",
                      "feedback_time": "15:00:00",
                      "feedback_type": "Store survey",
                      "main_feedback": true,
                      "grade": 9,
                      "grade_total": 8.5,
                      "comments": "Great service today!",
                      "comments_en": "Great service today!",
                      "review_url": "https://www.google.com/maps/reviews?data=XYZ",
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download customer feedback as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/customerFeedbacks.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadCustomerFeedbackJson",
        "tags": [
          "download-customer-feedback"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/customerFeedbacks.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "feedback_id;organisation_id;department_id;feedback_date;feedback_time;feedback_type;grade;comments\nxyz;ORG1;DEP1;2018-01-01;15:00:00;\"Store survey\";9;\"Great service today!\"\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download customer feedback as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/customerFeedbacks.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadCustomerFeedbackCsv",
        "tags": [
          "download-customer-feedback"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/inventoryTransactions.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / Store ID",
                      "example": "540"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5401"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "54011"
                    },
                    "operator_id": {
                      "type": "string",
                      "description": "Operator ID",
                      "example": "5402"
                    },
                    "movement_date": {
                      "type": "string",
                      "description": "Date of transaction (yyyy-mm-dd)",
                      "example": "2016-02-01"
                    },
                    "movement_time": {
                      "type": "string",
                      "description": "Time of transaction (HH:mm:ss).",
                      "example": "15:00:00"
                    },
                    "delivered_date": {
                      "type": "string",
                      "description": "Date of transaction completion (yyyy-mm-dd)",
                      "example": "2016-02-02"
                    },
                    "delivered_time": {
                      "type": "string",
                      "description": "Time of transaction completion (HH:mm:ss).",
                      "example": "15:00:00"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "1 (string, required) - Product ID",
                      "example": "123"
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "parent_product_id": {
                      "type": "string",
                      "description": "Parent Product ID",
                      "example": "123"
                    },
                    "quantity": {
                      "type": "number",
                      "description": "Quantity moved from/to inventory",
                      "example": 100
                    },
                    "delivered_quantity": {
                      "type": "number",
                      "description": "Final quantity moved from/to inventory after completion.",
                      "example": 90
                    },
                    "expected_quantity": {
                      "type": "number",
                      "description": "Quantity expected in inventory (for stock takes).",
                      "example": 110
                    },
                    "movement_type": {
                      "type": "string",
                      "description": "Movement type",
                      "enum": [
                        "purchase",
                        "waste",
                        "transfer",
                        "stock_take",
                        "adjustment",
                        "sale",
                        "internal"
                      ],
                      "x-enumDescriptions": {
                        "purchase": "Products have been purchased to inventory",
                        "waste": "Products have been removed from inventory as waste",
                        "transfer": "Products have been transferred to another inventory location",
                        "stock_take": "Stock take has been done to correct inventory counts",
                        "adjustment": "Adjustments have been done to individual products to correct inventory counts",
                        "sale": "Products have been sold from inventory",
                        "internal": "Products have been used internally from inventory"
                      },
                      "example": "waste"
                    },
                    "movement_status": {
                      "type": "number",
                      "description": "Movement status. 1=Open, 2=Complete, 3=Complete with variances, 4=Cancelled",
                      "example": 2
                    },
                    "movement_batch_id": {
                      "type": "string",
                      "description": "Optional identifier for batch this movement row is part of.",
                      "example": "june-stock-take"
                    },
                    "movement_batch_line_id": {
                      "type": "string",
                      "description": "Optional line id within the batch this movement row is part of.",
                      "example": "1"
                    },
                    "unit_purchase_price": {
                      "type": "number",
                      "description": "Unit purchase price",
                      "example": 12.4
                    },
                    "unit_purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Unit purchase price without tax",
                      "example": 10
                    },
                    "unit_retail_price": {
                      "type": "number",
                      "description": "Unit retail (sales) price",
                      "example": 12.4
                    },
                    "unit_retail_price_wo_vat": {
                      "type": "number",
                      "description": "Unit retail (sales) price without tax",
                      "example": 10
                    },
                    "reason_code": {
                      "type": "string",
                      "description": "Optional reason code or description for this transaction",
                      "example": "Theft"
                    },
                    "target_organisation_id": {
                      "type": "string",
                      "description": "Organisation / Store ID for target of inventory transfer. Mandatory for type transfer.",
                      "example": "510"
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "purchase_order_id": {
                      "type": "string",
                      "description": "Order id for purchase order this purchase movement originates from.",
                      "example": "1234"
                    },
                    "purchase_order_line_id": {
                      "type": "string",
                      "description": "Order line item id in purchase order this purchase movement line item originates from.",
                      "example": "1"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom field 1",
                      "example": "EU only"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom field 2",
                      "example": "EU only"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom field 3",
                      "example": "EU only"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom field 4",
                      "example": "EU only"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom field 5",
                      "example": "EU only"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "Custom field 6",
                      "example": "EU only"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "Custom field 7",
                      "example": "EU only"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "Custom field 8",
                      "example": "EU only"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "Custom field 9",
                      "example": "EU only"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "Custom field 10",
                      "example": "EU only"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "organisation_id",
                    "salesperson_id",
                    "movement_date",
                    "quantity",
                    "movement_type"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "salesperson_id": "5401",
                      "department_id": "54011",
                      "operator_id": "5402",
                      "movement_date": "2016-02-01",
                      "movement_time": "15:00:00",
                      "delivered_date": "2016-02-02",
                      "delivered_time": "15:00:00",
                      "product_id": "123",
                      "supplier_id": "221",
                      "parent_product_id": "123",
                      "quantity": 100,
                      "delivered_quantity": 90,
                      "expected_quantity": 110,
                      "movement_type": "waste",
                      "movement_status": 2,
                      "movement_batch_id": "june-stock-take",
                      "movement_batch_line_id": "1",
                      "unit_purchase_price": 12.4,
                      "unit_purchase_price_wo_vat": 10,
                      "unit_retail_price": 12.4,
                      "unit_retail_price_wo_vat": 10,
                      "reason_code": "Theft",
                      "target_organisation_id": "510",
                      "currency": "EUR",
                      "purchase_order_id": "1234",
                      "purchase_order_line_id": "1",
                      "custom_field_1": "EU only",
                      "custom_field_2": "EU only",
                      "custom_field_3": "EU only",
                      "custom_field_4": "EU only",
                      "custom_field_5": "EU only",
                      "custom_field_6": "EU only",
                      "custom_field_7": "EU only",
                      "custom_field_8": "EU only",
                      "custom_field_9": "EU only",
                      "custom_field_10": "EU only",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download inventory transactions as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/inventoryTransactions.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&movement_type=waste`\n",
        "operationId": "downloadInventoryTransactionsJson",
        "tags": [
          "download-inventory-transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "name": "movement_type",
            "in": "query",
            "description": "Return data for given movement types only (any of purchase, waste, transfer, stock_take, adjustment)",
            "required": false,
            "example": "waste",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v2/download/inventoryTransactions.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;movement_date;movement_time;movement_type;product_id;quantity;unit_purchase_price;unit_purchase_price_wo_vat;currency\n540;2016-01-01;10:00:00;waste;My product ID;100;12.40;10.00;EUR\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download inventory transactions as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/inventoryTransactions.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31&movement_type=waste`\n",
        "operationId": "downloadInventoryTransactionsCsv",
        "tags": [
          "download-inventory-transactions"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          },
          {
            "name": "movement_type",
            "in": "query",
            "description": "`Return data for given movement types only (any of purchase, waste, transfer, stock_take, adjustment)`",
            "required": false,
            "example": "waste",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v2/download/inventorySnapshots.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / Store ID",
                      "example": "540"
                    },
                    "snapshot_date": {
                      "type": "string",
                      "description": "Date of snapshot (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "snapshot_time": {
                      "type": "string",
                      "description": "Time of snapshot (HH:mm:ss). Needed if inter-day inventory saldos are tracked.",
                      "example": "15:00:00"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "My product ID"
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "quantity": {
                      "type": "number",
                      "description": "On hand quantity in inventory",
                      "example": 100
                    },
                    "available_quantity": {
                      "type": "number",
                      "description": "Available quantity in inventory (after pending/reserved orders)",
                      "example": 90
                    },
                    "reorder_point": {
                      "type": "number",
                      "description": "Quantity threshold for this item to order more into inventory",
                      "example": 5
                    },
                    "max_reorder_quantity": {
                      "type": "number",
                      "description": "Max quantity threshold for this item after reordering",
                      "example": 10
                    },
                    "unit_purchase_price": {
                      "type": "number",
                      "description": "Unit purchase price",
                      "example": 12.4
                    },
                    "unit_purchase_price_wo_vat": {
                      "type": "number",
                      "description": "Unit purchase price without tax",
                      "example": 10
                    },
                    "unit_sales_price": {
                      "type": "number",
                      "description": "Unit sales price",
                      "example": 22.4
                    },
                    "unit_sales_price_wo_vat": {
                      "type": "number",
                      "description": "Unit sales price without tax",
                      "example": 20
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    }
                  },
                  "required": [
                    "organisation_id",
                    "snapshot_date",
                    "product_id",
                    "quantity"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "snapshot_date": "2016-01-01",
                      "snapshot_time": "15:00:00",
                      "product_id": "My product ID",
                      "supplier_id": "221",
                      "quantity": 100,
                      "available_quantity": 90,
                      "reorder_point": 5,
                      "max_reorder_quantity": 10,
                      "unit_purchase_price": 12.4,
                      "unit_purchase_price_wo_vat": 10,
                      "unit_sales_price": 22.4,
                      "unit_sales_price_wo_vat": 20,
                      "currency": "EUR"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download inventory snapshots as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/inventorySnapshots.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadInventorySnapshotsJson",
        "tags": [
          "download-inventory-snapshots"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/inventorySnapshots.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;snapshot_date;snapshot_time;product_id;quantity;unit_purchase_price;unit_purchase_price_wo_vat;currency\n540;2016-01-01;10:00:00;My product ID;100;12.40;10.00;EUR\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download inventory snapshots as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/inventorySnapshots.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadInventorySnapshotsCsv",
        "tags": [
          "download-inventory-snapshots"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/capacity.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation ID",
                      "example": "540"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "A (string, required) - Product ID",
                      "example": "123"
                    },
                    "event_id": {
                      "type": "string",
                      "description": "Event ID",
                      "example": "221"
                    },
                    "capacity_date": {
                      "type": "string",
                      "description": "Date of capacity (yyyy-mm-dd)",
                      "example": "2020-02-01"
                    },
                    "capacity_time": {
                      "type": "string",
                      "description": "Time of capacity (HH:mm:ss).",
                      "example": "15:00:00"
                    },
                    "capacity_type": {
                      "type": "string",
                      "description": "Capacity type. Must be either event or room.",
                      "example": "event"
                    },
                    "max_capacity": {
                      "type": "number",
                      "description": "Maximum available capacity for this item.",
                      "example": 100
                    }
                  },
                  "required": [
                    "organisation_id",
                    "capacity_date",
                    "capacity_type",
                    "max_capacity"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "product_id": "123",
                      "event_id": "221",
                      "capacity_date": "2020-02-01",
                      "capacity_time": "15:00:00",
                      "capacity_type": "event",
                      "max_capacity": 100
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download capacities as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/capacity.json?limit=1000&offset=0&start=2021-01-01&end=2021-01-31`\n",
        "operationId": "downloadCapacityJson",
        "tags": [
          "download-capacity"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter2"
          }
        ]
      }
    },
    "/v2/download/capacity.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;capacity_date;capacity_time;product_id;event_id;max_capacity\n540;2021-02-01;10:00:00;123;456;100\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download capacities as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/capacity.csv?limit=1000&offset=0&start=2021-01-01&end=2021-01-31`\n",
        "operationId": "downloadCapacityCsv",
        "tags": [
          "download-capacity"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter2"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter2"
          }
        ]
      }
    },
    "/v2/download/visitors.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation/Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "540"
                    },
                    "counter_id": {
                      "type": "string",
                      "description": "Counter ID",
                      "example": "540"
                    },
                    "product_id": {
                      "type": "string",
                      "description": "`Optional product id associated to this visitor (eg. ticket)`",
                      "example": "ABC-123"
                    },
                    "date": {
                      "type": "string",
                      "description": "Date of visit (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "time": {
                      "type": "string",
                      "description": "Time of visit (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "time_zone": {
                      "type": "string",
                      "description": "Optional location time zone.",
                      "example": "02:00"
                    },
                    "visit_type": {
                      "type": "string",
                      "description": "`Type of visitor record ('in', 'out', 'pass', 'occupancy', 'visit_time', 'queue')`",
                      "example": "in"
                    },
                    "vehicle_type": {
                      "type": "string",
                      "description": "Optional field for vehicle type. Supported values are car & bicycle.",
                      "example": "car"
                    },
                    "visitors": {
                      "type": "number",
                      "description": "Number of visitors at given time",
                      "example": 1000
                    },
                    "queue_area_name": {
                      "type": "string",
                      "description": "For a queue camera, the name of the queue area",
                      "example": "Area 1"
                    },
                    "low_queue": {
                      "type": "number",
                      "description": "Threshold for low queue.",
                      "example": 1
                    },
                    "high_queue": {
                      "type": "number",
                      "description": "Threshold for high queue.",
                      "example": 5
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    }
                  },
                  "required": [
                    "organisation_id",
                    "date",
                    "time",
                    "visitors"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "department_id": "540",
                      "counter_id": "540",
                      "product_id": "ABC-123",
                      "date": "2016-01-01",
                      "time": "15:00:00",
                      "time_zone": "02:00",
                      "visit_type": "in",
                      "vehicle_type": "car",
                      "visitors": 1000,
                      "queue_area_name": "Area 1",
                      "low_queue": 1,
                      "high_queue": 5,
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000,
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download visitors as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/visitors.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadVisitorsJson",
        "tags": [
          "download-visitors"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/visitors.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "counter_id;custom_field_1;custom_field_2;custom_field_3;custom_field_4;custom_field_5;custom_metric_1;custom_metric_2;custom_metric_3;custom_metric_4;custom_metric_5;customer_id;date;department_id;high_queue;low_queue;organisation_id;product_id;queue_area_name;time;vehicle_type;visit_type;visitors\nmy counter id;custom 1;custom 2;custom 3;custom 4;custom 5;1;1;1;1;1;customer id;2018-01-19;my department id;6;1;my organisation id;my product id;Area 1;06:18:00;NULL;in;3\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download visitors as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/visitors.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadVisitorsCsv",
        "tags": [
          "download-visitors"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/visitorDemographics.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation/Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "540"
                    },
                    "counter_id": {
                      "type": "string",
                      "description": "Counter ID",
                      "example": "540"
                    },
                    "visitor_id": {
                      "type": "string",
                      "description": "Visitor ID",
                      "example": "540"
                    },
                    "date": {
                      "type": "string",
                      "description": "Date of visit (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "time": {
                      "type": "string",
                      "description": "Time of visit (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "gender": {
                      "type": "string",
                      "description": "Gender of visitor. 'm' for male, 'f' for female and 'u' for unknown.",
                      "example": "m"
                    },
                    "age": {
                      "type": "number",
                      "description": "Age of the visitor.",
                      "example": 25
                    },
                    "visitors": {
                      "type": "number",
                      "description": "Number of visitors for given age & gender for time specified.",
                      "example": 1000
                    }
                  },
                  "required": [
                    "organisation_id",
                    "date",
                    "time",
                    "visitors"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "department_id": "540",
                      "counter_id": "540",
                      "visitor_id": "540",
                      "date": "2016-01-01",
                      "time": "15:00:00",
                      "gender": "m",
                      "age": 25,
                      "visitors": 1000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download visitor demographics as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/visitorDemographics.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadVisitorDemographicsJson",
        "tags": [
          "download-visitor-demographics"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/visitorDemographics.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;department_id;counter_id;visitor_id;date;time;gender;age;visitors\n540;540;540;2016-01-01;15:00:00;m;25;1000\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download visitor demographics as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/visitorDemographics.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadVisitorDemographicsCsv",
        "tags": [
          "download-visitor-demographics"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/workShifts.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation unit where shift will take place",
                      "example": "234"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Store department ID",
                      "example": "5401"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Identifier of sales person / employee working. Required for punched shifts",
                      "example": "345"
                    },
                    "shift_id": {
                      "type": "string",
                      "description": "Unique identifier for the workshift",
                      "example": "123"
                    },
                    "start_date": {
                      "type": "string",
                      "description": "Shift start date (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "start_time": {
                      "type": "string",
                      "description": "Shift start time (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "duration": {
                      "type": "number",
                      "description": "Duration of the shift in hours.",
                      "example": 8.15
                    },
                    "shift_type": {
                      "type": "string",
                      "description": "Type of the shift. Freeform, will be available as dimension in portal.",
                      "example": "Chef"
                    },
                    "salary_type": {
                      "type": "string",
                      "description": "Type of compensation for the shift.",
                      "example": "Evening compensation"
                    },
                    "staff_cost": {
                      "type": "number",
                      "description": "Cost associated with this shift",
                      "example": 500
                    },
                    "breaks_duration": {
                      "type": "number",
                      "description": "Total hours of breaks during this shift",
                      "example": 0.5
                    },
                    "breaks_cost": {
                      "type": "number",
                      "description": "Total salary cost associated for paid breaks during this shift",
                      "example": 40
                    },
                    "overtime_duration": {
                      "type": "number",
                      "description": "Total overtime hours during this shift",
                      "example": 2
                    },
                    "overtime_cost": {
                      "type": "number",
                      "description": "Total salary cost associated for overtime hours",
                      "example": 120
                    },
                    "absence_code": {
                      "type": "string",
                      "description": "Code for the absense if this entry describes absence.",
                      "example": "BREAK"
                    },
                    "productive": {
                      "type": "boolean",
                      "description": "Whether this is productive or administrative work, default is true",
                      "example": true
                    },
                    "active_work_time": {
                      "type": "boolean",
                      "description": "Whether this shift is calculated in active work time, default is true",
                      "example": true
                    },
                    "scheduled": {
                      "type": "boolean",
                      "description": "Whether this is scheduled or punched shift, default is false",
                      "example": false
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "organisation_id",
                    "shift_id",
                    "start_date",
                    "start_time",
                    "duration"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "234",
                      "department_id": "5401",
                      "salesperson_id": "345",
                      "shift_id": "123",
                      "start_date": "2016-01-01",
                      "start_time": "15:00:00",
                      "duration": 8.15,
                      "shift_type": "Chef",
                      "salary_type": "Evening compensation",
                      "staff_cost": 500,
                      "breaks_duration": 0.5,
                      "breaks_cost": 40,
                      "overtime_duration": 2,
                      "overtime_cost": 120,
                      "absence_code": "BREAK",
                      "productive": true,
                      "active_work_time": true,
                      "scheduled": false,
                      "currency": "EUR",
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download work shifts as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/workShifts.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadWorkShiftsJson",
        "tags": [
          "download-work-shifts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/workShifts.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "shift_id;organisation_id;department_id;employee_id;shift_date;shift_time;shift_duration;scheduled;productive;active_worktime;salary_type\n1234;540;5401;54001;2017-01-01;15:00:00;5.5;false;true;true;overtime\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download work shifts as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/workShifts.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadWorkShiftsCsv",
        "tags": [
          "download-work-shifts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/employeeHours.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Store department ID",
                      "example": "54021"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "employee_type": {
                      "type": "string",
                      "description": "Employee Type",
                      "example": "Permie"
                    },
                    "absence_code": {
                      "type": "string",
                      "description": "Code for the absense if this entry describes absence.",
                      "example": "BREAK"
                    },
                    "date": {
                      "type": "string",
                      "description": "Date of entry (yyyy-mm-dd)",
                      "example": "2016-01-01"
                    },
                    "time": {
                      "type": "string",
                      "description": "Time of entry (HH:mm:ss)",
                      "example": "15:00:00"
                    },
                    "scheduled": {
                      "type": "boolean",
                      "description": "Whether this is scheduled or punched shift, default is false",
                      "example": false
                    },
                    "productive": {
                      "type": "boolean",
                      "description": "Whether this is productive or administrative work, default is true",
                      "example": true
                    },
                    "hours": {
                      "type": "number",
                      "description": "Number of hours to record for this specific time",
                      "example": 8
                    },
                    "staff_cost": {
                      "type": "number",
                      "description": "Salary cost associated with this hour",
                      "example": 500
                    },
                    "breaks": {
                      "type": "number",
                      "description": "Total hours of breaks",
                      "example": 0.5
                    },
                    "breaks_cost": {
                      "type": "number",
                      "description": "Total salary cost associated for paid breaks",
                      "example": 40
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    }
                  },
                  "required": [
                    "organisation_id",
                    "date",
                    "time",
                    "hours"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "department_id": "54021",
                      "salesperson_id": "5402101",
                      "employee_type": "Permie",
                      "absence_code": "BREAK",
                      "date": "2016-01-01",
                      "time": "15:00:00",
                      "scheduled": false,
                      "productive": true,
                      "hours": 8,
                      "staff_cost": 500,
                      "breaks": 0.5,
                      "breaks_cost": 40,
                      "currency": "EUR",
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download employee hours as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/employeeHours.json?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadEmployeeHoursJson",
        "tags": [
          "download-employee-hours"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/employeeHours.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;date;time;hours;salesperson_id;employee_type\n540;2016-01-01;15:00:00;8;5402101;Permie\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download employee hours as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/employeeHours.csv?limit=1000&offset=0&start=2017-01-01&end=2017-01-31`\n",
        "operationId": "downloadEmployeeHoursCsv",
        "tags": [
          "download-employee-hours"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter"
          }
        ]
      }
    },
    "/v2/download/staffCosts.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / Store ID",
                      "example": "540"
                    },
                    "department_id": {
                      "type": "string",
                      "description": "Store department ID",
                      "example": "54021"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "start_date": {
                      "type": "string",
                      "description": "Start date of entry (yyyy-mm-dd)",
                      "example": "2024-01-01"
                    },
                    "staff_cost": {
                      "type": "number",
                      "description": "Hourly salary cost",
                      "example": 15
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                      "example": "EUR"
                    }
                  },
                  "required": [
                    "organisation_id",
                    "start_date",
                    "staff_cost"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "department_id": "54021",
                      "salesperson_id": "5402101",
                      "start_date": "2024-01-01",
                      "staff_cost": 15,
                      "currency": "EUR"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download staff costs as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/staffCosts.json?limit=1000&offset=0&start=2024-01-01&end=2024-01-31`\n",
        "operationId": "downloadHourlyStaffCostsJson",
        "tags": [
          "download-hourly-staff-costs"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter3"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter3"
          }
        ]
      }
    },
    "/v2/download/staffCosts.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;start_date;staff_cost;currency\n540;2024-01-01;12.50;EUR\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download staff costs as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/staffCosts.csv?limit=1000&offset=0&start=2024-01-01&end=2024-01-31`\n",
        "operationId": "downloadHourlyStaffCostsCsv",
        "tags": [
          "download-hourly-staff-costs"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter3"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter3"
          }
        ]
      }
    },
    "/v2/download/products.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "product_id": {
                      "type": "string",
                      "description": "Product ID",
                      "example": "XYZ"
                    },
                    "product_name": {
                      "type": "string",
                      "description": "Product Name",
                      "example": "Widget XYZ"
                    },
                    "product_description": {
                      "type": "string",
                      "description": "Product description",
                      "example": "Best performance XYZ on the market"
                    },
                    "average_price": {
                      "type": "number",
                      "description": "Running average purchase price for product.",
                      "example": 8
                    },
                    "purchase_price": {
                      "type": "number",
                      "description": "Default purchase price for product. Used if sales transaction doesn't have purchase price set.",
                      "example": 10
                    },
                    "sales_price": {
                      "type": "number",
                      "description": "Default retail price for product with taxes.",
                      "example": 20
                    },
                    "sales_price_wo_vat": {
                      "type": "number",
                      "description": "Default retail price for product without taxes.",
                      "example": 16
                    },
                    "vat_rate": {
                      "type": "number",
                      "description": "VAT/tax rate",
                      "example": 24
                    },
                    "unit_of_measure": {
                      "type": "string",
                      "description": "Unit of measure",
                      "example": "PCS"
                    },
                    "product_size": {
                      "type": "string",
                      "description": "Product size",
                      "example": "XS"
                    },
                    "product_width": {
                      "type": "string",
                      "description": "Product width",
                      "example": "5\""
                    },
                    "product_height": {
                      "type": "string",
                      "description": "Product height",
                      "example": "10\""
                    },
                    "product_color": {
                      "type": "string",
                      "description": "Product color",
                      "example": "Dark Blue"
                    },
                    "product_type": {
                      "type": "string",
                      "description": "Product type",
                      "example": "Type A"
                    },
                    "product_season": {
                      "type": "string",
                      "description": "Product season",
                      "example": "Spring"
                    },
                    "product_brand": {
                      "type": "string",
                      "description": "Product brand",
                      "example": "Tiger"
                    },
                    "model": {
                      "type": "string",
                      "description": "a (string, optional) - Product model",
                      "example": "XYZ B40"
                    },
                    "model_number": {
                      "type": "string",
                      "description": "Product model number",
                      "example": "X311"
                    },
                    "country_of_origin": {
                      "type": "string",
                      "description": "Country of origin",
                      "example": "Moldovia"
                    },
                    "freight": {
                      "type": "number",
                      "description": "Freight",
                      "example": 5
                    },
                    "duty": {
                      "type": "number",
                      "description": "Duty",
                      "example": 0.24
                    },
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "fabric": {
                      "type": "string",
                      "description": "Product fabric",
                      "example": "Felt"
                    },
                    "buyer": {
                      "type": "string",
                      "description": "Buyer name",
                      "example": "Lena Shields"
                    },
                    "ean": {
                      "type": "string",
                      "description": "Ean code",
                      "example": "Ean code"
                    },
                    "parent_product_id": {
                      "type": "string",
                      "description": "Parent Product ID",
                      "example": "XY"
                    },
                    "image_url": {
                      "type": "string",
                      "description": "Url for external product image file",
                      "example": "http://example.com?product=XYZ"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom field 1",
                      "example": "EU only"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom field 2",
                      "example": "EU only"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom field 3",
                      "example": "EU only"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom field 4",
                      "example": "EU only"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom field 5",
                      "example": "EU only"
                    },
                    "custom_field_6": {
                      "type": "string",
                      "description": "Custom field 6",
                      "example": "EU only"
                    },
                    "custom_field_7": {
                      "type": "string",
                      "description": "Custom field 7",
                      "example": "EU only"
                    },
                    "custom_field_8": {
                      "type": "string",
                      "description": "Custom field 8",
                      "example": "EU only"
                    },
                    "custom_field_9": {
                      "type": "string",
                      "description": "Custom field 9",
                      "example": "EU only"
                    },
                    "custom_field_10": {
                      "type": "string",
                      "description": "Custom field 10",
                      "example": "EU only"
                    },
                    "custom_field_11": {
                      "type": "string",
                      "description": "Custom field 11",
                      "example": "EU only"
                    },
                    "custom_field_12": {
                      "type": "string",
                      "description": "Custom field 12",
                      "example": "EU only"
                    },
                    "custom_field_13": {
                      "type": "string",
                      "description": "Custom field 13",
                      "example": "EU only"
                    },
                    "custom_field_14": {
                      "type": "string",
                      "description": "Custom field 14",
                      "example": "EU only"
                    },
                    "custom_field_15": {
                      "type": "string",
                      "description": "Custom field 15",
                      "example": "EU only"
                    },
                    "custom_field_16": {
                      "type": "string",
                      "description": "Custom field 16",
                      "example": "EU only"
                    },
                    "custom_field_17": {
                      "type": "string",
                      "description": "Custom field 17",
                      "example": "EU only"
                    },
                    "custom_field_18": {
                      "type": "string",
                      "description": "Custom field 18",
                      "example": "EU only"
                    },
                    "custom_field_19": {
                      "type": "string",
                      "description": "Custom field 19",
                      "example": "EU only"
                    },
                    "custom_field_20": {
                      "type": "string",
                      "description": "Custom field 20",
                      "example": "EU only"
                    },
                    "custom_field_21": {
                      "type": "string",
                      "description": "Custom field 21",
                      "example": "EU only"
                    },
                    "custom_field_22": {
                      "type": "string",
                      "description": "Custom field 22",
                      "example": "EU only"
                    },
                    "custom_field_23": {
                      "type": "string",
                      "description": "Custom field 23",
                      "example": "EU only"
                    },
                    "custom_field_24": {
                      "type": "string",
                      "description": "Custom field 24",
                      "example": "EU only"
                    },
                    "custom_field_25": {
                      "type": "string",
                      "description": "Custom field 25",
                      "example": "EU only"
                    },
                    "custom_field_26": {
                      "type": "string",
                      "description": "Custom field 26",
                      "example": "EU only"
                    },
                    "custom_field_27": {
                      "type": "string",
                      "description": "Custom field 27",
                      "example": "EU only"
                    },
                    "custom_field_28": {
                      "type": "string",
                      "description": "Custom field 28",
                      "example": "EU only"
                    },
                    "custom_field_29": {
                      "type": "string",
                      "description": "Custom field 29",
                      "example": "EU only"
                    },
                    "custom_field_30": {
                      "type": "string",
                      "description": "Custom field 30",
                      "example": "EU only"
                    },
                    "custom_field_31": {
                      "type": "string",
                      "description": "Custom field 31",
                      "example": "EU only"
                    },
                    "custom_field_32": {
                      "type": "string",
                      "description": "Custom field 32",
                      "example": "EU only"
                    },
                    "custom_field_33": {
                      "type": "string",
                      "description": "Custom field 33",
                      "example": "EU only"
                    },
                    "custom_field_34": {
                      "type": "string",
                      "description": "Custom field 34",
                      "example": "EU only"
                    },
                    "custom_field_35": {
                      "type": "string",
                      "description": "Custom field 35",
                      "example": "EU only"
                    },
                    "custom_field_36": {
                      "type": "string",
                      "description": "Custom field 36",
                      "example": "EU only"
                    },
                    "custom_field_37": {
                      "type": "string",
                      "description": "Custom field 37",
                      "example": "EU only"
                    },
                    "custom_field_38": {
                      "type": "string",
                      "description": "Custom field 38",
                      "example": "EU only"
                    },
                    "custom_field_39": {
                      "type": "string",
                      "description": "Custom field 39",
                      "example": "EU only"
                    },
                    "custom_field_40": {
                      "type": "string",
                      "description": "Custom field 40",
                      "example": "EU only"
                    },
                    "custom_field_41": {
                      "type": "string",
                      "description": "Custom field 41",
                      "example": "EU only"
                    },
                    "custom_field_42": {
                      "type": "string",
                      "description": "Custom field 42",
                      "example": "EU only"
                    },
                    "custom_field_43": {
                      "type": "string",
                      "description": "Custom field 43",
                      "example": "EU only"
                    },
                    "custom_field_44": {
                      "type": "string",
                      "description": "Custom field 44",
                      "example": "EU only"
                    },
                    "custom_field_45": {
                      "type": "string",
                      "description": "Custom field 45",
                      "example": "EU only"
                    },
                    "custom_field_46": {
                      "type": "string",
                      "description": "Custom field 46",
                      "example": "EU only"
                    },
                    "custom_field_47": {
                      "type": "string",
                      "description": "Custom field 47",
                      "example": "EU only"
                    },
                    "custom_field_48": {
                      "type": "string",
                      "description": "Custom field 48",
                      "example": "EU only"
                    },
                    "custom_field_49": {
                      "type": "string",
                      "description": "Custom field 49",
                      "example": "EU only"
                    },
                    "custom_field_50": {
                      "type": "string",
                      "description": "Custom field 50",
                      "example": "EU only"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    },
                    "custom_metric_6": {
                      "type": "number",
                      "description": "Custom metric 6",
                      "example": 150
                    },
                    "custom_metric_7": {
                      "type": "number",
                      "description": "Custom metric 7",
                      "example": 1000
                    },
                    "custom_metric_8": {
                      "type": "number",
                      "description": "Custom metric 8",
                      "example": 2.52
                    },
                    "custom_metric_9": {
                      "type": "number",
                      "description": "Custom metric 9",
                      "example": 1.5
                    },
                    "custom_metric_10": {
                      "type": "number",
                      "description": "Custom metric 10",
                      "example": 2000
                    }
                  },
                  "required": [
                    "product_id",
                    "product_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "product_id": "XYZ",
                      "product_name": "Widget XYZ",
                      "product_description": "Best performance XYZ on the market",
                      "average_price": 8,
                      "purchase_price": 10,
                      "sales_price": 20,
                      "sales_price_wo_vat": 16,
                      "vat_rate": 24,
                      "unit_of_measure": "PCS",
                      "product_size": "XS",
                      "product_width": "5\"",
                      "product_height": "10\"",
                      "product_color": "Dark Blue",
                      "product_type": "Type A",
                      "product_season": "Spring",
                      "product_brand": "Tiger",
                      "model": "XYZ B40",
                      "model_number": "X311",
                      "country_of_origin": "Moldovia",
                      "freight": 5,
                      "duty": 0.24,
                      "supplier_id": "221",
                      "fabric": "Felt",
                      "buyer": "Lena Shields",
                      "ean": "Ean code",
                      "parent_product_id": "XY",
                      "image_url": "http://example.com?product=XYZ",
                      "custom_field_1": "EU only",
                      "custom_field_2": "EU only",
                      "custom_field_3": "EU only",
                      "custom_field_4": "EU only",
                      "custom_field_5": "EU only",
                      "custom_field_6": "EU only",
                      "custom_field_7": "EU only",
                      "custom_field_8": "EU only",
                      "custom_field_9": "EU only",
                      "custom_field_10": "EU only",
                      "custom_field_11": "EU only",
                      "custom_field_12": "EU only",
                      "custom_field_13": "EU only",
                      "custom_field_14": "EU only",
                      "custom_field_15": "EU only",
                      "custom_field_16": "EU only",
                      "custom_field_17": "EU only",
                      "custom_field_18": "EU only",
                      "custom_field_19": "EU only",
                      "custom_field_20": "EU only",
                      "custom_field_21": "EU only",
                      "custom_field_22": "EU only",
                      "custom_field_23": "EU only",
                      "custom_field_24": "EU only",
                      "custom_field_25": "EU only",
                      "custom_field_26": "EU only",
                      "custom_field_27": "EU only",
                      "custom_field_28": "EU only",
                      "custom_field_29": "EU only",
                      "custom_field_30": "EU only",
                      "custom_field_31": "EU only",
                      "custom_field_32": "EU only",
                      "custom_field_33": "EU only",
                      "custom_field_34": "EU only",
                      "custom_field_35": "EU only",
                      "custom_field_36": "EU only",
                      "custom_field_37": "EU only",
                      "custom_field_38": "EU only",
                      "custom_field_39": "EU only",
                      "custom_field_40": "EU only",
                      "custom_field_41": "EU only",
                      "custom_field_42": "EU only",
                      "custom_field_43": "EU only",
                      "custom_field_44": "EU only",
                      "custom_field_45": "EU only",
                      "custom_field_46": "EU only",
                      "custom_field_47": "EU only",
                      "custom_field_48": "EU only",
                      "custom_field_49": "EU only",
                      "custom_field_50": "EU only",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000,
                      "custom_metric_6": 150,
                      "custom_metric_7": 1000,
                      "custom_metric_8": 2.52,
                      "custom_metric_9": 1.5,
                      "custom_metric_10": 2000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download products as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/products.json?limit=1000&offset=0&product_id=123k`\n",
        "operationId": "downloadProductsJson",
        "tags": [
          "download-products"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/ProductIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/products.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "product_id;product_name;product_description;category_id;purchase_price;vat_rate;unit_of_measure;product_size;product_color;product_type;product_season;model;model_number;country_of_origin;freight;supplier_id;fabric;buyer;ean;custom_field_1;custom_field_2;custom_field_3;custom_field_4;custom_field_5\nXYZ; Widget XYZ; Best performance XYZ on the market; 23;10;24; PCS; XS; Dark Blue; Type A; Spring; XYZ B40; X311; Moldovia;5; 221; Felt;Lena Shields;123k;EU;;;;;\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download products as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/products.csv?limit=1000&offset=0&product_id=123k`\n",
        "operationId": "downloadProductsCsv",
        "tags": [
          "download-products"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/ProductIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/customers.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customer_id": {
                      "type": "string",
                      "description": "Customer ID",
                      "example": "32"
                    },
                    "customer_name": {
                      "type": "string",
                      "description": "Customer Name",
                      "example": "John Smith"
                    },
                    "customer_company": {
                      "type": "string",
                      "description": "Customer Company",
                      "example": "Smith Industries"
                    },
                    "customer_email": {
                      "type": "string",
                      "description": "Customer Email",
                      "example": "john.smith@customer.customer"
                    },
                    "customer_phone": {
                      "type": "string",
                      "description": "Customer Phone",
                      "example": "+35811111111"
                    },
                    "customer_address": {
                      "type": "string",
                      "description": "Customer Street Address",
                      "example": "Mannerheimintie 1"
                    },
                    "customer_zipcode": {
                      "type": "string",
                      "description": "Customer's Zip Code",
                      "example": "00100"
                    },
                    "customer_city": {
                      "type": "string",
                      "description": "Customer City",
                      "example": "Helsinki"
                    },
                    "customer_country": {
                      "type": "string",
                      "description": "Customer Country",
                      "example": "Finland"
                    },
                    "account_number": {
                      "type": "string",
                      "description": "45 (string, optional) - Account number",
                      "example": "123"
                    },
                    "vat_number": {
                      "type": "string",
                      "description": "9 (string, optional) - VAT Number",
                      "example": "12345678"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Customer account store ID",
                      "example": "1"
                    },
                    "salesperson_id": {
                      "type": "string",
                      "description": "Customer account sales person ID",
                      "example": "3"
                    },
                    "creation_date": {
                      "type": "string",
                      "description": "Date when this customer was added to system (yyyy-mm-dd).",
                      "example": "2021-12-15"
                    },
                    "subscribe_date": {
                      "type": "string",
                      "description": "Date when this customer subscribed newsletter (yyyy-mm-dd).",
                      "example": "2022-01-15"
                    },
                    "unsubscribe_date": {
                      "type": "string",
                      "description": "Date when this customer unsubscribed newsletter (yyyy-mm-dd).",
                      "example": "2022-02-15"
                    },
                    "register_date": {
                      "type": "string",
                      "description": "Date when this customer registered to system (yyyy-mm-dd).",
                      "example": "2022-01-10"
                    },
                    "unregister_date": {
                      "type": "string",
                      "description": "Date when this customer unregistered from system (yyyy-mm-dd).",
                      "example": "2022-03-15"
                    },
                    "custom_dimension_1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "Class 3"
                    },
                    "custom_dimension_2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "Class 3"
                    },
                    "custom_dimension_3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "Class 3"
                    },
                    "custom_dimension_4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "Class 3"
                    },
                    "custom_dimension_5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "Class 3"
                    },
                    "custom_dimension_6": {
                      "type": "string",
                      "description": "Custom Field 6",
                      "example": "Class 3"
                    },
                    "custom_dimension_7": {
                      "type": "string",
                      "description": "Custom Field 7",
                      "example": "Class 3"
                    },
                    "custom_dimension_8": {
                      "type": "string",
                      "description": "Custom Field 8",
                      "example": "Class 3"
                    },
                    "custom_dimension_9": {
                      "type": "string",
                      "description": "Custom Field 9",
                      "example": "Class 3"
                    },
                    "custom_dimension_10": {
                      "type": "string",
                      "description": "Custom Field 10",
                      "example": "Class 3"
                    },
                    "custom_dimension_11": {
                      "type": "string",
                      "description": "Custom Field 11",
                      "example": "Class 3"
                    },
                    "custom_dimension_12": {
                      "type": "string",
                      "description": "Custom Field 12",
                      "example": "Class 3"
                    },
                    "custom_dimension_13": {
                      "type": "string",
                      "description": "Custom Field 13",
                      "example": "Class 3"
                    },
                    "custom_dimension_14": {
                      "type": "string",
                      "description": "Custom Field 14",
                      "example": "Class 3"
                    },
                    "custom_dimension_15": {
                      "type": "string",
                      "description": "Custom Field 15",
                      "example": "Class 3"
                    },
                    "custom_dimension_16": {
                      "type": "string",
                      "description": "Custom Field 16",
                      "example": "Class 3"
                    },
                    "custom_dimension_17": {
                      "type": "string",
                      "description": "Custom Field 17",
                      "example": "Class 3"
                    },
                    "custom_dimension_18": {
                      "type": "string",
                      "description": "Custom Field 18",
                      "example": "Class 3"
                    },
                    "custom_dimension_19": {
                      "type": "string",
                      "description": "Custom Field 19",
                      "example": "Class 3"
                    },
                    "custom_dimension_20": {
                      "type": "string",
                      "description": "Custom Field 20",
                      "example": "Class 3"
                    },
                    "custom_dimension_21": {
                      "type": "string",
                      "description": "Custom Field 21",
                      "example": "Class 3"
                    },
                    "custom_dimension_22": {
                      "type": "string",
                      "description": "Custom Field 22",
                      "example": "Class 3"
                    },
                    "custom_dimension_23": {
                      "type": "string",
                      "description": "Custom Field 23",
                      "example": "Class 3"
                    },
                    "custom_dimension_24": {
                      "type": "string",
                      "description": "Custom Field 24",
                      "example": "Class 3"
                    },
                    "custom_dimension_25": {
                      "type": "string",
                      "description": "Custom Field 25",
                      "example": "Class 3"
                    },
                    "custom_dimension_26": {
                      "type": "string",
                      "description": "Custom Field 26",
                      "example": "Class 3"
                    },
                    "custom_dimension_27": {
                      "type": "string",
                      "description": "Custom Field 27",
                      "example": "Class 3"
                    },
                    "custom_dimension_28": {
                      "type": "string",
                      "description": "Custom Field 28",
                      "example": "Class 3"
                    },
                    "custom_dimension_29": {
                      "type": "string",
                      "description": "Custom Field 29",
                      "example": "Class 3"
                    },
                    "custom_dimension_30": {
                      "type": "string",
                      "description": "Custom Field 30",
                      "example": "Class 3"
                    },
                    "custom_dimension_31": {
                      "type": "string",
                      "description": "Custom Field 31",
                      "example": "Class 3"
                    },
                    "custom_dimension_32": {
                      "type": "string",
                      "description": "Custom Field 32",
                      "example": "Class 3"
                    },
                    "custom_dimension_33": {
                      "type": "string",
                      "description": "Custom Field 33",
                      "example": "Class 3"
                    },
                    "custom_dimension_34": {
                      "type": "string",
                      "description": "Custom Field 34",
                      "example": "Class 3"
                    },
                    "custom_dimension_35": {
                      "type": "string",
                      "description": "Custom Field 35",
                      "example": "Class 3"
                    },
                    "custom_dimension_36": {
                      "type": "string",
                      "description": "Custom Field 36",
                      "example": "Class 3"
                    },
                    "custom_dimension_37": {
                      "type": "string",
                      "description": "Custom Field 37",
                      "example": "Class 3"
                    },
                    "custom_dimension_38": {
                      "type": "string",
                      "description": "Custom Field 38",
                      "example": "Class 3"
                    },
                    "custom_dimension_39": {
                      "type": "string",
                      "description": "Custom Field 39",
                      "example": "Class 3"
                    },
                    "custom_dimension_40": {
                      "type": "string",
                      "description": "Custom Field 40",
                      "example": "Class 3"
                    },
                    "custom_dimension_41": {
                      "type": "string",
                      "description": "Custom Field 41",
                      "example": "Class 3"
                    },
                    "custom_dimension_42": {
                      "type": "string",
                      "description": "Custom Field 42",
                      "example": "Class 3"
                    },
                    "custom_dimension_43": {
                      "type": "string",
                      "description": "Custom Field 43",
                      "example": "Class 3"
                    },
                    "custom_dimension_44": {
                      "type": "string",
                      "description": "Custom Field 44",
                      "example": "Class 3"
                    },
                    "custom_dimension_45": {
                      "type": "string",
                      "description": "Custom Field 45",
                      "example": "Class 3"
                    },
                    "custom_dimension_46": {
                      "type": "string",
                      "description": "Custom Field 46",
                      "example": "Class 3"
                    },
                    "custom_dimension_47": {
                      "type": "string",
                      "description": "Custom Field 47",
                      "example": "Class 3"
                    },
                    "custom_dimension_48": {
                      "type": "string",
                      "description": "Custom Field 48",
                      "example": "Class 3"
                    },
                    "custom_dimension_49": {
                      "type": "string",
                      "description": "Custom Field 49",
                      "example": "Class 3"
                    },
                    "custom_dimension_50": {
                      "type": "string",
                      "description": "Custom Field 50",
                      "example": "Class 3"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "customer_id"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "customer_id": "32",
                      "customer_name": "John Smith",
                      "customer_company": "Smith Industries",
                      "customer_email": "john.smith@customer.customer",
                      "customer_phone": "+35811111111",
                      "customer_address": "Mannerheimintie 1",
                      "customer_zipcode": "00100",
                      "customer_city": "Helsinki",
                      "customer_country": "Finland",
                      "account_number": "123",
                      "vat_number": "12345678",
                      "organisation_id": "1",
                      "salesperson_id": "3",
                      "creation_date": "2021-12-15",
                      "subscribe_date": "2022-01-15",
                      "unsubscribe_date": "2022-02-15",
                      "register_date": "2022-01-10",
                      "unregister_date": "2022-03-15",
                      "custom_dimension_1": "Class 3",
                      "custom_dimension_2": "Class 3",
                      "custom_dimension_3": "Class 3",
                      "custom_dimension_4": "Class 3",
                      "custom_dimension_5": "Class 3",
                      "custom_dimension_6": "Class 3",
                      "custom_dimension_7": "Class 3",
                      "custom_dimension_8": "Class 3",
                      "custom_dimension_9": "Class 3",
                      "custom_dimension_10": "Class 3",
                      "custom_dimension_11": "Class 3",
                      "custom_dimension_12": "Class 3",
                      "custom_dimension_13": "Class 3",
                      "custom_dimension_14": "Class 3",
                      "custom_dimension_15": "Class 3",
                      "custom_dimension_16": "Class 3",
                      "custom_dimension_17": "Class 3",
                      "custom_dimension_18": "Class 3",
                      "custom_dimension_19": "Class 3",
                      "custom_dimension_20": "Class 3",
                      "custom_dimension_21": "Class 3",
                      "custom_dimension_22": "Class 3",
                      "custom_dimension_23": "Class 3",
                      "custom_dimension_24": "Class 3",
                      "custom_dimension_25": "Class 3",
                      "custom_dimension_26": "Class 3",
                      "custom_dimension_27": "Class 3",
                      "custom_dimension_28": "Class 3",
                      "custom_dimension_29": "Class 3",
                      "custom_dimension_30": "Class 3",
                      "custom_dimension_31": "Class 3",
                      "custom_dimension_32": "Class 3",
                      "custom_dimension_33": "Class 3",
                      "custom_dimension_34": "Class 3",
                      "custom_dimension_35": "Class 3",
                      "custom_dimension_36": "Class 3",
                      "custom_dimension_37": "Class 3",
                      "custom_dimension_38": "Class 3",
                      "custom_dimension_39": "Class 3",
                      "custom_dimension_40": "Class 3",
                      "custom_dimension_41": "Class 3",
                      "custom_dimension_42": "Class 3",
                      "custom_dimension_43": "Class 3",
                      "custom_dimension_44": "Class 3",
                      "custom_dimension_45": "Class 3",
                      "custom_dimension_46": "Class 3",
                      "custom_dimension_47": "Class 3",
                      "custom_dimension_48": "Class 3",
                      "custom_dimension_49": "Class 3",
                      "custom_dimension_50": "Class 3",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download customers as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/customers.json?limit=1000&offset=0&customer_id=123k`\n",
        "operationId": "downloadCustomersJson",
        "tags": [
          "download-customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/customers.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "customer_id;customer_name;customer_company;customer_email;customer_phone;customer_address;customer_zipcode;customer_city;customer_country;custom_dimension_1;custom_dimension_2;custom_dimension_3;custom_dimension_4;custom_dimension_5\n32; John Smith; Smith Industries; john.smith@customer.customer;+35811111111; Mannerheimintie 1;00100; Helsinki; Finland;;;;;;\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download customers as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/customers.csv?limit=1000&offset=0&customer_id=123k`\n",
        "operationId": "downloadCustomersCsv",
        "tags": [
          "download-customers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/CustomerIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/organisations.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / Store ID",
                      "example": "540"
                    },
                    "organisation_name": {
                      "type": "string",
                      "description": "Organisation name",
                      "example": "Web Sales"
                    },
                    "area": {
                      "type": "string",
                      "description": "Sales area",
                      "example": "South"
                    },
                    "latitude": {
                      "type": "number",
                      "description": "Latitude",
                      "example": 60.184014
                    },
                    "longitude": {
                      "type": "number",
                      "description": "Longitude",
                      "example": 24.960046
                    },
                    "channel": {
                      "type": "string",
                      "description": "Sales channel",
                      "example": "Concession"
                    },
                    "floor_area": {
                      "type": "number",
                      "description": "Store area eg. in m2",
                      "example": 250
                    },
                    "no_customer_seats": {
                      "type": "number",
                      "description": "Number of customer seats in store",
                      "example": 150
                    },
                    "organisation_type": {
                      "type": "string",
                      "description": "Outlet / Brand / Essential",
                      "example": "Outlet"
                    },
                    "organisation_group": {
                      "type": "string",
                      "description": "Organisation group",
                      "example": "A"
                    },
                    "google_location_url": {
                      "type": "string",
                      "description": "Google review location URL",
                      "example": "https://www.google.com/maps/reviews?data=XYZ"
                    },
                    "image_url": {
                      "type": "string",
                      "description": "Url for external store image file",
                      "example": "http://example.com?product=XYZ"
                    },
                    "store_status": {
                      "type": "string",
                      "description": "Status of store",
                      "enum": [
                        "open",
                        "closed",
                        "temporarily_closed"
                      ],
                      "x-enumDescriptions": {
                        "open": "Store is open and active",
                        "closed": "Store has been closed down permanently",
                        "temporarily_closed": "Store has been closed temporarily"
                      },
                      "example": "closed"
                    },
                    "custom_dimension1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "Class 3"
                    },
                    "custom_dimension2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "Class 3"
                    },
                    "custom_dimension3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "Class 3"
                    },
                    "custom_dimension4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "Class 3"
                    },
                    "custom_dimension5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "Class 3"
                    }
                  },
                  "required": [
                    "organisation_id",
                    "organisation_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "organisation_id": "540",
                      "organisation_name": "Web Sales",
                      "area": "South",
                      "latitude": 60.184014,
                      "longitude": 24.960046,
                      "channel": "Concession",
                      "floor_area": 250,
                      "no_customer_seats": 150,
                      "organisation_type": "Outlet",
                      "organisation_group": "A",
                      "google_location_url": "https://www.google.com/maps/reviews?data=XYZ",
                      "image_url": "http://example.com?product=XYZ",
                      "store_status": "closed",
                      "custom_dimension1": "Class 3",
                      "custom_dimension2": "Class 3",
                      "custom_dimension3": "Class 3",
                      "custom_dimension4": "Class 3",
                      "custom_dimension5": "Class 3"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download organisations as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/organisations.json?limit=1000&offset=0&organisation_id=123k`\n",
        "operationId": "downloadOrganisationsJson",
        "tags": [
          "download-organisations"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OrganisationIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/organisations.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "organisation_id;organisation_name;area;channel;latitude;longitude;custom_dimension1;custom_dimension2;custom_dimension3;custom_dimension4;custom_dimension5\n540; Web Sales; South; Concession;Outlet;12.3;15.9;;;;;\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download organisations as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/organisations.csv?limit=1000&offset=0&organisation_id=123k`\n",
        "operationId": "downloadOrganisationsCsv",
        "tags": [
          "download-organisations"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OrganisationIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/departments.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "department_id": {
                      "type": "string",
                      "description": "Department ID",
                      "example": "5401"
                    },
                    "name": {
                      "type": "string",
                      "description": "Department name",
                      "example": "Web Sales"
                    },
                    "floor_area": {
                      "type": "number",
                      "description": "Department area in m2",
                      "example": 100
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / store this department belongs to",
                      "example": "540"
                    },
                    "no_customer_seats": {
                      "type": "number",
                      "description": "Number of customer seats available",
                      "example": 150
                    },
                    "custom_dimension1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "Class 3"
                    },
                    "custom_dimension2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "Class 3"
                    },
                    "custom_dimension3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "Class 3"
                    },
                    "custom_dimension4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "Class 3"
                    },
                    "custom_dimension5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "Class 3"
                    }
                  },
                  "required": [
                    "department_id",
                    "name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "department_id": "5401",
                      "name": "Web Sales",
                      "floor_area": 100,
                      "organisation_id": "540",
                      "no_customer_seats": 150,
                      "custom_dimension1": "Class 3",
                      "custom_dimension2": "Class 3",
                      "custom_dimension3": "Class 3",
                      "custom_dimension4": "Class 3",
                      "custom_dimension5": "Class 3"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download departments as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/departments.json?limit=1000&offset=0&department_id=5401`\n",
        "operationId": "downloadDepartmentsJson",
        "tags": [
          "download-departments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/DepartmentIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/departments.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "department_id;name;floor_area;organisation_id\n5401; Web Sales;100;540\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download departments as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/departments.csv?limit=1000&offset=0&department_id=5401`\n",
        "operationId": "downloadDepartmentsCsv",
        "tags": [
          "download-departments"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/DepartmentIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesPersons.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "salesperson_id": {
                      "type": "string",
                      "description": "Sales person ID",
                      "example": "5402101"
                    },
                    "salesperson_name": {
                      "type": "string",
                      "description": "Sales person name",
                      "example": "John Smith"
                    },
                    "salesperson_email": {
                      "type": "string",
                      "description": "Sales person email",
                      "example": "john.smith@store.store"
                    },
                    "salesperson_phone": {
                      "type": "string",
                      "description": "Sales person phone number",
                      "example": "+35811111111"
                    },
                    "employment_start": {
                      "type": "string",
                      "description": "Employment start date",
                      "example": "2020-01-01"
                    },
                    "employment_end": {
                      "type": "string",
                      "description": "Employment end date",
                      "example": "2020-05-31"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "Project worker"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "Project worker"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "Project worker"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "Project worker"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "Project worker"
                    },
                    "custom_metric_1": {
                      "type": "number",
                      "description": "Custom metric 1",
                      "example": 1
                    },
                    "custom_metric_2": {
                      "type": "number",
                      "description": "Custom metric 2",
                      "example": 100
                    },
                    "custom_metric_3": {
                      "type": "number",
                      "description": "Custom metric 3",
                      "example": 2.2
                    },
                    "custom_metric_4": {
                      "type": "number",
                      "description": "Custom metric 4",
                      "example": 1.05
                    },
                    "custom_metric_5": {
                      "type": "number",
                      "description": "Custom metric 5",
                      "example": 10000
                    }
                  },
                  "required": [
                    "salesperson_id"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "salesperson_id": "5402101",
                      "salesperson_name": "John Smith",
                      "salesperson_email": "john.smith@store.store",
                      "salesperson_phone": "+35811111111",
                      "employment_start": "2020-01-01",
                      "employment_end": "2020-05-31",
                      "custom_field_1": "Project worker",
                      "custom_field_2": "Project worker",
                      "custom_field_3": "Project worker",
                      "custom_field_4": "Project worker",
                      "custom_field_5": "Project worker",
                      "custom_metric_1": 1,
                      "custom_metric_2": 100,
                      "custom_metric_3": 2.2,
                      "custom_metric_4": 1.05,
                      "custom_metric_5": 10000
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales persons as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/salesPersons.json?limit=1000&offset=0&salesperson_id=123k`\n",
        "operationId": "downloadSalesPersonsJson",
        "tags": [
          "download-sales-persons"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SalespersonIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/salesPersons.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "salesperson_id;salesperson_name;salesperson_email;salesperson_phone\n5402101;John Smith;john.smith@store.store;+35811111111\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download sales persons as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/salesPersons.csv?limit=1000&offset=0&salesperson_id=123k`\n",
        "operationId": "downloadSalesPersonsCsv",
        "tags": [
          "download-sales-persons"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SalespersonIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/cashRegisters.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "register_id": {
                      "type": "string",
                      "description": "Register ID",
                      "example": "123-1"
                    },
                    "register_name": {
                      "type": "string",
                      "description": "Register name",
                      "example": "Kiosk 1"
                    },
                    "organisation_id": {
                      "type": "string",
                      "description": "Organisation / store this register belongs to",
                      "example": "540"
                    },
                    "register_type": {
                      "type": "string",
                      "description": "Register type",
                      "example": "Kiosk"
                    },
                    "register_group": {
                      "type": "string",
                      "description": "Register group",
                      "example": "Self service"
                    },
                    "custom_dimension1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "Class 3"
                    },
                    "custom_dimension2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "Class 3"
                    },
                    "custom_dimension3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "Class 3"
                    },
                    "custom_dimension4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "Class 3"
                    },
                    "custom_dimension5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "Class 3"
                    }
                  },
                  "required": [
                    "register_id",
                    "register_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "register_id": "123-1",
                      "register_name": "Kiosk 1",
                      "organisation_id": "540",
                      "register_type": "Kiosk",
                      "register_group": "Self service",
                      "custom_dimension1": "Class 3",
                      "custom_dimension2": "Class 3",
                      "custom_dimension3": "Class 3",
                      "custom_dimension4": "Class 3",
                      "custom_dimension5": "Class 3"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download cash registers as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/cashRegisters.json?limit=1000&offset=0&register_id=123-1`\n",
        "operationId": "downloadCashRegistersJson",
        "tags": [
          "download-cash-registers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/RegisterIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/cashRegisters.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "register_id;register_name;register_type;register_group\n123-1;Kiosk 1;Kiosk;Self service\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download cash registers as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/cashRegisters.csv?limit=1000&offset=0&register_id=123-1`\n",
        "operationId": "downloadCashRegistersCsv",
        "tags": [
          "download-cash-registers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/RegisterIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/accounts.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "account_id": {
                      "type": "string",
                      "description": "Account ID",
                      "example": "1150"
                    },
                    "account_name": {
                      "type": "string",
                      "description": "Account name",
                      "example": "Employee Salaries"
                    },
                    "account_type": {
                      "type": "string",
                      "description": "Account type",
                      "example": "Salaries"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom field 1",
                      "example": "EU only"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom field 2",
                      "example": "EU only"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom field 3",
                      "example": "EU only"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom field 4",
                      "example": "EU only"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom field 5",
                      "example": "EU only"
                    }
                  },
                  "required": [
                    "account_id",
                    "account_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "account_id": "1150",
                      "account_name": "Employee Salaries",
                      "account_type": "Salaries",
                      "custom_field_1": "EU only",
                      "custom_field_2": "EU only",
                      "custom_field_3": "EU only",
                      "custom_field_4": "EU only",
                      "custom_field_5": "EU only"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download accounts as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/accounts.json?limit=1000&offset=0&account_id=1230`\n",
        "operationId": "downloadAccountsJson",
        "tags": [
          "download-accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/AccountIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/accounts.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "account_id;account_name;account_type\n1020;Employee Salaries;Salaries\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download accounts as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/accounts.csv?limit=1000&offset=0&account_id=1230`\n",
        "operationId": "downloadAccountsCsv",
        "tags": [
          "download-accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/AccountIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/events.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "event_id": {
                      "type": "string",
                      "description": "Event ID",
                      "example": "1150"
                    },
                    "event_name": {
                      "type": "string",
                      "description": "Event name",
                      "example": "Rock around the clock"
                    },
                    "event_type": {
                      "type": "string",
                      "description": "Event type",
                      "example": "Concert"
                    },
                    "venue_name": {
                      "type": "string",
                      "description": "Venue name",
                      "example": "Arena 1"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom field 1",
                      "example": "EU only"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom field 2",
                      "example": "EU only"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom field 3",
                      "example": "EU only"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom field 4",
                      "example": "EU only"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom field 5",
                      "example": "EU only"
                    }
                  },
                  "required": [
                    "event_id",
                    "event_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "event_id": "1150",
                      "event_name": "Rock around the clock",
                      "event_type": "Concert",
                      "venue_name": "Arena 1",
                      "custom_field_1": "EU only",
                      "custom_field_2": "EU only",
                      "custom_field_3": "EU only",
                      "custom_field_4": "EU only",
                      "custom_field_5": "EU only"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download events as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/events.json?limit=1000&offset=0&event_id=123`\n",
        "operationId": "downloadEventsJson",
        "tags": [
          "download-events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EventIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/events.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "event_id;event_name;event_type\n102;Rock concert;Concert\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download events as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/events.csv?limit=1000&offset=0&event_id=123`\n",
        "operationId": "downloadEventsCsv",
        "tags": [
          "download-events"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EventIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/hierarchies.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hierarchy_name": {
                      "type": "string",
                      "description": "Hierarchy name",
                      "example": "product"
                    },
                    "category_id": {
                      "type": "string",
                      "description": "Category ID",
                      "example": "123"
                    },
                    "category_name": {
                      "type": "string",
                      "description": "Category name",
                      "example": "Shoes"
                    },
                    "parent_id": {
                      "type": "string",
                      "description": "Category parent ID",
                      "example": "12"
                    }
                  },
                  "required": [
                    "hierarchy_name",
                    "category_id",
                    "category_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "hierarchy_name": "product",
                      "category_id": "123",
                      "category_name": "Shoes",
                      "parent_id": "12"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download hierarchies as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/hierarchies.json?limit=1000&offset=0&category_id=5401&hierarchy_key=product`\n",
        "operationId": "downloadCategoryHierarchiesJson",
        "tags": [
          "download-category-hierarchies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/CategoryIdQueryParameter"
          },
          {
            "$ref": "#/components/parameters/HierarchyKeyQueryParameter"
          }
        ]
      }
    },
    "/v2/download/hierarchies.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "hierarchy_name;category_id;category_name;parent_id\nproduct;1234; Shoes;123\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download hierarchies as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/hierarchies.csv?limit=1000&offset=0&category_id=5401&hierarchy_key=product`\n",
        "operationId": "downloadCategoryHierarchiesCsv",
        "tags": [
          "download-category-hierarchies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/CategoryIdQueryParameter"
          },
          {
            "$ref": "#/components/parameters/HierarchyKeyQueryParameter"
          }
        ]
      }
    },
    "/v2/download/flatHierarchies.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "hierarchy_key": {
                      "type": "string",
                      "description": "Type of hierarchy that is uploaded",
                      "enum": [
                        "product",
                        "model",
                        "product_group",
                        "organisation",
                        "customer",
                        "channel",
                        "area",
                        "account"
                      ],
                      "x-enumDescriptions": {
                        "product": "Product category hierarchy",
                        "model": "Product model hierarchy",
                        "product_group": "Product group hierarchy",
                        "organisation": "Organisation hierarchy",
                        "customer": "Customer hierarchy",
                        "channel": "Channel hierarchy",
                        "area": "Area hierarchy",
                        "account": "Bookkeeping account hierarchy"
                      },
                      "example": "product"
                    },
                    "entity_id": {
                      "type": "string",
                      "description": "Identifier for the lowest level entity in the hierarchy",
                      "example": "XYZ"
                    },
                    "level1": {
                      "type": "string",
                      "description": "Name of root category level",
                      "example": "Clothing"
                    },
                    "level2": {
                      "type": "string",
                      "description": "Name of category level 2",
                      "example": "Children's clothing"
                    },
                    "level3": {
                      "type": "string",
                      "description": "Name of category level 3",
                      "example": "Children's outdoor clothing"
                    },
                    "level4": {
                      "type": "string",
                      "description": "Name of category level 4",
                      "example": "Children's outdoor headwear"
                    },
                    "level5": {
                      "type": "string",
                      "description": "Name of category level 5",
                      "example": "Children's caps"
                    },
                    "level6": {
                      "type": "string",
                      "description": "Name of category level 6",
                      "example": "Children's small caps"
                    },
                    "level7": {
                      "type": "string",
                      "description": "Name of category level 7",
                      "example": "Children's themed caps"
                    },
                    "level8": {
                      "type": "string",
                      "description": "Name of category level 8",
                      "example": "Children's disney caps"
                    },
                    "level9": {
                      "type": "string",
                      "description": "Name of category level 9",
                      "example": "Children's mickey caps"
                    },
                    "level10": {
                      "type": "string",
                      "description": "Name of category level 10",
                      "example": "Children's ..."
                    }
                  },
                  "required": [
                    "hierarchy_key",
                    "entity_id",
                    "level1"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "hierarchy_key": "product",
                      "entity_id": "XYZ",
                      "level1": "Clothing",
                      "level2": "Children's clothing",
                      "level3": "Children's outdoor clothing",
                      "level4": "Children's outdoor headwear",
                      "level5": "Children's caps",
                      "level6": "Children's small caps",
                      "level7": "Children's themed caps",
                      "level8": "Children's disney caps",
                      "level9": "Children's mickey caps",
                      "level10": "Children's ..."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download flat hierarchies as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/flatHierarchies.json?limit=1000&offset=0&hierarchy_key=product`\n",
        "operationId": "downloadFlatHierarchiesJson",
        "tags": [
          "download-flat-hierarchies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/HierarchyKeyQueryParameter"
          }
        ]
      }
    },
    "/v2/download/flatHierarchies.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "hierarchy_key;entity_id;level1;level2;level3;level4;level5\nproduct;XYZ;Clothing;Children's clothing;Children's outdoor clothing;Children's outdoor headwear;Children's caps\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download flat hierarchies as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/flatHierarchies.csv?limit=1000&offset=0&hierarchy_key=product`\n",
        "operationId": "downloadFlatHierarchiesCsv",
        "tags": [
          "download-flat-hierarchies"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/HierarchyKeyQueryParameter"
          }
        ]
      }
    },
    "/v2/download/counters.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "counter_id": {
                      "type": "string",
                      "description": "Counter ID",
                      "example": "5"
                    },
                    "counter_name": {
                      "type": "string",
                      "description": "Counter name",
                      "example": "Front door 1"
                    },
                    "folder_id: front_door_1": {
                      "type": "string",
                      "description": "Name of identification folder",
                      "example": ""
                    },
                    "serial": {
                      "type": "string",
                      "description": "Camera serial number",
                      "example": "ABCDE12345"
                    },
                    "registration_code": {
                      "type": "string",
                      "description": "Camera registration code",
                      "example": "A1B2C3D4E5"
                    },
                    "disabled": {
                      "type": "boolean",
                      "description": "True if the counter is disabled (i.e. is set to not send data)",
                      "example": false
                    },
                    "is_queue": {
                      "type": "boolean",
                      "description": "True if the counter is a queue counter",
                      "example": false
                    },
                    "on_store_perimeter": {
                      "type": "boolean",
                      "description": "True, if this a store perimeter camera",
                      "example": true
                    },
                    "organisation_id: my_organisation_id": {
                      "type": "string",
                      "description": "Id of the store/organisation where the camera is located"
                    },
                    "department_id: my_department_id": {
                      "type": "string",
                      "description": "Id of the department where the camera is located"
                    },
                    "department_reversed_id": {
                      "type": "string",
                      "description": "Secondary department id where in and out counts are reversed.",
                      "example": "reverse_id"
                    }
                  },
                  "required": [
                    "counter_id",
                    "counter_name",
                    "disabled"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "counter_id": "5",
                      "counter_name": "Front door 1",
                      "folder_id: front_door_1": "",
                      "serial": "ABCDE12345",
                      "registration_code": "A1B2C3D4E5",
                      "disabled": false,
                      "is_queue": false,
                      "on_store_perimeter": true,
                      "department_reversed_id": "reverse_id"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download counters as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/counters.json?limit=1000&offset=0&counter_id=5`\n",
        "operationId": "downloadCountersJson",
        "tags": [
          "download-counters"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "name": "counter_id",
            "in": "query",
            "description": "Returns data of counter based on the given id",
            "required": false,
            "example": "5",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v2/download/counters.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "counter_id;counter_name;department_id;disabled;folder_id;is_queue;last_update_time;on_store_perimeter;organisation_id;registration_code;serial;time_zone;first_connected_date;last_connected_date\nmy_counter;My counter name;my_department_id;false;my_folder_id;false;2023-06-20 11:15:00;true;my_organisation_id;A1B2C3D4E5;ABCDE12345;Europe/Helsinki;2022-11-20 15:04:37;2023-10-21 16:14:07\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download counters as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/counters.csv?limit=1000&offset=0&counter_id=5`\n",
        "operationId": "downloadCountersCsv",
        "tags": [
          "download-counters"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "name": "counter_id",
            "in": "query",
            "description": "Returns data of department based on the given id",
            "required": false,
            "example": "5",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v2/download/campaigns.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "campaign_id": {
                      "type": "string",
                      "description": "Campaign ID",
                      "example": "6344"
                    },
                    "campaign_name": {
                      "type": "string",
                      "description": "Campaign name",
                      "example": "February 2016"
                    },
                    "campaign_type": {
                      "type": "string",
                      "description": "Campaign type",
                      "example": "Web"
                    },
                    "start_date": {
                      "type": "string",
                      "description": "Campaign Start Date (yyyy-mm-dd)",
                      "example": "2016-02-01"
                    },
                    "end_date": {
                      "type": "string",
                      "description": "Campaign End Date (yyyy-mm-dd)",
                      "example": "2016-02-29"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "New"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "New"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "New"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "New"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "Old"
                    }
                  },
                  "required": [
                    "campaign_id",
                    "campaign_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "campaign_id": "6344",
                      "campaign_name": "February 2016",
                      "campaign_type": "Web",
                      "start_date": "2016-02-01",
                      "end_date": "2016-02-29",
                      "custom_field_1": "New",
                      "custom_field_2": "New",
                      "custom_field_3": "New",
                      "custom_field_4": "New",
                      "custom_field_5": "Old"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download campaigns as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/campaigns.json?limit=1000&offset=0&campaign_id=123k&start_date=2017-01-01&end_date=2017-01-31`\n",
        "operationId": "downloadCampaignsJson",
        "tags": [
          "download-campaigns"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/CampaignIdQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartDateQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndDateQueryParameter"
          }
        ]
      }
    },
    "/v2/download/campaigns.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "campaign_id;campaign_name;start_date;end_date\n6344;February 2016;2016-02-01;2016-02-29\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download campaigns as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/campaigns.csv?limit=1000&offset=0&campaign_id=123k&start_date=2017-01-01&end_date=2017-01-31`\n",
        "operationId": "downloadCampaignsCsv",
        "tags": [
          "download-campaigns"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/CampaignIdQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartDateQueryParameter"
          },
          {
            "$ref": "#/components/parameters/EndDateQueryParameter"
          }
        ]
      }
    },
    "/v2/download/paymentTypes.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "payment_type_id": {
                      "type": "string",
                      "description": "Payment Type ID",
                      "example": "1"
                    },
                    "payment_type": {
                      "type": "string",
                      "description": "Payment type name",
                      "example": "credit card"
                    },
                    "payment_group": {
                      "type": "string",
                      "description": "Payment group",
                      "example": "Store"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Custom Field 1",
                      "example": "App"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Custom Field 2",
                      "example": "App"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Custom Field 3",
                      "example": "App"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Custom Field 4",
                      "example": "App"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Custom Field 5",
                      "example": "App"
                    }
                  },
                  "required": [
                    "payment_type_id",
                    "payment_type"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "payment_type_id": "1",
                      "payment_type": "credit card",
                      "payment_group": "Store",
                      "custom_field_1": "App",
                      "custom_field_2": "App",
                      "custom_field_3": "App",
                      "custom_field_4": "App",
                      "custom_field_5": "App"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download payment types as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/paymentTypes.json?limit=1000&offset=0&payment_type_id=1`\n",
        "operationId": "downloadPaymentTypesJson",
        "tags": [
          "download-payment-types"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/PaymentTypeIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/paymentTypes.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "payment_type_id;payment_type\n1; credit card\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download payment types as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/paymentTypes.csv?limit=1000&offset=0&payment_type_id=1`\n",
        "operationId": "downloadPaymentTypesCsv",
        "tags": [
          "download-payment-types"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/PaymentTypeIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/rebateCodes.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rebate_code_id": {
                      "type": "string",
                      "description": "Rebate Code ID",
                      "example": "3313V"
                    },
                    "rebate_code_name": {
                      "type": "string",
                      "description": "Description of the reason",
                      "example": "Model product"
                    }
                  },
                  "required": [
                    "rebate_code_id",
                    "rebate_code_name"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "rebate_code_id": "3313V",
                      "rebate_code_name": "Model product"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download rebate codes as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/rebateCodes.json?limit=1000&offset=0&rebate_code_id=123k`\n",
        "operationId": "downloadRebateCodesJson",
        "tags": [
          "download-rebate-codes"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/RebateCodeIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/rebateCodes.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "rebate_code_id;rebate_code_name\n3313V; Model product\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download rebate codes as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/rebateCodes.csv?limit=1000&offset=0&rebate_code_id=123k`\n",
        "operationId": "downloadRebateCodesCsv",
        "tags": [
          "download-rebate-codes"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/RebateCodeIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/suppliers.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "supplier_id": {
                      "type": "string",
                      "description": "Supplier ID",
                      "example": "221"
                    },
                    "supplier_name": {
                      "type": "string",
                      "description": "Supplier name",
                      "example": "WasSuppliers"
                    },
                    "supplier_email": {
                      "type": "string",
                      "description": "Supplier Email",
                      "example": "john.smith@supplier.supplier"
                    },
                    "supplier_phone": {
                      "type": "string",
                      "description": "Supplier phone number",
                      "example": "+3581111111"
                    },
                    "supplier_address": {
                      "type": "string",
                      "description": "Street address",
                      "example": "Mannerheimintie 1"
                    },
                    "supplier_city": {
                      "type": "string",
                      "description": "City",
                      "example": "Helsinki"
                    },
                    "supplier_zipcode": {
                      "type": "string",
                      "description": "Postal code",
                      "example": "00100"
                    },
                    "supplier_country": {
                      "type": "string",
                      "description": "Country",
                      "example": "Finland"
                    },
                    "supplier_type": {
                      "type": "string",
                      "description": "Supplier type",
                      "example": "Local"
                    },
                    "supplier_group": {
                      "type": "string",
                      "description": "Supplier group",
                      "example": "Strategic Supplier"
                    },
                    "custom_field_1": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_2": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_3": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_4": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    },
                    "custom_field_5": {
                      "type": "string",
                      "description": "Field that can be used for custom dimensions",
                      "example": "XYZ"
                    }
                  },
                  "required": [
                    "supplier_id"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "supplier_id": "221",
                      "supplier_name": "WasSuppliers",
                      "supplier_email": "john.smith@supplier.supplier",
                      "supplier_phone": "+3581111111",
                      "supplier_address": "Mannerheimintie 1",
                      "supplier_city": "Helsinki",
                      "supplier_zipcode": "00100",
                      "supplier_country": "Finland",
                      "supplier_type": "Local",
                      "supplier_group": "Strategic Supplier",
                      "custom_field_1": "XYZ",
                      "custom_field_2": "XYZ",
                      "custom_field_3": "XYZ",
                      "custom_field_4": "XYZ",
                      "custom_field_5": "XYZ"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download suppliers as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/suppliers.json?limit=1000&offset=0&supplier_id=123k`\n",
        "operationId": "downloadSuppliersJson",
        "tags": [
          "download-suppliers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SupplierIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/suppliers.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "supplier_id;supplier_name;supplier_email;supplier_phone;supplier_address;supplier_city; supplier_zipcode;supplier_country\n221; WasSuppliers; john.smith@supplier.supplier; +3581111111; Mannerheimintie 1;Helsinki; 00100; Finland\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download suppliers as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/suppliers.csv?limit=1000&offset=0&supplier_id=123k`\n",
        "operationId": "downloadSuppliersCsv",
        "tags": [
          "download-suppliers"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SupplierIdQueryParameter"
          }
        ]
      }
    },
    "/v2/download/calendar.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "period_key": {
                      "type": "string",
                      "description": "Period type identifier",
                      "example": "season"
                    },
                    "period_year": {
                      "type": "number",
                      "description": "Period year",
                      "example": 2018
                    },
                    "period_name": {
                      "type": "string",
                      "description": "Name of period",
                      "example": "Autumn Season"
                    },
                    "period_number": {
                      "type": "number",
                      "description": "period numeric id",
                      "example": 2
                    },
                    "start_date": {
                      "type": "string",
                      "description": "Start date of period",
                      "example": "2018-07-01"
                    },
                    "end_date": {
                      "type": "string",
                      "description": "End date of period",
                      "example": "2018-12-31"
                    }
                  },
                  "required": [
                    "period_key",
                    "period_year",
                    "period_name",
                    "period_number",
                    "start_date",
                    "end_date"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "period_key": "season",
                      "period_year": 2018,
                      "period_name": "Autumn Season",
                      "period_number": 2,
                      "start_date": "2018-07-01",
                      "end_date": "2018-12-31"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download custom calendar as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/calendar.json?limit=1000&offset=0&year=2018&period=season`\n",
        "operationId": "downloadCustomCalendarsJson",
        "tags": [
          "download-custom-calendars"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/YearQueryParameter"
          },
          {
            "$ref": "#/components/parameters/PeriodQueryParameter"
          }
        ]
      }
    },
    "/v2/download/calendar.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "period_key;period_name;period_year;period_number;start_date;end_date\nseason;Autumn Season;2018;2;2018-07-01;2018-12-31\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download custom calendar as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/calendar.csv?limit=1000&offset=0&year=2018&period=season`\n",
        "operationId": "downloadCustomCalendarsCsv",
        "tags": [
          "download-custom-calendars"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/YearQueryParameter"
          },
          {
            "$ref": "#/components/parameters/PeriodQueryParameter"
          }
        ]
      }
    },
    "/v2/download/flatCalendar.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "calendar_date": {
                      "type": "string",
                      "description": "Calendar date",
                      "example": "2019-01-01"
                    },
                    "calendar_year": {
                      "type": "string",
                      "description": "Calendar period year name",
                      "example": "2018/2019"
                    },
                    "period_name": {
                      "type": "string",
                      "description": "Name of period",
                      "example": "January"
                    },
                    "period_number": {
                      "type": "number",
                      "description": "period numeric id",
                      "example": 2
                    },
                    "week_number": {
                      "type": "number",
                      "description": "Week number of period",
                      "example": 9
                    },
                    "season": {
                      "type": "string",
                      "description": "Season name",
                      "example": "Spring 2019"
                    },
                    "season_label": {
                      "type": "string",
                      "description": "Season label",
                      "example": "Spring"
                    },
                    "lfl_date": {
                      "type": "string",
                      "description": "Comparison (LFL) date last year period",
                      "example": "2018-01-02"
                    },
                    "bank_holiday_name": {
                      "type": "string",
                      "description": "Bank holiday name",
                      "example": "New Year"
                    }
                  },
                  "required": [
                    "calendar_date"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "calendar_date": "2019-01-01",
                      "calendar_year": "2018/2019",
                      "period_name": "January",
                      "period_number": 2,
                      "week_number": 9,
                      "season": "Spring 2019",
                      "season_label": "Spring",
                      "lfl_date": "2018-01-02",
                      "bank_holiday_name": "New Year"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download flat calendar as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/flatCalendar.json?limit=1000&offset=0&year=2018`\n",
        "operationId": "downloadFlatCalendarsJson",
        "tags": [
          "download-flat-calendars"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/YearQueryParameter"
          }
        ]
      }
    },
    "/v2/download/flatCalendar.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "calendar_date;calendar_year;period_name;period_number;week_number;season;season_label;lfl_date;bank_holiday_name\n2018-01-01;2017/2018;January;1;1;Spring 2018;Spring;2016-12-30;New year day\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download flat calendar as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/flatCalendar.csv?limit=1000&offset=0&year=2018`\n",
        "operationId": "downloadFlatCalendarsCsv",
        "tags": [
          "download-flat-calendars"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/YearQueryParameter"
          }
        ]
      }
    },
    "/v2/download/currencyRates.json": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "source_currency": {
                      "type": "string",
                      "description": "Source currency as ISO 4217 currency code.",
                      "example": "EUR"
                    },
                    "target_currency": {
                      "type": "string",
                      "description": "Target currency as ISO 4217 currency code.",
                      "example": "SEK"
                    },
                    "valid_from": {
                      "type": "string",
                      "description": "First day when the exchange rate is valid",
                      "example": "2017-01-01"
                    },
                    "valid_to": {
                      "type": "string",
                      "description": "Last day when the exchange rate is valid",
                      "example": "2017-12-31"
                    },
                    "rate": {
                      "type": "number",
                      "description": "Exchange rate to from source to target currency",
                      "example": 0.1123
                    }
                  },
                  "required": [
                    "source_currency",
                    "target_currency",
                    "valid_from",
                    "valid_to",
                    "rate"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "source_currency": "EUR",
                      "target_currency": "SEK",
                      "valid_from": "2017-01-01",
                      "valid_to": "2017-12-31",
                      "rate": 0.1123
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download currency rates as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/currencyRates.json?limit=1000&offset=0&start=2018-01-01&end=2018-12-31&currency=SEK`\n",
        "operationId": "downloadCurrencyRatesJson",
        "tags": [
          "download-currency-rates"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter4"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter4"
          },
          {
            "$ref": "#/components/parameters/CurrencyQueryParameter"
          }
        ]
      }
    },
    "/v2/download/currencyRates.csv": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "source_currency;target_currency;valid_from;valid_to;rate\nSEK;EUR;2018-01-01;2018-12-31;0.11234\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download currency rates as CSV",
        "description": "**GET** `https://api.zoined.com/v2/download/currencyRates.csv?limit=1000&offset=0&start=2018-01-01&end=2018-12-31&currency=SEK`\n",
        "operationId": "downloadCurrencyRatesCsv",
        "tags": [
          "download-currency-rates"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter4"
          },
          {
            "$ref": "#/components/parameters/EndQueryParameter4"
          },
          {
            "$ref": "#/components/parameters/CurrencyQueryParameter"
          }
        ]
      }
    },
    "/v2/download/budgets": {
      "get": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "year": {
                      "type": "number",
                      "description": "Year this budget entry refers to",
                      "example": 2019
                    },
                    "month": {
                      "type": "number",
                      "description": "Month this budget entry refers to. Either month or week must be specified.",
                      "example": 1
                    },
                    "week": {
                      "type": "number",
                      "description": "Week this budget entry refers to. Either month or week must be specified.",
                      "example": 12
                    },
                    "day": {
                      "type": "number",
                      "description": "Optional day this budget entry refers to",
                      "example": 1
                    },
                    "hour": {
                      "type": "number",
                      "description": "Optional hour this budget refers to. Day must be also specified if hour is specified.",
                      "example": 12
                    },
                    "label": {
                      "type": "string",
                      "description": "Label (type) this budget has",
                      "example": "forecast"
                    },
                    "dimensions": {
                      "type": "object",
                      "properties": {},
                      "description": "Key-value pairs of dimensions and values for entry",
                      "example": {}
                    },
                    "metrics": {
                      "type": "object",
                      "properties": {},
                      "description": "Key-value pairs of metric values for given time and dimensions",
                      "example": {}
                    }
                  },
                  "required": [
                    "year",
                    "dimensions",
                    "metrics"
                  ]
                },
                "examples": {
                  "response": {
                    "value": {
                      "year": 2019,
                      "month": 1,
                      "week": 12,
                      "day": 1,
                      "hour": 12,
                      "label": "forecast",
                      "dimensions": {},
                      "metrics": {}
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Download budgets as JSON",
        "description": "**GET** `https://api.zoined.com/v2/download/budgets?limit=1000&offset=0&year=2018&label=forecast&metric=sales`\n",
        "operationId": "downloadBudgetsJson",
        "tags": [
          "download-budgets"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitQueryParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetQueryParameter"
          },
          {
            "name": "year",
            "in": "query",
            "description": "Returns budgets for given year(s) only",
            "required": false,
            "example": "2018",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "label",
            "in": "query",
            "description": "Returns budgets with given label(s) only",
            "required": false,
            "example": "forecast",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "metric",
            "in": "query",
            "description": "Returns budgets for given metric(s) only",
            "required": false,
            "example": "sales",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v2/query/table": {
      "post": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.",
            "headers": {
              "X-Zoined-Total-Items": {
                "schema": {
                  "type": "string"
                },
                "example": "30"
              },
              "X-Zoined-Limit": {
                "schema": {
                  "type": "string"
                },
                "example": "1000"
              },
              "X-Zoined-Offset": {
                "schema": {
                  "type": "string"
                },
                "example": "0"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "dimensions": {
                        "type": "object",
                        "description": "All dimensions from grouping list",
                        "properties": {
                          "day": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Identifier for the dimension entry",
                                "example": "20170101"
                              },
                              "name": {
                                "type": "string",
                                "description": "Human visible name for the dimension entry",
                                "example": "2017-01-01"
                              }
                            }
                          },
                          "store": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Identifier for the dimension entry",
                                "example": "Helsinki"
                              },
                              "name": {
                                "type": "string",
                                "description": "Human visible name for the dimension entry",
                                "example": "Helsinki"
                              }
                            }
                          }
                        }
                      },
                      "metrics": {
                        "type": "object",
                        "description": "Aggregated metric values for set of dimensions",
                        "properties": {
                          "sales": {
                            "type": "number",
                            "example": 10000
                          },
                          "sales_margin": {
                            "type": "number",
                            "example": 2000
                          }
                        }
                      },
                      "sort": {
                        "type": "object",
                        "description": "List of items (dimension and metrics from above) to be used for sorting",
                        "properties": {
                          "day": {
                            "type": "string"
                          },
                          "store": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": [
                      {
                        "dimensions": {
                          "day": {
                            "id": "20170101",
                            "name": "2017-01-01"
                          },
                          "store": {
                            "id": "Helsinki",
                            "name": "Helsinki"
                          }
                        },
                        "metrics": {
                          "sales": 10000,
                          "sales_margin": 2000
                        },
                        "sort": {
                          "day": "",
                          "store": ""
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Query data as JSON",
        "description": "**POST** `https://api.zoined.com/v2/query/table`\n\nRetrieve tabular data in JSON format (flat array with one element per group).\n",
        "operationId": "queryDataTableJson",
        "tags": [
          "query-query-data-in-tabular-format"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Query_data_as_JSONBody"
        }
      }
    },
    "/v2/query/table.csv": {
      "post": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.",
            "headers": {
              "X-Zoined-Total-Items": {
                "schema": {
                  "type": "string"
                },
                "example": "30"
              },
              "X-Zoined-Limit": {
                "schema": {
                  "type": "string"
                },
                "example": "1000"
              },
              "X-Zoined-Offset": {
                "schema": {
                  "type": "string"
                },
                "example": "0"
              }
            },
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "day;store;sales;sales_margin\n2017-01-01;Helsinki;10000;2000\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Query data as CSV",
        "description": "**POST** `https://api.zoined.com/v2/query/table.csv?includeNames=false&namesOnly=false`\n\nRetrieve tabular data in CSV format. First row contains headers (field names for dimensions and metrics), and rest of the rows contain data values.\n",
        "operationId": "queryDataTableCsv",
        "tags": [
          "query-query-data-in-tabular-format"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IncludeNamesQueryParameter"
          },
          {
            "$ref": "#/components/parameters/NamesOnlyQueryParameter"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Query_data_as_JSONBody"
        }
      }
    },
    "/v2/query/stream": {
      "post": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "dimensions": {
                        "type": "object",
                        "description": "All dimensions from grouping list",
                        "properties": {
                          "day": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Identifier for the dimension entry",
                                "example": "20170101"
                              },
                              "name": {
                                "type": "string",
                                "description": "Human visible name for the dimension entry",
                                "example": "2017-01-01"
                              }
                            }
                          },
                          "store": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "Identifier for the dimension entry",
                                "example": "Helsinki"
                              },
                              "name": {
                                "type": "string",
                                "description": "Human visible name for the dimension entry",
                                "example": "Helsinki"
                              }
                            }
                          }
                        }
                      },
                      "metrics": {
                        "type": "object",
                        "description": "Aggregated metric values for set of dimensions",
                        "properties": {
                          "sales": {
                            "type": "number",
                            "example": 10000
                          },
                          "sales_margin": {
                            "type": "number",
                            "example": 2000
                          }
                        }
                      },
                      "sort": {
                        "type": "object",
                        "description": "List of items (dimension and metrics from above) to be used for sorting",
                        "properties": {
                          "day": {
                            "type": "string"
                          },
                          "store": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": [
                      {
                        "dimensions": {
                          "day": {
                            "id": "20170101",
                            "name": "2017-01-01"
                          },
                          "store": {
                            "id": "Helsinki",
                            "name": "Helsinki"
                          }
                        },
                        "metrics": {
                          "sales": 10000,
                          "sales_margin": 2000
                        },
                        "sort": {
                          "day": "",
                          "store": ""
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Query data as JSON stream",
        "description": "**POST** `https://api.zoined.com/v2/query/stream`\n\nRetrieve stream data in JSON format (flat array with one element per group).\n",
        "operationId": "queryDataStreamJson",
        "tags": [
          "query-query-data-in-stream-format"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Query_data_as_JSONBody"
        }
      }
    },
    "/v2/query/stream.csv": {
      "post": {
        "responses": {
          "200": {
            "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/csv`",
            "content": {
              "application/csv": {
                "examples": {
                  "response": {
                    "value": "day;store;sales;sales_margin\n2017-01-01;Helsinki;10000;2000\n"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidOrMalformedRequest"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Query data as CSV stream",
        "description": "**POST** `https://api.zoined.com/v2/query/stream.csv?includeNames=false&namesOnly=false`\n\nRetrieve stream data in CSV format. First row contains headers (field names for dimensions and metrics), and rest of the rows contain data values.\n",
        "operationId": "queryDataStreamCsv",
        "tags": [
          "query-query-data-in-stream-format"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/IncludeNamesQueryParameter"
          },
          {
            "$ref": "#/components/parameters/NamesOnlyQueryParameter"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Query_data_as_JSONBody"
        }
      }
    },
    "/data": {
      "delete": {
        "responses": {
          "204": {
            "description": "Warehouse data has been reset successfully."
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidRequestEgUnknownEntityParameter"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Reset all data in the warehouse",
        "description": "**DELETE** `https://api.zoined.com/data?entity=sales`\n\nAllows one to do full or selective reset to data in the warehouse. This will allow one to start from clean state if something goes wrong while working with the integration or alternatively just remove some single/multiple bad data set(s). It is only possible to use this API before transitioning to production. After that you'll need to contact Zoined Support if you have need for full or partial warehouse reset. Entity names for selective reset are end point names in lower case and singular form eg. sales, salespayment, salesorder, organisation, product etc.\n",
        "operationId": "resetWarehouseData",
        "tags": [
          "maintenance-data"
        ],
        "parameters": [
          {
            "name": "entity",
            "in": "query",
            "description": "Optional entity/entities to truncate instead of all data.",
            "required": false,
            "example": "sales",
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/data/{entity}/id": {
      "delete": {
        "responses": {
          "204": {
            "description": "Data for the provided id values has been removed from warehouse."
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidRequestEgUnknownEntityParameter"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Selectively delete by given list of ids",
        "description": "**DELETE** `https://api.zoined.com/data/sales/id?ids=12345&sourceSystem=myPos`\n\nThis endpoint allows deleting existing transaction data by giving a list of transaction or entity id values already existing in the warehouse. Entity name for selective deletion is one of the end point names in lower case and singular form eg. sales, salespayment, salesorder, organisation, product etc.\n",
        "operationId": "deleteEntityDataByIds",
        "tags": [
          "maintenance-data"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/EntityPathParameter"
          },
          {
            "name": "ids",
            "in": "query",
            "description": "id values to identify transactions to be removed can be repeated for multiple values.",
            "required": true,
            "example": "12345",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/SourceSystemQueryParameter"
          }
        ]
      }
    },
    "/data/{entity}/daterange": {
      "delete": {
        "responses": {
          "204": {
            "description": "Data for the provided date range has been removed from warehouse."
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidRequestEgUnknownEntityParameter"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Selectively delete by given date range",
        "description": "**DELETE** `https://api.zoined.com/data/sales/daterange?start=2024-10-01&end=2024-10-31&store=1234&sourceSystem=myPos`\n\nThe endpoint allows deleting existing transaction data by giving a date range (eg. two sales dates) for data already existing in the warehouse. Entity name for selective deletion is one of the end point names in lower case and singular form eg. sales, salespayment, salesorder, organisation, product etc.\n",
        "operationId": "deleteEntityDataByDateRange",
        "tags": [
          "maintenance-data"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/EntityPathParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter5"
          },
          {
            "name": "end",
            "in": "query",
            "description": "End date for the date range.",
            "required": true,
            "example": "2024-10-31",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/StoreQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SourceSystemQueryParameter"
          }
        ]
      }
    },
    "/data/{entity}/batchdate": {
      "delete": {
        "responses": {
          "204": {
            "description": "Data for the provided batch date range has been removed from warehouse."
          },
          "400": {
            "$ref": "#/components/responses/BadRequestInvalidRequestEgUnknownEntityParameter"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAuthorizationTokenInHeader"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorInternalErrorOrException"
          }
        },
        "summary": "Selectively delete by given batch date range",
        "description": "**DELETE** `https://api.zoined.com/data/sales/batchdate?start=2024-10-01&end=2024-10-31&store=1234&sourceSystem=myPos`\n\nThe endpoint allows deleting existing transaction data by giving a batch date range (ie. data receipt timestamp) for data already existing in the warehouse. This endpoint is handy if you want to for example delete eg. all data send to Zoined within last 7 days (to resend it later). Entity name for selective deletion is one of the end point names in lower case and singular form eg. sales, salespayment, salesorder, organisation, product etc.\n",
        "operationId": "deleteEntityDataByBatchDateRange",
        "tags": [
          "maintenance-data"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/EntityPathParameter"
          },
          {
            "$ref": "#/components/parameters/StartQueryParameter5"
          },
          {
            "name": "end",
            "in": "query",
            "description": "End date for the date range. Default today.",
            "required": false,
            "example": "2024-10-31",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/StoreQueryParameter"
          },
          {
            "$ref": "#/components/parameters/SourceSystemQueryParameter"
          }
        ]
      }
    }
  },
  "components": {
    "requestBodies": {
      "Query_data_as_JSONBody": {
        "description": "",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "context": {
                  "type": "object",
                  "properties": {
                    "locale": {
                      "type": "string",
                      "description": "Locale for the results",
                      "example": "en"
                    },
                    "currency": {
                      "type": "string",
                      "description": "Currency for returned monetary values",
                      "example": "EUR"
                    }
                  },
                  "description": "Context for the queries",
                  "example": {
                    "locale": "en",
                    "currency": "EUR"
                  }
                },
                "query": {
                  "type": "object",
                  "properties": {
                    "grouping": {
                      "type": "array",
                      "description": "Dimensions to group over",
                      "items": {},
                      "example": [
                        "day",
                        "store"
                      ]
                    },
                    "metrics": {
                      "type": "array",
                      "description": "Metrics that should be returned",
                      "items": {},
                      "example": [
                        "sales",
                        "sales_margin"
                      ]
                    },
                    "filters": {
                      "type": "object",
                      "properties": {},
                      "example": {}
                    },
                    "seriesType": {
                      "type": "string",
                      "description": "Type of result series. Valid values are `actual`, `budget` and `scheduled`. Default is `actual`",
                      "example": "actual"
                    },
                    "sort": {
                      "type": "array",
                      "description": "Fields to use for sorting the results. `-` before the field name reverses sort order",
                      "items": {},
                      "example": [
                        "day"
                      ]
                    },
                    "limit": {
                      "type": "number",
                      "description": "Amount of rows to return",
                      "example": 1000
                    },
                    "offset": {
                      "type": "number",
                      "description": "Starting index for returned rows",
                      "example": 0
                    },
                    "label": {
                      "type": "string",
                      "description": "Optional label used with budget series type to select which budget to fetch.",
                      "example": "forecast"
                    },
                    "fillTimeSeries": {
                      "type": "boolean",
                      "description": "Fill empty time gaps (days, hours etc.) in time series with either zeroes or in case of sparse metrics with previous value",
                      "example": true
                    }
                  },
                  "required": [
                    "grouping",
                    "metrics"
                  ],
                  "description": "Query parameters",
                  "example": {
                    "grouping": [
                      "day",
                      "store"
                    ],
                    "metrics": [
                      "sales",
                      "sales_margin"
                    ],
                    "filters": {},
                    "seriesType": "actual",
                    "sort": [
                      "day"
                    ],
                    "limit": 1000,
                    "offset": 0,
                    "label": "forecast",
                    "fillTimeSeries": true
                  }
                }
              },
              "example": {
                "context": {
                  "locale": "en",
                  "currency": "EUR"
                },
                "query": {
                  "grouping": [
                    "day",
                    "store"
                  ],
                  "metrics": [
                    "sales",
                    "sales_margin"
                  ],
                  "filters": {},
                  "seriesType": "actual",
                  "sort": [
                    "day"
                  ],
                  "limit": 1000,
                  "offset": 0,
                  "label": "forecast",
                  "fillTimeSeries": true
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "token",
        "description": "Use your Zoined API token.\n\nExample:\n\n`Authorization: Bearer your-token`\n"
      }
    },
    "schemas": {
      "Calendar": {
        "type": "object",
        "required": [
          "calendar_date"
        ],
        "properties": {
          "calendar_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Calendar date (yyyy-mm-dd)"
          },
          "calendar_year": {
            "type": "string",
            "example": "2016/2017",
            "description": "Calendar year"
          },
          "period_name": {
            "type": "string",
            "example": "January",
            "description": "Period name"
          },
          "period_number": {
            "type": "number",
            "example": 1,
            "description": "Period number"
          },
          "week_number": {
            "type": "number",
            "example": 1,
            "description": "Week number"
          },
          "season": {
            "type": "string",
            "example": "Spring 2016",
            "description": "Season name"
          },
          "season_label": {
            "type": "string",
            "example": "Spring",
            "description": "Season identifier"
          },
          "lfl_date": {
            "type": "string",
            "example": "2014-12-30",
            "description": "Comparable sales date year ago (yyyy-mm-dd)"
          },
          "bank_holiday_name": {
            "type": "string",
            "example": "New year Day",
            "description": "Name of bank holiday if any"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Capacity": {
        "type": "object",
        "required": [
          "organisation_id",
          "capacity_date",
          "capacity_type",
          "max_capacity"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation ID"
          },
          "product_id": {
            "type": "string",
            "example": "123",
            "description": "A (string, required) - Product ID"
          },
          "event_id": {
            "type": "string",
            "example": "221",
            "description": "Event ID"
          },
          "capacity_date": {
            "type": "string",
            "example": "2020-02-01",
            "description": "Date of capacity (yyyy-mm-dd)"
          },
          "capacity_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of capacity (HH:mm:ss)."
          },
          "capacity_type": {
            "type": "string",
            "example": "event",
            "description": "Capacity type. Must be either event, ticket or room."
          },
          "max_capacity": {
            "type": "number",
            "example": 100,
            "description": "Maximum available capacity for this item."
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Accounting": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "organisation_id",
          "account_id",
          "event_date",
          "receipt_type"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "1234",
            "description": "Unique ID for this accounting receipt"
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Unique ID for this accounting receipt line item"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation/Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "5401",
            "description": "Store department ID"
          },
          "account_id": {
            "type": "string",
            "example": "1150",
            "description": "Account ID"
          },
          "event_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Event date (yyyy-mm-dd)"
          },
          "event_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Event time (HH:mm:ss)"
          },
          "receipt_type": {
            "type": "string",
            "description": "Receipt type",
            "enum": [
              "income",
              "cost",
              "asset",
              "liability"
            ],
            "x-enumDescriptions": {
              "income": "This receipt is income for the company in income statement",
              "cost": "This receipt is cost for the company in income statement",
              "asset": "This receipt is balance sheet asset (eg. property) for the company",
              "liability": "This receipt is balance sheet liability (eg. debt) for the company"
            },
            "example": "cost"
          },
          "receipt_number": {
            "type": "string",
            "example": "12345",
            "description": "XZY (string, optional) - Optional bookkeeping receipt number"
          },
          "receipt_value": {
            "type": "number",
            "example": 2000,
            "description": "Total amount of this line item"
          },
          "receipt_value_wo_vat": {
            "type": "number",
            "example": 1600,
            "description": "Total amount of this line item without taxes"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "cancelled": {
            "type": "boolean",
            "example": true,
            "description": "If set then this receipt has been cancelled."
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "DataUploadSuccessMessage": {
        "type": "object",
        "required": [
          "status",
          "msg"
        ],
        "properties": {
          "status": {
            "type": "string",
            "example": "OK",
            "description": "Status of the operation OK / Not OK"
          },
          "msg": {
            "type": "string",
            "example": "1 entity added",
            "description": "Message describing result of operation"
          }
        }
      },
      "BudgetEntry": {
        "type": "object",
        "required": [
          "year",
          "dimensions",
          "metrics"
        ],
        "properties": {
          "year": {
            "type": "number",
            "example": 2017,
            "description": "Year this budget entry refers to"
          },
          "month": {
            "type": "number",
            "example": 1,
            "description": "Month this budget entry refers to. Either month or week must be there."
          },
          "week": {
            "type": "number",
            "example": 12,
            "description": "Week number this budget entry refers to. Either month or week must be there."
          },
          "day": {
            "type": "number",
            "example": 1,
            "description": "Optional day this budget entry refers to"
          },
          "hour": {
            "type": "number",
            "example": 1,
            "description": "Optional hour this budget refers to. Day must be also specified if hour is specified."
          },
          "dimensions": {
            "type": "object",
            "properties": {},
            "description": "Key-value pairs of dimensions and values for entry"
          },
          "metrics": {
            "type": "object",
            "properties": {},
            "description": "Key-value pairs of metric values for given time and dimensions"
          }
        }
      },
      "CampaignProduct": {
        "type": "object",
        "required": [
          "campaign_id",
          "product_id"
        ],
        "properties": {
          "campaign_id": {
            "type": "string",
            "example": "6453",
            "description": "Campaign ID"
          },
          "category_id": {
            "type": "string",
            "example": "My category ID",
            "description": "Associated Category ID"
          },
          "product_id": {
            "type": "string",
            "example": "My product ID",
            "description": "Associated Product ID"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Campaign": {
        "type": "object",
        "required": [
          "campaign_id",
          "campaign_name"
        ],
        "properties": {
          "campaign_id": {
            "type": "string",
            "example": "6344",
            "description": "Campaign ID"
          },
          "campaign_name": {
            "type": "string",
            "example": "February 2016",
            "description": "Campaign name"
          },
          "campaign_type": {
            "type": "string",
            "example": "Web",
            "description": "Campaign type"
          },
          "start_date": {
            "type": "string",
            "example": "2016-02-01",
            "description": "Campaign Start Date (yyyy-mm-dd)"
          },
          "end_date": {
            "type": "string",
            "example": "2016-02-29",
            "description": "Campaign End Date (yyyy-mm-dd)"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation ID"
          },
          "custom_field_1": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesCampaign": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "campaign_id"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "T1234",
            "description": "ID for transaction this campaign attaches to"
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Line ID in a transaction this campaign attaches to"
          },
          "campaign_id": {
            "type": "string",
            "example": "6344",
            "description": "Campaign ID"
          },
          "campaign_type": {
            "type": "string",
            "example": "sales",
            "description": "`Type (origin) of campaign record ('sales', 'salesorder', 'salesoffer')`"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Customer": {
        "type": "object",
        "required": [
          "customer_id"
        ],
        "properties": {
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID"
          },
          "customer_name": {
            "type": "string",
            "example": "John Smith",
            "description": "Customer Name"
          },
          "customer_company": {
            "type": "string",
            "example": "Smith Industries",
            "description": "Customer Company"
          },
          "customer_email": {
            "type": "string",
            "example": "john.smith@customer.customer",
            "description": "Customer Email"
          },
          "customer_phone": {
            "type": "string",
            "example": "+35811111111",
            "description": "Customer Phone"
          },
          "customer_address": {
            "type": "string",
            "example": "Mannerheimintie 1",
            "description": "Customer Street Address"
          },
          "customer_zipcode": {
            "type": "string",
            "example": "00100",
            "description": "Customer's Zip Code"
          },
          "customer_city": {
            "type": "string",
            "example": "Helsinki",
            "description": "Customer City"
          },
          "customer_country": {
            "type": "string",
            "example": "Finland",
            "description": "Customer Country"
          },
          "customer_group_id": {
            "type": "string",
            "example": "2",
            "description": "Customer Group ID"
          },
          "customer_group_name": {
            "type": "string",
            "example": "B2",
            "description": "Customer Group Name"
          },
          "account_number": {
            "type": "string",
            "example": "X5434",
            "description": "Account Number"
          },
          "vat_number": {
            "type": "string",
            "example": "12345678",
            "description": "9 (string, optional) - VAT Number"
          },
          "organisation_id": {
            "type": "string",
            "example": "1",
            "description": "Customer account store ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "123",
            "description": "Sales person id responsible for this customer account."
          },
          "creation_date": {
            "type": "string",
            "example": "2021-12-15",
            "description": "Date when this customer was added to system (yyyy-mm-dd)."
          },
          "subscribe_date": {
            "type": "string",
            "example": "2022-01-15",
            "description": "Date when this customer subscribed newsletter (yyyy-mm-dd)."
          },
          "unsubscribe_date": {
            "type": "string",
            "example": "2022-02-15",
            "description": "Date when this customer unsubscribed newsletter (yyyy-mm-dd)."
          },
          "register_date": {
            "type": "string",
            "example": "2022-01-10",
            "description": "Date when this customer registered to system (yyyy-mm-dd)."
          },
          "unregister_date": {
            "type": "string",
            "example": "2022-03-15",
            "description": "Date when this customer unregistered from system (yyyy-mm-dd)."
          },
          "hierarchy_level_1": {
            "type": "string",
            "example": "A1",
            "description": "Hierarchy Level 1. *DEPRECATED* Please use FlatHierarchy endpoint."
          },
          "hierarchy_level_2": {
            "type": "string",
            "example": "Family shoppers",
            "description": "Hierarchy Level 2. *DEPRECATED* Please use FlatHierarchy endpoint."
          },
          "hierarchy_level_3": {
            "type": "string",
            "example": "Families with babies",
            "description": "Hierarchy Level 3. *DEPRECATED* Please use FlatHierarchy endpoint."
          },
          "hierarchy_level_4": {
            "type": "string",
            "example": "A4",
            "description": "Hierarchy Level 4. *DEPRECATED* Please use FlatHierarchy endpoint."
          },
          "hierarchy_level_5": {
            "type": "string",
            "example": "A5",
            "description": "Hierarchy Level 5. *DEPRECATED* Please use FlatHierarchy endpoint."
          },
          "custom_dimension_1": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 1"
          },
          "custom_dimension_2": {
            "type": "string",
            "example": "Class 2",
            "description": "Custom Field 2"
          },
          "custom_dimension_3": {
            "type": "string",
            "example": "Class 1",
            "description": "Custom Field 3"
          },
          "custom_dimension_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Custom Field 4"
          },
          "custom_dimension_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Custom Field 5"
          },
          "custom_dimension_6": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 6"
          },
          "custom_dimension_7": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 7"
          },
          "custom_dimension_8": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 8"
          },
          "custom_dimension_9": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 9"
          },
          "custom_dimension_10": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 10"
          },
          "custom_dimension_11": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 11"
          },
          "custom_dimension_12": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 12"
          },
          "custom_dimension_13": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 13"
          },
          "custom_dimension_14": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 14"
          },
          "custom_dimension_15": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 15"
          },
          "custom_dimension_16": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 16"
          },
          "custom_dimension_17": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 17"
          },
          "custom_dimension_18": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 18"
          },
          "custom_dimension_19": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 19"
          },
          "custom_dimension_20": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 20"
          },
          "custom_dimension_21": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 21"
          },
          "custom_dimension_22": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 22"
          },
          "custom_dimension_23": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 23"
          },
          "custom_dimension_24": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 24"
          },
          "custom_dimension_25": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 25"
          },
          "custom_dimension_26": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 26"
          },
          "custom_dimension_27": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 27"
          },
          "custom_dimension_28": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 28"
          },
          "custom_dimension_29": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 29"
          },
          "custom_dimension_30": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 30"
          },
          "custom_dimension_31": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 31"
          },
          "custom_dimension_32": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 32"
          },
          "custom_dimension_33": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 33"
          },
          "custom_dimension_34": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 34"
          },
          "custom_dimension_35": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 35"
          },
          "custom_dimension_36": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 36"
          },
          "custom_dimension_37": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 37"
          },
          "custom_dimension_38": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 38"
          },
          "custom_dimension_39": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 39"
          },
          "custom_dimension_40": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 40"
          },
          "custom_dimension_41": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 41"
          },
          "custom_dimension_42": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 42"
          },
          "custom_dimension_43": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 43"
          },
          "custom_dimension_44": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 44"
          },
          "custom_dimension_45": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 45"
          },
          "custom_dimension_46": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 46"
          },
          "custom_dimension_47": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 47"
          },
          "custom_dimension_48": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 48"
          },
          "custom_dimension_49": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 49"
          },
          "custom_dimension_50": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 50"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "CustomerFeedback": {
        "type": "object",
        "required": [
          "feedback_id",
          "organisation_id",
          "feedback_date",
          "grade"
        ],
        "properties": {
          "feedback_id": {
            "type": "string",
            "example": "xyz",
            "description": "Unique ID for this feedback entry"
          },
          "respondent_id": {
            "type": "string",
            "example": "1234",
            "description": "Optional ID for survey respondent. Can be used to group all responses by single respondent."
          },
          "survey_id": {
            "type": "string",
            "example": "Survey 1",
            "description": "Optional ID for survey. Can be used to separate responses between different surveys."
          },
          "question_id": {
            "type": "string",
            "example": "Q1",
            "description": "Optional ID for feedback question. Should be used if multiple separate feedback questions are needed."
          },
          "organisation_id": {
            "type": "string",
            "example": "ORG1",
            "description": "Identifier of store this feedback entry refers to"
          },
          "department_id": {
            "type": "string",
            "example": "DEP1",
            "description": "Optional identifier of department this feedback entry refers to"
          },
          "feedback_date": {
            "type": "string",
            "example": "2018-01-01",
            "description": "Date of feedback (yyyy-mm-dd)"
          },
          "feedback_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Optional time of feedback (hh:mm:ss)"
          },
          "feedback_type": {
            "type": "string",
            "example": "Store survey",
            "description": "Optional type of feedback"
          },
          "main_feedback": {
            "type": "boolean",
            "example": true,
            "description": "Is this main (overall grade) feedback. Default is true."
          },
          "grade": {
            "type": "number",
            "example": 9,
            "description": "Numerical grade for feedback"
          },
          "grade_total": {
            "type": "number",
            "example": 8.5,
            "description": "Optional numerical total grade calculated by source (eg. Google Review) for feedback"
          },
          "comments": {
            "type": "string",
            "example": "Great service today!",
            "description": "Optional free form feedback"
          },
          "comments_en": {
            "type": "string",
            "example": "Great service today!",
            "description": "Optional free form feedback translated in English"
          },
          "review_url": {
            "type": "string",
            "example": "https://www.google.com/maps/reviews?data=XYZ",
            "description": "Google review URL"
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "CashierBalance": {
        "type": "object",
        "required": [
          "organisation_id",
          "payment_method",
          "sales_date",
          "transaction_count",
          "shift_amount"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "ORG1",
            "description": "Identifier of store for this balance"
          },
          "department_id": {
            "type": "string",
            "example": "DEP1",
            "description": "Optional identifier of department for this balance"
          },
          "register_id": {
            "type": "string",
            "example": "123",
            "description": "Optional cash register identifier for this balance"
          },
          "batch_id": {
            "type": "string",
            "example": "1",
            "description": "Optional batch or shift identifier for this balance row"
          },
          "payment_method": {
            "type": "string",
            "example": "Cash",
            "description": "Payment method of this balance row"
          },
          "sales_date": {
            "type": "string",
            "example": "2018-01-01",
            "description": "Date of balance (yyyy-mm-dd)"
          },
          "sales_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Optional time of balance (hh:mm:ss)"
          },
          "batch_status": {
            "type": "string",
            "example": "OK",
            "description": "Optional status of this batch ID"
          },
          "transaction_count": {
            "type": "number",
            "example": 9,
            "description": "Number of transactions for this shift and payment method"
          },
          "shift_amount": {
            "type": "number",
            "example": 1000,
            "description": "Total amount of payments for this shift and payment method"
          },
          "over_short": {
            "type": "number",
            "example": 100,
            "description": "Difference in money between sales and shift amounts"
          },
          "cash_dropped": {
            "type": "number",
            "example": 0,
            "description": "How much cash was dropped from register during this shift"
          },
          "cash_paid_out": {
            "type": "number",
            "example": 50,
            "description": "How much cash was paid out from register during this shift"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Shift currency as ISO 4217 currency code. Required if multiple currencies are used by the customer."
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Department": {
        "type": "object",
        "required": [
          "department_id",
          "name"
        ],
        "properties": {
          "department_id": {
            "type": "string",
            "example": "123",
            "description": "Department ID"
          },
          "name": {
            "type": "string",
            "example": "Women's clothing",
            "description": "Human readable name for the deparment"
          },
          "floor_area": {
            "type": "number",
            "example": 20,
            "description": "Floor area of deparment in square meters"
          },
          "organisation_id": {
            "type": "string",
            "example": "234",
            "description": "ID of attached organisation"
          },
          "no_customer_seats": {
            "type": "number",
            "example": 50,
            "description": "Number of customer seats available"
          },
          "custom_dimension1": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 1"
          },
          "custom_dimension2": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 2"
          },
          "custom_dimension3": {
            "type": "string",
            "example": "Old",
            "description": "Custom Field 3"
          },
          "custom_dimension4": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 4"
          },
          "custom_dimension5": {
            "type": "string",
            "example": "New",
            "description": "Custom Field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "CashRegister": {
        "type": "object",
        "required": [
          "register_id",
          "register_name"
        ],
        "properties": {
          "register_id": {
            "type": "string",
            "example": "123-1",
            "description": "Register ID"
          },
          "register_name": {
            "type": "string",
            "example": "Kiosk 1",
            "description": "Register name"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / store this register belongs to"
          },
          "register_type": {
            "type": "string",
            "example": "Kiosk",
            "description": "Register type"
          },
          "register_group": {
            "type": "string",
            "example": "Self service",
            "description": "Register group"
          },
          "custom_dimension1": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 1"
          },
          "custom_dimension2": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 2"
          },
          "custom_dimension3": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 3"
          },
          "custom_dimension4": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 4"
          },
          "custom_dimension5": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "EmployeeHour": {
        "type": "object",
        "required": [
          "organisation_id",
          "date",
          "time",
          "hours"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "54021",
            "description": "Store department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "employee_type": {
            "type": "string",
            "example": "Permie",
            "description": "Employee Type"
          },
          "employeehours_id": {
            "type": "string",
            "example": "4244",
            "description": "Optional identifier for the entry"
          },
          "absence_code": {
            "type": "string",
            "example": "BREAK",
            "description": "Code for the absense if this entry describes absence."
          },
          "date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Date of entry (yyyy-mm-dd)"
          },
          "time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of entry (HH:mm:ss)"
          },
          "scheduled": {
            "type": "boolean",
            "example": false,
            "description": "Whether this is scheduled or punched shift, default is false"
          },
          "productive": {
            "type": "boolean",
            "example": true,
            "description": "Whether this is productive or administrative work, default is true"
          },
          "hours": {
            "type": "number",
            "example": 8,
            "description": "Number of hours to record for this specific time"
          },
          "staff_cost": {
            "type": "number",
            "example": 500,
            "description": "Salary cost associated with this hour"
          },
          "breaks": {
            "type": "number",
            "example": 0.5,
            "description": "Total hours of breaks"
          },
          "breaks_cost": {
            "type": "number",
            "example": 40,
            "description": "Total salary cost associated for paid breaks"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "StaffCost": {
        "type": "object",
        "required": [
          "organisation_id",
          "start_date",
          "staff_cost"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "54021",
            "description": "Store department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "start_date": {
            "type": "string",
            "example": "2024-01-01",
            "description": "Start date of entry (yyyy-mm-dd)"
          },
          "staff_cost": {
            "type": "number",
            "example": 15,
            "description": "Hourly salary cost"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "OpeningHour": {
        "type": "object",
        "required": [
          "start_date",
          "weekday",
          "open_start",
          "open_end"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / Store ID. If omitted entry is treated as company default hours."
          },
          "start_date": {
            "type": "string",
            "example": "2024-01-01",
            "description": "Start date of opening hour season (yyyy-mm-dd)"
          },
          "end_date": {
            "type": "string",
            "example": "2025-01-01",
            "description": "End date of opening hour season (yyyy-mm-dd)"
          },
          "weekday": {
            "type": "number",
            "example": 1,
            "description": "Weekday as integer (1 = Monday, 7 = Sunday)"
          },
          "open_start": {
            "type": "string",
            "example": "08:00:00",
            "description": "Open start time (hh:mm:ss)"
          },
          "open_end": {
            "type": "string",
            "example": "15:00:00",
            "description": "Open end time (hh:mm:ss)"
          },
          "special_period": {
            "type": "boolean",
            "example": false,
            "description": "Is this a special opening period"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "FlatHierarchy": {
        "type": "object",
        "required": [
          "hierarchy_key",
          "entity_id",
          "level1"
        ],
        "properties": {
          "hierarchy_key": {
            "type": "string",
            "description": "Type of hierarchy that is uploaded",
            "enum": [
              "product",
              "model",
              "product_group",
              "organisation",
              "customer",
              "channel",
              "area",
              "account"
            ],
            "x-enumDescriptions": {
              "product": "Product category hierarchy",
              "model": "Product model hierarchy",
              "product_group": "Product group hierarchy",
              "organisation": "Organisation hierarchy",
              "customer": "Customer hierarchy",
              "channel": "Channel hierarchy",
              "area": "Area hierarchy",
              "account": "Bookkeeping account hierarchy"
            },
            "example": "product"
          },
          "entity_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Identifier for the lowest level entity in the hierarchy"
          },
          "level1": {
            "type": "string",
            "example": "Clothing",
            "description": "Name of root category level"
          },
          "level2": {
            "type": "string",
            "example": "Children's clothing",
            "description": "Name of category level 2"
          },
          "level3": {
            "type": "string",
            "example": "Children's outdoor clothing",
            "description": "Name of category level 3"
          },
          "level4": {
            "type": "string",
            "example": "Children's outdoor headwear",
            "description": "Name of category level 4"
          },
          "level5": {
            "type": "string",
            "example": "Children's caps",
            "description": "Name of category level 5"
          },
          "level6": {
            "type": "string",
            "example": "Children's small caps",
            "description": "Name of category level 6"
          },
          "level7": {
            "type": "string",
            "example": "Children's themed caps",
            "description": "Name of category level 7"
          },
          "level8": {
            "type": "string",
            "example": "Children's disney caps",
            "description": "Name of category level 8"
          },
          "level9": {
            "type": "string",
            "example": "Children's mickey caps",
            "description": "Name of category level 9"
          },
          "level10": {
            "type": "string",
            "example": "Children's ...",
            "description": "Name of category level 10"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "InventorySnapshot": {
        "type": "object",
        "required": [
          "organisation_id",
          "snapshot_date",
          "product_id",
          "quantity"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / Store ID"
          },
          "snapshot_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Date of snapshot (yyyy-mm-dd)"
          },
          "snapshot_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of snapshot (HH:mm:ss). Needed if inter-day inventory saldos are tracked."
          },
          "product_id": {
            "type": "string",
            "example": "My product ID",
            "description": "Product ID"
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "quantity": {
            "type": "number",
            "example": 100,
            "description": "On hand quantity in inventory"
          },
          "available_quantity": {
            "type": "number",
            "example": 90,
            "description": "Available quantity in inventory (after pending/reserved orders)"
          },
          "reorder_point": {
            "type": "number",
            "example": 5,
            "description": "Quantity threshold for this item to order more into inventory"
          },
          "max_reorder_quantity": {
            "type": "number",
            "example": 10,
            "description": "Max quantity threshold for this item after reordering"
          },
          "unit_purchase_price": {
            "type": "number",
            "example": 12.4,
            "description": "Unit purchase price"
          },
          "unit_purchase_price_wo_vat": {
            "type": "number",
            "example": 10,
            "description": "Unit purchase price without tax"
          },
          "unit_sales_price": {
            "type": "number",
            "example": 22.4,
            "description": "Unit sales price"
          },
          "unit_sales_price_wo_vat": {
            "type": "number",
            "example": 20,
            "description": "Unit sales price without tax"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "InventoryTransaction": {
        "type": "object",
        "required": [
          "organisation_id",
          "movement_date",
          "quantity",
          "movement_type"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "54011",
            "description": "Department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5401",
            "description": "Sales person ID"
          },
          "operator_id": {
            "type": "string",
            "example": "5402",
            "description": "Operator ID"
          },
          "movement_date": {
            "type": "string",
            "example": "2016-02-01",
            "description": "Date of transaction (yyyy-mm-dd)"
          },
          "movement_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of transaction (HH:mm:ss)."
          },
          "delivered_date": {
            "type": "string",
            "example": "2016-02-02",
            "description": "Date of transaction completion (yyyy-mm-dd)"
          },
          "delivered_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of transaction completion (HH:mm:ss)."
          },
          "product_id": {
            "type": "string",
            "example": "123",
            "description": "1 (string, required) - Product ID"
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "parent_product_id": {
            "type": "string",
            "example": "123",
            "description": "Parent Product ID"
          },
          "quantity": {
            "type": "number",
            "example": 100,
            "description": "Quantity moved from/to inventory"
          },
          "delivered_quantity": {
            "type": "number",
            "example": 90,
            "description": "Final quantity moved from/to inventory after completion."
          },
          "expected_quantity": {
            "type": "number",
            "example": 110,
            "description": "Quantity expected in inventory (for stock takes)."
          },
          "movement_type": {
            "type": "string",
            "description": "Movement type",
            "enum": [
              "purchase",
              "waste",
              "transfer",
              "stock_take",
              "adjustment",
              "sale",
              "internal"
            ],
            "x-enumDescriptions": {
              "purchase": "Products have been purchased to inventory",
              "waste": "Products have been removed from inventory as waste",
              "transfer": "Products have been transferred to another inventory location",
              "stock_take": "Stock take has been done to correct inventory counts",
              "adjustment": "Adjustments have been done to individual products to correct inventory counts",
              "sale": "Products have been sold from inventory",
              "internal": "Products have been used internally from inventory"
            },
            "example": "waste"
          },
          "movement_status": {
            "type": "number",
            "example": 2,
            "description": "Movement status. 1=Open, 2=Complete, 3=Complete with variances, 4=Cancelled"
          },
          "movement_batch_id": {
            "type": "string",
            "example": "june-stock-take",
            "description": "Optional identifier for batch this movement row is part of."
          },
          "movement_batch_line_id": {
            "type": "string",
            "example": "1",
            "description": "Optional line id within the batch this movement row is part of."
          },
          "unit_purchase_price": {
            "type": "number",
            "example": 12.4,
            "description": "Unit purchase price"
          },
          "unit_purchase_price_wo_vat": {
            "type": "number",
            "example": 10,
            "description": "Unit purchase price without tax"
          },
          "unit_retail_price": {
            "type": "number",
            "example": 12.4,
            "description": "Unit retail (sales) price"
          },
          "unit_retail_price_wo_vat": {
            "type": "number",
            "example": 10,
            "description": "Unit retail (sales) price without tax"
          },
          "reason_code": {
            "type": "string",
            "example": "Theft",
            "description": "Optional reason code or description for this transaction"
          },
          "target_organisation_id": {
            "type": "string",
            "example": "510",
            "description": "Organisation / Store ID for target of inventory transfer. Mandatory for type transfer."
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "purchase_order_id": {
            "type": "string",
            "example": "1234",
            "description": "Order id for purchase order this purchase movement originates from."
          },
          "purchase_order_line_id": {
            "type": "string",
            "example": "1",
            "description": "Order line item id in purchase order this purchase movement line item originates from."
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_field_6": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 6"
          },
          "custom_field_7": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 7"
          },
          "custom_field_8": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 8"
          },
          "custom_field_9": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 9"
          },
          "custom_field_10": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 10"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "OrganisationUnit": {
        "type": "object",
        "required": [
          "organisation_id",
          "organisation_name"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation / Store ID"
          },
          "organisation_name": {
            "type": "string",
            "example": "Web Sales",
            "description": "Organisation name"
          },
          "street_address": {
            "type": "string",
            "example": "Mannerheimintie 1",
            "description": "Street address"
          },
          "city": {
            "type": "string",
            "example": "Helsinki",
            "description": "City"
          },
          "post_code": {
            "type": "string",
            "example": "00100",
            "description": "Postal code"
          },
          "state": {
            "type": "string",
            "example": "Southern Finland",
            "description": "State"
          },
          "country": {
            "type": "string",
            "example": "Finland",
            "description": "Country"
          },
          "area": {
            "type": "string",
            "example": "South",
            "description": "Sales area"
          },
          "latitude": {
            "type": "number",
            "example": 60.184014,
            "description": "Latitude"
          },
          "longitude": {
            "type": "number",
            "example": 24.960046,
            "description": "Longitude"
          },
          "channel": {
            "type": "string",
            "example": "Concession",
            "description": "Sales channel"
          },
          "organisation_type": {
            "type": "string",
            "example": "Outlet",
            "description": "Outlet / Brand / Essential"
          },
          "organisation_group": {
            "type": "string",
            "example": "A",
            "description": "Organisation group"
          },
          "floor_area": {
            "type": "number",
            "example": 123.5,
            "description": "Store floor area eg. in m2"
          },
          "no_customer_seats": {
            "type": "number",
            "example": 150,
            "description": "Number of customer seats in store"
          },
          "google_location_url": {
            "type": "string",
            "example": "https://www.google.com/maps/reviews?data=XYZ",
            "description": "Google review location URL"
          },
          "image_url": {
            "type": "string",
            "example": "http://example.com?product=XYZ",
            "description": "Url for external store image file"
          },
          "store_status": {
            "type": "string",
            "description": "Status of store",
            "enum": [
              "open",
              "closed",
              "temporarily_closed"
            ],
            "x-enumDescriptions": {
              "open": "Store is open and active",
              "closed": "Store has been closed down permanently",
              "temporarily_closed": "Store has been closed temporarily"
            },
            "example": "open"
          },
          "custom_dimension1": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 1"
          },
          "custom_dimension2": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 2"
          },
          "custom_dimension3": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 3"
          },
          "custom_dimension4": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 4"
          },
          "custom_dimension5": {
            "type": "string",
            "example": "Class 3",
            "description": "Custom Field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Category": {
        "type": "object",
        "required": [
          "category_id",
          "category_name"
        ],
        "properties": {
          "category_id": {
            "type": "string",
            "example": "23",
            "description": "Category ID"
          },
          "category_name": {
            "type": "string",
            "example": "Men's clothing",
            "description": "Category Name"
          },
          "parent_id": {
            "type": "string",
            "example": "0",
            "description": "ID of the parent category, 0 for top level category"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Product": {
        "type": "object",
        "required": [
          "product_id",
          "product_name"
        ],
        "properties": {
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "product_name": {
            "type": "string",
            "example": "Widget XYZ",
            "description": "Product Name"
          },
          "product_description": {
            "type": "string",
            "example": "Best performance XYZ on the market",
            "description": "Product description"
          },
          "category_id": {
            "type": "string",
            "example": "23",
            "description": "Product category ID"
          },
          "average_price": {
            "type": "number",
            "example": 8,
            "description": "Running average purchase price for product."
          },
          "purchase_price": {
            "type": "number",
            "example": 10,
            "description": "Default purchase price for product. Used if sales transaction doesn't have purchase price set."
          },
          "sales_price": {
            "type": "number",
            "example": 20,
            "description": "Default retail price for product with taxes."
          },
          "sales_price_wo_vat": {
            "type": "number",
            "example": 16,
            "description": "Default retail price for product without taxes."
          },
          "vat_rate": {
            "type": "number",
            "example": 24,
            "description": "VAT/tax rate"
          },
          "unit_of_measure": {
            "type": "string",
            "example": "PCS",
            "description": "Unit of measure"
          },
          "product_size": {
            "type": "string",
            "example": "XS",
            "description": "Product size"
          },
          "product_width": {
            "type": "string",
            "example": "5\"",
            "description": "Product width"
          },
          "product_height": {
            "type": "string",
            "example": "10\"",
            "description": "Product height"
          },
          "product_color": {
            "type": "string",
            "example": "Dark Blue",
            "description": "Product color"
          },
          "product_type": {
            "type": "string",
            "example": "Type A",
            "description": "Product type"
          },
          "product_brand": {
            "type": "string",
            "example": "Nike",
            "description": "Product brand"
          },
          "product_season": {
            "type": "string",
            "example": "Spring",
            "description": "Product season"
          },
          "model": {
            "type": "string",
            "example": "XYZ B40",
            "description": "a (string, optional) - Product model"
          },
          "model_number": {
            "type": "string",
            "example": "X311",
            "description": "Product model number"
          },
          "country_of_origin": {
            "type": "string",
            "example": "Moldovia",
            "description": "Country of origin"
          },
          "freight": {
            "type": "number",
            "example": 5,
            "description": "Freight"
          },
          "duty": {
            "type": "number",
            "example": 0.24,
            "description": "Duty"
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "fabric": {
            "type": "string",
            "example": "Felt",
            "description": "Product fabric"
          },
          "buyer": {
            "type": "string",
            "example": "Lena Shields",
            "description": "Buyer name"
          },
          "ean": {
            "type": "string",
            "example": "Ean code",
            "description": "Ean code"
          },
          "parent_product_id": {
            "type": "string",
            "example": "XY",
            "description": "Parent Product ID"
          },
          "image_url": {
            "type": "string",
            "example": "http://example.com?product=XYZ",
            "description": "Url for external product image file"
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_field_6": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 6"
          },
          "custom_field_7": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 7"
          },
          "custom_field_8": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 8"
          },
          "custom_field_9": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 9"
          },
          "custom_field_10": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 10"
          },
          "custom_field_11": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 11"
          },
          "custom_field_12": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 12"
          },
          "custom_field_13": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 13"
          },
          "custom_field_14": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 14"
          },
          "custom_field_15": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 15"
          },
          "custom_field_16": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 16"
          },
          "custom_field_17": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 17"
          },
          "custom_field_18": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 18"
          },
          "custom_field_19": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 19"
          },
          "custom_field_20": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 20"
          },
          "custom_field_21": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 21"
          },
          "custom_field_22": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 22"
          },
          "custom_field_23": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 23"
          },
          "custom_field_24": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 24"
          },
          "custom_field_25": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 25"
          },
          "custom_field_26": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 26"
          },
          "custom_field_27": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 27"
          },
          "custom_field_28": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 28"
          },
          "custom_field_29": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 29"
          },
          "custom_field_30": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 30"
          },
          "custom_field_31": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 31"
          },
          "custom_field_32": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 32"
          },
          "custom_field_33": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 33"
          },
          "custom_field_34": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 34"
          },
          "custom_field_35": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 35"
          },
          "custom_field_36": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 36"
          },
          "custom_field_37": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 37"
          },
          "custom_field_38": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 38"
          },
          "custom_field_39": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 39"
          },
          "custom_field_40": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 40"
          },
          "custom_field_41": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 41"
          },
          "custom_field_42": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 42"
          },
          "custom_field_43": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 43"
          },
          "custom_field_44": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 44"
          },
          "custom_field_45": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 45"
          },
          "custom_field_46": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 46"
          },
          "custom_field_47": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 47"
          },
          "custom_field_48": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 48"
          },
          "custom_field_49": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 49"
          },
          "custom_field_50": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 50"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "custom_metric_6": {
            "type": "number",
            "example": 150,
            "description": "Custom metric 6"
          },
          "custom_metric_7": {
            "type": "number",
            "example": 1000,
            "description": "Custom metric 7"
          },
          "custom_metric_8": {
            "type": "number",
            "example": 2.52,
            "description": "Custom metric 8"
          },
          "custom_metric_9": {
            "type": "number",
            "example": 1.5,
            "description": "Custom metric 9"
          },
          "custom_metric_10": {
            "type": "number",
            "example": 2000,
            "description": "Custom metric 10"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesTransaction": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "sales_date",
          "sales_time",
          "product_id",
          "product_quantity",
          "product_unit_price",
          "sales_value",
          "organisation_id"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "242224",
            "description": "Unique ID for the transaction"
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Secondary transaction identifier"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "delivery_customer_id": {
            "type": "string",
            "example": "32",
            "description": "Delivery Customer ID for identified customer"
          },
          "sales_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Sales date (yyyy-mm-dd)"
          },
          "sales_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Sales time (HH:mm:ss)"
          },
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "product_quantity": {
            "type": "number",
            "example": 2,
            "description": "Sold quantity"
          },
          "product_unit_price": {
            "type": "number",
            "example": 10,
            "description": "Unit price for single product"
          },
          "sales_value": {
            "type": "number",
            "example": 20,
            "description": "Total sales amount including tax"
          },
          "sales_value_wo_vat": {
            "type": "number",
            "example": 20,
            "description": "Total sales amount without tax"
          },
          "compensation_amount": {
            "type": "number",
            "example": 3,
            "description": "Optional compensation paid for this sale"
          },
          "rebate": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given including tax"
          },
          "rebate_wo_vat": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given without tax"
          },
          "sales_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "payment_method": {
            "type": "string",
            "example": "Visa",
            "description": "Payment method"
          },
          "supplier_id": {
            "type": "string",
            "example": "13",
            "description": "Supplier ID"
          },
          "parent_product_id": {
            "type": "string",
            "example": "123",
            "description": "Parent Product ID"
          },
          "purchase_price": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price including tax"
          },
          "purchase_price_wo_vat": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price without tax"
          },
          "purchase_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "piece_good": {
            "type": "boolean",
            "example": true,
            "description": "Unit Indicator. true if sold as unit, false if sold as group of items"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation unit ID"
          },
          "department_id": {
            "type": "string",
            "example": "5401",
            "description": "Store department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "sales_representative_id": {
            "type": "string",
            "example": "5402100",
            "description": "Responsible sales person ID"
          },
          "campaign_id": {
            "type": "string",
            "example": "6344",
            "description": "Campaign ID"
          },
          "cancel_id": {
            "type": "string",
            "description": "Transaction ID of cancelled receipt"
          },
          "cancelled": {
            "type": "boolean",
            "example": false,
            "description": "cancelled. true=cancelled transaction false=not cancelled transaction. Default is false."
          },
          "delivery_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Delivery date (yyyy-mm-dd)"
          },
          "delivery_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Delivery time (HH:mm:ss)"
          },
          "order_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Order date (yyyy-mm-dd)"
          },
          "order_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Order time (HH:mm:ss)"
          },
          "invoice_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Invoice date (yyyy-mm-dd)"
          },
          "invoice_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Invoice time (HH:mm:ss)"
          },
          "register_id": {
            "type": "string",
            "example": "54022",
            "description": "Cash register ID"
          },
          "table_number": {
            "type": "string",
            "example": "54",
            "description": "Table number"
          },
          "rebate_code_id": {
            "type": "string",
            "example": "3313V",
            "description": "Rebate Code ID"
          },
          "booking_id": {
            "type": "string",
            "example": "B1224",
            "description": "12 (string, optional) - Optional reference to booking that generated this sale."
          },
          "booking_line_id": {
            "type": "string",
            "example": "1",
            "description": "Optional booking line that corresponds to this sale."
          },
          "event_id": {
            "type": "string",
            "example": "221",
            "description": "Event ID"
          },
          "sales_order_id": {
            "type": "string",
            "example": "12345",
            "description": "Order id for sales order this sales transaction (invoice) originates from."
          },
          "sales_order_line_id": {
            "type": "string",
            "example": "1",
            "description": "Order line item id in sales order this sales transaction line item (invoice) originates from."
          },
          "parent_line_id": {
            "type": "string",
            "example": "1",
            "description": "Line item id for parent line item in this sales transaction that this line is child to."
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_field_6": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 6"
          },
          "custom_field_7": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 7"
          },
          "custom_field_8": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 8"
          },
          "custom_field_9": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 9"
          },
          "custom_field_10": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 10"
          },
          "custom_field_11": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 11"
          },
          "custom_field_12": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 12"
          },
          "custom_field_13": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 13"
          },
          "custom_field_14": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 14"
          },
          "custom_field_15": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 15"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "custom_metric_6": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 6"
          },
          "custom_metric_7": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 7"
          },
          "custom_metric_8": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 8"
          },
          "custom_metric_9": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 9"
          },
          "custom_metric_10": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 10"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "PurchaseOrders": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "product_id",
          "organisation_id",
          "order_date",
          "order_time",
          "ordered_quantity",
          "order_status",
          "cancelled"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "er/232/f31",
            "description": "Unique ID for the transaction"
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Secondary transaction identifier"
          },
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation unit ID"
          },
          "department_id": {
            "type": "string",
            "example": "54011",
            "description": "Department ID"
          },
          "purchaser_id": {
            "type": "string",
            "example": "5400",
            "description": "Purchaser ID"
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "parent_product_id": {
            "type": "string",
            "example": "123",
            "description": "Parent Product ID"
          },
          "order_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Order date (yyyy-mm-dd)"
          },
          "order_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Order time (HH:mm:ss)"
          },
          "ordered_quantity": {
            "type": "number",
            "example": 2,
            "description": "order quantity"
          },
          "delivery_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Delivery date (yyyy-mm-dd)"
          },
          "delivery_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Delivery time (HH:mm:ss)"
          },
          "delivered_quantity": {
            "type": "number",
            "example": 2,
            "description": "quantity that is delivered"
          },
          "arrival_date": {
            "type": "string",
            "example": "2016-01-03",
            "description": "Arrival date (yyyy-mm-dd)"
          },
          "arrival_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Arrival time (HH:mm:ss)"
          },
          "order_status": {
            "type": "number",
            "example": 1,
            "description": "Order status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled"
          },
          "order_type": {
            "type": "string",
            "example": "Express",
            "description": "Order Type"
          },
          "purchase_price": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price including tax"
          },
          "purchase_price_wo_vat": {
            "type": "number",
            "example": 4,
            "description": "Total purchase price without tax"
          },
          "rebate": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given including tax"
          },
          "rebate_wo_vat": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given without tax"
          },
          "retail_value": {
            "type": "number",
            "example": 10,
            "description": "Total retail (sales) value including tax"
          },
          "retail_value_wo_vat": {
            "type": "number",
            "example": 8,
            "description": "Total retail (sales) value without tax"
          },
          "purchase_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "sales_unit": {
            "type": "string",
            "example": "KPL",
            "description": "Sales unit"
          },
          "cancelled": {
            "type": "boolean",
            "description": "cancelled. true=cancelled transaction false=not cancelled transaction",
            "example": false
          },
          "cancel_id": {
            "type": "string",
            "example": "er/232/f2",
            "description": "Transaction ID of cancelled receipt"
          },
          "gross_weight": {
            "type": "number",
            "example": 0,
            "description": "Gross weight of ordered products."
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_field_6": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 6"
          },
          "custom_field_7": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 7"
          },
          "custom_field_8": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 8"
          },
          "custom_field_9": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 9"
          },
          "custom_field_10": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 10"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesOffers": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "product_id",
          "product_quantity",
          "product_unit_price",
          "sales_value",
          "offer_date",
          "offer_time",
          "offer_status"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "er/232/f31",
            "description": "Unique ID for the transaction"
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Secondary transaction identifier"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "product_quantity": {
            "type": "number",
            "example": 2,
            "description": "Sold quantity"
          },
          "product_unit_price": {
            "type": "number",
            "example": 10,
            "description": "Unit price for single product"
          },
          "sales_value": {
            "type": "number",
            "example": 20,
            "description": "Total sales amount including tax"
          },
          "sales_value_wo_vat": {
            "type": "number",
            "example": 20,
            "description": "Total sales amount without tax"
          },
          "rebate": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given including tax"
          },
          "rebate_wo_vat": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given without tax"
          },
          "sales_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "payment_method": {
            "type": "string",
            "example": "Invoice 30",
            "description": "Payment method"
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "parent_product_id": {
            "type": "string",
            "example": "123",
            "description": "Parent Product ID"
          },
          "purchase_price": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price including tax"
          },
          "purchase_price_wo_vat": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price without tax"
          },
          "purchase_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation unit ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "offer_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Offer date (yyyy-mm-dd)"
          },
          "offer_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Offer time (HH:mm:ss)"
          },
          "valid_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Offer validity date (yyyy-mm-dd)"
          },
          "valid_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Offer validity time (HH:mm:ss)"
          },
          "offer_status": {
            "type": "number",
            "example": 1,
            "description": "Offer status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled"
          },
          "offer_type": {
            "type": "string",
            "example": "wholesale",
            "description": "Offer type."
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_field_6": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 6"
          },
          "custom_field_7": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 7"
          },
          "custom_field_8": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 8"
          },
          "custom_field_9": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 9"
          },
          "custom_field_10": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 10"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesOrders": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "product_id",
          "product_quantity",
          "product_unit_price",
          "sales_value",
          "order_date",
          "order_time",
          "order_status"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "er/232/f31",
            "description": "Unique ID for the transaction"
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Secondary transaction identifier"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "delivery_customer_id": {
            "type": "string",
            "example": "32",
            "description": "Delivery Customer ID for identified customer"
          },
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "product_quantity": {
            "type": "number",
            "example": 2,
            "description": "Sold quantity"
          },
          "delivered_quantity": {
            "type": "number",
            "example": 1,
            "description": "Delivered quantity"
          },
          "planned_quantity": {
            "type": "number",
            "example": 2,
            "description": "Planned quantity"
          },
          "product_unit_price": {
            "type": "number",
            "example": 10,
            "description": "Unit price for single product"
          },
          "sales_value": {
            "type": "number",
            "example": 20,
            "description": "Total sales amount including tax"
          },
          "sales_value_wo_vat": {
            "type": "number",
            "example": 20,
            "description": "Total sales amount without tax"
          },
          "rebate": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given including tax"
          },
          "rebate_wo_vat": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given without tax"
          },
          "rebate_code_id": {
            "type": "string",
            "example": "3313V",
            "description": "Rebate Code ID"
          },
          "sales_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "payment_method": {
            "type": "string",
            "example": "Invoice 30",
            "description": "Payment method"
          },
          "tender_amount": {
            "type": "number",
            "example": 20,
            "description": "Amount paid with tender in 'payment method'."
          },
          "deposit_amount": {
            "type": "number",
            "example": 10,
            "description": "Amount of deposit paid for this order item."
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "parent_product_id": {
            "type": "string",
            "example": "123",
            "description": "Parent Product ID"
          },
          "purchase_price": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price including tax"
          },
          "purchase_price_wo_vat": {
            "type": "number",
            "example": 5,
            "description": "Total purchase price without tax"
          },
          "purchase_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation unit ID"
          },
          "department_id": {
            "type": "string",
            "example": "54011",
            "description": "Department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "cancel_id": {
            "type": "string",
            "example": "er/232/f2",
            "description": "Transaction ID of cancelled receipt"
          },
          "delivery_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Delivery date (yyyy-mm-dd)"
          },
          "delivery_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Delivery time (HH:mm:ss)"
          },
          "order_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Order date (yyyy-mm-dd)"
          },
          "order_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Order time (HH:mm:ss)"
          },
          "invoice_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Invoice date (yyyy-mm-dd)"
          },
          "invoice_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Invoice time (HH:mm:ss)"
          },
          "arrival_date": {
            "type": "string",
            "example": "2016-01-03",
            "description": "Arrival date (yyyy-mm-dd)"
          },
          "arrival_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Arrival time (HH:mm:ss)"
          },
          "order_status": {
            "type": "number",
            "example": 1,
            "description": "Order status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled"
          },
          "order_type": {
            "type": "string",
            "example": "Wholesale",
            "description": "Order type."
          },
          "customer_order_number": {
            "type": "string",
            "example": "1234-5",
            "description": "Customer internal order ID"
          },
          "sales_offer_id": {
            "type": "string",
            "example": "1234",
            "description": "ID that refers to respective sales offer if applicable"
          },
          "sales_offer_line_id": {
            "type": "string",
            "example": "1",
            "description": "ID that refers to respective sales offer line if applicable"
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_field_6": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 6"
          },
          "custom_field_7": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 7"
          },
          "custom_field_8": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 8"
          },
          "custom_field_9": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 9"
          },
          "custom_field_10": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 10"
          },
          "custom_field_11": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 11"
          },
          "custom_field_12": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 12"
          },
          "custom_field_13": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 13"
          },
          "custom_field_14": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 14"
          },
          "custom_field_15": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 15"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Booking": {
        "type": "object",
        "required": [
          "booking_id",
          "booking_line_id",
          "product_id",
          "organisation_id",
          "booked_quantity",
          "sales_value",
          "booking_date",
          "event_start_date",
          "booking_type"
        ],
        "properties": {
          "booking_id": {
            "type": "string",
            "example": "er/232/f31",
            "description": "Unique ID for the booking"
          },
          "booking_line_id": {
            "type": "string",
            "example": "1",
            "description": "Secondary booking identifier"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "event_id": {
            "type": "string",
            "example": "123",
            "description": "A (string, optional) - Optional ID for the event this booking is done for."
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation unit ID"
          },
          "department_id": {
            "type": "string",
            "example": "54011",
            "description": "Department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "booked_quantity": {
            "type": "number",
            "example": 2,
            "description": "Booked quantity"
          },
          "number_of_guests": {
            "type": "number",
            "example": 2,
            "description": "Number of guests booked"
          },
          "number_of_visits": {
            "type": "number",
            "example": 2,
            "description": "Number of visits allowed per guest within start and end dates."
          },
          "sales_value": {
            "type": "number",
            "example": 20,
            "description": "Total booking sales amount including tax"
          },
          "sales_value_wo_vat": {
            "type": "number",
            "example": 20,
            "description": "Total booking sales amount without tax"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "canceled": {
            "type": "boolean",
            "example": false,
            "description": "True when this booking has been cancelled."
          },
          "booking_date": {
            "type": "string",
            "example": "2020-03-01",
            "description": "Booking date (yyyy-mm-dd)"
          },
          "booking_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Booking time (HH:mm:ss)"
          },
          "event_start_date": {
            "type": "string",
            "example": "2020-03-10",
            "description": "Event start date (yyyy-mm-dd)"
          },
          "event_start_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Event start time (HH:mm:ss)"
          },
          "event_end_date": {
            "type": "string",
            "example": "2020-03-11",
            "description": "Event end date (yyyy-mm-dd)"
          },
          "event_end_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Event end time (HH:mm:ss)"
          },
          "booking_type": {
            "type": "string",
            "example": "event",
            "description": "Booking type. Must be either event, ticket or room."
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Account": {
        "type": "object",
        "required": [
          "account_id",
          "account_name"
        ],
        "properties": {
          "account_id": {
            "type": "string",
            "example": "1150",
            "description": "Account ID"
          },
          "account_name": {
            "type": "string",
            "example": "Employee Salaries",
            "description": "Account name"
          },
          "account_type": {
            "type": "string",
            "example": "Salaries",
            "description": "Account type"
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Event": {
        "type": "object",
        "required": [
          "event_id",
          "event_name"
        ],
        "properties": {
          "event_id": {
            "type": "string",
            "example": "1150",
            "description": "Event ID"
          },
          "event_name": {
            "type": "string",
            "example": "Rock around the clock",
            "description": "Event name"
          },
          "event_type": {
            "type": "string",
            "example": "Concert",
            "description": "Event type"
          },
          "venue_name": {
            "type": "string",
            "example": "Arena 1",
            "description": "Venue name"
          },
          "custom_field_1": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "EU only",
            "description": "Custom field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesPerson": {
        "type": "object",
        "required": [
          "salesperson_id"
        ],
        "properties": {
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "salesperson_name": {
            "type": "string",
            "example": "John Smith",
            "description": "Sales person name"
          },
          "salesperson_email": {
            "type": "string",
            "example": "john.smith@store.store",
            "description": "Sales person email"
          },
          "salesperson_phone": {
            "type": "string",
            "example": "+35811111111",
            "description": "Sales person phone number"
          },
          "employee_id": {
            "type": "string",
            "example": "353",
            "description": "Employee id"
          },
          "employment_start": {
            "type": "string",
            "example": "2020-01-01",
            "description": "Employment start date"
          },
          "employment_end": {
            "type": "string",
            "example": "2020-05-31",
            "description": "Employment end date"
          },
          "custom_field_1": {
            "type": "string",
            "example": "Project worker",
            "description": "Custom field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "Project worker",
            "description": "Custom field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "Project worker",
            "description": "Custom field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "Project worker",
            "description": "Custom field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "Project worker",
            "description": "Custom field 5"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Supplier": {
        "type": "object",
        "required": [
          "supplier_id"
        ],
        "properties": {
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "supplier_name": {
            "type": "string",
            "example": "WasSuppliers",
            "description": "Supplier name"
          },
          "supplier_email": {
            "type": "string",
            "example": "john.smith@supplier.supplier",
            "description": "Supplier Email"
          },
          "supplier_phone": {
            "type": "string",
            "example": "+3581111111",
            "description": "Supplier phone number"
          },
          "supplier_address": {
            "type": "string",
            "example": "Mannerheimintie 1",
            "description": "Street address"
          },
          "supplier_city": {
            "type": "string",
            "example": "Helsinki",
            "description": "City"
          },
          "supplier_zipcode": {
            "type": "string",
            "example": "00100",
            "description": "Postal code"
          },
          "supplier_country": {
            "type": "string",
            "example": "Finland",
            "description": "Country"
          },
          "supplier_group": {
            "type": "string",
            "example": "Strategic Supplier",
            "description": "Supplier group"
          },
          "supplier_type": {
            "type": "string",
            "example": "Local",
            "description": "Supplier type"
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Counter": {
        "type": "object",
        "required": [
          "counter_id",
          "counter_name",
          "disabled"
        ],
        "properties": {
          "counter_id": {
            "type": "string",
            "example": "5",
            "description": "Counter ID"
          },
          "counter_name": {
            "type": "string",
            "example": "Front door 1",
            "description": "Counter name"
          },
          "folder_id: front_door_1": {
            "type": "string",
            "description": "Name of identification folder"
          },
          "serial": {
            "type": "string",
            "example": "ABCDE12345",
            "description": "Camera serial number"
          },
          "registration_code": {
            "type": "string",
            "example": "A1B2C3D4E5",
            "description": "Camera registration code"
          },
          "disabled": {
            "type": "boolean",
            "description": "True if the counter is disabled (i.e. is set to not send data)",
            "example": false
          },
          "is_queue": {
            "type": "boolean",
            "example": false,
            "description": "True if the counter is a queue counter"
          },
          "on_store_perimeter": {
            "type": "boolean",
            "example": true,
            "description": "True, if this a store perimeter camera"
          },
          "organisation_id: my_organisation_id": {
            "type": "string",
            "description": "Id of the store/organisation where the camera is located"
          },
          "department_id: my_department_id": {
            "type": "string",
            "description": "Id of the department where the camera is located"
          },
          "department_reversed_id": {
            "type": "string",
            "example": "reverse_id",
            "description": "Secondary department id where in and out counts are reversed."
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Visitor": {
        "type": "object",
        "required": [
          "organisation_id",
          "date",
          "time",
          "visitors"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation/Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "540",
            "description": "Department ID"
          },
          "counter_id": {
            "type": "string",
            "example": "540",
            "description": "Counter ID"
          },
          "product_id": {
            "type": "string",
            "example": "ABC-123",
            "description": "`Optional product id associated to this visitor (eg. ticket)`"
          },
          "customer_id": {
            "type": "string",
            "example": "1234",
            "description": "Optional customer associated to this visitor (ticket etc.)"
          },
          "date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Date of visit (yyyy-mm-dd)"
          },
          "time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of visit (HH:mm:ss)"
          },
          "time_zone": {
            "type": "string",
            "example": "02:00",
            "description": "Optional location time zone."
          },
          "visit_type": {
            "type": "string",
            "example": "in",
            "description": "`Type of visitor record ('in', 'out', 'pass', 'occupancy', 'visit_time', 'queue')`"
          },
          "vehicle_type": {
            "type": "string",
            "example": "car",
            "description": "Optional field for vehicle type. Supported values are car & bicycle."
          },
          "queue_area_name": {
            "type": "string",
            "example": "Area 1",
            "description": "Optional area name for queue cameras."
          },
          "low_queue": {
            "type": "number",
            "example": 1,
            "description": "Threshold for low queue."
          },
          "high_queue": {
            "type": "number",
            "example": 5,
            "description": "Threshold for high queue."
          },
          "visitors": {
            "type": "number",
            "example": 1000,
            "description": "Number of visitors at given time"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "VisitorDemographics": {
        "type": "object",
        "required": [
          "organisation_id",
          "date",
          "time",
          "visitors"
        ],
        "properties": {
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation/Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "540",
            "description": "Department ID"
          },
          "counter_id": {
            "type": "string",
            "example": "540",
            "description": "Counter ID"
          },
          "date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Date of visit (yyyy-mm-dd)"
          },
          "time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Time of visit (HH:mm:ss)"
          },
          "gender": {
            "type": "string",
            "example": "m",
            "description": "Gender of visitor. 'm' for male, 'f' for female and 'u' for unknown."
          },
          "age": {
            "type": "number",
            "example": 25,
            "description": "Age of the visitor."
          },
          "visitors": {
            "type": "number",
            "example": 1000,
            "description": "Number of visitors for given age & gender for time specified."
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "IdMapping": {
        "type": "object",
        "required": [
          "entity_type",
          "context"
        ],
        "properties": {
          "source_system_id": {
            "type": "string",
            "example": "abc",
            "description": "store (string, required) - Identifier in the source system"
          },
          "master_id": {
            "type": "string",
            "example": "store",
            "description": "123 (string, required) - Identifier in master data"
          },
          "entity_type": {
            "type": "string",
            "example": "organisation",
            "description": "Entity type this mapping is for (e.g. organisation, product)"
          },
          "context": {
            "type": "string",
            "example": "visitor",
            "description": "Type of data this mapping applies to"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesSummary": {
        "type": "object",
        "required": [
          "sales_date",
          "organisation_id"
        ],
        "properties": {
          "sales_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Sales date (yyyy-mm-dd)"
          },
          "sales_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Sales time (HH:mm:ss)"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation/Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "5401",
            "description": "Store department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "sales_value": {
            "type": "number",
            "example": 2000,
            "description": "Total sales amount including tax"
          },
          "sales_value_wo_vat": {
            "type": "number",
            "example": 1600,
            "description": "Total sales amount without tax"
          },
          "sales_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "rebate": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given including tax"
          },
          "rebate_wo_vat": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given without tax"
          },
          "purchase_price": {
            "type": "number",
            "example": 500,
            "description": "Total purchase price including tax"
          },
          "purchase_price_wo_vat": {
            "type": "number",
            "example": 400,
            "description": "Total purchase price without tax"
          },
          "purchase_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "product_quantity": {
            "type": "number",
            "example": 4,
            "description": "Sold quantity"
          },
          "number_of_transactions": {
            "type": "number",
            "example": 2,
            "description": "Number of receipts"
          },
          "product_id": {
            "type": "string",
            "example": "XYZ",
            "description": "Product ID"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "supplier_id": {
            "type": "string",
            "example": "221",
            "description": "Supplier ID"
          },
          "parent_product_id": {
            "type": "string",
            "example": "123",
            "description": "Parent Product ID"
          },
          "campaign_id": {
            "type": "string",
            "example": "123",
            "description": "Campaign ID"
          },
          "rebate_code_id": {
            "type": "string",
            "example": "3313V",
            "description": "Rebate Code ID"
          },
          "cancelled": {
            "type": "boolean",
            "example": false,
            "description": "cancelled. true=cancelled transaction false=not cancelled transaction. Default is false."
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_6": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_7": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_8": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_9": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_10": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "SalesPayment": {
        "type": "object",
        "required": [
          "transaction_id",
          "line_item_id",
          "sales_date",
          "organisation_id",
          "payment_method"
        ],
        "properties": {
          "transaction_id": {
            "type": "string",
            "example": "er/232/f31",
            "description": "Unique ID for the transaction. Should match with sales receipt transaction id where applicable."
          },
          "line_item_id": {
            "type": "string",
            "example": "1",
            "description": "Transaction line item identifier"
          },
          "sales_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Sales date (yyyy-mm-dd)"
          },
          "sales_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Sales time (HH:mm:ss)"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation/Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "5401",
            "description": "Store department ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "register_id": {
            "type": "string",
            "example": "32",
            "description": "Cash register ID"
          },
          "table_number": {
            "type": "string",
            "example": "54",
            "description": "Table number"
          },
          "payment_method": {
            "type": "string",
            "example": "Invoice",
            "description": "Payment method ID"
          },
          "giftcard_payment_id": {
            "type": "string",
            "example": "12345",
            "description": "Id to link to possible giftcard used for this payment."
          },
          "sales_value": {
            "type": "number",
            "example": 2000,
            "description": "Total sales amount including tax"
          },
          "sales_value_wo_vat": {
            "type": "number",
            "example": 1600,
            "description": "Total sales amount without tax"
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "rebate": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given including tax"
          },
          "rebate_wo_vat": {
            "type": "number",
            "example": 0,
            "description": "Amount of rebate given without tax"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "delivery_customer_id": {
            "type": "string",
            "example": "32",
            "description": "Delivery Customer ID for identified customer"
          },
          "cancel_id": {
            "type": "string",
            "example": "er/232/f2",
            "description": "Transaction ID of cancelled receipt"
          },
          "cancelled": {
            "type": "boolean",
            "example": false,
            "description": "cancelled. true=cancelled transaction false=not cancelled transaction. Default is false."
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_6": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_7": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_8": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_9": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_10": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "custom_metric_6": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 6"
          },
          "custom_metric_7": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 7"
          },
          "custom_metric_8": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 8"
          },
          "custom_metric_9": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 9"
          },
          "custom_metric_10": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 10"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "GiftcardPayment": {
        "type": "object",
        "required": [
          "giftcard_id",
          "giftcard_number",
          "giftcard_status",
          "creation_date",
          "organisation_id",
          "payment_id",
          "payment_type",
          "payment_date",
          "payment_time",
          "payment_value"
        ],
        "properties": {
          "giftcard_id": {
            "type": "string",
            "example": "A67gigMp",
            "description": "Unique ID for the gift card."
          },
          "giftcard_number": {
            "type": "string",
            "example": "7TON39",
            "description": "Gift card number"
          },
          "giftcard_status": {
            "type": "string",
            "example": "Active",
            "description": "Gift card status"
          },
          "giftcard_balance": {
            "type": "number",
            "example": 50,
            "description": "Gift card balance"
          },
          "creation_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Gift card creation date (yyyy-mm-dd)"
          },
          "creation_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Gift card creation time (HH:mm:ss)"
          },
          "expiration_date": {
            "type": "string",
            "example": "2017-01-01",
            "description": "Gift card expiration date (yyyy-mm-dd)"
          },
          "expiration_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Gift card expiration time (HH:mm:ss)"
          },
          "sales_id": {
            "type": "string",
            "example": "dbeba367",
            "description": "Sales Id"
          },
          "organisation_id": {
            "type": "string",
            "example": "540",
            "description": "Organisation/Store ID"
          },
          "department_id": {
            "type": "string",
            "example": "5401",
            "description": "Store department ID"
          },
          "register_id": {
            "type": "string",
            "example": "32",
            "description": "Cash register ID"
          },
          "salesperson_id": {
            "type": "string",
            "example": "5402101",
            "description": "Sales person ID"
          },
          "customer_id": {
            "type": "string",
            "example": "32",
            "description": "Customer ID for identified customer"
          },
          "payment_id": {
            "type": "string",
            "example": "A65A",
            "description": "Payment method ID"
          },
          "payment_type": {
            "type": "string",
            "example": "Activation",
            "description": "Payment type"
          },
          "payment_date": {
            "type": "string",
            "example": "2016-05-15",
            "description": "Payment date (yyyy-mm-dd)"
          },
          "payment_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Payment time (HH:mm:ss)"
          },
          "payment_value": {
            "type": "number",
            "example": 20,
            "description": "Payment amount"
          },
          "payment_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "PaymentType": {
        "type": "object",
        "required": [
          "payment_type_id",
          "payment_type"
        ],
        "properties": {
          "payment_type_id": {
            "type": "string",
            "example": "1",
            "description": "Payment Type ID"
          },
          "payment_type": {
            "type": "string",
            "example": "credit card",
            "description": "Payment type name"
          },
          "payment_group": {
            "type": "string",
            "example": "Store",
            "description": "Payment group"
          },
          "custom_field_1": {
            "type": "string",
            "example": "App",
            "description": "Custom Field 1"
          },
          "custom_field_2": {
            "type": "string",
            "example": "App",
            "description": "Custom Field 2"
          },
          "custom_field_3": {
            "type": "string",
            "example": "App",
            "description": "Custom Field 3"
          },
          "custom_field_4": {
            "type": "string",
            "example": "App",
            "description": "Custom Field 4"
          },
          "custom_field_5": {
            "type": "string",
            "example": "App",
            "description": "Custom Field 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "RebateCode": {
        "type": "object",
        "required": [
          "rebate_code_id",
          "rebate_code_name"
        ],
        "properties": {
          "rebate_code_id": {
            "type": "string",
            "example": "3313V",
            "description": "Rebate Code ID"
          },
          "rebate_code_name": {
            "type": "string",
            "example": "Model product",
            "description": "Description of the reason"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "WorkshiftBase": {
        "type": "object",
        "required": [
          "shift_id",
          "organisation_id",
          "start_date",
          "start_time"
        ],
        "properties": {
          "shift_id": {
            "type": "string",
            "example": "123",
            "description": "Unique identifier for the workshift"
          },
          "organisation_id": {
            "type": "string",
            "example": "234",
            "description": "Organisation unit where shift will take place"
          },
          "salesperson_id": {
            "type": "string",
            "example": "345",
            "description": "Identifier of sales person / employee working. Required for punched shifts"
          },
          "department_id": {
            "type": "string",
            "example": "5401",
            "description": "Store department ID"
          },
          "scheduled": {
            "type": "boolean",
            "example": false,
            "description": "Whether this is scheduled or punched shift, default is false"
          },
          "productive": {
            "type": "boolean",
            "example": true,
            "description": "Whether this is productive or administrative work, default is true"
          },
          "active_work_time": {
            "type": "boolean",
            "example": true,
            "description": "Whether this shift is calculated in active work time, default is true"
          },
          "start_date": {
            "type": "string",
            "example": "2016-01-01",
            "description": "Shift date (yyyy-mm-dd)"
          },
          "start_time": {
            "type": "string",
            "example": "15:00:00",
            "description": "Shift starting time (HH:mm:ss)"
          },
          "shift_type": {
            "type": "string",
            "example": "Chef",
            "description": "Type of the shift. Freeform, will be available as dimension in portal."
          },
          "salary_type": {
            "type": "string",
            "example": "Evening compensation",
            "description": "Type of compensation for the shift."
          },
          "staff_cost": {
            "type": "number",
            "example": 500,
            "description": "Cost associated with this shift"
          },
          "breaks_duration": {
            "type": "number",
            "example": 0.5,
            "description": "Total hours of breaks during this shift"
          },
          "breaks_cost": {
            "type": "number",
            "example": 40,
            "description": "Total salary cost associated for paid breaks during this shift"
          },
          "overtime_duration": {
            "type": "number",
            "example": 2,
            "description": "Total overtime hours during this shift"
          },
          "overtime_cost": {
            "type": "number",
            "example": 120,
            "description": "Total salary cost associated for overtime hours"
          },
          "absence_code": {
            "type": "string",
            "example": "BREAK",
            "description": "Code for the absence if this entry describes absence."
          },
          "currency": {
            "type": "string",
            "example": "EUR",
            "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used."
          },
          "custom_field_1": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_2": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_3": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_4": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_field_5": {
            "type": "string",
            "example": "XYZ",
            "description": "Field that can be used for custom dimensions"
          },
          "custom_metric_1": {
            "type": "number",
            "example": 1,
            "description": "Custom metric 1"
          },
          "custom_metric_2": {
            "type": "number",
            "example": 100,
            "description": "Custom metric 2"
          },
          "custom_metric_3": {
            "type": "number",
            "example": 2.2,
            "description": "Custom metric 3"
          },
          "custom_metric_4": {
            "type": "number",
            "example": 1.05,
            "description": "Custom metric 4"
          },
          "custom_metric_5": {
            "type": "number",
            "example": 10000,
            "description": "Custom metric 5"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "Workshift": {
        "oneOf": [
          {
            "title": "Duration",
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkshiftBase"
              },
              {
                "type": "object",
                "required": [
                  "duration"
                ],
                "properties": {
                  "duration": {
                    "type": "number",
                    "description": "Duration of the shift in hours.",
                    "example": 8.15
                  }
                }
              }
            ]
          },
          {
            "title": "End date and time",
            "allOf": [
              {
                "$ref": "#/components/schemas/WorkshiftBase"
              },
              {
                "type": "object",
                "required": [
                  "end_date",
                  "end_time"
                ],
                "properties": {
                  "end_date": {
                    "type": "string",
                    "description": "Shift ending date (yyyy-mm-dd)",
                    "example": "2016-01-01"
                  },
                  "end_time": {
                    "type": "string",
                    "description": "Shift ending time (HH:mm:ss)",
                    "example": "20:00:00"
                  }
                }
              }
            ]
          }
        ]
      },
      "CurrencyRate": {
        "type": "object",
        "required": [
          "source_currency",
          "target_currency",
          "valid_from",
          "valid_to",
          "rate"
        ],
        "properties": {
          "source_currency": {
            "type": "string",
            "example": "EUR",
            "description": "Source currency as ISO 4217 currency code."
          },
          "target_currency": {
            "type": "string",
            "example": "GBP",
            "description": "Target currency as ISO 4217 currency code."
          },
          "valid_from": {
            "type": "string",
            "example": "2017-01-01",
            "description": "First day when the exchange rate is valid"
          },
          "valid_to": {
            "type": "string",
            "example": "2017-12-31",
            "description": "Last day when the exchange rate is valid"
          },
          "rate": {
            "type": "number",
            "example": 0.89,
            "description": "Exchange rate to from source to target currency"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "UpdateTime": {
        "type": "object",
        "required": [
          "entity",
          "last_updated"
        ],
        "properties": {
          "entity": {
            "type": "string",
            "example": "workshifts",
            "description": "Key of entity updated. Generally One of Zapi end point names in lower case eg. workshifts, sales, salessummaries, inventorysnapshots, visitors etc. Special key 'last_updated' can be used to send aggregated update time for all data sets."
          },
          "organisation_id": {
            "type": "string",
            "example": "123",
            "description": "Optional organisation unit this update refers to only"
          },
          "last_updated": {
            "type": "string",
            "example": "2019-08-21T02:25:31",
            "description": "Last time stamp when entity was successfully updated"
          },
          "source_system": {
            "type": "string",
            "example": "ABCDEF",
            "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used."
          }
        }
      },
      "ApiErrorMessage": {
        "type": "object",
        "required": [
          "status",
          "msg"
        ],
        "properties": {
          "status": {
            "type": "string",
            "example": "Not OK",
            "description": "Status of the operation OK / Not OK"
          },
          "msg": {
            "type": "string",
            "example": "Reason for error",
            "description": "Message describing result of operation"
          }
        }
      },
      "ApiErrorMessage401": {
        "type": "object",
        "required": [
          "status",
          "msg"
        ],
        "properties": {
          "status": {
            "type": "string",
            "example": "Not OK",
            "description": "Status of the operation OK / Not OK"
          },
          "msg": {
            "type": "string",
            "example": "Unauthorized",
            "description": "Message describing result of operation"
          }
        }
      },
      "SalesTransactionUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesTransaction"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "Unique ID for the transaction",
                  "example": "242224"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Secondary transaction identifier",
                  "example": "1"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "delivery_customer_id": {
                  "type": "string",
                  "description": "Delivery Customer ID for identified customer",
                  "example": "32"
                },
                "sales_date": {
                  "type": "string",
                  "description": "Sales date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "sales_time": {
                  "type": "string",
                  "description": "Sales time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "product_quantity": {
                  "type": "number",
                  "description": "Sold quantity",
                  "example": 2
                },
                "product_unit_price": {
                  "type": "number",
                  "description": "Unit price for single product",
                  "example": 10
                },
                "sales_value": {
                  "type": "number",
                  "description": "Total sales amount including tax",
                  "example": 20
                },
                "sales_value_wo_vat": {
                  "type": "number",
                  "description": "Total sales amount without tax",
                  "example": 20
                },
                "compensation_amount": {
                  "type": "number",
                  "description": "Optional compensation paid for this sale",
                  "example": 3
                },
                "rebate": {
                  "type": "number",
                  "description": "Amount of rebate given including tax",
                  "example": 0
                },
                "rebate_wo_vat": {
                  "type": "number",
                  "description": "Amount of rebate given without tax",
                  "example": 0
                },
                "sales_currency": {
                  "type": "string",
                  "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "payment_method": {
                  "type": "string",
                  "description": "Payment method",
                  "example": "Visa"
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "13"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "123"
                },
                "purchase_price": {
                  "type": "number",
                  "description": "Total purchase price including tax",
                  "example": 5
                },
                "purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Total purchase price without tax",
                  "example": 5
                },
                "purchase_currency": {
                  "type": "string",
                  "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "piece_good": {
                  "type": "boolean",
                  "description": "Unit Indicator. true if sold as unit, false if sold as group of items",
                  "example": true
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation unit ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "5401"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "sales_representative_id": {
                  "type": "string",
                  "description": "Responsible sales person ID",
                  "example": "5402100"
                },
                "campaign_id": {
                  "type": "string",
                  "description": "Campaign ID",
                  "example": "6344"
                },
                "cancel_id": {
                  "type": "string",
                  "description": "Transaction ID of cancelled receipt"
                },
                "cancelled": {
                  "type": "boolean",
                  "description": "cancelled. true=cancelled transaction false=not cancelled transaction. Default is false.",
                  "example": false
                },
                "delivery_date": {
                  "type": "string",
                  "description": "Delivery date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "delivery_time": {
                  "type": "string",
                  "description": "Delivery time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "order_date": {
                  "type": "string",
                  "description": "Order date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "order_time": {
                  "type": "string",
                  "description": "Order time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "invoice_date": {
                  "type": "string",
                  "description": "Invoice date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "invoice_time": {
                  "type": "string",
                  "description": "Invoice time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "register_id": {
                  "type": "string",
                  "description": "Cash register ID",
                  "example": "54022"
                },
                "table_number": {
                  "type": "string",
                  "description": "Table number",
                  "example": "54"
                },
                "rebate_code_id": {
                  "type": "string",
                  "description": "Rebate Code ID",
                  "example": "3313V"
                },
                "booking_id": {
                  "type": "string",
                  "description": "12 (string, optional) - Optional reference to booking that generated this sale.",
                  "example": "B1224"
                },
                "booking_line_id": {
                  "type": "string",
                  "description": "Optional booking line that corresponds to this sale.",
                  "example": "1"
                },
                "event_id": {
                  "type": "string",
                  "description": "Event ID",
                  "example": "221"
                },
                "sales_order_id": {
                  "type": "string",
                  "description": "Order id for sales order this sales transaction (invoice) originates from.",
                  "example": "12345"
                },
                "sales_order_line_id": {
                  "type": "string",
                  "description": "Order line item id in sales order this sales transaction line item (invoice) originates from.",
                  "example": "1"
                },
                "parent_line_id": {
                  "type": "string",
                  "description": "Line item id for parent line item in this sales transaction that this line is child to.",
                  "example": "1"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Custom field 6",
                  "example": "EU only"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Custom field 7",
                  "example": "EU only"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Custom field 8",
                  "example": "EU only"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Custom field 9",
                  "example": "EU only"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Custom field 10",
                  "example": "EU only"
                },
                "custom_field_11": {
                  "type": "string",
                  "description": "Custom field 11",
                  "example": "EU only"
                },
                "custom_field_12": {
                  "type": "string",
                  "description": "Custom field 12",
                  "example": "EU only"
                },
                "custom_field_13": {
                  "type": "string",
                  "description": "Custom field 13",
                  "example": "EU only"
                },
                "custom_field_14": {
                  "type": "string",
                  "description": "Custom field 14",
                  "example": "EU only"
                },
                "custom_field_15": {
                  "type": "string",
                  "description": "Custom field 15",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "custom_metric_6": {
                  "type": "number",
                  "description": "Custom metric 6",
                  "example": 1
                },
                "custom_metric_7": {
                  "type": "number",
                  "description": "Custom metric 7",
                  "example": 100
                },
                "custom_metric_8": {
                  "type": "number",
                  "description": "Custom metric 8",
                  "example": 2.2
                },
                "custom_metric_9": {
                  "type": "number",
                  "description": "Custom metric 9",
                  "example": 1.05
                },
                "custom_metric_10": {
                  "type": "number",
                  "description": "Custom metric 10",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "sales_date",
                "sales_time",
                "product_id",
                "product_quantity",
                "product_unit_price",
                "sales_value",
                "organisation_id",
                "booking_id"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "242224",
                "line_item_id": "1",
                "customer_id": "32",
                "delivery_customer_id": "32",
                "sales_date": "2016-01-01",
                "sales_time": "15:00:00",
                "product_id": "XYZ",
                "product_quantity": 2,
                "product_unit_price": 10,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "compensation_amount": 3,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "sales_currency": "EUR",
                "payment_method": "Visa",
                "supplier_id": "13",
                "parent_product_id": "123",
                "purchase_price": 5,
                "purchase_price_wo_vat": 5,
                "purchase_currency": "EUR",
                "piece_good": true,
                "organisation_id": "540",
                "department_id": "5401",
                "salesperson_id": "5402101",
                "sales_representative_id": "5402100",
                "campaign_id": "6344",
                "cancelled": false,
                "delivery_date": "2016-01-01",
                "delivery_time": "15:00:00",
                "order_date": "2016-01-01",
                "order_time": "15:00:00",
                "invoice_date": "2016-01-01",
                "invoice_time": "15:00:00",
                "register_id": "54022",
                "table_number": "54",
                "rebate_code_id": "3313V",
                "booking_id": "B1224",
                "booking_line_id": "1",
                "event_id": "221",
                "sales_order_id": "12345",
                "sales_order_line_id": "1",
                "parent_line_id": "1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_field_11": "EU only",
                "custom_field_12": "EU only",
                "custom_field_13": "EU only",
                "custom_field_14": "EU only",
                "custom_field_15": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_metric_6": 1,
                "custom_metric_7": 100,
                "custom_metric_8": 2.2,
                "custom_metric_9": 1.05,
                "custom_metric_10": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "242224",
                "line_item_id": "1",
                "customer_id": "32",
                "delivery_customer_id": "32",
                "sales_date": "2016-01-01",
                "sales_time": "15:00:00",
                "product_id": "XYZ",
                "product_quantity": 2,
                "product_unit_price": 10,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "compensation_amount": 3,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "sales_currency": "EUR",
                "payment_method": "Visa",
                "supplier_id": "13",
                "parent_product_id": "123",
                "purchase_price": 5,
                "purchase_price_wo_vat": 5,
                "purchase_currency": "EUR",
                "piece_good": true,
                "organisation_id": "540",
                "department_id": "5401",
                "salesperson_id": "5402101",
                "sales_representative_id": "5402100",
                "campaign_id": "6344",
                "cancelled": false,
                "delivery_date": "2016-01-01",
                "delivery_time": "15:00:00",
                "order_date": "2016-01-01",
                "order_time": "15:00:00",
                "invoice_date": "2016-01-01",
                "invoice_time": "15:00:00",
                "register_id": "54022",
                "table_number": "54",
                "rebate_code_id": "3313V",
                "booking_id": "B1224",
                "booking_line_id": "1",
                "event_id": "221",
                "sales_order_id": "12345",
                "sales_order_line_id": "1",
                "parent_line_id": "1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_field_11": "EU only",
                "custom_field_12": "EU only",
                "custom_field_13": "EU only",
                "custom_field_14": "EU only",
                "custom_field_15": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_metric_6": 1,
                "custom_metric_7": 100,
                "custom_metric_8": 2.2,
                "custom_metric_9": 1.05,
                "custom_metric_10": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesTransactionUploadPayloadCsv": {
        "type": "string",
        "description": "Sales transactions data in CSV format.",
        "example": "transaction_id; line_item_id; customer_id; sales_date; sales_time; product_id; product_quantity; product_unit_price; sales_value; sales_value_wo_vat; rebate; rebate_wo_vat; sales_currency; payment_method; supplier_id; purchase_price; purchase_price_wo_vat; purchase_currency;  organisation_id; salesperson_id; campaign_id; cancel_id; delivery_date; delivery_time; order_date; order_time; invoice_date; invoice_time;  register_id; rebate_code_id\n242224 ; 1 ; 32 ; 2016-01-01 ; 15:00:00 ; XYZ ;2;10;20;20;0;0; EUR ; Visa ; 13 ;5;5; EUR ; 540 ; 5402101 ; 6344 ; null ; 2016-01-01 ; 15:00:00 ; 2016-01-01 ; 15:00:00 ; 2016-01-01 ; 15:00:00 ; 54022 ; 3233V\n"
      },
      "ProductUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Product"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "product_name": {
                  "type": "string",
                  "description": "Product Name",
                  "example": "Widget XYZ"
                },
                "product_description": {
                  "type": "string",
                  "description": "Product description",
                  "example": "Best performance XYZ on the market"
                },
                "category_id": {
                  "type": "string",
                  "description": "Product category ID",
                  "example": "23"
                },
                "average_price": {
                  "type": "number",
                  "description": "Running average purchase price for product.",
                  "example": 8
                },
                "purchase_price": {
                  "type": "number",
                  "description": "Default purchase price for product. Used if sales transaction doesn't have purchase price set.",
                  "example": 10
                },
                "sales_price": {
                  "type": "number",
                  "description": "Default retail price for product with taxes.",
                  "example": 20
                },
                "sales_price_wo_vat": {
                  "type": "number",
                  "description": "Default retail price for product without taxes.",
                  "example": 16
                },
                "vat_rate": {
                  "type": "number",
                  "description": "VAT/tax rate",
                  "example": 24
                },
                "unit_of_measure": {
                  "type": "string",
                  "description": "Unit of measure",
                  "example": "PCS"
                },
                "product_size": {
                  "type": "string",
                  "description": "Product size",
                  "example": "XS"
                },
                "product_width": {
                  "type": "string",
                  "description": "Product width",
                  "example": "5\""
                },
                "product_height": {
                  "type": "string",
                  "description": "Product height",
                  "example": "10\""
                },
                "product_color": {
                  "type": "string",
                  "description": "Product color",
                  "example": "Dark Blue"
                },
                "product_type": {
                  "type": "string",
                  "description": "Product type",
                  "example": "Type A"
                },
                "product_brand": {
                  "type": "string",
                  "description": "Product brand",
                  "example": "Nike"
                },
                "product_season": {
                  "type": "string",
                  "description": "Product season",
                  "example": "Spring"
                },
                "model": {
                  "type": "string",
                  "description": "a (string, optional) - Product model",
                  "example": "XYZ B40"
                },
                "model_number": {
                  "type": "string",
                  "description": "Product model number",
                  "example": "X311"
                },
                "country_of_origin": {
                  "type": "string",
                  "description": "Country of origin",
                  "example": "Moldovia"
                },
                "freight": {
                  "type": "number",
                  "description": "Freight",
                  "example": 5
                },
                "duty": {
                  "type": "number",
                  "description": "Duty",
                  "example": 0.24
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "fabric": {
                  "type": "string",
                  "description": "Product fabric",
                  "example": "Felt"
                },
                "buyer": {
                  "type": "string",
                  "description": "Buyer name",
                  "example": "Lena Shields"
                },
                "ean": {
                  "type": "string",
                  "description": "Ean code",
                  "example": "Ean code"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "XY"
                },
                "image_url": {
                  "type": "string",
                  "description": "Url for external product image file",
                  "example": "http://example.com?product=XYZ"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Custom field 6",
                  "example": "EU only"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Custom field 7",
                  "example": "EU only"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Custom field 8",
                  "example": "EU only"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Custom field 9",
                  "example": "EU only"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Custom field 10",
                  "example": "EU only"
                },
                "custom_field_11": {
                  "type": "string",
                  "description": "Custom field 11",
                  "example": "EU only"
                },
                "custom_field_12": {
                  "type": "string",
                  "description": "Custom field 12",
                  "example": "EU only"
                },
                "custom_field_13": {
                  "type": "string",
                  "description": "Custom field 13",
                  "example": "EU only"
                },
                "custom_field_14": {
                  "type": "string",
                  "description": "Custom field 14",
                  "example": "EU only"
                },
                "custom_field_15": {
                  "type": "string",
                  "description": "Custom field 15",
                  "example": "EU only"
                },
                "custom_field_16": {
                  "type": "string",
                  "description": "Custom field 16",
                  "example": "EU only"
                },
                "custom_field_17": {
                  "type": "string",
                  "description": "Custom field 17",
                  "example": "EU only"
                },
                "custom_field_18": {
                  "type": "string",
                  "description": "Custom field 18",
                  "example": "EU only"
                },
                "custom_field_19": {
                  "type": "string",
                  "description": "Custom field 19",
                  "example": "EU only"
                },
                "custom_field_20": {
                  "type": "string",
                  "description": "Custom field 20",
                  "example": "EU only"
                },
                "custom_field_21": {
                  "type": "string",
                  "description": "Custom field 21",
                  "example": "EU only"
                },
                "custom_field_22": {
                  "type": "string",
                  "description": "Custom field 22",
                  "example": "EU only"
                },
                "custom_field_23": {
                  "type": "string",
                  "description": "Custom field 23",
                  "example": "EU only"
                },
                "custom_field_24": {
                  "type": "string",
                  "description": "Custom field 24",
                  "example": "EU only"
                },
                "custom_field_25": {
                  "type": "string",
                  "description": "Custom field 25",
                  "example": "EU only"
                },
                "custom_field_26": {
                  "type": "string",
                  "description": "Custom field 26",
                  "example": "EU only"
                },
                "custom_field_27": {
                  "type": "string",
                  "description": "Custom field 27",
                  "example": "EU only"
                },
                "custom_field_28": {
                  "type": "string",
                  "description": "Custom field 28",
                  "example": "EU only"
                },
                "custom_field_29": {
                  "type": "string",
                  "description": "Custom field 29",
                  "example": "EU only"
                },
                "custom_field_30": {
                  "type": "string",
                  "description": "Custom field 30",
                  "example": "EU only"
                },
                "custom_field_31": {
                  "type": "string",
                  "description": "Custom field 31",
                  "example": "EU only"
                },
                "custom_field_32": {
                  "type": "string",
                  "description": "Custom field 32",
                  "example": "EU only"
                },
                "custom_field_33": {
                  "type": "string",
                  "description": "Custom field 33",
                  "example": "EU only"
                },
                "custom_field_34": {
                  "type": "string",
                  "description": "Custom field 34",
                  "example": "EU only"
                },
                "custom_field_35": {
                  "type": "string",
                  "description": "Custom field 35",
                  "example": "EU only"
                },
                "custom_field_36": {
                  "type": "string",
                  "description": "Custom field 36",
                  "example": "EU only"
                },
                "custom_field_37": {
                  "type": "string",
                  "description": "Custom field 37",
                  "example": "EU only"
                },
                "custom_field_38": {
                  "type": "string",
                  "description": "Custom field 38",
                  "example": "EU only"
                },
                "custom_field_39": {
                  "type": "string",
                  "description": "Custom field 39",
                  "example": "EU only"
                },
                "custom_field_40": {
                  "type": "string",
                  "description": "Custom field 40",
                  "example": "EU only"
                },
                "custom_field_41": {
                  "type": "string",
                  "description": "Custom field 41",
                  "example": "EU only"
                },
                "custom_field_42": {
                  "type": "string",
                  "description": "Custom field 42",
                  "example": "EU only"
                },
                "custom_field_43": {
                  "type": "string",
                  "description": "Custom field 43",
                  "example": "EU only"
                },
                "custom_field_44": {
                  "type": "string",
                  "description": "Custom field 44",
                  "example": "EU only"
                },
                "custom_field_45": {
                  "type": "string",
                  "description": "Custom field 45",
                  "example": "EU only"
                },
                "custom_field_46": {
                  "type": "string",
                  "description": "Custom field 46",
                  "example": "EU only"
                },
                "custom_field_47": {
                  "type": "string",
                  "description": "Custom field 47",
                  "example": "EU only"
                },
                "custom_field_48": {
                  "type": "string",
                  "description": "Custom field 48",
                  "example": "EU only"
                },
                "custom_field_49": {
                  "type": "string",
                  "description": "Custom field 49",
                  "example": "EU only"
                },
                "custom_field_50": {
                  "type": "string",
                  "description": "Custom field 50",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "custom_metric_6": {
                  "type": "number",
                  "description": "Custom metric 6",
                  "example": 150
                },
                "custom_metric_7": {
                  "type": "number",
                  "description": "Custom metric 7",
                  "example": 1000
                },
                "custom_metric_8": {
                  "type": "number",
                  "description": "Custom metric 8",
                  "example": 2.52
                },
                "custom_metric_9": {
                  "type": "number",
                  "description": "Custom metric 9",
                  "example": 1.5
                },
                "custom_metric_10": {
                  "type": "number",
                  "description": "Custom metric 10",
                  "example": 2000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "product_id",
                "product_name",
                "model"
              ],
              "additionalProperties": false,
              "example": {
                "product_id": "XYZ",
                "product_name": "Widget XYZ",
                "product_description": "Best performance XYZ on the market",
                "category_id": "23",
                "average_price": 8,
                "purchase_price": 10,
                "sales_price": 20,
                "sales_price_wo_vat": 16,
                "vat_rate": 24,
                "unit_of_measure": "PCS",
                "product_size": "XS",
                "product_width": "5\"",
                "product_height": "10\"",
                "product_color": "Dark Blue",
                "product_type": "Type A",
                "product_brand": "Nike",
                "product_season": "Spring",
                "model": "XYZ B40",
                "model_number": "X311",
                "country_of_origin": "Moldovia",
                "freight": 5,
                "duty": 0.24,
                "supplier_id": "221",
                "fabric": "Felt",
                "buyer": "Lena Shields",
                "ean": "Ean code",
                "parent_product_id": "XY",
                "image_url": "http://example.com?product=XYZ",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_field_11": "EU only",
                "custom_field_12": "EU only",
                "custom_field_13": "EU only",
                "custom_field_14": "EU only",
                "custom_field_15": "EU only",
                "custom_field_16": "EU only",
                "custom_field_17": "EU only",
                "custom_field_18": "EU only",
                "custom_field_19": "EU only",
                "custom_field_20": "EU only",
                "custom_field_21": "EU only",
                "custom_field_22": "EU only",
                "custom_field_23": "EU only",
                "custom_field_24": "EU only",
                "custom_field_25": "EU only",
                "custom_field_26": "EU only",
                "custom_field_27": "EU only",
                "custom_field_28": "EU only",
                "custom_field_29": "EU only",
                "custom_field_30": "EU only",
                "custom_field_31": "EU only",
                "custom_field_32": "EU only",
                "custom_field_33": "EU only",
                "custom_field_34": "EU only",
                "custom_field_35": "EU only",
                "custom_field_36": "EU only",
                "custom_field_37": "EU only",
                "custom_field_38": "EU only",
                "custom_field_39": "EU only",
                "custom_field_40": "EU only",
                "custom_field_41": "EU only",
                "custom_field_42": "EU only",
                "custom_field_43": "EU only",
                "custom_field_44": "EU only",
                "custom_field_45": "EU only",
                "custom_field_46": "EU only",
                "custom_field_47": "EU only",
                "custom_field_48": "EU only",
                "custom_field_49": "EU only",
                "custom_field_50": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_metric_6": 150,
                "custom_metric_7": 1000,
                "custom_metric_8": 2.52,
                "custom_metric_9": 1.5,
                "custom_metric_10": 2000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "product_id": "XYZ",
                "product_name": "Widget XYZ",
                "product_description": "Best performance XYZ on the market",
                "category_id": "23",
                "average_price": 8,
                "purchase_price": 10,
                "sales_price": 20,
                "sales_price_wo_vat": 16,
                "vat_rate": 24,
                "unit_of_measure": "PCS",
                "product_size": "XS",
                "product_width": "5\"",
                "product_height": "10\"",
                "product_color": "Dark Blue",
                "product_type": "Type A",
                "product_brand": "Nike",
                "product_season": "Spring",
                "model": "XYZ B40",
                "model_number": "X311",
                "country_of_origin": "Moldovia",
                "freight": 5,
                "duty": 0.24,
                "supplier_id": "221",
                "fabric": "Felt",
                "buyer": "Lena Shields",
                "ean": "Ean code",
                "parent_product_id": "XY",
                "image_url": "http://example.com?product=XYZ",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_field_11": "EU only",
                "custom_field_12": "EU only",
                "custom_field_13": "EU only",
                "custom_field_14": "EU only",
                "custom_field_15": "EU only",
                "custom_field_16": "EU only",
                "custom_field_17": "EU only",
                "custom_field_18": "EU only",
                "custom_field_19": "EU only",
                "custom_field_20": "EU only",
                "custom_field_21": "EU only",
                "custom_field_22": "EU only",
                "custom_field_23": "EU only",
                "custom_field_24": "EU only",
                "custom_field_25": "EU only",
                "custom_field_26": "EU only",
                "custom_field_27": "EU only",
                "custom_field_28": "EU only",
                "custom_field_29": "EU only",
                "custom_field_30": "EU only",
                "custom_field_31": "EU only",
                "custom_field_32": "EU only",
                "custom_field_33": "EU only",
                "custom_field_34": "EU only",
                "custom_field_35": "EU only",
                "custom_field_36": "EU only",
                "custom_field_37": "EU only",
                "custom_field_38": "EU only",
                "custom_field_39": "EU only",
                "custom_field_40": "EU only",
                "custom_field_41": "EU only",
                "custom_field_42": "EU only",
                "custom_field_43": "EU only",
                "custom_field_44": "EU only",
                "custom_field_45": "EU only",
                "custom_field_46": "EU only",
                "custom_field_47": "EU only",
                "custom_field_48": "EU only",
                "custom_field_49": "EU only",
                "custom_field_50": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_metric_6": 150,
                "custom_metric_7": 1000,
                "custom_metric_8": 2.52,
                "custom_metric_9": 1.5,
                "custom_metric_10": 2000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CustomerUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Customer"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID",
                  "example": "32"
                },
                "customer_name": {
                  "type": "string",
                  "description": "Customer Name",
                  "example": "John Smith"
                },
                "customer_company": {
                  "type": "string",
                  "description": "Customer Company",
                  "example": "Smith Industries"
                },
                "customer_email": {
                  "type": "string",
                  "description": "Customer Email",
                  "example": "john.smith@customer.customer"
                },
                "customer_phone": {
                  "type": "string",
                  "description": "Customer Phone",
                  "example": "+35811111111"
                },
                "customer_address": {
                  "type": "string",
                  "description": "Customer Street Address",
                  "example": "Mannerheimintie 1"
                },
                "customer_zipcode": {
                  "type": "string",
                  "description": "Customer's Zip Code",
                  "example": "00100"
                },
                "customer_city": {
                  "type": "string",
                  "description": "Customer City",
                  "example": "Helsinki"
                },
                "customer_country": {
                  "type": "string",
                  "description": "Customer Country",
                  "example": "Finland"
                },
                "customer_group_id": {
                  "type": "string",
                  "description": "Customer Group ID",
                  "example": "2"
                },
                "customer_group_name": {
                  "type": "string",
                  "description": "Customer Group Name",
                  "example": "B2"
                },
                "account_number": {
                  "type": "string",
                  "description": "Account Number",
                  "example": "X5434"
                },
                "vat_number": {
                  "type": "string",
                  "description": "9 (string, optional) - VAT Number",
                  "example": "12345678"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Customer account store ID",
                  "example": "1"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person id responsible for this customer account.",
                  "example": "123"
                },
                "creation_date": {
                  "type": "string",
                  "description": "Date when this customer was added to system (yyyy-mm-dd).",
                  "example": "2021-12-15"
                },
                "subscribe_date": {
                  "type": "string",
                  "description": "Date when this customer subscribed newsletter (yyyy-mm-dd).",
                  "example": "2022-01-15"
                },
                "unsubscribe_date": {
                  "type": "string",
                  "description": "Date when this customer unsubscribed newsletter (yyyy-mm-dd).",
                  "example": "2022-02-15"
                },
                "register_date": {
                  "type": "string",
                  "description": "Date when this customer registered to system (yyyy-mm-dd).",
                  "example": "2022-01-10"
                },
                "unregister_date": {
                  "type": "string",
                  "description": "Date when this customer unregistered from system (yyyy-mm-dd).",
                  "example": "2022-03-15"
                },
                "hierarchy_level_1": {
                  "type": "string",
                  "description": "Hierarchy Level 1. *DEPRECATED* Please use FlatHierarchy endpoint.",
                  "example": "A1"
                },
                "hierarchy_level_2": {
                  "type": "string",
                  "description": "Hierarchy Level 2. *DEPRECATED* Please use FlatHierarchy endpoint.",
                  "example": "Family shoppers"
                },
                "hierarchy_level_3": {
                  "type": "string",
                  "description": "Hierarchy Level 3. *DEPRECATED* Please use FlatHierarchy endpoint.",
                  "example": "Families with babies"
                },
                "hierarchy_level_4": {
                  "type": "string",
                  "description": "Hierarchy Level 4. *DEPRECATED* Please use FlatHierarchy endpoint.",
                  "example": "A4"
                },
                "hierarchy_level_5": {
                  "type": "string",
                  "description": "Hierarchy Level 5. *DEPRECATED* Please use FlatHierarchy endpoint.",
                  "example": "A5"
                },
                "custom_dimension_1": {
                  "type": "string",
                  "description": "Custom Field 1",
                  "example": "Class 3"
                },
                "custom_dimension_2": {
                  "type": "string",
                  "description": "Custom Field 2",
                  "example": "Class 2"
                },
                "custom_dimension_3": {
                  "type": "string",
                  "description": "Custom Field 3",
                  "example": "Class 1"
                },
                "custom_dimension_4": {
                  "type": "string",
                  "description": "Custom Field 4",
                  "example": "XYZ"
                },
                "custom_dimension_5": {
                  "type": "string",
                  "description": "Custom Field 5",
                  "example": "XYZ"
                },
                "custom_dimension_6": {
                  "type": "string",
                  "description": "Custom Field 6",
                  "example": "Class 3"
                },
                "custom_dimension_7": {
                  "type": "string",
                  "description": "Custom Field 7",
                  "example": "Class 3"
                },
                "custom_dimension_8": {
                  "type": "string",
                  "description": "Custom Field 8",
                  "example": "Class 3"
                },
                "custom_dimension_9": {
                  "type": "string",
                  "description": "Custom Field 9",
                  "example": "Class 3"
                },
                "custom_dimension_10": {
                  "type": "string",
                  "description": "Custom Field 10",
                  "example": "Class 3"
                },
                "custom_dimension_11": {
                  "type": "string",
                  "description": "Custom Field 11",
                  "example": "Class 3"
                },
                "custom_dimension_12": {
                  "type": "string",
                  "description": "Custom Field 12",
                  "example": "Class 3"
                },
                "custom_dimension_13": {
                  "type": "string",
                  "description": "Custom Field 13",
                  "example": "Class 3"
                },
                "custom_dimension_14": {
                  "type": "string",
                  "description": "Custom Field 14",
                  "example": "Class 3"
                },
                "custom_dimension_15": {
                  "type": "string",
                  "description": "Custom Field 15",
                  "example": "Class 3"
                },
                "custom_dimension_16": {
                  "type": "string",
                  "description": "Custom Field 16",
                  "example": "Class 3"
                },
                "custom_dimension_17": {
                  "type": "string",
                  "description": "Custom Field 17",
                  "example": "Class 3"
                },
                "custom_dimension_18": {
                  "type": "string",
                  "description": "Custom Field 18",
                  "example": "Class 3"
                },
                "custom_dimension_19": {
                  "type": "string",
                  "description": "Custom Field 19",
                  "example": "Class 3"
                },
                "custom_dimension_20": {
                  "type": "string",
                  "description": "Custom Field 20",
                  "example": "Class 3"
                },
                "custom_dimension_21": {
                  "type": "string",
                  "description": "Custom Field 21",
                  "example": "Class 3"
                },
                "custom_dimension_22": {
                  "type": "string",
                  "description": "Custom Field 22",
                  "example": "Class 3"
                },
                "custom_dimension_23": {
                  "type": "string",
                  "description": "Custom Field 23",
                  "example": "Class 3"
                },
                "custom_dimension_24": {
                  "type": "string",
                  "description": "Custom Field 24",
                  "example": "Class 3"
                },
                "custom_dimension_25": {
                  "type": "string",
                  "description": "Custom Field 25",
                  "example": "Class 3"
                },
                "custom_dimension_26": {
                  "type": "string",
                  "description": "Custom Field 26",
                  "example": "Class 3"
                },
                "custom_dimension_27": {
                  "type": "string",
                  "description": "Custom Field 27",
                  "example": "Class 3"
                },
                "custom_dimension_28": {
                  "type": "string",
                  "description": "Custom Field 28",
                  "example": "Class 3"
                },
                "custom_dimension_29": {
                  "type": "string",
                  "description": "Custom Field 29",
                  "example": "Class 3"
                },
                "custom_dimension_30": {
                  "type": "string",
                  "description": "Custom Field 30",
                  "example": "Class 3"
                },
                "custom_dimension_31": {
                  "type": "string",
                  "description": "Custom Field 31",
                  "example": "Class 3"
                },
                "custom_dimension_32": {
                  "type": "string",
                  "description": "Custom Field 32",
                  "example": "Class 3"
                },
                "custom_dimension_33": {
                  "type": "string",
                  "description": "Custom Field 33",
                  "example": "Class 3"
                },
                "custom_dimension_34": {
                  "type": "string",
                  "description": "Custom Field 34",
                  "example": "Class 3"
                },
                "custom_dimension_35": {
                  "type": "string",
                  "description": "Custom Field 35",
                  "example": "Class 3"
                },
                "custom_dimension_36": {
                  "type": "string",
                  "description": "Custom Field 36",
                  "example": "Class 3"
                },
                "custom_dimension_37": {
                  "type": "string",
                  "description": "Custom Field 37",
                  "example": "Class 3"
                },
                "custom_dimension_38": {
                  "type": "string",
                  "description": "Custom Field 38",
                  "example": "Class 3"
                },
                "custom_dimension_39": {
                  "type": "string",
                  "description": "Custom Field 39",
                  "example": "Class 3"
                },
                "custom_dimension_40": {
                  "type": "string",
                  "description": "Custom Field 40",
                  "example": "Class 3"
                },
                "custom_dimension_41": {
                  "type": "string",
                  "description": "Custom Field 41",
                  "example": "Class 3"
                },
                "custom_dimension_42": {
                  "type": "string",
                  "description": "Custom Field 42",
                  "example": "Class 3"
                },
                "custom_dimension_43": {
                  "type": "string",
                  "description": "Custom Field 43",
                  "example": "Class 3"
                },
                "custom_dimension_44": {
                  "type": "string",
                  "description": "Custom Field 44",
                  "example": "Class 3"
                },
                "custom_dimension_45": {
                  "type": "string",
                  "description": "Custom Field 45",
                  "example": "Class 3"
                },
                "custom_dimension_46": {
                  "type": "string",
                  "description": "Custom Field 46",
                  "example": "Class 3"
                },
                "custom_dimension_47": {
                  "type": "string",
                  "description": "Custom Field 47",
                  "example": "Class 3"
                },
                "custom_dimension_48": {
                  "type": "string",
                  "description": "Custom Field 48",
                  "example": "Class 3"
                },
                "custom_dimension_49": {
                  "type": "string",
                  "description": "Custom Field 49",
                  "example": "Class 3"
                },
                "custom_dimension_50": {
                  "type": "string",
                  "description": "Custom Field 50",
                  "example": "Class 3"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "customer_id",
                "vat_number"
              ],
              "additionalProperties": false,
              "example": {
                "customer_id": "32",
                "customer_name": "John Smith",
                "customer_company": "Smith Industries",
                "customer_email": "john.smith@customer.customer",
                "customer_phone": "+35811111111",
                "customer_address": "Mannerheimintie 1",
                "customer_zipcode": "00100",
                "customer_city": "Helsinki",
                "customer_country": "Finland",
                "customer_group_id": "2",
                "customer_group_name": "B2",
                "account_number": "X5434",
                "vat_number": "12345678",
                "organisation_id": "1",
                "salesperson_id": "123",
                "creation_date": "2021-12-15",
                "subscribe_date": "2022-01-15",
                "unsubscribe_date": "2022-02-15",
                "register_date": "2022-01-10",
                "unregister_date": "2022-03-15",
                "hierarchy_level_1": "A1",
                "hierarchy_level_2": "Family shoppers",
                "hierarchy_level_3": "Families with babies",
                "hierarchy_level_4": "A4",
                "hierarchy_level_5": "A5",
                "custom_dimension_1": "Class 3",
                "custom_dimension_2": "Class 2",
                "custom_dimension_3": "Class 1",
                "custom_dimension_4": "XYZ",
                "custom_dimension_5": "XYZ",
                "custom_dimension_6": "Class 3",
                "custom_dimension_7": "Class 3",
                "custom_dimension_8": "Class 3",
                "custom_dimension_9": "Class 3",
                "custom_dimension_10": "Class 3",
                "custom_dimension_11": "Class 3",
                "custom_dimension_12": "Class 3",
                "custom_dimension_13": "Class 3",
                "custom_dimension_14": "Class 3",
                "custom_dimension_15": "Class 3",
                "custom_dimension_16": "Class 3",
                "custom_dimension_17": "Class 3",
                "custom_dimension_18": "Class 3",
                "custom_dimension_19": "Class 3",
                "custom_dimension_20": "Class 3",
                "custom_dimension_21": "Class 3",
                "custom_dimension_22": "Class 3",
                "custom_dimension_23": "Class 3",
                "custom_dimension_24": "Class 3",
                "custom_dimension_25": "Class 3",
                "custom_dimension_26": "Class 3",
                "custom_dimension_27": "Class 3",
                "custom_dimension_28": "Class 3",
                "custom_dimension_29": "Class 3",
                "custom_dimension_30": "Class 3",
                "custom_dimension_31": "Class 3",
                "custom_dimension_32": "Class 3",
                "custom_dimension_33": "Class 3",
                "custom_dimension_34": "Class 3",
                "custom_dimension_35": "Class 3",
                "custom_dimension_36": "Class 3",
                "custom_dimension_37": "Class 3",
                "custom_dimension_38": "Class 3",
                "custom_dimension_39": "Class 3",
                "custom_dimension_40": "Class 3",
                "custom_dimension_41": "Class 3",
                "custom_dimension_42": "Class 3",
                "custom_dimension_43": "Class 3",
                "custom_dimension_44": "Class 3",
                "custom_dimension_45": "Class 3",
                "custom_dimension_46": "Class 3",
                "custom_dimension_47": "Class 3",
                "custom_dimension_48": "Class 3",
                "custom_dimension_49": "Class 3",
                "custom_dimension_50": "Class 3",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "customer_id": "32",
                "customer_name": "John Smith",
                "customer_company": "Smith Industries",
                "customer_email": "john.smith@customer.customer",
                "customer_phone": "+35811111111",
                "customer_address": "Mannerheimintie 1",
                "customer_zipcode": "00100",
                "customer_city": "Helsinki",
                "customer_country": "Finland",
                "customer_group_id": "2",
                "customer_group_name": "B2",
                "account_number": "X5434",
                "vat_number": "12345678",
                "organisation_id": "1",
                "salesperson_id": "123",
                "creation_date": "2021-12-15",
                "subscribe_date": "2022-01-15",
                "unsubscribe_date": "2022-02-15",
                "register_date": "2022-01-10",
                "unregister_date": "2022-03-15",
                "hierarchy_level_1": "A1",
                "hierarchy_level_2": "Family shoppers",
                "hierarchy_level_3": "Families with babies",
                "hierarchy_level_4": "A4",
                "hierarchy_level_5": "A5",
                "custom_dimension_1": "Class 3",
                "custom_dimension_2": "Class 2",
                "custom_dimension_3": "Class 1",
                "custom_dimension_4": "XYZ",
                "custom_dimension_5": "XYZ",
                "custom_dimension_6": "Class 3",
                "custom_dimension_7": "Class 3",
                "custom_dimension_8": "Class 3",
                "custom_dimension_9": "Class 3",
                "custom_dimension_10": "Class 3",
                "custom_dimension_11": "Class 3",
                "custom_dimension_12": "Class 3",
                "custom_dimension_13": "Class 3",
                "custom_dimension_14": "Class 3",
                "custom_dimension_15": "Class 3",
                "custom_dimension_16": "Class 3",
                "custom_dimension_17": "Class 3",
                "custom_dimension_18": "Class 3",
                "custom_dimension_19": "Class 3",
                "custom_dimension_20": "Class 3",
                "custom_dimension_21": "Class 3",
                "custom_dimension_22": "Class 3",
                "custom_dimension_23": "Class 3",
                "custom_dimension_24": "Class 3",
                "custom_dimension_25": "Class 3",
                "custom_dimension_26": "Class 3",
                "custom_dimension_27": "Class 3",
                "custom_dimension_28": "Class 3",
                "custom_dimension_29": "Class 3",
                "custom_dimension_30": "Class 3",
                "custom_dimension_31": "Class 3",
                "custom_dimension_32": "Class 3",
                "custom_dimension_33": "Class 3",
                "custom_dimension_34": "Class 3",
                "custom_dimension_35": "Class 3",
                "custom_dimension_36": "Class 3",
                "custom_dimension_37": "Class 3",
                "custom_dimension_38": "Class 3",
                "custom_dimension_39": "Class 3",
                "custom_dimension_40": "Class 3",
                "custom_dimension_41": "Class 3",
                "custom_dimension_42": "Class 3",
                "custom_dimension_43": "Class 3",
                "custom_dimension_44": "Class 3",
                "custom_dimension_45": "Class 3",
                "custom_dimension_46": "Class 3",
                "custom_dimension_47": "Class 3",
                "custom_dimension_48": "Class 3",
                "custom_dimension_49": "Class 3",
                "custom_dimension_50": "Class 3",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CustomerUploadPayloadCsv": {
        "type": "string",
        "description": "Customers data in CSV format.",
        "example": "customer_id;customer_name;customer_company;customer_email;customer_phone;customer_address;customer_zipcode;customer_city;customer_country;customer_group_id;customer_group_name\n32; John Smith; Smith Industries; john.smith@customer.customer;+35811111111; Mannerheimintie 1;00100; Helsinki; Finland; ;\n"
      },
      "CustomerFeedbackUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/CustomerFeedback"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "feedback_id": {
                  "type": "string",
                  "description": "Unique ID for this feedback entry",
                  "example": "xyz"
                },
                "respondent_id": {
                  "type": "string",
                  "description": "Optional ID for survey respondent. Can be used to group all responses by single respondent.",
                  "example": "1234"
                },
                "survey_id": {
                  "type": "string",
                  "description": "Optional ID for survey. Can be used to separate responses between different surveys.",
                  "example": "Survey 1"
                },
                "question_id": {
                  "type": "string",
                  "description": "Optional ID for feedback question. Should be used if multiple separate feedback questions are needed.",
                  "example": "Q1"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Identifier of store this feedback entry refers to",
                  "example": "ORG1"
                },
                "department_id": {
                  "type": "string",
                  "description": "Optional identifier of department this feedback entry refers to",
                  "example": "DEP1"
                },
                "feedback_date": {
                  "type": "string",
                  "description": "Date of feedback (yyyy-mm-dd)",
                  "example": "2018-01-01"
                },
                "feedback_time": {
                  "type": "string",
                  "description": "Optional time of feedback (hh:mm:ss)",
                  "example": "15:00:00"
                },
                "feedback_type": {
                  "type": "string",
                  "description": "Optional type of feedback",
                  "example": "Store survey"
                },
                "main_feedback": {
                  "type": "boolean",
                  "description": "Is this main (overall grade) feedback. Default is true.",
                  "example": true
                },
                "grade": {
                  "type": "number",
                  "description": "Numerical grade for feedback",
                  "example": 9
                },
                "grade_total": {
                  "type": "number",
                  "description": "Optional numerical total grade calculated by source (eg. Google Review) for feedback",
                  "example": 8.5
                },
                "comments": {
                  "type": "string",
                  "description": "Optional free form feedback",
                  "example": "Great service today!"
                },
                "comments_en": {
                  "type": "string",
                  "description": "Optional free form feedback translated in English",
                  "example": "Great service today!"
                },
                "review_url": {
                  "type": "string",
                  "description": "Google review URL",
                  "example": "https://www.google.com/maps/reviews?data=XYZ"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "feedback_id",
                "organisation_id",
                "feedback_date",
                "grade"
              ],
              "additionalProperties": false,
              "example": {
                "feedback_id": "xyz",
                "respondent_id": "1234",
                "survey_id": "Survey 1",
                "question_id": "Q1",
                "organisation_id": "ORG1",
                "department_id": "DEP1",
                "feedback_date": "2018-01-01",
                "feedback_time": "15:00:00",
                "feedback_type": "Store survey",
                "main_feedback": true,
                "grade": 9,
                "grade_total": 8.5,
                "comments": "Great service today!",
                "comments_en": "Great service today!",
                "review_url": "https://www.google.com/maps/reviews?data=XYZ",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "feedback_id": "xyz",
                "respondent_id": "1234",
                "survey_id": "Survey 1",
                "question_id": "Q1",
                "organisation_id": "ORG1",
                "department_id": "DEP1",
                "feedback_date": "2018-01-01",
                "feedback_time": "15:00:00",
                "feedback_type": "Store survey",
                "main_feedback": true,
                "grade": 9,
                "grade_total": 8.5,
                "comments": "Great service today!",
                "comments_en": "Great service today!",
                "review_url": "https://www.google.com/maps/reviews?data=XYZ",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CustomerFeedbackUploadPayloadCsv": {
        "type": "string",
        "description": "Customer feedback data in CSV format.",
        "example": "feedback_id;organisation_id;department_id;feedback_date;feedback_time;feedback_type;grade;comments\nxyz;ORG1;DEP1;2018-01-01;15:00:00;\"Store survey\";9;\"Great service today!\"\n"
      },
      "CashierBalanceUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/CashierBalance"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Identifier of store for this balance",
                  "example": "ORG1"
                },
                "department_id": {
                  "type": "string",
                  "description": "Optional identifier of department for this balance",
                  "example": "DEP1"
                },
                "register_id": {
                  "type": "string",
                  "description": "Optional cash register identifier for this balance",
                  "example": "123"
                },
                "batch_id": {
                  "type": "string",
                  "description": "Optional batch or shift identifier for this balance row",
                  "example": "1"
                },
                "payment_method": {
                  "type": "string",
                  "description": "Payment method of this balance row",
                  "example": "Cash"
                },
                "sales_date": {
                  "type": "string",
                  "description": "Date of balance (yyyy-mm-dd)",
                  "example": "2018-01-01"
                },
                "sales_time": {
                  "type": "string",
                  "description": "Optional time of balance (hh:mm:ss)",
                  "example": "15:00:00"
                },
                "batch_status": {
                  "type": "string",
                  "description": "Optional status of this batch ID",
                  "example": "OK"
                },
                "transaction_count": {
                  "type": "number",
                  "description": "Number of transactions for this shift and payment method",
                  "example": 9
                },
                "shift_amount": {
                  "type": "number",
                  "description": "Total amount of payments for this shift and payment method",
                  "example": 1000
                },
                "over_short": {
                  "type": "number",
                  "description": "Difference in money between sales and shift amounts",
                  "example": 100
                },
                "cash_dropped": {
                  "type": "number",
                  "description": "How much cash was dropped from register during this shift",
                  "example": 0
                },
                "cash_paid_out": {
                  "type": "number",
                  "description": "How much cash was paid out from register during this shift",
                  "example": 50
                },
                "currency": {
                  "type": "string",
                  "description": "Shift currency as ISO 4217 currency code. Required if multiple currencies are used by the customer.",
                  "example": "EUR"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "payment_method",
                "sales_date",
                "transaction_count",
                "shift_amount"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "ORG1",
                "department_id": "DEP1",
                "register_id": "123",
                "batch_id": "1",
                "payment_method": "Cash",
                "sales_date": "2018-01-01",
                "sales_time": "15:00:00",
                "batch_status": "OK",
                "transaction_count": 9,
                "shift_amount": 1000,
                "over_short": 100,
                "cash_dropped": 0,
                "cash_paid_out": 50,
                "currency": "EUR",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "ORG1",
                "department_id": "DEP1",
                "register_id": "123",
                "batch_id": "1",
                "payment_method": "Cash",
                "sales_date": "2018-01-01",
                "sales_time": "15:00:00",
                "batch_status": "OK",
                "transaction_count": 9,
                "shift_amount": 1000,
                "over_short": 100,
                "cash_dropped": 0,
                "cash_paid_out": 50,
                "currency": "EUR",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CashierBalanceUploadPayloadCsv": {
        "type": "string",
        "description": "Cashier balance data in CSV format.",
        "example": "organisation_id;department_id;batch_id;sales_date;sales_time;batch_status;payment_type;transaction_count;shift_amount;over_short;cash_dropped;cash_paid_out\nORG1;DEP1;1;2018-01-01;15:00:00;OK;Cash;9;1000.00;100.00;0.00;50.00\n"
      },
      "OrganisationUnitUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/OrganisationUnit"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID",
                  "example": "540"
                },
                "organisation_name": {
                  "type": "string",
                  "description": "Organisation name",
                  "example": "Web Sales"
                },
                "street_address": {
                  "type": "string",
                  "description": "Street address",
                  "example": "Mannerheimintie 1"
                },
                "city": {
                  "type": "string",
                  "description": "City",
                  "example": "Helsinki"
                },
                "post_code": {
                  "type": "string",
                  "description": "Postal code",
                  "example": "00100"
                },
                "state": {
                  "type": "string",
                  "description": "State",
                  "example": "Southern Finland"
                },
                "country": {
                  "type": "string",
                  "description": "Country",
                  "example": "Finland"
                },
                "area": {
                  "type": "string",
                  "description": "Sales area",
                  "example": "South"
                },
                "latitude": {
                  "type": "number",
                  "description": "Latitude",
                  "example": 60.184014
                },
                "longitude": {
                  "type": "number",
                  "description": "Longitude",
                  "example": 24.960046
                },
                "channel": {
                  "type": "string",
                  "description": "Sales channel",
                  "example": "Concession"
                },
                "organisation_type": {
                  "type": "string",
                  "description": "Outlet / Brand / Essential",
                  "example": "Outlet"
                },
                "organisation_group": {
                  "type": "string",
                  "description": "Organisation group",
                  "example": "A"
                },
                "floor_area": {
                  "type": "number",
                  "description": "Store floor area eg. in m2",
                  "example": 123.5
                },
                "no_customer_seats": {
                  "type": "number",
                  "description": "Number of customer seats in store",
                  "example": 150
                },
                "google_location_url": {
                  "type": "string",
                  "description": "Google review location URL",
                  "example": "https://www.google.com/maps/reviews?data=XYZ"
                },
                "image_url": {
                  "type": "string",
                  "description": "Url for external store image file",
                  "example": "http://example.com?product=XYZ"
                },
                "store_status": {
                  "type": "string",
                  "enum": [
                    "open",
                    "closed",
                    "temporarily_closed"
                  ],
                  "description": "Status of store",
                  "example": "closed"
                },
                "custom_dimension1": {
                  "type": "string",
                  "description": "Custom Field 1",
                  "example": "Class 3"
                },
                "custom_dimension2": {
                  "type": "string",
                  "description": "Custom Field 2",
                  "example": "Class 3"
                },
                "custom_dimension3": {
                  "type": "string",
                  "description": "Custom Field 3",
                  "example": "Class 3"
                },
                "custom_dimension4": {
                  "type": "string",
                  "description": "Custom Field 4",
                  "example": "Class 3"
                },
                "custom_dimension5": {
                  "type": "string",
                  "description": "Custom Field 5",
                  "example": "Class 3"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "organisation_name"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "organisation_name": "Web Sales",
                "street_address": "Mannerheimintie 1",
                "city": "Helsinki",
                "post_code": "00100",
                "state": "Southern Finland",
                "country": "Finland",
                "area": "South",
                "latitude": 60.184014,
                "longitude": 24.960046,
                "channel": "Concession",
                "organisation_type": "Outlet",
                "organisation_group": "A",
                "floor_area": 123.5,
                "no_customer_seats": 150,
                "google_location_url": "https://www.google.com/maps/reviews?data=XYZ",
                "image_url": "http://example.com?product=XYZ",
                "store_status": "closed",
                "custom_dimension1": "Class 3",
                "custom_dimension2": "Class 3",
                "custom_dimension3": "Class 3",
                "custom_dimension4": "Class 3",
                "custom_dimension5": "Class 3",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "organisation_name": "Web Sales",
                "street_address": "Mannerheimintie 1",
                "city": "Helsinki",
                "post_code": "00100",
                "state": "Southern Finland",
                "country": "Finland",
                "area": "South",
                "latitude": 60.184014,
                "longitude": 24.960046,
                "channel": "Concession",
                "organisation_type": "Outlet",
                "organisation_group": "A",
                "floor_area": 123.5,
                "no_customer_seats": 150,
                "google_location_url": "https://www.google.com/maps/reviews?data=XYZ",
                "image_url": "http://example.com?product=XYZ",
                "store_status": "closed",
                "custom_dimension1": "Class 3",
                "custom_dimension2": "Class 3",
                "custom_dimension3": "Class 3",
                "custom_dimension4": "Class 3",
                "custom_dimension5": "Class 3",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "OrganisationUnitUploadPayloadCsv": {
        "type": "string",
        "description": "Organisations data in CSV format.",
        "example": "organisation_id;organisation_name;street_address;city;post_code;state;country;area;channel;store_type\n540; Web Sales; Mannerheimintie 1; Helsinki;00100; Southern Finland; Finland; South; Concession;Outlet\n"
      },
      "DepartmentUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Department"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "123"
                },
                "name": {
                  "type": "string",
                  "description": "Human readable name for the deparment",
                  "example": "Women's clothing"
                },
                "floor_area": {
                  "type": "number",
                  "description": "Floor area of deparment in square meters",
                  "example": 20
                },
                "organisation_id": {
                  "type": "string",
                  "description": "ID of attached organisation",
                  "example": "234"
                },
                "no_customer_seats": {
                  "type": "number",
                  "description": "Number of customer seats available",
                  "example": 50
                },
                "custom_dimension1": {
                  "type": "string",
                  "description": "Custom Field 1",
                  "example": "Class 3"
                },
                "custom_dimension2": {
                  "type": "string",
                  "description": "Custom Field 2",
                  "example": "New"
                },
                "custom_dimension3": {
                  "type": "string",
                  "description": "Custom Field 3",
                  "example": "Old"
                },
                "custom_dimension4": {
                  "type": "string",
                  "description": "Custom Field 4",
                  "example": "New"
                },
                "custom_dimension5": {
                  "type": "string",
                  "description": "Custom Field 5",
                  "example": "New"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "department_id",
                "name"
              ],
              "additionalProperties": false,
              "example": {
                "department_id": "123",
                "name": "Women's clothing",
                "floor_area": 20,
                "organisation_id": "234",
                "no_customer_seats": 50,
                "custom_dimension1": "Class 3",
                "custom_dimension2": "New",
                "custom_dimension3": "Old",
                "custom_dimension4": "New",
                "custom_dimension5": "New",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "department_id": "123",
                "name": "Women's clothing",
                "floor_area": 20,
                "organisation_id": "234",
                "no_customer_seats": 50,
                "custom_dimension1": "Class 3",
                "custom_dimension2": "New",
                "custom_dimension3": "Old",
                "custom_dimension4": "New",
                "custom_dimension5": "New",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "DepartmentUploadPayloadCsv": {
        "type": "string",
        "description": "Departments data in CSV format.",
        "example": "department_id;name;floor_area;organisation_id\n123;Women's clothing;20;234\n"
      },
      "SalesPersonUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesPerson"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "salesperson_name": {
                  "type": "string",
                  "description": "Sales person name",
                  "example": "John Smith"
                },
                "salesperson_email": {
                  "type": "string",
                  "description": "Sales person email",
                  "example": "john.smith@store.store"
                },
                "salesperson_phone": {
                  "type": "string",
                  "description": "Sales person phone number",
                  "example": "+35811111111"
                },
                "employee_id": {
                  "type": "string",
                  "description": "Employee id",
                  "example": "353"
                },
                "employment_start": {
                  "type": "string",
                  "description": "Employment start date",
                  "example": "2020-01-01"
                },
                "employment_end": {
                  "type": "string",
                  "description": "Employment end date",
                  "example": "2020-05-31"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "Project worker"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "Project worker"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "Project worker"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "Project worker"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "Project worker"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "salesperson_id"
              ],
              "additionalProperties": false,
              "example": {
                "salesperson_id": "5402101",
                "salesperson_name": "John Smith",
                "salesperson_email": "john.smith@store.store",
                "salesperson_phone": "+35811111111",
                "employee_id": "353",
                "employment_start": "2020-01-01",
                "employment_end": "2020-05-31",
                "custom_field_1": "Project worker",
                "custom_field_2": "Project worker",
                "custom_field_3": "Project worker",
                "custom_field_4": "Project worker",
                "custom_field_5": "Project worker",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "salesperson_id": "5402101",
                "salesperson_name": "John Smith",
                "salesperson_email": "john.smith@store.store",
                "salesperson_phone": "+35811111111",
                "employee_id": "353",
                "employment_start": "2020-01-01",
                "employment_end": "2020-05-31",
                "custom_field_1": "Project worker",
                "custom_field_2": "Project worker",
                "custom_field_3": "Project worker",
                "custom_field_4": "Project worker",
                "custom_field_5": "Project worker",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesPersonUploadPayloadCsv": {
        "type": "string",
        "description": "Sales persons data in CSV format.",
        "example": "salesperson_id;salesperson_name;salesperson_email;salesperson_phone;employment_start;employment_end;custom_field_1\n5402101;John Smith;john.smith@store.store;+35811111111;2020-01-01;2020-05-31;Project worker\n"
      },
      "CashRegisterUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/CashRegister"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "register_id": {
                  "type": "string",
                  "description": "Register ID",
                  "example": "123-1"
                },
                "register_name": {
                  "type": "string",
                  "description": "Register name",
                  "example": "Kiosk 1"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / store this register belongs to",
                  "example": "540"
                },
                "register_type": {
                  "type": "string",
                  "description": "Register type",
                  "example": "Kiosk"
                },
                "register_group": {
                  "type": "string",
                  "description": "Register group",
                  "example": "Self service"
                },
                "custom_dimension1": {
                  "type": "string",
                  "description": "Custom Field 1",
                  "example": "Class 3"
                },
                "custom_dimension2": {
                  "type": "string",
                  "description": "Custom Field 2",
                  "example": "Class 3"
                },
                "custom_dimension3": {
                  "type": "string",
                  "description": "Custom Field 3",
                  "example": "Class 3"
                },
                "custom_dimension4": {
                  "type": "string",
                  "description": "Custom Field 4",
                  "example": "Class 3"
                },
                "custom_dimension5": {
                  "type": "string",
                  "description": "Custom Field 5",
                  "example": "Class 3"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "register_id",
                "register_name"
              ],
              "additionalProperties": false,
              "example": {
                "register_id": "123-1",
                "register_name": "Kiosk 1",
                "organisation_id": "540",
                "register_type": "Kiosk",
                "register_group": "Self service",
                "custom_dimension1": "Class 3",
                "custom_dimension2": "Class 3",
                "custom_dimension3": "Class 3",
                "custom_dimension4": "Class 3",
                "custom_dimension5": "Class 3",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "register_id": "123-1",
                "register_name": "Kiosk 1",
                "organisation_id": "540",
                "register_type": "Kiosk",
                "register_group": "Self service",
                "custom_dimension1": "Class 3",
                "custom_dimension2": "Class 3",
                "custom_dimension3": "Class 3",
                "custom_dimension4": "Class 3",
                "custom_dimension5": "Class 3",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CashRegisterUploadPayloadCsv": {
        "type": "string",
        "description": "Cash registers data in CSV format.",
        "example": "register_id;register_name;register_type;register_group;custom_field_1\n123-1;Kiosk 1;Kiosk;Self service;My Pos 1\n"
      },
      "OpeningHourUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/OpeningHour"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID. If omitted entry is treated as company default hours.",
                  "example": "540"
                },
                "start_date": {
                  "type": "string",
                  "description": "Start date of opening hour season (yyyy-mm-dd)",
                  "example": "2024-01-01"
                },
                "end_date": {
                  "type": "string",
                  "description": "End date of opening hour season (yyyy-mm-dd)",
                  "example": "2025-01-01"
                },
                "weekday": {
                  "type": "number",
                  "description": "Weekday as integer (1 = Monday, 7 = Sunday)",
                  "example": 1
                },
                "open_start": {
                  "type": "string",
                  "description": "Open start time (hh:mm:ss)",
                  "example": "08:00:00"
                },
                "open_end": {
                  "type": "string",
                  "description": "Open end time (hh:mm:ss)",
                  "example": "15:00:00"
                },
                "special_period": {
                  "type": "boolean",
                  "description": "Is this a special opening period",
                  "example": false
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "start_date",
                "weekday",
                "open_start",
                "open_end"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "start_date": "2024-01-01",
                "end_date": "2025-01-01",
                "weekday": 1,
                "open_start": "08:00:00",
                "open_end": "15:00:00",
                "special_period": false,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "start_date": "2024-01-01",
                "end_date": "2025-01-01",
                "weekday": 1,
                "open_start": "08:00:00",
                "open_end": "15:00:00",
                "special_period": false,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "OpeningHourUploadPayloadCsv": {
        "type": "string",
        "description": "Store open hours data in CSV format.",
        "example": "organisation_id;start_date;end_date;weekday;open_start;open_end\nORG1;2025-01-01;2025-12-31;1;08:00:00;18:00:00\n"
      },
      "CounterUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Counter"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "counter_id": {
                  "type": "string",
                  "description": "Counter ID",
                  "example": "5"
                },
                "counter_name": {
                  "type": "string",
                  "description": "Counter name",
                  "example": "Front door 1"
                },
                "folder_id: front_door_1": {
                  "type": "string",
                  "description": "Name of identification folder",
                  "example": ""
                },
                "serial": {
                  "type": "string",
                  "description": "Camera serial number",
                  "example": "ABCDE12345"
                },
                "registration_code": {
                  "type": "string",
                  "description": "Camera registration code",
                  "example": "A1B2C3D4E5"
                },
                "disabled": {
                  "type": "boolean",
                  "description": "True if the counter is disabled (i.e. is set to not send data)",
                  "example": false
                },
                "is_queue": {
                  "type": "boolean",
                  "description": "True if the counter is a queue counter",
                  "example": false
                },
                "on_store_perimeter": {
                  "type": "boolean",
                  "description": "True, if this a store perimeter camera",
                  "example": true
                },
                "organisation_id: my_organisation_id": {
                  "type": "string",
                  "description": "Id of the store/organisation where the camera is located",
                  "example": ""
                },
                "department_id: my_department_id": {
                  "type": "string",
                  "description": "Id of the department where the camera is located",
                  "example": ""
                },
                "department_reversed_id": {
                  "type": "string",
                  "description": "Secondary department id where in and out counts are reversed.",
                  "example": "reverse_id"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "counter_id",
                "counter_name",
                "folder_id: front_door_1",
                "disabled"
              ],
              "additionalProperties": false,
              "example": {
                "counter_id": "5",
                "counter_name": "Front door 1",
                "folder_id: front_door_1": "",
                "serial": "ABCDE12345",
                "registration_code": "A1B2C3D4E5",
                "disabled": false,
                "is_queue": false,
                "on_store_perimeter": true,
                "department_reversed_id": "reverse_id",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "counter_id": "5",
                "counter_name": "Front door 1",
                "folder_id: front_door_1": "",
                "serial": "ABCDE12345",
                "registration_code": "A1B2C3D4E5",
                "disabled": false,
                "is_queue": false,
                "on_store_perimeter": true,
                "department_reversed_id": "reverse_id",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CounterUploadPayloadCsv": {
        "type": "string",
        "description": "Counters data in CSV format.",
        "example": "counter_id;counter_name;department_id;disabled;folder_id;is_queue;last_update_time;on_store_perimeter;organisation_id;registration_code;serial;time_zone;first_connected_date;last_connected_date\nmy_counter;My counter name;my_department_id;false;my_folder_id;false;2023-06-20 11:15:00;true;my_organisation_id;A1B2C3D4E5;ABCDE12345;Europe/Helsinki;2022-11-20 15:04:37;2023-10-21 16:14:07\n"
      },
      "AccountUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Account"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account_id": {
                  "type": "string",
                  "description": "Account ID",
                  "example": "1150"
                },
                "account_name": {
                  "type": "string",
                  "description": "Account name",
                  "example": "Employee Salaries"
                },
                "account_type": {
                  "type": "string",
                  "description": "Account type",
                  "example": "Salaries"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "account_id",
                "account_name"
              ],
              "additionalProperties": false,
              "example": {
                "account_id": "1150",
                "account_name": "Employee Salaries",
                "account_type": "Salaries",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "account_id": "1150",
                "account_name": "Employee Salaries",
                "account_type": "Salaries",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "AccountUploadPayloadCsv": {
        "type": "string",
        "description": "Accounts data in CSV format.",
        "example": "account_id;account_name;account_type;custom_field_1\n1015;Employee Salaries;Salaries;Cost Account\n"
      },
      "EventUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Event"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "event_id": {
                  "type": "string",
                  "description": "Event ID",
                  "example": "1150"
                },
                "event_name": {
                  "type": "string",
                  "description": "Event name",
                  "example": "Rock around the clock"
                },
                "event_type": {
                  "type": "string",
                  "description": "Event type",
                  "example": "Concert"
                },
                "venue_name": {
                  "type": "string",
                  "description": "Venue name",
                  "example": "Arena 1"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "event_id",
                "event_name"
              ],
              "additionalProperties": false,
              "example": {
                "event_id": "1150",
                "event_name": "Rock around the clock",
                "event_type": "Concert",
                "venue_name": "Arena 1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "event_id": "1150",
                "event_name": "Rock around the clock",
                "event_type": "Concert",
                "venue_name": "Arena 1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "EventUploadPayloadCsv": {
        "type": "string",
        "description": "Events data in CSV format.",
        "example": "event_id;event_name;event_type;custom_field_1\n101;Rock concert;Concert;Main Arena\n"
      },
      "CalendarUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Calendar"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "calendar_date": {
                  "type": "string",
                  "description": "Calendar date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "calendar_year": {
                  "type": "string",
                  "description": "Calendar year",
                  "example": "2016/2017"
                },
                "period_name": {
                  "type": "string",
                  "description": "Period name",
                  "example": "January"
                },
                "period_number": {
                  "type": "number",
                  "description": "Period number",
                  "example": 1
                },
                "week_number": {
                  "type": "number",
                  "description": "Week number",
                  "example": 1
                },
                "season": {
                  "type": "string",
                  "description": "Season name",
                  "example": "Spring 2016"
                },
                "season_label": {
                  "type": "string",
                  "description": "Season identifier",
                  "example": "Spring"
                },
                "lfl_date": {
                  "type": "string",
                  "description": "Comparable sales date year ago (yyyy-mm-dd)",
                  "example": "2014-12-30"
                },
                "bank_holiday_name": {
                  "type": "string",
                  "description": "Name of bank holiday if any",
                  "example": "New year Day"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "calendar_date"
              ],
              "additionalProperties": false,
              "example": {
                "calendar_date": "2016-01-01",
                "calendar_year": "2016/2017",
                "period_name": "January",
                "period_number": 1,
                "week_number": 1,
                "season": "Spring 2016",
                "season_label": "Spring",
                "lfl_date": "2014-12-30",
                "bank_holiday_name": "New year Day",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "calendar_date": "2016-01-01",
                "calendar_year": "2016/2017",
                "period_name": "January",
                "period_number": 1,
                "week_number": 1,
                "season": "Spring 2016",
                "season_label": "Spring",
                "lfl_date": "2014-12-30",
                "bank_holiday_name": "New year Day",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CalendarUploadPayloadCsv": {
        "type": "string",
        "description": "Calendar data in CSV format.",
        "example": "calendar_date;calendar_year;period_name;period_number;week_number;season;season_label;lfl_date;bank_holiday_name\n2018-01-01;2017/2018;January;1;1;Spring 2018;Spring;2016-12-30;New year day\n"
      },
      "CampaignUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Campaign"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "campaign_id": {
                  "type": "string",
                  "description": "Campaign ID",
                  "example": "6344"
                },
                "campaign_name": {
                  "type": "string",
                  "description": "Campaign name",
                  "example": "February 2016"
                },
                "campaign_type": {
                  "type": "string",
                  "description": "Campaign type",
                  "example": "Web"
                },
                "start_date": {
                  "type": "string",
                  "description": "Campaign Start Date (yyyy-mm-dd)",
                  "example": "2016-02-01"
                },
                "end_date": {
                  "type": "string",
                  "description": "Campaign End Date (yyyy-mm-dd)",
                  "example": "2016-02-29"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation ID",
                  "example": "540"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom Field 1",
                  "example": "New"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom Field 2",
                  "example": "New"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom Field 3",
                  "example": "New"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom Field 4",
                  "example": "New"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom Field 5",
                  "example": "New"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "campaign_id",
                "campaign_name"
              ],
              "additionalProperties": false,
              "example": {
                "campaign_id": "6344",
                "campaign_name": "February 2016",
                "campaign_type": "Web",
                "start_date": "2016-02-01",
                "end_date": "2016-02-29",
                "organisation_id": "540",
                "custom_field_1": "New",
                "custom_field_2": "New",
                "custom_field_3": "New",
                "custom_field_4": "New",
                "custom_field_5": "New",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "campaign_id": "6344",
                "campaign_name": "February 2016",
                "campaign_type": "Web",
                "start_date": "2016-02-01",
                "end_date": "2016-02-29",
                "organisation_id": "540",
                "custom_field_1": "New",
                "custom_field_2": "New",
                "custom_field_3": "New",
                "custom_field_4": "New",
                "custom_field_5": "New",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CampaignUploadPayloadCsv": {
        "type": "string",
        "description": "Campaigns data in CSV format.",
        "example": "campaign_id;campaign_name;start_date;end_date\n6344;February 2016;2016-02-01;2016-02-29\n"
      },
      "CampaignProductUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/CampaignProduct"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "campaign_id": {
                  "type": "string",
                  "description": "Campaign ID",
                  "example": "6453"
                },
                "category_id": {
                  "type": "string",
                  "description": "Associated Category ID",
                  "example": "My category ID"
                },
                "product_id": {
                  "type": "string",
                  "description": "Associated Product ID",
                  "example": "My product ID"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "campaign_id",
                "product_id"
              ],
              "additionalProperties": false,
              "example": {
                "campaign_id": "6453",
                "category_id": "My category ID",
                "product_id": "My product ID",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "campaign_id": "6453",
                "category_id": "My category ID",
                "product_id": "My product ID",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CampaignProductUploadPayloadCsv": {
        "type": "string",
        "description": "Campaign products data in CSV format.",
        "example": "campaign_id;category_id;product_id\nMy campaign ID;My category ID;My product ID\n"
      },
      "SalesCampaignUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesCampaign"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "ID for transaction this campaign attaches to",
                  "example": "T1234"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Line ID in a transaction this campaign attaches to",
                  "example": "1"
                },
                "campaign_id": {
                  "type": "string",
                  "description": "Campaign ID",
                  "example": "6344"
                },
                "campaign_type": {
                  "type": "string",
                  "description": "`Type (origin) of campaign record ('sales', 'salesorder', 'salesoffer')`",
                  "example": "sales"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "campaign_id"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "T1234",
                "line_item_id": "1",
                "campaign_id": "6344",
                "campaign_type": "sales",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "T1234",
                "line_item_id": "1",
                "campaign_id": "6344",
                "campaign_type": "sales",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesCampaignUploadPayloadCsv": {
        "type": "string",
        "description": "Campaign Sales data in CSV format.",
        "example": "transaction_id;line_item_id;campaign_id;campaign_type\nT6344;1;1233;sales\n"
      },
      "CurrencyRateUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/CurrencyRate"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source_currency": {
                  "type": "string",
                  "description": "Source currency as ISO 4217 currency code.",
                  "example": "EUR"
                },
                "target_currency": {
                  "type": "string",
                  "description": "Target currency as ISO 4217 currency code.",
                  "example": "GBP"
                },
                "valid_from": {
                  "type": "string",
                  "description": "First day when the exchange rate is valid",
                  "example": "2017-01-01"
                },
                "valid_to": {
                  "type": "string",
                  "description": "Last day when the exchange rate is valid",
                  "example": "2017-12-31"
                },
                "rate": {
                  "type": "number",
                  "description": "Exchange rate to from source to target currency",
                  "example": 0.89
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "source_currency",
                "target_currency",
                "valid_from",
                "valid_to",
                "rate"
              ],
              "additionalProperties": false,
              "example": {
                "source_currency": "EUR",
                "target_currency": "GBP",
                "valid_from": "2017-01-01",
                "valid_to": "2017-12-31",
                "rate": 0.89,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "source_currency": "EUR",
                "target_currency": "GBP",
                "valid_from": "2017-01-01",
                "valid_to": "2017-12-31",
                "rate": 0.89,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CurrencyRateUploadPayloadCsv": {
        "type": "string",
        "description": "Currency rates data in CSV format.",
        "example": "source_currency;target_currency;valid_from;valid_to;rate\nEUR;GBP;2017-01-01;2017-12-31;0.89\n"
      },
      "WorkshiftUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Workshift"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "shift_id": {
                  "type": "string",
                  "description": "Unique identifier for the workshift",
                  "example": "123"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation unit where shift will take place",
                  "example": "234"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Identifier of sales person / employee working. Required for punched shifts",
                  "example": "345"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "5401"
                },
                "scheduled": {
                  "type": "boolean",
                  "description": "Whether this is scheduled or punched shift, default is false",
                  "example": false
                },
                "productive": {
                  "type": "boolean",
                  "description": "Whether this is productive or administrative work, default is true",
                  "example": true
                },
                "active_work_time": {
                  "type": "boolean",
                  "description": "Whether this shift is calculated in active work time, default is true",
                  "example": true
                },
                "start_date": {
                  "type": "string",
                  "description": "Shift date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "start_time": {
                  "type": "string",
                  "description": "Shift starting time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "shift_type": {
                  "type": "string",
                  "description": "Type of the shift. Freeform, will be available as dimension in portal.",
                  "example": "Chef"
                },
                "salary_type": {
                  "type": "string",
                  "description": "Type of compensation for the shift.",
                  "example": "Evening compensation"
                },
                "staff_cost": {
                  "type": "number",
                  "description": "Cost associated with this shift",
                  "example": 500
                },
                "duration": {
                  "type": "number",
                  "description": "Duration of the shift in hours.",
                  "example": 8.15
                },
                "breaks_duration": {
                  "type": "number",
                  "description": "Total hours of breaks during this shift",
                  "example": 0.5
                },
                "breaks_cost": {
                  "type": "number",
                  "description": "Total salary cost associated for paid breaks during this shift",
                  "example": 40
                },
                "overtime_duration": {
                  "type": "number",
                  "description": "Total overtime hours during this shift",
                  "example": 2
                },
                "overtime_cost": {
                  "type": "number",
                  "description": "Total salary cost associated for overtime hours",
                  "example": 120
                },
                "absence_code": {
                  "type": "string",
                  "description": "Code for the absense if this entry describes absence.",
                  "example": "BREAK"
                },
                "currency": {
                  "type": "string",
                  "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "shift_id",
                "organisation_id",
                "start_date",
                "start_time"
              ],
              "oneOf": [
                {
                  "properties": {
                    "duration": {
                      "type": "number",
                      "description": "Duration of the shift in hours.",
                      "example": 8.15
                    }
                  },
                  "required": [
                    "duration"
                  ]
                },
                {
                  "properties": {
                    "end_date": {
                      "type": "string",
                      "description": "Shift ending date (yyyy-mm-dd)",
                      "example": "2025-01-01"
                    },
                    "end_time": {
                      "type": "string",
                      "description": "Shift ending time (HH:mm:ss)",
                      "example": "2017-03-31"
                    }
                  },
                  "required": [
                    "end_date",
                    "end_time"
                  ]
                }
              ],
              "additionalProperties": false,
              "example": {
                "shift_id": "123",
                "organisation_id": "234",
                "salesperson_id": "345",
                "department_id": "5401",
                "scheduled": false,
                "productive": true,
                "active_work_time": true,
                "start_date": "2016-01-01",
                "start_time": "15:00:00",
                "duration": 8.15,
                "shift_type": "Chef",
                "salary_type": "Evening compensation",
                "staff_cost": 500,
                "breaks_duration": 0.5,
                "breaks_cost": 40,
                "overtime_duration": 2,
                "overtime_cost": 120,
                "absence_code": "BREAK",
                "currency": "EUR",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "shift_id": "123",
                "organisation_id": "234",
                "salesperson_id": "345",
                "department_id": "5401",
                "scheduled": false,
                "productive": true,
                "active_work_time": true,
                "start_date": "2016-01-01",
                "start_time": "15:00:00",
                "duration": 8.15,
                "shift_type": "Chef",
                "salary_type": "Evening compensation",
                "staff_cost": 500,
                "breaks_duration": 0.5,
                "breaks_cost": 40,
                "overtime_duration": 2,
                "overtime_cost": 120,
                "absence_code": "BREAK",
                "currency": "EUR",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "WorkshiftUploadPayloadCsv": {
        "type": "string",
        "description": "Work shifts data in CSV format.",
        "example": "shift_id;organisation_id;salesperson_id;start_date;time;duration;\n123;234;345;2016-01-01;\"15:00:00\";8\n"
      },
      "EmployeeHourUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/EmployeeHour"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "54021"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "employee_type": {
                  "type": "string",
                  "description": "Employee Type",
                  "example": "Permie"
                },
                "employeehours_id": {
                  "type": "string",
                  "description": "Optional identifier for the entry",
                  "example": "4244"
                },
                "absence_code": {
                  "type": "string",
                  "description": "Code for the absense if this entry describes absence.",
                  "example": "BREAK"
                },
                "date": {
                  "type": "string",
                  "description": "Date of entry (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "time": {
                  "type": "string",
                  "description": "Time of entry (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "scheduled": {
                  "type": "boolean",
                  "description": "Whether this is scheduled or punched shift, default is false",
                  "example": false
                },
                "productive": {
                  "type": "boolean",
                  "description": "Whether this is productive or administrative work, default is true",
                  "example": true
                },
                "hours": {
                  "type": "number",
                  "description": "Number of hours to record for this specific time",
                  "example": 8
                },
                "staff_cost": {
                  "type": "number",
                  "description": "Salary cost associated with this hour",
                  "example": 500
                },
                "breaks": {
                  "type": "number",
                  "description": "Total hours of breaks",
                  "example": 0.5
                },
                "breaks_cost": {
                  "type": "number",
                  "description": "Total salary cost associated for paid breaks",
                  "example": 40
                },
                "currency": {
                  "type": "string",
                  "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "date",
                "time",
                "hours"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "department_id": "54021",
                "salesperson_id": "5402101",
                "employee_type": "Permie",
                "employeehours_id": "4244",
                "absence_code": "BREAK",
                "date": "2016-01-01",
                "time": "15:00:00",
                "scheduled": false,
                "productive": true,
                "hours": 8,
                "staff_cost": 500,
                "breaks": 0.5,
                "breaks_cost": 40,
                "currency": "EUR",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "department_id": "54021",
                "salesperson_id": "5402101",
                "employee_type": "Permie",
                "employeehours_id": "4244",
                "absence_code": "BREAK",
                "date": "2016-01-01",
                "time": "15:00:00",
                "scheduled": false,
                "productive": true,
                "hours": 8,
                "staff_cost": 500,
                "breaks": 0.5,
                "breaks_cost": 40,
                "currency": "EUR",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "EmployeeHourUploadPayloadCsv": {
        "type": "string",
        "description": "Employee hour entries data in CSV format.",
        "example": "organisation_id;date;time;hours;salesperson_id;employee_type;employeehours_id\n540;2016-01-01;15:00:00;8;5402101;Permie;4244\n"
      },
      "StaffCostUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/StaffCost"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "54021"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "start_date": {
                  "type": "string",
                  "description": "Start date of entry (yyyy-mm-dd)",
                  "example": "2024-01-01"
                },
                "staff_cost": {
                  "type": "number",
                  "description": "Hourly salary cost",
                  "example": 15
                },
                "currency": {
                  "type": "string",
                  "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "start_date",
                "staff_cost"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "department_id": "54021",
                "salesperson_id": "5402101",
                "start_date": "2024-01-01",
                "staff_cost": 15,
                "currency": "EUR",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "department_id": "54021",
                "salesperson_id": "5402101",
                "start_date": "2024-01-01",
                "staff_cost": 15,
                "currency": "EUR",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "StaffCostUploadPayloadCsv": {
        "type": "string",
        "description": "Hourly staff costs data in CSV format.",
        "example": "organisation_id;start_date;staff_cost;currency\n540;2024-01-01;12.50;EUR\n"
      },
      "InventorySnapshotUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/InventorySnapshot"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID",
                  "example": "540"
                },
                "snapshot_date": {
                  "type": "string",
                  "description": "Date of snapshot (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "snapshot_time": {
                  "type": "string",
                  "description": "Time of snapshot (HH:mm:ss). Needed if inter-day inventory saldos are tracked.",
                  "example": "15:00:00"
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "My product ID"
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "quantity": {
                  "type": "number",
                  "description": "On hand quantity in inventory",
                  "example": 100
                },
                "available_quantity": {
                  "type": "number",
                  "description": "Available quantity in inventory (after pending/reserved orders)",
                  "example": 90
                },
                "reorder_point": {
                  "type": "number",
                  "description": "Quantity threshold for this item to order more into inventory",
                  "example": 5
                },
                "max_reorder_quantity": {
                  "type": "number",
                  "description": "Max quantity threshold for this item after reordering",
                  "example": 10
                },
                "unit_purchase_price": {
                  "type": "number",
                  "description": "Unit purchase price",
                  "example": 12.4
                },
                "unit_purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Unit purchase price without tax",
                  "example": 10
                },
                "unit_sales_price": {
                  "type": "number",
                  "description": "Unit sales price",
                  "example": 22.4
                },
                "unit_sales_price_wo_vat": {
                  "type": "number",
                  "description": "Unit sales price without tax",
                  "example": 20
                },
                "currency": {
                  "type": "string",
                  "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "snapshot_date",
                "product_id",
                "quantity"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "snapshot_date": "2016-01-01",
                "snapshot_time": "15:00:00",
                "product_id": "My product ID",
                "supplier_id": "221",
                "quantity": 100,
                "available_quantity": 90,
                "reorder_point": 5,
                "max_reorder_quantity": 10,
                "unit_purchase_price": 12.4,
                "unit_purchase_price_wo_vat": 10,
                "unit_sales_price": 22.4,
                "unit_sales_price_wo_vat": 20,
                "currency": "EUR",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "snapshot_date": "2016-01-01",
                "snapshot_time": "15:00:00",
                "product_id": "My product ID",
                "supplier_id": "221",
                "quantity": 100,
                "available_quantity": 90,
                "reorder_point": 5,
                "max_reorder_quantity": 10,
                "unit_purchase_price": 12.4,
                "unit_purchase_price_wo_vat": 10,
                "unit_sales_price": 22.4,
                "unit_sales_price_wo_vat": 20,
                "currency": "EUR",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "InventorySnapshotUploadPayloadCsv": {
        "type": "string",
        "description": "Inventory snapshots data in CSV format.",
        "example": "organisation_id;snapshot_date;snapshot_time;product_id;quantity;unit_purchase_price;unit_purchase_price_wo_vat;currency\n540;2016-01-01;10:00:00;My product ID;100;12.40;10.00;EUR\n"
      },
      "InventoryTransactionUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/InventoryTransaction"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "54011"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5401"
                },
                "operator_id": {
                  "type": "string",
                  "description": "Operator ID",
                  "example": "5402"
                },
                "movement_date": {
                  "type": "string",
                  "description": "Date of transaction (yyyy-mm-dd)",
                  "example": "2016-02-01"
                },
                "movement_time": {
                  "type": "string",
                  "description": "Time of transaction (HH:mm:ss).",
                  "example": "15:00:00"
                },
                "delivered_date": {
                  "type": "string",
                  "description": "Date of transaction completion (yyyy-mm-dd)",
                  "example": "2016-02-02"
                },
                "delivered_time": {
                  "type": "string",
                  "description": "Time of transaction completion (HH:mm:ss).",
                  "example": "15:00:00"
                },
                "product_id": {
                  "type": "string",
                  "description": "1 (string, required) - Product ID",
                  "example": "123"
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "123"
                },
                "quantity": {
                  "type": "number",
                  "description": "Quantity moved from/to inventory",
                  "example": 100
                },
                "delivered_quantity": {
                  "type": "number",
                  "description": "Final quantity moved from/to inventory after completion.",
                  "example": 90
                },
                "expected_quantity": {
                  "type": "number",
                  "description": "Quantity expected in inventory (for stock takes).",
                  "example": 110
                },
                "movement_type": {
                  "type": "string",
                  "description": "Movement type",
                  "enum": [
                    "purchase",
                    "waste",
                    "transfer",
                    "stock_take",
                    "adjustment",
                    "sale",
                    "internal"
                  ],
                  "x-enumDescriptions": {
                    "purchase": "Products have been purchased to inventory",
                    "waste": "Products have been removed from inventory as waste",
                    "transfer": "Products have been transferred to another inventory location",
                    "stock_take": "Stock take has been done to correct inventory counts",
                    "adjustment": "Adjustments have been done to individual products to correct inventory counts",
                    "sale": "Products have been sold from inventory",
                    "internal": "Products have been used internally from inventory"
                  },
                  "example": "waste"
                },
                "movement_status": {
                  "type": "number",
                  "description": "Movement status. 1=Open, 2=Complete, 3=Complete with variances, 4=Cancelled",
                  "example": 2
                },
                "movement_batch_id": {
                  "type": "string",
                  "description": "Optional identifier for batch this movement row is part of.",
                  "example": "june-stock-take"
                },
                "movement_batch_line_id": {
                  "type": "string",
                  "description": "Optional line id within the batch this movement row is part of.",
                  "example": "1"
                },
                "unit_purchase_price": {
                  "type": "number",
                  "description": "Unit purchase price",
                  "example": 12.4
                },
                "unit_purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Unit purchase price without tax",
                  "example": 10
                },
                "unit_retail_price": {
                  "type": "number",
                  "description": "Unit retail (sales) price",
                  "example": 12.4
                },
                "unit_retail_price_wo_vat": {
                  "type": "number",
                  "description": "Unit retail (sales) price without tax",
                  "example": 10
                },
                "reason_code": {
                  "type": "string",
                  "description": "Optional reason code or description for this transaction",
                  "example": "Theft"
                },
                "target_organisation_id": {
                  "type": "string",
                  "description": "Organisation / Store ID for target of inventory transfer. Mandatory for type transfer.",
                  "example": "510"
                },
                "currency": {
                  "type": "string",
                  "description": "Currency for the purchase price as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "purchase_order_id": {
                  "type": "string",
                  "description": "Order id for purchase order this purchase movement originates from.",
                  "example": "1234"
                },
                "purchase_order_line_id": {
                  "type": "string",
                  "description": "Order line item id in purchase order this purchase movement line item originates from.",
                  "example": "1"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Custom field 6",
                  "example": "EU only"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Custom field 7",
                  "example": "EU only"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Custom field 8",
                  "example": "EU only"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Custom field 9",
                  "example": "EU only"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Custom field 10",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "movement_date",
                "product_id",
                "quantity",
                "movement_type"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "department_id": "54011",
                "salesperson_id": "5401",
                "operator_id": "5402",
                "movement_date": "2016-02-01",
                "movement_time": "15:00:00",
                "delivered_date": "2016-02-02",
                "delivered_time": "15:00:00",
                "product_id": "123",
                "supplier_id": "221",
                "parent_product_id": "123",
                "quantity": 100,
                "delivered_quantity": 90,
                "expected_quantity": 110,
                "movement_type": "waste",
                "movement_status": 2,
                "movement_batch_id": "june-stock-take",
                "movement_batch_line_id": "1",
                "unit_purchase_price": 12.4,
                "unit_purchase_price_wo_vat": 10,
                "unit_retail_price": 12.4,
                "unit_retail_price_wo_vat": 10,
                "reason_code": "Theft",
                "target_organisation_id": "510",
                "currency": "EUR",
                "purchase_order_id": "1234",
                "purchase_order_line_id": "1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "department_id": "54011",
                "salesperson_id": "5401",
                "operator_id": "5402",
                "movement_date": "2016-02-01",
                "movement_time": "15:00:00",
                "delivered_date": "2016-02-02",
                "delivered_time": "15:00:00",
                "product_id": "123",
                "supplier_id": "221",
                "parent_product_id": "123",
                "quantity": 100,
                "delivered_quantity": 90,
                "expected_quantity": 110,
                "movement_type": "waste",
                "movement_status": 2,
                "movement_batch_id": "june-stock-take",
                "movement_batch_line_id": "1",
                "unit_purchase_price": 12.4,
                "unit_purchase_price_wo_vat": 10,
                "unit_retail_price": 12.4,
                "unit_retail_price_wo_vat": 10,
                "reason_code": "Theft",
                "target_organisation_id": "510",
                "currency": "EUR",
                "purchase_order_id": "1234",
                "purchase_order_line_id": "1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "InventoryTransactionUploadPayloadCsv": {
        "type": "string",
        "description": "Inventory transactions data in CSV format.",
        "example": "organisation_id;movement_date;movement_time;movement_type;product_id;quantity;unit_purchase_price;unit_purchase_price_wo_vat;currency\n540;2016-01-01;10:00:00;waste;My product ID;100;12.40;10.00;EUR\n"
      },
      "CapacityUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Capacity"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation ID",
                  "example": "540"
                },
                "product_id": {
                  "type": "string",
                  "description": "A (string, required) - Product ID",
                  "example": "123"
                },
                "event_id": {
                  "type": "string",
                  "description": "Event ID",
                  "example": "221"
                },
                "capacity_date": {
                  "type": "string",
                  "description": "Date of capacity (yyyy-mm-dd)",
                  "example": "2020-02-01"
                },
                "capacity_time": {
                  "type": "string",
                  "description": "Time of capacity (HH:mm:ss).",
                  "example": "15:00:00"
                },
                "capacity_type": {
                  "type": "string",
                  "description": "Capacity type. Must be either event, ticket or room.",
                  "example": "event"
                },
                "max_capacity": {
                  "type": "number",
                  "description": "Maximum available capacity for this item.",
                  "example": 100
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "product_id",
                "capacity_date",
                "capacity_type",
                "max_capacity"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "product_id": "123",
                "event_id": "221",
                "capacity_date": "2020-02-01",
                "capacity_time": "15:00:00",
                "capacity_type": "event",
                "max_capacity": 100,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "product_id": "123",
                "event_id": "221",
                "capacity_date": "2020-02-01",
                "capacity_time": "15:00:00",
                "capacity_type": "event",
                "max_capacity": 100,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CapacityUploadPayloadCsv": {
        "type": "string",
        "description": "Capacity data in CSV format.",
        "example": "organisation_id;capacity_date;capacity_time;product_id;event_id;max_capacity\n540;2021-02-01;10:00:00;123-X;567;100\n"
      },
      "FlatHierarchyUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/FlatHierarchy"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "hierarchy_key": {
                  "type": "string",
                  "enum": [
                    "product",
                    "model",
                    "product_group",
                    "organisation",
                    "customer",
                    "channel",
                    "area",
                    "account"
                  ],
                  "description": "Type of hierarchy that is uploaded",
                  "example": "product"
                },
                "entity_id": {
                  "type": "string",
                  "description": "Identifier for the lowest level entity in the hierarchy",
                  "example": "XYZ"
                },
                "level1": {
                  "type": "string",
                  "description": "Name of root category level",
                  "example": "Clothing"
                },
                "level2": {
                  "type": "string",
                  "description": "Name of category level 2",
                  "example": "Children's clothing"
                },
                "level3": {
                  "type": "string",
                  "description": "Name of category level 3",
                  "example": "Children's outdoor clothing"
                },
                "level4": {
                  "type": "string",
                  "description": "Name of category level 4",
                  "example": "Children's outdoor headwear"
                },
                "level5": {
                  "type": "string",
                  "description": "Name of category level 5",
                  "example": "Children's caps"
                },
                "level6": {
                  "type": "string",
                  "description": "Name of category level 6",
                  "example": "Children's small caps"
                },
                "level7": {
                  "type": "string",
                  "description": "Name of category level 7",
                  "example": "Children's themed caps"
                },
                "level8": {
                  "type": "string",
                  "description": "Name of category level 8",
                  "example": "Children's disney caps"
                },
                "level9": {
                  "type": "string",
                  "description": "Name of category level 9",
                  "example": "Children's mickey caps"
                },
                "level10": {
                  "type": "string",
                  "description": "Name of category level 10",
                  "example": "Children's ..."
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "hierarchy_key",
                "entity_id",
                "level1"
              ],
              "additionalProperties": false,
              "example": {
                "hierarchy_key": "product",
                "entity_id": "XYZ",
                "level1": "Clothing",
                "level2": "Children's clothing",
                "level3": "Children's outdoor clothing",
                "level4": "Children's outdoor headwear",
                "level5": "Children's caps",
                "level6": "Children's small caps",
                "level7": "Children's themed caps",
                "level8": "Children's disney caps",
                "level9": "Children's mickey caps",
                "level10": "Children's ...",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "hierarchy_key": "product",
                "entity_id": "XYZ",
                "level1": "Clothing",
                "level2": "Children's clothing",
                "level3": "Children's outdoor clothing",
                "level4": "Children's outdoor headwear",
                "level5": "Children's caps",
                "level6": "Children's small caps",
                "level7": "Children's themed caps",
                "level8": "Children's disney caps",
                "level9": "Children's mickey caps",
                "level10": "Children's ...",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "FlatHierarchyUploadPayloadCsv": {
        "type": "string",
        "description": "Flat hierarchies data in CSV format.",
        "example": "hierarchy_key;entity_id;level1;level2;level3;level4;level5\nproduct;XYZ;Clothing;Children's clothing;Children's outdoor clothing;Children's outdoor headwear;Children's caps\n"
      },
      "CategoryUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Category"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "category_id": {
                  "type": "string",
                  "description": "Category ID",
                  "example": "23"
                },
                "category_name": {
                  "type": "string",
                  "description": "Category Name",
                  "example": "Men's clothing"
                },
                "parent_id": {
                  "type": "string",
                  "description": "ID of the parent category, 0 for top level category",
                  "example": "0"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "category_id",
                "category_name"
              ],
              "additionalProperties": false,
              "example": {
                "category_id": "23",
                "category_name": "Men's clothing",
                "parent_id": "0",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "category_id": "23",
                "category_name": "Men's clothing",
                "parent_id": "0",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "CategoryUploadPayloadCsv": {
        "type": "string",
        "description": "Product hierarchies data in CSV format.",
        "example": "category_id;category_name;parent_id\n23;Men's clothing;0\n"
      },
      "RebateCodeUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/RebateCode"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rebate_code_id": {
                  "type": "string",
                  "description": "Rebate Code ID",
                  "example": "3313V"
                },
                "rebate_code_name": {
                  "type": "string",
                  "description": "Description of the reason",
                  "example": "Model product"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "rebate_code_id",
                "rebate_code_name"
              ],
              "additionalProperties": false,
              "example": {
                "rebate_code_id": "3313V",
                "rebate_code_name": "Model product",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "rebate_code_id": "3313V",
                "rebate_code_name": "Model product",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "RebateCodeUploadPayloadCsv": {
        "type": "string",
        "description": "Rebate codes data in CSV format.",
        "example": "rebate_code_id;rebate_code_name\n3313V; Model product\n"
      },
      "PaymentTypeUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/PaymentType"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "payment_type_id": {
                  "type": "string",
                  "description": "Payment Type ID",
                  "example": "1"
                },
                "payment_type": {
                  "type": "string",
                  "description": "Payment type name",
                  "example": "credit card"
                },
                "payment_group": {
                  "type": "string",
                  "description": "Payment group",
                  "example": "Store"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom Field 1",
                  "example": "App"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom Field 2",
                  "example": "App"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom Field 3",
                  "example": "App"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom Field 4",
                  "example": "App"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom Field 5",
                  "example": "App"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "payment_type_id",
                "payment_type"
              ],
              "additionalProperties": false,
              "example": {
                "payment_type_id": "1",
                "payment_type": "credit card",
                "payment_group": "Store",
                "custom_field_1": "App",
                "custom_field_2": "App",
                "custom_field_3": "App",
                "custom_field_4": "App",
                "custom_field_5": "App",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "payment_type_id": "1",
                "payment_type": "credit card",
                "payment_group": "Store",
                "custom_field_1": "App",
                "custom_field_2": "App",
                "custom_field_3": "App",
                "custom_field_4": "App",
                "custom_field_5": "App",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "PaymentTypeUploadPayloadCsv": {
        "type": "string",
        "description": "Payment types data in CSV format.",
        "example": "payment_type_id;payment_type_name\nAPP; App payment\n"
      },
      "PurchaseOrdersUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/PurchaseOrders"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "Unique ID for the transaction",
                  "example": "er/232/f31"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Secondary transaction identifier",
                  "example": "1"
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation unit ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "54011"
                },
                "purchaser_id": {
                  "type": "string",
                  "description": "Purchaser ID",
                  "example": "5400"
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "123"
                },
                "order_date": {
                  "type": "string",
                  "description": "Order date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "order_time": {
                  "type": "string",
                  "description": "Order time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "ordered_quantity": {
                  "type": "number",
                  "description": "order quantity",
                  "example": 2
                },
                "delivery_date": {
                  "type": "string",
                  "description": "Delivery date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "delivery_time": {
                  "type": "string",
                  "description": "Delivery time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "delivered_quantity": {
                  "type": "number",
                  "description": "quantity that is delivered",
                  "example": 2
                },
                "arrival_date": {
                  "type": "string",
                  "description": "Arrival date (yyyy-mm-dd)",
                  "example": "2016-01-03"
                },
                "arrival_time": {
                  "type": "string",
                  "description": "Arrival time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "order_status": {
                  "type": "number",
                  "description": "Order status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled",
                  "example": 1
                },
                "order_type": {
                  "type": "string",
                  "description": "Order Type",
                  "example": "Express"
                },
                "purchase_price": {
                  "type": "number",
                  "description": "Total purchase price including tax",
                  "example": 5
                },
                "purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Total purchase price without tax",
                  "example": 4
                },
                "rebate": {
                  "type": "number",
                  "description": "Amount of rebate given including tax",
                  "example": 0
                },
                "rebate_wo_vat": {
                  "type": "number",
                  "description": "Amount of rebate given without tax",
                  "example": 0
                },
                "retail_value": {
                  "type": "number",
                  "description": "Total retail (sales) value including tax",
                  "example": 10
                },
                "retail_value_wo_vat": {
                  "type": "number",
                  "description": "Total retail (sales) value without tax",
                  "example": 8
                },
                "purchase_currency": {
                  "type": "string",
                  "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "sales_unit": {
                  "type": "string",
                  "description": "Sales unit",
                  "example": "KPL"
                },
                "cancelled": {
                  "type": "boolean",
                  "description": "cancelled. true=cancelled transaction false=not cancelled transaction",
                  "example": false
                },
                "cancel_id": {
                  "type": "string",
                  "description": "Transaction ID of cancelled receipt",
                  "example": "er/232/f2"
                },
                "gross_weight": {
                  "type": "number",
                  "description": "Gross weight of ordered products.",
                  "example": 0
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Custom field 6",
                  "example": "EU only"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Custom field 7",
                  "example": "EU only"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Custom field 8",
                  "example": "EU only"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Custom field 9",
                  "example": "EU only"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Custom field 10",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "product_id",
                "organisation_id",
                "order_date",
                "order_time",
                "ordered_quantity",
                "order_status",
                "cancelled"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "product_id": "XYZ",
                "organisation_id": "540",
                "department_id": "54011",
                "purchaser_id": "5400",
                "supplier_id": "221",
                "parent_product_id": "123",
                "order_date": "2016-01-01",
                "order_time": "15:00:00",
                "ordered_quantity": 2,
                "delivery_date": "2016-01-01",
                "delivery_time": "15:00:00",
                "delivered_quantity": 2,
                "arrival_date": "2016-01-03",
                "arrival_time": "15:00:00",
                "order_status": 1,
                "order_type": "Express",
                "purchase_price": 5,
                "purchase_price_wo_vat": 4,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "retail_value": 10,
                "retail_value_wo_vat": 8,
                "purchase_currency": "EUR",
                "sales_unit": "KPL",
                "cancelled": false,
                "cancel_id": "er/232/f2",
                "gross_weight": 0,
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "product_id": "XYZ",
                "organisation_id": "540",
                "department_id": "54011",
                "purchaser_id": "5400",
                "supplier_id": "221",
                "parent_product_id": "123",
                "order_date": "2016-01-01",
                "order_time": "15:00:00",
                "ordered_quantity": 2,
                "delivery_date": "2016-01-01",
                "delivery_time": "15:00:00",
                "delivered_quantity": 2,
                "arrival_date": "2016-01-03",
                "arrival_time": "15:00:00",
                "order_status": 1,
                "order_type": "Express",
                "purchase_price": 5,
                "purchase_price_wo_vat": 4,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "retail_value": 10,
                "retail_value_wo_vat": 8,
                "purchase_currency": "EUR",
                "sales_unit": "KPL",
                "cancelled": false,
                "cancel_id": "er/232/f2",
                "gross_weight": 0,
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "PurchaseOrdersUploadPayloadCsv": {
        "type": "string",
        "description": "Purchase orders data in CSV format.",
        "example": "transaction_id,line_item_id,product_id,organisation_id,supplier_id,order_date,order_time,ordered_quantity,delivery_date,delivery_time,delivered_quantity,order_status,purchase_price,purchase_price_wo_vat,purchase_currency,sales_unit,cancelled,cancel_id,gross_weight,custom_field_1,custom_field_2,custom_field_3,custom_field_4,custom_field_5\ner/232/f31; 1; 123; 1000; 12S; 2018-03-19; 15:00:00; 100; 2018-03-20; 15:00:00; 100.0000; 1; 1000.0000; 930.0000; EUR';; 0;; 120.0000; c1; c2; c3; c4; c5;\n"
      },
      "SalesOffersUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesOffers"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "Unique ID for the transaction",
                  "example": "er/232/f31"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Secondary transaction identifier",
                  "example": "1"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "product_quantity": {
                  "type": "number",
                  "description": "Sold quantity",
                  "example": 2
                },
                "product_unit_price": {
                  "type": "number",
                  "description": "Unit price for single product",
                  "example": 10
                },
                "sales_value": {
                  "type": "number",
                  "description": "Total sales amount including tax",
                  "example": 20
                },
                "sales_value_wo_vat": {
                  "type": "number",
                  "description": "Total sales amount without tax",
                  "example": 20
                },
                "rebate": {
                  "type": "number",
                  "description": "Amount of rebate given including tax",
                  "example": 0
                },
                "rebate_wo_vat": {
                  "type": "number",
                  "description": "Amount of rebate given without tax",
                  "example": 0
                },
                "sales_currency": {
                  "type": "string",
                  "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "payment_method": {
                  "type": "string",
                  "description": "Payment method",
                  "example": "Invoice 30"
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "123"
                },
                "purchase_price": {
                  "type": "number",
                  "description": "Total purchase price including tax",
                  "example": 5
                },
                "purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Total purchase price without tax",
                  "example": 5
                },
                "purchase_currency": {
                  "type": "string",
                  "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation unit ID",
                  "example": "540"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "offer_date": {
                  "type": "string",
                  "description": "Offer date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "offer_time": {
                  "type": "string",
                  "description": "Offer time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "valid_date": {
                  "type": "string",
                  "description": "Offer validity date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "valid_time": {
                  "type": "string",
                  "description": "Offer validity time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "offer_status": {
                  "type": "number",
                  "description": "Offer status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled",
                  "example": 1
                },
                "offer_type": {
                  "type": "string",
                  "description": "Offer type.",
                  "example": "wholesale"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Custom field 6",
                  "example": "EU only"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Custom field 7",
                  "example": "EU only"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Custom field 8",
                  "example": "EU only"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Custom field 9",
                  "example": "EU only"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Custom field 10",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "product_id",
                "product_quantity",
                "product_unit_price",
                "sales_value",
                "offer_date",
                "offer_time",
                "offer_status"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "customer_id": "32",
                "product_id": "XYZ",
                "product_quantity": 2,
                "product_unit_price": 10,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "sales_currency": "EUR",
                "payment_method": "Invoice 30",
                "supplier_id": "221",
                "parent_product_id": "123",
                "purchase_price": 5,
                "purchase_price_wo_vat": 5,
                "purchase_currency": "EUR",
                "organisation_id": "540",
                "salesperson_id": "5402101",
                "offer_date": "2016-01-01",
                "offer_time": "15:00:00",
                "valid_date": "2016-01-01",
                "valid_time": "15:00:00",
                "offer_status": 1,
                "offer_type": "wholesale",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "customer_id": "32",
                "product_id": "XYZ",
                "product_quantity": 2,
                "product_unit_price": 10,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "sales_currency": "EUR",
                "payment_method": "Invoice 30",
                "supplier_id": "221",
                "parent_product_id": "123",
                "purchase_price": 5,
                "purchase_price_wo_vat": 5,
                "purchase_currency": "EUR",
                "organisation_id": "540",
                "salesperson_id": "5402101",
                "offer_date": "2016-01-01",
                "offer_time": "15:00:00",
                "valid_date": "2016-01-01",
                "valid_time": "15:00:00",
                "offer_status": 1,
                "offer_type": "wholesale",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesOffersUploadPayloadCsv": {
        "type": "string",
        "description": "Sales offers data in CSV format.",
        "example": "transaction_id;line_item_id;customer_id;product_id;product_quantity;product_unit_price;sales_value;sales_value_wo_vat;rebate;rebate_wo_vat;sales_currency;payment_method;supplier_id;purchase_price;purchase_price_wo_vat;purchase_currency;organisation_id;salesperson_id;offer_date;offer_time;valid_date;valid_time;offer_status\ner/232/f31; 1; 32; XYZ; 2; 10; 20; 20; 0; 0; EUR; Invoice 30; ; 5; 5; EUR; 540; 5402101; 2016-01-01; 15:00:00; 2016-01-01; 15:00:00;\n"
      },
      "SalesOrdersUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesOrders"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "Unique ID for the transaction",
                  "example": "er/232/f31"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Secondary transaction identifier",
                  "example": "1"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "delivery_customer_id": {
                  "type": "string",
                  "description": "Delivery Customer ID for identified customer",
                  "example": "32"
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "product_quantity": {
                  "type": "number",
                  "description": "Sold quantity",
                  "example": 2
                },
                "delivered_quantity": {
                  "type": "number",
                  "description": "Delivered quantity",
                  "example": 1
                },
                "planned_quantity": {
                  "type": "number",
                  "description": "Planned quantity",
                  "example": 2
                },
                "product_unit_price": {
                  "type": "number",
                  "description": "Unit price for single product",
                  "example": 10
                },
                "sales_value": {
                  "type": "number",
                  "description": "Total sales amount including tax",
                  "example": 20
                },
                "sales_value_wo_vat": {
                  "type": "number",
                  "description": "Total sales amount without tax",
                  "example": 20
                },
                "rebate": {
                  "type": "number",
                  "description": "Amount of rebate given including tax",
                  "example": 0
                },
                "rebate_wo_vat": {
                  "type": "number",
                  "description": "Amount of rebate given without tax",
                  "example": 0
                },
                "rebate_code_id": {
                  "type": "string",
                  "description": "Rebate Code ID",
                  "example": "3313V"
                },
                "sales_currency": {
                  "type": "string",
                  "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "payment_method": {
                  "type": "string",
                  "description": "Payment method",
                  "example": "Invoice 30"
                },
                "tender_amount": {
                  "type": "number",
                  "description": "Amount paid with tender in 'payment method'.",
                  "example": 20
                },
                "deposit_amount": {
                  "type": "number",
                  "description": "Amount of deposit paid for this order item.",
                  "example": 10
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "123"
                },
                "purchase_price": {
                  "type": "number",
                  "description": "Total purchase price including tax",
                  "example": 5
                },
                "purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Total purchase price without tax",
                  "example": 5
                },
                "purchase_currency": {
                  "type": "string",
                  "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation unit ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "54011"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "cancel_id": {
                  "type": "string",
                  "description": "Transaction ID of cancelled receipt",
                  "example": "er/232/f2"
                },
                "delivery_date": {
                  "type": "string",
                  "description": "Delivery date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "delivery_time": {
                  "type": "string",
                  "description": "Delivery time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "order_date": {
                  "type": "string",
                  "description": "Order date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "order_time": {
                  "type": "string",
                  "description": "Order time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "invoice_date": {
                  "type": "string",
                  "description": "Invoice date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "invoice_time": {
                  "type": "string",
                  "description": "Invoice time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "arrival_date": {
                  "type": "string",
                  "description": "Arrival date (yyyy-mm-dd)",
                  "example": "2016-01-03"
                },
                "arrival_time": {
                  "type": "string",
                  "description": "Arrival time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "order_status": {
                  "type": "number",
                  "description": "Order status. 1=Open, 2=Reserved, 3=Invoiced, 4=Cancelled",
                  "example": 1
                },
                "order_type": {
                  "type": "string",
                  "description": "Order type.",
                  "example": "Wholesale"
                },
                "customer_order_number": {
                  "type": "string",
                  "description": "Customer internal order ID",
                  "example": "1234-5"
                },
                "sales_offer_id": {
                  "type": "string",
                  "description": "ID that refers to respective sales offer if applicable",
                  "example": "1234"
                },
                "sales_offer_line_id": {
                  "type": "string",
                  "description": "ID that refers to respective sales offer line if applicable",
                  "example": "1"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Custom field 6",
                  "example": "EU only"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Custom field 7",
                  "example": "EU only"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Custom field 8",
                  "example": "EU only"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Custom field 9",
                  "example": "EU only"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Custom field 10",
                  "example": "EU only"
                },
                "custom_field_11": {
                  "type": "string",
                  "description": "Custom field 11",
                  "example": "EU only"
                },
                "custom_field_12": {
                  "type": "string",
                  "description": "Custom field 12",
                  "example": "EU only"
                },
                "custom_field_13": {
                  "type": "string",
                  "description": "Custom field 13",
                  "example": "EU only"
                },
                "custom_field_14": {
                  "type": "string",
                  "description": "Custom field 14",
                  "example": "EU only"
                },
                "custom_field_15": {
                  "type": "string",
                  "description": "Custom field 15",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "product_id",
                "product_quantity",
                "product_unit_price",
                "sales_value",
                "order_date",
                "order_time",
                "order_status"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "customer_id": "32",
                "delivery_customer_id": "32",
                "product_id": "XYZ",
                "product_quantity": 2,
                "delivered_quantity": 1,
                "planned_quantity": 2,
                "product_unit_price": 10,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "rebate_code_id": "3313V",
                "sales_currency": "EUR",
                "payment_method": "Invoice 30",
                "tender_amount": 20,
                "deposit_amount": 10,
                "supplier_id": "221",
                "parent_product_id": "123",
                "purchase_price": 5,
                "purchase_price_wo_vat": 5,
                "purchase_currency": "EUR",
                "organisation_id": "540",
                "department_id": "54011",
                "salesperson_id": "5402101",
                "cancel_id": "er/232/f2",
                "delivery_date": "2016-01-01",
                "delivery_time": "15:00:00",
                "order_date": "2016-01-01",
                "order_time": "15:00:00",
                "invoice_date": "2016-01-01",
                "invoice_time": "15:00:00",
                "arrival_date": "2016-01-03",
                "arrival_time": "15:00:00",
                "order_status": 1,
                "order_type": "Wholesale",
                "customer_order_number": "1234-5",
                "sales_offer_id": "1234",
                "sales_offer_line_id": "1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_field_11": "EU only",
                "custom_field_12": "EU only",
                "custom_field_13": "EU only",
                "custom_field_14": "EU only",
                "custom_field_15": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "customer_id": "32",
                "delivery_customer_id": "32",
                "product_id": "XYZ",
                "product_quantity": 2,
                "delivered_quantity": 1,
                "planned_quantity": 2,
                "product_unit_price": 10,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "rebate": 0,
                "rebate_wo_vat": 0,
                "rebate_code_id": "3313V",
                "sales_currency": "EUR",
                "payment_method": "Invoice 30",
                "tender_amount": 20,
                "deposit_amount": 10,
                "supplier_id": "221",
                "parent_product_id": "123",
                "purchase_price": 5,
                "purchase_price_wo_vat": 5,
                "purchase_currency": "EUR",
                "organisation_id": "540",
                "department_id": "54011",
                "salesperson_id": "5402101",
                "cancel_id": "er/232/f2",
                "delivery_date": "2016-01-01",
                "delivery_time": "15:00:00",
                "order_date": "2016-01-01",
                "order_time": "15:00:00",
                "invoice_date": "2016-01-01",
                "invoice_time": "15:00:00",
                "arrival_date": "2016-01-03",
                "arrival_time": "15:00:00",
                "order_status": 1,
                "order_type": "Wholesale",
                "customer_order_number": "1234-5",
                "sales_offer_id": "1234",
                "sales_offer_line_id": "1",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_field_6": "EU only",
                "custom_field_7": "EU only",
                "custom_field_8": "EU only",
                "custom_field_9": "EU only",
                "custom_field_10": "EU only",
                "custom_field_11": "EU only",
                "custom_field_12": "EU only",
                "custom_field_13": "EU only",
                "custom_field_14": "EU only",
                "custom_field_15": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesOrdersUploadPayloadCsv": {
        "type": "string",
        "description": "Sales orders data in CSV format.",
        "example": "transaction_id;line_item_id;customer_id;product_id;product_quantity;product_unit_price;sales_value;sales_value_wo_vat;rebate;rebate_wo_vat;sales_currency;payment_method;supplier_id;purchase_price;purchase_price_wo_vat;purchase_currency;piece_good;organisation_id;salesperson_id;campaign_id;cancel_id;delivery_date;delivery_time;order_date;order_time;invoice_date;invoice_time;order_status;register_id\ner/232/f31; 1; 32; XYZ; 2; 10; 20; 20; 0; 0; EUR; Invoice 30; ; 5; 5; EUR; true; 540; 5402101; 6344; ; 2016-01-01; 15:00:00; 2016-01-01; 15:00:00; 2016-01-01; 15:00:00; 1;\n"
      },
      "SalesSummaryUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesSummary"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sales_date": {
                  "type": "string",
                  "description": "Sales date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "sales_time": {
                  "type": "string",
                  "description": "Sales time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation/Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "5401"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "sales_value": {
                  "type": "number",
                  "description": "Total sales amount including tax",
                  "example": 2000
                },
                "sales_value_wo_vat": {
                  "type": "number",
                  "description": "Total sales amount without tax",
                  "example": 1600
                },
                "sales_currency": {
                  "type": "string",
                  "description": "Sales currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "rebate": {
                  "type": "number",
                  "description": "Amount of rebate given including tax",
                  "example": 0
                },
                "rebate_wo_vat": {
                  "type": "number",
                  "description": "Amount of rebate given without tax",
                  "example": 0
                },
                "purchase_price": {
                  "type": "number",
                  "description": "Total purchase price including tax",
                  "example": 500
                },
                "purchase_price_wo_vat": {
                  "type": "number",
                  "description": "Total purchase price without tax",
                  "example": 400
                },
                "purchase_currency": {
                  "type": "string",
                  "description": "Purchase currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "product_quantity": {
                  "type": "number",
                  "description": "Sold quantity",
                  "example": 4
                },
                "number_of_transactions": {
                  "type": "number",
                  "description": "Number of receipts",
                  "example": 2
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "parent_product_id": {
                  "type": "string",
                  "description": "Parent Product ID",
                  "example": "123"
                },
                "campaign_id": {
                  "type": "string",
                  "description": "Campaign ID",
                  "example": "123"
                },
                "rebate_code_id": {
                  "type": "string",
                  "description": "Rebate Code ID",
                  "example": "3313V"
                },
                "cancelled": {
                  "type": "boolean",
                  "description": "cancelled. true=cancelled transaction false=not cancelled transaction. Default is false.",
                  "example": false
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "sales_date",
                "organisation_id"
              ],
              "additionalProperties": false,
              "example": {
                "sales_date": "2016-01-01",
                "sales_time": "15:00:00",
                "organisation_id": "540",
                "department_id": "5401",
                "salesperson_id": "5402101",
                "sales_value": 2000,
                "sales_value_wo_vat": 1600,
                "sales_currency": "EUR",
                "rebate": 0,
                "rebate_wo_vat": 0,
                "purchase_price": 500,
                "purchase_price_wo_vat": 400,
                "purchase_currency": "EUR",
                "product_quantity": 4,
                "number_of_transactions": 2,
                "product_id": "XYZ",
                "customer_id": "32",
                "supplier_id": "221",
                "parent_product_id": "123",
                "campaign_id": "123",
                "rebate_code_id": "3313V",
                "cancelled": false,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_field_6": "XYZ",
                "custom_field_7": "XYZ",
                "custom_field_8": "XYZ",
                "custom_field_9": "XYZ",
                "custom_field_10": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "sales_date": "2016-01-01",
                "sales_time": "15:00:00",
                "organisation_id": "540",
                "department_id": "5401",
                "salesperson_id": "5402101",
                "sales_value": 2000,
                "sales_value_wo_vat": 1600,
                "sales_currency": "EUR",
                "rebate": 0,
                "rebate_wo_vat": 0,
                "purchase_price": 500,
                "purchase_price_wo_vat": 400,
                "purchase_currency": "EUR",
                "product_quantity": 4,
                "number_of_transactions": 2,
                "product_id": "XYZ",
                "customer_id": "32",
                "supplier_id": "221",
                "parent_product_id": "123",
                "campaign_id": "123",
                "rebate_code_id": "3313V",
                "cancelled": false,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_field_6": "XYZ",
                "custom_field_7": "XYZ",
                "custom_field_8": "XYZ",
                "custom_field_9": "XYZ",
                "custom_field_10": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesSummaryUploadPayloadCsv": {
        "type": "string",
        "description": "Sales summary data in CSV format.",
        "example": "sales_date; sales_time; organisation_id; department_id; salesperson_id; product_quantity; number_of_transactions; sales_value; sales_value_wo_vat; sales_currency; rebate; rebate_wo_vat; purchase_price; purchase_price_wo_vat; purchase_currency\n2016-01-01 ; 15:00:00 ; 540;5401;540001;4;2;2150.1700.0; EUR ;0;0;1000.0;750.0; EUR\n"
      },
      "SalesPaymentUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/SalesPayment"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "Unique ID for the transaction. Should match with sales receipt transaction id where applicable.",
                  "example": "er/232/f31"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Transaction line item identifier",
                  "example": "1"
                },
                "sales_date": {
                  "type": "string",
                  "description": "Sales date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "sales_time": {
                  "type": "string",
                  "description": "Sales time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation/Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "5401"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "register_id": {
                  "type": "string",
                  "description": "Cash register ID",
                  "example": "32"
                },
                "table_number": {
                  "type": "string",
                  "description": "Table number",
                  "example": "54"
                },
                "payment_method": {
                  "type": "string",
                  "description": "Payment method ID",
                  "example": "Invoice"
                },
                "giftcard_payment_id": {
                  "type": "string",
                  "description": "Id to link to possible giftcard used for this payment.",
                  "example": "12345"
                },
                "sales_value": {
                  "type": "number",
                  "description": "Total sales amount including tax",
                  "example": 2000
                },
                "sales_value_wo_vat": {
                  "type": "number",
                  "description": "Total sales amount without tax",
                  "example": 1600
                },
                "currency": {
                  "type": "string",
                  "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "rebate": {
                  "type": "number",
                  "description": "Amount of rebate given including tax",
                  "example": 0
                },
                "rebate_wo_vat": {
                  "type": "number",
                  "description": "Amount of rebate given without tax",
                  "example": 0
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "delivery_customer_id": {
                  "type": "string",
                  "description": "Delivery Customer ID for identified customer",
                  "example": "32"
                },
                "cancel_id": {
                  "type": "string",
                  "description": "Transaction ID of cancelled receipt",
                  "example": "er/232/f2"
                },
                "cancelled": {
                  "type": "boolean",
                  "description": "cancelled. true=cancelled transaction false=not cancelled transaction. Default is false.",
                  "example": false
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_6": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_7": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_8": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_9": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_10": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "custom_metric_6": {
                  "type": "number",
                  "description": "Custom metric 6",
                  "example": 1
                },
                "custom_metric_7": {
                  "type": "number",
                  "description": "Custom metric 7",
                  "example": 100
                },
                "custom_metric_8": {
                  "type": "number",
                  "description": "Custom metric 8",
                  "example": 2.2
                },
                "custom_metric_9": {
                  "type": "number",
                  "description": "Custom metric 9",
                  "example": 1.05
                },
                "custom_metric_10": {
                  "type": "number",
                  "description": "Custom metric 10",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "sales_date",
                "organisation_id",
                "payment_method"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "sales_date": "2016-01-01",
                "sales_time": "15:00:00",
                "organisation_id": "540",
                "department_id": "5401",
                "salesperson_id": "5402101",
                "register_id": "32",
                "table_number": "54",
                "payment_method": "Invoice",
                "giftcard_payment_id": "12345",
                "sales_value": 2000,
                "sales_value_wo_vat": 1600,
                "currency": "EUR",
                "rebate": 0,
                "rebate_wo_vat": 0,
                "customer_id": "32",
                "delivery_customer_id": "32",
                "cancel_id": "er/232/f2",
                "cancelled": false,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_field_6": "XYZ",
                "custom_field_7": "XYZ",
                "custom_field_8": "XYZ",
                "custom_field_9": "XYZ",
                "custom_field_10": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_metric_6": 1,
                "custom_metric_7": 100,
                "custom_metric_8": 2.2,
                "custom_metric_9": 1.05,
                "custom_metric_10": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "er/232/f31",
                "line_item_id": "1",
                "sales_date": "2016-01-01",
                "sales_time": "15:00:00",
                "organisation_id": "540",
                "department_id": "5401",
                "salesperson_id": "5402101",
                "register_id": "32",
                "table_number": "54",
                "payment_method": "Invoice",
                "giftcard_payment_id": "12345",
                "sales_value": 2000,
                "sales_value_wo_vat": 1600,
                "currency": "EUR",
                "rebate": 0,
                "rebate_wo_vat": 0,
                "customer_id": "32",
                "delivery_customer_id": "32",
                "cancel_id": "er/232/f2",
                "cancelled": false,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_field_6": "XYZ",
                "custom_field_7": "XYZ",
                "custom_field_8": "XYZ",
                "custom_field_9": "XYZ",
                "custom_field_10": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_metric_6": 1,
                "custom_metric_7": 100,
                "custom_metric_8": 2.2,
                "custom_metric_9": 1.05,
                "custom_metric_10": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SalesPaymentUploadPayloadCsv": {
        "type": "string",
        "description": "Sales payment data in CSV format.",
        "example": "transaction_id;line_item_id;customer_id;sales_value;sales_value_wo_vat;rebate;rebate_wo_vat;currency;payment_method;organisation_id;salesperson_id;cancel_id;sales_date;sales_time;register_id;custom_field1;custom_field2\ner/232/f31;1 ; 32; 20; 20; 0; 0; EUR; Invoice; 540; 5402101; ; 2016-01-01; 15:00:00; 1;payment 1 ; extra pay\n"
      },
      "GiftcardPaymentUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/GiftcardPayment"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "giftcard_id": {
                  "type": "string",
                  "description": "Unique ID for the gift card.",
                  "example": "A67gigMp"
                },
                "giftcard_number": {
                  "type": "string",
                  "description": "Gift card number",
                  "example": "7TON39"
                },
                "giftcard_status": {
                  "type": "string",
                  "description": "Gift card status",
                  "example": "Active"
                },
                "giftcard_balance": {
                  "type": "number",
                  "description": "Gift card balance",
                  "example": 50
                },
                "creation_date": {
                  "type": "string",
                  "description": "Gift card creation date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "creation_time": {
                  "type": "string",
                  "description": "Gift card creation time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "expiration_date": {
                  "type": "string",
                  "description": "Gift card expiration date (yyyy-mm-dd)",
                  "example": "2017-01-01"
                },
                "expiration_time": {
                  "type": "string",
                  "description": "Gift card expiration time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "sales_id": {
                  "type": "string",
                  "description": "Sales Id",
                  "example": "dbeba367"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation/Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "5401"
                },
                "register_id": {
                  "type": "string",
                  "description": "Cash register ID",
                  "example": "32"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "payment_id": {
                  "type": "string",
                  "description": "Payment method ID",
                  "example": "A65A"
                },
                "payment_type": {
                  "type": "string",
                  "description": "Payment type",
                  "example": "Activation"
                },
                "payment_date": {
                  "type": "string",
                  "description": "Payment date (yyyy-mm-dd)",
                  "example": "2016-05-15"
                },
                "payment_time": {
                  "type": "string",
                  "description": "Payment time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "payment_value": {
                  "type": "number",
                  "description": "Payment amount",
                  "example": 20
                },
                "payment_currency": {
                  "type": "string",
                  "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "giftcard_id",
                "giftcard_number",
                "giftcard_status",
                "creation_date",
                "organisation_id",
                "payment_id",
                "payment_type",
                "payment_date",
                "payment_time",
                "payment_value"
              ],
              "additionalProperties": false,
              "example": {
                "giftcard_id": "A67gigMp",
                "giftcard_number": "7TON39",
                "giftcard_status": "Active",
                "giftcard_balance": 50,
                "creation_date": "2016-01-01",
                "creation_time": "15:00:00",
                "expiration_date": "2017-01-01",
                "expiration_time": "15:00:00",
                "sales_id": "dbeba367",
                "organisation_id": "540",
                "department_id": "5401",
                "register_id": "32",
                "salesperson_id": "5402101",
                "customer_id": "32",
                "payment_id": "A65A",
                "payment_type": "Activation",
                "payment_date": "2016-05-15",
                "payment_time": "15:00:00",
                "payment_value": 20,
                "payment_currency": "EUR",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "giftcard_id": "A67gigMp",
                "giftcard_number": "7TON39",
                "giftcard_status": "Active",
                "giftcard_balance": 50,
                "creation_date": "2016-01-01",
                "creation_time": "15:00:00",
                "expiration_date": "2017-01-01",
                "expiration_time": "15:00:00",
                "sales_id": "dbeba367",
                "organisation_id": "540",
                "department_id": "5401",
                "register_id": "32",
                "salesperson_id": "5402101",
                "customer_id": "32",
                "payment_id": "A65A",
                "payment_type": "Activation",
                "payment_date": "2016-05-15",
                "payment_time": "15:00:00",
                "payment_value": 20,
                "payment_currency": "EUR",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "GiftcardPaymentUploadPayloadCsv": {
        "type": "string",
        "description": "Giftcard Payments data in CSV format.",
        "example": "giftcard_id; giftcard_number; giftcard_status; giftcard_balance; creation_date; organisation_id; payment_id; payment_type; payment_date; payment_time; payment_value; payment_currency; salesperson_id; source_system\nA67gigMp ; 7TON39 ; Active ; 50.00 ; 2016-01-01 ; 540 ; A65A ; Activation ; 2016-05-15 ; 18:00:00 ; 20.00; EUR ; 540001 ; XYZ\n"
      },
      "AccountingUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Accounting"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "transaction_id": {
                  "type": "string",
                  "description": "Unique ID for this accounting receipt",
                  "example": "1234"
                },
                "line_item_id": {
                  "type": "string",
                  "description": "Unique ID for this accounting receipt line item",
                  "example": "1"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation/Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Store department ID",
                  "example": "5401"
                },
                "account_id": {
                  "type": "string",
                  "description": "Account ID",
                  "example": "1150"
                },
                "event_date": {
                  "type": "string",
                  "description": "Event date (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "event_time": {
                  "type": "string",
                  "description": "Event time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "receipt_type": {
                  "type": "string",
                  "enum": [
                    "income",
                    "cost",
                    "asset",
                    "liability"
                  ],
                  "description": "Receipt type",
                  "example": "cost"
                },
                "receipt_number": {
                  "type": "string",
                  "description": "XZY (string, optional) - Optional bookkeeping receipt number",
                  "example": "12345"
                },
                "receipt_value": {
                  "type": "number",
                  "description": "Total amount of this line item",
                  "example": 2000
                },
                "receipt_value_wo_vat": {
                  "type": "number",
                  "description": "Total amount of this line item without taxes",
                  "example": 1600
                },
                "currency": {
                  "type": "string",
                  "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "cancelled": {
                  "type": "boolean",
                  "description": "If set then this receipt has been cancelled.",
                  "example": true
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "transaction_id",
                "line_item_id",
                "organisation_id",
                "account_id",
                "event_date",
                "receipt_type",
                "receipt_number"
              ],
              "additionalProperties": false,
              "example": {
                "transaction_id": "1234",
                "line_item_id": "1",
                "organisation_id": "540",
                "department_id": "5401",
                "account_id": "1150",
                "event_date": "2016-01-01",
                "event_time": "15:00:00",
                "receipt_type": "cost",
                "receipt_number": "12345",
                "receipt_value": 2000,
                "receipt_value_wo_vat": 1600,
                "currency": "EUR",
                "cancelled": true,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "transaction_id": "1234",
                "line_item_id": "1",
                "organisation_id": "540",
                "department_id": "5401",
                "account_id": "1150",
                "event_date": "2016-01-01",
                "event_time": "15:00:00",
                "receipt_type": "cost",
                "receipt_number": "12345",
                "receipt_value": 2000,
                "receipt_value_wo_vat": 1600,
                "currency": "EUR",
                "cancelled": true,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "AccountingUploadPayloadCsv": {
        "type": "string",
        "description": "Accounting data in CSV format.",
        "example": "transaction_id;line_item_id;account_id;organisation_id;receipt_type;event_date;event_time;receipt_value;currency;custom_field1;custom_field2\n123; 1; 4567; 540; cost; 2020-01-01; 15:00:00; 100.00; EUR; payment 1; extra pay\n"
      },
      "BookingUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Booking"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "booking_id": {
                  "type": "string",
                  "description": "Unique ID for the booking",
                  "example": "er/232/f31"
                },
                "booking_line_id": {
                  "type": "string",
                  "description": "Secondary booking identifier",
                  "example": "1"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Customer ID for identified customer",
                  "example": "32"
                },
                "product_id": {
                  "type": "string",
                  "description": "Product ID",
                  "example": "XYZ"
                },
                "event_id": {
                  "type": "string",
                  "description": "A (string, optional) - Optional ID for the event this booking is done for.",
                  "example": "123"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation unit ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "54011"
                },
                "salesperson_id": {
                  "type": "string",
                  "description": "Sales person ID",
                  "example": "5402101"
                },
                "booked_quantity": {
                  "type": "number",
                  "description": "Booked quantity",
                  "example": 2
                },
                "number_of_guests": {
                  "type": "number",
                  "description": "Number of guests booked",
                  "example": 2
                },
                "number_of_visits": {
                  "type": "number",
                  "description": "Number of visits allowed per guest within start and end dates.",
                  "example": 2
                },
                "sales_value": {
                  "type": "number",
                  "description": "Total booking sales amount including tax",
                  "example": 20
                },
                "sales_value_wo_vat": {
                  "type": "number",
                  "description": "Total booking sales amount without tax",
                  "example": 20
                },
                "currency": {
                  "type": "string",
                  "description": "Currency as ISO 4217 currency code. Required if multiple currencies are used.",
                  "example": "EUR"
                },
                "canceled": {
                  "type": "boolean",
                  "description": "True when this booking has been cancelled.",
                  "example": false
                },
                "booking_date": {
                  "type": "string",
                  "description": "Booking date (yyyy-mm-dd)",
                  "example": "2020-03-01"
                },
                "booking_time": {
                  "type": "string",
                  "description": "Booking time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "event_start_date": {
                  "type": "string",
                  "description": "Event start date (yyyy-mm-dd)",
                  "example": "2020-03-10"
                },
                "event_start_time": {
                  "type": "string",
                  "description": "Event start time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "event_end_date": {
                  "type": "string",
                  "description": "Event end date (yyyy-mm-dd)",
                  "example": "2020-03-11"
                },
                "event_end_time": {
                  "type": "string",
                  "description": "Event end time (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "booking_type": {
                  "type": "string",
                  "description": "Booking type. Must be either event, ticket or room.",
                  "example": "event"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Custom field 1",
                  "example": "EU only"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Custom field 2",
                  "example": "EU only"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Custom field 3",
                  "example": "EU only"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Custom field 4",
                  "example": "EU only"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Custom field 5",
                  "example": "EU only"
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "booking_id",
                "booking_line_id",
                "product_id",
                "event_id",
                "organisation_id",
                "booked_quantity",
                "sales_value",
                "booking_date",
                "event_start_date",
                "booking_type"
              ],
              "additionalProperties": false,
              "example": {
                "booking_id": "er/232/f31",
                "booking_line_id": "1",
                "customer_id": "32",
                "product_id": "XYZ",
                "event_id": "123",
                "organisation_id": "540",
                "department_id": "54011",
                "salesperson_id": "5402101",
                "booked_quantity": 2,
                "number_of_guests": 2,
                "number_of_visits": 2,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "currency": "EUR",
                "canceled": false,
                "booking_date": "2020-03-01",
                "booking_time": "15:00:00",
                "event_start_date": "2020-03-10",
                "event_start_time": "15:00:00",
                "event_end_date": "2020-03-11",
                "event_end_time": "15:00:00",
                "booking_type": "event",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "booking_id": "er/232/f31",
                "booking_line_id": "1",
                "customer_id": "32",
                "product_id": "XYZ",
                "event_id": "123",
                "organisation_id": "540",
                "department_id": "54011",
                "salesperson_id": "5402101",
                "booked_quantity": 2,
                "number_of_guests": 2,
                "number_of_visits": 2,
                "sales_value": 20,
                "sales_value_wo_vat": 20,
                "currency": "EUR",
                "canceled": false,
                "booking_date": "2020-03-01",
                "booking_time": "15:00:00",
                "event_start_date": "2020-03-10",
                "event_start_time": "15:00:00",
                "event_end_date": "2020-03-11",
                "event_end_time": "15:00:00",
                "booking_type": "event",
                "custom_field_1": "EU only",
                "custom_field_2": "EU only",
                "custom_field_3": "EU only",
                "custom_field_4": "EU only",
                "custom_field_5": "EU only",
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "BookingUploadPayloadCsv": {
        "type": "string",
        "description": "Bookings data in CSV format.",
        "example": "booking_id;booking_line_id;customer_id;product_id;booked_quantity;product_unit_price;sales_value;sales_value_wo_vat;currency;organisation_id;salesperson_id;event_id;booking_date;booking_time;event_start_date;event_start_time;event_end_date;event_end_time\ner/232/f31; 1; 32; XYZ; 2; 10; 20; 20; EUR; 540; 5402101; 6344; 2021-02-01; 15:30:00; 2021-03-01; 15:00:00; 2021-03-01; 15:00:00\n"
      },
      "SupplierUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Supplier"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "supplier_id": {
                  "type": "string",
                  "description": "Supplier ID",
                  "example": "221"
                },
                "supplier_name": {
                  "type": "string",
                  "description": "Supplier name",
                  "example": "WasSuppliers"
                },
                "supplier_email": {
                  "type": "string",
                  "description": "Supplier Email",
                  "example": "john.smith@supplier.supplier"
                },
                "supplier_phone": {
                  "type": "string",
                  "description": "Supplier phone number",
                  "example": "+3581111111"
                },
                "supplier_address": {
                  "type": "string",
                  "description": "Street address",
                  "example": "Mannerheimintie 1"
                },
                "supplier_city": {
                  "type": "string",
                  "description": "City",
                  "example": "Helsinki"
                },
                "supplier_zipcode": {
                  "type": "string",
                  "description": "Postal code",
                  "example": "00100"
                },
                "supplier_country": {
                  "type": "string",
                  "description": "Country",
                  "example": "Finland"
                },
                "supplier_group": {
                  "type": "string",
                  "description": "Supplier group",
                  "example": "Strategic Supplier"
                },
                "supplier_type": {
                  "type": "string",
                  "description": "Supplier type",
                  "example": "Local"
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "supplier_id"
              ],
              "additionalProperties": false,
              "example": {
                "supplier_id": "221",
                "supplier_name": "WasSuppliers",
                "supplier_email": "john.smith@supplier.supplier",
                "supplier_phone": "+3581111111",
                "supplier_address": "Mannerheimintie 1",
                "supplier_city": "Helsinki",
                "supplier_zipcode": "00100",
                "supplier_country": "Finland",
                "supplier_group": "Strategic Supplier",
                "supplier_type": "Local",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "supplier_id": "221",
                "supplier_name": "WasSuppliers",
                "supplier_email": "john.smith@supplier.supplier",
                "supplier_phone": "+3581111111",
                "supplier_address": "Mannerheimintie 1",
                "supplier_city": "Helsinki",
                "supplier_zipcode": "00100",
                "supplier_country": "Finland",
                "supplier_group": "Strategic Supplier",
                "supplier_type": "Local",
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "SupplierUploadPayloadCsv": {
        "type": "string",
        "description": "Suppliers data in CSV format.",
        "example": "supplier_id;supplier_name;supplier_email;supplier_phone;supplier_address;supplier_city; supplier_zipcode;supplier_country\n221; WasSuppliers; john.smith@supplier.supplier; +3581111111; Mannerheimintie 1;Helsinki; 00100; Finland\n"
      },
      "VisitorUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Visitor"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation/Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "540"
                },
                "counter_id": {
                  "type": "string",
                  "description": "Counter ID",
                  "example": "540"
                },
                "product_id": {
                  "type": "string",
                  "description": "`Optional product id associated to this visitor (eg. ticket)`",
                  "example": "ABC-123"
                },
                "customer_id": {
                  "type": "string",
                  "description": "Optional customer associated to this visitor (ticket etc.)",
                  "example": "1234"
                },
                "date": {
                  "type": "string",
                  "description": "Date of visit (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "time": {
                  "type": "string",
                  "description": "Time of visit (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "time_zone": {
                  "type": "string",
                  "description": "Optional location time zone.",
                  "example": "02:00"
                },
                "visit_type": {
                  "type": "string",
                  "description": "`Type of visitor record ('in', 'out', 'pass', 'occupancy', 'visit_time', 'queue')`",
                  "example": "in"
                },
                "vehicle_type": {
                  "type": "string",
                  "description": "Optional field for vehicle type. Supported values are car & bicycle.",
                  "example": "car"
                },
                "queue_area_name": {
                  "type": "string",
                  "description": "Optional area name for queue cameras.",
                  "example": "Area 1"
                },
                "low_queue": {
                  "type": "number",
                  "description": "Threshold for low queue.",
                  "example": 1
                },
                "high_queue": {
                  "type": "number",
                  "description": "Threshold for high queue.",
                  "example": 5
                },
                "visitors": {
                  "type": "number",
                  "description": "Number of visitors at given time",
                  "example": 1000
                },
                "custom_metric_1": {
                  "type": "number",
                  "description": "Custom metric 1",
                  "example": 1
                },
                "custom_metric_2": {
                  "type": "number",
                  "description": "Custom metric 2",
                  "example": 100
                },
                "custom_metric_3": {
                  "type": "number",
                  "description": "Custom metric 3",
                  "example": 2.2
                },
                "custom_metric_4": {
                  "type": "number",
                  "description": "Custom metric 4",
                  "example": 1.05
                },
                "custom_metric_5": {
                  "type": "number",
                  "description": "Custom metric 5",
                  "example": 10000
                },
                "custom_field_1": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_2": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_3": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_4": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "custom_field_5": {
                  "type": "string",
                  "description": "Field that can be used for custom dimensions",
                  "example": "XYZ"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "date",
                "time",
                "visitors"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "department_id": "540",
                "counter_id": "540",
                "product_id": "ABC-123",
                "customer_id": "1234",
                "date": "2016-01-01",
                "time": "15:00:00",
                "time_zone": "02:00",
                "visit_type": "in",
                "vehicle_type": "car",
                "queue_area_name": "Area 1",
                "low_queue": 1,
                "high_queue": 5,
                "visitors": 1000,
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "department_id": "540",
                "counter_id": "540",
                "product_id": "ABC-123",
                "customer_id": "1234",
                "date": "2016-01-01",
                "time": "15:00:00",
                "time_zone": "02:00",
                "visit_type": "in",
                "vehicle_type": "car",
                "queue_area_name": "Area 1",
                "low_queue": 1,
                "high_queue": 5,
                "visitors": 1000,
                "custom_metric_1": 1,
                "custom_metric_2": 100,
                "custom_metric_3": 2.2,
                "custom_metric_4": 1.05,
                "custom_metric_5": 10000,
                "custom_field_1": "XYZ",
                "custom_field_2": "XYZ",
                "custom_field_3": "XYZ",
                "custom_field_4": "XYZ",
                "custom_field_5": "XYZ",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "VisitorUploadPayloadCsv": {
        "type": "string",
        "description": "Visitors data in CSV format.",
        "example": "organisation_id;date;time;visitors\n540;2016-01-01;15:00:00;1000\n"
      },
      "VisitorDemographicsUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/VisitorDemographics"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "organisation_id": {
                  "type": "string",
                  "description": "Organisation/Store ID",
                  "example": "540"
                },
                "department_id": {
                  "type": "string",
                  "description": "Department ID",
                  "example": "540"
                },
                "counter_id": {
                  "type": "string",
                  "description": "Counter ID",
                  "example": "540"
                },
                "date": {
                  "type": "string",
                  "description": "Date of visit (yyyy-mm-dd)",
                  "example": "2016-01-01"
                },
                "time": {
                  "type": "string",
                  "description": "Time of visit (HH:mm:ss)",
                  "example": "15:00:00"
                },
                "gender": {
                  "type": "string",
                  "description": "Gender of visitor. 'm' for male, 'f' for female and 'u' for unknown.",
                  "example": "m"
                },
                "age": {
                  "type": "number",
                  "description": "Age of the visitor.",
                  "example": 25
                },
                "visitors": {
                  "type": "number",
                  "description": "Number of visitors for given age & gender for time specified.",
                  "example": 1000
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "organisation_id",
                "date",
                "time",
                "visitors"
              ],
              "additionalProperties": false,
              "example": {
                "organisation_id": "540",
                "department_id": "540",
                "counter_id": "540",
                "date": "2016-01-01",
                "time": "15:00:00",
                "gender": "m",
                "age": 25,
                "visitors": 1000,
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "organisation_id": "540",
                "department_id": "540",
                "counter_id": "540",
                "date": "2016-01-01",
                "time": "15:00:00",
                "gender": "m",
                "age": 25,
                "visitors": 1000,
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "VisitorDemographicsUploadPayloadCsv": {
        "type": "string",
        "description": "Visitor demographics data in CSV format.",
        "example": "organisation_id;date;time;visitors\n540;2016-01-01;15:00:00;1000\n"
      },
      "IdMappingUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/IdMapping"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source_system_id": {
                  "type": "string",
                  "description": "store (string, required) - Identifier in the source system",
                  "example": "abc"
                },
                "master_id": {
                  "type": "string",
                  "description": "123 (string, required) - Identifier in master data",
                  "example": "store"
                },
                "entity_type": {
                  "type": "string",
                  "description": "Entity type this mapping is for (e.g. organisation, product)",
                  "example": "organisation"
                },
                "context": {
                  "type": "string",
                  "description": "Type of data this mapping applies to",
                  "example": "visitor"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "source_system_id",
                "master_id",
                "entity_type",
                "context"
              ],
              "additionalProperties": false,
              "example": {
                "source_system_id": "abc",
                "master_id": "store",
                "entity_type": "organisation",
                "context": "visitor",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "source_system_id": "abc",
                "master_id": "store",
                "entity_type": "organisation",
                "context": "visitor",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "IdMappingUploadPayloadCsv": {
        "type": "string",
        "description": "Id mapping data in CSV format.",
        "example": "context; entity_type; master_id; source_system_id\nvisitor-data; organisation; store-123; ABCDE\n"
      },
      "UpdateTimeUploadPayloadJson": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/UpdateTime"
          },
          {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entity": {
                  "type": "string",
                  "description": "Key of entity updated. Generally One of Zapi end point names in lower case eg. workshifts, sales, salessummaries, inventorysnapshots, visitors etc. Special key 'last_updated' can be used to send aggregated update time for all data sets.",
                  "example": "workshifts"
                },
                "organisation_id": {
                  "type": "string",
                  "description": "Optional organisation unit this update refers to only",
                  "example": "123"
                },
                "last_updated": {
                  "type": "string",
                  "description": "Last time stamp when entity was successfully updated",
                  "example": "2019-08-21T02:25:31"
                },
                "source_system": {
                  "type": "string",
                  "description": "Identifier of the source system this data is from. Needed when mapping between source system identifiers and master identifiers are used.",
                  "example": "ABCDEF"
                }
              },
              "required": [
                "entity",
                "last_updated"
              ],
              "additionalProperties": false,
              "example": {
                "entity": "workshifts",
                "organisation_id": "123",
                "last_updated": "2019-08-21 02:25:31",
                "source_system": "ABCDEF"
              }
            },
            "example": [
              {
                "entity": "workshifts",
                "organisation_id": "123",
                "last_updated": "2019-08-21 02:25:31",
                "source_system": "ABCDEF"
              }
            ]
          }
        ]
      },
      "UpdateTimeUploadPayloadCsv": {
        "type": "string",
        "description": "Last updated data in CSV format.",
        "example": "entity;organisation_id;last_updated;source_system\nworkshifts;store-123;2019-08-21 02:24:12;ABCDE\n"
      }
    },
    "parameters": {
      "LimitQueryParameter": {
        "name": "limit",
        "in": "query",
        "description": "How many entries to return",
        "required": false,
        "example": "1000",
        "schema": {
          "type": "number"
        }
      },
      "OffsetQueryParameter": {
        "name": "offset",
        "in": "query",
        "description": "Which offset to return data from",
        "required": false,
        "example": "0",
        "schema": {
          "type": "number"
        }
      },
      "SeparatorQueryParameter": {
        "name": "separator",
        "in": "query",
        "description": "Column separator used when loading CSV data",
        "required": true,
        "example": ";",
        "schema": {
          "type": "string"
        }
      },
      "EncodingQueryParameter": {
        "name": "encoding",
        "in": "query",
        "description": "Character encoding used in the CSV data (default is utf-8)",
        "required": true,
        "example": "utf-8",
        "schema": {
          "type": "string"
        }
      },
      "DryRunQueryParameter": {
        "name": "dryRun",
        "in": "query",
        "description": "Only validate the request without storing the data",
        "required": true,
        "example": "false",
        "schema": {
          "type": "boolean"
        }
      },
      "StartQueryParameter": {
        "name": "start",
        "in": "query",
        "description": "Return data starting from given date",
        "required": false,
        "example": "2017-01-01",
        "schema": {
          "type": "string"
        }
      },
      "EndQueryParameter": {
        "name": "end",
        "in": "query",
        "description": "Return data ending to given date",
        "required": false,
        "example": "2017-01-31",
        "schema": {
          "type": "string"
        }
      },
      "OrderStatusQueryParameter": {
        "name": "order_status",
        "in": "query",
        "description": "Return data with given order status only",
        "required": false,
        "example": "3",
        "schema": {
          "type": "number"
        }
      },
      "StartQueryParameter2": {
        "name": "start",
        "in": "query",
        "description": "Return data starting from given date",
        "required": false,
        "example": "2021-01-01",
        "schema": {
          "type": "string"
        }
      },
      "EndQueryParameter2": {
        "name": "end",
        "in": "query",
        "description": "Return data ending to given date",
        "required": false,
        "example": "2021-01-31",
        "schema": {
          "type": "string"
        }
      },
      "HierarchyKeyQueryParameter": {
        "name": "hierarchy_key",
        "in": "query",
        "description": "Returns data of given hierarchies only",
        "required": false,
        "example": "product",
        "schema": {
          "type": "string"
        }
      },
      "YearQueryParameter": {
        "name": "year",
        "in": "query",
        "description": "Returns calendar period data for given year(s) only",
        "required": false,
        "example": "2018",
        "schema": {
          "type": "number"
        }
      },
      "DryRunQueryParameter2": {
        "name": "dryRun",
        "in": "query",
        "description": "Only validate the request without storing the data",
        "required": true,
        "example": "true",
        "schema": {
          "type": "boolean"
        }
      },
      "EntityPathParameter": {
        "name": "entity",
        "in": "path",
        "description": "Entity name to for this delete operation.",
        "required": true,
        "example": "sales",
        "schema": {
          "type": "string"
        }
      },
      "SourceSystemQueryParameter": {
        "name": "sourceSystem",
        "in": "query",
        "description": "Optional source system value to limit delete operation to.",
        "required": false,
        "example": "myPos",
        "schema": {
          "type": "string"
        }
      },
      "OfferStatusQueryParameter": {
        "name": "offer_status",
        "in": "query",
        "description": "Return data with given offer status only",
        "required": false,
        "example": "3",
        "schema": {
          "type": "number"
        }
      },
      "StartQueryParameter3": {
        "name": "start",
        "in": "query",
        "description": "Return data starting from given date",
        "required": false,
        "example": "2024-01-01",
        "schema": {
          "type": "string"
        }
      },
      "EndQueryParameter3": {
        "name": "end",
        "in": "query",
        "description": "Return data ending to given date",
        "required": false,
        "example": "2024-01-31",
        "schema": {
          "type": "string"
        }
      },
      "ProductIdQueryParameter": {
        "name": "product_id",
        "in": "query",
        "description": "Return data of a product based on given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "CustomerIdQueryParameter": {
        "name": "customer_id",
        "in": "query",
        "description": "Returns data of customer based on the given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "OrganisationIdQueryParameter": {
        "name": "organisation_id",
        "in": "query",
        "description": "Returns data of organisation based on the given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "DepartmentIdQueryParameter": {
        "name": "department_id",
        "in": "query",
        "description": "Returns data of department based on the given id",
        "required": false,
        "example": "5401",
        "schema": {
          "type": "string"
        }
      },
      "SalespersonIdQueryParameter": {
        "name": "salesperson_id",
        "in": "query",
        "description": "Returns data for sales person based on the given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "RegisterIdQueryParameter": {
        "name": "register_id",
        "in": "query",
        "description": "Returns data for cash register based on the given id",
        "required": false,
        "example": "123-1",
        "schema": {
          "type": "string"
        }
      },
      "AccountIdQueryParameter": {
        "name": "account_id",
        "in": "query",
        "description": "Returns data for account based on the given id",
        "required": false,
        "example": "1230",
        "schema": {
          "type": "string"
        }
      },
      "EventIdQueryParameter": {
        "name": "event_id",
        "in": "query",
        "description": "Returns data for event based on the given id",
        "required": false,
        "example": "123",
        "schema": {
          "type": "string"
        }
      },
      "CategoryIdQueryParameter": {
        "name": "category_id",
        "in": "query",
        "description": "Returns data of categories based on the given id",
        "required": false,
        "example": "5401",
        "schema": {
          "type": "string"
        }
      },
      "CampaignIdQueryParameter": {
        "name": "campaign_id",
        "in": "query",
        "description": "Returns data of Campaigns based on the given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "StartDateQueryParameter": {
        "name": "start_date",
        "in": "query",
        "description": "Return data starting from given date",
        "required": false,
        "example": "2017-01-01",
        "schema": {
          "type": "string"
        }
      },
      "EndDateQueryParameter": {
        "name": "end_date",
        "in": "query",
        "description": "Return data ending to given date",
        "required": false,
        "example": "2017-01-31",
        "schema": {
          "type": "string"
        }
      },
      "PaymentTypeIdQueryParameter": {
        "name": "payment_type_id",
        "in": "query",
        "description": "Returns data of payment type based on the given id",
        "required": false,
        "example": "1",
        "schema": {
          "type": "string"
        }
      },
      "RebateCodeIdQueryParameter": {
        "name": "rebate_code_id",
        "in": "query",
        "description": "Returns data of rebateCode based on the given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "SupplierIdQueryParameter": {
        "name": "supplier_id",
        "in": "query",
        "description": "Returns data of suppliers based on the given id",
        "required": false,
        "example": "123k",
        "schema": {
          "type": "string"
        }
      },
      "PeriodQueryParameter": {
        "name": "period",
        "in": "query",
        "description": "Returns calendar period data for given period type(s) only",
        "required": false,
        "example": "season",
        "schema": {
          "type": "string"
        }
      },
      "StartQueryParameter4": {
        "name": "start",
        "in": "query",
        "description": "Returns currency rates from given date onward",
        "required": false,
        "example": "2018-01-01",
        "schema": {
          "type": "string"
        }
      },
      "EndQueryParameter4": {
        "name": "end",
        "in": "query",
        "description": "Returns currency rates until given date",
        "required": false,
        "example": "2018-12-31",
        "schema": {
          "type": "string"
        }
      },
      "CurrencyQueryParameter": {
        "name": "currency",
        "in": "query",
        "description": "Return only rates with given currencies as either source or target currency",
        "required": false,
        "example": "SEK",
        "schema": {
          "type": "string"
        }
      },
      "IncludeNamesQueryParameter": {
        "name": "includeNames",
        "in": "query",
        "description": "If true also include names for dimensions, not just ids",
        "required": false,
        "example": "false",
        "schema": {
          "type": "boolean"
        }
      },
      "NamesOnlyQueryParameter": {
        "name": "namesOnly",
        "in": "query",
        "description": "If true only include names for dimensions, omit ids",
        "required": false,
        "example": "false",
        "schema": {
          "type": "boolean"
        }
      },
      "StartQueryParameter5": {
        "name": "start",
        "in": "query",
        "description": "Start date for the date range.",
        "required": true,
        "example": "2024-10-01",
        "schema": {
          "type": "string"
        }
      },
      "StoreQueryParameter": {
        "name": "store",
        "in": "query",
        "description": "Optional store id to limit delete operation to.",
        "required": false,
        "example": "1234",
        "schema": {
          "type": "string"
        }
      }
    },
    "responses": {
      "UnauthorizedMissingOrInvalidAuthorizationTokenInHeader": {
        "description": "Missing or invalid authorization token in header\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorMessage401"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "Not OK",
                  "msg": "Unauthorized"
                }
              }
            }
          }
        }
      },
      "InternalServerErrorInternalErrorOrException": {
        "description": "Internal error or exception\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorMessage"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "Not OK",
                  "msg": "Reason for error"
                }
              }
            }
          }
        }
      },
      "BadRequestInvalidMalformedOrMissingJSONDataInRequest": {
        "description": "Invalid, malformed or missing JSON-data in request\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorMessage"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "Not OK",
                  "msg": "Reason for error"
                }
              }
            }
          }
        }
      },
      "BadRequestInvalidOrMalformedRequest": {
        "description": "Invalid or malformed request.\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorMessage"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "Not OK",
                  "msg": "Reason for error"
                }
              }
            }
          }
        }
      },
      "SuccessRequestHasBeenProcessedSuccessfully": {
        "description": "Request has been processed successfully.\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DataUploadSuccessMessage"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "OK",
                  "msg": "1 entity added"
                }
              }
            }
          }
        }
      },
      "BadRequestInvalidRequestEgUnknownEntityParameter": {
        "description": "Invalid request (eg. unknown entity parameter).\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorMessage"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "Not OK",
                  "msg": "Reason for error"
                }
              }
            }
          }
        }
      },
      "InternalServerErrorInternalErrorWhileProcessingTheRequest": {
        "description": "Internal error while processing the request\n\n**Headers**\n\n- `Content-Type: application/json`",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorMessage"
            },
            "examples": {
              "response": {
                "value": {
                  "status": "Not OK",
                  "msg": "Reason for error"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Data upload",
      "tags": [
        "overview-data-upload",
        "upload-sales-transactions",
        "upload-products",
        "upload-customers",
        "upload-customer-feedback",
        "upload-cashier-balance",
        "upload-organisations",
        "upload-departments",
        "upload-sales-persons",
        "upload-cash-registers",
        "upload-store-open-hours",
        "upload-counters",
        "upload-accounts",
        "upload-events",
        "upload-calendar",
        "upload-campaigns",
        "upload-campaign-products",
        "upload-campaign-sales",
        "upload-currency-rates",
        "upload-work-shifts",
        "upload-employee-hour-entries",
        "upload-hourly-staff-costs",
        "upload-inventory-snapshots",
        "upload-inventory-transactions",
        "upload-capacity",
        "upload-flat-hierarchies",
        "upload-product-hierarchies",
        "upload-rebate-codes",
        "upload-payment-types",
        "upload-purchase-orders",
        "upload-sales-offers",
        "upload-sales-orders",
        "upload-sales-summary",
        "upload-sales-payment",
        "upload-giftcard-payments",
        "upload-accounting",
        "upload-bookings",
        "upload-suppliers",
        "upload-visitors",
        "upload-visitor-demographics",
        "upload-id-mapping",
        "upload-budgets",
        "upload-last-updated"
      ]
    },
    {
      "name": "Data download",
      "tags": [
        "overview-data-download",
        "download-sales-transactions",
        "download-sales-orders",
        "download-sales-offers",
        "download-purchase-orders",
        "download-sales-summaries",
        "download-sales-payments",
        "download-giftcard-payments",
        "download-bookings",
        "download-accounting-data",
        "download-cashier-balance",
        "download-customer-feedback",
        "download-inventory-transactions",
        "download-inventory-snapshots",
        "download-capacity",
        "download-visitors",
        "download-visitor-demographics",
        "download-work-shifts",
        "download-employee-hours",
        "download-hourly-staff-costs",
        "download-products",
        "download-customers",
        "download-organisations",
        "download-departments",
        "download-sales-persons",
        "download-cash-registers",
        "download-accounts",
        "download-events",
        "download-category-hierarchies",
        "download-flat-hierarchies",
        "download-counters",
        "download-campaigns",
        "download-payment-types",
        "download-rebate-codes",
        "download-suppliers",
        "download-custom-calendars",
        "download-flat-calendars",
        "download-currency-rates",
        "download-budgets"
      ]
    },
    {
      "name": "Data queries",
      "tags": [
        "overview-data-queries",
        "query-query-data-in-tabular-format",
        "query-query-data-in-stream-format"
      ]
    },
    {
      "name": "Maintenance",
      "tags": [
        "overview-maintenance",
        "maintenance-data"
      ]
    }
  ]
}