Example Requests
Introduction
Here are some examples of POS actions that the user can take, and the corresponding data in the APIs.
These example requests to not include the fields returned when the optional SERVICE_CHARGE
or ENRICHED_PAYLOAD
parameters are enabled. For more details on the content of these payloads, see Service Charge Feature and Enriched Payload Feature.
Charge to Room
Lightspeed will send a POST request to the /charge
endpoint with the receipt in the payload. In this request, the API key is passed in the request body along with the receipt information.
This POST request includes the reservationId
as well the methodCode
will always be IKPMS
POS Action
POS user charges a room charge
PMS API - Example POST request
{
"name": "Table 5",
"openDate": "2022-09-01T12:25:36.161Z",
"closeDate": "2022-09-01T12:27:33.266Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T12:27:33.243Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 1,
"amount": 11,
"methodName": "Room",
"reservationId": "001",
"methodCode":"IKPMS"
}
],
"receiptId": "R56397.3",
"receipt": null,
"uuid": "2tO3PMb6SVuEJj5v2eJc-Q==",
"id": null,
"initialAccountId": "A56397.3",
"fiscId": "A56397.3",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.3"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
{
"accountReference": "2tO3PMb6SVuEJj5v2eJc-Q==",
"accountFiscId": "A56397.3",
"receiptId": "R56397.3",
"source":{
"initialAccountId":"A56397.3"
},
"salesLines":[
{
"id": "S56397.3",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T12:26:27.902Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.4",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T12:26:28.631Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "IKPMS",
"description": "Room",
"paymentMethodId": 962442041491639,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"externalReference": "1000",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T12:25:36.161Z",
"timeOfCloseAndPaid": "2022-09-01T12:27:33.266Z",
"tableNumber": "5",
"tableName": "Table 5",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Void a Room Charge - Current Day
If a transaction has to be voided from a room because the wrong guest was chosen or the wrong items have been charged to the room, the whole guest check-in gets voided in the POS which will send a negative posting to the PMS.
The logic of the POS action "Void Payment" generates a new account, with the same sales lines in it - and negative values - (with a new uuid
/accountReference
) which triggers a new POST request.
POS Action
POS user triggers the void payment option at the POS
PMS API - Example POST request
{
"name": "Table 5",
"openDate": "2022-09-01T12:34:30.462Z",
"closeDate": "2022-09-01T12:34:30.471Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": -1,
"amount": -6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": -1,
"amount": -5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T12:34:30.470Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": -1,
"amount": -11,
"methodName": "Room",
"reservationId": "001",
"methodCode":"IKPMS"
}
],
"receiptId": "R56397.4",
"receipt": null,
"uuid": "u61aKzKJREO2Ee0i8gg-1Q==",
"id": null,
"initialAccountId": "A56397.3",
"fiscId": "A56397.4",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier":"A56397.4"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
The initialAccountId
refers to the original account (the positive posting). The previousAccountId
refers to the previous account that was created due to changes in the original account initialAccountId
.
The object type
, describes the type of transaction. In that example it’s “type”:”VOID”
.
{
"accountReference": "u61aKzKJREO2Ee0i8gg-1Q==",
"accountFiscId": "A56397.4",
"receiptId": "R56397.4",
"source":{
"initialAccountId": "A56397.3",
"previousAccountId":"A56397.3"
},
"salesLines":[
{
"id": "S56397.5",
"totalNetAmountWithTax": "-6.00",
"totalNetAmountWithoutTax": "-5.57",
"menuListPrice": "-6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T12:34:30.465Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason": "Andere",
"accountProfileCode":""
},
{
"id": "S56397.6",
"totalNetAmountWithTax": "-5.00",
"totalNetAmountWithoutTax": "-4.64",
"menuListPrice": "-5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T12:34:30.468Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason": "Andere",
"accountProfileCode":""
}
],
"payments":[
{
"code": "IKPMS",
"description": "Room",
"paymentMethodId": 962442041491639,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "-1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"externalReference": "1000",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T12:34:30.462Z",
"timeOfCloseAndPaid": "2022-09-01T12:34:30.471Z",
"tableNumber": "5",
"tableName": "Table 5",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "VOID",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason":"Andere"
}
Void a Room Charge - Following Day
If a transaction has to be refunded/voided from a room or company account because the wrong payment method or the wrong items have been charged to the room, the whole guest check-in must be voided on the POS.
Handling of VOIDS on a following day:
Check via room search if the guest/company account is still checked in Create a new transaction, with (-) refund items and post it to the same room/company account on which the transaction to be canceled is
A cancellation on the same day or on a following day is only possible and supported at the POS. A cancellation is equivalent to a (-) minus charge.
POS Action
POS user charges an account/a receipt with (-) negative items to a room
PMS API - Example POST request
{
"name": "Table 5",
"openDate": "2022-09-01T12:27:33.484Z",
"closeDate": "2022-09-01T12:40:01.677Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": -1,
"amount": -6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": -1,
"amount": -5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T12:40:01.651Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": -11,
"methodName": "Room",
"reservationId": "002",
"methodCode":"IKPMS"
}
],
"receiptId": "R56397.5",
"receipt": null,
"uuid": "7lgJIJkeTGaS_zzFEJ8e8A==",
"id": null,
"initialAccountId": "A56397.5",
"fiscId": "A56397.5",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.5"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does not reference an existing transaction, so the initialAccountId
is identical to the accountFiscId
.
The object type
, describes the type of transaction. In that example it’s “type”:”SALE”
.
{
"accountReference": "7lgJIJkeTGaS_zzFEJ8e8A==",
"accountFiscId": "A56397.5",
"receiptId": "R56397.5",
"source":{
"initialAccountId":"A56397.5"
},
"salesLines":[
{
"id": "S56397.7",
"totalNetAmountWithTax": "-6.00",
"totalNetAmountWithoutTax": "-5.57",
"menuListPrice": "-6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T12:39:33.725Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.8",
"totalNetAmountWithTax": "-5.00",
"totalNetAmountWithoutTax": "-4.64",
"menuListPrice": "-5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T12:39:34.455Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "IKPMS",
"description": "Room",
"paymentMethodId": 962442041491639,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "10.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"externalReference": "2000",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T12:27:33.484Z",
"timeOfCloseAndPaid": "2022-09-01T12:40:01.677Z",
"tableNumber": "5",
"tableName": "Table 5",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Non-Reservation Charges
These could be Cash, Credit Card or other Other payment methods. The difference between a non-reservation POST request and a room charge is identified through the
PaymentMethod. The non-reservation POST request doesn’t include the reservationId
which is part of the payment objects.
POS Action
POS user posts an account/a receipt with a non-room related payment method
PMS API - Example POST request
{
"name": "",
"openDate": "2022-09-01T12:43:16.858Z",
"closeDate": "2022-09-01T13:00:54.319Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
},
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:00:54.304Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 1,
"amount": 11,
"methodName": "Mastercard",
"reservationId": "",
"methodCode":"MASTERCARD"
}
],
"receiptId": "R56397.6",
"receipt": null,
"uuid": "3MfoeUOYRkS1uLM9O1sItQ==",
"id": null,
"initialAccountId": "A56397.7",
"fiscId": "A56397.7",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.7"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
{
"accountReference": "3MfoeUOYRkS1uLM9O1sItQ==",
"accountFiscId": "A56397.7",
"receiptId": "R56397.6",
"source":{
"initialAccountId":"A56397.7"
},
"salesLines":[
{
"id": "S56397.11",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:00:48.6Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.12",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:00:49.112Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "MASTERCARD",
"description": "Mastercard",
"paymentMethodId": 962442041491482,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T12:43:16.858Z",
"timeOfCloseAndPaid": "2022-09-01T13:00:54.319Z",
"tableName": "",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Void a Non-Reservation Charge - Current Day
If you need to void an account for a non-reservation related payment, just cancel the related account on the POS on the same day. The Void Receipt Action will trigger a new POST request, with a new UUID/accountReference.
The POST request will contain exactly the same values as for the original transaction, but as negative amounts.
POS Action
POS executes the “VOID RECEIPT ACTION”
PMS API - Example POST request
{
"name": "",
"openDate": "2022-09-01T13:06:43.292Z",
"closeDate": "2022-09-01T13:06:43.310Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 5,
"quantity": -1,
"amount": -5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
},
{
"unitAmount": 6,
"quantity": -1,
"amount": -6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:06:43.301Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": -1,
"amount": -11,
"methodName": "Mastercard",
"reservationId": "",
"methodCode":"MASTERCARD"
}
],
"receiptId": "R56397.7",
"receipt": null,
"uuid": "PPNm3dCNT9iMhUSDgfA8sw==",
"id": null,
"initialAccountId": "A56397.7",
"fiscId": "A56397.8",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.8"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
The initialAccountId
refers to the original account (the positive posting). The previousAccountId
refers to the previous account that was created due to changes in the original account initialAccountId
.
The object type
, describes the type of transaction. In that example it’s “type”:”VOID”
.
{
"accountReference": "PPNm3dCNT9iMhUSDgfA8sw==",
"accountFiscId": "A56397.8",
"receiptId": "R56397.7",
"source":{
"initialAccountId": "A56397.7",
"previousAccountId":"A56397.7"
},
"salesLines":[
{
"id": "S56397.13",
"totalNetAmountWithTax": "-5.00",
"totalNetAmountWithoutTax": "-4.64",
"menuListPrice": "-5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:06:43.294Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason": "Andere",
"accountProfileCode":""
},
{
"id": "S56397.14",
"totalNetAmountWithTax": "-6.00",
"totalNetAmountWithoutTax": "-5.57",
"menuListPrice": "-6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:06:43.297Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason": "Andere",
"accountProfileCode":""
}
],
"payments":[
{
"code": "MASTERCARD",
"description": "Mastercard",
"paymentMethodId": 962442041491482,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "-1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:06:43.292Z",
"timeOfCloseAndPaid": "2022-09-01T13:06:43.31Z",
"tableName": "",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "VOID",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason":"Andere"
}
Void a Non-Reservation Charge - Following Day
If you need to void an account for a non-room related payment, on the following day, you need to create a new account with exactly the same values as the origin account.
The posting needs to contain exactly the same values as for the positive transaction, but also using related negative amounts.
POS Action
POS user posts an account/a receipt with a non-room related payment method and negative values
PMS API - Example POST request
{
"name": "Table 6",
"openDate": "2022-09-01T13:17:07.983Z",
"closeDate": "2022-09-01T13:17:26.317Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 5,
"quantity": -1,
"amount": -5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
},
{
"unitAmount": 6,
"quantity": -1,
"amount": -6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:17:26.302Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": -11,
"methodName": "Mastercard",
"reservationId": "",
"methodCode":"MASTERCARD"
}
],
"receiptId": "R56397.8",
"receipt": null,
"uuid": "D3Z5PLY1R1uqhp-xXg5R_A==",
"id": null,
"initialAccountId": "A56397.9",
"fiscId": "A56397.9",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.9"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does not reference an existing transaction, so the initialAccountId
is identical to the accountFiscId
.
The object type
, describes the type of transaction. In that example it’s “type”:”SALE”
.
{
"accountReference": "D3Z5PLY1R1uqhp-xXg5R_A==",
"accountFiscId": "A56397.9",
"receiptId": "R56397.8",
"source":{
"initialAccountId":"A56397.9"
},
"salesLines":[
{
"id": "S56397.15",
"totalNetAmountWithTax": "-5.00",
"totalNetAmountWithoutTax": "-4.64",
"menuListPrice": "-5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:17:10.013Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.16",
"totalNetAmountWithTax": "-6.00",
"totalNetAmountWithoutTax": "-5.57",
"menuListPrice": "-6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:17:10.277Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "MASTERCARD",
"description": "Mastercard",
"paymentMethodId": 962442041491482,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:17:07.983Z",
"timeOfCloseAndPaid": "2022-09-01T13:17:26.317Z",
"tableNumber": "6",
"tableName": "Table 6",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Reopen an Account/Receipt - Void Payment Action
If an account/receipt that has already been paid for has to be reopened because, for example, it contains the wrong items or items are missing, only the payment (not the account) can be canceled.
For fiscal reasons, this function is possible on the same business day only and is equivalent to a cancellation.
The account can then be edited (items added or removed) and posted again with the same or a different payment method. Which causes another POST request with a new ID.
POS Action
POS user triggers the action “Void Payment”
PMS API - Example POST request
Step 1
A POST request is triggered by the payment of the account at the POS.
{
"name": "Table 8",
"openDate": "2022-09-01T13:21:56.826Z",
"closeDate": "2022-09-01T13:22:02.348Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:22:02.337Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 11,
"methodName": "Cash",
"reservationId": "",
"methodCode":"CASH"
}
],
"receiptId": "R56397.11",
"receipt": null,
"uuid": "a82Z-p8TSK2M1aOzeWz4hw==",
"id": null,
"initialAccountId": "A56397.13",
"fiscId": "A56397.13",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.13"
}
Step 2
The POS action "Reopen an account" triggers a new POST request, which is a POST request with negative (-) variables (identical to the variables from step 1).
This POST request is identical to the "Void Action".
{
"name": "Table 8",
"openDate": "2022-09-01T13:22:43.692Z",
"closeDate": "2022-09-01T13:22:43.700Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": -1,
"amount": -6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": -1,
"amount": -5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:22:43.700Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": -11,
"methodName": "Cash",
"reservationId": "",
"methodCode":"CASH"
}
],
"receiptId": "R56397.12",
"receipt": null,
"uuid": "IRyIrkWyTuqSdhrH8WJ94Q==",
"id": null,
"initialAccountId": "A56397.13",
"fiscId": "A56397.14",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.14"
}
Step 3
The original account (Step 1) is now open again in the POS and can be edited by the POS user. Items can be added or removed, and/or a different payment method can be used to trigger a new POS request.
{
"name": "Table 8",
"openDate": "2022-09-01T13:22:43.917Z",
"closeDate": "2022-09-01T13:26:50.504Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:26:50.490Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 11,
"methodName": "Visa",
"reservationId": "",
"methodCode":"VISA"
}
],
"receiptId": "R56397.13",
"receipt": null,
"uuid": "2ziWIkZCRwWgZ90myTHe5Q==",
"id": null,
"initialAccountId": "A56397.13",
"fiscId": "A56397.15",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.15"
}
Financial API - Example GET response
Step 1
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
{
"accountReference": "a82Z-p8TSK2M1aOzeWz4hw==",
"accountFiscId": "A56397.13",
"receiptId": "R56397.11",
"source":{
"initialAccountId":"A56397.13"
},
"salesLines":[
{
"id": "S56397.23",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:21:59.224Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.24",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:21:59.654Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "CASH",
"description": "Cash",
"paymentMethodId": 962442041491481,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:21:56.826Z",
"timeOfCloseAndPaid": "2022-09-01T13:22:02.348Z",
"tableNumber": "8",
"tableName": "Table 8",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Step 2
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does reference an existing transaction, so the initialAccountId
is a reference to the account from “Step 1”.
The object type
, describes the type of transaction. In this example it’s “type”:”VOID”
.
{
"accountReference": "IRyIrkWyTuqSdhrH8WJ94Q==",
"accountFiscId": "A56397.14",
"receiptId": "R56397.12",
"source":{
"initialAccountId": "A56397.13",
"previousAccountId":"A56397.13"
},
"salesLines":[
{
"id": "S56397.25",
"totalNetAmountWithTax": "-6.00",
"totalNetAmountWithoutTax": "-5.57",
"menuListPrice": "-6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:22:43.694Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason": "Andere",
"accountProfileCode":""
},
{
"id": "S56397.26",
"totalNetAmountWithTax": "-5.00",
"totalNetAmountWithoutTax": "-4.64",
"menuListPrice": "-5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "-1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:22:43.697Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason": "Andere",
"accountProfileCode":""
}
],
"payments":[
{
"code": "CASH",
"description": "Cash",
"paymentMethodId": 962442041491481,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:22:43.692Z",
"timeOfCloseAndPaid": "2022-09-01T13:22:43.7Z",
"tableNumber": "8",
"tableName": "Table 8",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "VOID",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName": "iPad3",
"voidReason":"Andere"
}
Step 3
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
This example does reference an existing transaction, so the "initialAccountId" is a reference to the original account from “Step 1” the object "previousAccountId" is a reference to the voided payment from “Step 2”.
The object type
, describes the type of transaction. In this example it’s “type”:”RECALL”
.
{
"accountReference": "2ziWIkZCRwWgZ90myTHe5Q==",
"accountFiscId": "A56397.15",
"receiptId": "R56397.13",
"source":{
"initialAccountId": "A56397.13",
"previousAccountId":"A56397.14"
},
"salesLines":[
{
"id": "S56397.27",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:22:43.919Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.28",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:22:43.923Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "VISA",
"description": "Visa",
"paymentMethodId": 962442041491484,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:22:43.917Z",
"timeOfCloseAndPaid": "2022-09-01T13:26:50.504Z",
"tableNumber": "8",
"tableName": "Table 8",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "RECALL",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Corrections of Tips on a Closed Account/Receipt
If the amount of the tip needs to be corrected for an account that has already been closed, this can be done without canceling the account (from the point of view of the POS: fiscal reasons).
No correction/void is recorded in the POS, only a correction of the tip amount is recorded.
A correction charge of the items and the tip is sent to the PMS as a (-) transaction, as well as the identical items as a (+) charge with the correct tip amount. (Step 2)
POS Action
POS user posts a room charge
PMS API - Example POST request
Step 1
The original posting, which contains the object "gratuity": 1.
{
"name": "Table 55",
"openDate": "2022-09-01T13:21:43.824Z",
"closeDate": "2022-09-01T13:39:41.426Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T13:39:41.414Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 1,
"amount": 11,
"methodName": "Visa",
"reservationId": "",
"methodCode":"VISA"
}
],
"receiptId": "R56397.14",
"receipt": null,
"uuid": "rH7J05HjQoyhvQ3nUmxTWg==",
"id": null,
"initialAccountId": "A56397.12",
"fiscId": "A56397.12",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.12"
}
Step 2
Correcting the tip triggers a new POST request, the payment method remains unaffected. The object "gratuity":11" contains the corrected amount. This POST request doesn’t contain any transaction lines.
POS Action
POS user changes the amount of TIP on a closed account
{
"name": "Table 55",
"openDate": "2022-09-01T13:40:49.260Z",
"closeDate": "2022-09-01T13:40:49.266Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
],
"payments":[
{
"paymentDate": "2022-09-01T13:40:49.264Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": -1,
"amount": -11,
"methodName": "Visa",
"reservationId": "",
"methodCode":"VISA"
},
{
"paymentDate": "2022-09-01T13:40:49.265Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 11,
"amount": 11,
"methodName": "Visa",
"reservationId": "",
"methodCode":"VISA"
}
],
"receiptId": "R56397.15",
"receipt": null,
"uuid": "O0VLismgTyuVuNkBCBS7rA==",
"id": null,
"initialAccountId": "A56397.12",
"fiscId": "A56397.16",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.16"
}
Financial API - Example GET response
Step 1
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
{
"accountReference": "rH7J05HjQoyhvQ3nUmxTWg==",
"accountFiscId": "A56397.12",
"receiptId": "R56397.14",
"source":{
"initialAccountId": "A56397.12",
},
"salesLines":[
{
"id": "S56397.21",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T13:21:43.827Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.22",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T13:21:43.831Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "VISA",
"description": "Visa",
"paymentMethodId": 962442041491484,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:21:43.824Z",
"timeOfCloseAndPaid": "2022-09-01T13:39:41.426Z",
"tableNumber": "55",
"tableName": "Table 55",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Step 2
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does reference an existing transaction, so the "initialAccountId" is a reference to the account from “Step 1”.
The object type
, describes the type of transaction. In this example it’s “type”:”UPDATE”
.
{
"accountReference": "O0VLismgTyuVuNkBCBS7rA==",
"accountFiscId": "A56397.16",
"receiptId": "R56397.15",
"source":{
"initialAccountId": "A56397.12",
"previousAccountId":"A56397.12"
},
"salesLines":[
],
"payments":[
{
"code": "VISA",
"description": "Visa",
"paymentMethodId": 962442041491484,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "-1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
},
{
"code": "VISA",
"description": "Visa",
"paymentMethodId": 962442041491484,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "11.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:40:49.26Z",
"timeOfCloseAndPaid": "2022-09-01T13:40:49.266Z",
"tableNumber": "55",
"tableName": "Table 55",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "UPDATE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Charge Tips Without Revenue Items
If a tip is to be added to a transaction, room posting or cash/credit card payment, without the transaction containing revenue-relevant items (in a dedicated accounting group), this can be done via a dummy item which is managed as a zero-price item in the POS.
In this way, the zero-price item is charged and the tip amount is added during the payment process.
POS Action
POS user posts an account/a receipt
PMS API - Example request
{
"name": "Table 8",
"openDate": "2022-09-01T13:39:41.609Z",
"closeDate": "2022-09-01T14:10:43.339Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 0,
"quantity": 1,
"amount": 0,
"description": "Tip",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491649,
"groupName": "Tip",
"taxId": 962442041491465,
"taxName": "MwSt. 0%",
"taxRate": 1,
"taxIncluded": true,
"sku":"10"
}
],
"payments":[
{
"paymentDate": "2022-09-01T14:10:43.313Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 10,
"amount": 0,
"methodName": "Room",
"reservationId": "001",
"methodCode":"IKPMS"
}
],
"receiptId": "R56397.16",
"receipt": null,
"uuid": "olnhPhUiSp-UXNojz-pi5g==",
"id": null,
"initialAccountId": "A56397.17",
"fiscId": "A56397.17",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.17"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does not reference an existing transaction, so the "initialAccountId" is identical to the "accountFiscId".
The object type
, describes the type of transaction. In this example it’s “type”:”SALE”
.
{
"accountReference": "olnhPhUiSp-UXNojz-pi5g==",
"accountFiscId": "A56397.17",
"receiptId": "R56397.16",
"source":{
"initialAccountId":"A56397.17"
},
"salesLines":[
{
"id": "S56397.29",
"totalNetAmountWithTax": "0.00",
"totalNetAmountWithoutTax": "0.00",
"menuListPrice": "0.00",
"unitCostPrice": "0.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "10",
"name": "Tip",
"statisticGroup": "Tip",
"quantity": "1.000",
"taxRatePercentage": "0.00",
"accountingGroup":{
"accountingGroupId": 962442041491649,
"name": "Tip",
"code":"123"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Tip"
}
],
"timeOfSale": "2022-09-01T14:04:59.436Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "IKPMS",
"description": "Room",
"paymentMethodId": 962442041491639,
"netAmountWithTax": "0.00",
"currency": "CHF",
"tip": "10.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"externalReference": "1000",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T13:39:41.609Z",
"timeOfCloseAndPaid": "2022-09-01T14:10:43.339Z",
"tableNumber": "8",
"tableName": "Table 8",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Split an Account/Receipt by Number of Covers, Items or Seats
If an account has to be split, it can be divided by the number of covers, items or seats (the logic is for that kind of split the same):
Account A56397.6: 1 x Alcohol = 5,00 CHF 1 x Kitchen = 6,00 CHF
In this case, the total amount of 11,00 CHF is divided by 2 covers:
Account: A58534.1 = 11,00 CHF/2 covers:
A58534.1 = 5,50 CHF (The account remains) 0,5 Alcohol = 2,50 CHF 0,5 Kitchen = 3,00 CHF
The split creates a new account, with his own reference:
A58534.2 = 5,50 CHF (The account remains) 0,5 Alcohol = 2,50 CHF 0,5 Kitchen = 3,00 CHF
POS Action
POS user charges an account/a receipt with (-) negative items to a room
PMS API - Example request
Step 1
The objects "quantity": 0.50000, & "amount":2.5000, specify the amount & quantity of the item.
{
"name": "Table 5.1",
"openDate": "2022-10-18T13:46:45.735Z",
"closeDate": "2022-10-18T13:46:48.632Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 58534,
"transactions":[
{
"unitAmount": 6,
"quantity": 0.50000,
"amount": 3,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 0.50000,
"amount": 2.5000,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-10-18T13:46:48.620Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 5.5000,
"methodName": "Cash",
"reservationId": "",
"methodCode":"CASH"
}
],
"receiptId": "R58534.1",
"receipt": null,
"uuid": "IDzTA4uqQTiV48WdNncpyA==",
"id": null,
"initialAccountId": "A58534.1",
"fiscId": "A58534.2",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A58534.2"
}
Step 2
The split created a new account/receipt in the POS (A56397.18), when the new account/receipt is paid, a new POST request is executed.
The objects "quantity": 0.50000, & "amount":2.5000, specify the amount & quantity of the item.
{
"name": "Table 5",
"openDate": "2022-10-18T13:46:17.677Z",
"closeDate": "2022-10-18T13:46:53.684Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 58534,
"transactions":[
{
"unitAmount": 6,
"quantity": 0.50000,
"amount": 3,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 0.50000,
"amount": 2.5000,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-10-18T13:46:53.672Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 5.5000,
"methodName": "Mastercard",
"reservationId": "",
"methodCode":"MASTERCARD"
}
],
"receiptId": "R58534.2",
"receipt": null,
"uuid": "0ysaW25mSB6emGpfCE16Hg==",
"id": null,
"initialAccountId": "A58534.1",
"fiscId": "A58534.1",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A58534.1"
}
Financial API - Example GET response
Step 1
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does reference an existing transaction, so the "initialAccountId" is a reference to the account from “Step 2”.
The object type
, describes the type of transaction. In this example it’s “type”:”SALE”
.
{
"accountReference": "IDzTA4uqQTiV48WdNncpyA==",
"accountFiscId": "A58534.2",
"receiptId": "R58534.1",
"source":{
"initialAccountId": "A58534.1",
"previousAccountId":"A58534.1"
},
"salesLines":[
{
"id": "S58534.3",
"totalNetAmountWithTax": "3.00",
"totalNetAmountWithoutTax": "2.79",
"menuListPrice": "3.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.2145",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "0.500",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-10-18T13:46:45.739Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 58534,
"deviceName": "iPad13",
"accountProfileCode":""
},
{
"id": "S58534.4",
"totalNetAmountWithTax": "2.50",
"totalNetAmountWithoutTax": "2.32",
"menuListPrice": "2.50",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.1787",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "0.500",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-10-18T13:46:45.747Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 58534,
"deviceName": "iPad13",
"accountProfileCode":""
}
],
"payments":[
{
"code": "CASH",
"description": "Cash",
"paymentMethodId": 962442041491481,
"netAmountWithTax": "5.50",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 58534,
"deviceName": "iPad13",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-10-18T13:46:45.735Z",
"timeOfCloseAndPaid": "2022-10-18T13:46:48.632Z",
"tableNumber": "5.1",
"tableName": "Table 5.1",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SPLIT",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 58534,
"deviceName":"iPad13"
}
Step 2
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does reference an existing transaction, so the "initialAccountId" is a reference to the account from “Step 1”.
The object type
, describes the type of transaction. In this example it’s “type”:”Sales”
.
{
"accountReference": "0ysaW25mSB6emGpfCE16Hg==",
"accountFiscId": "A58534.1",
"receiptId": "R58534.2",
"source":{
"initialAccountId":"A58534.1"
},
"salesLines":[
{
"id": "S58534.1",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-10-18T13:46:24.972Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 58534,
"deviceName": "iPad13",
"accountProfileCode":""
},
{
"id": "S58534.2",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-10-18T13:46:25.52Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 58534,
"deviceName": "iPad13",
"accountProfileCode":""
},
{
"id": "S58534.5",
"totalNetAmountWithTax": "-3.00",
"totalNetAmountWithoutTax": "-2.79",
"menuListPrice": "-3.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.2145",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "-0.500",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-10-18T13:46:45.744Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 58534,
"deviceName": "iPad13",
"accountProfileCode":""
},
{
"id": "S58534.6",
"totalNetAmountWithTax": "-2.50",
"totalNetAmountWithoutTax": "-2.32",
"menuListPrice": "-2.50",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "-0.1787",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "-0.500",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-10-18T13:46:45.75Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 58534,
"deviceName": "iPad13",
"accountProfileCode":""
}
],
"payments":[
{
"code": "MASTERCARD",
"description": "Mastercard",
"paymentMethodId": 962442041491482,
"netAmountWithTax": "5.50",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 58534,
"deviceName": "iPad13",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-10-18T13:46:17.677Z",
"timeOfCloseAndPaid": "2022-10-18T13:46:53.684Z",
"tableNumber": "5",
"tableName": "Table 5",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 58534,
"deviceName":"iPad13"
}
Split an Account/Receipt by Amount
In the case that an account is not to be split by covers, items or seats, it can be split by amounts.
The account with its UUID remains unchanged, a payment method is selected for each amount.
Example:
Account A123.45:
1,0 x Alcohol = 5,00 CHF = 100 %
1,0 x Kitchen = 6,00 CHF = 100 %
—
Total = 11,00 CHF = 200 %
Payment methods:
Cash = 3,50 CHF = 63,66 % from 11,00 CHF
Visa = 2,50 CHF = 45,44 % from 11,00 CHF
Room = 5,00 CHF = 90,90 % from 11,00 CHF
Proposed calculation:
Cash = 3,50 CHF
31,83 % from 1,0 x Alcohol 5,00 CHF = 0,32 x Alcohol = 1,59 CHF 31,83 % from 1,0 x Kitchen 6,00 CHF = 0,32 x Kitchen = 1,91 CHF
Visa = 2,50 CHF
22,72 % from 1,0 x Alcohol 5,00 CHF = 0,23 x Alcohol = 1,14 CHF
22,72 % from 1,0 x Kitchen 6,00 CHF = 0,23 x Kitchen = 1,36 CHF
Room = 5,00 CHF
45,45 % from 1,0 x Alcohol 5,00 CHF = 0,45 x Alcohol = 2,27 CHF
45,45 % from 1,0 x Kitchen 5,00 CHF = 0,45 x Kitchen = 2,73 CHF
POS Action
POS user posts an account/a receipt with several payment methods
PMS API - Example request
The payment array contains several payment objects, with the payment methods applied.
The calculation logic for the amount split is managed by the integrator.
{
"name": "Table 8",
"openDate": "2022-09-01T14:32:22.316Z",
"closeDate": "2022-09-01T14:33:22.728Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
},
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
}
],
"payments":[
{
"paymentDate": "2022-09-01T14:32:35.981Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 3.5000,
"methodName": "Cash",
"reservationId": "",
"methodCode":"CASH"
},
{
"paymentDate": "2022-09-01T14:33:09.680Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 1,
"amount": 2.5000,
"methodName": "Visa",
"reservationId": "",
"methodCode":"VISA"
},
{
"paymentDate": "2022-09-01T14:33:22.706Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 5,
"methodName": "Room",
"reservationId": "001",
"methodCode":"IKPMS"
}
],
"receiptId": "R56397.23",
"receipt": null,
"uuid": "5RoePogCR7ifS63GQdLbiw==",
"id": null,
"initialAccountId": "A56397.23",
"fiscId": "A56397.23",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.23"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
The payment array contains several payment objects, with the payment methods applied.
The calculation logic for the amount split is managed by the integrator.
{
"accountReference": "5RoePogCR7ifS63GQdLbiw==",
"accountFiscId": "A56397.23",
"receiptId": "R56397.23",
"source":{
"initialAccountId": "A56397.23",
},
"salesLines":[
{
"id": "S56397.46",
"totalNetAmountWithTax": "5.00",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T14:32:22.319Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.47",
"totalNetAmountWithTax": "6.00",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.00",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T14:32:22.323Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "VISA",
"description": "Visa",
"paymentMethodId": 962442041491484,
"netAmountWithTax": "2.50",
"currency": "CHF",
"tip": "1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
},
{
"code": "CASH",
"description": "Cash",
"paymentMethodId": 962442041491481,
"netAmountWithTax": "3.50",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
},
{
"code": "IKPMS",
"description": "Room",
"paymentMethodId": 962442041491639,
"netAmountWithTax": "5.00",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"externalReference": "1000",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T14:32:22.316Z",
"timeOfCloseAndPaid": "2022-09-01T14:33:22.728Z",
"tableNumber": "8",
"tableName": "Table 8",
"accountProfileCode": "",
"ownerName": "Manager",
"ownerId": 171861,
"type": "RECALL",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Change the Payment Method of a Closed Account/Receipt
If an account was closed at the POS with an incorrect payment method, a correction of the payment method can be made at the POS, which does not generate a cancellation at the POS.
By changing the payment method, the original posting is not changed, a new POST request is sent to the PMS which sends the originally wrongly selected payment method as a (-) posting and the new payment method as a (+) posting.
POS Action
POS user triggers the action “Change Payment”
PMS API - Example request
{
"name": "Table 6",
"openDate": "2022-09-01T14:37:51.787Z",
"closeDate": "2022-09-01T14:37:51.792Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
],
"payments":[
{
"paymentDate": "2022-09-01T14:37:51.789Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": -1,
"amount": -11,
"methodName": "Visa",
"reservationId": "",
"methodCode":"VISA"
},
{
"paymentDate": "2022-09-01T14:37:51.791Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 1,
"amount": 11,
"methodName": "Mastercard",
"reservationId": "",
"methodCode":"MASTERCARD"
}
],
"receiptId": "R56397.25",
"receipt": null,
"uuid": "2X2PA1d2TQOk2V1W9RWwYw==",
"id": null,
"initialAccountId": "A56397.24",
"fiscId": "A56397.25",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.25"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
In this case, this example does reference an existing transaction, so the "initialAccountId" is a reference to the account from the original POST request.
{
"accountReference": "2X2PA1d2TQOk2V1W9RWwYw==",
"accountFiscId": "A56397.25",
"receiptId": "R56397.25",
"source":{
"initialAccountId": "A56397.24",
"previousAccountId":"A56397.24"
},
"salesLines":[
],
"payments":[
{
"code": "VISA",
"description": "Visa",
"paymentMethodId": 962442041491484,
"netAmountWithTax": "-11.00",
"currency": "CHF",
"tip": "-1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName":"iPad3"
},
{
"code": "MASTERCARD",
"description": "Mastercard",
"paymentMethodId": 962442041491482,
"netAmountWithTax": "11.00",
"currency": "CHF",
"tip": "1.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName":"iPad3"
}
],
"timeOfOpening": "2022-09-01T14:37:51.787Z",
"timeOfCloseAndPaid": "2022-09-01T14:37:51.792Z",
"tableName": "Table 6",
"type": "UPDATE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
POS Action
POS user sends a room charge
PMS API - Example request
{
"name": "Table 9",
"openDate": "2022-09-01T14:40:52.775Z",
"closeDate": "2022-09-01T14:41:09.542Z",
"covers": 0,
"ownerId": 171861,
"ownerName": "Manager",
"deviceId": 56397,
"transactions":[
{
"unitAmount": 6,
"quantity": 1,
"amount": 6,
"description": "Kitchen",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 0.7500,
"quantity": 1,
"amount": 0.7500,
"description": "Servicecharge",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491505,
"groupName": "Kitchen",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI3"
},
{
"unitAmount": 5,
"quantity": 1,
"amount": 5,
"description": "Alcohol",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
},
{
"unitAmount": 0.65,
"quantity": 1,
"amount": 0.65,
"description": "Servicecharge",
"staffId": 171861,
"staffName": "Manager",
"groupId": 962442041491504,
"groupName": "Alcohol",
"taxId": 962442041491464,
"taxName": "MwSt. 7.7%",
"taxRate": 1.0770,
"taxIncluded": true,
"sku":"OI2"
}
],
"payments":[
{
"paymentDate": "2022-09-01T14:41:09.531Z",
"staffId": 171861,
"staffName": "Manager",
"gratuity": 0,
"amount": 12.40,
"methodName": "Cash",
"reservationId": "",
"methodCode":"CASH"
}
],
"receiptId": "R56397.26",
"receipt": null,
"uuid": "ci2FovCESLuOqtQPaLN3iQ==",
"id": null,
"initialAccountId": "A56397.26",
"fiscId": "A56397.26",
"businessExternalReference": "fake-business-external-reference",
"apiKey": "fake-api-key",
"identifier": "A56397.26"
}
Financial API - Example GET response
To match the POST from the PMS API with the response from the Financial API, please use the uuid
from the PMS API, this references to the accountReference
in the Financial API.
{
"accountReference": "ci2FovCESLuOqtQPaLN3iQ==",
"accountFiscId": "A56397.26",
"receiptId": "R56397.26",
"source":{
"initialAccountId":"A56397.26"
},
"salesLines":[
{
"id": "S56397.50",
"totalNetAmountWithTax": "6.75",
"totalNetAmountWithoutTax": "5.57",
"menuListPrice": "6.00",
"unitCostPrice": "1.50",
"serviceCharge": "0.75",
"serviceChargeRate": "12.50",
"discountAmount": "0.00",
"taxAmount": "0.4290",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI3",
"name": "Kitchen",
"statisticGroup": "Kitchen",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491505,
"name": "Kitchen",
"code":"222"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Kitchen"
}
],
"timeOfSale": "2022-09-01T14:40:57.968Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
},
{
"id": "S56397.51",
"totalNetAmountWithTax": "5.65",
"totalNetAmountWithoutTax": "4.64",
"menuListPrice": "5.00",
"unitCostPrice": "1.00",
"serviceCharge": "0.65",
"serviceChargeRate": "12.50",
"discountAmount": "0.00",
"taxAmount": "0.3575",
"accountDiscountAmount": "0.00",
"totalDiscountAmount": "0.00",
"sku": "OI2",
"name": "Alcohol",
"statisticGroup": "Alcohol",
"quantity": "1.000",
"taxRatePercentage": "7.70",
"accountingGroup":{
"accountingGroupId": 962442041491504,
"name": "Alcohol",
"code":"111"
},
"currency": "CHF",
"tags":[
],
"revenueCenter": "POS 1",
"revenueCenterId": 962442041491478,
"categories":[
{
"category": "default",
"value":"Alcohol"
}
],
"timeOfSale": "2022-09-01T14:40:58.495Z",
"staffId": 171861,
"staffName": "Manager",
"deviceId": 56397,
"deviceName": "iPad3",
"accountProfileCode":""
}
],
"payments":[
{
"code": "CASH",
"description": "Cash",
"paymentMethodId": 962442041491481,
"netAmountWithTax": "12.40",
"currency": "CHF",
"tip": "0.00",
"type": "NORMAL",
"deviceId": 56397,
"deviceName": "iPad3",
"staffId": 171861,
"staffName": "Manager",
"revenueCenter": "POS 1",
"revenueCenterId":962442041491478
}
],
"timeOfOpening": "2022-09-01T14:40:52.775Z",
"timeOfCloseAndPaid": "2022-09-01T14:41:09.542Z",
"tableNumber": "9",
"tableName": "Table 9",
"accountProfileCode": "SC",
"ownerName": "Manager",
"ownerId": 171861,
"type": "SALE",
"nbCovers": 0.0,
"dineIn": true,
"deviceId": 56397,
"deviceName":"iPad3"
}
Refund
The POS action "Refund Receipt" will create a duplicated account (with a new UUID) with negative balance for completing the refund.