Tec.Delivery Requirements for the Accounting System Data Representation Layer (REST API) for SCU Data Retrieval
This document describes the minimum requirements for the accounting system data representation layer (hereinafter referred to as the API) for retrieving product data using the universal Tec.Delivery synchronization plugin.
General Concept
The synchronization plugin retrieves data from the accounting system data representation layer (hereinafter referred to as the API), for example from 1C.
1. General API Endpoint Requirements
1.1 Supported Methods
-
GET /api/v1/getRetrieve products and categories
-
GET /api/v1/balanceOptional Retrieve product inventory balances
Parameters are passed via the query string.
The endpoint URLs shown above are examples and may be replaced with any valid URL structure defined by the API developer.
2. Retrieving Products and Categories
Request example:
/api/v1/get?type=product&modified_since=2026-02-01T00:00:00Z&limit=100&offset=0
Supported parameters (filters and pagination):
type — category / productmodified_sinceinstructs the API to return records whose product modification timestamp is greater than or equal to the specified valuelimitpagination parameter defining the number of records in a batchoffsetpagination parameter defining the result set offset
3. Fields
Each object must contain the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Unique and stable identifier |
type |
string | Yes | Entity type: category or product |
parent |
string | Yes | Parent entity identifier (0 or null for a root category) |
name |
string | Yes | Product or category name |
modified_at |
string | Yes | Last modification timestamp of the product or category |
description |
string | No | Product description |
bulk |
bool | No | false — unit-based product, true — weighted product |
price |
number | No | Product price |
discount |
number | No | Discount amount |
store_balance |
number | No | Available inventory quantity |
image_url |
string | No | Public URL of the product image |
image_hash |
string / number | No | Image hash or another value used to track image changes |
- ID must be unique and must not change over time
- The
parentrelationship must be valid - The image URL must be publicly accessible without authentication or redirects
- The
modified_atfield must be updated whenever the product or category changes price,discount, andstore_balancevalues must be provided in a valid numeric format
4. Product Creation, Update, and Deletion Logic
-
Creation
The plugin creates all received products whose IDs are not found in Tec.Delivery.
-
Data Update
The plugin updates all product data when the value of the
modified_atfield has changed. -
Deletion
If a product was previously created in Tec.Delivery but is missing from the current API response, the plugin marks the product as blocked and it is no longer displayed in the storefront.
- If the product is new → it is created in Tec.Delivery
- If
modified_atchanged → the product is updated - If
image_hashchanged → only the image is updated - If the product disappears from the API → the product is hidden (marked as blocked)
5. Image Updates
Product image validity is controlled by the image_hash field.
Using an actual image hash is recommended, but other change-tracking methods are also acceptable,
such as an image update timestamp or any other image version identifier.
The image_hash field is processed independently from modified_at.
Therefore, updating an image only requires changing the value of image_hash —
all other product data will remain unchanged.
6. Response Structure and Pagination (Required)
The API response must be a valid JSON object containing:
data— an array of product or category recordstotal— the total number of records matching the specified filters, excluding pagination
The API must support pagination and accept the limit and offset request parameters.
Response example:
{
"data": [
{
"id": "b01a1a32-8ba2-11e6-9cf3-10bf484d6226",
"parent": "551b4ed9-c385-11e6-9cd7-10bf484d6226",
"type": "product",
"bulk": false,
"name": "Goodwill Long Grain Parboiled Rice 800g",
"price": 145,
"store_balance": 16,
"modified_at": "2026-02-13T13:24:04",
"description": "…",
"image_url": "https://…/images/b01a1a32-8ba2-11e6-9cf3-10bf484d6226.jpg",
"image_hash": "f9a15f0d6ebf943aea177f597cb96689c2d5c44d"
},...
],
"total": 15420
}
6. Inventory Synchronization (Optional Endpoint)
If the store requires frequent inventory updates (for example, due to a high sales volume in supermarket mode), it is recommended to implement a separate simplified endpoint that returns inventory data only.
Request example:
/api/v1/balance?modified_since=2026-02-01T00:00:00Z&limit=100&offset=0
Supported parameters:
modified_since— instructs the API to return records whose inventory modification timestamp is greater than or equal to the specified valuelimit— pagination parameter defining the number of records in a batchoffset— pagination parameter defining the result set offset
Response
{
"data": [
{
"id": "b01a1a32-8ba2-11e6-9cf3-10bf484d6226",
"store_balance": 16
},...
],
"total": 15420
}
7. Hierarchical Structure (parent → child)
The product catalog model is hierarchical. The minimum nesting depth is 2 and the maximum is 3:
- 1 — Category
- 2 — Subcategory / Product
- 3 — Product