{"openapi":"3.0.3","info":{"title":"AgroParts Seller API","version":"1.0.1","description":"Company-scoped products, inventory, pricing, retained file imports and seller order lines. Bearer tokens are created in the company workspace, displayed once, expire in 1–365 days and can be revoked. 120 requests\/minute\/token. All writes require Idempotency-Key. Repeat same key+body returns saved response; changed body returns 409. A token never grants more rights than its active author. Purchaser context headers are ignored for authorization."},"servers":[{"url":"\/api\/location-v2\/seller\/v1"}],"security":[{"sellerToken":[]}],"paths":{"\/products":{"get":{"summary":"List or retrieve seller items","operationId":"listProducts","x-required-scope":"products:read","parameters":[{"name":"after","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Exclusive cursor. Pass the last returned ID; import detail uses line instead.","x-doc-description":"param_after"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50},"description":"Page size; maximum 200.","x-doc-description":"param_limit"},{"name":"since","in":"query","schema":{"type":"string"},"description":"Inclusive updated-at filter, YYYY-MM-DD HH:mm:ss or YYYY-MM-DDTHH:mm:ss. Combine with after; overlap polling windows.","x-doc-description":"param_since"},{"name":"state","in":"query","schema":{"type":"string","enum":["draft","ambiguous","pending","approved","rejected"]},"description":"Current processing state.","x-doc-description":"param_state"},{"name":"id","in":"query","schema":{"type":"integer","minimum":1},"description":"ID of a single record.","x-doc-description":"param_id"},{"name":"source","in":"query","schema":{"type":"string","default":"default"},"description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"param_source"},{"name":"externalId","in":"query","schema":{"type":"string"},"description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"param_externalId"}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"oneOf":[{"type":"array","items":{"$ref":"#\/components\/schemas\/ProductRecord"}},{"$ref":"#\/components\/schemas\/ProductRecord"}],"description":"Operation result.","x-doc-description":"field_data"}},"required":["status","data"]},"examples":{"list":{"value":{"status":"success","data":[{"id":12001,"partnerId":4001,"productId":0,"manufacturerId":101,"number":"AP-001","title":"Hydraulic filter","state":"draft","version":1,"updatedAt":"2026-10-09 10:00:00","externalRefs":[{"source":"erp","externalId":"0000123"}],"erpState":null,"details":{"sku":"HF-001","unit":"pcs"}}]}},"record":{"value":{"status":"success","data":{"id":12001,"partnerId":4001,"productId":0,"manufacturerId":101,"number":"AP-001","title":"Hydraulic filter","state":"draft","version":1,"updatedAt":"2026-10-09 10:00:00","externalRefs":[{"source":"erp","externalId":"0000123"}],"erpState":null,"details":{"sku":"HF-001","unit":"pcs"}}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["products"],"x-doc-summary":"op_listProducts","description":"Returns an array by default. id returns one record. source + externalId performs an exact lookup and takes precedence over id. Missing external IDs return 404.","x-doc-description":"desc_listProducts","x-request-examples":{"list":{"query":{"after":0,"limit":50}},"lookup":{"query":{"source":"erp","externalId":"0000123"}}}},"post":{"summary":"Create or update an item","operationId":"saveProduct","x-required-scope":"products:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Product"},"example":{"source":"erp","externalId":"0000123","manufacturerId":101,"number":"AP-001","title":"Hydraulic filter","sku":"HF-001","unit":"pcs"}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/ProductRecord"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":12001,"partnerId":4001,"productId":0,"manufacturerId":101,"number":"AP-001","title":"Hydraulic filter","state":"draft","version":1,"updatedAt":"2026-10-09 10:00:00","externalRefs":[{"source":"erp","externalId":"0000123"}],"erpState":null,"details":{"sku":"HF-001","unit":"pcs"}}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["products"],"x-doc-summary":"op_saveProduct","description":"An exact unique manufacturer\/part-number match links the catalog product. Unmatched items remain draft; multiple matches remain ambiguous. An approved item cannot be reassigned to another catalog product.","x-doc-description":"desc_saveProduct","x-request-examples":{"default":{"body":{"source":"erp","externalId":"0000123","manufacturerId":101,"number":"AP-001","title":"Hydraulic filter","sku":"HF-001","unit":"pcs"}}}}},"\/submit":{"post":{"summary":"Submit for moderation","operationId":"submitProduct","x-required-scope":"products:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Submit"},"example":{"id":12001}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/ProductRecord"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":12001,"partnerId":4001,"productId":0,"manufacturerId":101,"number":"AP-001","title":"Hydraulic filter","state":"pending","version":2,"updatedAt":"2026-10-09 10:00:00","externalRefs":[{"source":"erp","externalId":"0000123"}],"erpState":null,"details":{"sku":"HF-001","unit":"pcs"}}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["products"],"x-doc-summary":"op_submitProduct","description":"id is the seller item ID. Only draft, ambiguous or rejected items with a non-empty title can be submitted. Returns the item with state=pending and an incremented version.","x-doc-description":"desc_submitProduct","x-request-examples":{"default":{"body":{"id":12001}}}}},"\/warehouses":{"get":{"summary":"List warehouses","operationId":"listWarehouses","x-required-scope":"warehouses:read","parameters":[],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/WarehouseRecord"},"description":"Operation result.","x-doc-description":"field_data"}},"required":["status","data"]},"examples":{"list":{"value":{"status":"success","data":[{"id":2301,"title":"Main warehouse","address":"","active":true,"externalId":"WH-01","externalRefs":[{"source":"erp","externalId":"WH-01"}]}]}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["warehouses"],"x-doc-summary":"op_listWarehouses","description":"Returns all company warehouses, including inactive ones, with external identifiers. No pagination or filters.","x-doc-description":"desc_listWarehouses","x-request-examples":{"default":{"query":{}}}},"post":{"summary":"Create or bind a warehouse","operationId":"saveWarehouse","x-required-scope":"warehouses:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/WarehouseBinding"},"example":{"source":"erp","externalId":"WH-01","name":"Main warehouse","countryAlpha2":"BG","clientCode":"WH-01"}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/WarehouseResult"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":2301,"title":"Main warehouse"}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["warehouses"],"x-doc-summary":"op_saveWarehouse","description":"Binds a source-scoped external ID to a company warehouse. A previously assigned external ID cannot be moved to a different warehouse.","x-doc-description":"desc_saveWarehouse","x-request-examples":{"default":{"body":{"source":"erp","externalId":"WH-01","name":"Main warehouse","countryAlpha2":"BG","clientCode":"WH-01"}}}}},"\/inventory":{"get":{"summary":"List stock and pricing terms","operationId":"listInventory","x-required-scope":"inventory:read","parameters":[{"name":"after","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Exclusive cursor. Pass the last returned ID; import detail uses line instead.","x-doc-description":"param_after"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":100},"description":"Page size; maximum 200.","x-doc-description":"param_limit"},{"name":"since","in":"query","schema":{"type":"string"},"description":"Inclusive updated-at filter, YYYY-MM-DD HH:mm:ss or YYYY-MM-DDTHH:mm:ss. Combine with after; overlap polling windows.","x-doc-description":"param_since"},{"name":"itemId","in":"query","schema":{"type":"integer","minimum":1},"description":"Seller item ID returned by products.","x-doc-description":"param_itemId"}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/InventoryRecord"},"description":"Operation result.","x-doc-description":"field_data"}},"required":["status","data"]},"examples":{"withPrices":{"value":{"status":"success","data":[{"id":34001,"itemId":12001,"productId":0,"warehouseId":2301,"title":"Hydraulic filter","warehouseTitle":"Main warehouse","qty":25.5,"reserved":0,"available":25.5,"version":1,"source":"erp","terms":{"mode":"fixed","price":120,"purchasePrice":80,"currency":"EUR","taxMode":"net","taxRate":20,"discount":0,"markup":0,"minQty":1,"step":1,"active":true,"quantityBreaks":[]}}]}},"withoutPrices":{"value":{"status":"success","data":[{"id":34001,"itemId":12001,"productId":0,"warehouseId":2301,"title":"Hydraulic filter","warehouseTitle":"Main warehouse","qty":25.5,"reserved":0,"available":25.5,"version":1,"source":"erp","terms":{"minQty":1,"step":1,"active":true}}]}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["inventory"],"x-doc-summary":"op_listInventory","description":"Returns a paginated array of warehouse offers. Monetary terms require prices:read; otherwise terms contains only minQty, step and active. The id query parameter is not supported.","x-doc-description":"desc_listInventory","x-request-examples":{"default":{"query":{"after":0,"limit":100}}}},"post":{"summary":"Update stock and prices","operationId":"saveInventory","x-required-scope":"inventory:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Inventory"},"example":{"source":"erp","externalId":"0000123","warehouseExternalId":"WH-01","qty":25.5,"version":0,"terms":{"mode":"fixed","price":120,"purchasePrice":80,"currency":"EUR","taxMode":"net","taxRate":20,"discount":0,"markup":0,"minQty":1,"step":1,"active":true,"quantityBreaks":[]}}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/InventoryRecord"}]}},"required":["status","data"]},"examples":{"withPrices":{"value":{"status":"success","data":{"id":34001,"itemId":12001,"productId":0,"warehouseId":2301,"title":"Hydraulic filter","warehouseTitle":"","qty":25.5,"reserved":0,"available":25.5,"version":1,"source":"erp","terms":{"mode":"fixed","price":120,"purchasePrice":80,"currency":"EUR","taxMode":"net","taxRate":20,"discount":0,"markup":0,"minQty":1,"step":1,"active":true,"quantityBreaks":[]}}}},"withoutPrices":{"value":{"status":"success","data":{"id":34001,"itemId":12001,"productId":0,"warehouseId":2301,"title":"Hydraulic filter","warehouseTitle":"","qty":25.5,"reserved":0,"available":25.5,"version":1,"source":"erp","terms":{"minQty":1,"step":1,"active":true}}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"x-additional-scopes":{"when terms is nonempty":["prices:write"]},"tags":["inventory"],"x-doc-summary":"op_saveInventory","description":"Creates or patches one seller item at one active company warehouse. Omitted qty and terms fields retain existing values. Response pricing visibility follows the same prices:read rule as GET.","x-doc-description":"desc_saveInventory","x-request-examples":{"default":{"body":{"source":"erp","externalId":"0000123","warehouseExternalId":"WH-01","qty":25.5,"version":0,"terms":{"mode":"fixed","price":120,"purchasePrice":80,"currency":"EUR","taxMode":"net","taxRate":20,"discount":0,"markup":0,"minQty":1,"step":1,"active":true,"quantityBreaks":[]}}}}}},"\/prices":{"get":{"summary":"List pricing rules","operationId":"listPriceRules","x-required-scope":"prices:read","parameters":[],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/RuleRecord"},"description":"Operation result.","x-doc-description":"field_data"}},"required":["status","data"]},"examples":{"list":{"value":{"status":"success","data":[{"id":501,"name":"Autumn promotion","kind":"promotion","active":true,"productId":0,"manufacturerId":0,"buyerGroupId":0,"productGroup":"filters","discount":5,"minQty":10,"stackable":false,"startsAt":"2026-10-01","endsAt":"2026-10-31"}]}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["prices"],"x-doc-summary":"op_listPriceRules","description":"Returns all company customer rules and promotions, including inactive records. No pagination or filters.","x-doc-description":"desc_listPriceRules","x-request-examples":{"default":{"query":{}}}},"post":{"summary":"Create or replace a pricing rule","operationId":"savePriceRule","x-required-scope":"prices:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Rule"},"example":{"source":"erp","externalId":"autumn-2026","name":"Autumn promotion","kind":"promotion","productGroup":"filters","discount":5,"minQty":10,"startsAt":"2026-10-01","endsAt":"2026-10-31"}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/RuleRecord"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":501,"name":"Autumn promotion","kind":"promotion","active":true,"productId":0,"manufacturerId":0,"buyerGroupId":0,"productGroup":"filters","discount":5,"minQty":10,"stackable":false,"startsAt":"2026-10-01","endsAt":"2026-10-31"}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["prices"],"x-doc-summary":"op_savePriceRule","description":"customer rules select the most specific matching rule. Quantity discounts follow, then promotions and the offer floor price. Disable a rule by sending active=false with its full configuration.","x-doc-description":"desc_savePriceRule","x-request-examples":{"default":{"body":{"source":"erp","externalId":"autumn-2026","name":"Autumn promotion","kind":"promotion","productGroup":"filters","discount":5,"minQty":10,"startsAt":"2026-10-01","endsAt":"2026-10-31"}}}}},"\/imports":{"get":{"summary":"Import history, results and files","operationId":"listImports","x-required-scope":"imports:read","parameters":[{"name":"after","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Exclusive cursor. Pass the last returned ID; import detail uses line instead.","x-doc-description":"param_after"},{"name":"id","in":"query","schema":{"type":"integer","minimum":1},"description":"ID of a single record.","x-doc-description":"param_id"},{"name":"download","in":"query","schema":{"type":"integer","minimum":1,"enum":[1]},"description":"Set to 1 with id to download the original file.","x-doc-description":"param_download"}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"oneOf":[{"type":"array","items":{"$ref":"#\/components\/schemas\/ImportRecord"}},{"$ref":"#\/components\/schemas\/ImportDetail"}],"description":"Operation result.","x-doc-description":"field_data"}},"required":["status","data"]},"examples":{"list":{"value":{"status":"success","data":[{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"preview","applied":0,"errors":0,"row":0,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00"}]}},"record":{"value":{"status":"success","data":{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"preview","applied":0,"errors":0,"row":0,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00","headers":["externalId","qty"],"rows":[]}}},"completed":{"value":{"status":"success","data":{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"done","applied":1,"errors":0,"row":2,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00","rows":[{"line":2,"state":"applied","message":"","itemId":12001,"offerId":34001,"data":{"source":"erp","externalId":"0000123","qty":"25.5","warehouseId":2301,"normalizeNumber":false}}]}}}}},"application\/octet-stream":{"schema":{"type":"string","format":"binary"},"example":"externalId;qty\n0000123;25.5\n"}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["imports"],"x-doc-summary":"op_listImports","description":"Without id: 50 imports, newest first, after selects smaller IDs. With id: one import and up to 100 row results, after selects greater line numbers. With id and download=1: original file bytes, not JSON.","x-doc-description":"desc_listImports","x-request-examples":{"list":{"query":{"after":0}},"record":{"query":{"id":7101,"after":0}},"download":{"query":{"id":7101,"download":1},"binary":true}}},"post":{"summary":"Upload a price file","operationId":"uploadImport","x-required-scope":"imports:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Original price file, up to 50 MiB.","x-doc-description":"fileUpload"},"config":{"type":"string","description":"JSON-encoded ImportConfig object.","x-doc-description":"configString","x-content-schema":{"$ref":"#\/components\/schemas\/ImportConfig"},"example":"{\u0022source\u0022: \u0022erp\u0022, \u0022kind\u0022: \u0022stock\u0022, \u0022skipRows\u0022: 1, \u0022mapping\u0022: {\u0022externalId\u0022: 0, \u0022qty\u0022: 1}, \u0022defaults\u0022: {\u0022warehouseId\u0022: 2301}, \u0022fullStock\u0022: false, \u0022encoding\u0022: \u0022utf-8\u0022, \u0022delimiter\u0022: \u0022;\u0022}"}},"required":["file"]}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/ImportUploadResult"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"preview","applied":0,"errors":0,"row":0,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00","headers":["externalId","qty"],"rows":[],"preview":[[1,["externalId","qty"]],[2,["0000123","25.5"]]],"fields":["externalId","productId","manufacturerId","manufacturerCode","manufacturerName","number","title","sku","gtin","unit","packSize","productGroup","warehouseExternalId","warehouseId","qty","price","purchasePrice","referencePrice","currency","discount","markup","minQty","step"]}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"description":"multipart\/form-data with file and optional config JSON string. CSV, TSV, TXT or XLSX up to 50 MiB; expanded XLSX up to 200 MiB. Returns preview without applying data. XLSX uses the first worksheet and cached formula values.","tags":["imports"],"x-doc-summary":"op_uploadImport","x-doc-description":"desc_uploadImport","x-request-examples":{"default":{"form":{"file":"stock.csv","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"}}}}}},"\/import-config":{"post":{"summary":"Configure an import","operationId":"configureImport","x-required-scope":"imports:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ImportAction"},"example":{"id":7101,"config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"}}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/ImportConfiguredResult"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"preview","applied":0,"errors":0,"row":0,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00","headers":["externalId","qty"],"rows":[],"preview":[{"line":2,"data":{"source":"erp","externalId":"0000123","qty":"25.5","warehouseId":2301,"normalizeNumber":false}}]}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["imports"],"x-doc-summary":"op_configureImport","description":"Only state=preview can be configured. Top-level config fields merge with the saved configuration; mapping and defaults replace their entire objects. Returns normalized preview rows.","x-doc-description":"desc_configureImport","x-request-examples":{"default":{"body":{"id":7101,"config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"}}}}}},"\/import-start":{"post":{"summary":"Queue an import","operationId":"startImport","x-required-scope":"imports:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ImportAction"},"example":{"id":7101}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/ImportConfiguredResult"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"queued","applied":0,"errors":0,"row":0,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00","rows":[],"preview":[{"line":2,"data":{"source":"erp","externalId":"0000123","qty":"25.5","warehouseId":2301,"normalizeNumber":false}}]}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["imports"],"x-doc-summary":"op_startImport","description":"Validates configuration and changes preview to queued. Map externalId, productId or number. Processing is asynchronous; poll GET \/imports?id=… until done, partial, error or cancelled. Configuration may be supplied in this request.","x-doc-description":"desc_startImport","x-request-examples":{"default":{"body":{"id":7101}}}}},"\/import-cancel":{"post":{"summary":"Cancel an import","operationId":"cancelImport","x-required-scope":"imports:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ImportCancel"},"example":{"id":7101}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/ImportDetail"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":7101,"name":"stock.csv","sha256":"e9e6e0d53c4d925d8ba1a7b63f7a8cc1f6aa776b7a456d51e78d018afd365abc","size":31,"state":"cancelled","applied":0,"errors":0,"row":0,"message":"","config":{"source":"erp","kind":"stock","skipRows":1,"mapping":{"externalId":0,"qty":1},"defaults":{"warehouseId":2301},"fullStock":false,"encoding":"utf-8","delimiter":";"},"createdAt":"2026-10-09 10:00:00","updatedAt":"2026-10-09 10:00:00","rows":[]}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"tags":["imports"],"x-doc-summary":"op_cancelImport","description":"Cancels preview, queued or running imports. Rows already applied remain saved. A terminal import is returned unchanged.","x-doc-description":"desc_cancelImport","x-request-examples":{"default":{"body":{"id":7101}}}}},"\/orders":{"get":{"summary":"List seller order lines","operationId":"listOrderLines","x-required-scope":"orders:read","parameters":[{"name":"after","in":"query","schema":{"type":"integer","minimum":0,"default":0},"description":"Exclusive cursor. Pass the last returned ID; import detail uses line instead.","x-doc-description":"param_after"}],"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"type":"array","items":{"$ref":"#\/components\/schemas\/OrderLine"},"description":"Operation result.","x-doc-description":"field_data"}},"required":["status","data"]},"examples":{"list":{"value":{"status":"success","data":[{"id":8101,"orderId":9101,"offerId":34001,"quantity":2,"state":"reserved","snapshot":{"name":"Hydraulic filter","amount":120,"currency":"EUR","baseAmount":120,"referenceAmount":0,"taxMode":"net","taxRate":20,"minQty":1,"step":1,"rules":[],"offerId":34001,"productId":90001,"sellerId":4001,"sellerName":"Example Parts Ltd","warehouseId":2301,"warehouseName":"Main warehouse","available":25.5,"offerCurrency":"EUR","offerAmount":120},"updatedAt":"2026-10-09 10:00:00"}]}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"description":"Returns up to 100 seller lines in ascending ID order. id identifies a seller line; orderId identifies the marketplace order. after discovers new lines, not state changes to older lines: re-read from after=0 to reconcile them.","tags":["orders"],"x-doc-summary":"op_listOrderLines","x-doc-description":"desc_listOrderLines","x-request-examples":{"default":{"query":{"after":0}}}}},"\/fulfillment":{"post":{"summary":"Ship or cancel a seller line","operationId":"fulfillOrderLine","x-required-scope":"fulfillment:write","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128,"pattern":"^[!-~]{8,128}$"},"description":"8–128 non-space printable ASCII characters. Use a new key for each logical write.","x-doc-description":"idempotencyHeader"}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Fulfillment"},"example":{"id":8101,"state":"shipped","carrier":"Example Carrier","tracking":"TRACK-0001"}}}},"responses":{"200":{"description":"Successful response","content":{"application\/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data","allOf":[{"$ref":"#\/components\/schemas\/FulfillmentResult"}]}},"required":["status","data"]},"examples":{"record":{"value":{"status":"success","data":{"id":8101,"state":"shipped"}}}}}}},"400":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"BAD_REQUEST","message":"Invalid request parameters","error":"Invalid request parameters"}}},"description":"Invalid request","x-doc-description":"http_400"},"401":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"UNAUTHORIZED","message":"A seller Bearer token is required","error":"A seller Bearer token is required"}}},"description":"Token missing, expired or revoked","x-doc-description":"http_401"},"403":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"FORBIDDEN","message":"Missing API scope: products:read","error":"Missing API scope: products:read"}}},"description":"Insufficient scope or current company permissions","x-doc-description":"http_403"},"404":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"NOT_FOUND","message":"Record not found","error":"Record not found"}}},"description":"Resource not found within this company","x-doc-description":"http_404"},"409":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"CONFLICT","message":"Idempotency key was used for another request","error":"Idempotency key was used for another request"}}},"description":"Version, identity, reservation, state or idempotency conflict","x-doc-description":"http_409"},"429":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"TOO_MANY_REQUESTS","message":"API limit: 120 requests per minute","error":"API limit: 120 requests per minute"}}},"description":"Rate limit exceeded; retry after 60 seconds","x-doc-description":"http_429","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"example":60}}},"500":{"content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"},"example":{"status":"error","code":"INTERNAL","message":"Internal server error","error":"Internal server error","errorId":"a1b2c3d4"}}},"description":"Internal error; provide errorId to support","x-doc-description":"http_500"}},"description":"id is the seller order-line ID, not orderId. reserved → shipped deducts stock and releases the reservation; reserved → cancelled only releases it. Repeating the same final state is safe. Changing one final state to another returns 409.","tags":["orders"],"x-doc-summary":"op_fulfillOrderLine","x-doc-description":"desc_fulfillOrderLine","x-request-examples":{"default":{"body":{"id":8101,"state":"shipped","carrier":"Example Carrier","tracking":"TRACK-0001"}}}}}},"components":{"securitySchemes":{"sellerToken":{"type":"http","scheme":"bearer","description":"ap_seller_ token; not a personal login token"}},"schemas":{"Product":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"version":{"type":"integer","minimum":1,"description":"Current version for optimistic concurrency. A stale value returns 409.","x-doc-description":"field_version"},"source":{"type":"string","example":"erp","maxLength":64,"default":"manual","pattern":"^[a-zA-Z0-9_.-]{1,64}$","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"externalId":{"type":"string","example":"0000123","maxLength":128,"description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"field_externalId"},"productId":{"type":"integer","minimum":1,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"manufacturerId":{"type":"integer","minimum":1,"description":"Manufacturer ID in AgroParts.","x-doc-description":"field_manufacturerId"},"manufacturerCode":{"type":"string","description":"Manufacturer XML_ID; used when manufacturerId is not resolved.","x-doc-description":"field_manufacturerCode"},"manufacturerName":{"type":"string","description":"Exact manufacturer name; fallback after manufacturerId and manufacturerCode.","x-doc-description":"field_manufacturerName"},"number":{"type":"string","maxLength":64,"description":"Manufacturer part number.","x-doc-description":"field_number"},"title":{"type":"string","maxLength":255,"description":"Display name.","x-doc-description":"field_title"},"sku":{"type":"string","maxLength":128,"description":"Seller SKU; does not identify a global catalog product.","x-doc-description":"field_sku"},"gtin":{"type":"string","maxLength":128,"description":"GTIN supplied by the seller.","x-doc-description":"field_gtin"},"unit":{"type":"string","maxLength":128,"description":"Unit of measure.","x-doc-description":"field_unit"},"packSize":{"type":"number","minimum":0.0001,"description":"Units per pack; positive. Stored as a string in product details.","x-doc-description":"field_packSize"},"productGroup":{"type":"string","maxLength":128,"description":"Seller product group code used to match pricing rules.","x-doc-description":"field_productGroup"},"description":{"type":"string","maxLength":4000,"description":"Product description.","x-doc-description":"field_description"},"normalizeNumber":{"type":"boolean","default":false,"description":"Try a normalized part number after exact matching. Multiple matches remain ambiguous.","x-doc-description":"field_normalizeNumber"}},"description":"Create with productId, or a known manufacturer (ID, code or exact name) and number. Updates resolve by source + externalId, then id. Omitted fields retain their values.","x-doc-description":"productInput"},"Terms":{"type":"object","properties":{"mode":{"type":"string","enum":["fixed","reference_discount","cost_markup"],"default":"fixed","description":"Pricing formula: fixed price, reference discount or cost markup.","x-doc-description":"field_mode"},"price":{"type":"number","minimum":0,"description":"Base selling price in the specified currency and tax mode.","x-doc-description":"field_price"},"purchasePrice":{"type":"number","minimum":0,"description":"Acquisition cost; excluded from public buyer quotes.","x-doc-description":"field_purchasePrice"},"referencePrice":{"type":"number","minimum":0,"description":"Fallback reference price when no published manufacturer reference is available.","x-doc-description":"field_referencePrice"},"floorPrice":{"type":"number","minimum":0,"description":"Minimum permitted calculated selling price.","x-doc-description":"field_floorPrice"},"currency":{"type":"string","example":"EUR","default":"EUR","description":"Currency code supported by the marketplace, for example EUR.","x-doc-description":"field_currency"},"discount":{"type":"number","minimum":0,"maximum":100,"default":0,"description":"Discount percentage.","x-doc-description":"field_discount"},"markup":{"type":"number","minimum":0,"maximum":10000,"default":0,"description":"Markup percentage over acquisition cost.","x-doc-description":"field_markup"},"taxMode":{"type":"string","enum":["net","gross"],"default":"net","description":"net: excluding tax; gross: including tax.","x-doc-description":"field_taxMode"},"taxRate":{"type":"number","minimum":0,"maximum":100,"default":0,"description":"Tax percentage. Supply explicitly for gross input.","x-doc-description":"field_taxRate"},"minQty":{"type":"number","minimum":0.0001,"default":1,"description":"Minimum order quantity or rule quantity threshold.","x-doc-description":"field_minQty"},"step":{"type":"number","minimum":0.0001,"default":1,"description":"Order quantity increment.","x-doc-description":"field_step"},"active":{"type":"boolean","default":true,"description":"Whether the offer or rule is enabled.","x-doc-description":"field_active"},"quantityBreaks":{"type":"array","maxItems":50,"items":{"type":"object","properties":{"qty":{"type":"number","minimum":0.0001,"description":"Minimum quantity for this volume discount.","x-doc-description":"breakQty"},"discount":{"type":"number","minimum":0,"maximum":100,"description":"Discount percentage.","x-doc-description":"field_discount"}},"required":["qty","discount"]},"default":[],"description":"Quantity discounts; at most 50 entries. The best eligible discount is applied.","x-doc-description":"field_quantityBreaks"},"deliveryPrices":{"type":"object","additionalProperties":{"type":"number","exclusiveMinimum":true,"minimum":0},"description":"Prices for active delivery term IDs, excluding From Stock. Values use the offer currency and tax mode. Empty or omitted on an existing offer preserves the usual stock price; an empty object removes delivery prices.","x-doc-description":"field_deliveryPrices"}},"description":"Partial update. Monetary values use currency and taxMode. Currency or tax changes convert existing amounts omitted from the request. Buyer quotes are net.","x-doc-description":"termsInput"},"Inventory":{"type":"object","properties":{"itemId":{"type":"integer","minimum":1,"description":"Seller item ID returned by products.","x-doc-description":"field_itemId"},"source":{"type":"string","default":"manual","maxLength":64,"pattern":"^[a-zA-Z0-9_.-]{1,64}$","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"externalId":{"type":"string","maxLength":128,"description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"field_externalId"},"warehouseId":{"type":"integer","minimum":1,"description":"Warehouse ID owned by the token company.","x-doc-description":"field_warehouseId"},"warehouseExternalId":{"type":"string","description":"Warehouse external ID resolved within the same source.","x-doc-description":"field_warehouseExternalId"},"qty":{"type":"number","minimum":0,"description":"On-hand stock, including reserved units; up to four decimal places.","x-doc-description":"field_qty"},"version":{"type":"integer","minimum":0,"description":"Current version for optimistic concurrency. A stale value returns 409.","x-doc-description":"field_version"},"expectedQty":{"type":"number","minimum":0,"description":"Optional compare-and-set check against current on-hand stock; mismatch returns 409.","x-doc-description":"field_expectedQty"},"terms":{"$ref":"#\/components\/schemas\/Terms"}},"description":"Identify the item by itemId or source + externalId, and the warehouse by warehouseId or source + warehouseExternalId. qty includes reservations and cannot be less than reserved. version=0 can be used to require creation of a new offer. Non-empty terms additionally requires prices:write.","x-doc-description":"inventoryInput"},"Rule":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"source":{"type":"string","default":"default","maxLength":64,"pattern":"^[a-zA-Z0-9_.-]{1,64}$","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"externalId":{"type":"string","maxLength":128,"description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"field_externalId"},"name":{"type":"string","maxLength":128,"description":"Name.","x-doc-description":"field_name"},"kind":{"type":"string","enum":["customer","promotion"],"description":"Resource type.","x-doc-description":"field_kind"},"active":{"type":"boolean","default":true,"description":"Whether the offer or rule is enabled.","x-doc-description":"field_active"},"productId":{"type":"integer","minimum":0,"default":0,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"manufacturerId":{"type":"integer","minimum":0,"default":0,"description":"Manufacturer ID in AgroParts.","x-doc-description":"field_manufacturerId"},"buyerGroupId":{"type":"integer","minimum":0,"default":0,"description":"Buyer price group ID; 0 applies to all groups.","x-doc-description":"field_buyerGroupId"},"productGroup":{"type":"string","default":"","description":"Seller product group code used to match pricing rules.","x-doc-description":"field_productGroup"},"discount":{"type":"number","minimum":0,"maximum":100,"default":0,"description":"Discount percentage.","x-doc-description":"field_discount"},"fixedPrice":{"type":"number","minimum":0.0001,"description":"Fixed net selling price. Requires currency; overrides discount within the rule.","x-doc-description":"field_fixedPrice"},"currency":{"type":"string","description":"Currency code supported by the marketplace, for example EUR.","x-doc-description":"field_currency"},"minQty":{"type":"number","minimum":0,"default":0,"description":"Minimum order quantity or rule quantity threshold.","x-doc-description":"field_minQty"},"startsAt":{"type":"string","example":"2026-10-09","default":"","description":"Start date, YYYY-MM-DD or YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_startsAt"},"endsAt":{"type":"string","default":"","description":"Inclusive end date; a date without time includes the entire day.","x-doc-description":"field_endsAt"},"stackable":{"type":"boolean","default":false,"description":"Apply a promotion to the already discounted price; otherwise compare against the base price.","x-doc-description":"field_stackable"}},"required":["name","kind"],"description":"Full replacement, not a partial update: omitted fields revert to defaults. Use id or source + externalId to replace a rule. productId\/manufacturerId\/buyerGroupId=0 and an empty productGroup mean no filter.","x-doc-description":"ruleInput"},"WarehouseBinding":{"type":"object","properties":{"warehouseId":{"type":"integer","minimum":1,"description":"Warehouse ID owned by the token company.","x-doc-description":"field_warehouseId"},"source":{"type":"string","default":"default","maxLength":64,"pattern":"^[a-zA-Z0-9_.-]{1,64}$","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"externalId":{"type":"string","maxLength":128,"description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"field_externalId"},"name":{"type":"string","description":"Name.","x-doc-description":"field_name"},"countryAlpha2":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter country code for a new warehouse, for example BG.","x-doc-description":"field_countryAlpha2"},"clientCode":{"type":"string","description":"Optional internal warehouse code supplied by the seller.","x-doc-description":"field_clientCode"},"addresses":{"type":"array","items":{"$ref":"#\/components\/schemas\/WarehouseAddress"},"description":"Addresses supplied only when creating a warehouse.","x-doc-description":"field_addresses"}},"required":["externalId"],"description":"Pass warehouseId to bind an existing active company warehouse. If the external ID already exists it is reused. Otherwise name is required to create a warehouse. name, countryAlpha2, clientCode and addresses apply only on creation.","x-doc-description":"warehouseInput"},"ImportConfig":{"type":"object","properties":{"source":{"type":"string","default":"default","maxLength":64,"pattern":"^[a-zA-Z0-9_.-]{1,64}$","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"kind":{"type":"string","enum":["catalog","sale","purchase","reference","stock","mixed"],"default":"mixed","description":"Resource type.","x-doc-description":"field_kind"},"skipRows":{"type":"integer","minimum":0,"maximum":100,"default":1,"description":"Number of initial rows to skip, from 0 to 100.","x-doc-description":"field_skipRows"},"encoding":{"type":"string","enum":["auto","utf-8","windows-1251"],"description":"Text file encoding; ignored for XLSX.","x-doc-description":"field_encoding"},"delimiter":{"type":"string","enum":["auto","tab",";",",","|"],"description":"Text column separator; tab denotes a tab character.","x-doc-description":"field_delimiter"},"mapping":{"type":"object","additionalProperties":false,"description":"Field name → zero-based column index. Blank cells retain existing values or configured defaults.","properties":{"externalId":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"productId":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"manufacturerId":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"manufacturerCode":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"manufacturerName":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"number":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"title":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"sku":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"gtin":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"unit":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"packSize":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"productGroup":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"warehouseExternalId":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"warehouseId":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"qty":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"price":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"purchasePrice":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"referencePrice":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"currency":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"discount":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"markup":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"minQty":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"},"step":{"type":"integer","minimum":0,"maximum":255,"x-doc-description":"columnIndex"}},"x-doc-description":"field_mapping"},"defaults":{"type":"object","description":"Values used when the mapped cell is blank or no column is mapped.","properties":{"externalId":{"type":"string","maxLength":128,"description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"field_externalId"},"productId":{"type":"integer","minimum":1,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"manufacturerId":{"type":"integer","minimum":1,"description":"Manufacturer ID in AgroParts.","x-doc-description":"field_manufacturerId"},"manufacturerCode":{"type":"string","description":"Manufacturer XML_ID; used when manufacturerId is not resolved.","x-doc-description":"field_manufacturerCode"},"manufacturerName":{"type":"string","description":"Exact manufacturer name; fallback after manufacturerId and manufacturerCode.","x-doc-description":"field_manufacturerName"},"number":{"type":"string","maxLength":64,"description":"Manufacturer part number.","x-doc-description":"field_number"},"title":{"type":"string","maxLength":255,"description":"Display name.","x-doc-description":"field_title"},"sku":{"type":"string","maxLength":128,"description":"Seller SKU; does not identify a global catalog product.","x-doc-description":"field_sku"},"gtin":{"type":"string","maxLength":128,"description":"GTIN supplied by the seller.","x-doc-description":"field_gtin"},"unit":{"type":"string","maxLength":128,"description":"Unit of measure.","x-doc-description":"field_unit"},"packSize":{"type":"number","minimum":0.0001,"description":"Units per pack; positive. Stored as a string in product details.","x-doc-description":"field_packSize"},"productGroup":{"type":"string","maxLength":128,"description":"Seller product group code used to match pricing rules.","x-doc-description":"field_productGroup"},"warehouseExternalId":{"type":"string","description":"Warehouse external ID resolved within the same source.","x-doc-description":"field_warehouseExternalId"},"warehouseId":{"type":"integer","minimum":1,"description":"Warehouse ID owned by the token company.","x-doc-description":"field_warehouseId"},"qty":{"type":"number","minimum":0,"description":"On-hand stock, including reserved units; up to four decimal places.","x-doc-description":"field_qty"},"price":{"type":"number","minimum":0,"description":"Base selling price in the specified currency and tax mode.","x-doc-description":"field_price"},"purchasePrice":{"type":"number","minimum":0,"description":"Acquisition cost; excluded from public buyer quotes.","x-doc-description":"field_purchasePrice"},"referencePrice":{"type":"number","minimum":0,"description":"Fallback reference price when no published manufacturer reference is available.","x-doc-description":"field_referencePrice"},"currency":{"type":"string","example":"EUR","description":"Currency code supported by the marketplace, for example EUR.","x-doc-description":"field_currency"},"discount":{"type":"number","minimum":0,"maximum":100,"description":"Discount percentage.","x-doc-description":"field_discount"},"markup":{"type":"number","minimum":0,"maximum":10000,"description":"Markup percentage over acquisition cost.","x-doc-description":"field_markup"},"minQty":{"type":"number","minimum":0.0001,"description":"Minimum order quantity or rule quantity threshold.","x-doc-description":"field_minQty"},"step":{"type":"number","minimum":0.0001,"description":"Order quantity increment.","x-doc-description":"field_step"},"mode":{"type":"string","enum":["fixed","reference_discount","cost_markup"],"description":"Pricing formula: fixed price, reference discount or cost markup.","x-doc-description":"field_mode"},"taxMode":{"type":"string","enum":["net","gross"],"description":"net: excluding tax; gross: including tax.","x-doc-description":"field_taxMode"},"taxRate":{"type":"number","minimum":0,"maximum":100,"description":"Tax percentage. Supply explicitly for gross input.","x-doc-description":"field_taxRate"}},"additionalProperties":false,"x-doc-description":"field_defaults"},"fullStock":{"type":"boolean","description":"Full snapshot for one warehouse and source. Requires stock\/mixed, defaults.warehouseId and mapped qty; warehouse columns are prohibited. Missing stock is cleared only after a non-empty error-free import, provided it has no reservations.","default":false,"x-doc-description":"field_fullStock"},"externalId":{"type":"string","description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","maxLength":128,"x-doc-description":"field_externalId"},"normalizeNumber":{"type":"boolean","default":false,"description":"Try a normalized part number after exact matching. Multiple matches remain ambiguous.","x-doc-description":"field_normalizeNumber"},"priceListId":{"type":"integer","minimum":1,"description":"Linked price list ID; returned by the server.","x-doc-description":"priceListId","readOnly":true}}},"ImportAction":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"config":{"description":"Import configuration.","x-doc-description":"field_config","allOf":[{"$ref":"#\/components\/schemas\/ImportConfig"}]}},"required":["id"]},"Fulfillment":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"state":{"type":"string","enum":["shipped","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"},"carrier":{"type":"string","description":"Carrier name, up to 128 characters.","x-doc-description":"field_carrier"},"tracking":{"type":"string","description":"Shipment tracking number, up to 128 characters.","x-doc-description":"field_tracking"}},"required":["id","state"]},"Error":{"type":"object","properties":{"status":{"type":"string","enum":["error"],"description":"Envelope status.","x-doc-description":"field_status"},"code":{"type":"string","enum":["BAD_REQUEST","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","TOO_MANY_REQUESTS","INTERNAL"],"description":"Stable machine-readable error code.","x-doc-description":"field_code"},"message":{"type":"string","description":"Result or error message.","x-doc-description":"field_message"},"error":{"type":"string","description":"Legacy alias of message.","x-doc-description":"field_error"},"data":{"type":"object","additionalProperties":true,"description":"Operation result.","x-doc-description":"field_data"},"details":{"type":"string","description":"Seller metadata and moderation note.","x-doc-description":"field_details"},"errorId":{"type":"string","description":"Error identifier for support.","x-doc-description":"field_errorId"}},"required":["status","code","message","error"]},"Envelope":{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Envelope status.","x-doc-description":"field_status"},"data":{"description":"Operation result.","x-doc-description":"field_data"}},"required":["status"]},"Submit":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"}},"required":["id"]},"ImportCancel":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"}},"required":["id"]},"WarehouseAddress":{"type":"object","properties":{"countryId":{"type":"integer","minimum":1,"description":"Country directory ID.","x-doc-description":"address_countryId"},"kind":{"type":"string","enum":["shipping","legal","physical","warehouse","pickup","correspondence","virtual","other"],"default":"shipping","description":"Resource type.","x-doc-description":"field_kind"},"isDefault":{"type":"boolean","description":"Default address of this kind.","x-doc-description":"address_isDefault"},"chainLabels":{"type":"array","items":{"type":"string"},"description":"Location labels for a manual address.","x-doc-description":"address_chainLabels"},"label":{"type":"string","maxLength":128,"description":"Address label.","x-doc-description":"address_label"},"recipient":{"type":"string","maxLength":255,"description":"Recipient name.","x-doc-description":"address_recipient"},"phone":{"type":"string","maxLength":32,"description":"Contact phone.","x-doc-description":"address_phone"},"nodeStableKey":{"type":"string","maxLength":96,"description":"Location directory stable key. Omit for a manually entered address.","x-doc-description":"address_nodeStableKey"},"postalCode":{"type":"string","maxLength":16,"description":"Postal code.","x-doc-description":"address_postalCode"},"postalCodeFull":{"type":"string","maxLength":32,"description":"Postal code with country prefix.","x-doc-description":"address_postalCodeFull"},"street":{"type":"string","maxLength":255,"description":"Street name.","x-doc-description":"address_street"},"streetEn":{"type":"string","maxLength":255,"description":"Street name in English.","x-doc-description":"address_streetEn"},"house":{"type":"string","maxLength":32,"description":"Building number.","x-doc-description":"address_house"},"flat":{"type":"string","maxLength":32,"description":"Unit or office.","x-doc-description":"address_flat"},"localityFreetext":{"type":"string","maxLength":255,"description":"Locality entered as text.","x-doc-description":"address_localityFreetext"},"regionFreetext":{"type":"string","maxLength":255,"description":"Region entered as text.","x-doc-description":"address_regionFreetext"},"state":{"type":"string","maxLength":255,"description":"State or province.","x-doc-description":"address_state"},"regionCode":{"type":"string","maxLength":32,"description":"Region code.","x-doc-description":"address_regionCode"},"lat":{"type":"string","maxLength":16,"description":"Latitude as a string.","x-doc-description":"address_lat"},"lon":{"type":"string","maxLength":16,"description":"Longitude as a string.","x-doc-description":"address_lon"},"comment":{"type":"string","maxLength":1000,"description":"Delivery or access instructions.","x-doc-description":"address_comment"}},"required":["countryId"]},"ExternalRef":{"type":"object","properties":{"source":{"type":"string","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"externalId":{"type":"string","description":"External identifier; case and leading zeroes are preserved. Unique within company, source and entity type.","x-doc-description":"field_externalId"}},"required":["source","externalId"]},"ProductDetails":{"type":"object","properties":{"sku":{"type":"string","description":"Seller SKU; does not identify a global catalog product.","x-doc-description":"field_sku"},"gtin":{"type":"string","description":"GTIN supplied by the seller.","x-doc-description":"field_gtin"},"unit":{"type":"string","description":"Unit of measure.","x-doc-description":"field_unit"},"packSize":{"type":"string","description":"Units per pack; positive. Stored as a string in product details.","x-doc-description":"field_packSize"},"productGroup":{"type":"string","description":"Seller product group code used to match pricing rules.","x-doc-description":"field_productGroup"},"description":{"type":"string","description":"Product description.","x-doc-description":"field_description"},"reviewNote":{"type":"string","description":"Moderator comment.","x-doc-description":"field_reviewNote"}}},"ProductRecord":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"partnerId":{"type":"integer","minimum":1,"description":"Seller company ID.","x-doc-description":"field_partnerId"},"productId":{"type":"integer","minimum":0,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"manufacturerId":{"type":"integer","minimum":1,"description":"Manufacturer ID in AgroParts.","x-doc-description":"field_manufacturerId"},"number":{"type":"string","description":"Manufacturer part number.","x-doc-description":"field_number"},"title":{"type":"string","description":"Display name.","x-doc-description":"field_title"},"state":{"type":"string","enum":["draft","ambiguous","pending","approved","rejected"],"description":"Current processing state.","x-doc-description":"field_state"},"version":{"type":"integer","minimum":1,"description":"Current version for optimistic concurrency. A stale value returns 409.","x-doc-description":"field_version"},"updatedAt":{"type":"string","description":"Last update timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_updatedAt"},"externalRefs":{"type":"array","items":{"$ref":"#\/components\/schemas\/ExternalRef"},"description":"External identifiers assigned to this record.","x-doc-description":"field_externalRefs"},"erpState":{"type":"string","nullable":true,"enum":["pending_creation",null],"description":"pending_creation: catalog item awaits ERP creation support; null otherwise.","x-doc-description":"field_erpState"},"details":{"oneOf":[{"$ref":"#\/components\/schemas\/ProductDetails"},{"type":"array","maxItems":0,"items":{}}],"description":"Seller metadata and moderation note.","x-doc-description":"field_details"}},"required":["id","partnerId","productId","manufacturerId","number","title","state","version","updatedAt","externalRefs","erpState","details"]},"InventoryRecord":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"itemId":{"type":"integer","minimum":1,"description":"Seller item ID returned by products.","x-doc-description":"field_itemId"},"productId":{"type":"integer","minimum":0,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"warehouseId":{"type":"integer","minimum":1,"description":"Warehouse ID owned by the token company.","x-doc-description":"field_warehouseId"},"title":{"type":"string","description":"Display name.","x-doc-description":"field_title"},"warehouseTitle":{"type":"string","description":"Warehouse display name; empty in an inventory write response.","x-doc-description":"field_warehouseTitle"},"qty":{"type":"number","minimum":0,"description":"On-hand stock, including reserved units; up to four decimal places.","x-doc-description":"field_qty"},"reserved":{"type":"number","minimum":0,"description":"Reserved quantity.","x-doc-description":"field_reserved"},"available":{"type":"number","minimum":0,"description":"Available quantity: max(0, qty − reserved).","x-doc-description":"field_available"},"version":{"type":"integer","minimum":1,"description":"Current version for optimistic concurrency. A stale value returns 409.","x-doc-description":"field_version"},"source":{"type":"string","description":"Integration namespace. Use the same value when creating and resolving external IDs.","x-doc-description":"field_source"},"terms":{"description":"With prices:read: pricing terms. Without it: minQty, step and active only.","x-doc-description":"termsRead","allOf":[{"$ref":"#\/components\/schemas\/Terms"}]}},"required":["id","itemId","productId","warehouseId","title","warehouseTitle","qty","reserved","available","version","source","terms"]},"WarehouseRecord":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"title":{"type":"string","description":"Display name.","x-doc-description":"field_title"},"address":{"type":"string","description":"Formatted warehouse address.","x-doc-description":"field_address"},"active":{"type":"boolean","description":"Whether the offer or rule is enabled.","x-doc-description":"field_active"},"externalId":{"type":"string","nullable":true,"description":"Warehouse client code. Integration identifiers are in externalRefs.","x-doc-description":"warehouseCode"},"externalRefs":{"type":"array","items":{"$ref":"#\/components\/schemas\/ExternalRef"},"description":"External identifiers assigned to this record.","x-doc-description":"field_externalRefs"}},"required":["id","title","address","active","externalId","externalRefs"]},"WarehouseResult":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"title":{"type":"string","description":"Display name.","x-doc-description":"field_title"}},"required":["id","title"]},"RuleRecord":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"name":{"type":"string","maxLength":128,"description":"Name.","x-doc-description":"field_name"},"kind":{"type":"string","enum":["customer","promotion"],"description":"Resource type.","x-doc-description":"field_kind"},"active":{"type":"boolean","default":true,"description":"Whether the offer or rule is enabled.","x-doc-description":"field_active"},"productId":{"type":"integer","minimum":0,"default":0,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"manufacturerId":{"type":"integer","minimum":0,"default":0,"description":"Manufacturer ID in AgroParts.","x-doc-description":"field_manufacturerId"},"buyerGroupId":{"type":"integer","minimum":0,"default":0,"description":"Buyer price group ID; 0 applies to all groups.","x-doc-description":"field_buyerGroupId"},"productGroup":{"type":"string","default":"","description":"Seller product group code used to match pricing rules.","x-doc-description":"field_productGroup"},"discount":{"type":"number","minimum":0,"maximum":100,"default":0,"description":"Discount percentage.","x-doc-description":"field_discount"},"fixedPrice":{"type":"number","minimum":0.0001,"description":"Fixed net selling price. Requires currency; overrides discount within the rule.","x-doc-description":"field_fixedPrice"},"currency":{"type":"string","description":"Currency code supported by the marketplace, for example EUR.","x-doc-description":"field_currency"},"minQty":{"type":"number","minimum":0,"default":0,"description":"Minimum order quantity or rule quantity threshold.","x-doc-description":"field_minQty"},"startsAt":{"type":"string","example":"2026-10-09","default":"","description":"Start date, YYYY-MM-DD or YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_startsAt"},"endsAt":{"type":"string","default":"","description":"Inclusive end date; a date without time includes the entire day.","x-doc-description":"field_endsAt"},"stackable":{"type":"boolean","default":false,"description":"Apply a promotion to the already discounted price; otherwise compare against the base price.","x-doc-description":"field_stackable"}},"required":["id","name","kind","active","productId","manufacturerId","buyerGroupId","productGroup","discount","minQty","stackable","startsAt","endsAt"]},"ImportRow":{"type":"object","properties":{"line":{"type":"integer","minimum":1,"description":"Physical line number; use as after when paging import details.","x-doc-description":"field_line"},"state":{"type":"string","enum":["applied","error"],"description":"Current processing state.","x-doc-description":"field_state"},"message":{"type":"string","description":"Result or error message.","x-doc-description":"field_message"},"itemId":{"type":"integer","minimum":0,"description":"Seller item ID returned by products.","x-doc-description":"field_itemId"},"offerId":{"type":"integer","minimum":0,"description":"Inventory offer ID.","x-doc-description":"field_offerId"},"data":{"type":"object","additionalProperties":true,"description":"Operation result.","x-doc-description":"field_data"}},"required":["line","state","message","itemId","offerId","data"]},"ImportRecord":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"name":{"type":"string","description":"Name.","x-doc-description":"field_name"},"sha256":{"type":"string","description":"SHA-256 checksum of the original file.","x-doc-description":"field_sha256"},"size":{"type":"integer","minimum":1,"description":"Original file size in bytes.","x-doc-description":"field_size"},"state":{"type":"string","enum":["preview","queued","running","done","partial","error","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"},"applied":{"type":"integer","minimum":0,"description":"Number of successfully applied rows.","x-doc-description":"field_applied"},"errors":{"type":"integer","minimum":0,"description":"Number of failed rows.","x-doc-description":"field_errors"},"row":{"type":"integer","minimum":0,"description":"Last processed physical line number.","x-doc-description":"field_row"},"message":{"type":"string","description":"Result or error message.","x-doc-description":"field_message"},"config":{"description":"Import configuration.","x-doc-description":"field_config","allOf":[{"$ref":"#\/components\/schemas\/ImportConfig"}]},"createdAt":{"type":"string","description":"Creation timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_createdAt"},"updatedAt":{"type":"string","description":"Last update timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_updatedAt"}},"required":["id","name","sha256","size","state","applied","errors","row","message","config","createdAt","updatedAt"]},"ImportDetail":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"name":{"type":"string","description":"Name.","x-doc-description":"field_name"},"sha256":{"type":"string","description":"SHA-256 checksum of the original file.","x-doc-description":"field_sha256"},"size":{"type":"integer","minimum":1,"description":"Original file size in bytes.","x-doc-description":"field_size"},"state":{"type":"string","enum":["preview","queued","running","done","partial","error","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"},"applied":{"type":"integer","minimum":0,"description":"Number of successfully applied rows.","x-doc-description":"field_applied"},"errors":{"type":"integer","minimum":0,"description":"Number of failed rows.","x-doc-description":"field_errors"},"row":{"type":"integer","minimum":0,"description":"Last processed physical line number.","x-doc-description":"field_row"},"message":{"type":"string","description":"Result or error message.","x-doc-description":"field_message"},"config":{"description":"Import configuration.","x-doc-description":"field_config","allOf":[{"$ref":"#\/components\/schemas\/ImportConfig"}]},"createdAt":{"type":"string","description":"Creation timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_createdAt"},"updatedAt":{"type":"string","description":"Last update timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_updatedAt"},"headers":{"type":"array","items":{"type":"string"},"description":"First file row, returned while state is preview.","x-doc-description":"field_headers"},"rows":{"type":"array","items":{"$ref":"#\/components\/schemas\/ImportRow"},"description":"Processed row results, up to 100 per page.","x-doc-description":"field_rows"}},"required":["id","name","sha256","size","state","applied","errors","row","message","config","createdAt","updatedAt","rows"]},"ImportUploadResult":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"name":{"type":"string","description":"Name.","x-doc-description":"field_name"},"sha256":{"type":"string","description":"SHA-256 checksum of the original file.","x-doc-description":"field_sha256"},"size":{"type":"integer","minimum":1,"description":"Original file size in bytes.","x-doc-description":"field_size"},"state":{"type":"string","enum":["preview","queued","running","done","partial","error","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"},"applied":{"type":"integer","minimum":0,"description":"Number of successfully applied rows.","x-doc-description":"field_applied"},"errors":{"type":"integer","minimum":0,"description":"Number of failed rows.","x-doc-description":"field_errors"},"row":{"type":"integer","minimum":0,"description":"Last processed physical line number.","x-doc-description":"field_row"},"message":{"type":"string","description":"Result or error message.","x-doc-description":"field_message"},"config":{"description":"Import configuration.","x-doc-description":"field_config","allOf":[{"$ref":"#\/components\/schemas\/ImportConfig"}]},"createdAt":{"type":"string","description":"Creation timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_createdAt"},"updatedAt":{"type":"string","description":"Last update timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_updatedAt"},"headers":{"type":"array","items":{"type":"string"},"description":"First file row, returned while state is preview.","x-doc-description":"field_headers"},"rows":{"type":"array","items":{"$ref":"#\/components\/schemas\/ImportRow"},"description":"Processed row results, up to 100 per page.","x-doc-description":"field_rows"},"preview":{"type":"array","items":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":1},{"type":"array","items":{"type":"string"}}]},"minItems":2,"maxItems":2},"description":"Preview rows; upload returns raw [line, cells] pairs, configuration returns normalized records.","x-doc-description":"field_preview"},"fields":{"type":"array","items":{"type":"string"},"description":"Supported mapping field names.","x-doc-description":"field_fields"}},"required":["id","name","sha256","size","state","applied","errors","row","message","config","createdAt","updatedAt","rows","preview","fields"]},"ImportConfiguredResult":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"name":{"type":"string","description":"Name.","x-doc-description":"field_name"},"sha256":{"type":"string","description":"SHA-256 checksum of the original file.","x-doc-description":"field_sha256"},"size":{"type":"integer","minimum":1,"description":"Original file size in bytes.","x-doc-description":"field_size"},"state":{"type":"string","enum":["preview","queued","running","done","partial","error","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"},"applied":{"type":"integer","minimum":0,"description":"Number of successfully applied rows.","x-doc-description":"field_applied"},"errors":{"type":"integer","minimum":0,"description":"Number of failed rows.","x-doc-description":"field_errors"},"row":{"type":"integer","minimum":0,"description":"Last processed physical line number.","x-doc-description":"field_row"},"message":{"type":"string","description":"Result or error message.","x-doc-description":"field_message"},"config":{"description":"Import configuration.","x-doc-description":"field_config","allOf":[{"$ref":"#\/components\/schemas\/ImportConfig"}]},"createdAt":{"type":"string","description":"Creation timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_createdAt"},"updatedAt":{"type":"string","description":"Last update timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_updatedAt"},"headers":{"type":"array","items":{"type":"string"},"description":"First file row, returned while state is preview.","x-doc-description":"field_headers"},"rows":{"type":"array","items":{"$ref":"#\/components\/schemas\/ImportRow"},"description":"Processed row results, up to 100 per page.","x-doc-description":"field_rows"},"preview":{"type":"array","items":{"type":"object","properties":{"line":{"type":"integer","minimum":1,"description":"Physical line number; use as after when paging import details.","x-doc-description":"field_line"},"data":{"type":"object","additionalProperties":true,"description":"Operation result.","x-doc-description":"field_data"}},"required":["line","data"]},"description":"Preview rows; upload returns raw [line, cells] pairs, configuration returns normalized records.","x-doc-description":"field_preview"}},"required":["id","name","sha256","size","state","applied","errors","row","message","config","createdAt","updatedAt","rows","preview"]},"OrderSnapshot":{"type":"object","properties":{"name":{"type":"string","description":"Name.","x-doc-description":"field_name"},"amount":{"type":"number","minimum":0,"description":"Order unit price, excluding tax.","x-doc-description":"snapshot_amount"},"currency":{"type":"string","description":"Currency code supported by the marketplace, for example EUR.","x-doc-description":"field_currency"},"baseAmount":{"type":"number","minimum":0,"description":"Base price before buyer discounts.","x-doc-description":"snapshot_baseAmount"},"referenceAmount":{"type":"number","minimum":0,"description":"Reference price in the order currency.","x-doc-description":"snapshot_referenceAmount"},"taxMode":{"type":"string","enum":["net"],"description":"net: excluding tax; gross: including tax.","x-doc-description":"field_taxMode"},"taxRate":{"type":"number","minimum":0,"description":"Tax percentage. Supply explicitly for gross input.","x-doc-description":"field_taxRate"},"minQty":{"type":"number","minimum":0,"description":"Minimum order quantity or rule quantity threshold.","x-doc-description":"field_minQty"},"step":{"type":"number","minimum":0,"description":"Order quantity increment.","x-doc-description":"field_step"},"rules":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"integer","minimum":1},"name":{"type":"string","description":"Name.","x-doc-description":"field_name"}},"required":["ruleId","name"]},"description":"Pricing rules applied to the order line.","x-doc-description":"snapshot_rules"},"offerId":{"type":"integer","minimum":1,"description":"Inventory offer ID.","x-doc-description":"field_offerId"},"productId":{"type":"integer","minimum":1,"description":"Canonical catalog product ID. Zero in unmatched seller items.","x-doc-description":"field_productId"},"sellerId":{"type":"integer","minimum":1,"description":"Seller company ID.","x-doc-description":"snapshot_sellerId"},"sellerName":{"type":"string","description":"Seller company name.","x-doc-description":"snapshot_sellerName"},"warehouseId":{"type":"integer","minimum":1,"description":"Warehouse ID owned by the token company.","x-doc-description":"field_warehouseId"},"warehouseName":{"type":"string","description":"Warehouse name at order creation.","x-doc-description":"snapshot_warehouseName"},"available":{"type":"number","minimum":0,"description":"Available quantity: max(0, qty − reserved).","x-doc-description":"field_available"},"offerCurrency":{"type":"string","description":"Original seller offer currency.","x-doc-description":"snapshot_offerCurrency"},"offerAmount":{"type":"number","minimum":0,"description":"Unit price in the original offer currency.","x-doc-description":"snapshot_offerAmount"},"tracking":{"type":"string","description":"Shipment tracking number, up to 128 characters.","x-doc-description":"field_tracking"},"carrier":{"type":"string","description":"Carrier name, up to 128 characters.","x-doc-description":"field_carrier"}}},"OrderLine":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"orderId":{"type":"integer","minimum":1,"description":"Marketplace order ID.","x-doc-description":"field_orderId"},"offerId":{"type":"integer","minimum":1,"description":"Inventory offer ID.","x-doc-description":"field_offerId"},"quantity":{"type":"number","minimum":0,"description":"Quantity in this seller order line.","x-doc-description":"field_quantity"},"state":{"type":"string","enum":["reserved","shipped","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"},"snapshot":{"description":"Price, seller and warehouse values captured when the order was placed.","x-doc-description":"field_snapshot","allOf":[{"$ref":"#\/components\/schemas\/OrderSnapshot"}]},"updatedAt":{"type":"string","description":"Last update timestamp, YYYY-MM-DD HH:mm:ss.","x-doc-description":"field_updatedAt"}},"required":["id","orderId","offerId","quantity","state","snapshot","updatedAt"]},"FulfillmentResult":{"type":"object","properties":{"id":{"type":"integer","minimum":1,"description":"Resource identifier.","x-doc-description":"field_id"},"state":{"type":"string","enum":["shipped","cancelled"],"description":"Current processing state.","x-doc-description":"field_state"}},"required":["id","state"]}}},"tags":[{"name":"products"},{"name":"warehouses"},{"name":"inventory"},{"name":"prices"},{"name":"imports"},{"name":"orders"}],"x-doc-version":"2026-10-09"}