Point of Sale integrations allow apps to post charges to the Cloudbeds guest folios or house accounts. While intended to cater to Restaurant/Retail POS platforms, this guide can be useful for other applications that must post charges (e.g., upsell platforms, self service apps, etc.).
Using this guide and the Cloudbeds API, you will be able to develop a comprehensive POS integration.
Things to know before getting started
- Guest Folio -> where charges are typically posted. Note that a reservation can have multiple guests and multiple folios but currently charges can only be posted to the primary guest/folio.
- House Account -> used in Cloudbeds to track non-room related revenue. When syncing all transactions (not just guest charges) this is a good place to start.
- Stock Inventory -> Cloudbeds has basic ability to manage items & inventory. This can be synced with the POS app (see below Integration with Stock Inventory Sync) or completely managed by the POS app (Basic POS Integration).
In this use case property user can manage items only via POS app. Items can be added to myfrontdesk reservations in read-only mode.
(*) Mandatory requirements for POS category Certification.
Reservation pull
POS app fetches occupied rooms and checked-in reservations with getReservations (or any other available query method). Only checked-in guests should be listed in the POS. (*)
POS app may subscribe to the reservation status_changed webhook. This way new reservations that have a status in-house/checked-in will trigger a webhook. See more about this in the Webhook guide.
Sync guest items and payments with myfrontdesk folio
POS app sends items via method postCustomItem and includes itemCategoryName e.g. Food / Drinks (*)
POS app must handle and specify taxes, both inclusive versus exclusive, according to the customer setup (*)
You can use getTaxesAndFees to check the property tax configuration in myfrontdesk
- Include the payment when item was paid for at the POS. If payment is cash parameter itemPaid=true may be used
- Use getPaymentMethods to see which methods are available
- If payment method is not enabled or doesn't exist in myfrontdesk account create it using postCustomPaymentMethod
- Leave out the payment when item is not paid for at the POS and should be paid for at the reception desk.
- Use postAdjustment to add a discount to a room rate, item, tax or fee.
- Include ItemCategoryName name via postCustomItem as highly useful if the property uses an Accounting integration.
Myfrontdesk user can see all posted items and transactions in reservation folio. User can't delete the items from myfrontdesk folio.
Void items
POS app uses method /postVoidItem for voiding items already added to the reservation folio or a house account and /postVoidPayment for payments that should be voided. (*)
At the moment a refund can't be posted via API.
appItemID
is a identifier for each item in your application's inventory. Don't use a unique ID for each item you post to a reservation or house account. This will create numerous items Cloudbeds reports as Cloudbeds will expect they are different inventory items.
If the ID is the same we will consider it to be the same inventory item in our DB regardless of the name and description. Make sure that your users don't change the name from e.g. Coca Cola to T-shirt and expect the new item to appear in Cloudbeds. We will keep the Coca Cola name and description until the ID changes.
In this use case property users have to manage items via myfrontdesk Inventory page. POS pulls myfrontdesk inventory and uses this information to post items into myfrontdesk folio.
Reservation pull
POS app fetches occupied rooms and checked-in reservations with getReservations (or any other available query method). Only checked-in guests should be listed in the POS.
POS app may subscribe to the reservation status_changed webhook. This way new reservations that have a status in-house/checked-in will be trigger a webhook. See more about this in the Webhook guide.
Sync myfrontdesk inventory
POS app synchronizes items with myfrontdesk:
- uses methods getItemCategories and getItems for retrieving items from myfrontdesk;
- uses methods postItemCategory and postItemsToInvetory for posting items to myfrontdesk, item can be updated with putItemsToInventory
Sync guest items and payments with myfrontdesk folio
POS app adds items via method postItem
POS app adds payment with postPayment
- Use getPaymentMethods to see which methods are available in myfrontdesk account
- If payment method is not enabled or doesn't exist in myfrontdesk account create it using postCustomPaymentMethod
- When item is not paid for and should be paid for at the reception desk leave out the payment.
- Use postAdjustment to add a discount to a room rate, item, tax or fee.
Sync all other transactions with myfrontdesk
Cloudbeds customers like to have a central place to view all of the transactions that happen in their property. If a guest that doesn't stay at the hotel is still having a drink at the bar, this transaction can be synced into the myfrontdesk House Account functionality.
POS app uses /postNewHouseAccount to create a house account on the scheduled basis e.g. daily, monthly.
POS app uses /postItem with parameter houseAccountID
to post an item into a myfrontdesk house account. Use payments
parameter to add payments for the item.
Void items
POS app uses method /postVoidItem for voiding items already added to the reservation folio or a house account and /postVoidPayment for payments that should be voided.
At the moment a refund can't be posted via API.
Comments
0 comments
Please sign in to leave a comment.