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.