POS sync inventory

Synchronize POS item information with your inventory system

Sync inventory

POST https://integrations.mipos.shop/api/v1/inventory/pos/store/{store_id}/system/sync

Send inventory content from the POS to the inventory system.

Path Parameters

Name
Type
Description

store_id

string

Id of the store wich you want to sync inventory

Headers

Name
Type
Description

Authorization

string

Bearer {access_token}

Content-type

string

application/json

Request Body

Name
Type
Description

user_id_tps

string

ID of the user who owns the inventory system

items

array

Items from your POS inventory

inventory_system_id

string

ID of the inventory system with wich you want to synchronize

units

array

Units of measurement of your POS system

suppliers

array

Suppliers that you manage in your POS system

{
    "message": "Synchronization data was sent to the inventory system.",
    "data": null
}

Body example

{
	"items": [
		{
			"name": "Testing item 1",
			"external_id": "item_abc123",
			"purchase_unit_external_id": "pos_u1",
			"consumption_unit_external_id": "pos_u2",
			"supplier_external_id": "pos_sup_1",
			"cost": "1250",
			"stock": "11.22"
		},
		{
			"name": "Testing item 2",
			"external_id": "item_abc456",
			"purchase_unit_external_id": "pos_u2",
			"consumption_unit_external_id": "pos_u2",
			"supplier_external_id": "pos_sup_1",
			"cost": "100",
			"stock": "5.50"
		}
	],
	"user_id_tps": "30",
	"inventory_system_id": "3d40a24e-d570-4598-ae68-e20687edd1f9",
	"units": [
		{
			"name": "Unit 1",
			"short_name": "u1",
			"external_id": "pos_u1"
		},
		{
			"name": "Unit 2",
			"short_name": "u2",
			"external_id": "pos_u2"
		}
	],
	"suppliers": [
		{
			"name": "supplier 1",
			"external_id": "pos_sup_1"
		}	
	]
}

Send update of stock of an item

POST https://integrations.mipos.shop/api/v1/inventory/pos/store/{store_id}/system/stock/update

Path Parameters

Name
Type
Description

store_id

string

Id of the store wich you want to sync inventory

Headers

Name
Type
Description

Authorization

string

Bearer {access_token}

Content-type

string

application/json

Request Body

Name
Type
Description

user_id_tps

string

Id of the user who owns the inventory system

inventory_system_id

string

Id of the inventory system with wich you want to syncronize

current_stock

string

Current stock of the item in your POS system.

quantity

string

Stock movement quantity.

date

string

Movement date.

movement_type

integer

Movement type(1: add, 2: remove)

external_id

string

ID of the item in your POS system

Body example

{
	"user_id_tps": "30",
	"inventory_system_id": "4344be8c-c6b9-4c51-88a6-d620144ab406",
	"current_stock": "12.44",
	"quantity": "1.25",
	"date": "2020-05-30 12:45:03",
	"movement_type": 2
}

Webhooks

The inventory system can send different types of data about its items, the POS system that you have registered can receive this data by registering the urls of the webhooks where it wants to receive each of these types. Types of information that the POS sends:

  • Type 3: Receive the stock update of an inventory item

Manage Webhook

POST https://integrations.mipos.shop/api/v1/inventory/pos/webhook/manage

Create or update inventory system webhooks.

Headers

Name
Type
Description

Authorization

string

Bearer {access_token}

Content-type

string

application/json

Request Body

Name
Type
Description

type

string

Webhook type (3)

url

string

Webhook URL

{
    "message": "Webhook successfully created.",
    "data": null
}

Webhook(Type 3 - Receive stock update item)

The value of this field is a hexadecimal HMAC signature of the body request payload, using the client secret as a key(generated on account creation) and SHA256 as the hash function.

Example

Using the body example

client_secret:

9468da7ccaed13055abcf183fb05c73e8cfc48c5

Signature: 7c38c67ad234c4cdbe71425b5c961805ac3955d87de40d1d63e09f1f76d1ff61

Content Body

Key

Value

pos_id

ID of your POS

inventory_system_id

ID of the inventory system that sending the event

quantity

Stock movement quantity

date

Inventory movement date

movement_type

Movement type(1: add, 2: remove)

external_id

ID of the item in your POS system

now

Date sent to generate the signature

store_id

Id of the store in your POS system

current_stock

Current stock of the item in the inventory system

JSON received example

{
    "pos_id": "1",
    "inventory_system_id": "4344be8c-c6b9-4c51-88a6-d620144ab406",
    "current_stock": "12.44",
    "quantity": "1.25",
    "date": "2020-05-30 12:45:03",
    "movement_type": 2,
    "external_id": "avcc123",
    "now": "2020-06-01 02:55:18",
    "store_id": 1
}

Expected response

Your service should POST a 204 response status code with an empty response body to acknowledge receipt of the webhook event. If an error occurs in your POS system, the response must be returned with the respective status code and the body must include a field called message, this will be taken to show it to the Inventory System.

Last updated

Was this helpful?