API.TOUCHOFFICE.NET v1.0

Introduction

All responses include a status. Status 0 is indicitive of an error state and is accompanied with a vales for 'msg'.

{
	"status": 0,
	"auth": "false",
	"msg": "Could not login user with username fred using password supplied"
}

When there is no data to return and error response will be returnd

{
	"status": 0,
	"msg": "No Data Available for the parameters you supplied"
}

The API by default returns data as JSON strings. To return XML append ?format=xml to the URI.

The API is secured using an api key you must include the following values in the http headers sent to the API

Methods

The following public methods are available

Clerks

clerkList

Method: GET

Description:Return a list of all clerks

Parameters:

Returns: a list of clerk number, name, ibutton number and secret number

Sample request:

https://api.touchoffice.net/clerks/clerkList?TAK=XXXXXXXXXX

Sample response:

{
	"status": 1,
	"clerks": {
		"1": {
			"clerk_number": "1",
			"clerk_name": "Bob Jones",
			"ibutton_number": "",
			"secret_number": "1"
		},
		{
			"2": {
				"clerk_number": "2",
				"clerk_name": "Fred Smith",
				"ibutton_number": "",
				"secret_number": "2"
			}
		}
	}
}

clerkTimeAndAttendance

Method: GET

Description:Retrives a summary of a clerks time and attendance data

Parameters:

Returns: a summary of clock in/out break in/out data for a given time period

Sample request:

https://api.touchoffice.net/clerks/clerkTimeAndAttendance?TAK=XXXXXXXXXX&clerk=7&date_start=2015-07-01&time_start=00:00&date_end=2015-07-01&time_end=23:59

Sample response:

{
	"clerks": "7",
	"ta": [{
		"site": "1",
		"terminal": "99",
		"date": "2015-07-01",
		"time": "11:20:00",
		"type": "1"
	},
	{
		"site": "1",
		"terminal": "99",
		"date": "2015-07-01",
		"time": "11:25:00",
		"type": "4"
	},
	{
		"site": "1",
		"terminal": "99",
		"date": "2015-07-01",
		"time": "11:30:00",
		"type": "3"
	},
	{
		"site": "1",
		"terminal": "99",
		"date": "2015-07-01",
		"time": "11:44:00",
		"type": "2"
	}],
	"status": 1
}

Site

sitesList

Method: GET

Description:Return a list of all sites

Parameters:

Returns: a list of site number, site name and site group

Sample request:

https://api.touchoffice.net/sites/sitesList?TAK=XXXXXXXXXX

Sample response:

{
	"sites": [{
		"site_number": "0",
		"site_name": "Head Office",
		"site_group": "0",
		"site_group_name": "Head Office"
	},
	{
		"site_number": "1",
		"site_name": "Cloud Dept Test Site 1",
		"site_group": "16",
		"site_group_name": "North East"
	},
	{
		"site_number": "2",
		"site_name": "Cloud Dept Test Site 2",
		"site_group": "16",
		"site_group_name": "North East"
	}],
	"status": 1
}

Departments

departmentsList

Method: GET

Description:Return a list of all departments

Parameters:

Returns: a list of dept number, dept name and accounting code

Sample request:

https://api.touchoffice.net/department/departmentsList?TAK=XXXXXXXXXX

Sample response:

{
	"status": 1,
	"departments": {
		"1": {
			"department_number": "1",
			"department_name": "Draught Beer",
			"accounting_code": "0"
		},
		{
			"2": {
				"department_number": "2",
				"department_name": "Bottled beer",
				"accounting_code": ""
			}
		}
	}
}

PLU Groups

pluGroupList

Method: GET

Description:Return a list of all PLU Groups

Parameters:

Returns: a list of plu group number, plu group name and accounting code

Sample request:

https://api.touchoffice.net/groups/pluGroupsList?TAK=XXXXXXXXXX

Sample response:

{
	"status": 1,
	"plugroups": {
		"1": {
			"plugroup_number": "1",
			"plugroup_name": "Drink Sales",
			"accounting_code": "0"
		},
		{
			"2": {
				"plugroup_number": "2",
				"plugroup_name": "Food Sales",
				"accounting_code": ""
			}
		}
	}
}

PLU

PLUList2

Method: GET

Description:Return a list of all PLU's

Parameters:

Returns: a list of data for example; plu number, Plu name, random code, plu group, plu department , tax rate and the level 1 prices for @1, @2 and @3

Sample request:

https://api.touchoffice.net/products/PLUList2?TAK=XXXXXXXXXX&site=1

Sample response:

{
   "products": [{
       "plu": "1",
       "name": "Carlsberg",
       "randomcode": "XYZ83284582",
       "plugroup": 1,
       "department": 2,
       "taxrate": 3,
       "price1l1": 2.8,
       "price2l1": 1.7,
       "price3l1": 5,
       "plugroupname": "DRINK SALES",
       "departmentname": "Bottled Beers"
   }, {
       "plu": "2",
       "name": "Ringwood Bestie",
       "randomcode": "KKK9877778",
       "plugroup": 1,
       "department": 1,
       "taxrate": 3,
       "price1l1": 3.3,
       "price2l1": 1.6,
       "price3l1": 6.4,
       "plugroupname": "DRINK SALES",
       "departmentname": "Draught Beers"
   }, {
       "plu": "10",
       "name": "Budweiser",
       "randomcode": "2548300000101",
       "plugroup": 1,
       "department": 2,
       "taxrate": 3,
       "price1l1": 4.2,
       "price2l1": 0,
       "price3l1": 0,
       "plugroupname": "DRINK SALES",
       "departmentname": "Bottled Beers"
   }],
   "status": 1
}

nonPLU

Method: GET or POST

Description:Returns the Non PLU table

Parameters:

Returns: The Non PLU table

Sample request:

https://api.touchoffice.net/products/nonPLU?TAK=XXXXXXXXXX&site=0

Sample response:

{
    "status": 1,
    "msg": "Ok",
    "nonPLU": [
    {
        "number": 1,
        "format": "02XXXXDPPPPPD",
        "flag": 0,
        "dp": 2
    }
    ]
}

PLUcost

Method: GET

Description:Returns the PLU cost prices

Parameters:

Returns: The Non PLU table

Sample request:

https://api.touchoffice.net/products/PLUcost?TAK=XXXXXXXXXX&site=0

Sample response:

{
  "products": [
    {
      "plu": "1",
      "supplier_1_unit_cost": "2",
      "supplier_1_case_cost": "0",
      "supplier_2_unit_cost": "0",
      "supplier_2_case_cost": "0",
      "supplier_3_unit_cost": "0",
      "supplier_3_case_cost": "0",
      "supplier_4_unit_cost": "0",
      "supplier_4_case_cost": "0",
      "avg_cost": "2"
    },
    {
      "plu": "2",
      "supplier_1_unit_cost": "1.75",
      "supplier_1_case_cost": "25.5",
      "supplier_2_unit_cost": "1",
      "supplier_2_case_cost": "25.5",
      "supplier_3_unit_cost": "3.5",
      "supplier_3_case_cost": "12",
      "supplier_4_unit_cost": "4",
      "supplier_4_case_cost": "60",
      "avg_cost": "1.5"
    },
	...
	{
      "plu": "4999",
      "supplier_1_unit_cost": "0",
      "supplier_1_case_cost": "0",
      "supplier_2_unit_cost": "0",
      "supplier_2_case_cost": "0",
      "supplier_3_unit_cost": "0",
      "supplier_3_case_cost": "0",
      "supplier_4_unit_cost": "0",
      "supplier_4_case_cost": "0",
      "avg_cost": "0"
    }
  ],
  "status": 1
}
	

Sales

PLUsales

Method: GET

Description:Retrives a summary of sales for a time period

Parameters:

Returns: a summary of PLU sales for the given time period

Sample request:

https://api.touchoffice.net/sales/PLUsales?TAK=XXXXXXXXXX&site=1&date_start=2015-07-01&time_start=00:00&date_end=2015-07-01&time_end=23:59

Sample response:

{
	"sales": [{
		"PLU": "1",
		"name": "Fosters",
		"quantity": "46.0000",
		"value": "188.6000",
		"department": "Draught Beers",
		"plugroup": "Drinks"
	},
	{
		"PLU": "2",
		"name": "Becks",
		"quantity": "17.0000",
		"value": "59.5000",
		"department": "Draught Beers",
		"plugroup": "Drinks"
	},
	{
		"PLU": "3",
		"name": "Tribute",
		"quantity": "51.0000",
		"value": "188.7000",
		"department": "Draught Beers",
		"plugroup": "Drinks"
	},
	{
		"PLU": "4",
		"name": "Ale Of Wight",
		"quantity": "16.0000",
		"value": "59.2000",
		"department": "Draught Beers",
		"plugroup": "Drinks"
	},
	{
		"PLU": "5",
		"name": "Fosters'o",
		"quantity": "51.0000",
		"value": "303.4500",
		"department": "Draught Beers",
		"plugroup": "Drinks"
	}],
	"status": 1
}

PLUsalesdetail

Method: GET

Description:Retrieves sales data for a chosen sale, or receives multiple sales within a given time period for a site.

Parameters:

Returns: a summary of sales for the given time period or a single sale

Sample request:

 https://api.touchoffice.net/sales/PLUsalesdetail?TAK=XXXXXXXXXX&site=1&sale=10098009446050623

Sample response:

{
  "sales":  [
        {
            "header": {
                "check": 0,
                "clerknumber": 13,
                "consecutivenumber": 129,
                "covers": 1,
                "customer": 0,
                "customerbalanceadjust": 0,
                "customerdiscount": 0,
                "date": "2023-06-06",
                "deposit": 0,
                "eatintakeout": 0,
                "finalisekeys": [
                    {
                        "finalisekey": 1,
                        "item": "CASH",
                        "flag": 4161,
                        "status": 1,
                        "keytype": 1,
                        "value": 34.08,
                        "qty": 1
                    }
                ],
                "fixedtotals": [
                    {
                        "fixedtotal": 1,
                        "item": "NET sales",
                        "flag": 0,
                        "value": 34.08,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 2,
                        "item": "GROSS Sales",
                        "flag": 0,
                        "value": 34.08,
                        "qty": 4
                    },
                    {
                        "fixedtotal": 4,
                        "item": "CASH in Drawer",
                        "flag": 0,
                        "value": 34.08,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 12,
                        "item": "TOTAL in Drawer",
                        "flag": 0,
                        "value": 34.08,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 19,
                        "item": "Covers",
                        "flag": 0,
                        "value": 0,
                        "qty": 1
                    }
                ],
                "itemcount": 4,
                "locationnumber": 0,
                "netsaletotal": 34.08,
                "ordernumber": 122,
                "points": 0,
                "room": "",
                "saleid": "10098009446050623",
                "saletotal": 34.08,
                "site": 10,
                "table": 0,
                "taxtable": [
                    {
                        "tax": 3,
                        "item": "VAT @ 20%",
                        "flag": 1,
                        "value": 5.68
                    }
                ],
                "till": 98,
                "time": "16:39:00"
            },
            "items": [
                {
                    "plu": 50,
                    "item": "Soup Of the Day",
                    "department": 2,
                    "plu_group": 7,
                    "status": 0,
                    "value": 34.08,
                    "qty": 4,
                    "pricelevel": 2
                }
            ]
        },
  ],
  "status": 1
}

Sample request:

 https://api.touchoffice.net/sales/PLUsalesdetail?TAK=XXXXXXXXXX&site=1&date_start=2023-06-05&time_start=10:00&date_end=2023-06-05&time_end=12:59

Sample response:

{
    "sales": [
        {
            "header": {
                "check": 0,
                "clerknumber": 13,
                "consecutivenumber": 123,
                "covers": 1,
                "customer": 0,
                "customerbalanceadjust": 0,
                "customerdiscount": 0,
                "date": "2023-06-05",
                "deposit": 0,
                "eatintakeout": 0,
                "finalisekeys": [
                    {
                        "finalisekey": 1,
                        "item": "CASH",
                        "flag": 4161,
                        "status": 1,
                        "keytype": 1,
                        "value": 25.56,
                        "qty": 1
                    }
                ],
                "fixedtotals": [
                    {
                        "fixedtotal": 1,
                        "item": "NET sales",
                        "flag": 0,
                        "value": 25.56,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 2,
                        "item": "GROSS Sales",
                        "flag": 0,
                        "value": 25.56,
                        "qty": 3
                    },
                    {
                        "fixedtotal": 4,
                        "item": "CASH in Drawer",
                        "flag": 0,
                        "value": 25.56,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 12,
                        "item": "TOTAL in Drawer",
                        "flag": 0,
                        "value": 25.56,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 19,
                        "item": "Covers",
                        "flag": 0,
                        "value": 0,
                        "qty": 1
                    }
                ],
                "itemcount": 3,
                "locationnumber": 0,
                "netsaletotal": 25.56,
                "ordernumber": 116,
                "points": 0,
                "room": "",
                "saleid": "10098009445050623",
                "saletotal": 25.56,
                "site": 10,
                "table": 0,
                "taxtable": [
                    {
                        "tax": 3,
                        "item": "VAT @ 20%",
                        "flag": 1,
                        "value": 4.26
                    }
                ],
                "till": 98,
                "time": "10:13:00"
            },
            "items": [
                {
                    "plu": 50,
                    "item": "Soup of the Day",
                    "department": 2,
                    "plu_group": 7,
                    "status": 0,
                    "value": 25.56,
                    "qty": 3,
                    "pricelevel": 1
                }
            ]
        },
        {
            "header": {
                "check": 0,
                "clerknumber": 13,
                "consecutivenumber": 124,
                "covers": 1,
                "customer": 0,
                "customerbalanceadjust": 0,
                "customerdiscount": 0,
                "date": "2023-06-05",
                "deposit": 0,
                "eatintakeout": 0,
                "finalisekeys": [
                    {
                        "finalisekey": 3,
                        "item": "CREDIT CARD",
                        "flag": 0,
                        "status": 1,
                        "keytype": 2,
                        "value": 37.04,
                        "qty": 1
                    }
                ],
                "fixedtotals": [
                    {
                        "fixedtotal": 1,
                        "item": "NET sales",
                        "flag": 0,
                        "value": 37.04,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 2,
                        "item": "GROSS Sales",
                        "flag": 0,
                        "value": 37.04,
                        "qty": 4
                    },
                    {
                        "fixedtotal": 6,
                        "item": "CREDIT in Drawer",
                        "flag": 0,
                        "value": 37.04,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 12,
                        "item": "TOTAL in Drawer",
                        "flag": 0,
                        "value": 37.04,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 19,
                        "item": "Covers",
                        "flag": 0,
                        "value": 0,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 63,
                        "item": "CUST VERIFY1",
                        "flag": 0,
                        "value": 0,
                        "qty": "100"
                    },
                    {
                        "fixedtotal": 64,
                        "item": "CUST VERIFY2",
                        "flag": 0,
                        "value": 1,
                        "qty": "0"
                    }
                ],
                "itemcount": 4,
                "locationnumber": 0,
                "netsaletotal": 37.04,
                "ordernumber": 117,
                "points": 0,
                "room": "",
                "saleid": "10098009446050623",
                "saletotal": 37.04,
                "site": 10,
                "table": 0,
                "taxtable": [
                    {
                        "tax": 3,
                        "item": "VAT @ 20%",
                        "flag": 1,
                        "value": 6.17
                    }
                ],
                "till": 98,
                "time": "10:20:00"
            },
            "items": [
                {
                    "plu": 50,
                    "item": "Soup of the Day",
                    "department": 2,
                    "plu_group": 7,
                    "status": 0,
                    "value": 17.04,
                    "qty": 2,
                    "pricelevel": 1
                },
                {
                    "plu": 54,
                    "item": "Garlic_Mushrooooooooooms",
                    "department": 2,
                    "plu_group": 7,
                    "status": 0,
                    "value": 20,
                    "qty": 2,
                    "pricelevel": 1
                }
            ]
        },
        {
            "header": {
                "check": 0,
                "clerknumber": 13,
                "consecutivenumber": 125,
                "covers": 1,
                "customer": 0,
                "customerbalanceadjust": 0,
                "customerdiscount": 0,
                "date": "2023-06-05",
                "deposit": 0,
                "eatintakeout": 0,
                "finalisekeys": [
                    {
                        "finalisekey": 1,
                        "item": "CASH",
                        "flag": 4161,
                        "status": 1,
                        "keytype": 1,
                        "value": 19,
                        "qty": 1
                    }
                ],
                "fixedtotals": [
                    {
                        "fixedtotal": 1,
                        "item": "NET sales",
                        "flag": 0,
                        "value": 19,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 2,
                        "item": "GROSS Sales",
                        "flag": 0,
                        "value": 20,
                        "qty": 2
                    },
                    {
                        "fixedtotal": 4,
                        "item": "CASH in Drawer",
                        "flag": 0,
                        "value": 19,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 12,
                        "item": "TOTAL in Drawer",
                        "flag": 0,
                        "value": 19,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 16,
                        "item": "Discount Total",
                        "flag": 0,
                        "value": 1,
                        "qty": 1
                    },
                    {
                        "fixedtotal": 19,
                        "item": "Covers",
                        "flag": 0,
                        "value": 0,
                        "qty": 1
                    }
                ],
                "itemcount": 2,
                "locationnumber": 0,
                "netsaletotal": 19,
                "ordernumber": 118,
                "points": 0,
                "room": "",
                "saleid": "10098009447050623",
                "saletotal": 19,
                "site": 10,
                "table": 0,
                "taxtable": [
                    {
                        "tax": 3,
                        "item": "VAT @ 20%",
                        "flag": 1,
                        "value": 3.17
                    }
                ],
                "till": 98,
                "time": "10:21:00",
                "tranactionkeys": [
                    {
                        "transactionkey": 9,
                        "item": "-%",
                        "flag": 225,
                        "status": 1,
                        "keytype": 28,
                        "value": 1,
                        "qty": 100
                    }
                ]
            },
            "items": [
                {
                    "plu": 54,
                    "item": "Garlic_Mushrooooooooooms",
                    "department": 2,
                    "plu_group": 7,
                    "status": 4,
                    "value": -1,
                    "qty": 0,
                    "pricelevel": 1
                },
                {
                    "plu": 54,
                    "item": "Garlic_Mushrooooooooooms",
                    "department": 2,
                    "plu_group": 7,
                    "status": 0,
                    "value": 20,
                    "qty": 2,
                    "pricelevel": 1
                }
            ]
        }
    ],
    "status": 1
}

fixedTotalisers

Method: GET

Description: Retrives a summary of sales grouped by Fixed Totalisers for a time period

Parameters:

Returns: a summary of sales grouped by fixed totalisers for the given time period

Sample request:

https://api.touchoffice.net/sales/fixedTotalisers?TAK=XXXXXXXXXX&site=1&date_start=2019-01-01&time_start=00:00&date_end=2019-02-01&time_end=23:59

Sample response:

{
    "sales": [
        {
            "record": 1,
            "name": "NET Sales",
            "quantity": 1,
            "value": 6.4,
            "flag": 0
        },
        {
            "record": 2,
            "name": "GROSS Sales",
            "quantity": 2,
            "value": 6.4,
            "flag": 0
        },
        {
            "record": 4,
            "name": "CASH in Drawer",
            "quantity": 1,
            "value": 6.4,
            "flag": 0
        },
        {
            "record": 12,
            "name": "TOTAL in Drawer",
            "quantity": 1,
            "value": 6.4,
            "flag": 0
        }
    ],
    "status": 1
}

finaliseKeys

Method: GET

Description: Retrives a summary of sales grouped by Finalise Keys for a time period

Parameters:

Returns: a summary of sales grouped by finalise keys for the given time period

Sample request:

https://api.touchoffice.net/sales/finaliseKeys?TAK=XXXXXXXXXX&site=1&date_start=2019-01-01&time_start=00:00&date_end=2019-02-01&time_end=23:59

Sample response:

{
    "sales": [
        {
            "record": 1,
            "name": "CASH",
            "quantity": 11,
            "value": 238.16,
            "flag": 0
        },
        {
            "record": 3,
            "name": "CREDIT CARD",
            "quantity": 2,
            "value": 25.89,
            "flag": 340
        },
        {
            "record": 6,
            "name": "£10",
            "quantity": 1,
            "value": 1.92,
            "flag": 1
        },
        {
            "record": 7,
            "name": "£20",
            "quantity": 1,
            "value": 3.82,
            "flag": 1
        }
    ],
    "status": 1
}

transactionKeys

Method: GET

Description: Retrives a summary of sales grouped by Transaction Keys for a time period

Parameters:

Returns: a summary of sales grouped by transaction keys for the given time period

Sample request:

https://api.touchoffice.net/sales/transactionKeys?TAK=XXXXXXXXXX&site=1&date_start=2019-01-01&time_start=00:00&date_end=2019-02-01&time_end=23:59

Sample response:

{
    "sales": [
        {
            "record": 1,
            "name": "Error Corr",
            "quantity": 6,
            "value": 12.54,
            "flag": 40003
        },
        {
            "record": 5,
            "name": "New Balance",
            "quantity": 2,
            "value": 63.32,
            "flag": 0
        },
        {
            "record": 9,
            "name": "-%",
            "quantity": 1,
            "value": 4.33,
            "flag": 343
        },
        {
            "record": 12,
            "name": "Use Deposit",
            "quantity": 2,
            "value": 35,
            "flag": 0
        }
    ],
    "status": 1
}

Receipts and Bills

receipts

Method: GET

Description:Retrives receipt data for a chosen sale, or receives multiple receipts within a given time period for a site.

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/receiptsAndBills/receipts?TAK=XXXXXXXXXX&sale=1099001972120516

Sample response:

{
  "receipts": [
    {
      "body": [
        "Mikey             REG          CLOUDTEST",
        "THURSDAY 12 MAY 2016        14:16 001972",
        "                                              ",
        "==============================================",
        "       QUOTE NO: 798                       ",
        "==============================================",
        "                                              ",
        "1     Coke/Pepsi                   £1.90",
        "1     Fruit Shoot                  £1.00",
        "1     Lemonade                     £1.90",
        "      DISCOUNT                    £-1.00",
        "      POINTS EARNED:                 480",
        "                                              ",
        "                        3 No                  ",
        "      TOTAL                   £3.80   ",
        "      £10                         £10.00",
        "      CHANGE                 £6.20    ",
        "------------------------------------------    ",
        " John Smith                        00001      ",
        "                                              ",
        " POINTS: 6390, This is worth £63.90           "
      ],
      "header": {
        "mode": 1,
        "saleid": "1099001972120516",
        "site": 1,
        "till": 99,
        "tillname": "Cloud Dev Till",
        "datetime": "2016-05-12 14:16:00",
        "ordernumber": 798,
        "consecutivenumber": 1972,
        "clerknumber": 13,
        "clerkname": "Mikey",
        "saletotal": 3.8,
        "itemcount": 3,
        "check": 0,
        "table": 0,
        "covers": 0,
        "location": null,
        "finalisekeys": [
          "£10"
        ],
        "transactionkeys": [
          "Tips"
        ],
        "customer": {
          "customernumber": 1,
          "customername": "John Smith",
          "pointsearned": "480",
          "pointsworth": " £63.90",
          "totalpoints": "6390"
        }
      },
      "items": [
        {
          "plu": 17,
          "item": "Coke/Pepsi",
          "qty": 1,
          "value": 1.9
        },
        {
          "plu": 21,
          "item": "Fruit Shoot",
          "qty": 1,
          "value": 1
        },
        {
          "plu": 19,
          "item": "Lemonade",
          "qty": 1,
          "value": 1.9
        }
      ]
    }
  ],
  "status": 1
}

Sample request:

https://api.touchoffice.net/receiptsAndBills/receipts?TAK=XXXXXXXXXX&site=1&date_start=2016-05-12&time_start=11:30&date_end=2016-05-12&time_end=23:59

Sample response:

{
  "receipts": [
    {
      "body": [
        "Chris             REG          CLOUDTEST",
        "THURSDAY 12 MAY 2016        12:04 001967",
        "                                              ",
        "==============================================",
        "       QUOTE NO: 795                       ",
        "==============================================",
        "                                              ",
        "1     Becks                        £2.50",
        "1     Red Stripe                   £3.10",
        "                                              ",
        "                        2 No                  ",
        "      TOTAL                   £5.60   ",
        "      CASH                         £5.60"
      ],
      "header": {
        "mode": 1,
        "saleid": "1099001967120516",
        "site": 1,
        "till": 99,
        "tillname": "Cloud Dev Till",
        "datetime": "2016-05-12 12:04:00",
        "ordernumber": 795,
        "consecutivenumber": 1967,
        "clerknumber": 1,
        "clerkname": "Chris",
        "saletotal": 5.6,
        "itemcount": 2,
        "check": 0,
        "table": 0,
        "covers": 0,
        "location": null,
        "finalisekeys": [
          "CASH"
        ],
        "transactionkeys": 0,
        "customer": {
          "customernumber": 0,
          "customername": null
        }
      },
      "items": [
        {
          "plu": 9,
          "item": "Becks",
          "qty": 1,
          "value": 2.5
        },
        {
          "plu": 13,
          "item": "Red Stripe",
          "qty": 1,
          "value": 3.1
        }
      ]
    },
    {
      "body": [
        "Byles             REG          CLOUDTEST",
        "THURSDAY 12 MAY 2016        12:06 001968",
        "                                              ",
        "==============================================",
        "       QUOTE NO: 796                       ",
        "==============================================",
        "                                              ",
        "1     Vodka                        £1.40",
        "1     Gin                          £1.40",
        "1     Beam, Me, Up, Scotty         £3.30",
        "1     Nessie Jessie                £3.30",
        "1     Cocktail                     £5.00",
        "      DISCOUNT COCKTAIL           £-0.02",
        "                                              ",
        "                        5 No                  ",
        "      TOTAL                 £14.38    ",
        "      CASH                        £14.38"
      ],
      "header": {
        "mode": 1,
        "saleid": "1099001968120516",
        "site": 1,
        "till": 99,
        "tillname": "Cloud Dev Till",
        "datetime": "2016-05-12 12:06:00",
        "ordernumber": 796,
        "consecutivenumber": 1968,
        "clerknumber": 2,
        "clerkname": "Byles",
        "saletotal": 14.38,
        "itemcount": 5,
        "check": 0,
        "table": 0,
        "covers": 0,
        "location": null,
        "finalisekeys": [
          "CASH"
        ],
        "transactionkeys": 0,
        "customer": {
          "customernumber": 0,
          "customername": null
        }
      },
      "items": [
        {
          "plu": 26,
          "item": "Vodka 9\"",
          "qty": 1,
          "value": 1.4
        },
        {
          "plu": 27,
          "item": "Gin",
          "qty": 1,
          "value": 1.4
        },
        {
          "plu": 34,
          "item": "Beam, Me, Up, Scotty",
          "qty": 1,
          "value": 3.3
        },
        {
          "plu": 33,
          "item": "Nessie Jessie",
          "qty": 1,
          "value": 3.3
        },
        {
          "plu": 35,
          "item": "Cocktail",
          "qty": 1,
          "value": 5
        }
      ]
    }
  ],
  "status": 1
}

Stock

StockTake

Method: POST

Description:Called to add a stock take sheet. Site must be in Stocktake mode

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/StockTake?TAK=XXXXXXXXXX&site=1

Sample response:

{
"status": 1,
"msg":"OK",
"stockTakeID": 5,
"stockTakeSheetID":1
}

Delivery

Method: POST

Description:This is used to create a new DELIVERY

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/Delivery?TAK=XXXXXXXXXX&site=1

Sample response:

{
"status": 1,
"msg":"OK"
}

OrderList

Method: POST

Description:Retrieve a list of current Posted Orders

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/OrderList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "postedOrders": [
    {
      "orderid": "20",
      "notes": ""
    },
    {
      "orderid": "21",
      "notes": ""
    },
    {
      "orderid": "18",
      "notes": ""
    },
    {
      "orderid": "16",
      "notes": ""
    },
    {
      "orderid": "14",
      "notes": ""
    }
  ]
}

OrderList

Method: GET

Description:Retrieve a list of current Posted Orders

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/OrderList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "postedOrders": [
    {
      "orderid": "20",
      "notes": ""
    },
    {
      "orderid": "21",
      "notes": ""
    },
    {
      "orderid": "18",
      "notes": ""
    },
    {
      "orderid": "16",
      "notes": ""
    },
    {
      "orderid": "14",
      "notes": ""
    }
  ]
}

ProductCheck

Method: POST

Description: Check the actual product settings against the ones advertised on the SEL

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/ProductCheck?TAK=XXXXXXXXXX&site=1

Sample response:

{
"status": 1
"msg": "Ok"
}

Wastage

Method: POST

Description:This is used to create a new WASTAGE

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/Wastage?TAK=XXXXXXXXXX&site=1

Sample response:

{
"status": 1,
"msg":"OK",
"orderID": 5
}

Order

Method: POST

Description:This is used to create a new ORDER

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/Order?TAK=XXXXXXXXXX&site=1

Sample response:

{
"status": 1,
"msg":"OK",
"orderID": 5
}

StockList

Method: POST

Description:Retrieve current stock for all PLU's

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/StockList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "stockItems": [
    {
      "plu": 1,
      "stock": 140,
      "frozenStock": 150,
      "stockMin": 100,
      "stockMax": 200
    },
    {
      "plu": 2,
      "stock": 650,
      "frozenStock": 700,
      "stockMin": 600,
      "stockMax": 800
    },
    {
      "plu": 3,
      "stock": 164.5,
      "frozenStock": 164.5,
      "stockMin": 200,
      "stockMax": 700
    },
    {
      "plu": 4,
      "stock": 123,
      "frozenStock": 143,
      "stockMin": 30,
      "stockMax": 1000
    }
  ]
}

StockList

Method: GET

Description:Retrieve current stock for all PLU's

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/StockList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "stockItems": [
    {
      "plu": 1,
      "stock": 140,
      "frozenStock": 150,
      "stockMin": 100,
      "stockMax": 200
    },
    {
      "plu": 2,
      "stock": 650,
      "frozenStock": 700,
      "stockMin": 600,
      "stockMax": 800
    },
    {
      "plu": 3,
      "stock": 164.5,
      "frozenStock": 164.5,
      "stockMin": 200,
      "stockMax": 700
    },
    {
      "plu": 4,
      "stock": 123,
      "frozenStock": 143,
      "stockMin": 30,
      "stockMax": 1000
    }
  ]
}

SupplierList

Method: POST

Description: List all available suppliers

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/SupplierList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "supplierList": [
    {
      "id": 1,
      "ref": "ICRTone",
      "accRef": "",
      "name": "Test Supplier one"
    },
    {
      "id": 2,
      "ref": "ICRTest",
      "accRef": "",
      "name": "Test 2 Supplier"
    }
  ]
}

SupplierList

Method: GET

Description: List all available suppliers

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/SupplierList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "supplierList": [
    {
      "id": 1,
      "ref": "ICRTone",
      "accRef": "",
      "name": "Test Supplier one"
    },
    {
      "id": 2,
      "ref": "ICRTest",
      "accRef": "",
      "name": "Test 2 Supplier"
    }
  ]
}

CaseList

Method: POST

Description: List all available case sizes

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/CaseList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "caseList": [
    {
      "id": 1,
      "name": "testcase",
      "size": 25.5
    },
    {
      "id": 2,
      "name": "Wine 12 bottle",
      "size": 12
    },
    {
      "id": 3,
      "name": "test case 3",
      "size": 6
    },
    {
      "id": 4,
      "name": "Barrel Keg",
      "size": 88
    }
  ]
}

CaseList

Method: GET

Description:List all available case sizes

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/CaseList?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "caseList": [
    {
      "id": 1,
      "name": "testcase",
      "size": 25.5
    },
    {
      "id": 2,
      "name": "Wine 12 bottle",
      "size": 12
    },
    {
      "id": 3,
      "name": "test case 3",
      "size": 6
    },
    {
      "id": 4,
      "name": "Barrel Keg",
      "size": 88
    }
  ]
}

FindStock

Method: POST

Description: Retrieve current stock for a PLU

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/FindStock?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok",
  "stockList": [
    {
      "siteNumber": "1",
      "siteName": "Cols Pub Place",
      "stock": "200.000"
    }
  ]
}

Set

Method: POST

Description: Set the stock for one or more PLUs to the specified quantities, limited to 1000 PLUs per request

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/Set?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok"
}

Adjust

Method: POST

Description: Adjust the current stock for one or more PLUs to the specified quantities, limited to 1000 PLUs per request

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/stock/Adjust?TAK=XXXXXXXXXX&site=1

Sample response:

{
  "status": 1,
  "msg": "Ok"
}

Vouchers

details

Method: GET

Description: Returns an array of vouchers with their details

Parameters:

Returns: An array of vouchers

Sample request:

 https://api.touchoffice.net/vouchers?TAK=XXXXXXXXXX&site=1&type=1

Sample response:

{
    "vouchers": [
        {
			"id": 2,
			"site": 0,
			"number": "XMSNWVPZRG",
			"type": 1,
			"name": "£10 Gift Voucher",
			"desc": "10 lots of £10 vouchers",
			"startdate": "2016-12-02 01:00:00",
			"enddate": "2017-12-02 12:36:00",
			"value": 1000,
			"flag": 0,
			"maxuses": 0,
			"uses": 3,
			"used_amount": 1000,
			"minsalevalue": null,
			"group": null,
			"ifgroup": null,
			"dept": null,
			"ifdept": null,
			"plu": null,
			"ifplu": "0",
			"active": true
		},
		{
			"id": 3,
			"site": 0,
			"number": "OGWNFHUSFK",
			"type": 1,
			"name": "£10 Gift Voucher",
			"desc": "10 lots of £10 vouchers",
			"startdate": "2016-12-02 00:00:00",
			"enddate": "2017-12-02 00:00:00",
			"value": 1000,
			"flag": 0,
			"maxuses": 0,
			"uses": 3,
			"used_amount": 3000,
			"minsalevalue": null,
			"group": null,
			"ifgroup": null,
			"dept": null,
			"ifdept": null,
			"plu": null,
			"ifplu": "0",
			"active": true
		}
    ],
    "status": 1
}

Sample request:

 https://api.touchoffice.net/vouchers/ABCDEF123?TAK=XXXXXXXXXX

Sample response:

{
    "vouchers": [
        {
			"id": 146,
			"site": 0,
            "number": "ABCDEF123",
			"type": 1,
			"name": "Test",
			"desc": "Test Desc",
			"startdate": "2016-12-08 00:00:00",
			"enddate": "2017-12-08 00:00:00",
			"value": 1000000,
			"flag": 0,
			"maxuses": 0,
			"uses": 40,
			"used_amount": 106623,
			"minsalevalue": null,
			"group": null,
			"ifgroup": null,
			"dept": null,
			"ifdept": null,
			"plu": null,
			"ifplu": null,
			"active": true
		}
    ],
    "status": 1
}

new

Method: POST

Description: Called to create a new voucher

Parameters:

Returns: The full voucher details that has been created

Sample request:

https://api.touchoffice.net/vouchers?TAK=XXXXXXXXXX

Request body:

[
	{
		"site": 0,
		"number": "ABCDEF123",
		"type": 1,
		"name": "£15 off voucher",
		"desc": "Test Desc",
		"startdate": "2016-12-08 00:00:00",
		"enddate": "2017-12-08 00:00:00",
		"value": 1500,
		"flag": 0,
		"maxuses": 0,
		"minsalevalue": null,
		"group": null,
		"ifgroup": null,
		"dept": null,
		"ifdept": null,
		"plu": null,
		"ifplu": null,
		"active": true
	}
]

Sample response:

{
	"vouchers": [
		{
			"id": 146,
			"site": 0,
			"number": "ABCDEF123",
			"type": 1,
			"name": "£15 off voucher",
			"desc": "Test Desc",
			"startdate": "2016-12-08 00:00:00",
			"enddate": "2017-12-08 00:00:00",
			"value": 1500,
			"flag": 0,
			"maxuses": 0,
			"uses": 0,
			"used_amount": 0,
			"minsalevalue": null,
			"group": null,
			"ifgroup": null,
			"dept": null,
			"ifdept": null,
			"plu": null,
			"ifplu": null,
			"active": true
		}
    ],
	"status": 1
}

update

Method: PATCH

Description: Called to update an existing voucher's details

Parameters:

Returns: The full voucher details that has been created

Sample request:

https://api.touchoffice.net/vouchers/ABCDEF123?TAK=XXXXXXXXXX

Request body:

{
	"name": "£15 off voucher"
}

Sample response:

{
    "voucher": {
			"id": 146,
			"site": 0,
			"number": "ABCDEF123",
			"type": 1,
			"name": "£15 off voucher",
			"desc": "Test Desc",
			"startdate": "2016-12-08 00:00:00",
			"enddate": "2017-12-08 00:00:00",
			"value": 1500,
			"flag": 0,
			"maxuses": 0,
			"uses": 0,
			"used_amount": 0,
			"minsalevalue": null,
			"group": null,
			"ifgroup": null,
			"dept": null,
			"ifdept": null,
			"plu": null,
			"ifplu": null,
			"active": true
    },
	"status": 1
}

delete

Method: DELETE

Description: Called to delete a voucher

Parameters:

Returns: The voucher number of the deleted voucher

Sample request:

https://api.touchoffice.net/vouchers/ABCDEF123?TAK=XXXXXXXXXX

Sample response:

{
    "voucher_number": "ABCDEF123",
	"status": 1
}

voucher transactions

Method: POST

Description: Logs the use of a voucher with a transaction

Parameters:

Returns:

Sample request:

https://api.touchoffice.net/voucher_transactions?TAK=XXXXXXXXXX

Request body:

{
	"site": 1,
	"saleID": 123456789023413153,
	"voucherNumber": "ABCDEF123",
	"datetime": "2018-04-23 12:31:00",
	"amount": 1000
}

Sample response:

{
	"status": 1
}

Webshop Sales

details

Method: GET

Description: Returns an array of Webshop sales with their details. By default order items are not returned, to retrieve the order items include the 'details' parameter

Parameters:

Returns:

Sample request:

 https://api.touchoffice.net/webshop_sales/7177?TAK=XXXXXXXXXX

Sample response:

{
    "webshop_sales": [
        {
          "Id": 7,
            "Site": 1,
            "Reference": "60060",
            "DateCreated": "2020-03-27T14:42:14+00:00",
            "TotalQuantity": 1,
            "TotalPrice": 500,
            "Items": [],
            "Customer": {
                "Name": "Mr Example",
                "Address1": "32 Example Avenue",
                "City": "Exter",
                "Postcode": "EX1 3PL",
                "Phone": "07123456789",
                "Email": "ExampleEmail@icrtouch.com"
            },
            "Delivery": {
                "Description": "Delivery",
                "Method": "delivery"
            },
            "Payment": {
                "Type": "CASH ON DELIVERY / C",
                "Method": "COD"
            },
            "Scheduling": {
                "Interval": -60,
                "Date": "0000-00-00 00:00:00  +00:00"
            },
            "OrderNote": "Ring the doorbell",
            "TouchPoint": [],
            "OrderStatus": 0,
            "LastError": ""
        }
    ],
    "status": 1
}

Returns:

Sample request:

 https://api.touchoffice.net/webshop_sales/7177?TAK=XXXXXXXXXX&details=true&touchpoint=true

Sample response:

{
    "webshop_sales": [
        {
          "Id": 21,
            "Site": 1,
            "Reference": "50737",
            "DateCreated": "2020-03-30T13:40:45+00:00",
            "TotalQuantity": 10,
            "TotalPrice": 14150,
            "Items": [
                {
                    "Plu": 1299,
                    "Name": "CARVERY",
                    "Price": 1000,
                    "Quantity": 1,
                    "Options": []
                },
                {
                    "Plu": 1511,
                    "Name": "COT PIE",
                    "Price": 1600,
                    "Quantity": 2,
                    "Options": []
                },
                {
                    "Plu": 1176,
                    "Name": "CHICK MADRAS",
                    "Price": 2400,
                    "Quantity": 3,
                    "Options": []
                },
                {
                    "Plu": 1351,
                    "Name": "BEEF LASAGNE",
                    "Price": 5400,
                    "Quantity": 6,
                    "Options": []
                },
                {
                    "Plu": 1599,
                    "Name": "BEEF STEW",
                    "Price": 800,
                    "Quantity": 1,
                    "Options": []
                },
                {
                    "Plu": 1227,
                    "Name": "FISH & CHIPS",
                    "Price": 800,
                    "Quantity": 1,
                    "Options": []
                },
                {
                    "Plu": 136,
                    "Name": "FIVE BEAN CHILLI",
                    "Price": 700,
                    "Quantity": 1,
                    "Options": []
                },
                {
                    "Plu": 1267,
                    "Name": "BREAD BUT PUD",
                    "Price": 350,
                    "Quantity": 1,
                    "Options": []
                },
                {
                    "Plu": 1547,
                    "Name": "BROWNIE",
                    "Price": 400,
                    "Quantity": 1,
                    "Options": []
                },
                {
                    "Plu": 1918,
                    "Name": "APPLE CRUMBLE",
                    "Price": 700,
                    "Quantity": 2,
                    "Options": []
                }
            ],
            "Customer": {
                "Name": "Mr Example",
                "Address1": "32 Example Avenue",
                "City": "Exter",
                "Postcode": "EX1 3PL",
                "Phone": "07123456789",
                "Email": "ExampleEmail@icrtouch.com"
            },
            "Delivery": {
                "Description": "Delivery",
                "Method": "delivery"
            },
            "Payment": {
                "Type": "CASH ON DELIVERY / C",
                "Method": "COD"
            },
            "Scheduling": {
                "Interval": -30,
                "Date": "2020-03-31T10:00:00+00:00"
            },
            "OrderNote": "Non-Contact Delivery ",
            "TouchPoint": {
                "DateSentToTill": "2020-03-31T10:00:45+00:00",
                "DateProcessedByTill": "2020-03-31T10:00:45+00:00",
                "EatInTakeout": "499",
                "CheckText": "Mr Example",
                "ReceiptLines": [
                    "----------------------------------------",
                    "õJ SCHEDULED õj",
                    "õJ 11:30 õj",
                    "CASH ON DELIVERY / COLLECTION ",
                    "õRNon-Contact Deliveryõr",
                    "õRõJ UNPAID õjõr"
                ]
            },
            "OrderStatus": 0,
            "LastError": ""
        }
    ],
    "status": 1
}

Tax

tax

Method: GET

Description: Returns an array of tax rates with their details

Parameters:

  • TAK String(30) the terminal access key
  • number Int(11) get a specific tax rate (optional)

Returns: An array of tax rates

Sample request:

 https://api.touchoffice.net/tax?TAK=XXXXXXXXXX

Sample response:

{
    "tax_rates": [
        {
            "number": "1",
            "name": "Zero Rate",
            "rate": "0",
            "addin": true
        },
        {
            "number": "2",
            "name": "VAT",
            "rate": "20",
            "addin": true
        }
    ],
    "status": 1
}
  


Page rendered in 0.0063 seconds