GenericPOS
All the communication with our endpoints has to be HTTPS encrypted - we do not allow the transmission of any unencrypted data.
Once approved, you receive a company code for us which is unique and identifies you as a vendor - keep it secret at all times. In order to authenticate on our system, you are expected to send an HTTP header named x-company-code with every request, with the value being your company code.
In case you can not send individual HTTP headers with your programming language or web service framework, you also have the option of transmitting the company code as an element inside the XML. If you prefer to use this option, please contact us before the implementation starts. In this case, please do add a companyCode attribute to your Request element (see company code in the XML )
Live
Test
Slug: ping
HTTP Method: POST
Slug: rooms
HTTP Method: POST
This request can be used to only request a certain room number instead of all rooms - this might be beneficial when the POS is used in a larger hotel with 100+ rooms.
- We can have multiple Room elements with different guest names (i.e. if there are multiple guests in the same room)
- In the future, Room elements with the same roomNumber might have different parentIds (i.e. if two people are sharing a room, but paying separate)
- The attribute guestId is optional, and it can be configured whether it should be provided or not
- All fields are of type String (even the roomNumber and do not have length limitations)
- A Room element without a roomNumber attribute means, the guest does not yet have a room number assigned to his reservation (i.e. he is waiting at the bar/restaurant for his room to get ready)
Slug: charge
HTTP Method: POST
- Either RoomNumber or ParentId has to be provided
- The elements Tip, Table, Note and Waiter are optional
- If there is no tip, the Tip element can be omitted
- If the Waiter element is present, at least one of the attributes (id or name) should be passed along
- The businessDate is optional and only required if the business date is different to the hotel local date (i.e. if the daily closing happens after midnight - often at the end of a shift)
- The GuestID is an optional element and if supplied posts to a specific guest
- The id attribute of the Cancellation element has to be the same value as the id attribute of the original Charge element, you want to cancel
- The count attribute of the Item element has to be negated (meaning if the original count was positive it has to be negative now)
- The amount and netAmount attributes of the Item and Category elements have to be the same as in the original transaction (meaning if the original value was positive, this needs to be positive as well and contain the same value)
- If the transaction has the same total amount as the original transaction, the original transaction will be cancelled
- If the transaction has a different total amount (i.e. partial cancellation) then we will post a separate cancellation transaction, leaving both the original and the cancellation transaction visible on the customers folio
Any error response has a HTTP status code of 4xx or 5xx
Any success response will have a HTTP status code of 2xx
Error CodeMessage | |
---|---|
100 | Invalid Company Code |
101 | Invalid Hotel ID |
102 | Invalid XML or missing required attributes |
103 | ID / Room not found or not checked in |
104 | Could not uniquely identify reservation |
105 | Missing or incomplete configuration |
999 | Internal Server Error |
All our messages are UTF-8 encoded, and we do expect the same to apply for all incoming requests.
We are using . (point) as a decimal separator, and do expect 2 digits after the comma.
We are using the date format yyyy-mm-dd (i.e. 2018-03-21). We are using the date-time format yyyy-mm-dd hh:mm:ss (i.e. 2018-03-21 23:59:32). All dates and times are expected to be in hotel local time.
Currency code is expected to be in ISO 4217 3 character notation (i.e. EUR, CHF, USD)
Please let us know whether you are creating an invoice (dt. Rechnung) or a delivery note (dt. Lieferschein) for room bookings in your POS. In case you are creating an invoice, we have to add it with 0% VAT on the hotel invoice, to avoid double taxation. In case you are creating a delivery note, we have to show the actual VAT on the hotel invoice.