General info

API

REST API encrypted using the HTTPS protocol


HTTP Methods

  • GET - returns data - does not make changes
  • POST - sends new data
  • PUT - updates data
  • DELETE - deletes data

HTTP Codes

  • 200 - OK
  • 400 - Bad Request
  • 401 - Unauthorized
  • 404 - Not Found
  • 409 - Conflict
  • 422 - Unprocessable Entity - Data validation error
  • 500 - Server Error
Preview of response 422 - Unprocessable Entity
{
  "status": "error",
  "code": 422,
  "message": "Request body contains an error. See context for details.",
  "context": {
	"validation": {
	  "productBarcodes": [
		"This value should not be blank."
	  ],
	  "productImagesUrl": [
		"This value should not be blank."
	  ]
	}
  }
}

Data JSON

Any data in the JSON format and UTF-8 encoding. Header Content-Type: application/json


Data types

You can find all data types of individual attributes of the request body in the description of each EP, in the section Request Body, link Schematics. Optional attributes are tagged with the flag nullable


API EP

Production: https://app.log4u.cz/


Request authorization

Every request must contain 3 mandatory headers:
Header #1 Client-Key, that which must contain the API key of the provided partner
Header #2 Authorization-Token, that must contain a generated token
Header #3 Content-Type, with the value application/json.

Token generation
base64_encode(hash_hmac('sha1', API_SECRET, API_KEY . REQUEST_METHOD[GET, POST, DELETE ...] . date('Y-m-d H:i')));

Language-neutral description — note that the key and message roles are swapped compared to common HMAC usage:
1. HMAC key = the string API_KEY + REQUEST_METHOD + time formatted as 'Y-m-d H:i' (e.g. 1234567890POST2026-09-01 19:10). Method in upper case, time is server time (Europe/Prague), tolerance ±5 minutes.
2. HMAC message (data) = API_SECRET.
3. Compute HMAC-SHA1 and express the result as a lowercase hexadecimal string (40 characters) — not as raw bytes.
4. Encode this hexadecimal string using Base64. The resulting token is always 56 characters long.

Calculation example
API_KEY = 1234567890
API_SECRET = EXAMPLESECRETKEY
REQUEST_METHOD = POST
Request time = 2026-09-01 19:10
HMAC key (API_KEY + method + time) = 1234567890POST2026-09-01 19:10
HMAC-SHA1 hex = a7749225fa0037138a50eaea876b727956c428b9
Authorization-Token = YTc3NDkyMjVmYTAwMzcxMzhhNTBlYWVhODc2YjcyNzk1NmM0MjhiOQ==

Header Accept with the value application/json
Request authorization is announced via the return status code 401 with the message: Invalid request token or headers

Changes

31.10.2026 - POST Outcome order import - an order without items (items missing, empty or null) or with only items excluded by your account settings is not created and returns an error with the code missing_items (previously an empty order in the wait status was created). New guide Order import errors in the Guides card - list of error codes, what they mean and what to do, the shape of error responses (HTTP 200 with errors and HTTP 4xx/5xx) and a dictionary of all import message texts with the error code and what to do. The import response now also returns errorCode for each error in errors (error code, e.g. insufficient_stock; null for the informative test mode message) – we recommend reacting to errors by the code, not by the text.
30.10.2026 - POST Outcome order import, PATCH Outcome order delivery data update - for the DPD carrier, street (including the house number) may have at most 35 characters - DPD does not accept a longer street and the order is rejected with an error.
29.10.2026 - Order state 7 - Picking error - stockStatus in GET /pick/{externalId} and POST /pick/batch may now return 7: the warehouse did not pick all items of the order and the order waits for the partner's reaction in the application (reduce the quantity to the picked amount, allow incomplete shipping, or request cancellation). The order is not packed until then.
21.10.2026 - Guides - new documentation section with step-by-step instructions for integrating the individual parts of the API. First guide: Received orders (/partner-orders) - recommended flow via PUT, order data, rules, statuses and errors.
20.10.2026 - PUT Create or replace a received order - new EP PUT /partner-orders/{externalId}: one method for both creating and updating. Always send the complete current order (header and all items) under its number - Log4U compares it with the stored order and applies the difference itself (adds new items, updates changed quantities, cancels missing items, replaces the header) in one transaction. There is no need to remember previously sent data or to call the item endpoints. A non-existing order is created (201), an existing unshipped order is replaced (200); a shipped or cancelled order cannot be replaced (409, a cancelled number cannot be reused).
20.10.2026 - New endpoints Received orders (/partner-orders): upload the order you received from your customer in advance, before the outcome order with the same number. The warehouse uses it to find which goods on your income receipts are critical (ordered and out of stock) and receives them with priority. The endpoints cover creating the order, changing the header, adding, changing and cancelling items, cancelling the order, the detail and a list with statuses (created, waiting_for_goods, waiting_for_receipt, cleared, shipped, cancelled).
18.10.2026 - GET Income receipt details - item attribute quantityReceived now returns the quantity the warehouse has received and put away, i.e. available for orders. Goods still waiting in the warehouse receiving area after unloading are not counted as received (same as the Amount taken in column in the income receipt detail in the application).
15.10.2026 - GET Income receipt details - response items (items) expanded by attribute (float) quantityAvailable - available stock quantity of the product (same as the Avail. quantity column in the income receipt detail in the application).
5.10.2026 - POST Outcome order import - the import returns the errors of all order items at once (non-existent product, insufficient stock; for a set per sub-item), previously only the first error. The order is not created until all items are valid. The currency code delivery.currency is now validated as ISO 4217 (e.g. EUR, not €); lowercase letters and spaces are tolerated.
23.9.2026 - Order import errors - new EPs GET /import-error/list (filter state - default open, dateFrom, dateTo, source, externalId, errorCode, paging limit/offset + totalCount), GET /import-error/{id} (detail incl. the last occurrences and the order snapshot) and PATCH /import-error/{id}/state (idempotent state change open/resolved/ignored with a note). Errors from e-shop and API imports are structured (error code, occurrence count, first/last occurrence); a successful re-import of the order resolves them automatically. The same overview is available in the application under Communication → Import errors.
16.9.2026 - GET Outcome order details - response attribute added (array) trackingUrls - carrier tracking links of the individual parcels.
16.9.2026 - POST Bulk outcome order details - new EP added POST /pick/batch. Returns details of up to 100 outcome orders at once for the externalIds list - a replacement for repeated GET /pick/{externalId} calls. The (bool) brief flag shortens the response to the order status, the shipment status and the tracking - recommended for regular status polling. Unknown IDs are reported in the notFound attribute, they do not fail the whole batch. Note: the authorization token is derived from the HTTP method, so use POST for this EP.
1.9.2026 - Request authorization - detailed token calculation description with an example added;
1.9.2026 - PATCH Outcome order delivery data update - new EP added PATCH /pick/{externalId}/delivery. Only the attributes present in the request body are updated (identical to the delivery node of the order import EP; invoiceData is replaced as a whole). Changes are possible only until the order enters the picking/packing process - the same condition as for the order cancellation.
20.8.2026 - POST Income receipt import - request item expanded by attribute (string) productName. If the product (productCode) does not yet exist in the system, it is created automatically when productCode, productName and a valid numeric productBarcode (EAN) are provided.
14.10.2024 - GET Outcome order details - response expanded by an array of objects[] (array) attachments.
27.9.2024 - POST Dropshipment data import - new EP added for the needs of DROP order removal from storage.
24.6.2024 - GET Outcome order details - reponse attribute added (object) shipmentStatus.
14.5.2024 - POST Product (import, update) - response attribute added (array) dutyCodes. Replacement for the original parameter dutyCode
14.5.2024 - POST Outcome order import - response attribute added (string) pickupPointCarrierId
09.5.2024 - GET Product List - new EP added
24.4.2024 - PATCH Send to dispatch - new EP added
24.4.2024 - POST Outcome order import - response attribute added (bool) moveToDispatch
22.4.2024 - POST Product import - response attribute parameters for customs procedures added (string) duty_code (string) title_en (string) description_en
20.4.2024 - POST Outcome order import - response attribute added (string) stateOrProvinceCode
9.4.2024 - GET Outcome order details - response attribute added (int) stockStatus - status dial below
7.4.2024 - POST Outcome order import - response attribute added (float) shipmentValue
4.4.2024 - GET Product - response attribute added disponibleCount


LIST OF VALUES


Stock outcome order - List of reasons

ID DESCRIPTION
prodej created based on order received
reklamace created based on resolved complaint

Stock outcome order - List of stock statuses [stockStatus]

ID STATE INFO
0 Created - Waiting
1 Waiting for outcome
2 Outcoming in progress
3 Waiting to get packed
4 Packing in progress
5 Packing error
6 Packed
7 Picking error The warehouse could not pick all items of the order. The order waits for your decision in its detail: reduce the quantity to the picked amount, allow incomplete shipping, or request cancellation.

Stock outcome order - List of package statuses [shipmentStatus::status]

STATUS INFO
delivered Package delivered to recipient
returned Package returned to stock

Stock income order - List of receipt statuses [prijemkaStav::id]

ID STATE INFO
0 In preparation The receipt is being prepared and cannot be received yet
5 Delivered The receipt has been marked as delivered to the warehouse
10 Ready The receipt is complete and receiving can start
20 Receiving The receipt is open on the terminal and is being received
30 In progress Some items have already been received, but not all items from the receipt are processed
40 Cancelled Cancelled
50 Processed All items received, or the receipt marked as fully processed
60 Stocked All items have been put away and are available for ordering

Received order - List of order and item statuses [status]

STATUS STATE INFO
created Created The order was received and the warehouse has not evaluated it yet
waiting_for_goods Waiting for goods The goods are not in stock and are not on any of your income receipts
waiting_for_receipt Waiting for receipt The goods are on your income receipt, the warehouse receives them with priority
cleared Cleared The ordered quantity is covered by available stock in the warehouse
shipped Shipped The outcome order with the same order number was dispatched
cancelled Cancelled The order or the item was cancelled

Country codes

CODE COUNTRY/PROVINCE
CZ Czech Republic
SK Slovakia
HU Hungary
AX Åland Islands
AL Albania
AD AndorrA
AT Austria
BY Belarus
BE Belgium
BA Bosnia and Herzegovina
BG Bulgaria
HR Croatia
CY Cyprus
DK Denmark
EE Estonia
FO Faroe Islands
FI Finland
FR France
DE Germany
GI Gibraltar
GR Greece
GG Guernsey
VA Holy See (Vatican City State)
IS Iceland
IE Ireland
IM Isle of Man
IT Italy
JE Jersey
LV Latvia
LI Liechtenstein
LT Lithuania
LU Luxembourg
MK Macedonia, The Former Yugoslav Republic of
MT Malta
MD Moldova, Republic of
MC Monaco
NL Netherlands
NO Norway
PL Poland
PT Portugal
RO Romania
RU Russian Federation
SM San Marino
CS Serbia and Montenegro
SI Slovenia
ES Spain
SJ Svalbard and Jan Mayen
SE Sweden
CH Switzerland
TR Turkey
UA Ukraine
GB United Kingdom
AF Afghanistan
DZ Algeria
AS American Samoa
AO Angola
AI Anguilla
AQ Antarctica
AG Antigua and Barbuda
AR Argentina
AM Armenia
AW Aruba
AU Australia
AZ Azerbaijan
BS Bahamas
BH Bahrain
BD Bangladesh
BB Barbados
BZ Belize
BJ Benin
BM Bermuda
BT Bhutan
BO Bolivia
BW Botswana
BV Bouvet Island
BR Brazil
IO British Indian Ocean Territory
BN Brunei Darussalam
BF Burkina Faso
BI Burundi
KH Cambodia
CM Cameroon
CA Canada
CV Cape Verde
KY Cayman Islands
CF Central African Republic
TD Chad
CL Chile
CN China
CX Christmas Island
CC Cocos (Keeling) Islands
CO Colombia
KM Comoros
CG Congo
CD Congo, The Democratic Republic of the
CK Cook Islands
CR Costa Rica
CI Cote D'Ivoire
CU Cuba
DJ Djibouti
DM Dominica
DO Dominican Republic
EC Ecuador
EG Egypt
SV El Salvador
GQ Equatorial Guinea
ER Eritrea
ET Ethiopia
FK Falkland Islands (Malvinas)
FJ Fiji
GF French Guiana
PF French Polynesia
TF French Southern Territories
GA Gabon
GM Gambia
GE Georgia
GH Ghana
GL Greenland
GD Grenada
GP Guadeloupe
GU Guam
GT Guatemala
GN Guinea
GW Guinea-Bissau
GY Guyana
HT Haiti
HM Heard Island and Mcdonald Islands
HN Honduras
HK Hong Kong
IN India
ID Indonesia
IR Iran, Islamic Republic Of
IQ Iraq
IL Israel
JM Jamaica
JP Japan
JO Jordan
KZ Kazakhstan
KE Kenya
KI Kiribati
KP Korea, Democratic People'S Republic of
KR Korea, Republic of
KW Kuwait
KG Kyrgyzstan
LA Lao People'S Democratic Republic
LB Lebanon
LS Lesotho
LR Liberia
LY Libyan Arab Jamahiriya
MO Macao
MG Madagascar
MW Malawi
MY Malaysia
MV Maldives
ML Mali
MH Marshall Islands
MQ Martinique
MR Mauritania
MU Mauritius
YT Mayotte
MX Mexico
FM Micronesia, Federated States of
MN Mongolia
MS Montserrat
MA Morocco
MZ Mozambique
MM Myanmar
NA Namibia
NR Nauru
NP Nepal
AN Netherlands Antilles
NC New Caledonia
NZ New Zealand
NI Nicaragua
NE Niger
NG Nigeria
NU Niue
NF Norfolk Island
MP Northern Mariana Islands
OM Oman
PK Pakistan
PW Palau
PS Palestinian Territory, Occupied
PA Panama
PG Papua New Guinea
PY Paraguay
PE Peru
PH Philippines
PN Pitcairn
PR Puerto Rico
QA Qatar
RE Reunion
RW RWANDA
SH Saint Helena
KN Saint Kitts and Nevis
LC Saint Lucia
PM Saint Pierre and Miquelon
VC Saint Vincent and the Grenadines
WS Samoa
ST Sao Tome and Principe
SA Saudi Arabia
SN Senegal
SC Seychelles
SL Sierra Leone
SG Singapore
SB Solomon Islands
SO Somalia
ZA South Africa
GS South Georgia and the South Sandwich Islands
LK Sri Lanka
SD Sudan
SR Suriname
SZ Swaziland
SY Syrian Arab Republic
TW Taiwan, Province of China
TJ Tajikistan
TZ Tanzania, United Republic of
TH Thailand
TL Timor-Leste
TG Togo
TK Tokelau
TO Tonga
TT Trinidad and Tobago
TN Tunisia
TM Turkmenistan
TC Turks and Caicos Islands
TV Tuvalu
UG Uganda
AE United Arab Emirates
US United States
UM United States Minor Outlying Islands
UY Uruguay
UZ Uzbekistan
VU Vanuatu
VE Venezuela
VN Viet Nam
VG Virgin Islands, British
VI Virgin Islands, U.S.
WF Wallis and Futuna
EH Western Sahara
YE Yemen
ZM Zambia
ZW Zimbabwe

Document types

TYPE DESCRIPTION
pick_invoice Outcome order invoice

File types

TYPE
application/pdf
application/x-pdf
image/gif
image/png
image/jpeg
image/jpg

Dropshipment types

dropType
alza
allegro-drop-0

Dropshipment item attributes

productAttribute NAME
BCX
ITEM_ID