Server for
Point of sale
Server for Point Of Sale is a Web Service, available 24/7/365, which keeps a data of POS terminals (cash registers) in a central place and collects cash transactions
What API suits you? Choose your business case!
Before start reading this article we recommend you to meet our Data domain
Programming guidelines
JSON-REST API Guidelines,
Java, .NET,
and Error handling.
Use Case #1. Simple Articles consumer
This is a common way to get information about products and prices from the server. See more specific cases below.
JSON
Java
GET /taxes /{vat}
list(), get(), sample
GET /categories /{identifier}
list(), get(), sample
GET /products /{identifier}
list(), get(), sample
GET /commodities /{identifier}
list(), get(), sample
Use Case #2. Simple Articles provider
This is a common way to send your information about products and prices to the server. See more specific cases below.
JSON
Java
POST or PUT /taxes/{vat}
list(), get(), sample
POST or PUT /categories /{identifier}
list(), get(), sample
POST or PUT /products /{identifier}
list(), get(), sample
POST or PUT /commodities /{identifier}
list(), get(), sample
Use Case #3. Thin client cash register
You have a POS working in a browser. Or very simple online POS inside mobile device. And you need a storage for your data and processing for your receipts.
To fetch taxes, categories, products and commodities see Use Case #1. Simple Articles consumer.
Fiscal operations are presented in this table:
JSON
Java
Why?
POST /registrations/
{cashRegisterName}/balance
setBalance()
to withdraw and deposit
GET /version
getThisVersion()
to make sure thin client has the top latest version of articles
GET /registrations/{cashRegister
Name}/version
to make sure this cashier does not get in conflict with another cashier
POST /sales
create(), sample
to make a sale
GET /sales/{identifier}/receipt
to get a receipt
POST /sales/{identifier}/receipt
to confirm the receipt is printed
POST /days/current
to close the day
GET /days
to get days
GET /days/{dayId}/report
to get an X-/Z-report
Use Case #4. Thin client back-office
You have a back-office that works in a browser. That back-office can access data inside srv4pos.com.
To manage taxes, categories, products and commodities data see Use Case #1. Simple Articles consumer and Use Case #2. Simple Articles provder.
Sales analytics API is available by this API:
JSON
Java
Per product category:
GET /categories/stats
stats()
Per product:
GET /products/stats
stats()
Per cash register:
GET /registrations/stats
stats()
Detailed (per receipt):
GET /sales/stats
stats()
Basic POS management is presented as list of cash registers by calling GET /registrations (getRegistrationList()) . API of advanced POS management, such add new POS in run-time is presented at API keys page.
Use Case #5. Regular POS
You have a standalone app that has own database with sales and articles and you want to have a central storage for your data to backup and syncronize the data between POS installations or exchange with 3rd party systems.
This case assumes either POS gets Article from the server, but also POS can optionally have own local changes (even made in offline!) and send those changes back to the server.
For POS written in Java it’s a native API to establish synchronization between the app and the server.
For other languages you will use JSON-REST API as described at Synchronization and Cashing article .
Or another alternative to implement synchronization is to take a look at sources of SynchronizationSample and translate it from Java to your language. Article Master-master sync in Java will help you a lot. At the bottom of this article you will find a guide for migration to another language. For non-strong-typed languages you might write less amount of code than at java’s SynchronizationSample, so you can adopt it as you believe is more optimal.
Also you might find .NET article kind of useful.
In order to get the data, POS must be authorized by providing an API key.
Use Case #6. Legacy POS
You have a PC-compatible POS with file-exchange and want to integrate it with other cases described here.
We have a special tool called “Sync adapter”, ready to be configured for your custom file format. Please contact us to know more.
Use Case #7. Sales analysis
You want to make sales analysis that you get from your POS installations.
The description here will be added after v17 release.
Use Case #8. POS server provides data
You have a server with data from your POS to be integrated with srv4pos.com where your server is a source of the articles/sales and srv4pos.com is the destination.
To send taxes, categories, products and commodities data to srv4pos.com see Use Case #2. Simple Articles provder.
To provide sales use mecahnism used at Use Case #5. Regular POS.
Use Case #9. POS server consumes data
You have a server with data from your POS to be integrated with srv4pos.com where your server gets articles/sales from srv4pos.com.
To fetch latest changes of taxes, categories, products and categories data use GET /modifications (getModifications()) . Keep providing seller version in from-to parameters to get historical information part-by-part. The idea is described in a very simple manner at Synchronization and Cashing article.
To fetch sales information from the server see Use Case #7. Sales analysis
Use Case #10. Bi-directional relationships with servers
You have a server with data from your POS to be integrated with srv4pos.com where articles/sales can come both from srv4pos and your server.
A full-featured master-master synchronization is used between srv4pos.com and regular POS as described in case Use Case #5. Regular POS because regular POS has own database. Use the same method for POS server too.
Use Case #11. Cloud control unit
You have a POS or server that wants to send data to a cloud control unit.
POST /{sellerId}/registration/{cashRegisterName}/kd or POST /{sellerId}/registration/{cashRegisterName}/kd, sample #1 and sample #2 to send data to the control unit (equivalent of method “kd” from the PosPlus documentation). API keys page describes how to get authenticated.
Use Case #12. Order app
You want to get online orders from your customers. Orders can be placed either from mobile app or from a e-commerce web-site. A custom made mobile app can be provided under white-label. srv4pos.com is able to accept VISA/mastercard payments using DIBS payment system. Orders can be accessed via srv4pos.com own back-office or delivered directly to your management system.
Your management system can get orders by calling GET /orders-diff/{versionFrom}/{versionTo} (listDiff()).
Your order app can send order via POST /orders (create()) .
Here is full-featured sample both sending and getting orders.
Order app can get articles as described in Use Case #1. Simple Articles consumer.
In addition to that, it’s possible to book a service (e.g. a table in a restaurant or timeslot in heardressing salon) over POST /bookings (create()) .
© 2015-2023 Server For Pos. All rights reserved.