Integrate a point-of-sale ( POS ) app

Introduction

Your client or company must have a Sinqro Business account. Provide your current businesses the possibility to sync products, menus, orders, reservations... with Sinqro for them to have multiple platforms and providers connection, but keep your POS as main interface.

Target Developers

  • Internal developers from a POS software company
  • Developers from a restaurant chain or group having their own POS solution

Your company benefits

  • Your clients (restaurants and food shops using your software), will be able to manage their own web/mobile apps and external marketplaces orders/reservations, delivery services and many other Sinqro connected solutions, directly FROM YOUR POS.
  • You won’t have to integrate dozens of marketplaces or providers one by one. With one integration, your POS is connected to multiple external services.
  • Your software will be listed in our site as Sinqro-ready POS and this will accelerate your sales.

Sinqro benefits

  • Your clients will become Sinqro potential clients.
  • We can provide our current and incoming clients the possibility to work with a traditional, experienced and proven POS solution.

Partnership

For the integration itself, we don’t charge and we don’t pay.
Despite this, if you want to get involved in the businesses acquisition and activation at Sinqro, we have partner programs that could match your interests.

The partnership strategy suggestion will depend on your software current distribution strategy:
  • POS Software Company + Distributor
    You provide the POS software but you are also involved in its distribution and installation, so you have direct contact with the final client (the business). In this case you can acquire and active businnesses directly, so your profile matches the Manager Partner Program.
  • POS Software Company
    You only provide the POS software and licenses are distributed and installed by local distributors (your distributor network), so you DO NOT have direct contact with the final client (the business). In this case you can add your local distributors as your ‘children’ partners, so your profile matches de Network Partner Program.
Important note about the partnership
Become a Sinqro Partner or not, won’t alter this integration guide. Sinqro Partner is a totally separated unit and is totally optional.

Getting started

To get started using any Sinqro API you need to create your developer account

Once in your developer panel, create an app integration:

  1. Go to App Integrations
  2. Click on New App Integration
  3. In the form, select Integrate a point-of-sale ( POS ) app
  4. Wait for your app integration request approval

Once your request has been approved, you can manage your app integration details and get you API credentials (required to call our API as you will see in the API Security section)

Use Cases

You can decide the integration level that your POS will have with Sinqro. The more features integrated, the better for your client. All NOT integrated features will result in forcing the business to go to Sinqro apps to manage anything that can not be managed through your POS.

Login (required)

The user provide the Sinqro username and password in your POS to connect it with Sinqro. This is ideally done once. Your app permissions will depend on the user permissions.

Logout (required)

The user should be able to ‘disconnect’ the POS from Sinqro.

Get user selling points

When user has been logged in, you can get the selling points (establishments) that the user can manage in Sinqro.
If the user has more than one selling point, you should show a 'picker' to choose which of these selling points want to link with the POS setup.

Get services (orders & reservations)

Your POS app must call our API every 60 seconds (or subscribe a websocket) to get new services. Once having a new service, you need to:
  1. Alert the user
  2. (only for orders) Be able to print the order receipt in your POS connected printers
  3. Show the user the ‘buttons’ built with the incoming order data options (accept, cancel, accept with delays, accept selecting a delivery company option, …)
  4. Send to the API the user selected option
  5. Update the service status in your POS every 60 seconds (until the service status is finished)
  6. Change a service status
    At anytime, for a service, you can get the available options for the user to change the service status

Get the service options and show them to the user as ‘buttons’

  1. Send to the API the user selected option
  2. Update the service status in your POS every 60 seconds (until the service status is finished)
Pending features
This guide is not complete. There are many incoming features (with API services) which are not documented here. We’re sorry for the inconvienences.

POS App API Basics

Environments

Sandbox

https://sandbox-api.sinqro.com/pos-app/v1

Production

https://api.sinqro.com/pos-app/v1

Security

About your credentials
In order to get your credentials, you need first to create your App Integration. You can find the steps at Getting Started section.
Authorization

All API services require an authorization token sent in headers ‘x-api-server-access-token’.

You can get your app integration assigned token in your developer panel.

Authentication

Most of this API services require an authentication token sent in headers'x-api-user-access-token'.

You can the retrieve the user token with a successful request to the login API service..

Errors

Error codeHTTPError message
BUSINESS_ACCOUNT_NOT_FOUND404Business account not found
CATEGORY_MIN_OPTIONS_CANNOT_BE_GREATER_THAN_MAX_OPTIONS400Category min options cannot be greater than max options
CLIENT_ID_REQUIRED400Client ID is required
CLIENT_NOT_FOUND404Client not found
COLLECTION_ORDERS_MODULE_PREPARATION_SCHEDULE_REQUIRED400Preparation schedule is required for collection orders module
COUPON_NOT_FOUND404Coupon not found
DELIVERY_NOT_FOUND404Delivery not found
DELIVERY_ORDERS_MODULE_PREPARATION_SCHEDULE_REQUIRED400Preparation schedule is required for delivery orders module
DISCOUNT_MAX_USAGES_REACHED_LIMIT400Discount max usages reached limit
DISCOUNT_MIN_CART_AMOUNT_INSUFFICIENT400Discount min cart amount insufficient
DISCOUNT_ONLY_ALLOW_FIRST_ORDER400Discount only allow first order
INSITU_ORDERS_MODULE_PREPARATION_SCHEDULE_REQUIRED400Preparation schedule is required for insitu orders module
INVALID_DISCOUNT_DATES400Invalid discount dates
INVALID_PRINTER_IP_FORMAT400Invalid printer IP format
LOGIN_ERROR400Incorrect user or password
MARKET_IS_REQUIRED400Market is required
MENU_ID_REQUIRED400Menu ID is required
MENU_NOT_FOUND404Menu not found
MENU_SECTION_ID_REQUIRED400Menu section ID is required
MENU_SECTION_NOT_FOUND404Menu section not found
MENU_SELECTION_NOT_FOUND404Menu selection not found
MENU_TYPE_CODE_REQUIRED400Menu type code is required
MENU_TYPE_NOT_FOUND404Menu type not found
ORDER_AMOUNT_INSUFFICIENT_AFTER_DISCOUNT_APPLIED400Order amount insufficient after discount applied
ORDER_CANCELLATION_COMMENT_IS_REQUIRED400Order cancellation comment is required
ORDER_NOT_FOUND404Order not found
ORDER_TYPE_CODE_REQUIRED400Order type code is required
ORDER_TYPE_NOT_FOUND404Order type not found
PREPARATION_SCHEDULE_NOT_FOUND404Preparation schedule not found
PRINTER_NAME_REQUIRED400Printer name is required
PRINTER_TYPE_NOT_FOUND404Printer type not found
PRODUCT_ID_REQUIRED400Product ID is required
PRODUCT_NOT_FOUND404Product not found
PRODUCT_OPTION_CATEGORY_ID_REQUIRED400Product option category id is required
PRODUCT_OPTION_CATEGORY_NAME_REQUIRED400Product option category name is required
PRODUCT_OPTION_CATEGORY_NOT_FOUND404Product option category not found
PRODUCT_OPTION_NAME_REQUIRED400Product option name is required
RECOVERY_CODE_NOT_MATCH400Recovery code does not match
RECOVERY_CODE_REQUIRED400Recovery code is required
SCHEDULE_NOT_FOUND404Schedule not found
SELLING_POINT_ID_REQUIRED400SellingPoint ID is required
SELLING_POINT_NOT_FOUND404SellingPoint not found
UNAUTHORIZED401Unauthorized request
UNDEFINED_SECTIONS_AND_PRODUCTS400Undefined sections and products

POS App API Services