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
The following public methods are available
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"
}
}
}
}
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
}
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
}
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": ""
}
}
}
}
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": ""
}
}
}
}
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
}
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
}
]
}
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
}
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
}
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
}
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
}
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
}
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
}
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
}
Method: POST
Description:Called to add a stock take sheet. Site must be in Stocktake mode
Parameters:
{
"stockItems":
[
{
"items":6,
"plu":"1154",
"cases":0
},
{
"items":0,
"plu":"1156",
"cases":2
},
{
"items":0,
"plu":"100",
"cases":2
}
],
"reference":"fred",
"notes":"",
"dateTime":1473756351
}
Returns:
Sample request:
https://api.touchoffice.net/stock/StockTake?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1,
"msg":"OK",
"stockTakeID": 5,
"stockTakeSheetID":1
}
Method: POST
Description:This is used to create a new DELIVERY
Parameters:
{
"stockItems":
[
{
"items":6,
"plu":"83",
"cases":0
},
{
"items":0,
"plu":"84",
"cases":2
},
{
"items":0,
"plu":"85",
"cases":2
}
],
"reference":"fred",
"dateTime":1473756351,
"orderID":3,
"dNote":"D1234"
}
Returns:
Sample request:
https://api.touchoffice.net/stock/Delivery?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1,
"msg":"OK"
}
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": "100",
"notes": "Bar Snacks Order",
"orderedDate": "2023-09-05",
"expectedDelivery": "2023-09-07",
"supplierRef": "ICRTone"
},
{
"orderid": "107",
"notes": "Dray Delivery",
"orderedDate": "2023-09-13",
"expectedDelivery": "",
"supplierRef": "LocalBrewery"
},
{
"orderid": "110",
"notes": "Fruit baskets",
"orderedDate": "2023-09-13",
"expectedDelivery": "Next Tuesday",
"supplierRef": "BaNaNas"
},
{
"orderid": "115",
"notes": "",
"orderedDate": "2023-09-14",
"expectedDelivery": "",
"supplierRef": "LocalWholesale"
}
]
}
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": "100",
"notes": "Bar Snacks Order",
"orderedDate": "2023-09-05",
"expectedDelivery": "2023-09-07",
"supplierRef": "ICRTone"
},
{
"orderid": "107",
"notes": "Dray Delivery",
"orderedDate": "2023-09-13",
"expectedDelivery": "",
"supplierRef": "LocalBrewery"
},
{
"orderid": "110",
"notes": "Fruit baskets",
"orderedDate": "2023-09-13",
"expectedDelivery": "Next Tuesday",
"supplierRef": "BaNaNas"
},
{
"orderid": "115",
"notes": "",
"orderedDate": "2023-09-14",
"expectedDelivery": "",
"supplierRef": "LocalWholesale"
}
]
}
Method: POST
Description: Check the actual product settings against the ones advertised on the SEL
Parameters:
{
"stockItems":
[
{
"plu":"83",
"selRqd":1
},
{
"plu":"84",
"selRqd":1
},
{
"plu":"85",
"selRqd":1
}
],
"reference":"fred",
"dateTime":1473756351,
"orderID":33,
"dNote":"D1234"
}
Returns:
Sample request:
https://api.touchoffice.net/stock/ProductCheck?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1
"msg": "Ok"
}
Method: POST
Description:This is used to create a new WASTAGE
Parameters:
{
"stockItems":
[
{
"plu":"1",
"items":1,
"cases":0
},
{
"plu":"84",
"items":1,
"cases":2
},
{
"plu":"85",
"items":0,
"cases":2,
"caseCost":12.00,
"itemCost":1.20
}
],
"reference":"fred",
"notes":"My first ever wastage",
"dateTime":1473756351,
"dNote":"D1234",
"invoice":"I1234",
"suppRef":"Test Supp 1"
}
Returns:
Sample request:
https://api.touchoffice.net/stock/Wastage?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1,
"msg":"OK",
"orderID": 5
}
Method: POST
Description:This is used to create a new ORDER
Parameters:
{
"stockItems":
[
{
"plu":"1",
"items":1,
"cases":0
},
{
"plu":"84",
"items":1,
"cases":2
},
{
"plu":"85",
"items":0,
"cases":2,
"caseCost":12.00,
"itemCost":1.20
}
],
"reference":"fred",
"notes":"My first ever wastage",
"dateTime":1473756351,
"dNote":"D1234",
"invoice":"I1234",
"suppRef":"Test Supp 1"
}
Returns:
Sample request:
https://api.touchoffice.net/stock/Order?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1,
"msg":"OK",
"orderID": 5
}
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
}
]
}
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
}
]
}
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"
}
]
}
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"
}
]
}
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
}
]
}
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
}
]
}
Method: POST
Description: Retrieve current stock for a PLU
Parameters:
{
"plu":1
}
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"
}
]
}
Method: POST
Description: Set the stock for one or more PLUs to the specified quantities, limited to 1000 PLUs per request
Parameters:
{
"stock" : [
{
"plu" : 1,
"quantity" : 100,
"notes" : "Correcting stock"
}
]
}
Returns:
Sample request:
https://api.touchoffice.net/stock/Set?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1,
"msg": "Ok"
}
Method: POST
Description: Adjust the current stock for one or more PLUs to the specified quantities, limited to 1000 PLUs per request
Parameters:
{
"stock" : [
{
"plu" : 1,
"quantity" : -5,
"notes" : "Wastage"
}
]
}
Returns:
Sample request:
https://api.touchoffice.net/stock/Adjust?TAK=XXXXXXXXXX&site=1
Sample response:
{
"status": 1,
"msg": "Ok"
}
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
}
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
}
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
}
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
}
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
}
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
}
Method: GET
Description: Returns an array of tax rates with their details
Parameters:
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.0151 seconds