{"info":{"_postman_id":"94622d5b-ab5b-4125-b62d-78ec09a4afce","name":"ChannelDock API V2","description":"<html><head></head><body><p>Version 2 of ChannelDock's API. Our API's are divided per user type: Fulfillment centers and Sellers. If you use the wrong sub set of API's you will receive a error message saying so.</p>\n<h2 id=\"webhooks\">Webhooks</h2>\n<p>ChannelDock can <strong>POST</strong> event notifications to your HTTPS endpoint so you do not need to poll API v2. Event names and JSON payloads are the same for <strong>sellers</strong> and <strong>fulfillment centers</strong>; seller and FC accounts each configure their own URLs and see their own delivery logs.</p>\n<p>Full reference (seller vs FC routing, <code>X-Channeldock-Signature</code> verification, retries): open the <strong>Webhooks</strong> folder; each event has its own subfolder with payload details and an example delivery.</p>\n<h3 id=\"api-rate-limiting-and-access-restrictions\"><strong>API Rate Limiting and Access Restrictions</strong></h3>\n<p>To ensure a reliable and fair usage experience for all users, our API implements comprehensive <strong>rate limiting</strong> and <strong>access restriction</strong> mechanisms. The following provides an overview of these features, detailing how they work, the associated headers, and best practices for interacting with our API effectively.</p>\n<h5 id=\"hourly-call-limit\"><strong>Hourly Call Limit</strong></h5>\n<p>To maintain optimal performance and prevent abuse, each API client is subject to an <strong>hourly call limit</strong>. This limit defines the maximum number of API requests you can make within a rolling one-hour window.</p>\n<ul>\n<li><p><strong>Default Limit:</strong> Each API key is allowed up to <strong>1,000 requests per hour</strong>.</p>\n</li>\n<li><p><strong>Custom Limits:</strong> Depending on your subscription tier or specific agreements, your hourly call limit (hourly_call_limit) may vary. Please refer to your account details or contact support for more information.</p>\n</li>\n</ul>\n<p><strong>Note:</strong> The call count resets <strong>every hour</strong> from the time of the first request in the current window.</p>\n<h5 id=\"rate-limiting-headers\"><strong>Rate Limiting Headers</strong></h5>\n<p>Every response from our API includes specific headers that inform you about your current rate limit status. Monitoring these headers allows you to manage your API usage proactively.</p>\n<ul>\n<li><p>X-RateLimit-Limit</p>\n<ul>\n<li><p><strong>Description:</strong> The maximum number of API calls allowed within the current hour.</p>\n</li>\n<li><p><strong>Example:</strong> X-RateLimit-Limit: 1000</p>\n</li>\n</ul>\n</li>\n<li><p>X-RateLimit-Remaining</p>\n<ul>\n<li><p><strong>Description:</strong> The number of API calls you have left in the current hour.</p>\n</li>\n<li><p><strong>Example:</strong> X-RateLimit-Remaining: 750</p>\n</li>\n</ul>\n</li>\n<li><p>X-RateLimit-Reset</p>\n<ul>\n<li><p><strong>Description:</strong> The UNIX timestamp indicating when the current rate limit window resets.</p>\n</li>\n<li><p><strong>Example:</strong> X-RateLimit-Reset: 1615125600</p>\n</li>\n</ul>\n</li>\n</ul>\n<h5 id=\"handling-rate-limit-exceeded\"><strong>Handling Rate Limit Exceeded</strong></h5>\n<p>If you exceed your hourly API call limit, the API will respond with a <strong>429 Too Many Requests</strong> status code, along with relevant rate limiting headers.</p>\n<ul>\n<li><p><strong>Status Code:</strong> 429 Too Many Requests</p>\n</li>\n<li><p><strong>Response Headers:</strong></p>\n<ul>\n<li><p>X-RateLimit-Limit: Your maximum allowed requests per hour.</p>\n</li>\n<li><p>X-RateLimit-Remaining: 0 (indicating no remaining requests).</p>\n</li>\n<li><p>X-RateLimit-Reset: The UNIX timestamp when the rate limit resets.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Error Response Body:</strong></p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"response\": \"error\",\n  \"status\": \"Rate limit exceeded\",\n  \"message\": \"API call limit exceeded. Please try again later.\"\n}\n\n</code></pre>\n<h4 id=\"best-practices\"><strong>Best Practices</strong></h4>\n<p>To ensure smooth and uninterrupted access to our API, consider the following best practices:</p>\n<ol>\n<li><p><strong>Monitor Rate Limiting Headers:</strong></p>\n<ol>\n<li>Always check the X-RateLimit-Remaining and X-RateLimit-Reset headers in API responses to manage your request flow effectively.</li>\n</ol>\n</li>\n<li><p><strong>Implement Retry Logic:</strong></p>\n<ol>\n<li>In the event of receiving a 429 Too Many Requests response, implement exponential backoff strategies to retry after the specified reset time.</li>\n</ol>\n</li>\n<li><p><strong>Optimize API Calls:</strong></p>\n<ol>\n<li>Batch requests when possible and avoid unnecessary API calls to stay within your rate limits.</li>\n</ol>\n</li>\n<li><p><strong>Handle Access Restrictions Gracefully:</strong></p>\n<ol>\n<li>Ensure your application can detect 403 Forbidden responses related to access restrictions and adjust its behavior accordingly.</li>\n</ol>\n</li>\n<li><p><strong>Stay Informed:</strong></p>\n<ol>\n<li>Keep abreast of any changes to rate limiting policies or access restrictions by regularly reviewing our API documentation.</li>\n</ol>\n</li>\n</ol>\n<h4 id=\"frequently-asked-questions-faq\"><strong>Frequently Asked Questions (FAQ)</strong></h4>\n<p><strong>Q1: How is the</strong> X-RateLimit-Reset <strong>timestamp calculated?</strong></p>\n<ul>\n<li><strong>A:</strong> The X-RateLimit-Reset header provides a UNIX timestamp indicating when your current rate limit window will reset. After this time, your X-RateLimit-Remaining will be refreshed to your maximum limit.</li>\n</ul>\n<p><strong>Q2: Can I increase my hourly call limit?</strong></p>\n<ul>\n<li><strong>A:</strong> Yes, depending on your subscription tier or specific needs, you can request an increase to your hourly call limit by contacting our support team.</li>\n</ul>\n<p><strong>Q3: What happens if I ignore the rate limiting headers and continue making requests?</strong></p>\n<ul>\n<li><strong>A:</strong> Exceeding your rate limit will result in 429 Too Many Requests responses. Continuous abuse may lead to temporary suspension of your API access.</li>\n</ul>\n<p><strong>Q4: Are there different rate limits for different API endpoints?</strong></p>\n<ul>\n<li><strong>A:</strong> Currently, the rate limits are applied per API key, not per endpoint. All endpoints share the same hourly call limit associated with your credentials.</li>\n</ul>\n<p><strong>Q5: How does the access restriction affect API usage during peak hours?</strong></p>\n<ul>\n<li><strong>A:</strong> Access restrictions ensure that API usage remains controlled and predictable. By limiting requests to specific times, we can better manage server load and provide a stable experience for all users.</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"16435285","collectionId":"94622d5b-ab5b-4125-b62d-78ec09a4afce","publishedId":"2sBXwsNB62","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-06-14T14:23:44.000Z"},"item":[{"name":"Webhooks","item":[{"name":"order.created","item":[{"name":"Webhook delivery","id":"bf3213df-ed21-4d85-8ccd-a0775a0f8fb0","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.created\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"order_id\": \"WC-88210\",\n    \"order_status\": \"order\",\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"68787cce-ed37-4866-831f-36ce6f89bc38","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.created\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"api_id\": 0,\n    \"order_id\": \"WC-88210\",\n    \"seq_order_id\": \"UPW-2026-00415\",\n    \"price_currency\": \"EUR\",\n    \"price_total\": 466.8,\n    \"discount_total\": 0,\n    \"vat_number\": \"\",\n    \"payment_id\": \"pi_3PqAB12FCdEfGhI\",\n    \"channel_id\": 8,\n    \"billing_address1\": \"Duivendrechtsekade 40A\",\n    \"billing_city\": \"Amsterdam\",\n    \"billing_country_code\": \"NL\",\n    \"billing_email\": \"lars@upwind.example.com\",\n    \"billing_first_name\": \"Lars\",\n    \"billing_last_name\": \"Schaick\",\n    \"billing_zip_code\": \"1080 AH\",\n    \"shipping_address1\": \"Duivendrechtsekade 40A\",\n    \"shipping_first_name\": \"Lars\",\n    \"shipping_last_name\": \"Schaick\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_email\": \"lars@upwind.example.com\",\n    \"shipping_phone_number\": \"+31 6 1234 5678\",\n    \"order_date\": \"2026-06-13 09:24:11\",\n    \"sync_date\": \"2026-06-13 09:25:02\",\n    \"updated_at\": \"2026-06-13 09:25:02\",\n    \"ship_on_date\": \"2026-06-14\",\n    \"total_weight\": 2.4,\n    \"order_status\": \"order\",\n    \"extra_comment\": \"Customer asked for delivery before the weekend.\",\n    \"shipping_service\": \"\",\n    \"batch_id\": 0,\n    \"batch_title\": \"\",\n    \"packaging_id\": 0,\n    \"order_products\": [\n      {\n        \"id\": 91201,\n        \"api_id\": 0,\n        \"seller_id\": 1,\n        \"center_id\": 0,\n        \"order_id\": 88210,\n        \"orderItemId\": \"WC-88210-1\",\n        \"order_item_id\": \"WC-88210-1\",\n        \"ean\": \"8719326583631\",\n        \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n        \"price\": 299.95,\n        \"quantity\": 1,\n        \"is_shipped\": 0,\n        \"cancellation_request\": 0,\n        \"fulfillment_status\": \"pending\",\n        \"shipping_costs\": 6.95,\n        \"product\": {\n          \"id\": 25851,\n          \"sku\": \"UPW-BAR-52\",\n          \"ean\": \"8719326583631\",\n          \"weight\": 1.8,\n          \"price\": 299.95,\n          \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"child_from_bundle\": false\n        }\n      },\n      {\n        \"id\": 91202,\n        \"api_id\": 0,\n        \"seller_id\": 1,\n        \"center_id\": 0,\n        \"order_id\": 88210,\n        \"orderItemId\": \"WC-88210-2\",\n        \"order_item_id\": \"WC-88210-2\",\n        \"ean\": \"8719326583662\",\n        \"title\": \"Carbon Fin Set G10 (set of 4)\",\n        \"price\": 79.95,\n        \"quantity\": 2,\n        \"is_shipped\": 0,\n        \"cancellation_request\": 0,\n        \"fulfillment_status\": \"pending\",\n        \"shipping_costs\": 0,\n        \"product\": {\n          \"id\": 25854,\n          \"sku\": \"UPW-FIN-G10\",\n          \"ean\": \"8719326583662\",\n          \"weight\": 0.3,\n          \"price\": 79.95,\n          \"title\": \"Carbon Fin Set G10 (set of 4)\",\n          \"child_from_bundle\": false\n        }\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"},{"id":"f57977fb-58c9-4e31-a229-ae2cd7e9434d","name":"With signature","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"},{"key":"X-Channeldock-Signature","value":"sha256=8b415f2c0cd241a21109e007942b6ce43cbfcf97f7b2d7829084258c0ae0a66f"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.created\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"order_id\": \"WC-88210\",\n    \"order_status\": \"order\",\n    \"order_products\": []\n  },\n  \"signature\": \"ace5ede5fbd0e1f692494ce88a8ecb0fd55a8a10ed7d41258df013337b020018\"\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"bf3213df-ed21-4d85-8ccd-a0775a0f8fb0"}],"id":"41dd2479-3e42-40cc-a814-ac732311cc14","description":"<h1 id=\"ordercreated\"><code>order.created</code></h1>\n<p>Fired when a <strong>new order</strong> is stored in ChannelDock.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>order.created</code></li>\n<li><strong><code>payload</code>:</strong> A single <strong>order</strong> object (not wrapped in an <code>orders</code> array), aligned with <strong>Get Orders</strong> / <strong>Search order</strong> in this collection (addresses, <code>order_products</code>, bundle child lines when applicable).</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Seller webhooks for the order’s <code>seller_id</code>. Center webhooks for each <code>center_id</code> on order lines with fulfillment assigned.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> for the full JSON payload (Example tab). See <strong>With signature</strong> for a delivery that carries the <code>X-Channeldock-Signature</code> header.</p>\n","_postman_id":"41dd2479-3e42-40cc-a814-ac732311cc14"},{"name":"order.updated","item":[{"name":"Webhook delivery","id":"ccf8497f-f59a-495f-a608-8376d390d69e","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.updated\",\n  \"payload\": {\n    \"id\": 88210,\n    \"order_id\": \"WC-88210\",\n    \"order_status\": \"order\",\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"67ee5cdd-711c-4613-a9f9-0c2035d95ee8","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.updated\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"api_id\": 0,\n    \"order_id\": \"WC-88210\",\n    \"seq_order_id\": \"UPW-2026-00415\",\n    \"price_currency\": \"EUR\",\n    \"price_total\": 466.8,\n    \"order_status\": \"order\",\n    \"order_date\": \"2026-06-13 09:24:11\",\n    \"updated_at\": \"2026-06-13 14:02:11\",\n    \"extra_comment\": \"Customer asked for delivery before the weekend.\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_city\": \"Amsterdam\",\n    \"total_weight\": 2.4,\n    \"order_products\": [\n      {\n        \"id\": 91201,\n        \"seller_id\": 1,\n        \"center_id\": 0,\n        \"order_id\": 88210,\n        \"ean\": \"8719326583631\",\n        \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n        \"quantity\": 1,\n        \"cancellation_request\": 0,\n        \"fulfillment_status\": \"pending\"\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"ccf8497f-f59a-495f-a608-8376d390d69e"}],"id":"15b48da9-e40b-464e-9f8c-2b325b7e31a8","description":"<h1 id=\"orderupdated\"><code>order.updated</code></h1>\n<p>Fired when an <strong>order</strong> or <strong>order line</strong> is updated (for example quantity, address, or line fields).</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>order.updated</code></li>\n<li><strong><code>payload</code>:</strong> Full current order object, same shape as <strong><code>order.created</code></strong> and <strong>Get Orders</strong>.</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Same routing as other order events: seller by <code>seller_id</code>; centers on relevant order lines.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"15b48da9-e40b-464e-9f8c-2b325b7e31a8"},{"name":"order.status.changed","item":[{"name":"Webhook delivery","id":"aa8dd2be-1a28-479c-b2e2-3ca3673076ed","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.status.changed\",\n  \"payload\": {\n    \"id\": 88210,\n    \"order_status\": \"shipment\",\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"a9cdd5ac-b85a-4939-ac50-82a0e80b101f","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.status.changed\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"order_id\": \"WC-88210\",\n    \"seq_order_id\": \"UPW-2026-00415\",\n    \"order_status\": \"shipment\",\n    \"order_date\": \"2026-06-13 09:24:11\",\n    \"updated_at\": \"2026-06-14 08:12:30\",\n    \"shipping_country_code\": \"NL\",\n    \"order_products\": [\n      {\n        \"id\": 91201,\n        \"is_shipped\": 1,\n        \"fulfillment_status\": \"shipped\",\n        \"shipment_label_id\": 7701\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"aa8dd2be-1a28-479c-b2e2-3ca3673076ed"}],"id":"aa6729cc-f55a-4b06-a2d6-ec2677706e1a","description":"<h1 id=\"orderstatuschanged\"><code>order.status.changed</code></h1>\n<p>Fired when <strong><code>order_status</code></strong> changes on an order (for example from <code>order</code> to <code>shipment</code>).</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>order.status.changed</code></li>\n<li><strong><code>payload</code>:</strong> Full order object including the new <strong><code>order_status</code></strong>, aligned with <strong>Get Orders</strong>.</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Same routing as other order events.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"aa6729cc-f55a-4b06-a2d6-ec2677706e1a"},{"name":"order.deleted","item":[{"name":"Webhook delivery","id":"90ff32f7-195b-4639-adac-8cee769590bd","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.deleted\",\n  \"payload\": {\n    \"id\": 88210,\n    \"order_id\": \"WC-88210\",\n    \"order_status\": \"trash\",\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"e786d806-9afd-4c4f-a316-65caff0c262e","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order.deleted\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"order_id\": \"WC-88210\",\n    \"seq_order_id\": \"UPW-2026-00415\",\n    \"order_status\": \"trash\",\n    \"order_date\": \"2026-06-13 09:24:11\",\n    \"price_total\": 466.8,\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"90ff32f7-195b-4639-adac-8cee769590bd"}],"id":"b1b52341-01d2-4a72-9f83-d2713cfbab0a","description":"<h1 id=\"orderdeleted\"><code>order.deleted</code></h1>\n<p>Fired when an order is <strong>removed</strong> from ChannelDock.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>order.deleted</code></li>\n<li><strong><code>payload</code>:</strong> Order object at deletion time, same general shape as <strong>Get Orders</strong> (use internal <code>id</code> and <code>order_id</code> to reconcile in your system).</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Same routing as other order events.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"b1b52341-01d2-4a72-9f83-d2713cfbab0a"},{"name":"order_product.cancelled","item":[{"name":"Webhook delivery","id":"2f4d6a46-3484-4b8c-87c3-5938fd0a4ffb","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order_product.cancelled\",\n  \"payload\": {\n    \"id\": 88210,\n    \"cancelled_order_product_id\": 91202,\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"b031d7e8-6968-42c9-b282-285d25da3b89","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"order_product.cancelled\",\n  \"payload\": {\n    \"id\": 88210,\n    \"seller_id\": 1,\n    \"order_id\": \"WC-88210\",\n    \"order_status\": \"order\",\n    \"order_products\": [\n      {\n        \"id\": 91201,\n        \"cancellation_request\": 0,\n        \"ean\": \"8719326583631\",\n        \"quantity\": 1\n      },\n      {\n        \"id\": 91202,\n        \"cancellation_request\": 1,\n        \"ean\": \"8719326583662\",\n        \"quantity\": 2\n      }\n    ],\n    \"cancelled_order_product_id\": 91202\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"2f4d6a46-3484-4b8c-87c3-5938fd0a4ffb"}],"id":"1431d8da-592b-42e6-bd11-9be8084a115c","description":"<h1 id=\"order_productcancelled\"><code>order_product.cancelled</code></h1>\n<p>Fired when an order line’s <strong><code>cancellation_request</code></strong> is set to cancelled (<code>1</code>).</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>order_product.cancelled</code></li>\n<li><strong><code>payload</code>:</strong> Full <strong>order</strong> object (same as <code>order.updated</code>), plus:<ul>\n<li><strong><code>cancelled_order_product_id</code></strong> — internal id of the order line that was cancelled.</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Center webhooks match the <strong><code>center_id</code></strong> on the cancelled line when fulfillment is assigned.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"1431d8da-592b-42e6-bd11-9be8084a115c"},{"name":"shipment.created","item":[{"name":"Webhook delivery","id":"c569f777-d482-4bf2-94a2-d3d211cdaaa5","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"shipment.created\",\n  \"payload\": {\n    \"id\": 7701,\n    \"track_and_trace\": \"3SBOL00112233\",\n    \"order_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"8f19a6b3-1c19-4661-96a0-872924d7dbf4","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"shipment.created\",\n  \"payload\": {\n    \"id\": 7701,\n    \"shipment_method_id\": 9504,\n    \"api_id\": 0,\n    \"seller_id\": 1,\n    \"order_id\": 88210,\n    \"remote_order_id\": \"WC-88210\",\n    \"seq_order_id\": \"UPW-2026-00415\",\n    \"status\": \"registered\",\n    \"remote_label_id\": \"PNL-3SBOL00112233\",\n    \"price\": 6.95,\n    \"shipment_method\": \"PostNL Pakket NL\",\n    \"carrier_code\": \"postnl\",\n    \"track_and_trace\": \"3SBOL00112233\",\n    \"track_and_traces\": [\"3SBOL00112233\"],\n    \"track_and_trace_url\": \"https://postnl.nl/tracktrace/?B=3SBOL00112233&P=1080AH&D=NL&T=C\",\n    \"shipment_date\": \"2026-06-14 08:12:30\",\n    \"order_date\": \"2026-06-13\",\n    \"number_of_labels\": 1,\n    \"order_products\": [\n      {\n        \"id\": 91201,\n        \"seller_id\": 1,\n        \"order_id\": 88210,\n        \"ean\": \"8719326583631\",\n        \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n        \"quantity\": 1,\n        \"is_shipped\": 0,\n        \"product\": {\n          \"id\": 25851,\n          \"sku\": \"UPW-BAR-52\",\n          \"ean\": \"8719326583631\",\n          \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"child_from_bundle\": false\n        }\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"c569f777-d482-4bf2-94a2-d3d211cdaaa5"}],"id":"041bc037-7e9e-445a-9fa5-fdfb1f917466","description":"<h1 id=\"shipmentcreated\"><code>shipment.created</code></h1>\n<p>Fired when a <strong>shipping label</strong> is created.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>shipment.created</code></li>\n<li><strong><code>payload</code>:</strong> Shipment object aligned with <strong>Get Shipments</strong> (<code>track_and_trace</code>, <code>carrier_code</code>, <code>order_products</code>, etc.).</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Seller webhooks for the order’s seller. Center webhooks for the <strong><code>center_id</code></strong> on the shipment label.</p>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"041bc037-7e9e-445a-9fa5-fdfb1f917466"},{"name":"stock.updated","item":[{"name":"Webhook delivery","id":"527c8b9c-4518-4667-9d78-0d7e58c6b934","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"stock.updated\",\n  \"payload\": {\n    \"id\": 25851,\n    \"sku\": \"UPW-BAR-52\",\n    \"stock\": 84\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"1a187ce3-3e4c-4b80-9b33-93c9b840fcff","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"stock.updated\",\n  \"payload\": {\n    \"id\": 25851,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"UPW-BAR-52\",\n    \"stock\": 84,\n    \"available_stock\": 72,\n    \"seller_id\": 1,\n    \"stocking_date\": \"2026-05-12 09:00:00\",\n    \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n    \"img_url\": \"https://cdn.upwind.example.com/products/kitesurf-bar-pro-52.jpg\",\n    \"price\": 299.95,\n    \"weight\": 1.8,\n    \"purchase_price\": 145.0,\n    \"updated_at\": \"2026-06-12 14:32:18\",\n    \"sold_per_day\": 1.4,\n    \"total_lvb_stock\": 0,\n    \"total_fba_stock\": 0,\n    \"total_fbc_stock\": 12,\n    \"is_bundle_product\": 0,\n    \"tags\": [\"kitesurf\", \"control-bar\", \"watersports\"],\n    \"child_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"527c8b9c-4518-4667-9d78-0d7e58c6b934"}],"id":"90b5521a-53a9-461d-b7a9-580953989863","description":"<h1 id=\"stockupdated\"><code>stock.updated</code></h1>\n<p>Fired when <strong>product stock</strong> changes (seller inventory or FC stock paths that update the product).</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>stock.updated</code></li>\n<li><strong><code>payload</code>:</strong> Product stock fields aligned with <strong>Get products</strong> / inventory (<code>stock</code>, <code>available_stock</code>, <code>total_fbc_stock</code>, <code>tags</code>, <code>child_products</code> for bundles, etc.).</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Seller webhooks for the product’s <code>seller_id</code>. Center webhooks for FCs <strong>linked</strong> to that seller.</p>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"90b5521a-53a9-461d-b7a9-580953989863"},{"name":"return.created","item":[{"name":"Webhook delivery","id":"1f50de1c-d769-41f9-8137-62a5f14585dd","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"return.created\",\n  \"payload\": {\n    \"id\": 9301,\n    \"is_handled\": 0,\n    \"return_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"3eb2ed03-b96a-4c30-b359-bfebd9a59f54","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"return.created\",\n  \"payload\": {\n    \"id\": 9301,\n    \"api_id\": 2450,\n    \"order_id\": 88211,\n    \"remote_return_id\": \"BOL-RET-77123\",\n    \"is_handled\": 0,\n    \"created_at\": \"2026-06-12 16:45:22\",\n    \"custom_return_comment\": \"\",\n    \"return_products\": [\n      {\n        \"id\": 12211,\n        \"ean\": \"8719326583648\",\n        \"quantity\": 1,\n        \"reason\": \"Defective seam\",\n        \"return_status\": \"PENDING\",\n        \"return_id\": 9301,\n        \"restocked\": 0,\n        \"child_from_bundle\": 0,\n        \"order_product\": {\n          \"id\": 91215,\n          \"seller_id\": 1,\n          \"order_id\": 88211,\n          \"ean\": \"8719326583648\",\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n          \"quantity\": 1,\n          \"is_shipped\": 1\n        }\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"1f50de1c-d769-41f9-8137-62a5f14585dd"}],"id":"b90683cd-96b5-4db7-9338-f27d09f380a9","description":"<h1 id=\"returncreated\"><code>return.created</code></h1>\n<p>Fired when a <strong>return</strong> is registered in ChannelDock.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>return.created</code></li>\n<li><strong><code>payload</code>:</strong> Return object with <strong><code>return_products</code></strong> (and nested <strong><code>order_product</code></strong> per line), aligned with <strong>Get returns</strong>.</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Seller webhooks for the return’s seller. Center webhooks for linked fulfillment centers.</p>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"b90683cd-96b5-4db7-9338-f27d09f380a9"},{"name":"return.handled","item":[{"name":"Webhook delivery","id":"ff9f016c-f97d-494b-8a91-7406ef2f9f08","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"return.handled\",\n  \"payload\": {\n    \"id\": 9301,\n    \"is_handled\": 1,\n    \"return_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"cea0cf47-0178-42be-a55d-b151037bb718","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"return.handled\",\n  \"payload\": {\n    \"id\": 9301,\n    \"api_id\": 2450,\n    \"order_id\": 88211,\n    \"remote_return_id\": \"BOL-RET-77123\",\n    \"is_handled\": 1,\n    \"handled_date\": \"2026-06-13 11:14:08\",\n    \"created_at\": \"2026-06-12 16:45:22\",\n    \"custom_return_comment\": \"Return product handled (RETURN_RECEIVED).\",\n    \"return_products\": [\n      {\n        \"id\": 12211,\n        \"ean\": \"8719326583648\",\n        \"quantity\": 1,\n        \"return_status\": \"RETURN_RECEIVED\",\n        \"restocked\": 0,\n        \"track_and_trace\": \"3SBOLRET00099\",\n        \"order_product\": {\n          \"id\": 91215,\n          \"seller_id\": 1,\n          \"order_id\": 88211,\n          \"ean\": \"8719326583648\",\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\"\n        }\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"ff9f016c-f97d-494b-8a91-7406ef2f9f08"}],"id":"1027ff47-260c-4727-bada-abc09e752fae","description":"<h1 id=\"returnhandled\"><code>return.handled</code></h1>\n<p>Fired when a return is <strong>handled</strong> (processed) in ChannelDock.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>return.handled</code></li>\n<li><strong><code>payload</code>:</strong> Return object including handling fields (for example <code>is_handled</code>, <code>handled_date</code>) and <strong><code>return_products</code></strong>, aligned with <strong>Get returns</strong>.</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Same routing as <code>return.created</code>.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"1027ff47-260c-4727-bada-abc09e752fae"},{"name":"return.product.updated","item":[{"name":"Webhook delivery","id":"f51ab934-bd6b-4006-afd2-5f22b74dd1a5","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"return.product.updated\",\n  \"payload\": {\n    \"id\": 9301,\n    \"return_products\": []\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock","description":"<p>Illustrative <strong>outbound</strong> request ChannelDock sends to <strong>your</strong> webhook URL when this event fires.</p>\n<p>Replace the URL with your HTTPS endpoint. Respond with <strong>HTTP 2xx</strong> within 5 seconds.</p>\n<p>The <strong>Example</strong> tab shows a full JSON body. With a webhook secret configured, ChannelDock signs the delivery\nwith the <strong><code>X-Channeldock-Signature</code></strong> header — HMAC-SHA256 of the raw body. Verify that header; the\ntop-level <strong><code>signature</code></strong> field in the body is deprecated. See the <strong>Webhooks</strong> folder description.</p>\n","urlObject":{"protocol":"https","path":["webhooks","channeldock"],"host":["your-server","example"],"query":[],"variable":[]}},"response":[{"id":"1c7ac0e0-add0-4a30-a895-3468036f6f50","name":"Webhook delivery","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"User-Agent","value":"ChannelDock-Webhook/1.0"}],"body":{"mode":"raw","raw":"{\n  \"event\": \"return.product.updated\",\n  \"payload\": {\n    \"id\": 9301,\n    \"order_id\": 88211,\n    \"is_handled\": 1,\n    \"return_products\": [\n      {\n        \"id\": 12211,\n        \"ean\": \"8719326583648\",\n        \"quantity\": 1,\n        \"return_status\": \"RETURN_RECEIVED\",\n        \"restocked\": 1,\n        \"child_from_bundle\": 0,\n        \"order_product\": {\n          \"id\": 91215,\n          \"seller_id\": 1,\n          \"center_id\": 0,\n          \"order_id\": 88211,\n          \"ean\": \"8719326583648\",\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n          \"quantity\": 1\n        }\n      }\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://your-server.example/webhooks/channeldock"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":null,"cookie":[],"responseTime":null,"body":"OK"}],"_postman_id":"f51ab934-bd6b-4006-afd2-5f22b74dd1a5"}],"id":"5c2f60fa-0518-4149-8938-6753acc7fafb","description":"<h1 id=\"returnproductupdated\"><code>return.product.updated</code></h1>\n<p>Fired when a <strong>return line</strong> (<code>return product</code>) is updated.</p>\n<h2 id=\"payload\">Payload</h2>\n<ul>\n<li><strong><code>event</code>:</strong> <code>return.product.updated</code></li>\n<li><strong><code>payload</code>:</strong> Parent <strong>return</strong> object with <strong><code>return_products</code></strong> reflecting the update, aligned with <strong>Get returns</strong>.</li>\n</ul>\n<h2 id=\"seller-vs-fc\">Seller vs FC</h2>\n<p>Same routing as other return events.</p>\n<h2 id=\"example\">Example</h2>\n<p>Open <strong>Webhook delivery</strong> in this folder for the full JSON payload (Example tab).</p>\n","_postman_id":"5c2f60fa-0518-4149-8938-6753acc7fafb"}],"id":"8c4f5d70-fa05-4464-813e-85327b18c19c","description":"<h1 id=\"webhooks\">Webhooks</h1>\n<p>ChannelDock sends <strong>outbound HTTP POST</strong> requests to URLs you configure when events occur in your account. Webhooks are <strong>not</strong> part of API v2 request/response flows — there are no REST endpoints to create or manage webhooks. Configure them in the portal under <strong>Settings → API &amp; Webhooks</strong> (paid plans).</p>\n<ul>\n<li><strong>Seller:</strong> <a href=\"https://channeldock.com/portal/public/settings/api_webhook\">https://channeldock.com/portal/public/settings/api_webhook</a></li>\n<li><strong>Fulfillment center:</strong> <a href=\"https://channeldock.com/portal/public/centersettings/api_webhook\">https://channeldock.com/portal/public/centersettings/api_webhook</a></li>\n</ul>\n<p>Step-by-step setup: <a href=\"https://channeldock.com/help/en/integrations-api/webhooks/setup-webhooks-in-channeldock/\">Setup webhooks in ChannelDock</a></p>\n<p>Each event subfolder contains a <strong>Webhook delivery</strong> request with a full JSON <strong>Example</strong> tab (and <code>order.created</code> also shows a <strong>With signature</strong> example).</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Event</th>\n<th>Chapter</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>order.created</code></td>\n<td>Order created — includes <strong>Webhook delivery</strong> payload example</td>\n</tr>\n<tr>\n<td><code>order.updated</code></td>\n<td>Order updated</td>\n</tr>\n<tr>\n<td><code>order.status.changed</code></td>\n<td>Order status changed</td>\n</tr>\n<tr>\n<td><code>order.deleted</code></td>\n<td>Order deleted</td>\n</tr>\n<tr>\n<td><code>order_product.cancelled</code></td>\n<td>Order product cancelled</td>\n</tr>\n<tr>\n<td><code>shipment.created</code></td>\n<td>Shipment created</td>\n</tr>\n<tr>\n<td><code>stock.updated</code></td>\n<td>Stock updated</td>\n</tr>\n<tr>\n<td><code>return.created</code></td>\n<td>Return created</td>\n</tr>\n<tr>\n<td><code>return.handled</code></td>\n<td>Return handled</td>\n</tr>\n<tr>\n<td><code>return.product.updated</code></td>\n<td>Return product updated</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"seller-vs-fulfillment-center\">Seller vs fulfillment center</h2>\n<p>Sellers and fulfillment centers (FCs) use the <strong>same event names</strong> and <strong>same JSON payload shapes</strong>. What differs is <strong>who owns the webhook</strong> and <strong>which deliveries match</strong> it.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Topic</th>\n<th>Seller</th>\n<th>Fulfillment center</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Configuration</td>\n<td><code>seller_id</code> on the webhook record</td>\n<td><code>center_id</code> on the webhook record</td>\n</tr>\n<tr>\n<td>Delivery logs</td>\n<td>Seller settings only</td>\n<td>Center settings only</td>\n</tr>\n<tr>\n<td>Typical use</td>\n<td>ERP / storefront for your seller data</td>\n<td>FC WMS/OMS for fulfilled orders and stock</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Routing:</strong></p>\n<ul>\n<li><strong>Seller webhooks</strong> — <code>seller_id</code> matches the entity’s seller.</li>\n<li><strong>Center webhooks</strong> — <code>center_id</code> matches fulfillment context: order lines for order events, shipment label center for <code>shipment.created</code>, linked FCs for stock and returns.</li>\n</ul>\n<p>One event can deliver to <strong>both</strong> seller and one or more center webhooks if each configured the event.</p>\n<hr />\n<h2 id=\"http-delivery\">HTTP delivery</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Item</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Method</td>\n<td><code>POST</code></td>\n</tr>\n<tr>\n<td><code>Content-Type</code></td>\n<td><code>application/json</code></td>\n</tr>\n<tr>\n<td><code>User-Agent</code></td>\n<td><code>ChannelDock-Webhook/1.0</code></td>\n</tr>\n<tr>\n<td><code>X-Channeldock-Signature</code></td>\n<td><code>sha256=&lt;hex&gt;</code> — present when a webhook secret is set. See <a href=\"#signature-verification\">Signature verification</a></td>\n</tr>\n<tr>\n<td>Success</td>\n<td>HTTP <strong>2xx</strong> from your endpoint</td>\n</tr>\n<tr>\n<td>Timeout</td>\n<td>5 second connect and read timeout</td>\n</tr>\n</tbody>\n</table>\n</div><p>Envelope:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"order.created\",\n  \"payload\": { },\n  \"signature\": \"legacy-hex-hmac-sha256\"\n}\n</code></pre>\n<p>The <code>signature</code> <strong>field</strong> inside the body is deprecated. It is still sent so existing integrations keep working, but new integrations should ignore it and verify the <code>X-Channeldock-Signature</code> <strong>header</strong> instead. See <a href=\"#legacy-signature-field-deprecated\">Legacy signature field</a>.</p>\n<hr />\n<h2 id=\"timing-retries-and-deactivation\">Timing, retries, and deactivation</h2>\n<ol>\n<li>Delivery is <strong>queued</strong> (typically about <strong>1 minute</strong> after the event).</li>\n<li>Up to <strong>5</strong> attempts per queued job; after a failure, next try after <strong><code>2^attempt</code> minutes</strong> (2, 4, 8, 16).</li>\n<li>Non-2xx responses count as failed.</li>\n<li>After <strong>10</strong> failed deliveries, the webhook is <strong>deactivated</strong> (optional email notification).</li>\n</ol>\n<hr />\n<h2 id=\"signature-verification\">Signature verification</h2>\n<p>Your webhook URL has to be publicly reachable, and the delivery carries no other proof of origin — no API key, no credential. So anything that reaches that URL looks like a genuine ChannelDock delivery to your endpoint: a URL leaked through a log file, a proxy or a support ticket, or an earlier delivery someone captured and sent again. Act on the body without checking and a forged <code>stock.updated</code> sets your stock to zero, or a forged <code>order.updated</code> marks an order as shipped in your ERP.</p>\n<p>The signature is that missing proof of origin. Only you and ChannelDock know the secret, so only the two of you can produce a value that matches the body you are looking at.</p>\n<p>Set a <strong>webhook secret</strong> on the webhook in the portal, and every delivery for it carries:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">X-Channeldock-Signature: sha256=8b415f2c0cd241a21109e007942b6ce43cbfcf97f7b2d7829084258c0ae0a66f\n</code></pre>\n<p>The value is <code>HMAC-SHA256( raw request body, your secret )</code>, hex encoded, prefixed with <code>sha256=</code>. Compute the same thing on your side and compare. With no secret set, the header is absent.</p>\n<h3 id=\"verify-in-four-steps\">Verify in four steps</h3>\n<ol>\n<li>Read the <strong>raw request body</strong>, as bytes or text, before JSON parsing. Most frameworks parse and discard the original — ask for it explicitly: <code>php://input</code> (PHP), <code>$request-&gt;getContent()</code> (Laravel), <code>request.get_data()</code> (Flask), <code>request.body</code> (Django), <code>request.raw_post</code> (Rails), or <code>express.json({ verify: (req, res, buf) =&gt; { req.rawBody = buf } })</code> (Express).</li>\n<li>Read <code>X-Channeldock-Signature</code> and strip the <code>sha256=</code> prefix. Look the header up <strong>case-insensitively</strong> — over HTTP/2 it arrives as <code>x-channeldock-signature</code>.</li>\n<li>Compute <code>HMAC-SHA256(raw body, your webhook secret)</code>, hex encoded.</li>\n<li>Compare with a <strong>constant-time</strong> function (<code>hash_equals</code>, <code>crypto.timingSafeEqual</code>, <code>hmac.compare_digest</code>). On a mismatch, return <code>401</code> and ignore the body. Only parse the JSON once this succeeds.</li>\n</ol>\n<h3 id=\"hash-the-bytes-you-received\">Hash the bytes you received</h3>\n<p>HMAC covers <strong>bytes</strong>, not the meaning of the JSON. So hash the body exactly as it arrived, and never parse it and serialise it again to get something to hash.</p>\n<p>Two languages can produce JSON that means the same thing but is not the same text: PHP writes <code>c\\/o</code> where Node and Python write <code>c/o</code>, Node writes <code>é</code> where PHP and Python write <code>\\u00e9</code>. Each variant parses to identical data and produces a completely different HMAC. Hashing the original bytes sidesteps all of it.</p>\n<p>Do not strip the <code>signature</code> field before hashing either — those bytes are part of the body we signed.</p>\n<hr />\n<h2 id=\"legacy-signature-field-deprecated\">Legacy <code>signature</code> field (deprecated)</h2>\n<p>Before the header existed, the body carried a top-level <code>signature</code> field, computed over the JSON <strong>without</strong> that field and then inserted into it:</p>\n<p><code>signature = HMAC-SHA256( json_encode({ \"event\": \"...\", \"payload\": { ... } }), secret )</code></p>\n<p>It is still sent, unchanged, so integrations that verify it keep working. It is deprecated because verifying it means re-encoding the JSON <strong>byte for byte the way PHP does</strong> — including PHP writing <code>/</code> as <code>\\/</code> — which is impractical outside PHP.</p>\n<ul>\n<li><strong>New integrations:</strong> ignore the field, verify the header.</li>\n<li><strong>Existing integrations:</strong> both are sent on every delivery, so you can switch without downtime.</li>\n</ul>\n<p>The two values are always different, because they cover different bytes. Never compare one against the other.</p>\n<hr />\n<h2 id=\"best-practices\">Best practices</h2>\n<ul>\n<li>Return <strong>2xx</strong> quickly; process asynchronously if needed.</li>\n<li><strong>Idempotent</strong> handlers (retries and duplicates happen).</li>\n<li>Verify <strong><code>X-Channeldock-Signature</code></strong> when a secret is set, before you act on the body.</li>\n<li>Give each webhook its own secret, and rotate it if it may have leaked.</li>\n<li>Use portal <strong>delivery logs</strong> for debugging.</li>\n</ul>\n","_postman_id":"8c4f5d70-fa05-4464-813e-85327b18c19c"},{"name":"ChannelDock Seller","item":[{"name":"Home","item":[{"name":"Home endpoint","id":"c5a67e2e-0747-40a5-ad58-30407c0f7e1b","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/","description":"<p>Test auth endpoint</p>\n","urlObject":{"path":["portal","api","v2",""],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7907ffe3-7eab-4160-a2a2-f6dee9ea6d0d","name":"Home endpoint","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"API v2 auth is valid, good luck integrating the ChannelDock API!\"\n}"}],"_postman_id":"c5a67e2e-0747-40a5-ad58-30407c0f7e1b"}],"id":"de098cab-d5b7-44ab-82fb-970a91c40294","description":"<p>Use this endpoint to check if your authentication works properly.</p>\n","_postman_id":"de098cab-d5b7-44ab-82fb-970a91c40294"},{"name":"Products","item":[{"name":"Get products","id":"83b3768b-9088-40f9-8f36-1b98f81c0b54","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/inventory?page=1","description":"<p>Get all main products with stock levels and other product attributes.</p>\n<p>This request's return results are paginated. The API returns 50 items per page.</p>\n<p><code>is_flagged</code> (optional): <code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>. Same product flag as in the portal product list. Omit to return all products.</p>\n<p>Filter by product tag with <code>tag_id</code> or <code>tag_title</code> (exact title, case-insensitive). Each product includes <code>tags</code> (title strings) and <code>product_tags</code> (<code>id</code>, <code>title</code>, <code>color</code>).</p>\n<p><code>archived</code> (optional): <code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>. Same archive setting as in the portal product list. Omit to return all products; the <code>archived</code> field is always included in each product (<code>1</code> or <code>0</code>). Use <code>archived=true</code> to list only archived products.</p>\n<p><code>sort_attr</code> may be <code>archived</code> (with <code>sort_dir</code> <code>ASC</code> or <code>DESC</code>).</p>\n","urlObject":{"path":["portal","api","v2","seller","inventory"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"17334"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"ean","value":"8719326583631"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sku","value":"8719326583631"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"title","value":"Koffiebonen"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"supplier_id","value":"13"},{"disabled":true,"description":{"content":"<p>optional: true/false or 1/0 to list only flagged or unflagged products</p>\n","type":"text/plain"},"key":"is_flagged","value":"true"},{"disabled":true,"description":{"content":"<p>optional, only products with this seller tag</p>\n","type":"text/plain"},"key":"tag_id","value":"12"},{"disabled":true,"description":{"content":"<p>optional, exact tag title (case-insensitive)</p>\n","type":"text/plain"},"key":"tag_title","value":"kitesurf"},{"disabled":true,"description":{"content":"<p>optional: true/false or 1/0 to list only archived or unarchived products</p>\n","type":"text/plain"},"key":"archived","value":"true"},{"disabled":true,"description":{"content":"<p>optional (id | ean | sku | stock | stocking_date | supplier_id | updated_at | archived)</p>\n","type":"text/plain"},"key":"sort_attr","value":"stocking_date"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional, includes stock location data</p>\n","type":"text/plain"},"key":"include_stock_location_data","value":"true"},{"disabled":true,"description":{"content":"<p>optional, datetime UTC, to be used with sort_attr = stocking_date</p>\n","type":"text/plain"},"key":"start_date","value":"2024-08-13 14:22:26"},{"disabled":true,"description":{"content":"<p>optional, datetime UTC, to be used with sort_attr = stocking_date</p>\n","type":"text/plain"},"key":"end_date","value":"2024-08-27 00:00:00"}],"variable":[]}},"response":[{"id":"3a99de10-cf0d-412a-ba23-809a363fcd4a","name":"Get products","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/inventory?page=1&sort_attr=updated_at&sort_dir=DESC","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","inventory"],"query":[{"key":"page","value":"1"},{"key":"id","value":"17334","description":"optional","disabled":true},{"key":"ean","value":"8719326583631","description":"optional","disabled":true},{"key":"sku","value":"8719326583631","description":"optional","disabled":true},{"key":"title","value":"Koffiebonen","description":"optional","disabled":true},{"key":"supplier_id","value":"13","description":"optional","disabled":true},{"key":"is_flagged","value":"true","description":"optional: true/false or 1/0 to list only flagged or unflagged products","disabled":true},{"key":"archived","value":"true","description":"optional: true/false or 1/0 to list only archived or unarchived products","disabled":true},{"key":"sort_attr","value":"updated_at","description":"optional (id | ean | sku | stock | stocking_date | supplier_id | updated_at | archived)"},{"key":"sort_dir","value":"DESC","description":"optional"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"products_count\": 5,\n  \"products\": [\n    {\n      \"id\": 25851,\n      \"ean\": \"8719326583631\",\n      \"sku\": \"UPW-BAR-52\",\n      \"stock\": 84,\n      \"stocking_date\": \"2026-05-12 09:00:00\",\n      \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/kitesurf-bar-pro-52.jpg\",\n      \"x_size\": 60.0,\n      \"y_size\": 12.0,\n      \"z_size\": 8.0,\n      \"price\": 299.95,\n      \"weight\": 1.8,\n      \"product_reference\": \"UPW-REF-001\",\n      \"supplier_id\": 42,\n      \"is_bundle_product\": 0,\n      \"is_flagged\": 1,\n      \"archived\": 0,\n      \"updated_at\": \"2026-06-12 14:32:18\",\n      \"sold_per_day\": 1.4,\n      \"purchase_price\": 145.0,\n      \"minimal_supplier_order_quantity\": 10,\n      \"replenishment_time\": 21,\n      \"stock_advice_iron_stock\": 30,\n      \"units_per_box\": 1,\n      \"total_lvb_stock\": 0,\n      \"total_fba_stock\": 0,\n      \"require_serial_number\": 0,\n      \"tags\": [\n        \"kitesurf\",\n        \"control-bar\",\n        \"watersports\"\n      ],\n      \"country_of_origin\": \"CN\",\n      \"product_classification\": \"9506290000\",\n      \"child_products\": [],\n      \"available_stock\": 84,\n      \"total_fbc_stock\": 12\n    },\n    {\n      \"id\": 25852,\n      \"ean\": \"8719326583648\",\n      \"sku\": \"UPW-WET-M\",\n      \"stock\": 42,\n      \"stocking_date\": \"2026-04-28 11:15:00\",\n      \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/wetsuit-predator-5-4-m.jpg\",\n      \"x_size\": 35.0,\n      \"y_size\": 25.0,\n      \"z_size\": 6.0,\n      \"price\": 189.95,\n      \"weight\": 1.4,\n      \"product_reference\": \"UPW-REF-002\",\n      \"supplier_id\": 7,\n      \"is_bundle_product\": 0,\n      \"is_flagged\": 0,\n      \"archived\": 0,\n      \"updated_at\": \"2026-06-10 08:21:44\",\n      \"sold_per_day\": 0.8,\n      \"purchase_price\": 92.0,\n      \"minimal_supplier_order_quantity\": 5,\n      \"replenishment_time\": 30,\n      \"stock_advice_iron_stock\": 15,\n      \"units_per_box\": 1,\n      \"total_lvb_stock\": 0,\n      \"total_fba_stock\": 0,\n      \"require_serial_number\": 0,\n      \"tags\": [\n        \"wetsuit\",\n        \"neoprene\",\n        \"watersports\"\n      ],\n      \"country_of_origin\": \"TH\",\n      \"product_classification\": \"6110309100\",\n      \"child_products\": [],\n      \"available_stock\": 42,\n      \"total_fbc_stock\": 8\n    },\n    {\n      \"id\": 25853,\n      \"ean\": \"8719326583655\",\n      \"sku\": \"UPW-BRD-134\",\n      \"stock\": 16,\n      \"stocking_date\": \"2026-05-02 16:40:00\",\n      \"title\": \"Kiteboard Surge 134cm\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/kiteboard-surge-134.jpg\",\n      \"x_size\": 134.0,\n      \"y_size\": 41.0,\n      \"z_size\": 4.0,\n      \"price\": 549.0,\n      \"weight\": 2.6,\n      \"product_reference\": \"UPW-REF-003\",\n      \"supplier_id\": 42,\n      \"is_bundle_product\": 0,\n      \"is_flagged\": 0,\n      \"archived\": 0,\n      \"updated_at\": \"2026-06-08 12:05:31\",\n      \"sold_per_day\": 0.3,\n      \"purchase_price\": 280.0,\n      \"minimal_supplier_order_quantity\": 4,\n      \"replenishment_time\": 28,\n      \"stock_advice_iron_stock\": 8,\n      \"units_per_box\": 1,\n      \"total_lvb_stock\": 0,\n      \"total_fba_stock\": 0,\n      \"require_serial_number\": 1,\n      \"tags\": [\n        \"kiteboard\",\n        \"twintip\",\n        \"watersports\"\n      ],\n      \"country_of_origin\": \"CN\",\n      \"product_classification\": \"9506290000\",\n      \"child_products\": [],\n      \"available_stock\": 16,\n      \"total_fbc_stock\": 2\n    },\n    {\n      \"id\": 25854,\n      \"ean\": \"8719326583662\",\n      \"sku\": \"UPW-FIN-G10\",\n      \"stock\": 240,\n      \"stocking_date\": \"2026-03-18 10:22:00\",\n      \"title\": \"Carbon Fin Set G10 (set of 4)\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/carbon-fin-set-g10.jpg\",\n      \"x_size\": 14.0,\n      \"y_size\": 8.0,\n      \"z_size\": 3.0,\n      \"price\": 79.95,\n      \"weight\": 0.3,\n      \"product_reference\": \"UPW-REF-004\",\n      \"supplier_id\": 42,\n      \"is_bundle_product\": 0,\n      \"is_flagged\": 0,\n      \"archived\": 0,\n      \"updated_at\": \"2026-06-13 09:14:02\",\n      \"sold_per_day\": 2.1,\n      \"purchase_price\": 32.0,\n      \"minimal_supplier_order_quantity\": 25,\n      \"replenishment_time\": 14,\n      \"stock_advice_iron_stock\": 50,\n      \"units_per_box\": 5,\n      \"total_lvb_stock\": 0,\n      \"total_fba_stock\": 0,\n      \"require_serial_number\": 0,\n      \"tags\": [\n        \"accessories\",\n        \"fins\"\n      ],\n      \"country_of_origin\": \"DE\",\n      \"product_classification\": \"9506290000\",\n      \"child_products\": [],\n      \"available_stock\": 240,\n      \"total_fbc_stock\": 0\n    },\n    {\n      \"id\": 25855,\n      \"ean\": \"8719326583679\",\n      \"sku\": \"UPW-DRY-30L\",\n      \"stock\": 156,\n      \"stocking_date\": \"2026-05-20 13:45:00\",\n      \"title\": \"Waterproof Dry Bag 30L Aqua\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/dry-bag-30l-aqua.jpg\",\n      \"x_size\": 65.0,\n      \"y_size\": 35.0,\n      \"z_size\": 35.0,\n      \"price\": 34.95,\n      \"weight\": 0.6,\n      \"product_reference\": \"UPW-REF-005\",\n      \"supplier_id\": 13,\n      \"is_bundle_product\": 1,\n      \"is_flagged\": 0,\n      \"archived\": 0,\n      \"updated_at\": \"2026-06-11 15:48:09\",\n      \"sold_per_day\": 3.4,\n      \"purchase_price\": 12.0,\n      \"minimal_supplier_order_quantity\": 50,\n      \"replenishment_time\": 10,\n      \"stock_advice_iron_stock\": 100,\n      \"units_per_box\": 10,\n      \"total_lvb_stock\": 0,\n      \"total_fba_stock\": 0,\n      \"require_serial_number\": 0,\n      \"tags\": [\n        \"accessories\",\n        \"dry-bag\"\n      ],\n      \"country_of_origin\": \"CN\",\n      \"product_classification\": \"4202929190\",\n      \"child_products\": [\n        {\n          \"id\": 25855,\n          \"title\": \"Waterproof Dry Bag 30L Aqua\",\n          \"sku\": \"UPW-DRY-30L\",\n          \"ean\": \"8719326583679\",\n          \"weight\": 0.6,\n          \"price\": 34.95,\n          \"purchase_price\": 12.0,\n          \"quantity\": 1,\n          \"country_of_origin\": \"CN\",\n          \"product_classification\": \"4202929190\"\n        },\n        {\n          \"id\": 25854,\n          \"title\": \"Carbon Fin Set G10 (set of 4)\",\n          \"sku\": \"UPW-FIN-G10\",\n          \"ean\": \"8719326583662\",\n          \"weight\": 0.3,\n          \"price\": 79.95,\n          \"purchase_price\": 32.0,\n          \"quantity\": 1,\n          \"country_of_origin\": \"DE\",\n          \"product_classification\": \"9506290000\"\n        }\n      ],\n      \"available_stock\": 156,\n      \"total_fbc_stock\": 24\n    }\n  ]\n}"}],"_postman_id":"83b3768b-9088-40f9-8f36-1b98f81c0b54"},{"name":"Update a product","id":"bd411e98-31a9-4c20-80fa-cfe7c48457e2","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"product_id\": 25856,\n    \"price\": 39.00,\n    \"attributes\": {\n        \"lenght\": \"4cm\",\n        \"width\": \"5cm\"\n    },\n    \"pim_images\": {\n        \"1\": \"https://media.s-bol.com/Y7YGgJ7rAKpp/550x817.jpg\",\n        \"2\": \"https://media.s-bol.com/gpPy0RMrxAl3/550x550.jpg\",\n        \"3\": \"https://media.s-bol.com/qQpvNm33Z8BG/500x840.jpg\"\n    },\n    \"description\": \"This is a fake product description!\",\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory","description":"<p>Change stock level and product attributes by product_id. Or replace \"product_id\" for \"sku\" to update (multiple) products based on SKU value.</p>\n<p>The attributes and pim_images object is optional and only used for the PIM inside of ChannelDock.</p>\n<p><strong>Product fields allowed to update</strong>:</p>\n<ul>\n<li><p>corrected_stock (also backwards-compatible via active_stock)</p>\n</li>\n<li><p>title</p>\n</li>\n<li><p>x_size</p>\n</li>\n<li><p>y_size</p>\n</li>\n<li><p>z_size</p>\n</li>\n<li><p>weight</p>\n</li>\n<li><p>img_url</p>\n</li>\n<li><p>ean</p>\n</li>\n<li><p>product_reference</p>\n</li>\n<li><p>price</p>\n</li>\n<li><p>purchase_price</p>\n</li>\n<li><p>pim_images (PIM module related)</p>\n</li>\n<li><p>attributes (PIM module related)</p>\n</li>\n<li><p>description (PIM module related)</p>\n</li>\n<li><p>tags (array of strings, optional). Unknown titles are automatically created (scoped to your seller account). <strong>Full replacement</strong>: any tags currently on the product that are not in this array are removed. Omit the <code>tags</code> field entirely to leave existing tags untouched; send <code>\"tags\": []</code> to remove all tags from the product.</p>\n</li>\n<li><p>is_flagged (boolean, optional). Same product flag as in the portal product list (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Omit to leave the current flag unchanged.</p>\n</li>\n<li><p>archived (boolean, optional). Same archive setting as in the portal product list (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Omit to leave the current archive state unchanged.</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","inventory"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"3c4ed5ef-2d29-4d66-896f-7a1debba1314","name":"Update a product","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"product_id\": 44305,\n    \"corrected_stock\": 39,\n    \"title\": \"New product title\",\n    \"x_size\": 10,\n    \"y_size\": 15,\n    \"z_size\": 100,\n    \"weight\": 2,\n    \"img_url\": \"https://cdn.shopify.com/s/files/1/0652/7424/9438/files/traje-neopreno-prolimit-predator_freezip_5_4_2019-300x300-1-3.png?v=1689062601\",\n    \"product_reference\": \"New product reference\",\n    \"attributes\": {\n        \"lenght\": \"4cm\",\n        \"width\": \"5cm\"\n    },\n    \"pim_images\": {\n        \"1\": \"https://media.s-bol.com/Y7YGgJ7rAKpp/550x817.jpg\",\n        \"2\": \"https://media.s-bol.com/gpPy0RMrxAl3/550x550.jpg\",\n        \"3\": \"https://media.s-bol.com/qQpvNm33Z8BG/500x840.jpg\"\n    },\n    \"description\": \"This is a product description\",\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Processed 1 product updates\",\n  \"updates\": [\n    {\n      \"product_id\": 25851,\n      \"status\": \"success\",\n      \"updated_fields\": {\n        \"price\": \"299.95\",\n        \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n        \"x_size\": \"60\",\n        \"y_size\": \"12\",\n        \"z_size\": \"8\",\n        \"weight\": \"1.8\",\n        \"img_url\": \"https://cdn.upwind.example.com/products/kitesurf-bar-pro-52.jpg\",\n        \"product_reference\": \"UPW-REF-001\",\n        \"tags\": [\"kitesurf\", \"outlet\"],\n        \"is_flagged\": 1,\n        \"archived\": 0\n      },\n      \"updated_attributes\": {\n        \"length\": \"60 cm\",\n        \"width\": \"12 cm\",\n        \"color\": \"Black/Aqua\"\n      }\n    }\n  ]\n}"}],"_postman_id":"bd411e98-31a9-4c20-80fa-cfe7c48457e2"},{"name":"Bulk update products","id":"0a5cdf82-32d0-4cea-9145-1465bf5086ec","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"updates\": [\n    {\n      \"product_id\": 26482,\n      \"price\": 39.00,\n      \"attributes\": {\n        \"length\": \"4 cm\",\n        \"width\": \"5 cm\"\n      },\n      \"pim_images\": {\n        \"1\": \"https://media.s-bol.com/Y7YGgJ7rAKpp/550x817.jpg\",\n        \"2\": \"https://media.s-bol.com/gpPy0RMrxAl3/550x550.jpg\",\n        \"3\": \"https://media.s-bol.com/qQpvNm33Z8BG/500x840.jpg\"\n      },\n      \"description\": \"This is a fake product description!\"\n    },\n\n    {\n      \"product_id\": 91827,\n      \"price\": 24.95,\n      \"attributes\": {\n        \"length\": \"12 cm\",\n        \"width\": \"8 cm\",\n        \"color\": \"Midnight Blue\"\n      },\n      \"pim_images\": {\n        \"1\": \"https://cdn.example.com/img/91827/front.jpg\",\n        \"2\": \"https://cdn.example.com/img/91827/side.jpg\"\n      },\n      \"description\": \"Compact gadget holder made from recycled plastic.\"\n    },\n\n    {\n      \"product_id\": 55701,\n      \"price\": 119.99,\n      \"attributes\": {\n        \"length\": \"150 cm\",\n        \"width\": \"100 cm\",\n        \"material\": \"100 % organic cotton\"\n      },\n      \"pim_images\": {\n        \"1\": \"https://cdn.example.com/img/55701/main.jpg\"\n      },\n      \"description\": \"Premium throw blanket—soft, warm, and eco-friendly.\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory","description":"<p>Use this endpoint to update multiple products in a single request. Each product can be identified by either product_id or sku. You can update fields such as stock, price, archived, and optionally include attributes, pim_images, or a description for use within the ChannelDock PIM. Only the fields you provide will be updated—omitted fields remain unchanged. If both product_id and sku are present, product_id takes precedence. This endpoint is ideal for bulk updates across your catalog, including stock synchronization, price changes, and optional PIM enhancements.</p>\n<p><strong>Limit:</strong> Maximum 1000 products per request.</p>\n","urlObject":{"path":["portal","api","v2","seller","inventory"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"07164f21-7688-4dcd-8945-757c0e60c5d0","name":"Bulk update products","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"updates\": [\n    {\n      \"product_id\": 26482,\n      \"price\": 39.00\n    },\n    {\n      \"product_id\": 91827,\n      \"price\": 24.95\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Processed 3 product updates\",\n  \"updates\": [\n    {\n      \"product_id\": 25851,\n      \"status\": \"success\",\n      \"updated_fields\": {\n        \"price\": \"299.95\"\n      },\n      \"updated_attributes\": {\n        \"length\": \"60 cm\",\n        \"width\": \"12 cm\"\n      }\n    },\n    {\n      \"product_id\": 25852,\n      \"status\": \"success\",\n      \"updated_fields\": {\n        \"price\": \"189.95\"\n      },\n      \"updated_attributes\": {\n        \"length\": \"35 cm\",\n        \"width\": \"25 cm\"\n      }\n    },\n    {\n      \"product_id\": 25854,\n      \"status\": \"success\",\n      \"updated_fields\": {\n        \"price\": \"79.95\"\n      },\n      \"updated_attributes\": {}\n    }\n  ]\n}"}],"_postman_id":"0a5cdf82-32d0-4cea-9145-1465bf5086ec"},{"name":"Create a product","id":"a033a3d4-aa05-4f74-873d-7977c66d7aed","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"img_url\": \"http://www.upwind.nl/images/upwind-bindingen\",\n    \"ean\": \"87123456789\",\n    \"sku\": \"upwind-sku\",\n    \"product_reference\": \"upwind-product-reference\",\n    \"x_size\": 10,\n    \"y_size\": 20,\n    \"z_size\": 20,\n    \"weight\": 3,\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory","description":"<h3 id=\"add-inventory\">Add Inventory</h3>\n<p>This endpoint allows you to add products for a seller in the portal. The HTTP POST request should be sent to <code>https://channeldock.com/portal/api/v2/seller/inventory</code>.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>title</code> (string, required): The title of the product.</p>\n</li>\n<li><p><code>img_url</code> (string, optional): The URL of the product image.</p>\n</li>\n<li><p><code>ean</code> (string, required): The EAN (European Article Number) of the product.</p>\n</li>\n<li><p><code>sku</code> (string, optional): The Stock Keeping Unit (SKU) of the product.</p>\n</li>\n<li><p><code>product_reference</code> (string, optional): The reference code of the product.</p>\n</li>\n<li><p><code>x_size</code> (float, optional): The size of the product in the x-direction in cm.</p>\n</li>\n<li><p><code>y_size</code> (float, optional): The size of the product in the y-direction in cm.</p>\n</li>\n<li><p><code>z_size</code> (float, optional): The size of the product in the z-direction in cm.</p>\n</li>\n<li><p><code>weight</code> (float, optional): The weight of the product in kg's.</p>\n</li>\n<li><p><code>tags</code> (array of strings, optional): Tag titles to assign to the product. Unknown titles are automatically created (scoped to your seller account). Omit this field entirely to leave tags untouched; send an empty array <code>[]</code> to remove all tags from the product.</p>\n</li>\n<li><p><code>is_flagged</code> (boolean, optional): Same product flag as in the portal product list (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Defaults to not flagged when omitted.</p>\n</li>\n<li><p><code>archived</code> (boolean, optional): Same archive setting as in the portal product list (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Defaults to not archived when omitted.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><code>response</code> (string): Indicates the status of the request, can be \"success\" or \"error\".</li>\n<li><code>message</code> (string): A message providing information about the result of the request.</li>\n<li><code>product</code> (object): Contains details of the newly created product, including its title, image URL, EAN, SKU, product reference, dimensions, weight, and (if <code>tags</code> was sent) the resulting <code>tags</code> array.</li>\n</ul>\n<h4 id=\"example\">Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"response\": \"success\",\n    \"message\": \"Created new product ID: 39\",\n    \"product\": {\n        \"title\": \"Upwind kitesurf bindingen\",\n        \"img_url\": \"http://www.upwind.nl/images/upwind-bindingen\",\n        \"ean\": \"87123456789\",\n        \"sku\": \"upwind-sku\",\n        \"product_reference\": \"upwind-product-reference\",\n        \"x_size\": 10,\n        \"y_size\": 20,\n        \"z_size\": 20,\n        \"weight\": 3,\n        \"tags\": [\"kitesurf\", \"outlet\"],\n        \"is_flagged\": 1,\n        \"archived\": 0\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["portal","api","v2","seller","inventory"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"74eccd47-32c9-4e6f-a467-6c735a917159","name":"Create a product","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"img_url\": \"http://www.upwind.nl/images/upwind-bindingen\",\n    \"ean\": \"87123456789\",\n    \"sku\": \"upwind-sku\",\n    \"product_reference\": \"upwind-product-reference\",\n    \"x_size\": 10,\n    \"y_size\": 20,\n    \"z_size\": 20,\n    \"weight\": 3,\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Created new product ID: 25856\",\n  \"product\": {\n    \"title\": \"Upwind Kitesurf Harness Comp\",\n    \"img_url\": \"https://cdn.upwind.example.com/products/harness-comp.jpg\",\n    \"ean\": \"8719326583686\",\n    \"sku\": \"UPW-HRN-COMP\",\n    \"product_reference\": \"UPW-REF-006\",\n    \"x_size\": 38.0,\n    \"y_size\": 28.0,\n    \"z_size\": 12.0,\n    \"weight\": 1.1,\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": 1,\n    \"archived\": 0\n  }\n}"}],"_postman_id":"a033a3d4-aa05-4f74-873d-7977c66d7aed"},{"name":"Delete a product","id":"00c0be2e-f59d-4c45-ae03-454d84fd5e4f","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"product_id\": 25852\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory","description":"<h3 id=\"delete-a-product\">Delete a product</h3>\n<p>This endpoint allows you to delete a product for a seller. Send a DELETE request to <code>https://channeldock.com/portal/api/v2/seller/inventory</code> with the product_id in the request body.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><code>product_id</code> (integer, required): The ChannelDock product ID.</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><code>response</code> (string): Indicates the status of the request, can be \"success\" or \"error\".</li>\n<li><code>message</code> (string): A message providing information about the result of the request.</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","inventory"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"6a201ba1-c212-4efd-8dff-d4da92ee0d29","name":"Delete a product","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"product_id\": 10001\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/inventory"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Product deleted successfully\"\n}"}],"_postman_id":"00c0be2e-f59d-4c45-ae03-454d84fd5e4f"}],"id":"2c9807ef-00dc-4062-96f5-7ec4dea8bdeb","_postman_id":"2c9807ef-00dc-4062-96f5-7ec4dea8bdeb","description":""},{"name":"Bundles","item":[{"name":"Get bundles","id":"b6a75889-74da-4063-af5c-27eeeb0fc22b","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/bundles","description":"<p>List bundle products for this seller, including child products and quantities.</p>\n<p>Optional filters: <code>product_id</code>, <code>ean</code>, <code>sku</code> (parent product).</p>\n","urlObject":{"path":["portal","api","v2","seller","bundles"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>optional (parent product id)</p>\n","type":"text/plain"},"key":"product_id","value":"25860"},{"disabled":true,"description":{"content":"<p>optional (parent EAN)</p>\n","type":"text/plain"},"key":"ean","value":"8719326583700"},{"disabled":true,"description":{"content":"<p>optional (parent SKU)</p>\n","type":"text/plain"},"key":"sku","value":"UPW-BUNDLE-STARTER"}],"variable":[]}},"response":[{"id":"4ce316c2-84f1-4501-b002-451b017e1f45","name":"Get bundles","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/bundles","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","bundles"],"query":[{"key":"product_id","value":"25860","description":"optional (parent product id)","disabled":true},{"key":"ean","value":"8719326583700","description":"optional (parent EAN)","disabled":true},{"key":"sku","value":"UPW-BUNDLE-STARTER","description":"optional (parent SKU)","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"bundles_count\": 1,\n  \"bundles\": [\n    {\n      \"parent_product_id\": 25860,\n      \"parent_ean\": \"8719326583700\",\n      \"parent_sku\": \"UPW-BUNDLE-STARTER\",\n      \"parent_title\": \"Upwind starter bundle\",\n      \"stock\": 12,\n      \"child_products\": [\n        {\n          \"bundle_row_id\": 901,\n          \"child_product_id\": 25851,\n          \"child_ean\": \"8719326583631\",\n          \"child_sku\": \"UPW-BAR-52\",\n          \"child_title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"quantity\": 1\n        },\n        {\n          \"bundle_row_id\": 902,\n          \"child_product_id\": 25856,\n          \"child_ean\": \"87123456789\",\n          \"child_sku\": \"UPW-HRN-COMP\",\n          \"child_title\": \"Upwind Kitesurf Harness Comp\",\n          \"quantity\": 1\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"b6a75889-74da-4063-af5c-27eeeb0fc22b"},{"name":"Create bundle","id":"6fa9b1d6-5b85-4f26-aec4-e7bb687435d0","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860,\n  \"children\": [\n    { \"child_product_id\": 25851, \"quantity\": 1 },\n    { \"child_product_id\": 25856, \"quantity\": 1 }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/bundles","description":"<p>Create a bundle from an existing parent product and add children.</p>\n<p>Required JSON: <code>parent_product_id</code>, <code>children</code> (array of <code>{child_product_id, quantity}</code>). Quantity defaults to 1.</p>\n<p>The parent must belong to this seller. If it is not already a bundle, available stock must be 0 and it must not be a child of another bundle. If it is already a bundle, children are added.</p>\n<p>Partial child failures are returned in <code>errors</code>; successful links in <code>added_children</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","bundles"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"9e917873-2432-4a08-9274-d81971e0c853","name":"Create bundle","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860,\n  \"children\": [\n    { \"child_product_id\": 25851, \"quantity\": 1 },\n    { \"child_product_id\": 25856, \"quantity\": 1 }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/bundles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Bundle created/updated successfully.\",\n  \"parent_product_id\": 25860,\n  \"parent_ean\": \"8719326583700\",\n  \"added_children\": [\n    { \"child_product_id\": 25851, \"child_ean\": \"8719326583631\", \"quantity\": 1 },\n    { \"child_product_id\": 25856, \"child_ean\": \"87123456789\", \"quantity\": 1 }\n  ],\n  \"errors\": []\n}"}],"_postman_id":"6fa9b1d6-5b85-4f26-aec4-e7bb687435d0"},{"name":"Update bundle","id":"d082c803-8cbc-4f92-8a89-b4c0bba88d7d","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860,\n  \"add_children\": [\n    { \"child_product_id\": 25852, \"quantity\": 1 }\n  ],\n  \"remove_children\": [25856]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/bundles","description":"<p>Add and/or remove children on an existing bundle.</p>\n<p>Required: <code>parent_product_id</code>. Optional: <code>add_children</code> (same shape as create), <code>remove_children</code> (array of child product ids).</p>\n","urlObject":{"path":["portal","api","v2","seller","bundles"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"d91797d2-1191-4caf-8ca3-d18d964b8ef2","name":"Update bundle","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860,\n  \"add_children\": [\n    { \"child_product_id\": 25852, \"quantity\": 1 }\n  ],\n  \"remove_children\": [25856]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/bundles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Bundle updated successfully.\",\n  \"parent_product_id\": 25860,\n  \"parent_ean\": \"8719326583700\",\n  \"added_children\": [\n    { \"child_product_id\": 25852, \"child_ean\": \"8719326583648\", \"quantity\": 1 }\n  ],\n  \"removed_children\": [\n    { \"child_product_id\": 25856, \"child_ean\": \"87123456789\" }\n  ],\n  \"errors\": []\n}"}],"_postman_id":"d082c803-8cbc-4f92-8a89-b4c0bba88d7d"},{"name":"Delete bundle","id":"940706f1-6da3-41c7-a588-e3c9344db7ef","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/bundles","description":"<p>Convert a bundle back to a regular product. Removes all children, sets stock to 0 (including center stock rows).</p>\n<p>Required JSON: <code>parent_product_id</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","bundles"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"8c27833f-557d-48a0-89a7-be09c02f70cf","name":"Delete bundle","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/bundles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Bundle converted to regular product. Stock reset to 0 and all child products removed.\",\n  \"parent_product_id\": 25860,\n  \"parent_ean\": \"8719326583700\"\n}"}],"_postman_id":"940706f1-6da3-41c7-a588-e3c9344db7ef"}],"id":"4242d521-d54e-4d17-ba9b-e71092d6878f","description":"<p>Create and manage product bundles (a parent SKU made of one or more child products with quantities).</p>\n<p>The parent must exist as a catalog product. Converting a regular product to a bundle requires available stock 0. Bundle stock is derived from children.</p>\n<p>Enable <strong>Bundles</strong> (GET, POST, PUT, DELETE) on your API key in ChannelDock settings.</p>\n","_postman_id":"4242d521-d54e-4d17-ba9b-e71092d6878f"},{"name":"Product tags","item":[{"name":"Get product tags","id":"42d6923d-1f38-4588-8c4e-1385bc5f3851","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/product-tags?page=1","description":"<p>List product tags for this seller. Paginated: 50 per page, 1-based <code>page</code> (defaults to 1).</p>\n<p>Optional: <code>search</code> or <code>q</code> (title contains), <code>tag_id</code> (returns that tag only, no pagination).</p>\n","urlObject":{"path":["portal","api","v2","seller","product-tags"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>optional (default 1, 50 tags per page)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional (title contains; alias q)</p>\n","type":"text/plain"},"key":"search","value":"kitesurf"},{"disabled":true,"description":{"content":"<p>optional (single tag)</p>\n","type":"text/plain"},"key":"tag_id","value":"12"}],"variable":[]}},"response":[{"id":"60ac02c5-973e-4ce3-9219-bd7b0481de0a","name":"Get product tags","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/product-tags?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","product-tags"],"query":[{"key":"page","value":"1","description":"optional (default 1, 50 tags per page)"},{"key":"search","value":"kitesurf","description":"optional (title contains; alias q)","disabled":true},{"key":"tag_id","value":"12","description":"optional (single tag)","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"product_tags_count\": 2,\n  \"total_matching\": 2,\n  \"page\": 1,\n  \"product_tags\": [\n    { \"id\": 12, \"title\": \"kitesurf\", \"color\": \"#0066ff\", \"product_count\": 18 },\n    { \"id\": 13, \"title\": \"outlet\", \"color\": \"#ff5500\", \"product_count\": 4 }\n  ]\n}"}],"_postman_id":"42d6923d-1f38-4588-8c4e-1385bc5f3851"},{"name":"Create product tag","id":"36b3bc23-7411-44b4-a221-9ea22f51d1ed","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"outlet\",\n  \"color\": \"#ff5500\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags","description":"<p>Create a product tag.</p>\n<p>Required: <code>title</code>. Optional: <code>color</code> as <code>#rgb</code> or <code>#rrggbb</code> (default <code>#000</code>). Title must be unique for this seller (case-insensitive).</p>\n","urlObject":{"path":["portal","api","v2","seller","product-tags"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"3ae2988e-4d9b-4e85-a6e3-bac571c1a503","name":"Create product tag","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"outlet\",\n  \"color\": \"#ff5500\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"product_tag\": {\n    \"id\": 13,\n    \"title\": \"outlet\",\n    \"color\": \"#ff5500\",\n    \"product_count\": 0\n  }\n}"}],"_postman_id":"36b3bc23-7411-44b4-a221-9ea22f51d1ed"},{"name":"Update product tag","id":"5abbc212-bd78-444b-9209-6fd0f761d4ab","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 13,\n  \"title\": \"clearance\",\n  \"color\": \"#cc3300\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags","description":"<p>Update a tag’s title and/or color.</p>\n<p>Required: <code>tag_id</code> (alias <code>id</code>). Optional: <code>title</code>, <code>color</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","product-tags"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"c1e21e96-eb1e-472c-8a4b-673b6aae6757","name":"Update product tag","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 13,\n  \"title\": \"clearance\",\n  \"color\": \"#cc3300\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"product_tag\": {\n    \"id\": 13,\n    \"title\": \"clearance\",\n    \"color\": \"#cc3300\",\n    \"product_count\": 4\n  }\n}"}],"_postman_id":"5abbc212-bd78-444b-9209-6fd0f761d4ab"},{"name":"Delete product tag","id":"21676ba2-963c-479c-9c57-f642c01ab27d","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 13\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags","description":"<p>Delete a tag and unlink it from all products.</p>\n<p>Required JSON: <code>tag_id</code> (alias <code>id</code>).</p>\n","urlObject":{"path":["portal","api","v2","seller","product-tags"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"da2aae10-b915-49ea-aecf-4750cfdcf8c3","name":"Delete product tag","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 13\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"deleted_tag_id\": 13\n}"}],"_postman_id":"21676ba2-963c-479c-9c57-f642c01ab27d"},{"name":"Attach product tags","id":"789fa204-ef48-49af-8503-2b08635de85c","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 12,\n  \"product_ids\": [25851, 25852]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags/attach","description":"<p>Attach a tag to one or more catalog products.</p>\n<p>Identify the tag with <code>tag_id</code>, or <code>tag_title</code> / <code>title</code>. Identify products with <code>product_id</code>, <code>product_ids</code> (max 500), <code>ean</code>, or <code>sku</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","product-tags","attach"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7b45fba3-8e01-427b-8e78-245b1e968c68","name":"Attach product tags","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 12,\n  \"product_ids\": [25851, 25852]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags/attach"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"tag_id\": 12,\n  \"attached_count\": 2,\n  \"already_linked_count\": 0,\n  \"product_count\": 2\n}"}],"_postman_id":"789fa204-ef48-49af-8503-2b08635de85c"},{"name":"Detach product tags","id":"404997bd-b1a1-40c0-9ac9-7cd5a3d1f04e","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 12,\n  \"product_ids\": [25852]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags/detach","description":"<p>Detach a tag from one or more catalog products.</p>\n<p>Same identification fields as attach. HTTP <strong>POST</strong> or <strong>DELETE</strong> on <code>/seller/product-tags/detach</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","product-tags","detach"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"ff6449c7-6205-4f5d-875b-8df3a1741057","name":"Detach product tags","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 12,\n  \"product_ids\": [25852]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/product-tags/detach"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"tag_id\": 12,\n  \"detached_count\": 1,\n  \"not_linked_count\": 0,\n  \"product_count\": 1\n}"}],"_postman_id":"404997bd-b1a1-40c0-9ac9-7cd5a3d1f04e"}],"id":"a11e4906-3d32-4529-a3ae-1588aab2568a","description":"<p>Manage product tags for the seller catalog (<code>tags</code> scoped to <code>seller_id</code>).</p>\n<p>List/create/update/delete tags on <code>/seller/product-tags</code>. Attach or detach tags on products via <code>/seller/product-tags/attach</code> and <code>/seller/product-tags/detach</code>.</p>\n<p>You can also assign tags by title on <code>POST</code>/<code>PUT /seller/inventory</code> (<code>tags</code> string array). Inventory GET accepts <code>tag_id</code> or <code>tag_title</code> filters.</p>\n<p>Enable <strong>Product Tags</strong>, <strong>Product Tags Attach</strong>, and <strong>Product Tags Detach</strong> on your API key.</p>\n","_postman_id":"a11e4906-3d32-4529-a3ae-1588aab2568a"},{"name":"Channels","item":[{"name":"Get connected channels","id":"6a2dfea2-f7e9-4b51-ada7-3c1b2abb601c","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/channels","description":"<p>List this seller’s connected integrations. Optional query: <code>api_id</code>, <code>type</code> (<code>sales</code>, <code>fulfillment</code>, …), <code>channel</code> (name or ref; also accepts <code>search</code>).</p>\n<p>Returns up to 50 connections. <code>pim_listing_supported</code> is true when the connection is a sales channel that can host a PIM listing. Use <code>api_id</code> together with <code>marketplace_id</code> from <code>GET /seller/pim/marketplaces</code> on <code>POST /seller/listings</code>.</p>\n<p>Does not require <code>pim_module</code>. Channel credentials / extra settings are not returned on this endpoint.</p>\n","urlObject":{"path":["portal","api","v2","seller","channels"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>optional (sales, fulfillment, …)</p>\n","type":"text/plain"},"key":"type","value":"sales"},{"disabled":true,"description":{"content":"<p>optional (channel name or ref)</p>\n","type":"text/plain"},"key":"channel","value":"kaufland"},{"disabled":true,"description":{"content":"<p>optional (single connection)</p>\n","type":"text/plain"},"key":"api_id","value":"42"}],"variable":[]}},"response":[{"id":"de073a91-c94a-4dd8-bdce-3d0f19b168a3","name":"Get connected channels","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/channels","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","channels"],"query":[{"key":"type","value":"sales","description":"optional (sales, fulfillment, …)","disabled":true},{"key":"channel","value":"kaufland","description":"optional (channel name or ref)","disabled":true},{"key":"api_id","value":"42","description":"optional (single connection)","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"count\": 2,\n  \"channels\": [\n    {\n      \"id\": 42,\n      \"api_id\": 42,\n      \"description\": \"Bol.com NL\",\n      \"type\": \"sales\",\n      \"status\": \"active\",\n      \"channel\": \"Bol.com\",\n      \"channel_ref\": \"bolcom\",\n      \"marketplace_id\": 5,\n      \"pim_listing_supported\": true,\n      \"import_orders\": 1,\n      \"seller_id\": 1184,\n      \"portal_url\": \"/portal/public/mychannels\"\n    },\n    {\n      \"id\": 88,\n      \"api_id\": 88,\n      \"description\": \"Amazon.nl\",\n      \"type\": \"sales\",\n      \"status\": \"active\",\n      \"channel\": \"Amazon\",\n      \"channel_ref\": \"amazon\",\n      \"marketplace_id\": 2,\n      \"pim_listing_supported\": true,\n      \"import_orders\": 1,\n      \"seller_id\": 1184,\n      \"portal_url\": \"/portal/public/mychannels\"\n    }\n  ],\n  \"hint\": \"Use api_id + marketplace_id on POST /seller/listings when pim_listing_supported is true. If the named shop is missing, the seller must connect it under My Channels.\",\n  \"portal_url\": \"/portal/public/mychannels\"\n}"}],"_postman_id":"6a2dfea2-f7e9-4b51-ada7-3c1b2abb601c"}],"id":"f7f57675-1256-4c34-b329-9541e5ae1543","description":"<p>List connected sales-channel integrations for the seller account (<code>GET /seller/channels</code>).</p>\n<p>Does not require <code>pim_module</code>. Use this to confirm a shop is connected before creating PIM listings. For listing create you still need the <code>marketplace_id</code> + <code>api_id</code> pair from <code>GET /seller/pim/marketplaces</code>.</p>\n<p>Enable <strong>Connected channels</strong> (GET) on your API key in ChannelDock settings.</p>\n","_postman_id":"f7f57675-1256-4c34-b329-9541e5ae1543"},{"name":"PIM listings","item":[{"name":"Get PIM marketplaces","id":"a124051b-4d66-4426-a944-6a67f402bf02","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/marketplaces","description":"<p>List connected sales-channel APIs that can host a listing, plus a synthetic ChannelDock source row (<code>marketplace_id: 0</code>, <code>api_id: 0</code>).</p>\n<p>Use the returned <code>marketplace_id</code> + <code>api_id</code> pair on <code>POST /seller/listings</code>. Language / Mirakl shop differences can map one channel to different marketplace ids — always take the pair from this endpoint.</p>\n","urlObject":{"path":["portal","api","v2","seller","pim","marketplaces"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"e0097c25-73ec-4a0d-8a8d-2f468d48316d","name":"Get PIM marketplaces","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/marketplaces"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"marketplaces\": [\n    {\n      \"marketplace_id\": 0,\n      \"api_id\": 0,\n      \"label\": \"ChannelDock source listing\",\n      \"channel\": \"channeldock\",\n      \"language\": null,\n      \"currency\": \"EUR\"\n    },\n    {\n      \"marketplace_id\": 5,\n      \"api_id\": 42,\n      \"label\": \"Bol.com NL\",\n      \"channel\": \"bolcom\",\n      \"language\": \"nl\",\n      \"currency\": \"EUR\"\n    },\n    {\n      \"marketplace_id\": 2,\n      \"api_id\": 88,\n      \"label\": \"Amazon.nl\",\n      \"channel\": \"amazon\",\n      \"language\": \"nl\",\n      \"currency\": \"EUR\"\n    }\n  ]\n}"}],"_postman_id":"a124051b-4d66-4426-a944-6a67f402bf02"},{"name":"Get PIM categories","id":"17864aa9-6fdb-4170-b05b-37d62c0942c3","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/categories?marketplace_id=5&q=kitesurf","description":"<p>Search leaf marketplace categories. Only leaf ids can be sent as <code>marketplace_category_id</code> on <code>PUT /seller/listings</code>.</p>\n<p><code>marketplace_id</code> is required and must be a channel marketplace (not <code>0</code>). Omit <code>q</code> to get a sample of up to 50 leaf categories; pass <code>q</code> to search title / translated title.</p>\n","urlObject":{"path":["portal","api","v2","seller","pim","categories"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required — channel marketplace id from GET /seller/pim/marketplaces</p>\n","type":"text/plain"},"key":"marketplace_id","value":"5"},{"description":{"content":"<p>optional search string</p>\n","type":"text/plain"},"key":"q","value":"kitesurf"}],"variable":[]}},"response":[{"id":"cbb57906-e89c-462b-bdec-287bf1789545","name":"Get PIM categories","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/pim/categories?marketplace_id=5&q=kitesurf","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","pim","categories"],"query":[{"key":"marketplace_id","value":"5","description":"required — channel marketplace id from GET /seller/pim/marketplaces"},{"key":"q","value":"kitesurf","description":"optional search string"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"categories\": [\n    {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    {\n      \"id\": 18421,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfaccessoires\"\n    }\n  ]\n}"}],"_postman_id":"17864aa9-6fdb-4170-b05b-37d62c0942c3"},{"name":"Get PIM browse nodes","id":"2110a009-c8c6-4596-825e-3af534d1af83","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/browse-nodes?marketplace_id=2&q=electronics","description":"<p>Search Amazon (and similar) browse nodes for a marketplace. Optional <code>marketplace_category_id</code> narrows results to nodes linked to that category.</p>\n","urlObject":{"path":["portal","api","v2","seller","pim","browse-nodes"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required — Amazon marketplace id</p>\n","type":"text/plain"},"key":"marketplace_id","value":"2"},{"description":{"content":"<p>optional search string</p>\n","type":"text/plain"},"key":"q","value":"electronics"},{"disabled":true,"description":{"content":"<p>optional — restrict to one category</p>\n","type":"text/plain"},"key":"marketplace_category_id","value":"10"}],"variable":[]}},"response":[{"id":"1db6bad4-640d-4d54-996a-9dec1336016a","name":"Get PIM browse nodes","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/pim/browse-nodes?marketplace_id=2&q=electronics","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","pim","browse-nodes"],"query":[{"key":"marketplace_id","value":"2","description":"required — Amazon marketplace id"},{"key":"q","value":"electronics","description":"optional search string"},{"key":"marketplace_category_id","value":"10","description":"optional — restrict to one category","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"browse_nodes\": [\n    {\n      \"id\": 3310,\n      \"marketplace_category_id\": 10,\n      \"label\": \"Kitesurfing (Sports → Water Sports → Kitesurfing)\"\n    }\n  ]\n}"}],"_postman_id":"2110a009-c8c6-4596-825e-3af534d1af83"},{"name":"Get PIM brands","id":"1c41e2de-b363-4400-8c8a-2c554c9ac66c","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/brands?marketplace_id=5&q=upwind","description":"<p>Search marketplace brands (Otto / Octopia and similar). <code>marketplace_id</code> is required. Prefix-match on <code>q</code>; omit <code>q</code> for a random sample of up to 50 brands.</p>\n","urlObject":{"path":["portal","api","v2","seller","pim","brands"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"marketplace_id","value":"5"},{"description":{"content":"<p>optional prefix search</p>\n","type":"text/plain"},"key":"q","value":"upwind"}],"variable":[]}},"response":[{"id":"ef0b7a05-f0b0-44c5-9457-df9427be349d","name":"Get PIM brands","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/pim/brands?marketplace_id=5&q=upwind","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","pim","brands"],"query":[{"key":"marketplace_id","value":"5","description":"required"},{"key":"q","value":"upwind","description":"optional prefix search"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"brands\": [\n    {\n      \"id\": 712,\n      \"label\": \"Upwind\"\n    }\n  ]\n}"}],"_postman_id":"1c41e2de-b363-4400-8c8a-2c554c9ac66c"},{"name":"Get PIM asset types","id":"cd0cfdc2-0e7c-45c8-9ba1-42ef6d926d23","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/asset-types?marketplace_id=5","description":"<p>List image / asset slots for a marketplace. Use <code>marketplace_id=0</code> for native ChannelDock slots (<code>main_asset_id</code>). Channel listings use <code>marketplace_asset_id</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","pim","asset-types"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required — use 0 for native ChannelDock slots</p>\n","type":"text/plain"},"key":"marketplace_id","value":"5"}],"variable":[]}},"response":[{"id":"8456b412-c6c2-4fce-a8ee-c27cc925d6b7","name":"Get PIM asset types","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/pim/asset-types?marketplace_id=5","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","pim","asset-types"],"query":[{"key":"marketplace_id","value":"5","description":"required — use 0 for native ChannelDock slots"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"asset_types\": [\n    {\n      \"marketplace_asset_id\": 12,\n      \"main_asset_id\": 0,\n      \"title\": \"Main image\",\n      \"reference\": \"FRONT\"\n    },\n    {\n      \"marketplace_asset_id\": 13,\n      \"main_asset_id\": 0,\n      \"title\": \"Extra image 1\",\n      \"reference\": \"IMAGE1\"\n    }\n  ]\n}"}],"_postman_id":"cd0cfdc2-0e7c-45c8-9ba1-42ef6d926d23"},{"name":"Get PIM attribute schema","id":"1a144d27-77ac-4493-a9a1-0b5c8e592726","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/pim/attribute-schema?marketplace_id=5&marketplace_category_id=18420","description":"<p>Attribute definitions for a marketplace leaf category. Assign the category with <code>PUT /seller/listings</code> first, then use <code>marketplace_attribute_id</code> values here on <code>POST /seller/listings/attributes</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","pim","attribute-schema"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"marketplace_id","value":"5"},{"description":{"content":"<p>required — leaf category id</p>\n","type":"text/plain"},"key":"marketplace_category_id","value":"18420"}],"variable":[]}},"response":[{"id":"cbd5dce4-3d6c-442c-b2bf-06af3fcc8bfa","name":"Get PIM attribute schema","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/pim/attribute-schema?marketplace_id=5&marketplace_category_id=18420","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","pim","attribute-schema"],"query":[{"key":"marketplace_id","value":"5","description":"required"},{"key":"marketplace_category_id","value":"18420","description":"required — leaf category id"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attributes\": [\n    {\n      \"marketplace_attribute_id\": 881,\n      \"reference\": \"Colour\",\n      \"title\": \"Kleur\",\n      \"type\": \"select\",\n      \"required\": true,\n      \"multi_value\": false,\n      \"free_value\": false,\n      \"available_values\": [\n        \"Zwart\",\n        \"Wit\",\n        \"Blauw\"\n      ],\n      \"available_units\": [],\n      \"available_types\": [],\n      \"requirement_conditions\": []\n    }\n  ]\n}"}],"_postman_id":"1a144d27-77ac-4493-a9a1-0b5c8e592726"},{"name":"Get listings","id":"84f0ad5c-77d5-48c3-aa1d-1d354ae2ee09","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/listings?page=1","description":"<p>List marketplace listings for the seller. Results are paginated (50 per page). <code>page</code> is required and 1-based.</p>\n<p>Optional <code>include</code> is a comma-separated list: <code>assets</code>, <code>attributes</code>, <code>validation</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required, 1-based, 50 listings per page</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional — filter by listing id</p>\n","type":"text/plain"},"key":"listing_id","value":"90001"},{"disabled":true,"description":{"content":"<p>optional — filter by master product id</p>\n","type":"text/plain"},"key":"product_id","value":"453386"},{"disabled":true,"description":{"content":"<p>optional — filter by product EAN</p>\n","type":"text/plain"},"key":"ean","value":"8719326583631"},{"disabled":true,"description":{"content":"<p>optional — filter by product SKU</p>\n","type":"text/plain"},"key":"sku","value":"1001001"},{"disabled":true,"description":{"content":"<p>optional — use 0 for the source listing</p>\n","type":"text/plain"},"key":"marketplace_id","value":"5"},{"disabled":true,"description":{"content":"<p>optional — filter by API connection</p>\n","type":"text/plain"},"key":"api_id","value":"42"},{"disabled":true,"description":{"content":"<p>optional — filter by listing status</p>\n","type":"text/plain"},"key":"status","value":"inactive"},{"disabled":true,"description":{"content":"<p>optional — assets, attributes, validation</p>\n","type":"text/plain"},"key":"include","value":"assets,attributes"}],"variable":[]}},"response":[{"id":"408a2b69-dde6-4e14-ae01-23837680b360","name":"Get listings","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/listings?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","listings"],"query":[{"key":"page","value":"1","description":"required, 1-based, 50 listings per page"},{"key":"listing_id","value":"90001","description":"optional — filter by listing id","disabled":true},{"key":"product_id","value":"453386","description":"optional — filter by master product id","disabled":true},{"key":"ean","value":"8719326583631","description":"optional — filter by product EAN","disabled":true},{"key":"sku","value":"1001001","description":"optional — filter by product SKU","disabled":true},{"key":"marketplace_id","value":"5","description":"optional — use 0 for the source listing","disabled":true},{"key":"api_id","value":"42","description":"optional — filter by API connection","disabled":true},{"key":"status","value":"inactive","description":"optional — filter by listing status","disabled":true},{"key":"include","value":"assets,attributes","description":"optional — assets, attributes, validation","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"listings_count\": 2,\n  \"page\": 1,\n  \"listings\": [\n    {\n      \"id\": 90000,\n      \"product_id\": 453386,\n      \"ean\": \"8719326583631\",\n      \"sku\": \"1001001\",\n      \"marketplace_id\": 0,\n      \"marketplace_name\": \"ChannelDock\",\n      \"api_id\": 0,\n      \"title\": \"Upwind kitesurf bindingen\",\n      \"description\": \"High-performance kitesurf bindings.\",\n      \"marketplace_category_id\": 0,\n      \"category\": null,\n      \"marketplace_browse_node_id\": 0,\n      \"marketplace_brand_id\": 0,\n      \"price\": null,\n      \"currency\": \"EUR\",\n      \"status\": \"inactive\",\n      \"active\": false,\n      \"content_percentage\": 72,\n      \"listing_score\": 68,\n      \"error_attributes_json\": null\n    },\n    {\n      \"id\": 90001,\n      \"product_id\": 453386,\n      \"ean\": \"8719326583631\",\n      \"sku\": \"1001001\",\n      \"marketplace_id\": 5,\n      \"marketplace_name\": \"Bol.com NL\",\n      \"api_id\": 42,\n      \"title\": \"Upwind kitesurf bindingen\",\n      \"description\": \"High-performance kitesurf bindings.\",\n      \"marketplace_category_id\": 18420,\n      \"category\": {\n        \"id\": 18420,\n        \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n      },\n      \"marketplace_browse_node_id\": 0,\n      \"marketplace_brand_id\": 0,\n      \"price\": \"129.95\",\n      \"currency\": \"EUR\",\n      \"status\": \"inactive\",\n      \"active\": false,\n      \"content_percentage\": 72,\n      \"listing_score\": 68,\n      \"error_attributes_json\": null\n    }\n  ]\n}"}],"_postman_id":"84f0ad5c-77d5-48c3-aa1d-1d354ae2ee09"},{"name":"Create listing","id":"73923148-c949-42a2-8541-e4b1d380e253","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"ean\": \"8719326583631\",\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"copy_from_source\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings","description":"<p>Create a listing for an existing master product. Identify the product with <code>product_id</code>, <code>ean</code>, or <code>sku</code>.</p>\n<ul>\n<li><code>marketplace_id</code> (required): <code>0</code> for the ChannelDock source listing, or a channel id from <code>GET /seller/pim/marketplaces</code>.</li>\n<li><code>api_id</code> (required when <code>marketplace_id &gt; 0</code>): sales-channel connection that matches that marketplace.</li>\n<li><code>copy_from_source</code> (optional, default <code>true</code>): copies mapped native assets/attributes/category onto a new channel listing. When <code>fetch_from_channel</code> is true, copy only runs if the channel fetch fails (same as the PIM UI).</li>\n<li><code>fetch_from_channel</code> (optional, default <code>false</code>, alias <code>fetch_marketplace_content</code>): download the live listing after create. Not allowed on <code>marketplace_id = 0</code>.</li>\n<li><code>marketplace_fetch_identifier</code> (optional, alias <code>fetch_identifier</code>): Bol and most channels use an 8–14 digit EAN. Amazon accepts a 10-character ASIN or an EAN. Omit to use the master product EAN.</li>\n</ul>\n<p>A failed fetch does not roll back the listing; <code>fetch_error</code> / <code>fetch_error_code</code> explain why. Create does not run AI title/description optimization.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"e6f4c245-df68-4c2b-a08d-87f0027fbedd","name":"Create listing","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"ean\": \"8719326583631\",\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"copy_from_source\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"fetched\": false,\n  \"copied_from_source\": true,\n  \"listing\": {\n    \"id\": 90001,\n    \"product_id\": 453386,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"1001001\",\n    \"marketplace_id\": 5,\n    \"marketplace_name\": \"Bol.com NL\",\n    \"api_id\": 42,\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"description\": \"High-performance kitesurf bindings.\",\n    \"marketplace_category_id\": 18420,\n    \"category\": {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    \"marketplace_browse_node_id\": 0,\n    \"marketplace_brand_id\": 0,\n    \"price\": \"129.95\",\n    \"currency\": \"EUR\",\n    \"status\": \"inactive\",\n    \"active\": false,\n    \"content_percentage\": 72,\n    \"listing_score\": 68,\n    \"error_attributes_json\": null\n  }\n}"},{"id":"232d5aec-08c9-44a9-a199-b1f1a1481699","name":"Listing already exists","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"ean\": \"8719326583631\",\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"copy_from_source\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"error_code\": \"listing_already_exists\",\n  \"message\": \"A listing for this product, marketplace, and API already exists.\",\n  \"listing_id\": 90001,\n  \"product_id\": 453386,\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"hint\": \"GET /seller/listings?listing_id=90001 or PUT that listing instead of creating a new one.\"\n}"}],"_postman_id":"73923148-c949-42a2-8541-e4b1d380e253"},{"name":"Create listing (fetch from channel)","id":"837618e8-8e63-49fa-bc24-2c384ebc46a8","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"ean\": \"8719326583631\",\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"fetch_from_channel\": true,\n  \"marketplace_fetch_identifier\": \"8719326583631\",\n  \"copy_from_source\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings","description":"<p>Same as Create listing, with <code>fetch_from_channel: true</code>. ChannelDock downloads title, description, assets, attributes, and category from the live sales channel after the row is created (same as the PIM “fetch marketplace data” checkbox).</p>\n<p>On success the listing is returned even if fetch fails (<code>fetched: false</code> plus <code>fetch_error</code>). When fetch fails and <code>copy_from_source</code> is true, mapped native content is copied as a fallback.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"08e8f3ef-4adc-4e44-ad6f-85e94cc36151","name":"Fetched from channel","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"ean\": \"8719326583631\",\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"fetch_from_channel\": true,\n  \"marketplace_fetch_identifier\": \"8719326583631\",\n  \"copy_from_source\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"fetched\": true,\n  \"copied_from_source\": false,\n  \"fetch_error\": null,\n  \"fetch_error_code\": null,\n  \"marketplace_fetch_identifier\": \"8719326583631\",\n  \"listing\": {\n    \"id\": 90001,\n    \"product_id\": 453386,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"1001001\",\n    \"marketplace_id\": 5,\n    \"marketplace_name\": \"Bol.com NL\",\n    \"api_id\": 42,\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"description\": \"High-performance kitesurf bindings.\",\n    \"marketplace_category_id\": 18420,\n    \"category\": {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    \"marketplace_browse_node_id\": 0,\n    \"marketplace_brand_id\": 0,\n    \"price\": \"129.95\",\n    \"currency\": \"EUR\",\n    \"status\": \"inactive\",\n    \"active\": false,\n    \"content_percentage\": 72,\n    \"listing_score\": 68,\n    \"error_attributes_json\": null,\n    \"assets\": [\n      {\n        \"id\": 501,\n        \"file_url\": \"https://channeldock-assets.s3.eu-central-1.amazonaws.com/453386/main.jpg\",\n        \"file_name\": \"main.jpg\",\n        \"file_type\": \"image/jpeg\",\n        \"marketplace_asset_id\": 12,\n        \"main_asset_id\": 0\n      }\n    ],\n    \"attributes\": [\n      {\n        \"id\": 55,\n        \"title\": \"Kleur\",\n        \"marketplace_attribute_id\": 881,\n        \"value\": \"Zwart\",\n        \"unit\": \"\",\n        \"type\": \"\"\n      }\n    ]\n  }\n}"},{"id":"32bb583b-4ece-4425-83e5-d3693bc8b5e7","name":"Fetch failed, copied from source","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"ean\": \"8719326583631\",\n  \"marketplace_id\": 5,\n  \"api_id\": 42,\n  \"fetch_from_channel\": true,\n  \"marketplace_fetch_identifier\": \"8719326583631\",\n  \"copy_from_source\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"fetched\": false,\n  \"copied_from_source\": true,\n  \"fetch_error\": \"Offer not found\",\n  \"fetch_error_code\": \"channel_fetch_failed\",\n  \"marketplace_fetch_identifier\": \"8719326583631\",\n  \"listing\": {\n    \"id\": 90001,\n    \"product_id\": 453386,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"1001001\",\n    \"marketplace_id\": 5,\n    \"marketplace_name\": \"Bol.com NL\",\n    \"api_id\": 42,\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"description\": \"High-performance kitesurf bindings.\",\n    \"marketplace_category_id\": 18420,\n    \"category\": {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    \"marketplace_browse_node_id\": 0,\n    \"marketplace_brand_id\": 0,\n    \"price\": \"129.95\",\n    \"currency\": \"EUR\",\n    \"status\": \"inactive\",\n    \"active\": false,\n    \"content_percentage\": 72,\n    \"listing_score\": 68,\n    \"error_attributes_json\": null\n  }\n}"}],"_postman_id":"837618e8-8e63-49fa-bc24-2c384ebc46a8"},{"name":"Update listing","id":"73c6a1b0-ee7e-4e48-8423-d01860618260","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"title\": \"Upwind kitesurf bindingen\",\n  \"description\": \"High-performance kitesurf bindings.\",\n  \"marketplace_category_id\": 18420,\n  \"price\": 129.95\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings","description":"<p>Update listing content. Body must include <code>listing_id</code> plus at least one of: <code>title</code>, <code>description</code>, <code>price</code>, <code>marketplace_category_id</code> (leaf only; <code>0</code> clears), <code>marketplace_browse_node_id</code>, <code>marketplace_brand_id</code>.</p>\n<p>Channel listings are marked <code>changed</code> on content updates. If validation fails after the save, the response is <code>error_code: validation_failed</code> with an <code>errors</code> string array (and the updated <code>listing</code> is still returned).</p>\n","urlObject":{"path":["portal","api","v2","seller","listings"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"26e67580-bc57-415c-8aa1-fa0ab8b793fc","name":"Update listing","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"title\": \"Upwind kitesurf bindingen\",\n  \"description\": \"High-performance kitesurf bindings.\",\n  \"marketplace_category_id\": 18420,\n  \"price\": 129.95\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"listing\": {\n    \"id\": 90001,\n    \"product_id\": 453386,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"1001001\",\n    \"marketplace_id\": 5,\n    \"marketplace_name\": \"Bol.com NL\",\n    \"api_id\": 42,\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"description\": \"High-performance kitesurf bindings.\",\n    \"marketplace_category_id\": 18420,\n    \"category\": {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    \"marketplace_browse_node_id\": 0,\n    \"marketplace_brand_id\": 0,\n    \"price\": \"129.95\",\n    \"currency\": \"EUR\",\n    \"status\": \"inactive\",\n    \"active\": false,\n    \"content_percentage\": 72,\n    \"listing_score\": 68,\n    \"error_attributes_json\": null\n  }\n}"},{"id":"37e75c68-4e99-48ab-aba7-0ce1f8bc7b84","name":"Validation failed","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"title\": \"X\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"error_code\": \"validation_failed\",\n  \"status\": \"validation\",\n  \"listing_status\": \"validation\",\n  \"message\": \"Listing failed validation with 2 errors.\",\n  \"errors\": [\n    \"Missing marketplace category\",\n    \"Description is required\"\n  ],\n  \"listing_id\": 90001,\n  \"marketplace_id\": 5,\n  \"hint\": \"Fix each item in errors, then call validate again before publish.\",\n  \"listing\": {\n    \"id\": 90001,\n    \"product_id\": 453386,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"1001001\",\n    \"marketplace_id\": 5,\n    \"marketplace_name\": \"Bol.com NL\",\n    \"api_id\": 42,\n    \"title\": \"X\",\n    \"description\": \"High-performance kitesurf bindings.\",\n    \"marketplace_category_id\": 18420,\n    \"category\": {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    \"marketplace_browse_node_id\": 0,\n    \"marketplace_brand_id\": 0,\n    \"price\": \"129.95\",\n    \"currency\": \"EUR\",\n    \"status\": \"validation\",\n    \"active\": false,\n    \"content_percentage\": 72,\n    \"listing_score\": 68,\n    \"error_attributes_json\": null\n  }\n}"}],"_postman_id":"73c6a1b0-ee7e-4e48-8423-d01860618260"},{"name":"Delete listing","id":"30dceecb-8e41-41fc-92b7-52cb1806690f","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"force\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings","description":"<p>Delete a listing and its assets/attributes. Body: <code>{\"listing_id\": 123, \"force\": false}</code>.</p>\n<p>Deleting the native source listing (<code>marketplace_id = 0</code>) is blocked while channel listings still exist, unless <code>force</code> is <code>true</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"4dbf4982-835b-4599-9e65-841dc5c0e08a","name":"Delete listing","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"force\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"listing_id\": 90001\n}"},{"id":"e0f630e4-e79a-4114-9cfc-4ac63e732e53","name":"Native listing in use","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90000,\n  \"force\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"error_code\": \"native_listing_in_use\",\n  \"message\": \"Cannot delete the native source listing while channel listings still exist.\",\n  \"listing_id\": 90000,\n  \"product_id\": 453386,\n  \"channel_listing_ids\": [\n    90001\n  ],\n  \"hint\": \"Delete those channel listings first, or retry with {\\\"listing_id\\\": 90000, \\\"force\\\": true}.\"\n}"}],"_postman_id":"30dceecb-8e41-41fc-92b7-52cb1806690f"},{"name":"Get listing assets","id":"b127c32a-712f-499b-abd3-076fbc43f397","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/listings/assets?listing_id=90001","description":"<p>List image / file assets attached to a listing.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","assets"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"listing_id","value":"90001"}],"variable":[]}},"response":[{"id":"ea57a986-64cd-4ef3-b825-413eef980a95","name":"Get listing assets","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/listings/assets?listing_id=90001","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","listings","assets"],"query":[{"key":"listing_id","value":"90001","description":"required"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"assets\": [\n    {\n      \"id\": 501,\n      \"file_url\": \"https://channeldock-assets.s3.eu-central-1.amazonaws.com/453386/main.jpg\",\n      \"file_name\": \"main.jpg\",\n      \"file_type\": \"image/jpeg\",\n      \"marketplace_asset_id\": 12,\n      \"main_asset_id\": 0\n    }\n  ]\n}"}],"_postman_id":"b127c32a-712f-499b-abd3-076fbc43f397"},{"name":"Add listing asset","id":"9531e13f-471b-4b24-bc5b-1f9ee9e097f7","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"url\": \"https://cdn.example.com/products/main.jpg\",\n  \"marketplace_asset_id\": 12\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets","description":"<p>Upload an asset onto a listing. Send <code>listing_id</code> plus either:</p>\n<ul>\n<li><code>url</code> — ChannelDock downloads the remote file, or</li>\n<li><code>base64_content</code> + <code>filename</code> — inline upload</li>\n</ul>\n<p>Optional <code>marketplace_asset_id</code> (channel listings) or <code>main_asset_id</code> (native listings) sets the slot type. Get ids from <code>GET /seller/pim/asset-types</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","assets"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"861579fa-6871-4963-b48f-9dd3fe0fd007","name":"Add from URL","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"url\": \"https://cdn.example.com/products/main.jpg\",\n  \"marketplace_asset_id\": 12\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"asset\": {\n    \"id\": 501,\n    \"file_url\": \"https://channeldock-assets.s3.eu-central-1.amazonaws.com/453386/main.jpg\",\n    \"file_name\": \"main.jpg\",\n    \"file_type\": \"image/jpeg\",\n    \"marketplace_asset_id\": 12,\n    \"main_asset_id\": 0\n  }\n}"},{"id":"d350a3e7-bc5a-4fae-bdde-40b9c06439cf","name":"Add from base64","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"filename\": \"main.png\",\n  \"base64_content\": \"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==\",\n  \"marketplace_asset_id\": 12\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"asset\": {\n    \"id\": 501,\n    \"file_url\": \"https://channeldock-assets.s3.eu-central-1.amazonaws.com/453386/main.jpg\",\n    \"file_name\": \"main.png\",\n    \"file_type\": \"image/png\",\n    \"marketplace_asset_id\": 12,\n    \"main_asset_id\": 0\n  }\n}"}],"_postman_id":"9531e13f-471b-4b24-bc5b-1f9ee9e097f7"},{"name":"Update listing asset type","id":"92af3546-548e-41d2-9362-45ab04c1711b","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"asset_id\": 501,\n  \"marketplace_asset_id\": 12\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets","description":"<p>Change the slot type of an existing asset. Body: <code>asset_id</code> plus <code>marketplace_asset_id</code> (channel) or <code>main_asset_id</code> (native).</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","assets"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"79e544d9-6443-4dfb-9cf3-d039197f7c66","name":"Update listing asset type","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"asset_id\": 501,\n  \"marketplace_asset_id\": 12\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"asset\": {\n    \"id\": 501,\n    \"file_url\": \"https://channeldock-assets.s3.eu-central-1.amazonaws.com/453386/main.jpg\",\n    \"file_name\": \"main.jpg\",\n    \"file_type\": \"image/jpeg\",\n    \"marketplace_asset_id\": 12,\n    \"main_asset_id\": 0\n  }\n}"}],"_postman_id":"92af3546-548e-41d2-9362-45ab04c1711b"},{"name":"Delete listing asset","id":"e13bcb97-b570-46a9-879f-53da3d161e69","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"asset_id\": 501\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets","description":"<p>Remove an asset from a listing and delete the stored file.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","assets"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"58c23338-72dd-4cd6-bf24-f6028d58476a","name":"Delete listing asset","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"asset_id\": 501\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/assets"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"asset_id\": 501\n}"}],"_postman_id":"e13bcb97-b570-46a9-879f-53da3d161e69"},{"name":"Get listing attributes","id":"d22d2559-b621-48bd-ac29-66b1bd00f326","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes?listing_id=90001","description":"<p>List attribute rows on a listing (channel attributes and native main attributes).</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","attributes"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"listing_id","value":"90001"}],"variable":[]}},"response":[{"id":"c1dc287b-c3d9-466b-8c4a-69d4b0ccab02","name":"Get listing attributes","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/listings/attributes?listing_id=90001","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","listings","attributes"],"query":[{"key":"listing_id","value":"90001","description":"required"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attributes\": [\n    {\n      \"id\": 55,\n      \"title\": \"Kleur\",\n      \"marketplace_attribute_id\": 881,\n      \"value\": \"Zwart\",\n      \"unit\": \"\",\n      \"type\": \"\"\n    }\n  ]\n}"}],"_postman_id":"d22d2559-b621-48bd-ac29-66b1bd00f326"},{"name":"Add listing attribute","id":"856b427f-8616-4332-befa-37174efeaba2","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"marketplace_attribute_id\": 881,\n  \"value\": \"Zwart\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes","description":"<p>Add an attribute value to a listing.</p>\n<ul>\n<li>Channel listings: <code>listing_id</code> + <code>marketplace_attribute_id</code> + <code>value</code> (ids from <code>GET /seller/pim/attribute-schema</code>). Optional <code>unit</code> / <code>type</code>.</li>\n<li>Native listings: <code>listing_id</code> + <code>title</code> + <code>value</code>.</li>\n</ul>\n<p>JSON arrays are accepted for multi-value attributes.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","attributes"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"428d9697-fef6-480d-960d-dcbc0429cd65","name":"Add channel attribute","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"marketplace_attribute_id\": 881,\n  \"value\": \"Zwart\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attribute\": {\n    \"id\": 55,\n    \"title\": \"Kleur\",\n    \"marketplace_attribute_id\": 881,\n    \"value\": \"Zwart\",\n    \"unit\": \"\",\n    \"type\": \"\"\n  }\n}"},{"id":"35ca2d83-54d4-43b9-96df-0fbba5de049f","name":"Add native attribute","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90000,\n  \"title\": \"Color\",\n  \"value\": \"Black\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attribute\": {\n    \"id\": 56,\n    \"title\": \"Color\",\n    \"marketplace_attribute_id\": 0,\n    \"value\": \"Black\",\n    \"unit\": \"\",\n    \"type\": \"\"\n  }\n}"}],"_postman_id":"856b427f-8616-4332-befa-37174efeaba2"},{"name":"Update listing attribute","id":"30ea724c-fa59-4007-8a2b-5c199c6d0abb","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": 55,\n  \"value\": \"Blauw\",\n  \"unit\": \"\",\n  \"type\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes","description":"<p>Update an attribute row by its <code>id</code> (from GET attributes). Optional <code>unit</code> and <code>type</code>. An empty <code>value</code> deletes the row and returns <code>{\"deleted\": true}</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","attributes"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"ac5d24dc-115e-437d-ab4d-dff40d30c9cb","name":"Update listing attribute","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": 55,\n  \"value\": \"Blauw\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attribute\": {\n    \"id\": 55,\n    \"title\": \"Kleur\",\n    \"marketplace_attribute_id\": 881,\n    \"value\": \"Blauw\",\n    \"unit\": \"\",\n    \"type\": \"\"\n  }\n}"},{"id":"a89b8036-228a-4d4f-b8e3-ba25b81150b2","name":"Clear value deletes row","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": 55,\n  \"value\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"deleted\": true,\n  \"attribute_id\": 55\n}"}],"_postman_id":"30ea724c-fa59-4007-8a2b-5c199c6d0abb"},{"name":"Delete listing attribute","id":"3e8dad5b-e4f9-4d35-92f6-4e8bcf92fbd2","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": 55\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes","description":"<p>Delete an attribute row by its <code>id</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","attributes"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a14b36e9-ce2c-45d7-8ecd-cdaf9265679f","name":"Delete listing attribute","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": 55\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/attributes"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attribute_id\": 55\n}"}],"_postman_id":"3e8dad5b-e4f9-4d35-92f6-4e8bcf92fbd2"},{"name":"Validate listing","id":"5469417f-5511-4bed-a1bf-0d04a64ff5c7","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/validate","description":"<p>Run channel validation (category, title, description, assets, attributes) without publishing. Native listings (<code>marketplace_id = 0</code>) are skipped (<code>skipped: true</code>).</p>\n<p>Failures return HTTP 200 with <code>error_code: validation_failed</code> and an <code>errors</code> string array (never HTML).</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","validate"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"ab69472e-d258-4103-aa62-83863a9d7f2d","name":"Valid","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/validate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"status\": \"inactive\",\n  \"errors\": []\n}"},{"id":"38d5d08d-b8ed-419f-bf8e-0b28a9376e95","name":"Validation failed","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/validate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"error_code\": \"validation_failed\",\n  \"status\": \"validation\",\n  \"listing_status\": \"validation\",\n  \"message\": \"Listing failed validation with 2 errors.\",\n  \"errors\": [\n    \"Missing marketplace category\",\n    \"Description is required\"\n  ],\n  \"listing_id\": 90001,\n  \"marketplace_id\": 5,\n  \"hint\": \"Fix each item in errors, then call validate again before publish.\"\n}"},{"id":"cf8ab83a-c71b-4687-8ff6-c54701b18a29","name":"Native listing skipped","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90000\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/validate"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"status\": \"inactive\",\n  \"errors\": [],\n  \"skipped\": true,\n  \"listing_id\": 90000,\n  \"message\": \"Native ChannelDock source listings (marketplace_id=0) are not validated for channel publish.\",\n  \"hint\": \"Create a channel listing with POST /seller/listings using marketplace_id + api_id from GET /seller/pim/marketplaces.\"\n}"}],"_postman_id":"5469417f-5511-4bed-a1bf-0d04a64ff5c7"},{"name":"Publish listing","id":"cf0e0341-c1b2-49c4-adb1-e0971e3438c4","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/publish","description":"<p>Publish or unpublish a channel listing. Body: <code>{\"listing_id\": 123, \"active\": true}</code>.</p>\n<p>When <code>active</code> is <code>true</code>: validates, sets the listing active, and pushes content to the connected sales channel (Bol, Amazon, Shopify, WooCommerce, eBay, Kaufland, Otto, Mirakl, Octopia, …). When <code>active</code> is <code>false</code>: unpublishes (<code>active = 0</code>) without calling the channel.</p>\n<p>Native listings cannot be published (<code>error_code: native_listing_cannot_publish</code>).</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","publish"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"0a67846a-5bca-452e-acec-fff59e76160c","name":"Publish","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/publish"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"active\": true,\n  \"status\": \"SUCCESS\",\n  \"channel\": \"bolcom\",\n  \"listing_id\": 90001\n}"},{"id":"1cc14d56-8958-4c4b-9466-c1a94dc3cf12","name":"Validation failed","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"active\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/publish"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"error_code\": \"validation_failed\",\n  \"status\": \"validation\",\n  \"listing_status\": \"validation\",\n  \"message\": \"Listing failed validation with 2 errors.\",\n  \"errors\": [\n    \"Missing marketplace category\",\n    \"Description is required\"\n  ],\n  \"listing_id\": 90001,\n  \"marketplace_id\": 5,\n  \"hint\": \"Fix the errors array, then POST /seller/listings/validate and retry publish.\"\n}"}],"_postman_id":"cf0e0341-c1b2-49c4-adb1-e0971e3438c4"},{"name":"Unpublish listing","id":"f60c4f09-1d22-4e64-8223-ae5e5b58ef5b","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/publish","description":"<p>Set <code>active: false</code> to unpublish. ChannelDock clears the local active flag and does not call the sales channel.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","publish"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"66d7ccb7-2cda-4a0b-935f-0260487968f8","name":"Unpublish","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"active\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/publish"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"active\": false,\n  \"status\": \"inactive\",\n  \"listing_id\": 90001\n}"}],"_postman_id":"f60c4f09-1d22-4e64-8223-ae5e5b58ef5b"},{"name":"Fetch listing from channel","id":"2016575e-cf21-4cac-86c7-a7d6c9fd3ac9","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"marketplace_fetch_identifier\": \"8719326583631\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/fetch","description":"<p>Re-download listing content from the connected sales channel into an existing listing. Same action as the PIM “Download content from marketplace” button.</p>\n<p>Optional <code>marketplace_fetch_identifier</code> (alias <code>fetch_identifier</code>) overrides the product EAN / Amazon ASIN. Success returns the listing with <code>assets</code> and <code>attributes</code> included.</p>\n<p>Failures use <code>error_code: channel_fetch_failed</code> (offer missing, bad credentials, identifier mismatch) or <code>channel_fetch_unsupported</code>. Native listings return <code>native_listing_cannot_fetch</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","listings","fetch"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"432d3ea3-7eee-4e09-a3bb-9b6c9a2dd656","name":"Fetched","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001,\n  \"marketplace_fetch_identifier\": \"8719326583631\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/fetch"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"fetched\": true,\n  \"listing_id\": 90001,\n  \"channel\": \"bolcom\",\n  \"marketplace_fetch_identifier\": \"8719326583631\",\n  \"listing\": {\n    \"id\": 90001,\n    \"product_id\": 453386,\n    \"ean\": \"8719326583631\",\n    \"sku\": \"1001001\",\n    \"marketplace_id\": 5,\n    \"marketplace_name\": \"Bol.com NL\",\n    \"api_id\": 42,\n    \"title\": \"Upwind kitesurf bindingen\",\n    \"description\": \"High-performance kitesurf bindings.\",\n    \"marketplace_category_id\": 18420,\n    \"category\": {\n      \"id\": 18420,\n      \"label\": \"Sport & outdoor → Watersport → Kitesurfen\"\n    },\n    \"marketplace_browse_node_id\": 0,\n    \"marketplace_brand_id\": 0,\n    \"price\": \"129.95\",\n    \"currency\": \"EUR\",\n    \"status\": \"inactive\",\n    \"active\": false,\n    \"content_percentage\": 72,\n    \"listing_score\": 68,\n    \"error_attributes_json\": null,\n    \"assets\": [\n      {\n        \"id\": 501,\n        \"file_url\": \"https://channeldock-assets.s3.eu-central-1.amazonaws.com/453386/main.jpg\",\n        \"file_name\": \"main.jpg\",\n        \"file_type\": \"image/jpeg\",\n        \"marketplace_asset_id\": 12,\n        \"main_asset_id\": 0\n      }\n    ],\n    \"attributes\": [\n      {\n        \"id\": 55,\n        \"title\": \"Kleur\",\n        \"marketplace_attribute_id\": 881,\n        \"value\": \"Zwart\",\n        \"unit\": \"\",\n        \"type\": \"\"\n      }\n    ]\n  }\n}"},{"id":"9e521b5d-f7c6-4f3e-92c1-eaf827f40d76","name":"Channel fetch failed","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"listing_id\": 90001\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/listings/fetch"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"error_code\": \"channel_fetch_failed\",\n  \"message\": \"Offer not found\",\n  \"listing_id\": 90001,\n  \"channel\": \"bolcom\",\n  \"hint\": \"Check the sales-channel connection and identifier (EAN / ASIN), then retry POST /seller/listings/fetch.\"\n}"}],"_postman_id":"2016575e-cf21-4cac-86c7-a7d6c9fd3ac9"}],"id":"d64761a4-536b-4c0b-84f4-3b6f1a0f4b39","description":"<p>Create and manage PIM marketplace listings (<code>marketplace_products</code>). Requires <code>pim_module</code> on the seller account. Without it, every endpoint in this folder returns HTTP 403 with <code>error_code: pim_module_disabled</code>.</p>\n<p>The ChannelDock source listing uses <code>marketplace_id = 0</code> and <code>api_id = 0</code>. Channel listings need a connected sales <code>api_id</code> from <code>GET /seller/pim/marketplaces</code>.</p>\n<p>Typical flow:</p>\n<ol>\n<li><code>POST /seller/inventory</code> — create the master product (EAN + title)</li>\n<li><code>GET /seller/channels</code> (optional) — confirm the shop is connected, then <code>GET /seller/pim/marketplaces</code> — pick <code>marketplace_id</code> + <code>api_id</code></li>\n<li><code>POST /seller/listings</code> — create the channel listing. Set <code>fetch_from_channel: true</code> to download title, description, assets, attributes, and category from the live sales channel (same as the PIM “fetch marketplace data” checkbox). Optional <code>marketplace_fetch_identifier</code> overrides the EAN, or an Amazon ASIN.</li>\n<li>If fetch did not fill everything: <code>GET /seller/pim/categories</code> → <code>PUT /seller/listings</code> with a leaf category (and browse node / brand if required)</li>\n<li><code>GET /seller/pim/attribute-schema</code> → <code>POST</code> / <code>PUT /seller/listings/attributes</code></li>\n<li><code>POST /seller/listings/assets</code> + <code>PUT</code> asset types from <code>GET /seller/pim/asset-types</code></li>\n<li><code>POST /seller/listings/validate</code> → fix <code>errors</code> → <code>POST /seller/listings/publish</code> with <code>{\"active\": true}</code></li>\n</ol>\n<p>Error bodies always include <code>response: \"error\"</code>, a machine-readable <code>error_code</code>, a <code>message</code>, and usually a <code>hint</code> plus the relevant ids. Validation failures use <code>error_code: \"validation_failed\"</code> and an <code>errors</code> string array (never HTML). Listing create does not run AI title/description optimization.</p>\n<p>Grant API key permissions for each endpoint in Settings → API (Connected channels, PIM Listings, assets, attributes, validate, publish, fetch, PIM lookups, and PIM Variant Groups).</p>\n","_postman_id":"d64761a4-536b-4c0b-84f4-3b6f1a0f4b39"},{"name":"PIM variant groups","item":[{"name":"Get variant groups","id":"77690674-82cc-4da7-8633-bf3c314498e2","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/variant-groups?page=1","description":"<p>List variant groups (50 per page). <code>page</code> defaults to 1.</p>\n<p>Optional: <code>variant_group_id</code>; or <code>product_id</code> / <code>ean</code> / <code>sku</code> to load the group for that product; <code>search</code> matches family name.</p>\n","urlObject":{"path":["portal","api","v2","seller","variant-groups"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>optional (default 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"variant_group_id","value":"44"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"product_id","value":"25852"},{"disabled":true,"description":{"content":"<p>optional (family name)</p>\n","type":"text/plain"},"key":"search","value":"Wetsuit"}],"variable":[]}},"response":[{"id":"bcf1424a-30f0-457f-a870-b4485775b090","name":"Get variant groups","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/variant-groups?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","variant-groups"],"query":[{"key":"page","value":"1","description":"optional (default 1)"},{"key":"variant_group_id","value":"44","description":"optional","disabled":true},{"key":"product_id","value":"25852","description":"optional","disabled":true},{"key":"search","value":"Wetsuit","description":"optional (family name)","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"variant_groups_count\": 1,\n  \"page\": 1,\n  \"variant_groups\": [\n    {\n      \"id\": 44,\n      \"variant_group_id\": 44,\n      \"name\": \"Wetsuit_Predator_5/4\",\n      \"parent_product_id\": 25852,\n      \"parent_product\": {\n        \"id\": 25852,\n        \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n        \"ean\": \"8719326583648\",\n        \"sku\": \"UPW-WET-M\",\n        \"img_url\": \"https://cdn.upwind.example.com/products/wetsuit-predator-5-4-m.jpg\"\n      },\n      \"member_count\": 2,\n      \"members\": [\n        {\n          \"id\": 25852,\n          \"product_id\": 25852,\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n          \"ean\": \"8719326583648\",\n          \"sku\": \"UPW-WET-M\",\n          \"img_url\": \"https://cdn.upwind.example.com/products/wetsuit-predator-5-4-m.jpg\",\n          \"is_parent\": true\n        },\n        {\n          \"id\": 25853,\n          \"product_id\": 25853,\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size L\",\n          \"ean\": \"8719326583655\",\n          \"sku\": \"UPW-WET-L\",\n          \"img_url\": \"https://cdn.upwind.example.com/products/wetsuit-predator-5-4-l.jpg\",\n          \"is_parent\": false\n        }\n      ],\n      \"variant_attributes\": [\n        { \"id\": 8, \"title\": \"Size\" }\n      ],\n      \"portal_url\": \"/portal/public/pim/content?getProduct=25852\"\n    }\n  ]\n}"}],"_postman_id":"77690674-82cc-4da7-8633-bf3c314498e2"},{"name":"Create variant group","id":"876279c8-8450-40ab-a8d5-341cf89bc25b","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Wetsuit Predator 5/4\",\n  \"product_ids\": [25852, 25853],\n  \"parent_product_id\": 25852,\n  \"variant_attribute_ids\": [8]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups","description":"<p>Create a variant group.</p>\n<p>Required: <code>name</code> (aliases <code>variant_group_name</code>, <code>product_family_reference</code>) and at least two members via <code>product_ids</code> (aliases <code>variant_ids</code>, <code>members</code>) or <code>eans</code> / <code>skus</code>.</p>\n<p>Optional: <code>parent_product_id</code> / <code>parent_ean</code> / <code>parent_sku</code> (defaults to the first member). Optional <code>variant_attribute_ids</code> from <code>GET /seller/variant-groups/attributes</code>.</p>\n","urlObject":{"path":["portal","api","v2","seller","variant-groups"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"98eeb538-0822-43d8-96e2-06bc296e7d91","name":"Create variant group","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Wetsuit Predator 5/4\",\n  \"product_ids\": [25852, 25853],\n  \"parent_product_id\": 25852,\n  \"variant_attribute_ids\": [8]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"variant_group_id\": 44,\n  \"variant_group\": {\n    \"id\": 44,\n    \"variant_group_id\": 44,\n    \"name\": \"Wetsuit_Predator_5/4\",\n    \"parent_product_id\": 25852,\n    \"member_count\": 2,\n    \"members\": [\n      { \"product_id\": 25852, \"sku\": \"UPW-WET-M\", \"is_parent\": true },\n      { \"product_id\": 25853, \"sku\": \"UPW-WET-L\", \"is_parent\": false }\n    ],\n    \"variant_attributes\": [{ \"id\": 8, \"title\": \"Size\" }],\n    \"portal_url\": \"/portal/public/pim/content?getProduct=25852\"\n  },\n  \"portal_url\": \"/portal/public/pim/content?getProduct=25852\"\n}"}],"_postman_id":"876279c8-8450-40ab-a8d5-341cf89bc25b"},{"name":"Update variant group","id":"dac90cd6-8a73-44d9-8a9f-dc7fe09d95de","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"variant_group_id\": 44,\n  \"name\": \"Wetsuit Predator 5/4\",\n  \"product_ids\": [25852, 25853, 25854],\n  \"parent_product_id\": 25852,\n  \"variant_attribute_ids\": [8]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups","description":"<p>Replace members, name, parent, and variant attributes of a group.</p>\n<p>Required: <code>variant_group_id</code> (alias <code>id</code>). Sending an empty <code>product_ids</code> list deletes the group.</p>\n","urlObject":{"path":["portal","api","v2","seller","variant-groups"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7329d50d-d09f-4c56-b61f-9c811e4c72bf","name":"Update variant group","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"variant_group_id\": 44,\n  \"name\": \"Wetsuit Predator 5/4\",\n  \"product_ids\": [25852, 25853, 25854],\n  \"parent_product_id\": 25852,\n  \"variant_attribute_ids\": [8]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"variant_group_id\": 44,\n  \"variant_group\": {\n    \"id\": 44,\n    \"name\": \"Wetsuit_Predator_5/4\",\n    \"parent_product_id\": 25852,\n    \"member_count\": 3\n  },\n  \"portal_url\": \"/portal/public/pim/content?getProduct=25852\"\n}"}],"_postman_id":"dac90cd6-8a73-44d9-8a9f-dc7fe09d95de"},{"name":"Delete variant group","id":"a77f36d3-7617-4438-bf8f-8351f4390b48","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"variant_group_id\": 44\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups","description":"<p>Delete a variant group and unlink all members.</p>\n<p>Required: <code>variant_group_id</code>, or a <code>product_id</code> / <code>ean</code> / <code>sku</code> that belongs to the group.</p>\n","urlObject":{"path":["portal","api","v2","seller","variant-groups"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7e382e24-0172-437b-ad83-dfdc17b24eb2","name":"Delete variant group","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"variant_group_id\": 44\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"deleted\": true,\n  \"variant_group_id\": 44,\n  \"name\": \"Wetsuit_Predator_5/4\"\n}"}],"_postman_id":"a77f36d3-7617-4438-bf8f-8351f4390b48"},{"name":"Unlink product from variant group","id":"5cab8c0b-5d12-493b-a33c-4afa63050449","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 25853\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups/unlink","description":"<p>Remove one catalog product from its variant group.</p>\n<p>Identify the product with <code>product_id</code>, <code>ean</code>, or <code>sku</code>. HTTP <strong>POST</strong> or <strong>DELETE</strong> on <code>/seller/variant-groups/unlink</code>.</p>\n<p>If fewer than two products would remain, the group is deleted and the last member is unlinked too.</p>\n","urlObject":{"path":["portal","api","v2","seller","variant-groups","unlink"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"8af157d0-fc62-4332-b600-2c280d0ab7f0","name":"Unlink product from variant group","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 25853\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/variant-groups/unlink"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"unlinked\": true,\n  \"group_deleted\": false,\n  \"product_id\": 25853,\n  \"variant_group_id\": 44,\n  \"removed_group_name\": \"Wetsuit_Predator_5/4\"\n}"}],"_postman_id":"5cab8c0b-5d12-493b-a33c-4afa63050449"},{"name":"Get variant attributes","id":"e30dd30c-5436-45d6-a30d-f295757ab27b","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/variant-groups/attributes?q=size","description":"<p>Search native PIM attributes (<code>MainAttributes</code>) to use as variant axes (<code>colour</code>, <code>size</code>, …).</p>\n<p>Optional <code>q</code> or <code>search</code>. Returns up to 25 rows. Pass the ids as <code>variant_attribute_ids</code> on create/update group.</p>\n","urlObject":{"path":["portal","api","v2","seller","variant-groups","attributes"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>optional (title contains; alias search)</p>\n","type":"text/plain"},"key":"q","value":"size"}],"variable":[]}},"response":[{"id":"868ffe8d-9bdc-4d7d-880d-a9e241c857ba","name":"Get variant attributes","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/variant-groups/attributes?q=size","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","variant-groups","attributes"],"query":[{"key":"q","value":"size","description":"optional (title contains; alias search)"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"count\": 1,\n  \"variant_attributes\": [\n    { \"id\": 8, \"title\": \"Size\" }\n  ],\n  \"hint\": \"Pass these ids as variant_attribute_ids on POST/PUT /seller/variant-groups (axes such as colour or size).\"\n}"}],"_postman_id":"e30dd30c-5436-45d6-a30d-f295757ab27b"}],"id":"dc89bfc1-de14-4a61-b82e-9fbe65233863","description":"<p>Group catalog products that are the same family (colour / size SKUs) for PIM content.</p>\n<p>Requires <code>pim_module</code>. Without it these endpoints return HTTP 403 with <code>error_code: pim_module_disabled</code>.</p>\n<p>A group needs a name and at least two catalog products. Spaces in <code>name</code> are stored as underscores. Lookup variant axes with <code>GET /seller/variant-groups/attributes</code>.</p>\n<p>Enable <strong>PIM Variant Groups</strong>, <strong>PIM Variant Unlink</strong>, and <strong>PIM Variant Attributes</strong> on your API key.</p>\n","_postman_id":"dc89bfc1-de14-4a61-b82e-9fbe65233863"},{"name":"Orders","item":[{"name":"Get Orders","id":"022109df-1ee0-4733-aa11-a743cc098557","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/orders?page=1","description":"<h3 id=\"get-seller-orders\"><strong>Get Seller Orders</strong></h3>\n<p>Retrieve paginated orders for the authenticated seller, including order lines, bundle child items, product tags, optional raw channel payload, and optional traceability data.  </p>\n<p>This endpoint only returns orders belonging to the current seller (seller_id is taken from the authenticated context).</p>\n<h3 id=\"pagination\"><strong>Pagination</strong></h3>\n<ul>\n<li><p><strong>page</strong> (required, integer)</p>\n<p>  1-based page number.</p>\n<p>  If omitted, the API responds with 400 and \"No page specified.\".</p>\n</li>\n<li><p><strong>page_size</strong> (optional, integer)</p>\n<p>  Number of orders per page.</p>\n<p>  Must be between 1 and 100.</p>\n<p>  If omitted, the API uses its internal default page size.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"filtering\"><strong>Filtering</strong></h3>\n<p>All filters are optional unless stated otherwise.  </p>\n<h4 id=\"channel--integration-filters\"><strong>Channel / integration filters</strong></h4>\n<ul>\n<li><p><strong>channel_id</strong> (optional, string; supports comma-separated list)</p>\n<p>  Example: channel_id=1,2,5</p>\n<ul>\n<li><p>Values are sanitized, split on commas and cast to integers.</p>\n</li>\n<li><p>Maximum of <strong>50</strong> IDs; more will return 400 with \"Maximum 50 channel IDs allowed\".</p>\n</li>\n<li><p>Filters orders where channel_id is in the provided list.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>api_id</strong> (optional, string; supports comma-separated list)</p>\n<p>  Example: api_id=1001,1002,2000</p>\n<ul>\n<li><p>Values are sanitized, split on commas and cast to integers.</p>\n</li>\n<li><p>Empty values are removed; 0 is allowed.</p>\n</li>\n<li><p>Maximum of <strong>50</strong> IDs; more will return 400 with \"Maximum 50 API IDs allowed\".</p>\n</li>\n<li><p>Filters orders where api_id is in the provided list.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"order-identity\"><strong>Order identity</strong></h4>\n<ul>\n<li><p><strong>id</strong> (optional, integer)</p>\n<p>  ChannelDock Order ID.</p>\n</li>\n<li><p><strong>order_id</strong> (optional, string)</p>\n<p>  Remote channel order ID.</p>\n</li>\n<li><p><strong>seq_order_id</strong> (optional, string / int)</p>\n<p>  Sequential order ID within ChannelDock.</p>\n</li>\n<li><p><strong>seq_order_id_is_not</strong> (optional, string / int)</p>\n<p>  Excludes orders with this seq_order_id.</p>\n</li>\n<li><p><strong>price_total</strong> (optional, numeric/string)</p>\n<p>  Exact match on price_total.</p>\n</li>\n</ul>\n<h4 id=\"customer--shipping-address\"><strong>Customer &amp; shipping address</strong></h4>\n<p>Each of these filters does an exact match:</p>\n<ul>\n<li><p><strong>shipping_first_name</strong></p>\n</li>\n<li><p><strong>shipping_last_name</strong></p>\n</li>\n<li><p><strong>shipping_company</strong></p>\n</li>\n<li><p><strong>shipping_street</strong></p>\n</li>\n<li><p><strong>shipping_house_number</strong></p>\n</li>\n<li><p><strong>shipping_house_number_ext</strong></p>\n</li>\n<li><p><strong>shipping_region</strong></p>\n</li>\n<li><p><strong>shipping_country_code</strong></p>\n</li>\n<li><p><strong>shipping_city</strong></p>\n</li>\n<li><p><strong>shipping_email</strong></p>\n</li>\n</ul>\n<h4 id=\"order-date-filters\"><strong>Order date filters</strong></h4>\n<ul>\n<li><p><strong>order_date</strong> (optional, date Y-m-d)</p>\n<p>  Exact date match on order_date (date only).</p>\n</li>\n<li><p><strong>start_date</strong> (optional, date or datetime)</p>\n<p>  Filters order_date &gt;= start_date.</p>\n</li>\n<li><p><strong>end_date</strong> (optional, date or datetime)</p>\n<p>  Filters order_date &lt;= end_date.</p>\n<p>  If passed as date only (Y-m-d), it is treated as Y-m-d 23:59:59.</p>\n</li>\n</ul>\n<h4 id=\"ship-on-date-filters\"><strong>Ship-on date filters</strong></h4>\n<ul>\n<li><p><strong>ship_on_date</strong> (optional, date or datetime)</p>\n<p>  Exact match on ship_on_date.</p>\n</li>\n<li><p><strong>ship_on_date_from</strong> (optional, date or datetime)</p>\n<p>  Filters ship_on_date &gt;= ship_on_date_from.</p>\n<p>  If passed as date only (Y-m-d), it is treated as Y-m-d 00:00:00.</p>\n</li>\n<li><p><strong>ship_on_date_to</strong> (optional, date or datetime)</p>\n<p>  Filters ship_on_date &lt;= ship_on_date_to.</p>\n<p>  If passed as date only (Y-m-d), it is treated as Y-m-d 23:59:59.</p>\n</li>\n</ul>\n<h4 id=\"filtering-by-updated_at\"><strong>Filtering by updated_at</strong></h4>\n<p>You can filter orders by their last update timestamp:</p>\n<ul>\n<li><p><strong>updated_at</strong> (optional, date Y-m-d)</p>\n<p>  Exact date match on updated_at (date only).</p>\n</li>\n<li><p><strong>updated_at_from</strong> (optional, date or datetime)</p>\n<p>  Filters updated_at &gt;= updated_at_from.</p>\n<p>  If passed as date only (Y-m-d), it is treated as Y-m-d 00:00:00.</p>\n</li>\n<li><p><strong>updated_at_to</strong> (optional, date or datetime)</p>\n<p>  Filters updated_at &lt;= updated_at_to.</p>\n<p>  If passed as date only (Y-m-d), it is treated as Y-m-d 23:59:59.</p>\n</li>\n</ul>\n<h4 id=\"filtering-by-sync_date\"><strong>Filtering by sync_date</strong></h4>\n<p>You can filter orders by their sync_date using:</p>\n<ul>\n<li><p><strong>sync_date_from</strong> (optional, date or datetime)</p>\n<p>  Returns orders with sync_date &gt;= sync_date_from.</p>\n<p>  Accepts 'Y-m-d' (treated as 00:00:00) or 'Y-m-d H:i:s'.</p>\n</li>\n<li><p><strong>sync_date_to</strong> (optional, date or datetime)</p>\n<p>  Returns orders with sync_date &lt;= sync_date_to.</p>\n<p>  Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n</li>\n</ul>\n<p>Preferred over updated_at filters for polling since sync_date only changes on order create or explicit sync, not on internal batch reassignments.</p>\n<h4 id=\"order-status\"><strong>Order status</strong></h4>\n<ul>\n<li><p><strong>order_status</strong> (optional, string)</p>\n<ul>\n<li><p>If omitted (and id is not set): the default filter is order_status IN (\"order\",\"backorder\").</p>\n</li>\n<li><p>order_status=ALL: no status filter is applied; all statuses are returned.</p>\n</li>\n<li><p>Any other value: exact match filter on order_status (e.g. shipped, cancelled, …).</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h3 id=\"optional-includes\"><strong>Optional Includes</strong></h3>\n<ul>\n<li><p><strong>include_raw_order_data</strong> (optional, \"true\"/\"false\")</p>\n<p>  When \"true\", includes raw_order_data per order with the original raw payload from the sales channel (if available).</p>\n</li>\n<li><p><strong>include_serial_numbers</strong> (optional, \"true\"/\"false\")</p>\n<p>  When \"true\", enables traceability data on order lines (serial numbers, batches, expiration dates).</p>\n<p>  (Kept for backward compatibility, internally treated as enabling traceability).</p>\n</li>\n<li><p><strong>include_traceability_data</strong> (optional, \"true\"/\"false\")</p>\n<p>  When \"true\", also enables traceability data.</p>\n<p>  In both cases, each order line may contain serial_numbers and traceability_data.</p>\n</li>\n<li><p><strong>shipping_address_accurate</strong> (optional, 0, 1, or ALL)</p>\n</li>\n<li><p>If omitted: only orders where shipping_address_accurate = 1 are returned.</p>\n</li>\n<li><p>shipping_address_accurate=ALL: no filter is applied (both accurate and inaccurate).</p>\n</li>\n<li><p>Any other value: cast to boolean and filter accordingly.</p>\n</li>\n</ul>\n<p>Each order in the response includes <strong>shipping_address_accurate</strong> (0 = address needs review, 1 = OK).</p>\n<hr />\n<h3 id=\"sorting\"><strong>Sorting</strong></h3>\n<ul>\n<li><p><strong>sort_attr</strong> (optional, string)</p>\n<p>  Allowed values:</p>\n<p>  id, order_id, order_date, ship_on_date, order_status, sync_date, updated_at.</p>\n<p>  Any other value: falls back to id.</p>\n</li>\n<li><p><strong>sort_dir</strong> (optional, string)</p>\n<p>  Sort direction: asc or desc (case-insensitive).</p>\n<p>  Defaults to DESC if not explicitly asc.</p>\n</li>\n</ul>\n<p>When both sort_attr and sort_dir are present, results are sorted accordingly.</p>\n<p>For sort_attr=order_id, an optimized index (order_id_x_seller_id) is used internally.</p>\n<hr />\n<h3 id=\"shipping-label-addresses\"><strong>Shipping Label Addresses</strong></h3>\n<ul>\n<li><p><strong>include_shipping_label_addresses</strong> (optional, string — comma-separated carrier slugs)</p>\n<p>  Example: <code>include_shipping_label_addresses=postnl,sendcloud,generic</code></p>\n<p>  When provided, each order in the response will include a <code>shipping_label_addresses</code> object keyed by carrier slug. Each entry contains the sanitized address as stored in the shipping label for that carrier.</p>\n<p>  <strong>Supported slugs:</strong> generic, bolcom, myparcel, dpdnl, dhlnl, dhlde, internetmarke, ampere, amperev2, postnl, gls, bpost, sendcloud, wuunder, shipcloud, shipstation, sendy, sendwise, parcelpro, qls, shipit, gls_shipit, ups, hermes, monta, easyship, amazon_easyship, landmark, trunkrs, asendia, fedex</p>\n<p>  Unsupported slugs are silently ignored.</p>\n<p>  <strong>PII / privacy:</strong> If <code>api_pii_enabled = 0</code> for the seller, the <code>shipping_label_addresses</code> field is redacted (not returned).</p>\n<p>  <strong>Backward compatibility:</strong> The existing flat <code>shipping_*</code> fields on the order are unchanged.</p>\n<p>  <strong>Response field structure</strong> (<code>shipping_label_addresses</code>):</p>\n<p>  Each key is a carrier slug. Each value is an object with:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>first_name</td>\n<td>string|null</td>\n<td>First name</td>\n</tr>\n<tr>\n<td>last_name</td>\n<td>string|null</td>\n<td>Last name</td>\n</tr>\n<tr>\n<td>full_name</td>\n<td>string|null</td>\n<td>Full name (combined)</td>\n</tr>\n<tr>\n<td>street</td>\n<td>string|null</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>house_number</td>\n<td>string|null</td>\n<td>House number</td>\n</tr>\n<tr>\n<td>house_number_ext</td>\n<td>string|null</td>\n<td>House number extension</td>\n</tr>\n<tr>\n<td>house_number_full</td>\n<td>string|null</td>\n<td>Combined house number + extension</td>\n</tr>\n<tr>\n<td>address_line1</td>\n<td>string|null</td>\n<td>Address line 1 (street + house number)</td>\n</tr>\n<tr>\n<td>address_line2</td>\n<td>string|null</td>\n<td>Address line 2 (extension / extra info)</td>\n</tr>\n<tr>\n<td>postal_code</td>\n<td>string|null</td>\n<td>Postal / ZIP code</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string|null</td>\n<td>City</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string|null</td>\n<td>Region / state</td>\n</tr>\n<tr>\n<td>country_code</td>\n<td>string|null</td>\n<td>ISO 3166-1 alpha-2 country code</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string|null</td>\n<td>Email address</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string|null</td>\n<td>Phone number</td>\n</tr>\n<tr>\n<td>is_complete</td>\n<td>boolean</td>\n<td>Whether all required address fields are present</td>\n</tr>\n<tr>\n<td>warnings</td>\n<td>array</td>\n<td>List of warning strings for missing/invalid fields</td>\n</tr>\n</tbody>\n</table>\n</div><p>  <strong>Example response snippet:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"shipping_label_addresses\": {\n    \"postnl\": {\n      \"first_name\": \"Jan\",\n      \"last_name\": \"de Vries\",\n      \"full_name\": \"Jan de Vries\",\n      \"street\": \"Hoofdstraat\",\n      \"house_number\": \"12\",\n      \"house_number_ext\": \"A\",\n      \"house_number_full\": \"12A\",\n      \"address_line1\": \"Hoofdstraat 12\",\n      \"address_line2\": \"A\",\n      \"postal_code\": \"1234AB\",\n      \"city\": \"Amsterdam\",\n      \"region\": null,\n      \"country_code\": \"NL\",\n      \"email\": \"jan@example.com\",\n      \"phone\": \"+31612345678\",\n      \"is_complete\": true,\n      \"warnings\": []\n    },\n    \"sendcloud\": {\n      \"first_name\": \"Jan\",\n      \"last_name\": \"de Vries\",\n      \"full_name\": \"Jan de Vries\",\n      \"street\": \"Hoofdstraat\",\n      \"house_number\": \"12\",\n      \"house_number_ext\": \"A\",\n      \"house_number_full\": \"12A\",\n      \"address_line1\": \"Hoofdstraat 12\",\n      \"address_line2\": \"A\",\n      \"postal_code\": \"1234AB\",\n      \"city\": \"Amsterdam\",\n      \"region\": null,\n      \"country_code\": \"NL\",\n      \"email\": \"jan@example.com\",\n      \"phone\": \"+31612345678\",\n      \"is_complete\": true,\n      \"warnings\": []\n    }\n  }\n}\n</code></pre>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","orders"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>optional. Default when omitted: order, backorder. Use ALL for no filter. Valid: order, shipment, return, pending, on-hold, backorder, cancelled, refunded, failed, trash</p>\n","type":"text/plain"},"key":"order_status","value":"ALL"},{"disabled":true,"description":{"content":"<p>optional: remote order id of the webshop / marketplace</p>\n","type":"text/plain"},"key":"order_id","value":"1747"},{"disabled":true,"description":{"content":"<p>optional: country code of order</p>\n","type":"text/plain"},"key":"shipping_country_code","value":"NL"},{"disabled":true,"description":{"content":"<p>optional ( id | default: order_date | sync_date | updated_at )</p>\n","type":"text/plain"},"key":"sort_attr","value":"sync_date"},{"disabled":true,"description":{"content":"<p>optional ( DESC | default: ASC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional: filter on address validation ( default: 1 | 0  | 'ALL')</p>\n","type":"text/plain"},"key":"shipping_address_accurate","value":"0"},{"disabled":true,"description":{"content":"<p>optional: filter orders with order_date &gt;= this value. Accepts 'Y-m-d' or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"start_date","value":"2024-06-09"},{"disabled":true,"description":{"content":"<p>optional: filter orders with order_date &lt;= this value. Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"end_date","value":"2023-11-19"},{"description":{"content":"<p>required: 1-based page number.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional: number of orders per page. Must be between 1 and 100.</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional: when true, includes raw_order_data per order with the original raw payload from the sales channel.</p>\n","type":"text/plain"},"key":"include_raw_order_data","value":"true"},{"disabled":true,"description":{"content":"<p>optional: filter orders with ship_on_date &gt;= this value. Accepts 'Y-m-d' (treated as 00:00:00) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"ship_on_date_from","value":"2024-06-09"},{"disabled":true,"description":{"content":"<p>optional: filter orders with ship_on_date &lt;= this value. Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"ship_on_date_to","value":"2024-12-09"},{"disabled":true,"description":{"content":"<p>optional: when true, includes traceability_data (serial numbers, batch IDs, expiration dates) for each order line.</p>\n","type":"text/plain"},"key":"include_traceability_data","value":"true"},{"disabled":true,"description":{"content":"<p>optional ( int )</p>\n","type":"text/plain"},"key":"batch_id","value":"1"},{"disabled":true,"description":{"content":"<p>optional: filter orders with sync_date &gt;= this value. Accepts 'Y-m-d' (e.g. 2024-06-09, treated as 00:00:00) or 'Y-m-d H:i:s' (e.g. 2024-06-09 12:30:00). Preferred over updated_at_from for polling since sync_date only changes on order create or explicit sync, not on internal batch reassignments.</p>\n","type":"text/plain"},"key":"sync_date_from","value":"2024-06-09"},{"disabled":true,"description":{"content":"<p>optional: filter orders with sync_date &lt;= this value. Accepts 'Y-m-d' (e.g. 2024-06-10, treated as 23:59:59) or 'Y-m-d H:i:s' (e.g. 2024-06-10 12:30:00).</p>\n","type":"text/plain"},"key":"sync_date_to","value":"2024-06-10"},{"disabled":true,"description":{"content":"<p>optional: exact date match on updated_at (Y-m-d).</p>\n","type":"text/plain"},"key":"updated_at","value":"2024-06-09"},{"disabled":true,"description":{"content":"<p>optional: filter orders with updated_at &gt;= this value. Accepts 'Y-m-d' (treated as 00:00:00) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"updated_at_from","value":"2024-06-09"},{"disabled":true,"description":{"content":"<p>optional: filter orders with updated_at &lt;= this value. Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"updated_at_to","value":"2024-06-10"},{"disabled":true,"description":{"content":"<p>optional: comma-separated list of carrier slugs. When provided, each order in the response will include a shipping_label_addresses object keyed by carrier slug. Supported slugs: generic, bolcom, myparcel, dpdnl, dhlnl, dhlde, internetmarke, ampere, amperev2, postnl, gls, bpost, sendcloud, wuunder, shipcloud, shipstation, sendy, sendwise, parcelpro, qls, shipit, gls_shipit, ups, hermes, monta, easyship, amazon_easyship, landmark, trunkrs, asendia, fedex. Unsupported slugs are silently ignored. Requires api_pii_enabled=1; if PII is disabled the field is redacted.</p>\n","type":"text/plain"},"key":"include_shipping_label_addresses","value":"postnl,sendcloud,generic"}],"variable":[]}},"response":[{"id":"e52d1bf5-d1bb-4847-ae0d-4ad899f86978","name":"Get Orders","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/orders?page=1&order_id=19246&sort_attr=order_date&sort_dir=DESC&page_size=50","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","orders"],"query":[{"key":"page","value":"1"},{"key":"id","value":"34779","description":"optional","disabled":true},{"key":"order_status","value":"order","description":"optional. Default when omitted: order, backorder. Use ALL for no filter. Valid: order, shipment, return, pending, on-hold, backorder, cancelled, refunded, failed, trash","disabled":true},{"key":"order_id","value":"19246","description":"optional (remote order id)"},{"key":"shipping_country_code","value":"FR","description":"optional","disabled":true},{"key":"sort_attr","value":"order_date","description":"optional"},{"key":"sort_dir","value":"DESC","description":"optional"},{"key":"page_size","value":"50"},{"key":"include_traceability_data","value":"false","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"orders_count\": 2,\n  \"orders\": [\n    {\n      \"id\": 88210,\n      \"seller_id\": 1,\n      \"api_id\": 0,\n      \"order_id\": \"WC-88210\",\n      \"seq_order_id\": \"UPW-2026-00415\",\n      \"price_currency\": \"EUR\",\n      \"price_total\": 466.8,\n      \"discount_total\": 0,\n      \"vat_number\": \"\",\n      \"payment_id\": \"pi_3PqAB12FCdEfGhI\",\n      \"channel_name\": \"WooCommerce\",\n      \"channel_id\": 8,\n      \"billing_address1\": \"Duivendrechtsekade 40A\",\n      \"billing_address_supplement\": \"\",\n      \"billing_house_number\": \"40\",\n      \"billing_house_number_ext\": \"A\",\n      \"billing_city\": \"Amsterdam\",\n      \"billing_company\": \"ChannelDock B.V.\",\n      \"billing_country_code\": \"NL\",\n      \"billing_email\": \"lars@upwind.example.com\",\n      \"billing_first_name\": \"Lars\",\n      \"billing_middle_name\": \"van\",\n      \"billing_last_name\": \"Schaick\",\n      \"billing_region\": \"Noord-Holland\",\n      \"billing_street\": \"Duivendrechtsekade\",\n      \"billing_zip_code\": \"1080 AH\",\n      \"shipping_address1\": \"Duivendrechtsekade 40A\",\n      \"shipping_first_name\": \"Lars\",\n      \"shipping_last_name\": \"van Schaick\",\n      \"shipping_company\": \"ChannelDock B.V.\",\n      \"shipping_street\": \"Duivendrechtsekade\",\n      \"shipping_house_number\": \"40\",\n      \"shipping_house_number_ext\": \"A\",\n      \"shipping_zip_code\": \"1080 AH\",\n      \"shipping_region\": \"Noord-Holland\",\n      \"shipping_country_code\": \"NL\",\n      \"shipping_city\": \"Amsterdam\",\n      \"shipping_email\": \"lars@upwind.example.com\",\n      \"shipping_phone_number\": \"+31 6 1234 5678\",\n      \"order_date\": \"2026-06-13 09:24:11\",\n      \"ship_on_date\": \"2026-06-14\",\n      \"total_weight\": 2.4,\n      \"order_status\": \"order\",\n      \"extra_comment\": \"Customer asked for delivery before the weekend.\",\n      \"shipping_address_accurate\": 1,\n      \"is_b2b\": 0,\n      \"po_number\": null,\n      \"pallet_count\": 0,\n      \"order_products\": [\n        {\n          \"id\": 91201,\n          \"api_id\": 0,\n          \"seller_id\": 1,\n          \"order_id\": 88210,\n          \"orderItemId\": \"WC-88210-1\",\n          \"ean\": \"8719326583631\",\n          \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"price\": 299.95,\n          \"quantity\": 1,\n          \"delivery_period\": null,\n          \"reference_code\": null,\n          \"is_shipped\": 0,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": null,\n          \"fulfillment_status\": \"pending\",\n          \"shipping_costs\": 6.95,\n          \"product\": {\n            \"id\": 25851,\n            \"ean\": \"8719326583631\",\n            \"sku\": \"UPW-BAR-52\",\n            \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n            \"child_from_bundle\": false,\n            \"tags\": [\n              \"kitesurf\",\n              \"control-bar\"\n            ],\n            \"country_of_origin\": \"CN\",\n            \"product_classification\": \"9506290000\"\n          }\n        },\n        {\n          \"id\": 91202,\n          \"api_id\": 0,\n          \"seller_id\": 1,\n          \"order_id\": 88210,\n          \"orderItemId\": \"WC-88210-2\",\n          \"ean\": \"8719326583662\",\n          \"title\": \"Carbon Fin Set G10 (set of 4)\",\n          \"price\": 79.95,\n          \"quantity\": 2,\n          \"delivery_period\": null,\n          \"reference_code\": null,\n          \"is_shipped\": 0,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": null,\n          \"fulfillment_status\": \"pending\",\n          \"shipping_costs\": 0,\n          \"product\": {\n            \"id\": 25854,\n            \"ean\": \"8719326583662\",\n            \"sku\": \"UPW-FIN-G10\",\n            \"title\": \"Carbon Fin Set G10 (set of 4)\",\n            \"child_from_bundle\": false,\n            \"tags\": [\n              \"accessories\",\n              \"fins\"\n            ],\n            \"country_of_origin\": \"DE\",\n            \"product_classification\": \"9506290000\"\n          }\n        }\n      ]\n    },\n    {\n      \"id\": 88211,\n      \"seller_id\": 1,\n      \"api_id\": 2450,\n      \"order_id\": \"BOL-19877\",\n      \"seq_order_id\": \"UPW-2026-00416\",\n      \"price_currency\": \"EUR\",\n      \"price_total\": 194.9,\n      \"discount_total\": 0,\n      \"channel_name\": \"Bol.com\",\n      \"channel_id\": 1,\n      \"shipping_first_name\": \"Pierre\",\n      \"shipping_last_name\": \"Dubois\",\n      \"shipping_company\": \"\",\n      \"shipping_street\": \"Rue de la République\",\n      \"shipping_house_number\": \"84\",\n      \"shipping_house_number_ext\": \"\",\n      \"shipping_zip_code\": \"75011\",\n      \"shipping_region\": \"Île-de-France\",\n      \"shipping_country_code\": \"FR\",\n      \"shipping_city\": \"Paris\",\n      \"shipping_email\": \"pierre.dubois@example.fr\",\n      \"shipping_phone_number\": \"+33 1 42 99 88 77\",\n      \"billing_first_name\": \"Pierre\",\n      \"billing_last_name\": \"Dubois\",\n      \"billing_country_code\": \"FR\",\n      \"billing_city\": \"Paris\",\n      \"billing_zip_code\": \"75011\",\n      \"billing_street\": \"Rue de la République\",\n      \"billing_house_number\": \"84\",\n      \"billing_email\": \"pierre.dubois@example.fr\",\n      \"order_date\": \"2026-06-11 16:48:02\",\n      \"ship_on_date\": \"2026-06-12\",\n      \"total_weight\": 1.4,\n      \"order_status\": \"shipment\",\n      \"extra_comment\": \"\",\n      \"shipping_address_accurate\": 1,\n      \"is_b2b\": 0,\n      \"po_number\": null,\n      \"pallet_count\": 0,\n      \"order_products\": [\n        {\n          \"id\": 91215,\n          \"api_id\": 2450,\n          \"seller_id\": 1,\n          \"order_id\": 88211,\n          \"orderItemId\": \"BOL-88211-1\",\n          \"ean\": \"8719326583648\",\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n          \"price\": 189.95,\n          \"quantity\": 1,\n          \"delivery_period\": \"2026-06-16 18:00:00\",\n          \"reference_code\": null,\n          \"is_shipped\": 1,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": 7701,\n          \"fulfillment_status\": \"shipped\",\n          \"shipping_costs\": 4.95,\n          \"product\": {\n            \"id\": 25852,\n            \"ean\": \"8719326583648\",\n            \"sku\": \"UPW-WET-M\",\n            \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n            \"child_from_bundle\": false,\n            \"tags\": [\n              \"wetsuit\",\n              \"neoprene\"\n            ],\n            \"country_of_origin\": \"TH\",\n            \"product_classification\": \"6110309100\"\n          }\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"022109df-1ee0-4733-aa11-a743cc098557"},{"name":"Create manual order","id":"4ba44ad1-ad13-4f64-b3fc-3f152837e925","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": \"B-32333\",\n    \"seq_order_id\": \"CD-ORDER-2024-001\",\n    \"order_status\": \"order\",\n    \"order_date\": \"2024-01-15 10:30:00\",\n    \"ship_on_date\": \"2024-01-16 09:00:00\",\n    \"delivery_date\": \"2024-01-17\",\n    \"extra_comment\": \"A manual order created by ChannelDock API.\",\n    \n    \"price_total\": 125.50,\n    \"price_currency\": \"EUR\",\n    \n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Smith\",\n    \"shipping_company\": \"ChannelDock BV\",\n    \"shipping_address1\": \"Duivendrechtsekade 40A\",\n    \"shipping_address2\": \"2nd floor\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_region\": \"Noord-Holland\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_phone_number\": \"+31612345678\",\n    \"shipping_email\": \"demo_customer@channeldock.com\",\n    \"shipping_service\": \"standard\",\n\n    \"billing_first_name\": \"Nicky\",\n    \"billing_last_name\": \"Smith\", \n    \"billing_company\": \"ChannelDock BV\",\n    \"billing_address1\": \"Duivendrechtsekade 40A\",\n    \"billing_address2\": \"2nd floor\",\n    \"billing_street\": \"Duivendrechtsekade\",\n    \"billing_house_number\": \"40\",\n    \"billing_house_number_ext\": \"A\",\n    \"billing_zip_code\": \"1080AH\",\n    \"billing_city\": \"Amsterdam\",\n    \"billing_region\": \"Noord-Holland\",\n    \"billing_country_code\": \"NL\",\n    \"billing_email\": \"demo_customer@channeldock.com\",\n    \n    \"order_products\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"quantity\": 10,\n            \"price\": 75.00,\n            \"order_item_id\": 1\n        },\n        {\n            \"ean\": \"8719326583648\",\n            \"quantity\": 5\n        }\n    ]\n}\n\n","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders","description":"<p>This POST request can be used to create (manual) orders in ChannelDock. These orders have the same characteristics as orders which are created from the ChannelDock UI ('New order' page). Orders created via this endpoint cannot be linked to an existing sales connection, that's why we call them 'manual orders'.</p>\n<p>Creates a new order for the authenticated seller. The order is automatically associated with the seller account based on the authentication token.</p>\n<h3 id=\"required-fields\">Required Fields</h3>\n<ul>\n<li><p>order_products (array) - List of products in the order. Each product must contain:</p>\n</li>\n<li><p>ean (string) - Product EAN code</p>\n</li>\n<li><p>quantity (integer) - Quantity of the product (minimum 1)</p>\n</li>\n</ul>\n<h3 id=\"optional-fields\">Optional Fields</h3>\n<h4 id=\"order-identification\">Order Identification</h4>\n<ul>\n<li><p>order_id (string/integer) - External order identifier. If not provided or set to 0, the ChannelDock order ID will be used as the order_id.</p>\n</li>\n<li><p>seq_order_id (string, max 255 characters) - Sequential order identifier for tracking. Must be unique per seller.</p>\n</li>\n<li><p>order_status (string) - Order status. Defaults to \"order\". Valid values: \"order\", \"shipment\", \"return\", \"pending\", \"on-hold\", \"backorder\", \"cancelled\", \"refunded\", \"failed\", \"trash\".</p>\n</li>\n</ul>\n<h4 id=\"order-dates\">Order Dates</h4>\n<ul>\n<li><p>order_date (string) - Order creation date/time in format \"Y-m-d H:i:s\". Defaults to current date/time if not provided.</p>\n</li>\n<li><p>ship_on_date (string) - Date when the order should be shipped in format \"Y-m-d H:i:s\" or \"Y-m-d\". Defaults to current date/time if not provided.</p>\n</li>\n<li><p>delivery_date (string) - Expected delivery date in format \"Y-m-d\". If provided, ship_on_date will be automatically set to delivery_date minus 1 day.</p>\n</li>\n</ul>\n<h4 id=\"order-notes\">Order Notes</h4>\n<ul>\n<li>extra_comment (string) - Additional order comments.</li>\n</ul>\n<h4 id=\"pricing\">Pricing</h4>\n<ul>\n<li><p>price_total (float) - Total order price. If not provided, the total will be calculated from the sum of order products (using custom prices if provided, otherwise product prices × quantities).</p>\n</li>\n<li><p>price_currency (string, max 3 characters) - Currency code (e.g., \"EUR\", \"USD\", \"GBP\"). Automatically converted to uppercase and truncated to 3 characters. Defaults to \"EUR\" if not provided.</p>\n</li>\n</ul>\n<h4 id=\"shipping-address\">Shipping Address</h4>\n<ul>\n<li><p>shipping_first_name (string) - Recipient's first name</p>\n</li>\n<li><p>shipping_last_name (string) - Recipient's last name</p>\n</li>\n<li><p>shipping_company (string) - Company name</p>\n</li>\n<li><p>shipping_street (string) - Street name</p>\n</li>\n<li><p>shipping_house_number (string) - House number</p>\n</li>\n<li><p>shipping_house_number_ext (string) - House number extension (e.g., \"A\", \"B\")</p>\n</li>\n<li><p>shipping_address1 (string) - Full address line 1. If not provided, will be constructed from street, house number, and extension.</p>\n</li>\n<li><p>shipping_address2 (string) - Address line 2 (e.g., apartment, floor)</p>\n</li>\n<li><p>shipping_zip_code (string) - Postal/ZIP code</p>\n</li>\n<li><p>shipping_city (string) - City name</p>\n</li>\n<li><p>shipping_region (string) - State/Province/Region</p>\n</li>\n<li><p>shipping_country_code (string) - ISO country code (e.g., \"NL\", \"US\", \"GB\")</p>\n</li>\n<li><p>shipping_email (string) - Shipping email address</p>\n</li>\n<li><p>shipping_phone_number (string) - Contact phone number</p>\n</li>\n<li><p>shipping_service (string|array) - Shipping service identifier. If provided as an array, it will be stored as JSON.</p>\n</li>\n</ul>\n<h4 id=\"billing-address\">Billing Address</h4>\n<p>All billing fields are optional. If not provided, they will default to the corresponding shipping address values.</p>\n<ul>\n<li><p>billing_first_name (string) - Billing contact first name</p>\n</li>\n<li><p>billing_last_name (string) - Billing contact last name</p>\n</li>\n<li><p>billing_middle_name (string) - Billing contact middle name</p>\n</li>\n<li><p>billing_company (string) - Billing company name</p>\n</li>\n<li><p>billing_street (string) - Billing street name</p>\n</li>\n<li><p>billing_house_number (string) - Billing house number</p>\n</li>\n<li><p>billing_house_number_ext (string) - Billing house number extension</p>\n</li>\n<li><p>billing_address1 (string) - Billing address line 1. If not provided, will be constructed from street, house number, and extension.</p>\n</li>\n<li><p>billing_address2 (string) - Billing address line 2</p>\n</li>\n<li><p>billing_address_supplement (string) - Additional billing address information</p>\n</li>\n<li><p>billing_zip_code (string) - Billing postal/ZIP code</p>\n</li>\n<li><p>billing_city (string) - Billing city</p>\n</li>\n<li><p>billing_region (string) - Billing state/Province/Region</p>\n</li>\n<li><p>billing_country_code (string) - Billing ISO country code</p>\n</li>\n<li><p>billing_email (string) - Billing email address</p>\n</li>\n</ul>\n<h4 id=\"order-products\">Order Products</h4>\n<p>Each product in the order_products array can include:</p>\n<ul>\n<li><p>ean (string, required) - Product EAN code</p>\n</li>\n<li><p>quantity (integer, required) - Product quantity (minimum 1)</p>\n</li>\n<li><p>price (float, optional) - Custom price for this line item. If not provided, the price will be calculated as product_price × quantity from the product catalog.</p>\n</li>\n<li><p>order_item_id (integer, optional) - External order item identifier</p>\n</li>\n</ul>\n<h3 id=\"address-parsing\">Address Parsing</h3>\n<p>If shipping_street and shipping_house_number are not provided, the system will automatically parse shipping_address1 and shipping_address2 using AddressDock to extract street, house number, and extension. The same applies to billing addresses.</p>\n<h3 id=\"duplicate-prevention\">Duplicate Prevention</h3>\n<p>The API checks for duplicate orders based on:</p>\n<ul>\n<li><p>seq_order_id - If provided and an order with the same seq_order_id exists for this seller, the request will be rejected.</p>\n</li>\n<li><p>order_id - If provided and an order with the same order_id exists for this seller (and channel_id is 17), the request will be rejected.</p>\n</li>\n</ul>\n<h3 id=\"unrecognized-product-policy\">Unrecognized Product Policy</h3>\n<p>De parameter unrecognized_product_policy bepaalt hoe het systeem omgaat met orderregels die niet herkend worden. Ondersteunde waarden zijn:</p>\n<ul>\n<li><p><strong>allow (standaard)</strong></p>\n<p>  De order wordt aangemaakt, ook als er onbekende regels zijn.</p>\n<ul>\n<li><p>Resultaat: partial_success + order_products_failed</p>\n</li>\n<li><p>Gedrag:</p>\n<ul>\n<li><p><strong>Seller</strong>: er wordt een placeholder-regel aangemaakt zonder gekoppeld product</p>\n</li>\n<li><p><strong>Center</strong>: onbekende regels worden overgeslagen</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>reject_order</strong></p>\n<p>  De volledige order wordt afgewezen zodra er één onbekende regel is.</p>\n<ul>\n<li>Resultaat: HTTP 422 + order_products_failed</li>\n</ul>\n</li>\n<li><p><strong>hold_order</strong></p>\n<p>  De order wordt aangemaakt, maar op <em>on-hold</em> gezet als er onbekende regels zijn.</p>\n<ul>\n<li>Resultaat: partial_success + order_products_failed</li>\n</ul>\n</li>\n</ul>\n<p><strong>Belangrijk:</strong></p>\n<p>Als geen enkele orderregel herkend wordt, faalt de aanvraag altijd met een <strong>HTTP 400</strong>, ongeacht de gekozen policy.</p>\n<h3 id=\"response\">Response</h3>\n<p>On success, returns:<br /><code>{</code></p>\n<p><code>\"response\": \"success\",</code></p>\n<p><code>\"message\": \"Created new order: {order_id}\",</code></p>\n<p><code>\"order_id\": {order_id}</code></p>\n<p><code>}</code></p>\n<p>On error, returns appropriate error messages with HTTP status codes (400 for validation errors, etc.).</p>\n","urlObject":{"path":["portal","api","v2","seller","orders"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"20f7035b-3cd0-4f0a-9906-a38e712cd18f","name":"Created (success)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": \"B-32333\",\n    \"extra_comment\": \"A manual order created by ChannelDock API.\",\n    \n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Smith\",\n    \"shipping_company\": \"ChannelDock BV\",\n    \"shipping_address1\": \"Duivendrechtsekade 40A\",\n    \"shipping_address2\": \"2nd floor\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_region\": \"Noord-Holland\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_phone_number\": \"+31612345678\",\n    \"shipping_email\": \"+31612345678\",\n\n    \"billing_first_name\": \"Nicky\",\n    \"billing_last_name\": \"Smith\", \n    \"billing_company\": \"ChannelDock BV\",\n    \"billing_street\": \"Duivendrechtsekade\",\n    \"billing_house_number\": \"40\",\n    \"billing_house_number_ext\": \"A\",\n    \"billing_zip_code\": \"1080AH\",\n    \"billing_city\": \"Amsterdam\",\n    \"billing_region\": \"Noord-Holland\",\n    \"billing_country_code\": \"NL\",\n    \"billing_email\": \"billing@channeldock.com\",\n    \"order_products\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"quantity\": 10,\n            \"order_item_id\": 12345678\n        },\n        {\n            \"ean\": \"8719326583648\",\n            \"quantity\": 5,\n            \"order_item_id\": 234567890\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Created new order: 88212\",\n  \"order_id\": 88212\n}"},{"id":"a660a327-ee3e-4809-a5c5-c562a1ae37c9","name":"Created with unrecognized lines (partial_success)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"seq_order_id\": \"SHOP-ORDER-7721\",\n  \"order_status\": \"order\",\n  \"first_name\": \"Jan\",\n  \"last_name\": \"Jansen\",\n  \"email\": \"jan@example.com\",\n  \"shipping_street\": \"Stationsstraat\",\n  \"shipping_house_number\": \"5\",\n  \"shipping_city\": \"Utrecht\",\n  \"shipping_zip_code\": \"3511\",\n  \"shipping_country_code\": \"NL\",\n  \"order_products\": [\n    { \"ean\": \"8711111111111\", \"quantity\": 1 },\n    { \"ean\": \"UNKNOWN-EAN-XYZ\", \"quantity\": 3, \"price\": 12.0 }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"partial_success\",\n  \"message\": \"Created new order: 88213. One or more lines are not linked to a catalog product (unrecognized EAN).\",\n  \"order_id\": 88213,\n  \"order_products_failed\": [\n    {\n      \"ean\": \"9990000000001\",\n      \"message\": \"Product not recognized: no product with this EAN in the seller catalog. Order line was still created without a linked product.\"\n    }\n  ]\n}"},{"id":"faa35587-2b7b-4066-aa63-d5841c3be888","name":"Rejected — no order products recognized","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"seq_order_id\": \"SHOP-88422-ALL-BAD\",\n  \"order_status\": \"order\",\n  \"price_total\": 45.0,\n  \"price_currency\": \"EUR\",\n  \"first_name\": \"Test\",\n  \"last_name\": \"Customer\",\n  \"email\": \"test@example.com\",\n  \"shipping_street\": \"Teststraat\",\n  \"shipping_house_number\": \"1\",\n  \"shipping_city\": \"Rotterdam\",\n  \"shipping_zip_code\": \"3011AA\",\n  \"shipping_country_code\": \"NL\",\n  \"order_products\": [\n    { \"ean\": \"9991111111111\", \"quantity\": 2 },\n    { \"ean\": \"9992222222222\", \"quantity\": 1, \"price\": 15.0 }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"message\": \"Order rejected: none of the given EANs match a product in the seller catalog.\",\n  \"order_products_failed\": [\n    {\n      \"ean\": \"9990000000001\",\n      \"message\": \"Product not recognized: no product with this EAN in the seller catalog.\"\n    },\n    {\n      \"ean\": \"9990000000002\",\n      \"message\": \"Product not recognized: no product with this EAN in the seller catalog.\"\n    }\n  ]\n}"}],"_postman_id":"4ba44ad1-ad13-4f64-b3fc-3f152837e925"},{"name":"Update an order","id":"280dacf3-fcb4-4ed9-87e0-c43fbaf9962a","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"3918588\",\n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Kouffeld\",\n    \"shipping_company\": \"ChannelDock\",\n    \"shipping_email\": \"nicky@gmail.com\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"41\",\n    \"shipping_house_number_ext\": \"\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_address_accurate\": 1,\n    \"extra_comment\": \"A manual order created by ChannelDock API.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders","description":"<h3 id=\"update-an-order\"><strong>Update an order</strong></h3>\n<p>Update one or more fields on an existing order belonging to the authenticated seller.</p>\n<ul>\n<li><strong>id</strong> (required, integer) — ChannelDock order ID.</li>\n</ul>\n<p>Send only the fields you want to change. The response includes an <strong>updated_fields</strong> object with the values that were applied.</p>\n<h4 id=\"shipping-address\"><strong>Shipping address</strong></h4>\n<ul>\n<li>shipping_first_name, shipping_last_name, shipping_company, shipping_email</li>\n<li>shipping_street, shipping_house_number, shipping_house_number_ext</li>\n<li>shipping_city, shipping_zip_code, shipping_country_code, shipping_region</li>\n<li>extra_comment</li>\n</ul>\n<h4 id=\"shipping-address-accuracy\"><strong>Shipping address accuracy</strong></h4>\n<ul>\n<li><p><strong>shipping_address_accurate</strong> (optional, 0 or 1)</p>\n<p>  Marks whether the shipping address is considered valid for fulfillment.</p>\n<ul>\n<li><strong>0</strong> — address flagged as inaccurate (order may be excluded from picking/batching until corrected).</li>\n<li><strong>1</strong> — address confirmed accurate (same effect as confirming the address in the portal).</li>\n</ul>\n<p>  Use <strong>1</strong> after correcting shipping fields via the API so the order can proceed to fulfillment.</p>\n</li>\n</ul>\n<h4 id=\"order-metadata\"><strong>Order metadata</strong></h4>\n<ul>\n<li>seq_order_id, ship_on_date (seller timezone; empty string resets to order_date)</li>\n<li>order_status (see Create manual order for allowed values; cancelled triggers cancel flow)</li>\n<li>is_b2b (0 or 1)</li>\n</ul>\n<h4 id=\"billing-address\"><strong>Billing address</strong></h4>\n<p>billing_address1, billing_address2, billing_address_supplement, billing_city, billing_company, billing_country_code, billing_email, billing_first_name, billing_last_name, billing_middle_name, billing_house_number, billing_house_number_ext, billing_region, billing_street, billing_zip_code</p>\n<h4 id=\"b2b-order-attributes\"><strong>B2B order attributes</strong></h4>\n<p>po_number, customer_reference, payment_terms, requested_delivery_date, shipment_type, pallet_count</p>\n","urlObject":{"path":["portal","api","v2","seller","orders"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"f88c7417-1b86-4767-a518-efcf7f49597b","name":"Update an order","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"3918588\",\n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Kouffeld\",\n    \"shipping_company\": \"ChannelDock\",\n    \"shipping_email\": \"nicky@gmail.com\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_address_accurate\": 1,\n    \"extra_comment\": \"A manual order created by ChannelDock API.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Updated order: 88210\",\n  \"updated_fields\": {\n    \"shipping_first_name\": \"Lars\",\n    \"shipping_last_name\": \"van Schaick\",\n    \"shipping_company\": \"ChannelDock B.V.\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080 AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_email\": \"lars@upwind.example.com\",\n    \"extra_comment\": \"Updated via ChannelDock API.\"\n  }\n}"}],"_postman_id":"280dacf3-fcb4-4ed9-87e0-c43fbaf9962a"},{"name":"Delete an order","id":"ad2b6ef1-1e88-4745-89fa-6293763fa6f5","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"1133\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders","description":"<p>This DELETE request can be used to delete an order. Requires the ChannelDock order id in the request body. Cannot delete orders that are already shipped or synced to a fulfillment center.</p>\n","urlObject":{"path":["portal","api","v2","seller","orders"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"5d4f4759-7c94-455f-ac04-435918303fce","name":"Delete an order","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"3918588\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Deleted order: 88210\"\n}"}],"_postman_id":"ad2b6ef1-1e88-4745-89fa-6293763fa6f5"},{"name":"Delete an order product","id":"f79aaa01-c0c7-48e7-9f20-374287117f01","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"order_product_id\": 67890\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders/{id}/remove-order-product","description":"<p>Use this endpoint to remove a single order line (<code>order_product</code>) from an existing order.  </p>\n<p>What it does</p>\n<ul>\n<li><p>Removes one order product line from the specified order</p>\n</li>\n<li><p>Recalculates/finalizes the order after deletion</p>\n</li>\n<li><p>Writes an order log entry</p>\n</li>\n<li><p>Returns success/error JSON</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","orders","{id}","remove-order-product"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"1c6cf5fe-81b2-4e9f-84bc-f962223eb04b","name":"Delete an order product","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"order_product_id\": 67890\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders/{id}/remove-order-product"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Order product removed.\"\n}"}],"_postman_id":"f79aaa01-c0c7-48e7-9f20-374287117f01"},{"name":"Search order","id":"b9a579ca-955a-4e5a-9e19-53cdb3261982","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"order_number\": \"19246\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/searchorder","description":"<p>Search for an order by order number. Supports GET and POST. Searches by ChannelDock order id, remote order_id, or seq_order_id. Used by integrations such as Returnless. Request body: order_number (required).</p>\n","urlObject":{"path":["portal","api","v2","seller","searchorder"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"94d38ac7-a69c-4c34-ad97-4f77d85aa2e4","name":"Order found","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"order_number\": \"WC-88210\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/searchorder"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"order_number\": \"WC-88210\",\n  \"order_date\": \"2026-06-13T09:24:11+00:00\",\n  \"order_id\": \"88210\",\n  \"status\": \"order\",\n  \"customer\": {\n    \"id\": \"88210\",\n    \"name\": \"Lars van Schaick\",\n    \"email\": \"lars@upwind.example.com\",\n    \"address\": {\n      \"country_code\": \"NL\",\n      \"telephone\": \"+31 6 1234 5678\",\n      \"street\": \"Duivendrechtsekade\",\n      \"house_number\": \"40\",\n      \"suffix\": \"A\",\n      \"city\": \"Amsterdam\",\n      \"postal_code\": \"1080 AH\",\n      \"state\": \"Noord-Holland\"\n    }\n  },\n  \"sales_order_items\": [\n    {\n      \"sales_order_item_id\": \"91201\",\n      \"item_price\": 29995,\n      \"product_id\": \"25851\",\n      \"name\": \"Upwind Kitesurf Bar Pro 52cm\",\n      \"sku\": \"UPW-BAR-52\",\n      \"quantity\": 1,\n      \"barcode\": \"8719326583631\",\n      \"weight\": 1800,\n      \"height\": 0.08,\n      \"length\": 0.6,\n      \"width\": 0.12,\n      \"image_src\": \"https://cdn.upwind.example.com/products/kitesurf-bar-pro-52.jpg\"\n    }\n  ]\n}"},{"id":"0e72e182-891e-4eba-9b8c-bb99c7aa59c0","name":"No order found","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"order_number\": \"UNKNOWN-12345\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/searchorder"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"no_order_found\"\n}"}],"_postman_id":"b9a579ca-955a-4e5a-9e19-53cdb3261982"},{"name":"Add order product","id":"6d367eb5-0429-47aa-bb02-e42afd81e151","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 12345,\n  \"quantity\": 2\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders/{{order_id}}/add-product","description":"<p>Adds a product line to an existing order. Use this when you need to add extra items to one of your orders.</p>\n<p>Requirements:</p>\n<ul>\n<li><p>The order must belong to your seller account</p>\n</li>\n<li><p>The product must exist in your product catalog</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","orders","{{order_id}}","add-product"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"86659e4c-1405-4bc7-908f-6da798daf7d8","name":"Add order product","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 12345,\n  \"quantity\": 2\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orders/123456789/add-product"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Order product added.\"\n}"}],"_postman_id":"6d367eb5-0429-47aa-bb02-e42afd81e151"},{"name":"Create order log","id":"3cf6ad2d-5a42-4271-aeb3-8251da4e64cb","request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"order_id\": 12345,\n  \"title\": \"External WMS update\",\n  \"status\": \"info\",\n  \"description\": \"Picked in warehouse A.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orderlogs","description":"<p>Create an order log entry on a specific order. Use the internal ChannelDock order id (<code>orders.id</code>), not the marketplace order reference.</p>\n<p>Enable <strong>Order Logs</strong> with <strong>POST</strong> on your API key in ChannelDock settings.</p>\n<h3 id=\"requirements\">Requirements</h3>\n<ul>\n<li>The order must belong to your seller account (open or archived/closed orders).</li>\n</ul>\n<h3 id=\"request-body-json\">Request body (JSON)</h3>\n<ul>\n<li><strong>order_id</strong> (integer, required) — Internal order id.</li>\n<li><strong>title</strong> (string, required) — Short log title. Max 500 characters. HTML is stripped.</li>\n<li><strong>status</strong> (string, optional) — Log status/type. Default: <code>info</code>. Max 255 characters. Common values: <code>info</code>, <code>updated</code>, <code>update</code>, <code>created</code>, <code>error</code>, <code>label</code>, <code>cancelled</code>, <code>changed</code>.</li>\n<li><strong>description</strong> (string, optional) — Longer text. Max 5000 characters. HTML is stripped. The API appends: <code>Logged via API by {user first name last name}.</code></li>\n</ul>\n<h3 id=\"success\">Success</h3>\n<p>HTTP <strong>201</strong> — Returns <code>order_id</code> and the created <code>order_log</code> row.</p>\n<h3 id=\"errors\">Errors</h3>\n<ul>\n<li><strong>400</strong> — Missing/invalid <code>order_id</code> or <code>title</code>, or field too long.</li>\n<li><strong>404</strong> — Order not found or not accessible for this API key.</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","orderlogs"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"3031d7cb-927e-437a-938a-aaa940b23d84","name":"Create order log","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"order_id\": 12345,\n  \"title\": \"External WMS update\",\n  \"status\": \"info\",\n  \"description\": \"Picked in warehouse A.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/orderlogs"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Order log created.\",\n  \"order_id\": 12345,\n  \"order_log\": {\n    \"id\": 987654,\n    \"status\": \"info\",\n    \"title\": \"External WMS update\",\n    \"description\": \"Picked in warehouse A. Logged via API by John Doe.\",\n    \"created_at\": \"2026-07-24 15:30:00\"\n  }\n}"}],"_postman_id":"3cf6ad2d-5a42-4271-aeb3-8251da4e64cb"}],"id":"116c1412-a856-4c37-8a7d-61d740ea4ad7","_postman_id":"116c1412-a856-4c37-8a7d-61d740ea4ad7","description":""},{"name":"Shipments","item":[{"name":"Get Shipments","id":"8c832d61-821a-4fff-85f3-c72eb9f9e41c","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/shipment?page=1","urlObject":{"path":["portal","api","v2","seller","shipment"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"key":"id","value":"6526"},{"disabled":true,"description":{"content":"<p>registered | distribution | delivered | return</p>\n","type":"text/plain"},"key":"status","value":"registered"},{"disabled":true,"description":{"content":"<p>ChannelDock order id</p>\n","type":"text/plain"},"key":"order_id","value":"1838"},{"disabled":true,"description":{"content":"<p>max: 100</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>id | default: created_at | order_id</p>\n","type":"text/plain"},"key":"sort_attr","value":"created_at"},{"disabled":true,"description":{"content":"<p>DESC | default: ASC</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"start_date","value":"2022-07-28 02:03:22"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"end_date","value":"2022-08-28 06:03:33"},{"disabled":true,"key":"include_pdf_label","value":"true"}],"variable":[]}},"response":[{"id":"3fe0f02a-9d80-4e6b-bd03-2d019606a7f2","name":"Get Shipments","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/shipment?page=1&sort_attr=created_at&sort_dir=DESC","host":["https://channeldock.com"],"path":["portal","api","v2","seller","shipment"],"query":[{"key":"page","value":"1","description":"required"},{"key":"id","value":"5110","disabled":true},{"key":"status","value":"registered","description":"registered | distribution | delivered | return","disabled":true},{"key":"order_id","value":"1838","description":"ChannelDock order id","disabled":true},{"key":"sort_attr","value":"created_at","description":"id | default: created_at | order_id"},{"key":"sort_dir","value":"DESC","description":"DESC | default: ASC"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"shipments_count\": 2,\n  \"shipments\": [\n    {\n      \"id\": 7701,\n      \"shipment_method_id\": 9504,\n      \"api_id\": 0,\n      \"order_id\": 88210,\n      \"remote_order_id\": \"WC-88210\",\n      \"seq_order_id\": \"UPW-2026-00415\",\n      \"status\": \"registered\",\n      \"remote_label_id\": \"PNL-3SBOL00112233\",\n      \"price\": 6.95,\n      \"shipment_method\": \"PostNL Pakket NL\",\n      \"carrier_code\": \"postnl\",\n      \"track_and_trace\": \"3SBOL00112233\",\n      \"track_and_trace_url\": \"https://postnl.nl/tracktrace/?B=3SBOL00112233&P=1080AH&D=NL&T=C\",\n      \"track_and_traces\": [\n        \"3SBOL00112233\"\n      ],\n      \"shipment_date\": \"2026-06-14\",\n      \"order_date\": \"2026-06-13\",\n      \"created_at\": \"2026-06-14 08:12:30\",\n      \"extra_comment\": \"\",\n      \"number_of_labels\": 1,\n      \"order_products\": [\n        {\n          \"id\": 91201,\n          \"api_id\": 0,\n          \"seller_id\": 1,\n          \"order_id\": 88210,\n          \"orderItemId\": \"WC-88210-1\",\n          \"ean\": \"8719326583631\",\n          \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"price\": 299.95,\n          \"quantity\": 1,\n          \"delivery_period\": null,\n          \"reference_code\": null,\n          \"is_shipped\": 0,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": null,\n          \"fulfillment_status\": \"pending\",\n          \"shipping_costs\": 6.95,\n          \"product\": {\n            \"id\": 25851,\n            \"ean\": \"8719326583631\",\n            \"sku\": \"UPW-BAR-52\",\n            \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n            \"child_from_bundle\": false,\n            \"tags\": [\n              \"kitesurf\",\n              \"control-bar\"\n            ]\n          }\n        },\n        {\n          \"id\": 91202,\n          \"api_id\": 0,\n          \"seller_id\": 1,\n          \"order_id\": 88210,\n          \"orderItemId\": \"WC-88210-2\",\n          \"ean\": \"8719326583662\",\n          \"title\": \"Carbon Fin Set G10 (set of 4)\",\n          \"price\": 79.95,\n          \"quantity\": 2,\n          \"delivery_period\": null,\n          \"reference_code\": null,\n          \"is_shipped\": 0,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": null,\n          \"fulfillment_status\": \"pending\",\n          \"shipping_costs\": 0,\n          \"product\": {\n            \"id\": 25854,\n            \"ean\": \"8719326583662\",\n            \"sku\": \"UPW-FIN-G10\",\n            \"title\": \"Carbon Fin Set G10 (set of 4)\",\n            \"child_from_bundle\": false,\n            \"tags\": [\n              \"accessories\",\n              \"fins\"\n            ]\n          }\n        }\n      ]\n    },\n    {\n      \"id\": 7702,\n      \"shipment_method_id\": 9505,\n      \"api_id\": 2450,\n      \"order_id\": 88211,\n      \"remote_order_id\": \"BOL-19877\",\n      \"seq_order_id\": \"UPW-2026-00416\",\n      \"status\": \"processed\",\n      \"remote_label_id\": \"DHL-JD0123456789\",\n      \"price\": 11.5,\n      \"shipment_method\": \"DHL Express NL → FR\",\n      \"carrier_code\": \"dhl\",\n      \"track_and_trace\": \"JD0123456789\",\n      \"track_and_trace_url\": \"https://www.dhl.com/nl-en/home/tracking.html?tracking-id=JD0123456789\",\n      \"track_and_traces\": [\n        \"JD0123456789\"\n      ],\n      \"shipment_date\": \"2026-06-12\",\n      \"order_date\": \"2026-06-11\",\n      \"created_at\": \"2026-06-12 11:04:17\",\n      \"extra_comment\": \"\",\n      \"number_of_labels\": 1,\n      \"order_products\": [\n        {\n          \"id\": 91215,\n          \"api_id\": 2450,\n          \"seller_id\": 1,\n          \"order_id\": 88211,\n          \"orderItemId\": \"BOL-88211-1\",\n          \"ean\": \"8719326583648\",\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n          \"price\": 189.95,\n          \"quantity\": 1,\n          \"delivery_period\": \"2026-06-16 18:00:00\",\n          \"reference_code\": null,\n          \"is_shipped\": 1,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": 7701,\n          \"fulfillment_status\": \"shipped\",\n          \"shipping_costs\": 4.95,\n          \"product\": {\n            \"id\": 25852,\n            \"ean\": \"8719326583648\",\n            \"sku\": \"UPW-WET-M\",\n            \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n            \"child_from_bundle\": false,\n            \"tags\": [\n              \"wetsuit\",\n              \"neoprene\"\n            ]\n          }\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"8c832d61-821a-4fff-85f3-c72eb9f9e41c"},{"name":"Create shipment","id":"866c8f6e-7c3b-43fc-bd84-3ddf5507d172","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"1735\",\n      \"track_and_trace\": \"00340434626112039686\",\n      \"track_and_trace_url\": \"https://www.channeldock.com\",\n      \"carrier\": \"DHL\",\n      \"price\": 5.25,\n      \"order_products\": [ { \"id\": 6166828 } ]\n    }\n  ]\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/seller/shipment","description":"<p>Orders can be handled (processed to shipments) by sending ChannelDock the order_id, track_and_trace, carrier and id's of the order products. ChannelDock will then automatically handle the order at the sales channel where it originated from.</p>\n<p>Using this endpoint, we expect that you generate the shipping label in your own warehouse management system. Using the 'POST - Generate shipping label' endpoint you can have ChannelDock generate the shipping label for you.</p>\n<p>The order_products object is optional. If you omit this object, ChannelDock will ship all the order products.</p>\n<p>Optionally you can also send a track_and_trace_2 field with the payload if for example the order product is too big to ship with one label. We do not support the track and trace of a third, fourth etc. label. Most sales channel wil only accept 1 track and trace anyway</p>\n","urlObject":{"path":["portal","api","v2","seller","shipment"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"60ed4fea-b763-486f-b77d-ea92d2c25927","name":"Create shipment (with one tracking code)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"3150051\",\n      \"track_and_trace\": \"3SYTYM0003251\",\n      \"track_and_trace_url\": \"https://tracking.postnl.nl?id=3SYTYM0003251\",\n      \"carrier\": \"TNT\",\n      \"price\": 5.25,\n      \"order_products\": [ { \"id\": 2683 } ]\n    }\n  ]\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/seller/shipment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": [\n    \"CD order ID: 88210 -> New label 7701: success\"\n  ]\n}"},{"id":"e9d3e410-fa85-48ac-8fae-3828dc421ac7","name":"Create shipment (with multiple tracking codes)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"3150051\",\n      \"track_and_traces\": [\n        \"3SYTYM0003251\",\n        \"3SYTYM0003252\",\n        \"3SYTYM0003253\"\n      ],\n      \"track_and_trace_url\": \"https://tracking.postnl.nl?id=3SYTYM0003251\",\n      \"carrier\": \"TNT\",\n      \"price\": 5.25,\n      \"order_products\": [\n        { \"id\": 3406535 }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/seller/shipment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": [\n    \"CD order ID: 88211 -> New label 7702 (with 2 tracking codes): success\"\n  ]\n}"}],"_postman_id":"866c8f6e-7c3b-43fc-bd84-3ddf5507d172"},{"name":"Generate shipping label","id":"5e73ac1d-1eb0-4ddd-bdb5-78c0083ac7d2","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"7470\",\n      \"order_products\": [ { \"id\": 9104 } ]\n    }\n  ]\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/seller/label","description":"<p>Use this endpoint to generate shipping labels via ChannelDock. To select the appropriate label, apply the shipping rules set within ChannelDock.</p>\n<p>The order_products object is optional and can be used for partial shipments. If omitted, all products associated with the order ID will be shipped.</p>\n<p>The label will be returned in base64 encoded format. To retrieve the label again later, use the GET shipments endpoint with the include_pdf_label=true parameter.</p>\n","urlObject":{"path":["portal","api","v2","seller","label"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a40efc1c-06ec-4f76-947f-f1a34f66cec1","name":"Generate shipping label","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"7470\",\n      \"order_products\": [ { \"id\": 9104 } ]\n    }\n  ]\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/seller/label"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"errors\": [],\n  \"shipments\": [\n    {\n      \"status\": \"success\",\n      \"order_id\": 88210,\n      \"shipment_label_id\": 7701,\n      \"base64_label_pdf\": \"JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCi4uLi4gKHRydW5jYXRlZCBmb3IgYnJldml0eSkgLi4uLgoKJSVFT0YK\"\n    }\n  ]\n}"}],"_postman_id":"5e73ac1d-1eb0-4ddd-bdb5-78c0083ac7d2"}],"id":"b2624369-521e-452c-9136-c94807356ab2","description":"<p>Fetch shipment data from ChannelDock, process orders and or create shipping labels.</p>\n","_postman_id":"b2624369-521e-452c-9136-c94807356ab2"},{"name":"Shipment methods","item":[{"name":"Create / Update custom shipment method","id":"ef45169d-8c34-45dd-b60f-d58b61e8e1ed","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"MyCarrier - Package large express\",\n    \"remote_carrier_id\": \"my_carrier_id\",\n    \"logo_url\": \"https://example.com/logo-700x300.png\",\n    \"carrier_code\": \"mycarrier\",\n    \"min_weight\": 0,\n    \"max_weight\": 23,\n    \"max_x\": 150,\n    \"max_y\": 150,\n    \"max_z\": 150,\n    \"mailbox_size\": 0,\n    \"callback_request\": {\n        \"method\": \"POST\",\n        \"url\": \"https://yourdomain.com/api/shipment_endpoint\",\n        \"headers\": {\n            \"Accept\": \"application/json\",\n            \"Content-Type\": \"application/json\",\n            \"Authorization\": \"Bearer YOUR_CARRIER_API_TOKEN\"\n        }\n    },\n    \"shipment_method_countries\": [\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"NL\",\n            \"price\": 3.2\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"BE\",\n            \"price\": 4.8\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"DE\",\n            \"price\": 5.6\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"FR\",\n            \"price\": 15\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"US\",\n            \"price\": 39.50\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"IT\",\n            \"price\": 22.50\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/shipmentmethods","description":"<p>This endpoint allows you to <strong>create or update a shipment method</strong> for a custom carrier integration. If a shipment method with the same remote_carrier_id already exists for the seller, it will be updated. Otherwise, a new one will be created.</p>\n<p>The shipment method defines core logistics parameters such as weight and dimension limits, callback behavior, and available shipping routes per country.  </p>\n<p>Find additional info here: <a href=\"https://help.channeldock.com/books/english-en/page/connecting-custom-carrier-api\">Help center</a></p>\n<h4 id=\"requirements\"><strong>Requirements</strong></h4>\n<ul>\n<li><p>The request must include all required fields listed below.</p>\n</li>\n<li><p>The callback_request should be a valid JSON object including a url, method, and headers.</p>\n</li>\n<li><p>A logo_url must be provided, pointing to a PNG image of size <strong>700x300 pixels</strong>.</p>\n</li>\n<li><p>The shipment_method_countries field must contain at least one country mapping with a price.</p>\n</li>\n</ul>\n<h3 id=\"required-fields\"><strong>Required Fields</strong></h3>\n<ul>\n<li><p>name – Name of the shipment method (displayed to the user)</p>\n</li>\n<li><p>remote_carrier_id – Your unique ID for recognizing this shipment method</p>\n</li>\n<li><p>carrier_code – Lowercase identifier for the carrier/platform</p>\n</li>\n<li><p>min_weight, max_weight – Weight limits in kg</p>\n</li>\n<li><p>max_x, max_y, max_z – Dimensions in cm</p>\n</li>\n<li><p>mailbox_size – Set to 1 if it fits through the mailbox (optional)</p>\n</li>\n<li><p>logo_url – PNG image (700x300px) representing the carrier</p>\n</li>\n<li><p>callback_request – Contains:</p>\n<ul>\n<li><p>url – Endpoint for label creation</p>\n</li>\n<li><p>method – HTTP method (e.g., POST)</p>\n</li>\n<li><p>headers – Object with any required headers (e.g., API key)</p>\n</li>\n</ul>\n</li>\n<li><p>shipment_method_countries – Array of country pairs and prices</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"behavior\"><strong>Behavior</strong></h3>\n<ul>\n<li><p>If a shipment method with the same remote_carrier_id exists, it will be <strong>updated</strong>.</p>\n</li>\n<li><p>Otherwise, a new shipment method will be <strong>created</strong>.</p>\n</li>\n<li><p>Country-specific shipping rules are updated or created based on shipment_method_countries.</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","shipmentmethods"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"af6328d1-b2d0-4780-ad2d-1c9753da0e48","name":"Create shipment method","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"MyCarrier - Package large express\",\n    \"remote_carrier_id\": \"my_carrier_id\",\n    \"logo_url\": \"https://example.com/logo-700x300.png\",\n    \"carrier_code\": \"mycarrier\",\n    \"min_weight\": 0,\n    \"max_weight\": 23,\n    \"max_x\": 150,\n    \"max_y\": 150,\n    \"max_z\": 150,\n    \"mailbox_size\": 0,\n    \"callback_request\": {\n        \"method\": \"POST\",\n        \"url\": \"https://yourdomain.com/api/shipment_endpoint\",\n        \"headers\": {\n            \"Accept\": \"application/json\",\n            \"Content-Type\": \"application/json\",\n            \"Authorization\": \"Bearer YOUR_CARRIER_API_TOKEN\"\n        }\n    },\n    \"shipment_method_countries\": [\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"NL\",\n            \"price\": 3.2\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"BE\",\n            \"price\": 4.8\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"DE\",\n            \"price\": 5.6\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"FR\",\n            \"price\": 15\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"US\",\n            \"price\": 39.50\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"IT\",\n            \"price\": 22.50\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/shipmentmethods"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Shipment method PostNL Pakket NL created successfully\"\n}"}],"_postman_id":"ef45169d-8c34-45dd-b60f-d58b61e8e1ed"}],"id":"360991ea-3195-40c5-b3c6-185070ec1b83","_postman_id":"360991ea-3195-40c5-b3c6-185070ec1b83","description":""},{"name":"Carriers","item":[{"name":"List all carriers","id":"e53f0329-fa70-4382-ac72-9f44a58c1c84","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://channeldock.com/portal/api/v2/seller/carriers","description":"<p>Test auth endpoint</p>\n","urlObject":{"path":["portal","api","v2","seller","carriers"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"bdd2c04d-09f1-4633-b5f1-9a3f82981019","name":"List all carriers","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://channeldock.com/portal/api/v2/seller/carriers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"carriers\": {\n    \"postnl\": \"PostNL\",\n    \"dhl\": \"DHL\",\n    \"dpd\": \"DPD\",\n    \"ups\": \"United Parcel Service (UPS)\",\n    \"fedex\": \"FedEx\",\n    \"gls\": \"GLS\",\n    \"dhl_express\": \"DHL Express\",\n    \"bol_dhl_for_you\": \"Bol DHL ForYou (VVB)\",\n    \"bol_bpost\": \"Bol Bpost (VVB)\",\n    \"amazon_logistics\": \"Amazon Logistics\",\n    \"chronopost\": \"Chronopost\",\n    \"colissimo\": \"Colissimo\",\n    \"hermes\": \"Hermes\",\n    \"royal_mail\": \"Royal Mail\",\n    \"canada_post\": \"Canada Post\",\n    \"tnt\": \"TNT\",\n    \"manual\": \"Manual / custom carrier\"\n  }\n}"}],"_postman_id":"e53f0329-fa70-4382-ac72-9f44a58c1c84"}],"id":"4756c77c-1d51-480f-a12c-9367bd428074","_postman_id":"4756c77c-1d51-480f-a12c-9367bd428074","description":""},{"name":"Stock locations","item":[{"name":"Get stock locations","id":"4817450c-a855-4f9a-8d90-13c999d71f1a","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/stocklocations?id=0&stock_section_id=0&product_id=0&sort_attr=stock&sort_dir=ASC","description":"<p>This endpoint retrieves a paginated list of stock locations for the current seller.</p>\n<p>By default only the seller's own warehouse is returned. Pass center_locations=true to return only stock locations at connected fulfillment centers (not own-warehouse locations). Optionally pass center_id to return only that one connected center. A center_id that is not connected, or a center that has disabled viewing stock locations for this seller, returns 403. POST, PUT and DELETE still only apply to the seller's own warehouse.</p>\n<p>Optional filters include id, stock_section_id, product_id, center_locations, center_id, and has_expiration. Results can be sorted by attributes like id, stock_section_id, product_id, stock, and expiration_date in ascending or descending order.</p>\n<p>Each stock location includes key details (id, center_id, stock_section_id, product_id, expiration_date, batch_id, etc.) and associated product information (e.g., ean, sku, title, dimensions, and weight) if linked to a product.</p>\n<p>By default this endpoint only returns stock locations that already have a product assigned. Stock sections (shelves) that exist but currently hold no product are NOT included unless you pass include_empty=true. When include_empty=true, the response adds an empty_stock_sections_count and empty_stock_sections array listing those empty shelves — the existing stock_locations array is unchanged.</p>\n<p>Pagination is supported, with customizable page numbers and page size.</p>\n","urlObject":{"path":["portal","api","v2","seller","stocklocations"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>Optional: The ID of the stock location</p>\n","type":"text/plain"},"key":"id","value":"0"},{"description":{"content":"<p>Optional: The ID of the stock section</p>\n","type":"text/plain"},"key":"stock_section_id","value":"0"},{"description":{"content":"<p>Optional: The ID of the product</p>\n","type":"text/plain"},"key":"product_id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional (default false): when true, return only stock locations at connected fulfillment centers (own warehouse is not included). Returns 403 if the fulfillment center has disabled viewing stock locations for this seller</p>\n","type":"text/plain"},"key":"center_locations","value":"true"},{"disabled":true,"description":{"content":"<p>Optional: return only locations of this connected fulfillment center. Also switches the response to center locations (own warehouse is not included)</p>\n","type":"text/plain"},"key":"center_id","value":"12"},{"disabled":true,"description":{"content":"<p>Optional: true = only locations with a THT/expiration date and stock &gt; 0</p>\n","type":"text/plain"},"key":"has_expiration","value":"true"},{"description":{"content":"<p>Optional: ( id | stock_section_id | product_id | stock | expiration_date )</p>\n","type":"text/plain"},"key":"sort_attr","value":"stock"},{"description":{"content":"<p>( ASC | DESC )\nRequired when sort_attr is filled in</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"},{"disabled":true,"description":{"content":"<p>Optional (default false): when true, also returns empty stock sections (shelves with no product) in a separate empty_stock_sections array. Only applies to the seller's own warehouse (not with center_locations=true or center_id).</p>\n","type":"text/plain"},"key":"include_empty","value":"true"}],"variable":[]}},"response":[{"id":"6da2cf4f-20b5-4aaf-996f-c9be37d79742","name":"Get stock locations","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/stocklocations?id=0&stock_section_id=0&product_id=0&sort_attr=stock&sort_dir=ASC","host":["https://channeldock.com"],"path":["portal","api","v2","seller","stocklocations"],"query":[{"key":"id","value":"0","description":"Optional: The ID of the stock location"},{"key":"stock_section_id","value":"0","description":"Optional: The ID of the stock section"},{"key":"product_id","value":"0","description":"Optional: The ID of the product"},{"key":"center_locations","value":"true","description":"Optional (default false): when true, return only stock locations at connected fulfillment centers (own warehouse is not included). Returns 403 if the fulfillment center has disabled viewing stock locations for this seller","disabled":true},{"key":"center_id","value":"12","description":"Optional: return only locations of this connected fulfillment center. Also switches the response to center locations (own warehouse is not included)","disabled":true},{"key":"has_expiration","value":"true","description":"Optional: true = only locations with a THT/expiration date and stock > 0","disabled":true},{"key":"sort_attr","value":"stock","description":"Optional: ( id | stock_section_id | product_id | stock | expiration_date )"},{"key":"sort_dir","value":"ASC","description":"( ASC | DESC )\nRequired when sort_attr is filled in"},{"key":"include_empty","value":"true","description":"Optional (default false): when true, also returns empty stock sections (shelves with no product) in a separate empty_stock_sections array. Only applies to the seller's own warehouse (not with center_locations=true or center_id).","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"stock_locations_count\": 3,\n  \"stock_locations\": [\n    {\n      \"id\": 113,\n      \"center_id\": 0,\n      \"stock_section_id\": 2715,\n      \"product_id\": 0,\n      \"stock\": 0,\n      \"include_in_stock_sync\": 1,\n      \"expiration_date\": null,\n      \"batch_id\": null,\n      \"product\": null,\n      \"stock_section\": {\n        \"id\": 2715,\n        \"description\": \"Pallet rack A\",\n        \"extra_description\": \"Bulk storage – inbound staging\",\n        \"reference\": \"PR-A\",\n        \"pick_location\": 0,\n        \"warehouse_id\": 1,\n        \"warehouse_name\": \"Amsterdam DC\"\n      }\n    },\n    {\n      \"id\": 114,\n      \"center_id\": 0,\n      \"stock_section_id\": 2716,\n      \"product_id\": 25851,\n      \"stock\": 48,\n      \"include_in_stock_sync\": 1,\n      \"expiration_date\": null,\n      \"batch_id\": null,\n      \"product\": {\n        \"id\": 25851,\n        \"ean\": \"8719326583631\",\n        \"sku\": \"UPW-BAR-52\",\n        \"title\": \"Upwind Kitesurf Bar Pro 52cm\"\n      },\n      \"stock_section\": {\n        \"id\": 2716,\n        \"description\": \"Pick zone B - Shelf 12\",\n        \"extra_description\": \"Ground floor\",\n        \"reference\": \"B-12\",\n        \"pick_location\": 1,\n        \"warehouse_id\": 1,\n        \"warehouse_name\": \"Amsterdam DC\"\n      }\n    },\n    {\n      \"id\": 115,\n      \"center_id\": 0,\n      \"stock_section_id\": 2717,\n      \"product_id\": 25852,\n      \"stock\": 36,\n      \"include_in_stock_sync\": 1,\n      \"expiration_date\": null,\n      \"batch_id\": null,\n      \"product\": {\n        \"id\": 25852,\n        \"ean\": \"8719326583648\",\n        \"sku\": \"UPW-WET-M\",\n        \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\"\n      },\n      \"stock_section\": {\n        \"id\": 2717,\n        \"description\": \"Pick zone B - Shelf 13\",\n        \"extra_description\": \"Ground floor\",\n        \"reference\": \"B-13\",\n        \"pick_location\": 1,\n        \"warehouse_id\": 1,\n        \"warehouse_name\": \"Amsterdam DC\"\n      }\n    }\n  ]\n}"}],"_postman_id":"4817450c-a855-4f9a-8d90-13c999d71f1a"},{"name":"Create stock location","id":"a60ce2e5-c8f7-4787-985a-ef7187e8e402","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock\": 10,\n  \"product_id\": 74,\n  \"stock_section_id\": 11579\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations","urlObject":{"path":["portal","api","v2","seller","stocklocations"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"2200fd9d-d40f-4ca0-922a-14f61942275c","name":"Create stock location based on stock section description","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_section_description\": \"A.1.C.23\",\n  \"product_id\": 31,\n  \"stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location created!\",\n  \"stock_location_id\": 116\n}"},{"id":"336cbe8b-a3c1-4c13-b11c-da8b540d4534","name":"Create stock location based on stock_section_id","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_section_id\": 11,\n  \"product_id\": 31,\n  \"stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location created!\",\n  \"stock_location_id\": 117\n}"}],"_postman_id":"a60ce2e5-c8f7-4787-985a-ef7187e8e402"},{"name":"Update stock location","id":"5e496f0e-d227-43b5-87f9-20936712bd0d","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 327,\n  \"stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations","urlObject":{"path":["portal","api","v2","seller","stocklocations"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a58fe535-b945-4dad-bdcf-97678dd1626f","name":"Update stock location","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 11,\n  \"product_id\": 31,\n  \"stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location updated!\"\n}"}],"_postman_id":"5e496f0e-d227-43b5-87f9-20936712bd0d"},{"name":"Delete stock location","id":"ec7d6c41-9c5f-47bd-a69b-ccd2179f717f","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 327\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations","urlObject":{"path":["portal","api","v2","seller","stocklocations"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"d084b991-11a1-4681-83a0-3cec73448489","name":"Delete stock location","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 321\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location deleted!\"\n}"}],"_postman_id":"ec7d6c41-9c5f-47bd-a69b-ccd2179f717f"}],"id":"3bd391e4-0519-4132-9ab0-951a6bba5b25","description":"<p>For more advance stock management, users can use stock locations in ChannelDock. This means mapping out your warehouse structure assinging products to one or multiple stock locations.  </p>\n<p>Using the GET /products endpoint, you can retrieve stock location data per product. Make sure to include the GET parameter 'include_stock_location_data'.  </p>\n<p>Use this stock locations endpoint to add, update or delete products from a specific stock location in your own warehouse. GET returns own-warehouse locations by default. Pass center_locations=true to return only locations at connected fulfillment centers (when that center has enabled viewing FC stock locations for this seller), and optionally center_id to pick one center. POST, PUT and DELETE stay limited to your own warehouse.</p>\n<p>Each product at a stock location has a stock_location_id that you can use to update or delete the product from that location. When adding a product to a stock location, you need to include a stock_section_id. Based on this stock_section_id ChannelDock knows where the product location is within your warehouse.</p>\n","_postman_id":"3bd391e4-0519-4132-9ab0-951a6bba5b25"},{"name":"Warehouses","item":[{"name":"Get warehouses","id":"05a9e8ff-7d04-435f-928f-219330fa1251","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/warehouses","description":"<p>Get a list of all warehouses (physical buildings/locations) for the current seller.</p>\n<p><code>id: 0</code> (\"Default warehouse\") is always included first — it's not a real warehouse record, it's the same sentinel the portal UI has always shown, kept here so every warehouse_id value valid elsewhere in the API (including 0) is actually discoverable.</p>\n<p>Real warehouses are sorted by priority (warehouses with priority = 0 last), then description — same order as the portal UI.</p>\n","urlObject":{"path":["portal","api","v2","seller","warehouses"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>Optional: filter on a specific warehouse</p>\n","type":"text/plain"},"key":"id","value":"1"}],"variable":[]}},"response":[{"id":"2a41c621-bb9f-41bb-b839-43bff06ce211","name":"Get warehouses","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/warehouses","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","warehouses"],"query":[{"key":"id","value":"1","description":"Optional: filter on a specific warehouse","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"warehouses_count\": 2,\n  \"warehouses\": [\n    {\n      \"id\": 0,\n      \"description\": \"Default warehouse\",\n      \"allow_orders\": true,\n      \"priority\": 0,\n      \"packing_bins_total\": 0\n    },\n    {\n      \"id\": 1,\n      \"description\": \"Main Warehouse\",\n      \"allow_orders\": true,\n      \"priority\": 0,\n      \"packing_bins_total\": 4\n    }\n  ]\n}"}],"_postman_id":"05a9e8ff-7d04-435f-928f-219330fa1251"}],"id":"dbc6572d-a7ff-4464-8924-88fa615b92be","description":"<p>A warehouse is a physical building/location. Stock sections belong to a warehouse via warehouse_id. Use this endpoint to look up which warehouses (and IDs) exist before creating or filtering stock sections.</p>\n","_postman_id":"dbc6572d-a7ff-4464-8924-88fa615b92be"},{"name":"Stock sections","item":[{"name":"Get stock sections","id":"2dc73739-c5f4-4d9d-befc-c03d3903b83f","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/stocksections?page=1","description":"<p>This endpoint retrieves a paginated list of stock sections (physical locations/shelves) for the current seller.</p>\n<p>Optional filters include id, parent_section_id, warehouse_id, and location_type. Results can be sorted by id, description, parent_section_id, or warehouse_id, in ascending or descending order.</p>\n<p>Each stock section includes stock_locations_count and total_stock, which tell you whether a DELETE would be blocked (blocked when total_stock &gt; 0) — check this before attempting a delete instead of guessing.</p>\n","urlObject":{"path":["portal","api","v2","seller","stocksections"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>Optional: page number (50 per page)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Optional: filter on a specific section</p>\n","type":"text/plain"},"key":"id","value":"4821"},{"disabled":true,"description":{"content":"<p>Optional: filter on sections nested under a given parent</p>\n","type":"text/plain"},"key":"parent_section_id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional: filter on warehouse</p>\n","type":"text/plain"},"key":"warehouse_id","value":"1"},{"disabled":true,"description":{"content":"<p>Optional: storage or pick</p>\n","type":"text/plain"},"key":"location_type","value":"pick"},{"disabled":true,"description":{"content":"<p>Optional: ( id | description | parent_section_id | warehouse_id )</p>\n","type":"text/plain"},"key":"sort_attr","value":"description"},{"disabled":true,"description":{"content":"<p>Optional: ( ASC | DESC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"}],"variable":[]}},"response":[{"id":"d61ce6f9-3326-4f20-8341-bc3a12ea1ae8","name":"Get stock sections","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/stocksections?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","stocksections"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"stock_sections_count\": 1,\n  \"stock_sections\": [\n    {\n      \"id\": 4821,\n      \"description\": \"A1-01\",\n      \"extra_description\": null,\n      \"reference\": null,\n      \"parent_section_id\": 12,\n      \"warehouse_id\": 1,\n      \"warehouse_name\": \"Main Warehouse\",\n      \"location_type\": \"storage\",\n      \"stock_locations_count\": 2,\n      \"total_stock\": 14\n    }\n  ]\n}"}],"_postman_id":"2dc73739-c5f4-4d9d-befc-c03d3903b83f"},{"name":"Create stock section","id":"1d6c24a3-aecd-48e1-b506-36ecfa52cbbe","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"description\": \"A1-01\",\n  \"warehouse_id\": 1,\n  \"parent_section_id\": 12,\n  \"location_type\": \"pick\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocksections","description":"<p>Create a new stock section (physical location/shelf).</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>description</strong> (string, required)</p>\n<p>  Section name. Must be unique per seller.</p>\n</li>\n<li><p><strong>warehouse_id</strong> (integer, optional)</p>\n<p>  Warehouse this section belongs to. Defaults to 0 (\"Default warehouse\"). Look up valid IDs via GET /warehouses — non-zero values must resolve to an existing warehouse for this seller, otherwise the API returns a 404.</p>\n</li>\n<li><p><strong>parent_section_id</strong> (integer, optional)</p>\n<p>  Parent section ID, for nested locations. Defaults to 0 (top-level/root). A root section organizes the warehouse tree and cannot hold stock locations directly — check GET /stocksections?parent_section_id=0 first, since only one root per warehouse is shown in the portal UI's navigator.</p>\n</li>\n<li><p><strong>extra_description</strong> (string, optional)</p>\n<p>  Free-text notes.</p>\n</li>\n<li><p><strong>reference</strong> (string, optional)</p>\n<p>  Your own reference/code for this section.</p>\n</li>\n<li><p><strong>location_type</strong> (string, optional)</p>\n<p>  storage or pick. Defaults to storage. Returns a 422 for any other value.</p>\n</li>\n</ul>\n<p>Fails with a 409 if a section with the same description already exists for this seller.</p>\n","urlObject":{"path":["portal","api","v2","seller","stocksections"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"eba47841-95b4-4e6d-8702-ac6635e4e813","name":"Create stock section","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"description\": \"A1-01\",\n  \"warehouse_id\": 1,\n  \"parent_section_id\": 12,\n  \"location_type\": \"pick\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocksections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock section created!\",\n  \"stock_section_id\": 4821\n}"}],"_postman_id":"1d6c24a3-aecd-48e1-b506-36ecfa52cbbe"},{"name":"Delete stock section","id":"80fb24bf-734b-42f8-bc3e-2a6b4c37bd32","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_section_id\": 4821\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocksections","description":"<p>Delete a stock section (physical location/shelf).</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>stock_section_id</strong> (integer, required)</p>\n<p>  Section to delete.</p>\n</li>\n</ul>\n<p>Fails with a 409 if the section still holds stock — set the stock of every location in that section to 0 first (via PUT /stocklocations), then retry. Any child sections nested under the deleted section are re-parented to its parent (not deleted). Stock locations left with 0 stock under the deleted section are removed along with it.</p>\n","urlObject":{"path":["portal","api","v2","seller","stocksections"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"4ea82aea-2123-4a45-8446-4b40fff97008","name":"Delete stock section","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_section_id\": 4821\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/stocksections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock section deleted!\"\n}"}],"_postman_id":"80fb24bf-734b-42f8-bc3e-2a6b4c37bd32"}],"id":"9c121139-19f2-43f9-8e57-18135f6c2220","description":"<p>A stock section is a physical location itself (a shelf/rack, e.g. \"A1-01\"), organized in a hierarchy under a warehouse. This is distinct from stock locations, which manage the stock of a product placed at a section — stock locations can already create/delete a product's presence at a section, but not the section itself. Use this endpoint to create or remove the location.</p>\n<p>To look up valid warehouse_id values before creating a section, use GET /warehouses.</p>\n","_postman_id":"9c121139-19f2-43f9-8e57-18135f6c2220"},{"name":"Deliveries","item":[{"name":"Get delivery","id":"406da57f-9de9-4d0a-b66c-8dc3232f80b2","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/delivery?page=1","description":"<p>Get all pending deliveries. Deliveries can be purchase orders from a supplier (inbound), or replenishment orders for a fulfillment center (outbound).</p>\n","urlObject":{"path":["portal","api","v2","seller","delivery"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional ( id | default: order_date | sync_date | updated_at )</p>\n","type":"text/plain"},"key":"id","value":"218"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"status","value":"stocked"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"supplier_id","value":"13"},{"disabled":true,"description":{"content":"<p>optional ( id | default: order_date | sync_date | updated_at )</p>\n","type":"text/plain"},"key":"sort_attr","value":"delivery_date"},{"disabled":true,"description":{"content":"<p>optional ( ASC | default: DESC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional ( inbound | outbound | bol_outbound | amazon_outbound )</p>\n","type":"text/plain"},"key":"delivery_type","value":"inbound"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"ref","value":"myrefrence"},{"disabled":true,"description":{"content":"<p>optional ( new | confirmed | delivered | stocked | shipped | cancelled )</p>\n","type":"text/plain"},"key":"status","value":"new"},{"disabled":true,"description":{"content":"<p>optional: filter deliveries with delivery_date &gt;= this value. Accepts 'Y-m-d' or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"delivery_date_from","value":"2023-01-01"},{"disabled":true,"description":{"content":"<p>optional: filter deliveries with delivery_date &lt;= this value. Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"delivery_date_to","value":"2023-01-31"},{"disabled":true,"description":{"content":"<p>optional, receive only deliveries with updated_at greater the parameter value</p>\n","type":"text/plain"},"key":"updated_at","value":"2023-01-01 14:00:20"}],"variable":[]}},"response":[{"id":"b4926f7c-bf8e-46c6-92b6-2a7ca88ea69b","name":"Get pending deliveries","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/deliveries?page=1&status=stocked&supplier_id=13&sort_attr=delivery_date&sort_dir=DESC","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","deliveries"],"query":[{"key":"page","value":"1"},{"key":"status","value":"stocked","description":"optional"},{"key":"supplier_id","value":"13","description":"optional"},{"key":"sort_attr","value":"delivery_date","description":"optional"},{"key":"sort_dir","value":"DESC","description":"optional"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 10,\n  \"delivery_count\": 2,\n  \"deliveries\": [\n    {\n      \"id\": 8101,\n      \"delivery_type\": \"inbound\",\n      \"ref\": \"PO-2026-0042\",\n      \"status\": \"stocked\",\n      \"extra_description\": \"Restock from PowerKite – Q2 order.\",\n      \"pallets\": 1,\n      \"boxes\": 4,\n      \"delivery_date\": \"2026-06-02\",\n      \"stocked_at\": \"2026-06-03 14:22:11\",\n      \"created_at\": \"2026-05-18 10:05:00\",\n      \"supplier_id\": 42,\n      \"supplier\": {\n        \"id\": 42,\n        \"firstname\": \"Klaus\",\n        \"lastname\": \"Berger\",\n        \"company\": \"PowerKite Manufacturing GmbH\",\n        \"phone\": \"+49 89 1234 5678\",\n        \"email\": \"orders@powerkite.example.com\",\n        \"address1\": \"Industriestraße 12\",\n        \"address2\": \"\",\n        \"city\": \"München\",\n        \"state\": \"Bayern\",\n        \"zipcode\": \"80331\",\n        \"country\": \"DE\",\n        \"payment_term\": 30,\n        \"website\": \"https://powerkite.example.com\",\n        \"vat\": 19,\n        \"vat_number\": \"DE123456789\",\n        \"email_text\": \"Hi Klaus,\\\\n\\\\nPlease find our latest purchase order attached.\\\\n\\\\nBest regards,\\\\nUpwind Watersports\"\n      },\n      \"items\": [\n        {\n          \"id\": 17501,\n          \"product_id\": 25851,\n          \"amount\": 50,\n          \"original_amount\": 50,\n          \"ean\": \"8719326583631\",\n          \"sku\": \"UPW-BAR-52\",\n          \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"ref\": \"PO-2026-0042-L1\",\n          \"stock_location_id\": 114,\n          \"seller_is_processed\": 1,\n          \"is_stocked\": 1\n        },\n        {\n          \"id\": 17502,\n          \"product_id\": 25853,\n          \"amount\": 12,\n          \"original_amount\": 12,\n          \"ean\": \"8719326583655\",\n          \"sku\": \"UPW-BRD-134\",\n          \"title\": \"Kiteboard Surge 134cm\",\n          \"ref\": \"PO-2026-0042-L2\",\n          \"stock_location_id\": 113,\n          \"seller_is_processed\": 1,\n          \"is_stocked\": 1\n        }\n      ]\n    },\n    {\n      \"id\": 8102,\n      \"delivery_type\": \"inbound\",\n      \"ref\": \"PO-2026-0050\",\n      \"status\": \"new\",\n      \"extra_description\": \"Wetsuit restock for summer season.\",\n      \"pallets\": 0,\n      \"boxes\": 2,\n      \"delivery_date\": \"2026-06-20\",\n      \"stocked_at\": null,\n      \"created_at\": \"2026-06-10 09:30:00\",\n      \"supplier_id\": 7,\n      \"supplier\": {\n        \"id\": 7,\n        \"firstname\": \"Sarah\",\n        \"lastname\": \"Williams\",\n        \"company\": \"NeoTech Wetsuits Ltd.\",\n        \"phone\": \"+44 1637 555 100\",\n        \"email\": \"wholesale@neotech.example.com\",\n        \"address1\": \"Harbour Industrial Estate 22\",\n        \"address2\": \"Unit 4B\",\n        \"city\": \"Newquay\",\n        \"state\": \"Cornwall\",\n        \"zipcode\": \"TR7 1AB\",\n        \"country\": \"GB\",\n        \"payment_term\": 14,\n        \"website\": \"https://neotech.example.com\",\n        \"vat\": 20,\n        \"vat_number\": \"GB987654321\",\n        \"email_text\": \"\"\n      },\n      \"items\": [\n        {\n          \"id\": 17511,\n          \"product_id\": 25852,\n          \"amount\": 40,\n          \"original_amount\": 40,\n          \"ean\": \"8719326583648\",\n          \"sku\": \"UPW-WET-M\",\n          \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n          \"ref\": \"PO-2026-0050-L1\",\n          \"stock_location_id\": 0,\n          \"seller_is_processed\": 0,\n          \"is_stocked\": 0\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"406da57f-9de9-4d0a-b66c-8dc3232f80b2"},{"name":"Create delivery","id":"7aee703d-0cb6-4349-9506-0f7c385b8aeb","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"ref\": \"1234567890\",\n    \"delivery_date\": \"2021-12-10\",\n    \"delivery_type\": \"inbound\",\n    \"extra_description\": \"This delivery was created using the API.\",\n    \"pallets\": 0,\n    \"boxes\": 0,\n    \"supplier_id\": 13,\n    \"items\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"amount\": 1200\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/delivery","description":"<p>Create a new delivery. It is at this moment not yet possible to confirm and stock the inbound via the API.</p>\n","urlObject":{"path":["portal","api","v2","seller","delivery"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"385c1c87-0a19-437c-b8af-93de57647d25","name":"Create delivery","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"ref\": \"1234567890\",\n    \"delivery_date\": \"2021-12-10\",\n    \"delivery_type\": \"inbound\",\n    \"extra_description\": \"This delivery was automatically created using the API.\",\n    \"pallets\": 0,\n    \"boxes\": 0,\n    \"supplier_id\": 13,\n    \"items\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"amount\": 1200\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/delivery"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Inserted delivery: 8103\",\n  \"delivery_id\": 8103\n}"}],"_postman_id":"7aee703d-0cb6-4349-9506-0f7c385b8aeb"},{"name":"Update a delivery","id":"8b708066-80e6-4cdf-bb4d-e5a2040fcc7c","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"delivery_id\": 411,\n  \"ref\": \"Ref-00123\",\n  \"status\": \"shipped\",\n  \"extra_description\": \"Fragile items, handle with care.\",\n  \"pallets\": 5,\n  \"boxes\": 20,\n  \"delivery_date\": \"2023-12-20\",\n  \"supplier_id\": 789,\n  \"items\": [\n    {\n        \"id\": \"411\",\n        \"amount\": 100,\n        \"is_processed\": 0\n    },\n    {\n        \"ean\": \"8719326583617\",\n        \"amount\": 20,\n        \"is_processed\": 1\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/delivery","description":"<h3 id=\"update-seller-delivery\">Update Seller Delivery</h3>\n<p>This endpoint allows the user to update the details of a seller delivery.</p>\n<p><strong>HTTP Method</strong>: PUT</p>\n<h4 id=\"request-body\">Request Body</h4>\n<ul>\n<li><p><code>delivery_id</code> (integer, required): The ID of the delivery to be updated.</p>\n</li>\n<li><p><code>ref</code> (string, optional): The reference for the delivery.</p>\n</li>\n<li><p><code>status</code> (string, optional): The status of the delivery: 'new', 'confirmed', 'delivered', 'shipped' or 'cancelled'.</p>\n</li>\n<li><p><code>extra_description</code> (string, optional): Any additional description related to the delivery.</p>\n</li>\n<li><p><code>pallets</code> (integer, optional): The number of pallets for the delivery.</p>\n</li>\n<li><p><code>boxes</code> (integer, optional): The number of boxes for the delivery.</p>\n</li>\n<li><p><code>delivery_date</code> (string, optional): The date of the delivery.</p>\n</li>\n<li><p><code>delivered_at</code> (string, optional): The timestamp when the delivery was completed.</p>\n</li>\n<li><p><code>shipped_at</code> (string, optional): The timestamp when the delivery was shipped.</p>\n</li>\n<li><p><code>supplier_id</code> (integer, optional): The ID of the supplier associated with the delivery.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p><code>response</code> (string): Indicates the status of the update, e.g., \"success\".</p>\n</li>\n<li><p><code>message</code> (string): Describes the outcome of the update operation.</p>\n</li>\n</ul>\n<p>When updating the inbound items, you can send us either the item 'id' or 'ean'. When the EAN is not found in the inbound, we will add it as a new item.</p>\n<h4 id=\"example\">Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"response\": \"success\",\n  \"message\": \"Successfully updated delivery: 12345\"\n}\n\n</code></pre>\n","urlObject":{"path":["portal","api","v2","seller","delivery"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"5ff8f3bc-844b-4a3f-a4e6-82248f10b419","name":"Update a delivery","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"delivery_id\": 12345,\n  \"ref\": \"Ref-00123\",\n  \"status\": \"shipped\",\n  \"extra_description\": \"Fragile items, handle with care.\",\n  \"pallets\": 5,\n  \"boxes\": 20,\n  \"delivery_date\": \"2023-12-20\",\n  \"supplier_id\": 789,\n  \"items\": [\n    {\n        \"id\": \"1001\",\n        \"amount\": 100,\n        \"is_processed\": 0\n    },\n    {\n        \"ean\": \"870987654321\",\n        \"amount\": 20,\n        \"is_processed\": 1\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/delivery"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Successfully updated delivery: 8101\"\n}"}],"_postman_id":"8b708066-80e6-4cdf-bb4d-e5a2040fcc7c"},{"name":"Delete delivery","id":"d997775c-647d-43c9-b7b2-e8774901237c","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"delivery_id\": 69\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/delivery","description":"<p>Create a new inbound delivery from your supplier. It is at this moment not yet possible to confirm and stock the inbound via the API.</p>\n","urlObject":{"path":["portal","api","v2","seller","delivery"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"4abd92a6-69ec-4024-a132-51608947d888","name":"Delete delivery","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n    \"delivery_id\": 69\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/delivery"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Successfully deleted delivery: 8101\"\n}"}],"_postman_id":"d997775c-647d-43c9-b7b2-e8774901237c"}],"id":"eb7749c3-9e6b-4281-a3bd-97bbf75fc0d5","description":"<p>Deliveries are incoming (inbounds) or out going (outbounds) shipments to / from your warehouse. These could either be purchase orders incoming from your supplier in China, or out going shipment to replensih FBA / LvB. There are four delivery types:</p>\n<ul>\n<li>inbound (purchase orders to replenish your own warehouse)</li>\n<li>outbound (to replenish your (non FBA / LvB) fulfillment center)</li>\n<li>bol_outbound (to replenish your LvB stock level)</li>\n<li>amazon_outbound (to replenish your FBA stock level)</li>\n</ul>\n<p>Bol outbounds and Amazon outbounds can be created in ChannelDock manually, or are automatically imported from the sales channel.</p>\n","_postman_id":"eb7749c3-9e6b-4281-a3bd-97bbf75fc0d5"},{"name":"Suppliers","item":[{"name":"Get all suppliers","id":"f31fa14a-ddd0-4d7b-bc61-63ce2276af04","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/suppliers?page=1","description":"<p>Get a list of all suppliers.</p>\n","urlObject":{"path":["portal","api","v2","seller","suppliers"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"disabled":true,"key":"id","value":"13"},{"disabled":true,"key":"company","value":"ChannelDocks"},{"disabled":true,"key":"sort_attr","value":"company"},{"disabled":true,"key":"sort_dir","value":"ASC"}],"variable":[]}},"response":[{"id":"3a006760-5707-49a8-a09d-65662ae34267","name":"Get all suppliers","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/suppliers?page=1&company=Dutchwebs&sort_attr=company&sort_dir=ASC","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","suppliers"],"query":[{"key":"page","value":"1"},{"key":"id","value":"13","disabled":true},{"key":"company","value":"Dutchwebs"},{"key":"sort_attr","value":"company"},{"key":"sort_dir","value":"ASC"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"suppliers_count\": 3,\n  \"suppliers\": [\n    {\n      \"id\": 42,\n      \"firstname\": \"Klaus\",\n      \"lastname\": \"Berger\",\n      \"company\": \"PowerKite Manufacturing GmbH\",\n      \"phone\": \"+49 89 1234 5678\",\n      \"email\": \"orders@powerkite.example.com\",\n      \"address1\": \"Industriestraße 12\",\n      \"address2\": \"\",\n      \"city\": \"München\",\n      \"state\": \"Bayern\",\n      \"zipcode\": \"80331\",\n      \"country\": \"DE\",\n      \"payment_term\": 30,\n      \"website\": \"https://powerkite.example.com\",\n      \"vat\": 19,\n      \"vat_number\": \"DE123456789\",\n      \"email_text\": \"Hi Klaus,\\\\n\\\\nPlease find our latest purchase order attached.\\\\n\\\\nBest regards,\\\\nUpwind Watersports\"\n    },\n    {\n      \"id\": 7,\n      \"firstname\": \"Sarah\",\n      \"lastname\": \"Williams\",\n      \"company\": \"NeoTech Wetsuits Ltd.\",\n      \"phone\": \"+44 1637 555 100\",\n      \"email\": \"wholesale@neotech.example.com\",\n      \"address1\": \"Harbour Industrial Estate 22\",\n      \"address2\": \"Unit 4B\",\n      \"city\": \"Newquay\",\n      \"state\": \"Cornwall\",\n      \"zipcode\": \"TR7 1AB\",\n      \"country\": \"GB\",\n      \"payment_term\": 14,\n      \"website\": \"https://neotech.example.com\",\n      \"vat\": 20,\n      \"vat_number\": \"GB987654321\",\n      \"email_text\": \"\"\n    },\n    {\n      \"id\": 13,\n      \"firstname\": \"Nicky\",\n      \"lastname\": \"Kouffeld\",\n      \"company\": \"Dutchwebs Distribution B.V.\",\n      \"phone\": \"+31 346 123 456\",\n      \"email\": \"sales@dutchwebs.example.com\",\n      \"address1\": \"Stationsweg 8\",\n      \"address2\": \"\",\n      \"city\": \"Breukelen\",\n      \"state\": \"Utrecht\",\n      \"zipcode\": \"3621 LL\",\n      \"country\": \"NL\",\n      \"payment_term\": 14,\n      \"website\": \"https://dutchwebs.example.com\",\n      \"vat\": 21,\n      \"vat_number\": \"NL801234567B01\",\n      \"email_text\": \"\"\n    }\n  ]\n}"}],"_postman_id":"f31fa14a-ddd0-4d7b-bc61-63ce2276af04"},{"name":"Create / Update supplier","id":"fe9d9d2b-89a5-49b2-86e4-f0df4f5cd497","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"company\": \"company\",\n    \"firstname\": \"firstname\",\n    \"lastname\": \"lastname\",\n    \"phone\": \"phone\",\n    \"email\": \"email\",\n    \"address1\": \"address1\",\n    \"address2\": \"address2\",\n    \"city\": \"city\",\n    \"state\": \"state\",\n    \"zipcode\": \"zipcode\",\n    \"country\": \"country\",\n    \"payment_term\": \"payment_term\",\n    \"website\": \"website\",\n    \"vat\": \"vat\",\n    \"vat_number\": \"vat_number\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/suppliers","description":"<p>Update an existing or create a new supplier.</p>\n","urlObject":{"path":["portal","api","v2","seller","suppliers"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"066af176-b535-426a-9b1a-c812fe210ca2","name":"Create supplier","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n    \"company\": \"company\",\n    \"firstname\": \"firstname\",\n    \"lastname\": \"lastname\",\n    \"phone\": \"phone\",\n    \"email\": \"email\",\n    \"address1\": \"address1\",\n    \"address2\": \"address2\",\n    \"city\": \"city\",\n    \"state\": \"state\",\n    \"zipcode\": \"zipcode\",\n    \"country\": \"country\",\n    \"payment_term\": \"payment_term\",\n    \"website\": \"website\",\n    \"vat\": \"vat\",\n    \"vat_number\": \"vat_number\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/suppliers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Inserted new supplier.\"\n}"},{"id":"1575c8dc-d5f7-4d2a-8238-869419204137","name":"Update supplier","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n    \"company\": \"company\",\n    \"firstname\": \"Nicky\",\n    \"lastname\": \"Kouffeld\",\n    \"phone\": \"phone\",\n    \"email\": \"nicky@gmail.com\",\n    \"address1\": \"Example street 12\",\n    \"address2\": \"1082AS Amsterdam\",\n    \"city\": \"Amsterdam\",\n    \"state\": \"Noord-Holland\",\n    \"zipcode\": \"1082AS\",\n    \"country\": \"the Netherlands\",\n    \"payment_term\": \"30 days\",\n    \"website\": \"channeldock.com\",\n    \"vat\": \"21\",\n    \"vat_number\": \"8347777241\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/suppliers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Updated existing supplier.\"\n}"}],"_postman_id":"fe9d9d2b-89a5-49b2-86e4-f0df4f5cd497"},{"name":"Delete supplier","id":"8321ce59-f055-482b-8973-afec24984a7c","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"company\": \"company\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/suppliers","description":"<p>Delete an existing supplier.</p>\n","urlObject":{"path":["portal","api","v2","seller","suppliers"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"67cd9e75-63ff-4d31-8f63-905d2eea7747","name":"Delete supplier","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n    \"company\": \"company\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/suppliers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Successfully deleted supplier: 42\"\n}"}],"_postman_id":"8321ce59-f055-482b-8973-afec24984a7c"}],"id":"dfa1f82d-1b20-4cd4-9806-e86d6111f6a2","description":"<p>Suppliers can be created in a seller account. They can then be assigned to an inbound delivery, or directly to a product.</p>\n","_postman_id":"dfa1f82d-1b20-4cd4-9806-e86d6111f6a2"},{"name":"Returns","item":[{"name":"Get returns","id":"18b1a383-c723-41a5-bd3f-8b731c88e14f","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/returns?page=1","description":"<p>Get a list of all returns.</p>\n<p>Add <code>include_attachments=true</code> to also get each return's uploaded files, with the file content included as base64 (<code>base64_content</code>) — no extra call needed to read attachment content. It's opt-in because it downloads every file from storage, which isn't free. Without it, the <code>attachments</code> field is omitted entirely.</p>\n","urlObject":{"path":["portal","api","v2","seller","returns"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional (default false): also return each return's attachments, with base64_content included</p>\n","type":"text/plain"},"key":"include_attachments","value":"true"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"13"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sort_attr","value":"order_id"},{"disabled":true,"description":{"content":"<p>optional ( ASC or DESC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"},{"disabled":true,"description":{"content":"<p>optional ( Order ID from e.g. Amazon or bol.com )</p>\n","type":"text/plain"},"key":"remote_order_id","value":"12345"},{"disabled":true,"description":{"content":"<p>optional ( Return ID from e.g. Amazon or bol.com )</p>\n","type":"text/plain"},"key":"remote_return_id","value":"12345"},{"disabled":true,"description":{"content":"<p>optional ( 1 or 0 )</p>\n","type":"text/plain"},"key":"is_handled","value":"1"},{"disabled":true,"description":{"content":"<p>optional ( date )</p>\n","type":"text/plain"},"key":"created_at","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>optional ( date )</p>\n","type":"text/plain"},"key":"start_date","value":"2024-01-01"},{"disabled":true,"description":{"content":"<p>optional ( date )</p>\n","type":"text/plain"},"key":"end_date","value":"2025-01-01"}],"variable":[]}},"response":[{"id":"67a4f6c2-f1ae-432a-94e9-b4b61dbe5f73","name":"Get returns","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/returns?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","seller","returns"],"query":[{"key":"page","value":"1"},{"key":"id","value":"13","disabled":true},{"key":"include_attachments","value":"true","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"return_count\": 1,\n  \"returns\": [\n    {\n      \"id\": 9301,\n      \"api_id\": 2450,\n      \"order_id\": 88211,\n      \"remote_return_id\": \"BOL-RET-77123\",\n      \"is_handled\": 1,\n      \"handled_date\": \"2026-06-13 11:14:08\",\n      \"created_at\": \"2026-06-12 16:45:22\",\n      \"channel_id\": 1,\n      \"custom_return_comment\": \"Return product 8719326583648 handled by Lars van Schaick (RETURN_RECEIVED).\",\n      \"return_products\": [\n        {\n          \"id\": 12211,\n          \"api_id\": 2450,\n          \"ean\": \"8719326583648\",\n          \"quantity\": 1,\n          \"reason\": \"Defective seam\",\n          \"return_status\": \"RETURN_RECEIVED\",\n          \"return_id\": 9301,\n          \"order_id\": 88211,\n          \"remote_order_id\": \"BOL-19877\",\n          \"restocked\": 0,\n          \"stock_location_id\": 0,\n          \"track_and_trace\": \"3SBOLRET00099\",\n          \"child_from_bundle\": 0,\n          \"order_product\": {\n            \"id\": 91215,\n            \"api_id\": 2450,\n            \"seller_id\": 1,\n            \"center_id\": 0,\n            \"order_id\": 88211,\n            \"orderItemId\": \"BOL-88211-1\",\n            \"ean\": \"8719326583648\",\n            \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n            \"price\": 189.95,\n            \"quantity\": 1,\n            \"is_shipped\": 1\n          }\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": 501,\n          \"name\": \"9301-64f1c2a1b2c3d-damage.jpg\",\n          \"extension\": \"jpg\",\n          \"content_type\": \"image/jpeg\",\n          \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"18b1a383-c723-41a5-bd3f-8b731c88e14f"},{"name":"Handle return","id":"1ce7d997-48f5-4316-8b91-9fe3c53cde14","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"is_handled\": true,\n  \"needs_attention\": false,\n  \"attachments\": [\n    {\n      \"filename\": \"received-package.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"inspection-report.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns","description":"<p>This endpoint updates an existing return using its return ID. Send a PUT request with a JSON body (<code>Content-Type: application/json</code>) and the fields that match what you want to do.</p>\n<p>Simple update (flags and attachments)\nYou can mark a return as handled by setting <code>is_handled</code> to <code>true</code>. When a return is marked as handled, the system records the handling timestamp automatically.</p>\n<p>You can flag or unflag a return for attention by setting <code>needs_attention</code> to <code>true</code>/<code>false</code> — the same field as the portal UI's \"needs attention\" toggle.</p>\n<p>You may include attachments (e.g. photos or documents). Each item must use base64-encoded <code>base64_content</code> and a <code>filename</code>. They are validated and stored only when the update completes successfully.</p>\n<h3 id=\"processing-return-lines-including-marketplace-handling\">Processing return lines (including marketplace handling)</h3>\n<p>To process individual return lines (and push handling to channels such as Bol.com, Shopify, Otto, or Returnless when supported), include a <code>return_products</code> array. Each element must include:</p>\n<ul>\n<li><p><code>id</code> (integer) — the return product line id (from the GET returns response, not the marketplace order line id).</p>\n</li>\n<li><p><code>return_status</code> (string) — one of: <code>PENDING</code>, <code>RETURN_RECEIVED</code>, <code>EXCHANGE_PRODUCT</code>, <code>REPAIR_PRODUCT</code>, <code>STILL_APPROVED</code>, <code>RETURN_DOES_NOT_MEET_CONDITIONS</code>, <code>CUSTOMER_KEEPS_PRODUCT_PAID</code>.</p>\n</li>\n<li><p><code>quantity</code> (integer) — how many units to handle on that line; must be greater than zero and not greater than the line quantity.</p>\n</li>\n</ul>\n<p>When <code>return_products</code> is present, the system applies those statuses to each line and runs the same remote handling logic as elsewhere in the product (subject to channel support, <code>remote_return_id</code>, and API settings). If all relevant lines are no longer pending, the parent return may be marked handled automatically. Optional attachments are still only processed if the operation completes successfully.</p>\n<p>If <code>return_products</code> is omitted, behaviour is limited to updating <code>is_handled</code> / <code>needs_attention</code> / <code>handled_date</code> (and optional attachments) as in the simple update above.</p>\n<p>If the <code>return_id</code> is valid and the return belongs to the authenticated seller, the record is updated as described. On error, the API returns an appropriate HTTP status and a message describing the problem.</p>\n<h3 id></h3>\n<p>Body parameters</p>\n<p><code>return_id</code> (integer, required)\nThe unique identifier of the return to update.</p>\n<p><code>is_handled</code> (boolean, optional)\nUsed when you are not sending <code>return_products</code>. If <code>true</code>, the return is marked as handled and a handling date is set automatically.</p>\n<p><code>needs_attention</code> (boolean, optional)\nFlags (<code>true</code>) or unflags (<code>false</code>) the return for attention.</p>\n<p><code>return_products</code> (array, optional)\nIf present, each object must include:</p>\n<ul>\n<li><p><code>id</code> (integer, required) — return product id.</p>\n</li>\n<li><p><code>return_status</code> (string, required) — one of the values listed above.</p>\n</li>\n<li><p><code>quantity</code> (integer, required) — units to handle on that line.</p>\n</li>\n<li><p><code>attachments</code> (array, optional)\n  Files related to the return, as base64. Each item must include:</p>\n</li>\n<li><p><code>filename</code> (string)</p>\n</li>\n<li><p><code>base64_content</code> (string, base64-encoded file content)</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","returns"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"587bac82-caa3-432b-b0f7-b4282cfecb7b","name":"Handle return","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"return_products\": [\n    {\n      \"id\": 100001,\n      \"return_status\": \"RETURN_RECEIVED\",\n      \"quantity\": 1\n    },\n    {\n      \"id\": 100002,\n      \"return_status\": \"RETURN_DOES_NOT_MEET_CONDITIONS\",\n      \"quantity\": 1\n    }\n  ],\n  \"attachments\": [\n    {\n      \"filename\": \"received-package.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...\"\n    },\n    {\n      \"filename\": \"inspection-report.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcOkw7zDtsOf...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Return ID 9301 updated!\"\n}"}],"_postman_id":"1ce7d997-48f5-4316-8b91-9fe3c53cde14"},{"name":"Create return","id":"d96c123c-eb8e-4fcd-b228-c69c42c97350","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_action\": \"PENDING\",\n  \"return_track_trace\": \"3SABCD123456789\",\n  \"order_products\": [\n    {\n      \"order_id\": 123456,\n      \"quantity\": 1,\n      \"reason\": \"DAMAGED\"\n    },\n    {\n      \"order_id\": 123456,\n      \"quantity\": 2,\n      \"reason\": \"NOT_AS_DESCRIBED\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"filename\": \"damage-photo-1.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"invoice.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns","description":"<p>This endpoint allows you to create a new return based on a set of order products. To initiate a return, send a POST request containing an order_products array, where each item specifies the related order_product_id and the quantity to be returned. At least one product must have a quantity greater than zero for the return to be created successfully.</p>\n<p>Optionally, you may provide a return_action. If omitted, the return will default to PENDING.</p>\n<p>You can also include a return_track_trace value to store tracking information for the return shipment.</p>\n<p>Additionally, this endpoint supports uploading attachments, such as photos or documents related to the return (e.g. damage images or invoices). Attachments must be provided as base64-encoded content and will be validated and stored upon successful return creation.</p>\n<p>If the request is valid, the API creates a new return record, associates the provided products, stores any tracking information, and processes any supplied attachments. In case of an error, the API responds with an appropriate HTTP status code and a descriptive error message.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>order_products</strong> (array, required)</p>\n<p>  List of order products to be returned. Each item must include:</p>\n<ul>\n<li><p>order_product_id (integer, required)</p>\n</li>\n<li><p>quantity (integer, required, must be greater than 0)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>return_action</strong> (string, optional)</p>\n<p>  The initial status of the return. Defaults to PENDING.</p>\n<p>  Allowed values:</p>\n<p>  PENDING, RETURN_RECEIVED, EXCHANGE_PRODUCT, REPAIR_PRODUCT, STILL_APPROVED, RETURN_DOES_NOT_MEET_CONDITIONS, CUSTOMER_KEEPS_PRODUCT_PAID</p>\n</li>\n<li><p><strong>return_track_trace</strong> (string, optional)</p>\n<p>  Track and trace code for the return shipment.</p>\n</li>\n<li><p>Files related to the return, provided as base64-encoded content. Each attachment must include:</p>\n<ul>\n<li><p>filename (string)</p>\n</li>\n<li><p>base64_content (string, base64-encoded file content)</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","returns"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"33d7b646-49b0-4c85-9211-6e681f4c2ba4","name":"Create return","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_action\": \"PENDING\",\n  \"return_track_trace\": \"3SABCD123456789\",\n  \"order_products\": [\n    {\n      \"order_id\": 123456,\n      \"quantity\": 1,\n      \"reason\": \"DAMAGED\"\n    },\n    {\n      \"order_id\": 123456,\n      \"quantity\": 2,\n      \"reason\": \"NOT_AS_DESCRIBED\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"filename\": \"damage-photo-1.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"invoice.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Return created successfully\",\n  \"newReturnId\": 9302\n}"}],"_postman_id":"d96c123c-eb8e-4fcd-b228-c69c42c97350"},{"name":"Add return attachments","id":"f6061f3d-7576-4812-8388-94092e8e7e9e","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachments\": [\n    {\n      \"filename\": \"extra-photo.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns/attachments","description":"<p>Add one or more attachments to an existing return, after it has already been created. This is the same attachment logic used by <code>POST</code>/<code>PUT /returns</code>, but for attaching files after the fact — the return is identified in the body (<code>return_id</code>), not in the URL, matching the rest of this API.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>return_id</strong> (integer, required)</p>\n<p>  The return to attach the files to.</p>\n</li>\n<li><p><strong>attachments</strong> (array, required)</p>\n<p>  One or more files, each an object with:</p>\n<ul>\n<li><p>filename (string, required)</p>\n</li>\n<li><p>base64_content (string, required, base64-encoded file content)</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Allowed file extensions: png, jpg, jpeg, gif, webp, zip, pdf, docx, xlsx, xls, csv. Max 10MB per file.</p>\n<p>The return must belong to the authenticated seller, otherwise the API responds with an appropriate HTTP status code and error message.</p>\n","urlObject":{"path":["portal","api","v2","seller","returns","attachments"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"846008df-27a3-4195-a94b-a08ac9a9d7c1","name":"Add return attachments","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachments\": [\n    {\n      \"filename\": \"extra-photo.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns/attachments"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attachments_uploaded\": 1\n}"}],"_postman_id":"f6061f3d-7576-4812-8388-94092e8e7e9e"},{"name":"Delete return attachment","id":"64fcf2ed-d56d-4cd1-9a88-1b466541fb62","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachment_id\": 501\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns/attachments","description":"<p>Delete a single uploaded attachment from a return.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>return_id</strong> (integer, required)</p>\n<p>  The return the attachment belongs to.</p>\n</li>\n<li><p><strong>attachment_id</strong> (integer, required)</p>\n<p>  The <code>id</code> value from the <code>attachments</code> array (returned by <code>GET /returns?include_attachments=true</code>).</p>\n</li>\n</ul>\n<p>The attachment must belong to a return owned by the authenticated seller. Deletion removes the file from storage and its database record; if storage deletion fails, the database record is still removed.</p>\n","urlObject":{"path":["portal","api","v2","seller","returns","attachments"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a51d007d-9c10-47e1-b75d-db548a193d45","name":"Delete return attachment","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachment_id\": 501\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/returns/attachments"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Attachment ID 501 deleted!\"\n}"}],"_postman_id":"64fcf2ed-d56d-4cd1-9a88-1b466541fb62"}],"id":"1169f998-bf89-4ee2-bfd3-a9e0fc05e98b","description":"<p>A seller can manually create a return in their account. Using this endpoint you can fetch all open (?is_handled=0) or processed (?is_handled=1) returns.</p>\n","_postman_id":"1169f998-bf89-4ee2-bfd3-a9e0fc05e98b"},{"name":"User logs","item":[{"name":"Get user logs","id":"2f4cbf38-60fc-4713-9c65-a74eb0c68f8c","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/userlogs?page=1","description":"<p>Retrieve user activity logs for the authenticated seller. Returns 250 items per page. Optional filters: user_id, status, function_name, start_date, end_date, sort_dir.</p>\n","urlObject":{"path":["portal","api","v2","seller","userlogs"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"user_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"status","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"function_name","value":""},{"disabled":true,"description":{"content":"<p>optional (datetime)</p>\n","type":"text/plain"},"key":"start_date","value":"2024-01-01 00:00:00"},{"disabled":true,"description":{"content":"<p>optional (datetime)</p>\n","type":"text/plain"},"key":"end_date","value":"2024-12-31 23:59:59"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"}],"variable":[]}},"response":[{"id":"2a82e38f-3454-4a8c-9052-2d777d870be7","name":"Get user logs","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/user_logs?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","seller","user_logs"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 250,\n  \"user_logs\": [\n    {\n      \"id\": 60412,\n      \"status\": \"function_call\",\n      \"user_id\": 1,\n      \"title\": \"Order Created\",\n      \"description\": \"Order WC-88210 created via WooCommerce\",\n      \"created_at\": \"2026-06-13 09:24:11\",\n      \"function_name\": \"createOrder\"\n    },\n    {\n      \"id\": 60408,\n      \"status\": \"api_connected\",\n      \"user_id\": 1,\n      \"title\": \"PostNL gekoppeld\",\n      \"description\": \"connectPostNL\",\n      \"created_at\": \"2026-06-02 09:14:55\",\n      \"function_name\": \"connectAPI\"\n    },\n    {\n      \"id\": 60355,\n      \"status\": \"stock_corrected\",\n      \"user_id\": 1,\n      \"title\": \"Stock corrected\",\n      \"description\": \"Kiteboard Surge 134cm: 18 → 16\",\n      \"created_at\": \"2026-06-05 10:12:44\",\n      \"function_name\": \"correctStock\"\n    },\n    {\n      \"id\": 60310,\n      \"status\": \"api_deleted\",\n      \"user_id\": 1,\n      \"title\": \"API verwijderd: Magento (oud)\",\n      \"description\": \"deleteAPI\",\n      \"created_at\": \"2026-05-12 14:02:08\",\n      \"function_name\": \"deleteAPI\"\n    }\n  ]\n}"}],"_postman_id":"2f4cbf38-60fc-4713-9c65-a74eb0c68f8c"}],"id":"514434c6-b759-42c2-b909-157ec6ef99de","description":"<p>Retrieve activity logs for users associated with the seller account.</p>\n","_postman_id":"514434c6-b759-42c2-b909-157ec6ef99de"},{"name":"Tasks","item":[{"name":"Get tasks","id":"258455f8-00b2-471f-aacf-87e1990cb29b","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/tasks?page=1","description":"<p>List tasks for the authenticated seller (<code>tasks.seller_id</code>). Returns all statuses unless you filter with <code>status</code>.</p>\n<p>Default pagination: 50 items per page (max 100). Sort by <code>created_at</code> using <code>sort_dir</code> (default DESC).</p>\n<p>Planned datetimes are stored in UTC; send filter dates in a format accepted by the API.</p>\n","urlObject":{"path":["portal","api","v2","seller","tasks"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional (default 50, max 100)</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC, sorts on created_at)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional (single task, internal tasks.id)</p>\n","type":"text/plain"},"key":"id","value":""},{"disabled":true,"description":{"content":"<p>optional (open, in_progress, waiting, completed, cancelled — comma-separated allowed)</p>\n","type":"text/plain"},"key":"status","value":"open"},{"disabled":true,"description":{"content":"<p>optional (assignee user id, must be account employee)</p>\n","type":"text/plain"},"key":"planned_for_user_id","value":""},{"disabled":true,"description":{"content":"<p>optional (ChannelDock order id)</p>\n","type":"text/plain"},"key":"order_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"product_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"return_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"delivery_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"task_category_id","value":""},{"disabled":true,"description":{"content":"<p>optional (filter tasks linked to this fulfillment center)</p>\n","type":"text/plain"},"key":"center_id","value":""},{"disabled":true,"description":{"content":"<p>optional (partial match on title and description)</p>\n","type":"text/plain"},"key":"search","value":""},{"disabled":true,"description":{"content":"<p>optional (filters planned_datetime)</p>\n","type":"text/plain"},"key":"date_from","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>optional (filters planned_datetime)</p>\n","type":"text/plain"},"key":"date_to","value":"2026-12-31"}],"variable":[]}},"response":[{"id":"20db8f66-c83f-4431-935e-889018f1ec3c","name":"Get tasks","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/tasks?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","seller","tasks"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"tasks\": [\n    {\n      \"id\": 123,\n      \"title\": \"Check stock\",\n      \"description\": \"Verify shelf A3\",\n      \"status\": \"open\",\n      \"created_at\": \"2026-03-24 10:00:00\",\n      \"completed_at\": null,\n      \"planned_datetime\": \"2026-03-25 14:00:00\",\n      \"planned_end_datetime\": null,\n      \"created_by_user_id\": 1,\n      \"planned_for_user_id\": 42,\n      \"order_id\": null,\n      \"product_id\": 17007,\n      \"return_id\": null,\n      \"delivery_id\": null,\n      \"seller_id\": 2,\n      \"center_id\": null,\n      \"task_category_id\": 5,\n      \"task_price\": 0,\n      \"task_currency\": \"EUR\",\n      \"is_internal\": false\n    }\n  ]\n}"}],"_postman_id":"258455f8-00b2-471f-aacf-87e1990cb29b"},{"name":"Create task","id":"2917658d-bb85-48a4-8435-55d5ff3ca9ba","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"Pick extra units for order\",\n  \"description\": \"Customer called\",\n  \"planned_for_user_id\": 42,\n  \"planned_datetime\": \"2026-03-25 09:00:00\",\n  \"order_id\": 3161,\n  \"task_category_id\": 5\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/tasks","description":"<p>Create a new task for the seller account.</p>\n<p><strong>Required:</strong> <code>title</code></p>\n<p><strong>Optional:</strong> <code>description</code>, <code>planned_for_user_id</code>, <code>planned_datetime</code>, <code>planned_end_datetime</code>, <code>order_id</code>, <code>product_id</code>, <code>return_id</code>, <code>delivery_id</code>, <code>task_category_id</code> (or <code>category_id</code>), <code>task_price</code>, <code>task_currency</code> (default EUR), <code>center_id</code> (only if the fulfillment center is connected).</p>\n<p><strong>Rules:</strong></p>\n<ul>\n<li>New seller tasks always start with status <code>open</code>.</li>\n<li><code>is_internal</code> is always false for sellers.</li>\n<li>Task category is only applied when <code>center_id</code> is not set (seller-owned categories).</li>\n<li>Linked entities must belong to this seller.</li>\n<li><code>planned_datetime</code> and <code>planned_end_datetime</code> are interpreted in the seller account timezone and stored as UTC.</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","tasks"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"c5398ae2-c7e1-4b93-9b88-39c74814de65","name":"Create task","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"Pick extra units for order\",\n  \"description\": \"Customer called\",\n  \"planned_for_user_id\": 42,\n  \"planned_datetime\": \"2026-03-25 09:00:00\",\n  \"order_id\": 3161,\n  \"task_category_id\": 5\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/tasks"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Task created.\",\n  \"task\": {\n    \"id\": 124,\n    \"title\": \"Pick extra units for order\",\n    \"description\": \"Customer called\",\n    \"status\": \"open\",\n    \"created_at\": \"2026-03-24 11:05:00\",\n    \"completed_at\": null,\n    \"planned_datetime\": \"2026-03-25 08:00:00\",\n    \"planned_end_datetime\": null,\n    \"created_by_user_id\": 1,\n    \"planned_for_user_id\": 42,\n    \"order_id\": 3161,\n    \"product_id\": null,\n    \"return_id\": null,\n    \"delivery_id\": null,\n    \"seller_id\": 2,\n    \"center_id\": null,\n    \"task_category_id\": 5,\n    \"task_price\": 0,\n    \"task_currency\": \"EUR\",\n    \"is_internal\": false\n  }\n}"}],"_postman_id":"2917658d-bb85-48a4-8435-55d5ff3ca9ba"}],"id":"9adc381f-4a9a-4cac-bac8-240d86beb76b","description":"<p>Create and list operational tasks (to-dos) for the seller account. Tasks can be linked to orders, products, returns, or deliveries, and optionally assigned to a fulfillment center.</p>\n<p>Enable <strong>Tasks</strong> (GET and POST) on your API key in ChannelDock settings before calling these endpoints.</p>\n","_postman_id":"9adc381f-4a9a-4cac-bac8-240d86beb76b"},{"name":"Inventory logs","item":[{"name":"Get Inventory logs","id":"60490b9e-476b-44e5-9716-9c7bf35ad104","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/seller/stockmutations?ean=8719326583617","description":"<h2 id=\"api-endpoint-retrieve-event-data\">API Endpoint: Retrieve Event Data</h2>\n<p>This endpoint allows users to retrieve event data based on specific criteria. It is particularly useful for fetching details related to a product's events within a defined date range.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>The following parameters are required in the query string of the GET request:</p>\n<ul>\n<li><p><strong>ean</strong> (string) (optional if Product ID / SKU is not used): The European Article Number (EAN) of the product. This is a unique identifier used to specify the product for which event data is being requested.</p>\n</li>\n<li><p><strong>product_id</strong> (string) (optional if EAN / SKU is not used): The unique identifier for the product. This ID is used alongside the EAN to ensure accurate retrieval of event data.</p>\n</li>\n<li><p>sku (string) (optional if Product ID / EAN is not used)</p>\n</li>\n<li><p><strong>start_date</strong> (datetime): The starting date and time for the event data retrieval. The format should be <code>YYYY-MM-DD HH:MM:SS</code>. This parameter defines the beginning of the time range for the events you want to fetch.</p>\n</li>\n<li><p><strong>end_date</strong> (datetime): The ending date and time for the event data retrieval. The format should be <code>YYYY-MM-DD HH:MM:SS</code>. This parameter defines the end of the time range for the events you want to fetch.</p>\n</li>\n<li><p><strong>event_action</strong> (string): The action type of the event you are interested in. In this case, the value is set to \"correct\", indicating that you want to retrieve events related to this specific action.</p>\n</li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The response from this endpoint will typically include a JSON object containing the following details:</p>\n<ul>\n<li><p><strong>status</strong> (string): Indicates the success or failure of the request.</p>\n</li>\n<li><p><strong>data</strong> (array): An array of event objects that match the specified criteria. Each event object may include details such as event ID, timestamp, and any additional relevant information related to the event.</p>\n</li>\n<li><p><strong>message</strong> (string): A message providing additional context about the response, such as errors or warnings if applicable.</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","stockmutations"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required if product_id is not used</p>\n","type":"text/plain"},"key":"ean","value":"8719326583617"},{"disabled":true,"description":{"content":"<p>required if ean is not used (ChannelDock Product ID)</p>\n","type":"text/plain"},"key":"product_id","value":"23456765"},{"disabled":true,"description":{"content":"<p>optional (date time)</p>\n","type":"text/plain"},"key":"start_date","value":"2025-08-13 00:00:00"},{"disabled":true,"description":{"content":"<p>optional (date time)</p>\n","type":"text/plain"},"key":"end_date","value":"2025-08-17 23:00:00"},{"disabled":true,"description":{"content":"<p>optional (make a call to this endpoint without this parameter to get an idea of the possible values)</p>\n","type":"text/plain"},"key":"event_action","value":"correct"}],"variable":[]}},"response":[{"id":"84be3049-007c-4f6d-a610-55d2b66caf34","name":"Get Inventory logs","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/stockmutations?ean=842143514325&event_action=correct","host":["https://channeldock.com"],"path":["portal","api","v2","seller","stockmutations"],"query":[{"key":"ean","value":"842143514325"},{"key":"event_action","value":"correct"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"inventory_logs\": [\n    {\n      \"id\": 71204,\n      \"ean\": \"8719326583631\",\n      \"event_action\": \"update_product_information\",\n      \"message\": \"Updated fields: price, x_size, y_size\",\n      \"old_stock\": 84,\n      \"new_stock\": 84,\n      \"created_at\": \"2026-06-12 14:32:18\",\n      \"total_stock\": 84\n    },\n    {\n      \"id\": 71198,\n      \"ean\": \"8719326583631\",\n      \"event_action\": \"add_stock_location\",\n      \"message\": \"Lars van Schaick added product to stock location: Pick zone B - Shelf 12\",\n      \"old_stock\": 36,\n      \"new_stock\": 84,\n      \"created_at\": \"2026-06-03 14:22:11\",\n      \"total_stock\": 84\n    },\n    {\n      \"id\": 71180,\n      \"ean\": \"8719326583631\",\n      \"event_action\": \"channel_sale\",\n      \"message\": \"Order 88210 (WooCommerce) reserved 1 unit\",\n      \"old_stock\": 85,\n      \"new_stock\": 84,\n      \"created_at\": \"2026-06-13 09:24:11\",\n      \"total_stock\": 84\n    },\n    {\n      \"id\": 71132,\n      \"ean\": \"8719326583655\",\n      \"event_action\": \"correct\",\n      \"message\": \"Own stock amount updated: 18 → 16\",\n      \"old_stock\": 18,\n      \"new_stock\": 16,\n      \"created_at\": \"2026-06-05 10:12:44\",\n      \"total_stock\": 16\n    }\n  ]\n}"}],"_postman_id":"60490b9e-476b-44e5-9716-9c7bf35ad104"}],"id":"2d757a2b-6493-4d83-93ad-16c5849081a9","description":"<p>Endpoints to retrieve a seller’s inventory change history. Supports filtering by EAN, product ID, date range, and event action, with pagination (250 items per page). Returns processed inventory log data for the authenticated seller. Filter by ean, product_id, or sku is recommended but optional.</p>\n","_postman_id":"2d757a2b-6493-4d83-93ad-16c5849081a9"},{"name":"Batches","item":[{"name":"Get Batch Templates","id":"7bfa7de7-41d0-4568-a365-813eeb526be8","request":{"method":"GET","header":[],"url":"https://channeldock.com/portal/api/v2/seller/batchtemplates?page=1","urlObject":{"path":["portal","api","v2","seller","batchtemplates"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional default: 50 max: 100</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"1, 2, 3"},{"disabled":true,"description":{"content":"<p>optional (true | false | ALL)</p>\n","type":"text/plain"},"key":"active","value":"ALL"},{"disabled":true,"description":{"content":"<p>optional (id | priority | active | created_at | updated_at)</p>\n","type":"text/plain"},"key":"sort_attr","value":"priority"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"include","value":"requirements"}],"variable":[]}},"response":[{"id":"e8ac5449-5bba-4c47-ab38-ebe2ae4c0f77","name":"Get Batch Templates","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/batchtemplates?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","seller","batchtemplates"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"batch_templates_count\": 2,\n  \"batch_templates\": [\n    {\n      \"id\": 401,\n      \"seller_id\": 1,\n      \"center_id\": 0,\n      \"description\": \"Standard NL Orders\",\n      \"priority\": 1,\n      \"active\": true,\n      \"match_type\": \"all\",\n      \"max_orders\": 100,\n      \"max_order_items\": null,\n      \"pick_algorithm\": \"fifo\",\n      \"batch_category\": \"standard\",\n      \"created_at\": \"2026-04-01 09:00:00\",\n      \"updated_at\": \"2026-06-10 12:30:00\",\n      \"requirements\": [\n        {\n          \"requirement\": \"country\",\n          \"operator\": \"equals\",\n          \"value\": \"NL\"\n        },\n        {\n          \"requirement\": \"order_status\",\n          \"operator\": \"equals\",\n          \"value\": \"order\"\n        }\n      ]\n    },\n    {\n      \"id\": 402,\n      \"seller_id\": 1,\n      \"center_id\": 0,\n      \"description\": \"Bol.com Express\",\n      \"priority\": 2,\n      \"active\": true,\n      \"match_type\": \"all\",\n      \"max_orders\": 50,\n      \"max_order_items\": 200,\n      \"pick_algorithm\": \"lifo\",\n      \"batch_category\": \"express\",\n      \"created_at\": \"2026-04-15 11:20:00\",\n      \"updated_at\": \"2026-06-08 09:00:00\",\n      \"requirements\": [\n        {\n          \"requirement\": \"channel\",\n          \"operator\": \"equals\",\n          \"value\": \"bolcom\"\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"7bfa7de7-41d0-4568-a365-813eeb526be8"},{"name":"Get Batches","id":"065ff011-b0a4-4585-be4b-df8d824d961d","request":{"method":"GET","header":[],"url":"https://channeldock.com/portal/api/v2/seller/batches?page=1","urlObject":{"path":["portal","api","v2","seller","batches"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional default: 50 max: 100</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"1, 2, 3"},{"disabled":true,"description":{"content":"<p>optional (pending | picking | picked | packing | shipped)</p>\n","type":"text/plain"},"key":"batch_status","value":"pending"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"batch_template_id","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"created_at_from","value":"YYYY-mm-dd"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"created_at_to","value":"YYYY-mm-dd"},{"disabled":true,"description":{"content":"<p>optional (id | created_at | batch_status | batch_template_id)</p>\n","type":"text/plain"},"key":"sort_attr","value":"id"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional (template | template_requirements | counts | orders | order_products)</p>\n","type":"text/plain"},"key":"include","value":"template, counts"}],"variable":[]}},"response":[{"id":"515c1799-40cf-499f-8c48-4e1a47612cd3","name":"Get Batches","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/batches?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","seller","batches"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"batches_count\": 2,\n  \"batches\": [\n    {\n      \"id\": 11001,\n      \"seller_id\": 1,\n      \"batch_title\": \"Morning batch 2026-06-14\",\n      \"batch_status\": \"picking\",\n      \"batch_template_id\": 401,\n      \"assigned_user_id\": 1,\n      \"batch_cart_number\": \"batch_cart_A12\",\n      \"created_at\": \"2026-06-14 08:00:00\",\n      \"updated_at\": \"2026-06-14 08:15:30\",\n      \"template\": {\n        \"id\": 401,\n        \"description\": \"Standard NL Orders\"\n      },\n      \"orders\": [\n        {\n          \"id\": 88210,\n          \"seller_id\": 1,\n          \"order_id\": \"WC-88210\",\n          \"seq_order_id\": \"UPW-2026-00415\",\n          \"order_status\": \"order\",\n          \"order_date\": \"2026-06-13 09:24:11\",\n          \"ship_on_date\": \"2026-06-14\",\n          \"shipping_first_name\": \"Lars\",\n          \"shipping_last_name\": \"van Schaick\",\n          \"shipping_country_code\": \"NL\"\n        }\n      ]\n    },\n    {\n      \"id\": 11002,\n      \"seller_id\": 1,\n      \"batch_title\": \"Afternoon batch 2026-06-14\",\n      \"batch_status\": \"pending\",\n      \"batch_template_id\": 402,\n      \"assigned_user_id\": null,\n      \"batch_cart_number\": null,\n      \"created_at\": \"2026-06-14 12:30:00\",\n      \"updated_at\": \"2026-06-14 12:30:00\",\n      \"template\": {\n        \"id\": 402,\n        \"description\": \"Bol.com Express\"\n      },\n      \"orders\": []\n    }\n  ]\n}"}],"_postman_id":"065ff011-b0a4-4585-be4b-df8d824d961d"},{"name":"Update batch status","id":"8ac6d08f-8583-44ac-a832-dc674a8a0a8a","protocolProfileBehavior":{"disabledSystemHeaders":{}},"request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"[\n    {\n        \"batch_id\": 8279454,\n        \"batch_status\": \"picking\",\n        \"assign_user_id\": \"user@example.com\",\n        \"batch_cart_number\": \"batch_cart_A12\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/batches","description":"<h3 id=\"update-batch-status\">Update batch status</h3>\n<p>Update the status of one or more batches. You can also record which pick cart or box a batch was picked into.</p>\n<p>Send a single object, or an array of objects (max 200). If the same <code>batch_id</code> appears more than once, only the last object is applied.</p>\n<h4 id=\"request-body\">Request body</h4>\n<ul>\n<li><code>batch_id</code> (integer) or <code>batch_ids</code> (array of integers) — required. Use <code>batch_ids</code> only on a single-object request.</li>\n<li><code>batch_status</code> (string, required) — <code>pending</code> | <code>picking</code> | <code>picked</code> | <code>packing</code> | <code>shipped</code></li>\n<li><code>assign_user_id</code> (integer or string, required) — user ID or email of the picker/packer. This is not necessarily the API key owner.</li>\n<li><code>batch_cart_number</code> (string, optional) — cart/box codes for this batch. Same format as in the portal: each code must start with <code>batch_cart_</code>. Multiple codes may be separated by commas, spaces or semicolons (they are stored as a comma-separated string). Max 100 characters after normalization. Send an empty string to clear the cart.   A non-empty cart can only be set when updating a <strong>single</strong> batch.</li>\n</ul>\n<h4 id=\"response-single-object\">Response (single object)</h4>\n<ul>\n<li><code>batch_status</code>, <code>assigned_user_id</code>, <code>batch_cart_number</code></li>\n<li><code>updated_ids</code>, <code>updated_count</code> — batches whose status was updated</li>\n<li><code>cart_updated_ids</code> — batches whose cart number was updated</li>\n<li><code>skipped</code>, <code>skipped_count</code> — batches that could not be updated (with a reason)</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","seller","batches"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"97715d09-f64d-49a8-b946-342d50812e05","name":"Batch status updated","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"batch_ids\": [\n    11001\n  ],\n  \"batch_status\": \"picking\",\n  \"assign_user_id\": 1,\n  \"batch_cart_number\": \"batch_cart_A12\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/seller/batches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Processed batch status update.\",\n  \"batch_status\": \"picking\",\n  \"assigned_user_id\": 1,\n  \"batch_cart_number\": \"batch_cart_A12\",\n  \"updated_ids\": [\n    11001\n  ],\n  \"updated_count\": 1,\n  \"cart_updated_ids\": [\n    11001\n  ],\n  \"skipped\": [],\n  \"skipped_count\": 0\n}"}],"_postman_id":"8ac6d08f-8583-44ac-a832-dc674a8a0a8a"}],"id":"54261092-eb62-433c-acaf-33eed709f930","description":"<p>The Batches API allows you to retrieve and update batch information for your seller account. Batches represent groups of orders that are processed together for picking, packing, and shipping operations. PUT can also set <code>batch_cart_number</code> (cart/box codes starting with <code>batch_cart_</code>) on a single batch.</p>\n","_postman_id":"54261092-eb62-433c-acaf-33eed709f930"}],"id":"84daad8d-aad4-44e7-b4d1-f9ac69566c62","description":"<p>The seller API can be used to fetch products, PIM listings, connected channels, bundles, product tags, stock locations and inbounds from the seller account.</p>\n<p>The base URL is: <a href=\"https://channeldock.com/\">https://channeldock.com</a></p>\n","_postman_id":"84daad8d-aad4-44e7-b4d1-f9ac69566c62"},{"name":"ChannelDock Fulfillment Center","item":[{"name":"Home","item":[{"name":"Home endpoint","id":"00f2dcf4-8c45-419d-8074-9d1eb2de76a5","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/","urlObject":{"path":["portal","api","v2",""],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"59ddc597-8706-4baa-a9ad-0c3ca589380a","name":"Home endpoint","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"url":"https://channeldock.com/portal/api/v2/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"API v2 auth is valid, good luck integrating the ChannelDock API!\"\n}"}],"_postman_id":"00f2dcf4-8c45-419d-8074-9d1eb2de76a5"}],"id":"be1ff66d-61ae-46d8-bbc1-8b44d22648a9","_postman_id":"be1ff66d-61ae-46d8-bbc1-8b44d22648a9","description":""},{"name":"Products","item":[{"name":"Get products","id":"ad10613f-4500-44a8-913c-3e8acdc434fb","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/center/inventory?page=1","description":"<p>Products that are connected to a fulfillment center account can be viewed by this API. The seller can connect his / her products to your FC account using their own seller account. Product attributes are then initially copied over from the seller product onto the newly created FC product.</p>\n<p>ChannelDock uses the EAN to identify products cross platform for its inventory synchronisation functionality. Please note that EAN will never be <code>NULL</code>, while SKU could be <code>NULL</code>.</p>\n<p>This request's return results are paginated. The API returns 50 items per page.</p>\n<p><code>is_flagged</code> (optional): <code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>. Same product flag as in the portal product list. Omit to return all products.</p>\n<p>Filter by FC product tag with <code>tag_id</code> or <code>tag_title</code>. Each product includes <code>tags</code> (title strings) and <code>product_tags</code> (<code>id</code>, <code>title</code>, <code>color</code>).</p>\n<p><code>archived</code> (optional): <code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>. Same archive setting as on the linked seller product. Omit to return all products; the <code>archived</code> field is always included in each product (<code>1</code> or <code>0</code>). Use <code>archived=true</code> to list only archived products.</p>\n<p><code>sort_attr</code> may be <code>archived</code> (with <code>sort_dir</code> <code>ASC</code> or <code>DESC</code>).</p>\n","urlObject":{"path":["portal","api","v2","center","inventory"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional: id of the product</p>\n","type":"text/plain"},"key":"id","value":"8"},{"disabled":true,"description":{"content":"<p>optional: id of the seller</p>\n","type":"text/plain"},"key":"seller_id","value":"2"},{"disabled":true,"description":{"content":"<p>optional (Out of stock | default: Active | Paused by center | Paused by seller | Deleted by center | Deleted by seller)</p>\n","type":"text/plain"},"key":"center_product_status","value":"Active"},{"disabled":true,"description":{"content":"<p>optional: ean of the product</p>\n","type":"text/plain"},"key":"ean","value":"8719326583631"},{"disabled":true,"description":{"content":"<p>optional: SKU of the product</p>\n","type":"text/plain"},"key":"sku","value":""},{"disabled":true,"description":{"content":"<p>optional: product reference of the product</p>\n","type":"text/plain"},"key":"product_reference","value":""},{"disabled":true,"description":{"content":"<p>optional: (free input) location of the product</p>\n","type":"text/plain"},"key":"location","value":""},{"disabled":true,"description":{"content":"<p>optional (id | seller_id | ean | center_product_status | sku | product_reference | location | updated_at | archived)</p>\n","type":"text/plain"},"key":"sort_attr","value":"updated_at"},{"disabled":true,"description":{"content":"<p>optional ( DESC | default: ASC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional: includes stock location data</p>\n","type":"text/plain"},"key":"include_stock_location_data","value":"true"},{"disabled":true,"description":{"content":"<p>optional: true/false or 1/0 to list only flagged or unflagged products</p>\n","type":"text/plain"},"key":"is_flagged","value":"true"},{"disabled":true,"description":{"content":"<p>optional, only products with this FC tag</p>\n","type":"text/plain"},"key":"tag_id","value":"21"},{"disabled":true,"description":{"content":"<p>optional, exact tag title (case-insensitive)</p>\n","type":"text/plain"},"key":"tag_title","value":"fragile"},{"disabled":true,"description":{"content":"<p>optional: true/false or 1/0 to list only archived or unarchived seller products</p>\n","type":"text/plain"},"key":"archived","value":"true"}],"variable":[]}},"response":[{"id":"0cf11b7d-ec2f-417f-b2e9-92c3cea549aa","name":"Get products","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":{"raw":"https://channeldock.com/portal/api/v2/center/inventory?page=1&sort_attr=updated_at&sort_dir=DESC","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","inventory"],"query":[{"key":"page","value":"1"},{"key":"id","value":"6","description":"optional: id of the product","disabled":true},{"key":"seller_id","value":"3","description":"optional: id of the seller","disabled":true},{"key":"center_product_status","value":"Active","description":"optional (Out of stock | default: Active | Paused by center | Paused by seller | Deleted by center | Deleted by seller)","disabled":true},{"key":"ean","value":"8719326801019","description":"optional: ean of the product","disabled":true},{"key":"sku","value":"","description":"optional: SKU of the product","disabled":true},{"key":"product_reference","value":"","description":"optional: product reference of the product","disabled":true},{"key":"location","value":"","description":"optional: (free input) location of the product","disabled":true},{"key":"is_flagged","value":"true","description":"optional: true/false or 1/0 to list only flagged or unflagged products","disabled":true},{"key":"archived","value":"true","description":"optional: true/false or 1/0 to list only archived or unarchived seller products","disabled":true},{"key":"sort_attr","value":"updated_at","description":"optional (id | seller_id | ean | center_product_status | sku | product_reference | location | updated_at | archived)"},{"key":"sort_dir","value":"DESC","description":"optional ( DESC | default: ASC )"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"products_count\": 3,\n  \"products\": [\n    {\n      \"id\": 7,\n      \"seller_id\": 2,\n      \"ean\": \"8719326583631\",\n      \"center_product_status\": \"Active\",\n      \"active_stock\": 48,\n      \"weight\": 1.8,\n      \"x_size\": 60,\n      \"y_size\": 12,\n      \"z_size\": 8,\n      \"sku\": \"UPW-BAR-52\",\n      \"product_reference\": \"UPW-REF-001\",\n      \"units_per_box\": 1,\n      \"location\": \"B-12\",\n      \"updated_at\": \"2026-06-12 14:32:18\",\n      \"packaging_category_id\": 4,\n      \"is_flagged\": 1,\n      \"archived\": 0,\n      \"tags\": [\n        \"kitesurf\",\n        \"control-bar\"\n      ],\n      \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/kitesurf-bar-pro-52.jpg\",\n      \"classification\": \"Watersports\",\n      \"country_of_origin\": \"CN\",\n      \"product_classification\": \"9506290000\",\n      \"packaging\": \"Box\",\n      \"child_products\": [],\n      \"stock_location_data\": [\n        {\n          \"stock_section_id\": 2716,\n          \"stock_location_id\": 114,\n          \"stock_section_description\": \"Pick zone B - Shelf 12\",\n          \"stock\": 48,\n          \"corrected_stock\": 48,\n          \"include_in_stock_sync\": 1,\n          \"pick_location\": 1\n        }\n      ]\n    },\n    {\n      \"id\": 8,\n      \"seller_id\": 2,\n      \"ean\": \"8719326583648\",\n      \"center_product_status\": \"Active\",\n      \"active_stock\": 36,\n      \"weight\": 1.4,\n      \"x_size\": 35,\n      \"y_size\": 25,\n      \"z_size\": 6,\n      \"sku\": \"UPW-WET-M\",\n      \"product_reference\": \"UPW-REF-002\",\n      \"units_per_box\": 1,\n      \"location\": \"B-13\",\n      \"updated_at\": \"2026-06-10 08:21:44\",\n      \"packaging_category_id\": 4,\n      \"is_flagged\": 0,\n      \"archived\": 0,\n      \"tags\": [\n        \"wetsuit\",\n        \"neoprene\"\n      ],\n      \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/wetsuit-predator-5-4-m.jpg\",\n      \"classification\": \"Watersports\",\n      \"country_of_origin\": \"TH\",\n      \"product_classification\": \"6110309100\",\n      \"packaging\": \"Bag\",\n      \"child_products\": [],\n      \"stock_location_data\": [\n        {\n          \"stock_section_id\": 2717,\n          \"stock_location_id\": 115,\n          \"stock_section_description\": \"Pick zone B - Shelf 13\",\n          \"stock\": 36,\n          \"corrected_stock\": 36,\n          \"include_in_stock_sync\": 1,\n          \"pick_location\": 1\n        }\n      ]\n    },\n    {\n      \"id\": 9,\n      \"seller_id\": 2,\n      \"ean\": \"8719326583655\",\n      \"center_product_status\": \"Active\",\n      \"active_stock\": 12,\n      \"weight\": 2.6,\n      \"x_size\": 134,\n      \"y_size\": 41,\n      \"z_size\": 4,\n      \"sku\": \"UPW-BRD-134\",\n      \"product_reference\": \"UPW-REF-003\",\n      \"units_per_box\": 1,\n      \"location\": \"PR-A\",\n      \"updated_at\": \"2026-06-08 12:05:31\",\n      \"packaging_category_id\": 5,\n      \"is_flagged\": 0,\n      \"archived\": 0,\n      \"tags\": [\n        \"kiteboard\",\n        \"twintip\"\n      ],\n      \"title\": \"Kiteboard Surge 134cm\",\n      \"img_url\": \"https://cdn.upwind.example.com/products/kiteboard-surge-134.jpg\",\n      \"classification\": \"Watersports\",\n      \"country_of_origin\": \"CN\",\n      \"product_classification\": \"9506290000\",\n      \"packaging\": \"Oversize\",\n      \"child_products\": [],\n      \"stock_location_data\": [\n        {\n          \"stock_section_id\": 2715,\n          \"stock_location_id\": 113,\n          \"stock_section_description\": \"Pallet rack A\",\n          \"stock\": 12,\n          \"corrected_stock\": 12,\n          \"include_in_stock_sync\": 1,\n          \"pick_location\": 0\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"ad10613f-4500-44a8-913c-3e8acdc434fb"},{"name":"Update product","id":"4dc129fc-97fb-4f89-b918-8615525f224a","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"product_id\": 25,\n    \"active_stock\": 1000,\n    \"weight\": 1,\n    \"x_size\": 2,\n    \"y_size\": 0,\n    \"z_size\": 2,\n    \"sku\": \"TestSKU\",\n    \"product_reference\": \"Referentie\",\n    \"packaging\": \"Bag\",\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inventory","description":"<p>This API allows you to update the stock level and other attributes of a product. If the stock level is above 0, ChannelDock will automatically change the 'center_product_status' to 'Active'. If the stock synchronisation is turned on for this product in the sellers' account, ChannelDock will automatically update the stock level to the connected sales channels.</p>\n<p><code>tags</code> (array of strings, optional): Tag titles to assign to the center product. Unknown titles are automatically created (scoped to your center account, separate from seller tags). <strong>Full replacement</strong>: any tags currently on the product that are not in this array are removed. Omit the <code>tags</code> field entirely to leave existing tags untouched; send <code>\"tags\": []</code> to remove all tags. The synced tags are returned inside <code>updated_fields.tags</code> in the response.</p>\n<p><code>is_flagged</code> (boolean, optional): Same product flag as in the portal product list (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Applies to the fulfillment-center product only. Omit to leave the current flag unchanged. Returned in <code>updated_fields</code> when set.</p>\n<p><code>archived</code> (boolean, optional): Same archive setting as on the linked seller product (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Omit to leave the current archive state unchanged. Returned in <code>updated_fields</code> when set.</p>\n","urlObject":{"path":["portal","api","v2","center","inventory"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"9c2cb1ba-7508-458e-ac60-46d3e4c3e967","name":"Update product","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 7,\n  \"active_stock\": 50,\n  \"sku\": \"YOUR_SKU_1234\",\n  \"weight\": 2.5,\n  \"x_size\": 30,\n  \"y_size\": 15,\n  \"z_size\": 5,\n  \"product_reference\": \"RED4\",\n  \"location\": \"Warehouse 2\",\n  \"packaging\": \"Box\",\n  \"tags\": [\"kitesurf\", \"outlet\"],\n  \"is_flagged\": true,\n  \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inventory"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Product updated!\",\n  \"updated_fields\": {\n    \"sku\": \"YOUR_SKU_1234\",\n    \"weight\": 2.5,\n    \"x_size\": 30,\n    \"y_size\": 15,\n    \"z_size\": 5,\n    \"product_reference\": \"RED4\",\n    \"location\": \"Warehouse 2\",\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": 1,\n    \"archived\": 0\n  }\n}"}],"_postman_id":"4dc129fc-97fb-4f89-b918-8615525f224a"},{"name":"Create new product","id":"8f51557b-3fb8-4777-a0e2-b014508f3be3","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"active_stock\": 10,\n    \"weight\": 1,\n    \"seller_id\": 990,\n    \"ean\": 2222222,\n    \"title\": \"Upwind kitesurf wetsuit - Size XL\",\n    \"x_size\": 2,\n    \"y_size\": 0,\n    \"z_size\": 2,\n    \"sku\": \"TestSKU\",\n    \"product_reference\": \"Referentie\",\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inventory","description":"<p>This POST call allows you to create a new product. When making this call, ChannelDock will create a product in the Seller account and also connect that product to your fulfillment center account.</p>\n<p><code>tags</code> (array of strings, optional): Tag titles to assign to the center product. Unknown titles are automatically created (scoped to your center account, separate from seller tags). Omit this field entirely to leave tags untouched; send an empty array <code>[]</code> to remove all tags. The response only confirms <code>product_id</code>, not the resulting tags — use a <code>GET</code> to verify.</p>\n<p><code>is_flagged</code> (boolean, optional): Same product flag as in the portal product list (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Applies to the fulfillment-center product only, not the seller product. Defaults to not flagged when omitted.</p>\n<p><code>archived</code> (boolean, optional): Same archive setting as on the seller product (<code>true</code>/<code>false</code> or <code>1</code>/<code>0</code>). Applied to the seller product when it is created or already exists. Defaults to not archived when omitted.</p>\n","urlObject":{"path":["portal","api","v2","center","inventory"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"0b5077e5-b8c9-4366-b6a1-3963fa0b706d","name":"Update product","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"active_stock\": 10,\n    \"weight\": 1,\n    \"seller_id\": 990,\n    \"ean\": 2222222,\n    \"title\": \"Upwind kitesurf wetsuit - Size XL\",\n    \"x_size\": 2,\n    \"y_size\": 0,\n    \"z_size\": 2,\n    \"sku\": \"TestSKU\",\n    \"product_reference\": \"Referentie\",\n    \"tags\": [\"kitesurf\", \"outlet\"],\n    \"is_flagged\": true,\n    \"archived\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inventory"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Product created successfully!\",\n  \"product_id\": 10\n}"}],"_postman_id":"8f51557b-3fb8-4777-a0e2-b014508f3be3"},{"name":"Update stock amount bulk","id":"403b0b29-f701-4294-b53f-b425ff4336c2","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"products\": [\n   {\n    \"product_id\": \"30\", \n    \"stock_amount\": 50\n   }, \n  {\n    \"product_id\": \"32\", \n    \"stock_amount\": 150\n   }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stockupdateall","description":"<p>Bulk update stock levels in ChannelDock.</p>\n","urlObject":{"path":["portal","api","v2","center","stockupdateall"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"14c6818d-e036-453f-9067-733d6269ca7f","name":"Update stock amount bulk","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"products\": [\n   {\n    \"product_id\": \"30\", \n    \"stock_amount\": 50\n   }, \n  {\n    \"product_id\": \"32\", \n    \"stock_amount\": 150\n   }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stockupdateall"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": [\n    {\n      \"sku\": \"UPW-BAR-52\",\n      \"stock_amount\": 48\n    },\n    {\n      \"sku\": \"UPW-WET-M\",\n      \"stock_amount\": 36\n    },\n    {\n      \"sku\": \"UPW-BRD-134\",\n      \"stock_amount\": 12\n    }\n  ]\n}"}],"_postman_id":"403b0b29-f701-4294-b53f-b425ff4336c2"}],"id":"1a6c9a7f-04bb-4a99-b9d7-5452605d68ca","description":"<p>The products API allows you to view and update individual, or a batch, of products.</p>\n","_postman_id":"1a6c9a7f-04bb-4a99-b9d7-5452605d68ca"},{"name":"Bundles","item":[{"name":"Get bundles","id":"ea8b1879-90d7-4ca7-a6d0-6f0ccab24c7a","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/bundles","description":"<p>List bundle products stocked at this fulfillment center.</p>\n<p>Optional filters: <code>product_id</code> (catalog product id), <code>ean</code>.</p>\n","urlObject":{"path":["portal","api","v2","center","bundles"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>optional (catalog parent product id)</p>\n","type":"text/plain"},"key":"product_id","value":"25860"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"ean","value":"8719326583700"}],"variable":[]}},"response":[{"id":"14f9d341-8e9e-48a5-850a-c419b031ffc7","name":"Get bundles","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/bundles","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","bundles"],"query":[{"key":"product_id","value":"25860","description":"optional (catalog parent product id)","disabled":true},{"key":"ean","value":"8719326583700","description":"optional","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"bundles_count\": 1,\n  \"bundles\": [\n    {\n      \"parent_product_id\": 25860,\n      \"parent_center_product_id\": 4412,\n      \"parent_ean\": \"8719326583700\",\n      \"parent_sku\": \"UPW-BUNDLE-STARTER\",\n      \"parent_title\": \"Upwind starter bundle\",\n      \"seller_id\": 1184,\n      \"stock\": 12,\n      \"child_products\": [\n        {\n          \"bundle_row_id\": 901,\n          \"child_product_id\": 25851,\n          \"child_ean\": \"8719326583631\",\n          \"child_sku\": \"UPW-BAR-52\",\n          \"child_title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"quantity\": 1\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"ea8b1879-90d7-4ca7-a6d0-6f0ccab24c7a"},{"name":"Create bundle","id":"b4e4a1cd-7f72-42fb-9e00-568e9a10b504","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_center_product_id\": 4412,\n  \"children\": [\n    { \"child_product_id\": 25851, \"quantity\": 1 },\n    { \"child_product_id\": 25856, \"quantity\": 1 }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/bundles","description":"<p>Create a bundle from an existing FC product and add children.</p>\n<p>Required: <code>parent_center_product_id</code> (id from GET <code>/center/inventory</code>), <code>children</code> (<code>child_product_id</code> is the catalog product id; the child must be stocked at this center). Parent available stock must be 0 if converting from a regular product.</p>\n","urlObject":{"path":["portal","api","v2","center","bundles"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a20c010e-0194-424e-b45f-1f8fc1870d8a","name":"Create bundle","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_center_product_id\": 4412,\n  \"children\": [\n    { \"child_product_id\": 25851, \"quantity\": 1 },\n    { \"child_product_id\": 25856, \"quantity\": 1 }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/bundles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Bundle created/updated successfully.\",\n  \"parent_product_id\": 25860,\n  \"parent_center_product_id\": 4412,\n  \"parent_ean\": \"8719326583700\",\n  \"added_children\": [\n    { \"child_product_id\": 25851, \"child_ean\": \"8719326583631\", \"child_seller_id\": 1184, \"quantity\": 1 }\n  ],\n  \"errors\": []\n}"}],"_postman_id":"b4e4a1cd-7f72-42fb-9e00-568e9a10b504"},{"name":"Update bundle","id":"21d1be4d-b638-498e-89d7-d00bccd882be","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860,\n  \"add_children\": [\n    { \"child_product_id\": 25852, \"quantity\": 1 }\n  ],\n  \"remove_children\": [25856]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/bundles","description":"<p>Add and/or remove children on an existing bundle.</p>\n<p>Required: <code>parent_product_id</code> (catalog id, not FC product id). Optional: <code>add_children</code>, <code>remove_children</code>.</p>\n","urlObject":{"path":["portal","api","v2","center","bundles"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"51b70175-e6bb-49db-80cd-cf974f6941fb","name":"Update bundle","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860,\n  \"add_children\": [\n    { \"child_product_id\": 25852, \"quantity\": 1 }\n  ],\n  \"remove_children\": [25856]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/bundles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Bundle updated successfully.\",\n  \"parent_product_id\": 25860,\n  \"parent_ean\": \"8719326583700\",\n  \"added_children\": [\n    { \"child_product_id\": 25852, \"child_ean\": \"8719326583648\", \"child_seller_id\": 1184, \"quantity\": 1 }\n  ],\n  \"removed_children\": [\n    { \"child_product_id\": 25856, \"child_ean\": \"87123456789\" }\n  ],\n  \"errors\": []\n}"}],"_postman_id":"21d1be4d-b638-498e-89d7-d00bccd882be"},{"name":"Delete bundle","id":"08a839fb-0833-40ee-9ac3-20fad52fde3c","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/bundles","description":"<p>Convert a bundle back to a regular product. Stock is reset to 0 and all children are removed.</p>\n<p>Required: <code>parent_product_id</code> (catalog id).</p>\n","urlObject":{"path":["portal","api","v2","center","bundles"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"9ad3dd8d-2358-4303-bd88-915876b27ba3","name":"Delete bundle","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"parent_product_id\": 25860\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/bundles"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Bundle converted to regular product. Stock reset to 0 and all child products removed.\",\n  \"parent_product_id\": 25860,\n  \"parent_ean\": \"8719326583700\"\n}"}],"_postman_id":"08a839fb-0833-40ee-9ac3-20fad52fde3c"}],"id":"b9efa059-52ad-4446-978f-e268c825b152","description":"<p>Create and manage product bundles for products stocked at this fulfillment center.</p>\n<p>Create uses <code>parent_center_product_id</code> (the FC product id from GET inventory). Children are catalog <code>child_product_id</code> values that must be stocked at this center. Cross-seller children are allowed when both sellers are connected to the FC.</p>\n<p>Enable <strong>Bundles</strong> (GET, POST, PUT, DELETE) on your API key.</p>\n","_postman_id":"b9efa059-52ad-4446-978f-e268c825b152"},{"name":"Product tags","item":[{"name":"Get product tags","id":"68b9aebd-b0ed-424a-a115-7d1b671da68d","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/product-tags?page=1","description":"<p>List FC product tags. Paginated: 50 per page. Optional <code>search</code>/<code>q</code> or <code>tag_id</code>.</p>\n","urlObject":{"path":["portal","api","v2","center","product-tags"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>optional (default 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"search","value":"fragile"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"tag_id","value":"21"}],"variable":[]}},"response":[{"id":"7cb6a020-0f28-4cd3-a201-4d4488a53100","name":"Get product tags","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/product-tags?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","product-tags"],"query":[{"key":"page","value":"1","description":"optional (default 1)"},{"key":"search","value":"fragile","description":"optional","disabled":true},{"key":"tag_id","value":"21","description":"optional","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"product_tags_count\": 1,\n  \"total_matching\": 1,\n  \"page\": 1,\n  \"product_tags\": [\n    { \"id\": 21, \"title\": \"fragile\", \"color\": \"#cc0000\", \"product_count\": 6 }\n  ]\n}"}],"_postman_id":"68b9aebd-b0ed-424a-a115-7d1b671da68d"},{"name":"Create product tag","id":"a5f1c1ee-bfbf-44ce-b412-a37ea75520ca","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"fragile\",\n  \"color\": \"#cc0000\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags","description":"<p>Create an FC product tag. Required <code>title</code>. Optional <code>color</code> (<code>#rgb</code> / <code>#rrggbb</code>).</p>\n","urlObject":{"path":["portal","api","v2","center","product-tags"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"c222b1df-b9f5-45b3-b919-e9e1659d293c","name":"Create product tag","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"fragile\",\n  \"color\": \"#cc0000\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"product_tag\": {\n    \"id\": 21,\n    \"title\": \"fragile\",\n    \"color\": \"#cc0000\",\n    \"product_count\": 0\n  }\n}"}],"_postman_id":"a5f1c1ee-bfbf-44ce-b412-a37ea75520ca"},{"name":"Update product tag","id":"2b6a8167-7ff1-48e9-bbee-ba4c3a05748d","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21,\n  \"title\": \"handle-with-care\",\n  \"color\": \"#aa0000\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags","description":"<p>Update an FC tag. Required <code>tag_id</code>. Optional <code>title</code>, <code>color</code>.</p>\n","urlObject":{"path":["portal","api","v2","center","product-tags"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"8140c503-39a1-455b-8836-cfc79b61b9a9","name":"Update product tag","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21,\n  \"title\": \"handle-with-care\",\n  \"color\": \"#aa0000\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"product_tag\": {\n    \"id\": 21,\n    \"title\": \"handle-with-care\",\n    \"color\": \"#aa0000\",\n    \"product_count\": 6\n  }\n}"}],"_postman_id":"2b6a8167-7ff1-48e9-bbee-ba4c3a05748d"},{"name":"Delete product tag","id":"02eb76ac-90d3-49a4-8325-bb47fd708ad7","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags","description":"<p>Delete an FC tag and unlink it from all center products. Required <code>tag_id</code>.</p>\n","urlObject":{"path":["portal","api","v2","center","product-tags"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a3fc19a0-ce93-4216-b7f5-1fe289ccdc14","name":"Delete product tag","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"deleted_tag_id\": 21\n}"}],"_postman_id":"02eb76ac-90d3-49a4-8325-bb47fd708ad7"},{"name":"Attach product tags","id":"6184fb19-432c-4f7f-a6ec-53d6bdc151b5","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21,\n  \"product_ids\": [4410, 4411]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags/attach","description":"<p>Attach an FC tag to center products.</p>\n<p>Identify the tag with <code>tag_id</code> or <code>title</code>. Identify products with <code>product_id</code> / <code>product_ids</code> (<strong>center product ids</strong>), or <code>ean</code> / <code>sku</code>. Max 500 products per request.</p>\n","urlObject":{"path":["portal","api","v2","center","product-tags","attach"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"11de2d97-ceab-414e-ab9a-660f542ced86","name":"Attach product tags","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21,\n  \"product_ids\": [4410, 4411]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags/attach"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"tag_id\": 21,\n  \"attached_count\": 2,\n  \"already_linked_count\": 0,\n  \"product_count\": 2\n}"}],"_postman_id":"6184fb19-432c-4f7f-a6ec-53d6bdc151b5"},{"name":"Detach product tags","id":"c6f7ba94-5d23-45c6-8a54-7544ae765f40","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21,\n  \"product_ids\": [4411]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags/detach","description":"<p>Detach an FC tag from center products. Same identification as attach. HTTP <strong>POST</strong> or <strong>DELETE</strong>.</p>\n","urlObject":{"path":["portal","api","v2","center","product-tags","detach"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7250ffb7-e02b-4cdd-bc50-acb9da65c9e4","name":"Detach product tags","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"tag_id\": 21,\n  \"product_ids\": [4411]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/product-tags/detach"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"tag_id\": 21,\n  \"detached_count\": 1,\n  \"not_linked_count\": 0,\n  \"product_count\": 1\n}"}],"_postman_id":"c6f7ba94-5d23-45c6-8a54-7544ae765f40"}],"id":"5182c931-469e-4cd0-b740-8ad4cf4b8831","description":"<p>Manage product tags owned by this fulfillment center (<code>tags</code> scoped to <code>center_id</code>).</p>\n<p>Attach/detach uses <strong>center product ids</strong> from GET <code>/center/inventory</code> (<code>product_id</code> / <code>product_ids</code>), not seller catalog ids. You can also pass <code>ean</code> or <code>sku</code>.</p>\n<p>Enable <strong>Product Tags</strong>, <strong>Product Tags Attach</strong>, and <strong>Product Tags Detach</strong> on your API key.</p>\n","_postman_id":"5182c931-469e-4cd0-b740-8ad4cf4b8831"},{"name":"Orders","item":[{"name":"Get Orders","id":"06700ff8-6291-4b87-a0e5-1a68384f6941","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/orders?page=1","description":"<h3 id=\"get-orders\"><strong>Get Orders</strong></h3>\n<p>Retrieve paginated orders for the current fulfillment center, including order lines and optional raw data, traceability data and inventory logs.  </p>\n<p>The endpoint returns only orders that belong to sellers linked to the current fulfillment center. By default it includes only orders with status order or backorder, and only where the shipping address is marked as accurate.</p>\n<h3 id=\"pagination\"><strong>Pagination</strong></h3>\n<ul>\n<li><p><strong>page</strong> (required, integer)</p>\n<p>  1-based page number. If omitted, the API returns a 400 (\"No page specified.\").</p>\n</li>\n<li><p><strong>page_size</strong> (optional, integer)</p>\n<p>  Number of orders per page.</p>\n<p>  Must be between 1 and 100.</p>\n<p>  If omitted, the API uses its internal default page size.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"filtering\"><strong>Filtering</strong></h3>\n<h4 id=\"order-identity\"><strong>Order identity</strong></h4>\n<ul>\n<li><p><strong>id</strong> (optional, integer)</p>\n<p>  ChannelDock Order ID. If set, only this order is returned and the default order_status filter is not applied.</p>\n</li>\n<li><p><strong>order_id</strong> (optional, string)</p>\n<p>  Remote order ID from the sales channel.</p>\n<p>  Matches against both order_id and seq_order_id.</p>\n</li>\n<li><p><strong>seller_id</strong> (optional, integer)</p>\n<p>  Filter by seller (must be one of the sellers connected to this fulfillment center).</p>\n</li>\n</ul>\n<blockquote>\n<p><strong>Notes</strong><br />id = ChannelDock internal Order ID<br />order_id = remote Order ID from the marketplace / webshop where the order originated  </p>\n</blockquote>\n<h4 id=\"order-status\"><strong>Order status</strong></h4>\n<ul>\n<li><p><strong>order_status</strong> (optional, enum)</p>\n<ul>\n<li><p>The order_status enum values are:</p>\n<ul>\n<li><p>order (default)</p>\n</li>\n<li><p>shipment</p>\n</li>\n<li><p>return</p>\n</li>\n<li><p>pending</p>\n</li>\n<li><p>on-hold</p>\n</li>\n<li><p>backorder</p>\n</li>\n<li><p>cancelled</p>\n</li>\n<li><p>refunded</p>\n</li>\n<li><p>failed</p>\n</li>\n<li><p>trash</p>\n</li>\n<li><p>Use ALL to fetch orders regardless of status.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p>If omitted (and id is not set): the API returns orders where order_status is order or backorder.</p>\n</li>\n<li><p>order_status=ALL: return orders regardless of status.</p>\n</li>\n<li><p>Any other value: filter on that specific status (e.g. order_status=shipped).</p>\n</li>\n<li><p><strong>order_status=backorder</strong></p>\n<p>  Special case. Returns backorders: order lines that are <strong>not yet assigned</strong> to any fulfillment center (center_id = 0).</p>\n<p>  In this case, product lines are <strong>not</strong> filtered on the current center.</p>\n</li>\n</ul>\n<h4 id=\"customer--shipping-address\"><strong>Customer &amp; shipping address</strong></h4>\n<p>Each of these filters is optional and performs an exact match:</p>\n<ul>\n<li><p><strong>shipping_first_name</strong></p>\n</li>\n<li><p><strong>shipping_last_name</strong></p>\n</li>\n<li><p><strong>shipping_company</strong></p>\n</li>\n<li><p><strong>shipping_street</strong></p>\n</li>\n<li><p><strong>shipping_house_number</strong></p>\n</li>\n<li><p><strong>shipping_house_number_ext</strong></p>\n</li>\n<li><p><strong>shipping_region</strong></p>\n</li>\n<li><p><strong>shipping_country_code</strong></p>\n</li>\n<li><p><strong>shipping_city</strong></p>\n</li>\n<li><p><strong>shipping_email</strong></p>\n</li>\n</ul>\n<h4 id=\"order-dates\"><strong>Order dates</strong></h4>\n<ul>\n<li><p><strong>order_date</strong> (optional, date Y-m-d)</p>\n<p>  Returns orders with order_date on this exact date.</p>\n</li>\n<li><p><strong>start_date</strong> (optional, datetime or date)</p>\n<p>  Returns orders with order_date &gt;= start_date.</p>\n</li>\n<li><p><strong>end_date</strong> (optional, datetime or date)</p>\n<p>  Returns orders with order_date &lt;= end_date.</p>\n<p>  If end_date is passed as date only (Y-m-d), it is treated as Y-m-d 23:59:59 (includes the entire day).</p>\n</li>\n<li><p><strong>ship_on_date</strong> (optional, datetime or date)</p>\n<p>  Exact match on ship_on_date.</p>\n</li>\n</ul>\n<h4 id=\"filtering-by-updated_at\"><strong>Filtering by updated_at</strong></h4>\n<p>You can filter orders by their last update timestamp using the updated_at parameters:</p>\n<ul>\n<li><p><strong>updated_at</strong> (optional, date Y-m-d)</p>\n<p>  Exact date match on updated_at (date only).</p>\n</li>\n<li><p><strong>updated_at_from</strong> (optional, date or datetime)</p>\n<p>  Returns orders with updated_at &gt;= updated_at_from.</p>\n</li>\n<li><p><strong>updated_at_to</strong> (optional, date or datetime)</p>\n<p>  Returns orders with updated_at &lt;= updated_at_to.</p>\n<p>  If updated_at_to is passed as date only (Y-m-d), it is interpreted as Y-m-d 23:59:59 to include the full day.</p>\n</li>\n</ul>\n<p><strong>Examples</strong></p>\n<ul>\n<li><p>updated_at=2024-01-15</p>\n<p>  → Orders updated on 2024-01-15.</p>\n</li>\n<li><p>updated_at_from=2024-01-01&amp;updated_at_to=2024-01-31</p>\n<p>  → Orders updated in January 2024.</p>\n</li>\n</ul>\n<h4 id=\"filtering-by-sync_date\"><strong>Filtering by sync_date</strong></h4>\n<p>You can filter orders by their sync_date using:</p>\n<ul>\n<li><p><strong>sync_date_from</strong> (optional, date or datetime)</p>\n<p>  Returns orders with sync_date &gt;= sync_date_from.</p>\n<p>  Accepts 'Y-m-d' (treated as 00:00:00) or 'Y-m-d H:i:s'.</p>\n</li>\n<li><p><strong>sync_date_to</strong> (optional, date or datetime)</p>\n<p>  Returns orders with sync_date &lt;= sync_date_to.</p>\n<p>  Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n</li>\n</ul>\n<p>Preferred over updated_at filters for polling since sync_date only changes on order create or explicit sync, not on internal batch reassignments.</p>\n<h4 id=\"order-line-fulfillment_status-wms-import-tracking\"><strong>Order line fulfillment_status (WMS import tracking)</strong></h4>\n<p>Filters apply to order lines assigned to your fulfillment center. Not used when <code>order_status=backorder</code>.</p>\n<ul>\n<li><p><strong>fulfillment_status</strong> (optional, string)</p>\n<p>  Orders with at least one assigned line matching this exact <code>fulfillment_status</code>.</p>\n<p>  Example: <code>fulfillment_status=default</code> for lines not yet marked imported into your WMS.</p>\n</li>\n<li><p><strong>fulfillment_status_exclude</strong> (optional, string)</p>\n<p>  Orders with at least one assigned line where <code>fulfillment_status</code> is not equal to this value.</p>\n<p>  Example: <code>fulfillment_status_exclude=imported</code> for orders that still have unimported lines.</p>\n</li>\n</ul>\n<p>Writable via PUT (Update an order) or POST fulfillment-status: any custom status (1–50 chars, lowercase letters, digits, underscore, hyphen). Integration-reserved patterns (e.g. <code>*_pending</code>, <code>disconnected_from_fc</code>) cannot be set via API.</p>\n<h4 id=\"partial-fc-assignment\"><strong>Partial FC assignment</strong></h4>\n<p>By default, orders are returned when <strong>at least one</strong> line is assigned to your fulfillment center. Mixed orders (some lines at the FC, some still at the seller) are included.</p>\n<ul>\n<li><p><strong>skip_partial_orders</strong> (optional, <code>0</code>, <code>1</code>, <code>true</code>, or <code>false</code>)</p>\n<p>  When <code>1</code> or <code>true</code>: exclude orders that still have open seller lines (<code>center_id = 0</code>, not shipped, no cancellation request). Only fully FC-assigned open orders are returned.</p>\n<p>  When omitted or <code>0</code>: no extra filter (partial orders remain visible).</p>\n<p>  Not used when <code>order_status=backorder</code>.</p>\n<p>  Mirrors the per-seller <strong>Skip partial orders</strong> setting in the portal (Fulfillment → Sellers), but applies only when you pass this query parameter on the API request.</p>\n</li>\n</ul>\n<h4 id=\"shipping-address-accuracy\"><strong>Shipping address accuracy</strong></h4>\n<ul>\n<li><p><strong>shipping_address_accurate</strong> (optional, 0, 1, or ALL)</p>\n</li>\n<li><p>If omitted: only orders where shipping_address_accurate = 1 are returned.</p>\n</li>\n<li><p>shipping_address_accurate=ALL: no filter is applied (both accurate and inaccurate).</p>\n</li>\n<li><p>Any other value: cast to boolean and filter accordingly.</p>\n</li>\n</ul>\n<h4 id=\"seller-handled-orders\"><strong>Seller-handled orders</strong></h4>\n<ul>\n<li><p><strong>include_seller_handled</strong> (optional, \"true\"/\"1\"/\"yes\")</p>\n<p>  By default, only order lines assigned to your fulfillment center (<code>center_id</code> = your center) are matched and returned. Orders that were handled directly by the seller (order lines with <code>center_id = 0</code>) are otherwise invisible via this endpoint, even when looked up by <code>id</code> or <code>order_id</code>.</p>\n<p>  When set to a truthy value:</p>\n<ul>\n<li>The order-lookup filter is broadened to match lines with <code>center_id</code> in (your center, 0), so seller-handled orders are found.</li>\n<li>The default <code>order_status IN (order, backorder)</code> filter is skipped, since seller-handled orders are typically already shipped or returned.</li>\n<li>Seller-handled order lines (<code>center_id = 0</code>) are included in the <code>order_products</code> array of the response, alongside any lines assigned to your center.</li>\n</ul>\n<p>  Use this to look up order data for returns on orders that the seller fulfilled themselves — e.g. <code>GET /center/orders?page=1&amp;id=23487271&amp;include_seller_handled=true</code>.</p>\n<p>  <strong>Backward compatible:</strong> default behavior (flag omitted) is unchanged.</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"sorting\"><strong>Sorting</strong></h3>\n<ul>\n<li><p><strong>sort_attr</strong> (optional, string)</p>\n<p>  Allowed values: id, order_id, order_date, ship_on_date, order_status, sync_date, updated_at.</p>\n<p>  Defaults to id if an unsupported attribute is provided.</p>\n</li>\n<li><p><strong>sort_dir</strong> (optional, string)</p>\n<p>  Sort direction: asc or desc (case-insensitive).</p>\n<p>  Defaults to DESC if not asc/ASC.</p>\n</li>\n</ul>\n<p>If both sort_attr and sort_dir are provided, the result is sorted accordingly.</p>\n<hr />\n<h3 id=\"optional-includes\"><strong>Optional Includes</strong></h3>\n<ul>\n<li><p><strong>include_raw_order_data</strong> (optional, \"true\"/\"false\")</p>\n<p>  When \"true\", includes raw_order_data with the original payload from the sales channel (if available).</p>\n</li>\n<li><p><strong>include_serial_numbers</strong> (optional, \"true\"/\"false\")</p>\n<p>  When \"true\", enables traceability data for order lines (serial numbers, batch IDs, expiration dates).</p>\n<p>  This is internally treated as enabling traceability.</p>\n</li>\n<li><p><strong>include_traceability_data</strong> (optional, \"true\"/\"false\")</p>\n<p>  Same effect as include_serial_numbers; when \"true\", adds traceability_data to each order line.</p>\n</li>\n<li><p><strong>include_inventory_log</strong> (optional, \"true\"/\"false\")</p>\n<p>  When \"true\", includes inventory_logs for each order (based on the ChannelDock order ID).</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"shipping-label-addresses\"><strong>Shipping Label Addresses</strong></h3>\n<ul>\n<li><p><strong>include_shipping_label_addresses</strong> (optional, string — comma-separated carrier slugs)</p>\n<p>  Example: <code>include_shipping_label_addresses=postnl,sendcloud,generic</code></p>\n<p>  When provided, each order in the response will include a <code>shipping_label_addresses</code> object keyed by carrier slug. Each entry contains the sanitized address as stored in the shipping label for that carrier.</p>\n<p>  <strong>Supported slugs:</strong> generic, bolcom, myparcel, dpdnl, dhlnl, dhlde, internetmarke, ampere, amperev2, postnl, gls, bpost, sendcloud, wuunder, shipcloud, shipstation, sendy, sendwise, parcelpro, qls, shipit, gls_shipit, ups, hermes, monta, easyship, amazon_easyship, landmark, trunkrs, asendia, fedex</p>\n<p>  Unsupported slugs are silently ignored.</p>\n<p>  <strong>PII / privacy:</strong> If <code>api_pii_enabled = 0</code> for the seller, the <code>shipping_label_addresses</code> field is redacted (not returned).</p>\n<p>  <strong>Backward compatibility:</strong> The existing flat <code>shipping_*</code> fields on the order are unchanged.</p>\n<p>  <strong>Response field structure</strong> (<code>shipping_label_addresses</code>):</p>\n<p>  Each key is a carrier slug. Each value is an object with:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>first_name</td>\n<td>string|null</td>\n<td>First name</td>\n</tr>\n<tr>\n<td>last_name</td>\n<td>string|null</td>\n<td>Last name</td>\n</tr>\n<tr>\n<td>full_name</td>\n<td>string|null</td>\n<td>Full name (combined)</td>\n</tr>\n<tr>\n<td>street</td>\n<td>string|null</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>house_number</td>\n<td>string|null</td>\n<td>House number</td>\n</tr>\n<tr>\n<td>house_number_ext</td>\n<td>string|null</td>\n<td>House number extension</td>\n</tr>\n<tr>\n<td>house_number_full</td>\n<td>string|null</td>\n<td>Combined house number + extension</td>\n</tr>\n<tr>\n<td>address_line1</td>\n<td>string|null</td>\n<td>Address line 1 (street + house number)</td>\n</tr>\n<tr>\n<td>address_line2</td>\n<td>string|null</td>\n<td>Address line 2 (extension / extra info)</td>\n</tr>\n<tr>\n<td>postal_code</td>\n<td>string|null</td>\n<td>Postal / ZIP code</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string|null</td>\n<td>City</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string|null</td>\n<td>Region / state</td>\n</tr>\n<tr>\n<td>country_code</td>\n<td>string|null</td>\n<td>ISO 3166-1 alpha-2 country code</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string|null</td>\n<td>Email address</td>\n</tr>\n<tr>\n<td>phone</td>\n<td>string|null</td>\n<td>Phone number</td>\n</tr>\n<tr>\n<td>is_complete</td>\n<td>boolean</td>\n<td>Whether all required address fields are present</td>\n</tr>\n<tr>\n<td>warnings</td>\n<td>array</td>\n<td>List of warning strings for missing/invalid fields</td>\n</tr>\n</tbody>\n</table>\n</div><p>  <strong>Example response snippet:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"shipping_label_addresses\": {\n    \"postnl\": {\n      \"first_name\": \"Jan\",\n      \"last_name\": \"de Vries\",\n      \"full_name\": \"Jan de Vries\",\n      \"street\": \"Hoofdstraat\",\n      \"house_number\": \"12\",\n      \"house_number_ext\": \"A\",\n      \"house_number_full\": \"12A\",\n      \"address_line1\": \"Hoofdstraat 12\",\n      \"address_line2\": \"A\",\n      \"postal_code\": \"1234AB\",\n      \"city\": \"Amsterdam\",\n      \"region\": null,\n      \"country_code\": \"NL\",\n      \"email\": \"jan@example.com\",\n      \"phone\": \"+31612345678\",\n      \"is_complete\": true,\n      \"warnings\": []\n    },\n    \"sendcloud\": {\n      \"first_name\": \"Jan\",\n      \"last_name\": \"de Vries\",\n      \"full_name\": \"Jan de Vries\",\n      \"street\": \"Hoofdstraat\",\n      \"house_number\": \"12\",\n      \"house_number_ext\": \"A\",\n      \"house_number_full\": \"12A\",\n      \"address_line1\": \"Hoofdstraat 12\",\n      \"address_line2\": \"A\",\n      \"postal_code\": \"1234AB\",\n      \"city\": \"Amsterdam\",\n      \"region\": null,\n      \"country_code\": \"NL\",\n      \"email\": \"jan@example.com\",\n      \"phone\": \"+31612345678\",\n      \"is_complete\": true,\n      \"warnings\": []\n    }\n  }\n}\n</code></pre>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","orders"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>optional: ChannelDock order id</p>\n","type":"text/plain"},"key":"id","value":"3215746"},{"disabled":true,"key":"seller_id","value":"2"},{"disabled":true,"description":{"content":"<p>optional ( default: order+backorder | shipment | return | pending | on-hold | backorder | cancelled | refunded | failed | trash | ALL )</p>\n","type":"text/plain"},"key":"order_status","value":"shipment"},{"disabled":true,"description":{"content":"<p>optional: special case. Returns order lines NOT YET assigned to any fulfillment center (center_id=0), instead of lines assigned to your own center. Ignores skip_partial_orders and fulfillment_status filters. Not the same as 'only orders whose status literally is backorder' — order_status IN (order, backorder) lines with an unassigned product line are included too.</p>\n","type":"text/plain"},"key":"order_status","value":"backorder"},{"disabled":true,"description":{"content":"<p>optional: remote order id of the webshop / marketplace</p>\n","type":"text/plain"},"key":"order_id","value":"5576463548764"},{"disabled":true,"description":{"content":"<p>optional: country code of order</p>\n","type":"text/plain"},"key":"shipping_country_code","value":"NL"},{"disabled":true,"description":{"content":"<p>optional ( id | default: order_date | sync_date | updated_at )</p>\n","type":"text/plain"},"key":"sort_attr","value":"sync_date"},{"disabled":true,"description":{"content":"<p>optional ( DESC | default: ASC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional: filter on address validation ( default: 1 | 0  | 'ALL')</p>\n","type":"text/plain"},"key":"shipping_address_accurate","value":"0"},{"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional ( date )</p>\n","type":"text/plain"},"key":"start_date","value":"2023-11-19"},{"disabled":true,"description":{"content":"<p>optional ( date )</p>\n","type":"text/plain"},"key":"end_date","value":"2023-12-19"},{"disabled":true,"key":"include_raw_order_data","value":"false"},{"disabled":true,"key":"include_traceability_data","value":"true"},{"disabled":true,"description":{"content":"<p>optional: filter orders with sync_date &gt;= this value. Accepts 'Y-m-d' (e.g. 2024-06-09, treated as 00:00:00) or 'Y-m-d H:i:s' (e.g. 2024-06-09 12:30:00). Preferred over updated_at_from for polling since sync_date only changes on order create or explicit sync, not on internal batch reassignments.</p>\n","type":"text/plain"},"key":"sync_date_from","value":"2024-06-09"},{"disabled":true,"description":{"content":"<p>optional: filter orders with sync_date &lt;= this value. Accepts 'Y-m-d' (e.g. 2024-06-10, treated as 23:59:59) or 'Y-m-d H:i:s' (e.g. 2024-06-10 12:30:00).</p>\n","type":"text/plain"},"key":"sync_date_to","value":"2024-06-10"},{"disabled":true,"description":{"content":"<p>optional: orders with at least one FC-assigned line with this fulfillment_status (e.g. default = not imported into FC WMS).</p>\n","type":"text/plain"},"key":"fulfillment_status","value":"default"},{"disabled":true,"description":{"content":"<p>optional: orders with at least one FC-assigned line where fulfillment_status is not this value.</p>\n","type":"text/plain"},"key":"fulfillment_status_exclude","value":"imported"},{"disabled":true,"description":{"content":"<p>optional: when 1 or true, exclude orders with open lines still at the seller (center_id=0). Omit or 0 to include partial orders.</p>\n","type":"text/plain"},"key":"skip_partial_orders","value":"1"},{"disabled":true,"description":{"content":"<p>optional: also return orders/lines handled directly by the seller (center_id = 0), skipping the default order_status filter. Useful for looking up order data for returns on seller-fulfilled orders.</p>\n","type":"text/plain"},"key":"include_seller_handled","value":"true"},{"disabled":true,"description":{"content":"<p>optional: comma-separated list of carrier slugs. When provided, each order in the response will include a shipping_label_addresses object keyed by carrier slug. Supported slugs: generic, bolcom, myparcel, dpdnl, dhlnl, dhlde, internetmarke, ampere, amperev2, postnl, gls, bpost, sendcloud, wuunder, shipcloud, shipstation, sendy, sendwise, parcelpro, qls, shipit, gls_shipit, ups, hermes, monta, easyship, amazon_easyship, landmark, trunkrs, asendia, fedex. Unsupported slugs are silently ignored. Requires api_pii_enabled=1; if PII is disabled the field is redacted.</p>\n","type":"text/plain"},"key":"include_shipping_label_addresses","value":"postnl,sendcloud,generic"}],"variable":[]}},"response":[{"id":"6e2558eb-489c-4c85-949c-29511f8527aa","name":"Get Orders","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/orders?id=3215746&page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","orders"],"query":[{"key":"id","value":"3215746","description":"optional: ChannelDock order id"},{"key":"seller_id","value":"2","disabled":true},{"key":"order_status","value":"shipment","description":"optional ( default: order | shipment | cancelled | return | backorder )","disabled":true},{"key":"order_id","value":"5576463548764","description":"optional: remote order id of the webshop / marketplace","disabled":true},{"key":"shipping_country_code","value":"NL","description":"optional: country code of order","disabled":true},{"key":"sort_attr","value":"sync_date","description":"optional ( id | default: order_date | sync_date | updated_at )","disabled":true},{"key":"sort_dir","value":"DESC","description":"optional ( DESC | default: ASC )","disabled":true},{"key":"shipping_address_accurate","value":"0","description":"optional: filter on address validation ( default: 1 | 0 )","disabled":true},{"key":"page","value":"1"},{"key":"include_traceability_data","value":"false","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 10,\n  \"orders_count\": 1,\n  \"orders\": [\n    {\n      \"id\": 88210,\n      \"seller_id\": 2,\n      \"order_id\": \"WC-88210\",\n      \"seq_order_id\": \"UPW-2026-00415\",\n      \"api_id\": 0,\n      \"price_total\": 466.8,\n      \"discount_total\": 0,\n      \"vat_number\": \"\",\n      \"payment_id\": \"pi_3PqAB12FCdEfGhI\",\n      \"channel_name\": \"WooCommerce\",\n      \"channel_id\": 8,\n      \"billing_address_supplement\": \"\",\n      \"billing_house_number\": \"40\",\n      \"billing_house_number_ext\": \"A\",\n      \"billing_city\": \"Amsterdam\",\n      \"billing_company\": \"ChannelDock B.V.\",\n      \"billing_country_code\": \"NL\",\n      \"billing_email\": \"lars@upwind.example.com\",\n      \"billing_first_name\": \"Lars\",\n      \"billing_middle_name\": \"van\",\n      \"billing_last_name\": \"Schaick\",\n      \"billing_region\": \"Noord-Holland\",\n      \"billing_street\": \"Duivendrechtsekade\",\n      \"billing_zip_code\": \"1080 AH\",\n      \"shipping_first_name\": \"Lars\",\n      \"shipping_last_name\": \"van Schaick\",\n      \"shipping_company\": \"ChannelDock B.V.\",\n      \"shipping_street\": \"Duivendrechtsekade\",\n      \"shipping_house_number\": \"40\",\n      \"shipping_house_number_ext\": \"A\",\n      \"shipping_zip_code\": \"1080 AH\",\n      \"shipping_region\": \"Noord-Holland\",\n      \"shipping_country_code\": \"NL\",\n      \"shipping_city\": \"Amsterdam\",\n      \"shipping_email\": \"lars@upwind.example.com\",\n      \"shipping_phone_number\": \"+31 6 1234 5678\",\n      \"order_date\": \"2026-06-13 09:24:11\",\n      \"ship_on_date\": \"2026-06-14\",\n      \"total_weight\": 2.4,\n      \"order_status\": \"order\",\n      \"extra_comment\": \"Customer asked for delivery before the weekend.\",\n      \"is_b2b\": 0,\n      \"po_number\": null,\n      \"pallet_count\": 0,\n      \"order_products\": [\n        {\n          \"id\": 91201,\n          \"api_id\": 0,\n          \"seller_id\": 2,\n          \"center_id\": 7,\n          \"order_id\": 88210,\n          \"orderItemId\": \"WC-88210-1\",\n          \"ean\": \"8719326583631\",\n          \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n          \"price\": 299.95,\n          \"quantity\": 1,\n          \"is_shipped\": 0,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": null,\n          \"fulfillment_status\": \"pending\",\n          \"shipping_costs\": 6.95,\n          \"product\": {\n            \"id\": 18421,\n            \"sku\": \"UPW-BAR-52\",\n            \"ean\": \"8719326583631\",\n            \"weight\": 1.2,\n            \"price\": 299.95,\n            \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n            \"child_from_bundle\": false,\n            \"country_of_origin\": \"CN\",\n            \"product_classification\": \"9506290000\"\n          }\n        },\n        {\n          \"id\": 91202,\n          \"api_id\": 0,\n          \"seller_id\": 2,\n          \"center_id\": 7,\n          \"order_id\": 88210,\n          \"orderItemId\": \"WC-88210-2\",\n          \"ean\": \"8719326583662\",\n          \"title\": \"Carbon Fin Set G10 (set of 4)\",\n          \"price\": 79.95,\n          \"quantity\": 2,\n          \"is_shipped\": 0,\n          \"cancellation_request\": 0,\n          \"shipment_label_id\": null,\n          \"fulfillment_status\": \"pending\",\n          \"shipping_costs\": 0,\n          \"product\": {\n            \"id\": 18424,\n            \"sku\": \"UPW-FIN-G10\",\n            \"ean\": \"8719326583662\",\n            \"weight\": 0.6,\n            \"price\": 79.95,\n            \"title\": \"Carbon Fin Set G10 (set of 4)\",\n            \"child_from_bundle\": false,\n            \"country_of_origin\": \"DE\",\n            \"product_classification\": \"9506290000\"\n          }\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"06700ff8-6291-4b87-a0e5-1a68384f6941"},{"name":"Update order line fulfillment status","id":"15c94d79-ef37-4900-93e5-5f79d7de0f1c","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"fulfillment_status\": \"imported\",\n    \"order_ids\": [3918588, 3918589]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/fulfillment-status","description":"<h3 id=\"update-order-line-fulfillment_status-bulk\"><strong>Update order line fulfillment_status (bulk)</strong></h3>\n<p>Set <code>fulfillment_status</code> on order lines assigned to your fulfillment center. Use your own status labels (e.g. <code>default</code>, <code>imported</code>, <code>wms_ready</code>).</p>\n<p>Provide <strong>one</strong> targeting mode:</p>\n<ol>\n<li><strong>fulfillment_status</strong> + <strong>order_ids</strong> — all your lines on each order (max 100 order ids)</li>\n<li><strong>fulfillment_status</strong> + <strong>order_product_ids</strong> — specific lines (max 500 ids)</li>\n<li><strong>order_products</strong> — per-line <code>{ \"id\" or \"order_product_id\", \"fulfillment_status\" }</code> (mixed statuses allowed)</li>\n</ol>\n<p><strong>order_ids</strong> and <strong>order_product_ids</strong> accept arrays or comma-separated strings.</p>\n<p>Status rules: 1–50 characters, lowercase letters, digits, underscore, hyphen. Cannot set integration-reserved values (e.g. <code>jtl_pending</code>, names ending in <code>_pending</code>, <code>_shipped</code>, or <code>_error</code>).</p>\n<p>For a single order you can also use <strong>PUT</strong> <code>/center/orders</code> with <code>id</code>, <code>fulfillment_status</code>, and optional <code>order_product_ids</code>.</p>\n","urlObject":{"path":["portal","api","v2","center","orders","fulfillment-status"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"15c94d79-ef37-4900-93e5-5f79d7de0f1c"},{"name":"Update an order","id":"e1f55123-2bb2-4283-a511-bd5c4d7f4261","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"3918588\",\n    \"order_status\": \"on-hold\",\n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Kouffeld\",\n    \"shipping_company\": \"ChannelDock\",\n    \"shipping_email\": \"nicky@gmail.com\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"41\",\n    \"shipping_house_number_ext\": \"\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_address_accurate\": 1,\n    \"extra_comment\": \"A manual order created by ChannelDock API.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders","description":"<h3 id=\"update-an-order\"><strong>Update an order</strong></h3>\n<p>Update one or more fields on an existing order for a seller connected to the authenticated fulfillment center.</p>\n<ul>\n<li><strong>id</strong> (required, integer) — ChannelDock order ID.</li>\n</ul>\n<p>Send only the fields you want to change. The response includes an <strong>updated_fields</strong> object with the values that were applied.</p>\n<h4 id=\"shipping-address\"><strong>Shipping address</strong></h4>\n<ul>\n<li>shipping_first_name, shipping_last_name, shipping_company, shipping_email</li>\n<li>shipping_street, shipping_house_number, shipping_house_number_ext</li>\n<li>shipping_city, shipping_zip_code, shipping_country_code, shipping_region</li>\n<li>extra_comment</li>\n</ul>\n<h4 id=\"shipping-address-accuracy\"><strong>Shipping address accuracy</strong></h4>\n<ul>\n<li><p><strong>shipping_address_accurate</strong> (optional, 0 or 1)</p>\n<p>  Marks whether the shipping address is considered valid for fulfillment.</p>\n<ul>\n<li><strong>0</strong> — address flagged as inaccurate (order may be excluded from picking/batching until corrected).</li>\n<li><strong>1</strong> — address confirmed accurate (same effect as confirming the address in the portal).</li>\n</ul>\n<p>  Use <strong>1</strong> after correcting shipping fields via the API so the order can proceed to fulfillment.</p>\n</li>\n</ul>\n<h4 id=\"order-metadata\"><strong>Order metadata</strong></h4>\n<ul>\n<li>seq_order_id, ship_on_date (seller timezone; empty string resets to order_date)</li>\n<li>order_status (see Get Orders for allowed values; cancelled triggers cancel flow)</li>\n</ul>\n<h4 id=\"order-line-fulfillment_status-wms-import-tracking\"><strong>Order line fulfillment_status (WMS import tracking)</strong></h4>\n<ul>\n<li><p><strong>order_products</strong> (optional, array)</p>\n<p>  Per-line updates. Each item:</p>\n<ul>\n<li><strong>id</strong> or <strong>order_product_id</strong> (required) — order line id</li>\n<li><strong>fulfillment_status</strong> (required) — your status label (see rules below)</li>\n</ul>\n</li>\n<li><p><strong>fulfillment_status</strong> (optional, string)</p>\n<p>  Apply one status to lines selected by <strong>order_product_ids</strong>, or to all FC-assigned lines on the order when <strong>id</strong> is set and <strong>order_product_ids</strong> is omitted.</p>\n</li>\n<li><p><strong>order_product_ids</strong> (optional, array or comma-separated string)</p>\n<p>  ChannelDock order line ids. Use with <strong>fulfillment_status</strong> on this request.</p>\n</li>\n</ul>\n<p>Status rules: 1–50 characters, lowercase letters, digits, underscore, hyphen. Integration-reserved values (e.g. <code>jtl_pending</code>, <code>*_shipped</code>) cannot be set via API.</p>\n<p>Response: <code>updated_order_products</code>, <code>skipped_order_products</code>, <code>failed_order_products</code> (on error).</p>\n<p>Bulk updates (multiple orders): use <strong>POST</strong> <code>/portal/api/v2/center/orders/fulfillment-status</code> with <strong>order_ids</strong> or <strong>order_product_ids</strong>.</p>\n","urlObject":{"path":["portal","api","v2","center","orders"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"e3609f1d-ca73-4df6-b588-1266ec1b13ae","name":"Update an order","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"id\": \"3918588\",\n    \"order_status\": \"on-hold\",\n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Kouffeld\",\n    \"shipping_company\": \"ChannelDock\",\n    \"shipping_email\": \"nicky@gmail.com\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_address_accurate\": 1,\n    \"extra_comment\": \"A manual order created by ChannelDock API.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Updated order: 88210\",\n  \"updated_fields\": {\n    \"order_status\": \"on-hold\",\n    \"shipping_first_name\": \"Lars\",\n    \"shipping_last_name\": \"van Schaick\",\n    \"shipping_company\": \"ChannelDock B.V.\",\n    \"shipping_email\": \"lars@upwind.example.com\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080 AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_country_code\": \"NL\",\n    \"extra_comment\": \"Held to await stock confirmation.\"\n  }\n}"}],"_postman_id":"e1f55123-2bb2-4283-a511-bd5c4d7f4261"},{"name":"Claim order","id":"27a8a417-8b19-4314-8832-b08f975a86a8","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": 13839184\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/claim","description":"<p>Allows a fulfillment center to claim products from a specific order. This action updates the status of the order’s products from back order to being managed by the fulfillment center, effectively removing them from the back order status and attaching them to the fulfillment center’s inventory.</p>\n","urlObject":{"path":["portal","api","v2","center","orders","claim"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a51e9c15-ce05-4980-adca-9a2d99146446","name":"Get Orders","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": 13839184\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/claim"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"claimed_order_products\": [\n    {\n      \"order_id\": 88210,\n      \"order_product_id\": 91201,\n      \"ean\": \"8719326583631\",\n      \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n      \"quantity\": 1\n    },\n    {\n      \"order_id\": 88210,\n      \"order_product_id\": 91202,\n      \"ean\": \"8719326583662\",\n      \"title\": \"Carbon Fin Set G10 (set of 4)\",\n      \"quantity\": 2\n    }\n  ]\n}"}],"_postman_id":"27a8a417-8b19-4314-8832-b08f975a86a8"},{"name":"Create Order","id":"63d6bd5e-a788-48d9-a0f1-4e67bb02a407","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"seller_id\": 123,\n    \"order_id\": \"B-32333\",\n    \"seq_order_id\": \"CD-ORDER-2024-001\",\n    \"order_status\": \"order\",\n    \"extra_comment\": \"A manual order created by ChannelDock API.\",\n    \n    \"price_total\": 125.50,\n    \"price_currency\": \"EUR\",\n    \n    \"company\": \"ChannelDock BV\",\n    \"email\": \"demo_customer@channeldock.com\",\n    \"first_name\": \"Nicky\",\n    \"last_name\": \"Smith\",\n    \n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Smith\",\n    \"shipping_company\": \"ChannelDock BV\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_region\": \"Noord-Holland\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_phone_number\": \"+31612345678\",\n    \"shipping_email\": \"demo_customer@channeldock.com\",\n\n    \"billing_first_name\": \"Nicky\",\n    \"billing_last_name\": \"Smith\", \n    \"billing_company\": \"ChannelDock BV\",\n    \"billing_street\": \"Duivendrechtsekade\",\n    \"billing_house_number\": \"40\",\n    \"billing_house_number_ext\": \"A\",\n    \"billing_zip_code\": \"1080AH\",\n    \"billing_city\": \"Amsterdam\",\n    \"billing_country_code\": \"NL\",\n    \"billing_email\": \"demo_customer@channeldock.com\",\n    \n    \"order_products\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"quantity\": 10,\n            \"price\": 75.00\n        },\n        {\n            \"ean\": \"8719326583648\",\n            \"quantity\": 5\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders","description":"<p>Orders can be handled (processed to shipments) by sending ChannelDock the order_id, track_and_trace and carrier. ChannelDock will then automatically handle the order at the sales channel where it originated from.</p>\n<h3 id=\"unrecognized-product-policy\">Unrecognized Product Policy</h3>\n<p>De parameter unrecognized_product_policy bepaalt hoe het systeem omgaat met orderregels die niet herkend worden. Ondersteunde waarden zijn:</p>\n<ul>\n<li><p><strong>allow (standaard)</strong></p>\n<p>  De order wordt aangemaakt, ook als er onbekende regels zijn.</p>\n<ul>\n<li><p>Resultaat: partial_success + order_products_failed</p>\n</li>\n<li><p>Gedrag:</p>\n<ul>\n<li><p><strong>Seller</strong>: er wordt een placeholder-regel aangemaakt zonder gekoppeld product</p>\n</li>\n<li><p><strong>Center</strong>: onbekende regels worden overgeslagen</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n<li><p><strong>reject_order</strong></p>\n<p>  De volledige order wordt afgewezen zodra er één onbekende regel is.</p>\n<ul>\n<li>Resultaat: HTTP 422 + order_products_failed</li>\n</ul>\n</li>\n<li><p><strong>hold_order</strong></p>\n<p>  De order wordt aangemaakt, maar op <em>on-hold</em> gezet als er onbekende regels zijn.</p>\n<ul>\n<li>Resultaat: partial_success + order_products_failed</li>\n</ul>\n</li>\n</ul>\n<p><strong>Belangrijk:</strong></p>\n<p>Als geen enkele orderregel herkend wordt, faalt de aanvraag altijd met een <strong>HTTP 400</strong>, ongeacht de gekozen policy.</p>\n","urlObject":{"path":["portal","api","v2","center","orders"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"cdef0ebd-fbad-4e76-8898-c14fc62897c0","name":"Created (success)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"seller_id\": 123,\n    \"order_status\": \"order\",\n    \"extra_comment\": \"A manual order created by ChannelDock API.\",\n    \n    \"price_total\": 125.50,\n    \"price_currency\": \"EUR\",\n    \n    \"company\": \"ChannelDock BV\",\n    \"email\": \"demo_customer@channeldock.com\",\n    \"first_name\": \"Nicky\",\n    \"last_name\": \"Smith\",\n    \n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Smith\",\n    \"shipping_company\": \"ChannelDock BV\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_region\": \"Noord-Holland\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_phone_number\": \"+31612345678\",\n    \"shipping_email\": \"demo_customer@channeldock.com\",\n\n    \"billing_first_name\": \"Nicky\",\n    \"billing_last_name\": \"Smith\", \n    \"billing_company\": \"ChannelDock BV\",\n    \"billing_street\": \"Duivendrechtsekade\",\n    \"billing_house_number\": \"40\",\n    \"billing_house_number_ext\": \"A\",\n    \"billing_zip_code\": \"1080AH\",\n    \"billing_city\": \"Amsterdam\",\n    \"billing_country_code\": \"NL\",\n    \"billing_email\": \"demo_customer@channeldock.com\",\n    \n    \"order_products\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"quantity\": 10,\n            \"price\": 75.00\n        },\n        {\n            \"ean\": \"8719326583648\",\n            \"quantity\": 5\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Created new order: 88220\",\n  \"order_id\": 88220\n}"},{"id":"d105a8f1-4c79-4e12-b431-4881a5b92940","name":"Created with unrecognized lines (partial_success)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"seller_id\": 123,\n    \"order_status\": \"order\",\n    \"extra_comment\": \"A manual order created by ChannelDock API.\",\n    \n    \"price_total\": 125.50,\n    \"price_currency\": \"EUR\",\n    \n    \"company\": \"ChannelDock BV\",\n    \"email\": \"demo_customer@channeldock.com\",\n    \"first_name\": \"Nicky\",\n    \"last_name\": \"Smith\",\n    \n    \"shipping_first_name\": \"Nicky\",\n    \"shipping_last_name\": \"Smith\",\n    \"shipping_company\": \"ChannelDock BV\",\n    \"shipping_street\": \"Duivendrechtsekade\",\n    \"shipping_house_number\": \"40\",\n    \"shipping_house_number_ext\": \"A\",\n    \"shipping_zip_code\": \"1080AH\",\n    \"shipping_city\": \"Amsterdam\",\n    \"shipping_region\": \"Noord-Holland\",\n    \"shipping_country_code\": \"NL\",\n    \"shipping_phone_number\": \"+31612345678\",\n    \"shipping_email\": \"demo_customer@channeldock.com\",\n\n    \"billing_first_name\": \"Nicky\",\n    \"billing_last_name\": \"Smith\", \n    \"billing_company\": \"ChannelDock BV\",\n    \"billing_street\": \"Duivendrechtsekade\",\n    \"billing_house_number\": \"40\",\n    \"billing_house_number_ext\": \"A\",\n    \"billing_zip_code\": \"1080AH\",\n    \"billing_city\": \"Amsterdam\",\n    \"billing_country_code\": \"NL\",\n    \"billing_email\": \"demo_customer@channeldock.com\",\n    \n    \"order_products\": [\n        {\n            \"ean\": \"8719326583631\",\n            \"quantity\": 10,\n            \"price\": 75.00\n        },\n        {\n            \"ean\": \"8719326583648\",\n            \"quantity\": 5\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"partial_success\",\n  \"message\": \"Created new order: 88221. One or more lines are not linked to a center product.\",\n  \"order_id\": 88221,\n  \"order_products_failed\": [\n    {\n      \"ean\": \"9990000000001\",\n      \"message\": \"Product not recognized: no center product with this EAN for this seller. Order line was skipped.\"\n    }\n  ]\n}"},{"id":"3891cb57-f48f-4e17-a94e-4af189ad85d9","name":"Rejected — no order products recognized","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"seller_id\": 42,\n  \"seq_order_id\": \"EXT-2025-88421\",\n  \"order_status\": \"order\",\n  \"price_total\": 89.9,\n  \"price_currency\": \"EUR\",\n  \"first_name\": \"Jane\",\n  \"last_name\": \"Buyer\",\n  \"email\": \"jane@example.com\",\n  \"shipping_company\": \"ACME BV\",\n  \"shipping_street\": \"Keizersgracht\",\n  \"shipping_house_number\": \"100\",\n  \"shipping_house_number_ext\": \"B\",\n  \"shipping_city\": \"Amsterdam\",\n  \"shipping_zip_code\": \"1015CV\",\n  \"shipping_country_code\": \"NL\",\n  \"extra_comment\": \"API test — mixed EANs\",\n  \"order_products\": [\n    {\n      \"ean\": \"8888888888888\",\n      \"quantity\": 2\n    },\n    {\n      \"ean\": \"9999999999999\",\n      \"quantity\": 1,\n      \"price\": 19.99\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"error\",\n  \"message\": \"No order products could be created: none of the given EANs match a product for this fulfillment center and seller.\",\n  \"order_products_failed\": [\n    {\n      \"ean\": \"9990000000001\",\n      \"message\": \"Product not recognized: no center product with this EAN for this seller.\"\n    },\n    {\n      \"ean\": \"9990000000002\",\n      \"message\": \"Product not recognized: no center product with this EAN for this seller.\"\n    }\n  ]\n}"}],"_postman_id":"63d6bd5e-a788-48d9-a0f1-4e67bb02a407"},{"name":"Add order product","id":"e73edac8-3689-4a8a-9a6e-e96e5e4f2b72","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 12345,\n  \"quantity\": 2\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/{{order_id}}/add-product","description":"<p>Adds a product line to an existing order. Use this when you need to add extra items to an order that is already in the system.</p>\n<p>Requirements:</p>\n<ul>\n<li><p>The order must belong to a seller connected to your center</p>\n</li>\n<li><p>The product must exist in your center’s product catalog</p>\n</li>\n<li><p>The product must belong to the same seller as the order</p>\n</li>\n</ul>\n<p>Product ID: You can use either the center_product id or the seller product_id.</p>\n","urlObject":{"path":["portal","api","v2","center","orders","{{order_id}}","add-product"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"bc0559a6-fb72-4ce7-b402-4b06ad099159","name":"Add order product","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"product_id\": 12345,\n  \"quantity\": 2\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/123456789/add-product"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Order product added.\"\n}"}],"_postman_id":"e73edac8-3689-4a8a-9a6e-e96e5e4f2b72"},{"name":"Create order log","id":"28ee9e39-06cc-43d6-b69c-b7cb3dac6068","request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"order_id\": 12345,\n  \"title\": \"External WMS update\",\n  \"status\": \"info\",\n  \"description\": \"Picked in warehouse A.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orderlogs","description":"<p>Create an order log entry on a specific order. Use the internal ChannelDock order id (<code>orders.id</code>), not the marketplace order reference.</p>\n<p>Enable <strong>Order Logs</strong> with <strong>POST</strong> on your API key in ChannelDock settings.</p>\n<h3 id=\"requirements\">Requirements</h3>\n<ul>\n<li>The order must belong to a seller connected to your fulfillment center (connected status).</li>\n<li>Works for open and archived/closed orders. Closed orders are not moved back to live.</li>\n</ul>\n<h3 id=\"request-body-json\">Request body (JSON)</h3>\n<ul>\n<li><strong>order_id</strong> (integer, required) — Internal order id.</li>\n<li><strong>title</strong> (string, required) — Short log title. Max 500 characters. HTML is stripped.</li>\n<li><strong>status</strong> (string, optional) — Log status/type. Default: <code>info</code>. Max 255 characters. Common values: <code>info</code>, <code>updated</code>, <code>update</code>, <code>created</code>, <code>error</code>, <code>label</code>, <code>cancelled</code>, <code>changed</code>.</li>\n<li><strong>description</strong> (string, optional) — Longer text. Max 5000 characters. HTML is stripped. The API appends: <code>Logged via API by {user first name last name}.</code></li>\n</ul>\n<h3 id=\"success\">Success</h3>\n<p>HTTP <strong>201</strong> — Returns <code>order_id</code> and the created <code>order_log</code> row.</p>\n<h3 id=\"errors\">Errors</h3>\n<ul>\n<li><strong>400</strong> — Missing/invalid <code>order_id</code> or <code>title</code>, or field too long.</li>\n<li><strong>404</strong> — Order not found or not accessible for this API key.</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","orderlogs"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"45238d46-fc91-4b33-96d3-472ddba78393","name":"Create order log","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"order_id\": 12345,\n  \"title\": \"External WMS update\",\n  \"status\": \"info\",\n  \"description\": \"Picked in warehouse A.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orderlogs"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Order log created.\",\n  \"order_id\": 12345,\n  \"order_log\": {\n    \"id\": 987654,\n    \"status\": \"info\",\n    \"title\": \"External WMS update\",\n    \"description\": \"Picked in warehouse A. Logged via API by Jane Smith.\",\n    \"created_at\": \"2026-07-24 15:30:00\"\n  }\n}"}],"_postman_id":"28ee9e39-06cc-43d6-b69c-b7cb3dac6068"},{"name":"Delete an order product","id":"29bf5629-023a-4ed8-930c-7ce13d88c1fc","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"order_product_id\": 67890\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/{id}/remove-order-product","description":"<p>Use this endpoint to remove a single order line (<code>order_product</code>) from an existing order.  </p>\n<p>What it does</p>\n<ul>\n<li><p>Removes one order product line from the specified order</p>\n</li>\n<li><p>Recalculates/finalizes the order after deletion</p>\n</li>\n<li><p>Writes an order log entry</p>\n</li>\n<li><p>Returns success/error JSON</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","orders","{id}","remove-order-product"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"e600b3b7-d772-4543-a805-32c3cdfde85a","name":"Delete an order product","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"order_product_id\": 67890\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/orders/{id}/remove-order-product"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Order product removed.\"\n}"}],"_postman_id":"29bf5629-023a-4ed8-930c-7ce13d88c1fc"}],"id":"f95b99bb-dfb7-4c40-a8c7-6d16357932d1","description":"<p>The orders API allows you to view and update,an individual, or a batch, of orders.</p>\n","_postman_id":"f95b99bb-dfb7-4c40-a8c7-6d16357932d1"},{"name":"Stock locations","item":[{"name":"Create stock location","id":"8c09811f-ddfd-46c3-9223-66c9940083f9","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock\": 10,\n  \"product_id\": 227,\n  \"stock_section_id\": 11576\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocklocations","description":"<p>Create a stock location linked to a stock section. Use the 'id' (as 'product_id'), that can be retrieved by the GET /products endpoint.</p>\n","urlObject":{"path":["portal","api","v2","center","stocklocations"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7c944e07-e2f1-46bf-bf27-e0cf5b893b7e","name":"Create stock location","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 11,\n  \"product_id\": 31,\n  \"active_stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location created!\",\n  \"stock_location_id\": 116\n}"}],"_postman_id":"8c09811f-ddfd-46c3-9223-66c9940083f9"},{"name":"Update stock location","id":"620b4b29-5394-4231-a754-ebd81af9dade","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 321,\n  \"stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocklocations","urlObject":{"path":["portal","api","v2","center","stocklocations"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"cf5fa8a8-9bac-4a18-919d-f41bedee9ddc","name":"Update stock location","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 11,\n  \"product_id\": 31,\n  \"active_stock\": 20\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location updated!\"\n}"}],"_postman_id":"620b4b29-5394-4231-a754-ebd81af9dade"},{"name":"Delete stock location","id":"bc09027c-113c-4450-bab0-f55a261845e2","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 326\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocklocations","urlObject":{"path":["portal","api","v2","center","stocklocations"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"8f7a865f-1cab-4933-b415-c8133b435a44","name":"Delete stock location","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},{"key":"api-secret","value":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_location_id\": 321\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocklocations"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock location deleted!\"\n}"}],"_postman_id":"bc09027c-113c-4450-bab0-f55a261845e2"},{"name":"Get stock locations","id":"df5a9922-3f8d-4a3c-8855-3f442dd8c3fd","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/stocklocations","description":"<p>This endpoint retrieves a paginated list of stock locations.</p>\n<p>Optional filters include id, stock_section_id, product_id, seller_id, and has_expiration. Pass seller_id to only return locations for that seller's products at this fulfillment center. Results can be sorted by attributes like id, stock_section_id, product_id, stock, and expiration_date in ascending or descending order.</p>\n<p>Each stock location includes key details (id, stock_section_id, product_id, expiration_date, batch_id, etc.) and associated product information (e.g., ean, sku, title, dimensions, and weight) if linked to a product.</p>\n<p>By default this endpoint only returns stock locations that already have a product assigned. Stock sections (shelves) that exist but currently hold no product are NOT included unless you pass include_empty=true. When include_empty=true, the response adds an empty_stock_sections_count and empty_stock_sections array listing those empty shelves — the existing stock_locations array is unchanged.</p>\n<p>Pagination is supported, with customizable page numbers and page size.</p>\n","urlObject":{"path":["portal","api","v2","center","stocklocations"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>Optional: The ID of the stock location</p>\n","type":"text/plain"},"key":"id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional: The ID of the stock section</p>\n","type":"text/plain"},"key":"stock_section_id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional: The ID of the product</p>\n","type":"text/plain"},"key":"product_id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional: only locations for this seller's products at this fulfillment center</p>\n","type":"text/plain"},"key":"seller_id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional: true = only locations with a THT/expiration date and stock &gt; 0</p>\n","type":"text/plain"},"key":"has_expiration","value":"true"},{"disabled":true,"description":{"content":"<p>Optional: ( id | stock_section_id | product_id | stock | expiration_date )</p>\n","type":"text/plain"},"key":"sort_attr","value":"stock"},{"disabled":true,"description":{"content":"<p>( ASC | DESC )\nRequired when sort_attr is filled in</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"},{"disabled":true,"description":{"content":"<p>Optional (default false): when true, also returns empty stock sections (shelves with no product) in a separate empty_stock_sections array. Not combined with product_id or seller_id.</p>\n","type":"text/plain"},"key":"include_empty","value":"true"}],"variable":[]}},"response":[{"id":"c0229d6b-e7b0-431f-8bea-9a319e9a0e33","name":"Get stock locations","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/seller/stocklocations","host":["https://channeldock.com"],"path":["portal","api","v2","seller","stocklocations"],"query":[{"key":"id","value":"0","description":"Optional: The ID of the stock location","disabled":true},{"key":"stock_section_id","value":"0","description":"Optional: The ID of the stock section","disabled":true},{"key":"product_id","value":"0","description":"Optional: The ID of the product","disabled":true},{"key":"seller_id","value":"0","description":"Optional: only locations for this seller's products at this fulfillment center","disabled":true},{"key":"has_expiration","value":"true","description":"Optional: true = only locations with a THT/expiration date and stock > 0","disabled":true},{"key":"sort_attr","value":"stock","description":"Optional: ( id | stock_section_id | product_id | stock | expiration_date )","disabled":true},{"key":"sort_dir","value":"ASC","description":"( ASC | DESC )\nRequired when sort_attr is filled in","disabled":true},{"key":"include_empty","value":"true","description":"Optional (default false): when true, also returns empty stock sections (shelves with no product) in a separate empty_stock_sections array. Not combined with product_id or seller_id.","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"stock_locations_count\": 2,\n  \"stock_locations\": [\n    {\n      \"id\": 114,\n      \"stock_section_id\": 2716,\n      \"seller_id\": 2,\n      \"center_id\": 7,\n      \"product_id\": 7,\n      \"stock\": 48,\n      \"include_in_stock_sync\": 1,\n      \"expiration_date\": null,\n      \"batch_id\": null,\n      \"product\": {\n        \"id\": 7,\n        \"center_id\": 7,\n        \"seller_id\": 2,\n        \"product_id\": 7,\n        \"ean\": \"8719326583631\",\n        \"sku\": \"UPW-BAR-52\",\n        \"product_reference\": \"UPW-REF-001\",\n        \"location\": \"B-12\",\n        \"title\": \"Upwind Kitesurf Bar Pro 52cm\",\n        \"weight\": 1.8,\n        \"x_size\": 60,\n        \"y_size\": 12,\n        \"z_size\": 8,\n        \"stock\": 48,\n        \"units_per_box\": 1,\n        \"auto_assign_orders\": true,\n        \"pick_costs\": 0.35,\n        \"multi_pick_costs\": 0.28\n      },\n      \"stock_section\": {\n        \"id\": 2716,\n        \"description\": \"Pick zone B - Shelf 12\",\n        \"extra_description\": \"Ground floor\",\n        \"reference\": \"B-12\",\n        \"pick_location\": 1,\n        \"warehouse_id\": 1,\n        \"warehouse_name\": \"Amsterdam DC\"\n      }\n    },\n    {\n      \"id\": 115,\n      \"stock_section_id\": 2717,\n      \"seller_id\": 2,\n      \"center_id\": 7,\n      \"product_id\": 8,\n      \"stock\": 36,\n      \"include_in_stock_sync\": 1,\n      \"expiration_date\": null,\n      \"batch_id\": null,\n      \"product\": {\n        \"id\": 8,\n        \"center_id\": 7,\n        \"seller_id\": 2,\n        \"product_id\": 8,\n        \"ean\": \"8719326583648\",\n        \"sku\": \"UPW-WET-M\",\n        \"product_reference\": \"UPW-REF-002\",\n        \"location\": \"B-13\",\n        \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n        \"weight\": 1.4,\n        \"x_size\": 35,\n        \"y_size\": 25,\n        \"z_size\": 6,\n        \"stock\": 36,\n        \"units_per_box\": 1,\n        \"auto_assign_orders\": true,\n        \"pick_costs\": 0.35,\n        \"multi_pick_costs\": 0.28\n      },\n      \"stock_section\": {\n        \"id\": 2717,\n        \"description\": \"Pick zone B - Shelf 13\",\n        \"extra_description\": \"Ground floor\",\n        \"reference\": \"B-13\",\n        \"pick_location\": 1,\n        \"warehouse_id\": 1,\n        \"warehouse_name\": \"Amsterdam DC\"\n      }\n    }\n  ]\n}"}],"_postman_id":"df5a9922-3f8d-4a3c-8855-3f442dd8c3fd"}],"id":"53f1adea-5bef-43e9-8572-b6093ecb41c0","description":"<p>For more advance stock management, users can use stock locations in ChannelDock. This means mapping out your warehouse structure assinging products to one or multiple stock locations.</p>\n<p>Using the GET /products endpoint, you can retrieve stock location data per product. Make sure to include the GET parameter 'include_stock_location_data'.</p>\n<p>Use this stock locations endpoint to add, update or delete products from a specific stock location.</p>\n<p>Each product at a stock location has a stock_location_id that you can use to update or delete the product from that location.  </p>\n<p>When adding a product to a stock location, you need to include a stock_section_id. Based on this stock_section_id ChannelDock knows where the product location is within your warehouse.</p>\n","_postman_id":"53f1adea-5bef-43e9-8572-b6093ecb41c0"},{"name":"Warehouses","item":[{"name":"Get warehouses","id":"75b7f573-c4d3-44e6-a715-aac228d00aec","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/warehouses","description":"<p>Get a list of all warehouses (physical buildings/locations) for the current fulfillment center.</p>\n<p><code>id: 0</code> (\"Default warehouse\") is always included first — it's not a real warehouse record, it's the same sentinel the portal UI has always shown, kept here so every warehouse_id value valid elsewhere in the API (including 0) is actually discoverable.</p>\n<p>Real warehouses are sorted by priority (warehouses with priority = 0 last), then description — same order as the portal UI.</p>\n","urlObject":{"path":["portal","api","v2","center","warehouses"],"host":["https://channeldock.com"],"query":[{"disabled":true,"description":{"content":"<p>Optional: filter on a specific warehouse</p>\n","type":"text/plain"},"key":"id","value":"1"}],"variable":[]}},"response":[{"id":"5915d8e5-697e-4322-ae07-40af1c6afea0","name":"Get warehouses","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/warehouses","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","warehouses"],"query":[{"key":"id","value":"1","description":"Optional: filter on a specific warehouse","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"warehouses_count\": 2,\n  \"warehouses\": [\n    {\n      \"id\": 0,\n      \"description\": \"Default warehouse\",\n      \"allow_orders\": true,\n      \"priority\": 0,\n      \"packing_bins_total\": 0\n    },\n    {\n      \"id\": 1,\n      \"description\": \"Main Warehouse\",\n      \"allow_orders\": true,\n      \"priority\": 0,\n      \"packing_bins_total\": 4\n    }\n  ]\n}"}],"_postman_id":"75b7f573-c4d3-44e6-a715-aac228d00aec"}],"id":"bdee9936-767a-4d24-90ee-b6fa7243f0f0","description":"<p>A warehouse is a physical building/location. Stock sections belong to a warehouse via warehouse_id. Use this endpoint to look up which warehouses (and IDs) exist before creating or filtering stock sections.</p>\n","_postman_id":"bdee9936-767a-4d24-90ee-b6fa7243f0f0"},{"name":"Stock sections","item":[{"name":"Get stock sections","id":"3258c084-5215-4f60-b06d-121cb42fcde7","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/stocksections?page=1","description":"<p>This endpoint retrieves a paginated list of stock sections (physical locations/shelves) for the current fulfillment center.</p>\n<p>Optional filters include id, parent_section_id, warehouse_id, and location_type. Results can be sorted by id, description, parent_section_id, or warehouse_id, in ascending or descending order.</p>\n<p>Each stock section includes stock_locations_count and total_stock, which tell you whether a DELETE would be blocked (blocked when total_stock &gt; 0) — check this before attempting a delete instead of guessing.</p>\n","urlObject":{"path":["portal","api","v2","center","stocksections"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>Optional: page number (50 per page)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Optional: filter on a specific section</p>\n","type":"text/plain"},"key":"id","value":"4821"},{"disabled":true,"description":{"content":"<p>Optional: filter on sections nested under a given parent</p>\n","type":"text/plain"},"key":"parent_section_id","value":"0"},{"disabled":true,"description":{"content":"<p>Optional: filter on warehouse</p>\n","type":"text/plain"},"key":"warehouse_id","value":"1"},{"disabled":true,"description":{"content":"<p>Optional: storage or pick</p>\n","type":"text/plain"},"key":"location_type","value":"pick"},{"disabled":true,"description":{"content":"<p>Optional: ( id | description | parent_section_id | warehouse_id )</p>\n","type":"text/plain"},"key":"sort_attr","value":"description"},{"disabled":true,"description":{"content":"<p>Optional: ( ASC | DESC )</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"}],"variable":[]}},"response":[{"id":"8a86d173-f9be-4ce7-b6c3-6f6a0016b1b7","name":"Get stock sections","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/stocksections?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","stocksections"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"stock_sections_count\": 1,\n  \"stock_sections\": [\n    {\n      \"id\": 4821,\n      \"description\": \"A1-01\",\n      \"extra_description\": null,\n      \"reference\": null,\n      \"parent_section_id\": 12,\n      \"warehouse_id\": 1,\n      \"warehouse_name\": \"Main Warehouse\",\n      \"location_type\": \"storage\",\n      \"stock_locations_count\": 2,\n      \"total_stock\": 14\n    }\n  ]\n}"}],"_postman_id":"3258c084-5215-4f60-b06d-121cb42fcde7"},{"name":"Create stock section","id":"a3de8af7-4805-4645-abd2-c1f2638eea5a","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"description\": \"A1-01\",\n  \"warehouse_id\": 1,\n  \"parent_section_id\": 12,\n  \"location_type\": \"pick\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocksections","description":"<p>Create a new stock section (physical location/shelf).</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>description</strong> (string, required)</p>\n<p>  Section name. Must be unique per center.</p>\n</li>\n<li><p><strong>warehouse_id</strong> (integer, optional)</p>\n<p>  Warehouse this section belongs to. Defaults to 0 (\"Default warehouse\"). Look up valid IDs via GET /warehouses — non-zero values must resolve to an existing warehouse for this center, otherwise the API returns a 404.</p>\n</li>\n<li><p><strong>parent_section_id</strong> (integer, optional)</p>\n<p>  Parent section ID, for nested locations. Defaults to 0 (top-level/root). A root section organizes the warehouse tree and cannot hold stock locations directly — check GET /stocksections?parent_section_id=0 first, since only one root per warehouse is shown in the portal UI's navigator.</p>\n</li>\n<li><p><strong>extra_description</strong> (string, optional)</p>\n<p>  Free-text notes.</p>\n</li>\n<li><p><strong>reference</strong> (string, optional)</p>\n<p>  Your own reference/code for this section.</p>\n</li>\n<li><p><strong>location_type</strong> (string, optional)</p>\n<p>  storage or pick. Defaults to storage. Returns a 422 for any other value.</p>\n</li>\n</ul>\n<p>Fails with a 409 if a section with the same description already exists for this center.</p>\n","urlObject":{"path":["portal","api","v2","center","stocksections"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"c97f7b68-be15-497e-b79e-01882a23fcbd","name":"Create stock section","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"description\": \"A1-01\",\n  \"warehouse_id\": 1,\n  \"parent_section_id\": 12,\n  \"location_type\": \"pick\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocksections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock section created!\",\n  \"stock_section_id\": 4821\n}"}],"_postman_id":"a3de8af7-4805-4645-abd2-c1f2638eea5a"},{"name":"Delete stock section","id":"86b222bf-d5b1-4bcf-91a3-4f6c04d56953","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_section_id\": 4821\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocksections","description":"<p>Delete a stock section (physical location/shelf).</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>stock_section_id</strong> (integer, required)</p>\n<p>  Section to delete.</p>\n</li>\n</ul>\n<p>Fails with a 409 if the section still holds stock — set the stock of every location in that section to 0 first (via PUT /stocklocations), then retry. Any child sections nested under the deleted section are re-parented to its parent (not deleted). Stock locations left with 0 stock under the deleted section are removed along with it.</p>\n","urlObject":{"path":["portal","api","v2","center","stocksections"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"0fd454a1-0b44-4d70-8736-c4fb198e40e2","name":"Delete stock section","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"stock_section_id\": 4821\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/stocksections"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Stock section deleted!\"\n}"}],"_postman_id":"86b222bf-d5b1-4bcf-91a3-4f6c04d56953"}],"id":"5597ee7a-c90c-49a9-9de5-d0e2e9bef77f","description":"<p>A stock section is a physical location itself (a shelf/rack, e.g. \"A1-01\"), organized in a hierarchy under a warehouse. This is distinct from stock locations, which manage the stock of a product placed at a section — stock locations can already create/delete a product's presence at a section, but not the section itself. Use this endpoint to create or remove the location.</p>\n<p>To look up valid warehouse_id values before creating a section, use GET /warehouses.</p>\n","_postman_id":"5597ee7a-c90c-49a9-9de5-d0e2e9bef77f"},{"name":"Shipments","item":[{"name":"Get shipments","id":"da39f00a-ee85-4378-90f7-0c6fbec4ff30","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/shipment?page=1","urlObject":{"path":["portal","api","v2","center","shipment"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"key":"id","value":"2092968"},{"disabled":true,"key":"seller_id","value":"1701"},{"disabled":true,"description":{"content":"<p>registered | distribution | delivered | return</p>\n","type":"text/plain"},"key":"status","value":"registered"},{"disabled":true,"description":{"content":"<p>ChannelDock order id</p>\n","type":"text/plain"},"key":"order_id","value":"1838"},{"disabled":true,"description":{"content":"<p>max: 100</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>id | default: created_at | order_id</p>\n","type":"text/plain"},"key":"sort_attr","value":"created_at"},{"disabled":true,"description":{"content":"<p>DESC | default: ASC</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"start_date","value":"2022-07-28 02:03:22"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"end_date","value":"2022-08-28 06:03:33"},{"disabled":true,"description":{"content":"<p>optional | includes the base64 encoded shipping label pdf in the response</p>\n","type":"text/plain"},"key":"include_pdf_label","value":"true"}],"variable":[]}},"response":[{"id":"c4c249d5-2572-4a0b-a8ce-1590c1362371","name":"Get Shipments","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/shipment?page=1&sort_attr=created_at&sort_dir=DESC","host":["https://channeldock.com"],"path":["portal","api","v2","center","shipment"],"query":[{"key":"page","value":"1","description":"required"},{"key":"id","value":"5110","disabled":true},{"key":"seller_id","value":"3","disabled":true},{"key":"status","value":"registered","description":"registered | distribution | delivered | return","disabled":true},{"key":"order_id","value":"1838","description":"ChannelDock order id","disabled":true},{"key":"sort_attr","value":"created_at","description":"id | default: created_at | order_id"},{"key":"sort_dir","value":"DESC","description":"DESC | default: ASC"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 25,\n  \"shipments_count\": 1,\n  \"shipments\": [\n    {\n      \"id\": 7701,\n      \"seller_id\": 2,\n      \"api_id\": 0,\n      \"order_id\": 88210,\n      \"remote_order_id\": \"WC-88210\",\n      \"seq_order_id\": \"UPW-2026-00415\",\n      \"status\": \"registered\",\n      \"remote_label_id\": \"PNL-3SBOL00112233\",\n      \"price\": 6.95,\n      \"shipment_method\": \"PostNL Pakket NL\",\n      \"carrier_code\": \"postnl\",\n      \"track_and_trace\": \"3SBOL00112233\",\n      \"track_and_trace_url\": \"https://postnl.nl/tracktrace/?B=3SBOL00112233&P=1080AH&D=NL&T=C\",\n      \"shipment_date\": \"2026-06-14\",\n      \"order_date\": \"2026-06-13\",\n      \"packaging\": \"Box M\",\n      \"packaging_price\": 1.25,\n      \"tags\": [\n        \"express\"\n      ],\n      \"extra_comment\": \"\",\n      \"pick_price\": 0.35,\n      \"fulfillment_fee\": 1.1,\n      \"order_options\": [\n        {\n          \"id\": 1,\n          \"name\": \"Thank-you card\",\n          \"amount\": 1,\n          \"price\": 0.5\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"da39f00a-ee85-4378-90f7-0c6fbec4ff30"},{"name":"Update shipment","id":"3072c3f0-e7cf-4f7a-98b1-4d9b588b4b92","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"12345\",\n  \"status\": \"registered\",\n  \"price\": 7.95,\n  \"surcharge\": 3.25,\n  \"shipment_method\": \"UPS Parcel Express\",\n  \"carrier_code\": \"UPS\",\n  \"track_and_trace\": \"1Z999AA10123456784\",\n  \"track_and_trace_url\": \"https://track.example.com/1Z999AA10123456784\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipment","description":"<p>This endpoint updates the details of a shipment label based on the provided label ID and other optional fields.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<ul>\n<li><p><strong>id</strong> (required): The unique identifier of the label to be updated.</p>\n</li>\n<li><p><strong>status</strong> (optional): The current status of the shipment label.</p>\n</li>\n<li><p><strong>price</strong> (optional): The price associated with the shipment label.</p>\n</li>\n<li><p><strong>surcharge</strong> (optional): Any additional surcharge for the shipment.</p>\n</li>\n<li><p><strong>shipment_method</strong> (optional): The name of the shipment method used.</p>\n</li>\n<li><p><strong>carrier_code</strong> (optional): The code of the carrier used for the shipment.</p>\n</li>\n<li><p><strong>track_and_trace</strong> (optional): The tracking number for the shipment.</p>\n</li>\n<li><p><strong>track_and_trace_url</strong> (optional): The URL for tracking the shipment.</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","shipment"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"3158c627-2983-458c-b126-ab73655b6834","name":"Update shipment","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"id\": 6821,\n  \"status\": \"registered\",\n  \"price\": 7.95,\n  \"surcharge\": 3.25,\n  \"shipment_method\": \"UPS Parcel Express\",\n  \"carrier_code\": \"UPS\",\n  \"track_and_trace\": \"1Z999AA10123456784\",\n  \"track_and_trace_url\": \"https://track.example.com/1Z999AA10123456784\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Updated label: 7701\",\n  \"updated_fields\": {\n    \"status\": \"registered\",\n    \"price\": 7.95,\n    \"surcharge\": 1.0,\n    \"carrier\": \"PostNL\",\n    \"track_and_trace\": \"3SBOL00112233\",\n    \"track_and_traces\": [\n      \"3SBOL00112233\"\n    ],\n    \"track_and_trace_url\": \"https://postnl.nl/tracktrace/?B=3SBOL00112233&P=1080AH&D=NL&T=C\"\n  }\n}"}],"_postman_id":"3072c3f0-e7cf-4f7a-98b1-4d9b588b4b92"},{"name":"Create shipment","id":"6ed6b68d-28b2-43f6-ad0f-b52bc12defcc","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"3150051\",\n      \"track_and_traces\": [\"3SYTYM0003251\"],\n      \"track_and_trace_url\": \"https://tracking.postnl.nl?id=3SYTYM0003251\",\n      \"carrier\": \"TNT\",\n      \"price\": 5.25,\n      \"order_products\": [\n        { \"id\": 3406535 }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipment","description":"<p>Orders can be handled (processed to shipments) by sending ChannelDock the order_id, track_and_trace, carrier and id's of the order products. ChannelDock will then automatically handle the order at the sales channel where it originated from.</p>\n<p>Using this endpoint, we expect that you generate the shipping label in your own warehouse management system. Using the 'POST - Generate shipping label' endpoint you can have ChannelDock generate the shipping label for you.</p>\n<p>The order_products object is optional. If you omit this object, ChannelDock will ship all the order products.</p>\n<p>Optionally you can also send a track_and_trace_2 field with the payload if for example the order product is too big to ship with one label. We do not support the track and trace of a third, fourth etc. label. Most sales channel wil only accept 1 track and trace anyway</p>\n","urlObject":{"path":["portal","api","v2","center","shipment"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"498b0271-9aa8-4a32-89f2-40b68e47d50e","name":"Create shipment (with one tracking code)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"3150051\",\n      \"track_and_trace\": \"3SYTYM0003251\",\n      \"track_and_trace_url\": \"https://tracking.postnl.nl?id=3SYTYM0003251\",\n      \"carrier\": \"TNT\",\n      \"price\": 5.25,\n      \"order_products\": [ { \"id\": 2683 } ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": [\n    \"CD order ID: 88210 -> New label 7701: success\"\n  ]\n}"},{"id":"190da25f-9135-4788-85b8-6a1be069f2f4","name":"Create shipment (with multiple tracking codes)","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"3150051\",\n      \"track_and_traces\": [\n        \"3SYTYM0003251\",\n        \"3SYTYM0003252\",\n        \"3SYTYM0003253\"\n      ],\n      \"track_and_trace_url\": \"https://tracking.postnl.nl?id=3SYTYM0003251\",\n      \"carrier\": \"TNT\",\n      \"price\": 5.25,\n      \"order_products\": [\n        { \"id\": 3406535 }\n      ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipment"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": [\n    \"CD order ID: 88211 -> New label 7702 (with 2 tracking codes): success\"\n  ]\n}"}],"_postman_id":"6ed6b68d-28b2-43f6-ad0f-b52bc12defcc"},{"name":"Generate shipping label","id":"334c8d35-0c58-4d0f-a2a8-aa487921f606","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"7470\",\n      \"order_products\": [ { \"id\": 9104 } ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/label","description":"<p>Use this endpoint to generate shipping labels via ChannelDock. To select the appropriate label, apply the shipping rules set within ChannelDock.</p>\n<p>The order_products object is optional and can be used for partial shipments. If omitted, all products associated with the order ID will be shipped.</p>\n<p>The label will be returned in base64 encoded format. To retrieve the label again later, use the GET shipments endpoint with the include_pdf_label=true parameter.</p>\n","urlObject":{"path":["portal","api","v2","center","label"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"e3025643-356d-4e64-9b13-b06eec1d5dd0","name":"Generate shipping label","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"orders\": [\n    {\n      \"order_id\": \"7470\",\n      \"order_products\": [ { \"id\": 9104 } ]\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/label"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"errors\": [],\n  \"shipments\": [\n    {\n      \"status\": \"success\",\n      \"order_id\": 88210,\n      \"shipment_label_id\": 7701,\n      \"base64_label_pdf\": \"JVBERi0xLjcKJeLjz9MKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCi4uLi4gKHRydW5jYXRlZCBmb3IgYnJldml0eSkgLi4uLgoKJSVFT0YK\"\n    }\n  ]\n}"}],"_postman_id":"334c8d35-0c58-4d0f-a2a8-aa487921f606"}],"id":"861120a2-5998-4327-bf0d-5a65644aa954","description":"<p>Fetch shipment data from ChannelDock.</p>\n","_postman_id":"861120a2-5998-4327-bf0d-5a65644aa954"},{"name":"Shipment methods","item":[{"name":"Get Shipment methods","id":"7bcf8a0c-423d-4b55-b917-99ac1f2f71ba","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/shipmentmethods","urlObject":{"path":["portal","api","v2","center","shipmentmethods"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"0e151615-102d-4548-98b9-c61e804199fb","name":"Get Shipment methods","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/shipmentmethods"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": \"all\",\n  \"shipment_methods_count\": 4,\n  \"shipment_methods\": [\n    {\n      \"id\": 9503,\n      \"name\": \"DPD Classic NL 0-3 kg\",\n      \"carrier\": \"dpdnl\",\n      \"min_weight\": 0,\n      \"max_weight\": 3,\n      \"max_x\": 175,\n      \"max_y\": 75,\n      \"max_z\": 75,\n      \"service_point_input\": \"dpdnl\",\n      \"mailbox_size\": 0,\n      \"remote_carrier_id\": \"CL\",\n      \"settings\": null\n    },\n    {\n      \"id\": 9504,\n      \"name\": \"PostNL Pakket NL\",\n      \"carrier\": \"postnl\",\n      \"min_weight\": 0,\n      \"max_weight\": 23,\n      \"max_x\": 100,\n      \"max_y\": 50,\n      \"max_z\": 50,\n      \"service_point_input\": \"postnl\",\n      \"mailbox_size\": 0,\n      \"remote_carrier_id\": \"3085\",\n      \"settings\": null\n    },\n    {\n      \"id\": 9505,\n      \"name\": \"DHL Express NL → EU\",\n      \"carrier\": \"dhl\",\n      \"min_weight\": 0,\n      \"max_weight\": 31,\n      \"max_x\": 120,\n      \"max_y\": 80,\n      \"max_z\": 80,\n      \"service_point_input\": \"dhl\",\n      \"mailbox_size\": 0,\n      \"remote_carrier_id\": \"DHL-EU\",\n      \"settings\": null\n    },\n    {\n      \"id\": 9506,\n      \"name\": \"Bol DHL ForYou briefpost (VVB)\",\n      \"carrier\": \"bolcom\",\n      \"min_weight\": 0,\n      \"max_weight\": 1,\n      \"max_x\": 38,\n      \"max_y\": 26.4,\n      \"max_z\": 3.2,\n      \"service_point_input\": \"dhlnl\",\n      \"mailbox_size\": 1,\n      \"remote_carrier_id\": \"DHLFORYOU\",\n      \"settings\": null\n    }\n  ]\n}"}],"_postman_id":"7bcf8a0c-423d-4b55-b917-99ac1f2f71ba"},{"name":"Create / Update custom shipment method","id":"41d64b23-293c-4f78-9b2c-e9ff9dc2dbba","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"MyCarrier - Package large express\",\n    \"remote_carrier_id\": \"my_carrier_id\",\n    \"logo_url\": \"https://example.com/logo-700x300.png\",\n    \"carrier_code\": \"mycarrier\",\n    \"min_weight\": 0,\n    \"max_weight\": 23,\n    \"max_x\": 150,\n    \"max_y\": 150,\n    \"max_z\": 150,\n    \"mailbox_size\": 0,\n    \"callback_request\": {\n        \"method\": \"POST\",\n        \"url\": \"https://yourdomain.com/api/shipment_endpoint\",\n        \"headers\": {\n            \"Accept\": \"application/json\",\n            \"Content-Type\": \"application/json\",\n            \"Authorization\": \"Bearer YOUR_CARRIER_API_TOKEN\"\n        }\n    },\n    \"shipment_method_countries\": [\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"NL\",\n            \"price\": 3.2\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"BE\",\n            \"price\": 4.8\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"DE\",\n            \"price\": 5.6\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"FR\",\n            \"price\": 15\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"US\",\n            \"price\": 39.50\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"IT\",\n            \"price\": 22.50\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipmentmethods","description":"<p>This endpoint allows you to <strong>create or update a shipment method</strong> for a custom carrier integration. If a shipment method with the same remote_carrier_id already exists, it will be updated. Otherwise, a new one will be created.</p>\n<p>The shipment method defines core logistics parameters such as weight and dimension limits, callback behavior, and available shipping routes per country.  </p>\n<p>Find additional info here: <a href=\"https://help.channeldock.com/books/english-en/page/connecting-custom-carrier-api\">Help center</a></p>\n<h4 id=\"requirements\"><strong>Requirements</strong></h4>\n<ul>\n<li><p>The request must include all required fields listed below.</p>\n</li>\n<li><p>The callback_request should be a valid JSON object including a url, method, and headers.</p>\n</li>\n<li><p>A logo_url must be provided, pointing to a PNG image of size <strong>700x300 pixels</strong>.</p>\n</li>\n<li><p>The shipment_method_countries field must contain at least one country mapping with a price.</p>\n</li>\n</ul>\n<h3 id=\"required-fields\"><strong>Required Fields</strong></h3>\n<ul>\n<li><p>name – Name of the shipment method (displayed to the user)</p>\n</li>\n<li><p>remote_carrier_id – Your unique ID for recognizing this shipment method</p>\n</li>\n<li><p>carrier_code – Lowercase identifier for the carrier/platform</p>\n</li>\n<li><p>min_weight, max_weight – Weight limits in kg</p>\n</li>\n<li><p>max_x, max_y, max_z – Dimensions in cm</p>\n</li>\n<li><p>mailbox_size – Set to 1 if it fits through the mailbox (optional)</p>\n</li>\n<li><p>logo_url – PNG image (700x300px) representing the carrier</p>\n</li>\n<li><p>callback_request – Contains:</p>\n<ul>\n<li><p>url – Endpoint for label creation</p>\n</li>\n<li><p>method – HTTP method (e.g., POST)</p>\n</li>\n<li><p>headers – Object with any required headers (e.g., API key)</p>\n</li>\n</ul>\n</li>\n<li><p>shipment_method_countries – Array of country pairs and prices</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"behavior\"><strong>Behavior</strong></h3>\n<ul>\n<li><p>If a shipment method with the same remote_carrier_id exists, it will be <strong>updated</strong>.</p>\n</li>\n<li><p>Otherwise, a new shipment method will be <strong>created</strong>.</p>\n</li>\n<li><p>Country-specific shipping rules are updated or created based on shipment_method_countries.</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","shipmentmethods"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"7ca686b5-f43d-43ec-9271-afcb3080c8c4","name":"Create shipment method","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"MyCarrier - Package large express\",\n    \"remote_carrier_id\": \"my_carrier_id\",\n    \"logo_url\": \"https://example.com/logo-700x300.png\",\n    \"carrier_code\": \"mycarrier\",\n    \"min_weight\": 0,\n    \"max_weight\": 23,\n    \"max_x\": 150,\n    \"max_y\": 150,\n    \"max_z\": 150,\n    \"mailbox_size\": 0,\n    \"callback_request\": {\n        \"method\": \"POST\",\n        \"url\": \"https://yourdomain.com/api/shipment_endpoint\",\n        \"headers\": {\n            \"Accept\": \"application/json\",\n            \"Content-Type\": \"application/json\",\n            \"Authorization\": \"Bearer YOUR_CARRIER_API_TOKEN\"\n        }\n    },\n    \"shipment_method_countries\": [\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"NL\",\n            \"price\": 3.2\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"BE\",\n            \"price\": 4.8\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"DE\",\n            \"price\": 5.6\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"FR\",\n            \"price\": 15\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"US\",\n            \"price\": 39.50\n        },\n        {\n            \"country_code_from\": \"NL\",\n            \"country_code_to\": \"IT\",\n            \"price\": 22.50\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/shipmentmethods"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Shipment method PostNL Pakket NL created successfully\"\n}"}],"_postman_id":"41d64b23-293c-4f78-9b2c-e9ff9dc2dbba"}],"id":"fde19902-7fc5-4901-a1b4-1950aac07ed1","description":"<p>Fetch all the shipment methods. The 'id' of these shipment methods can be matched with the 'shipment_method_id' field from an order product to check which shipping methods is assigend to the order.</p>\n","_postman_id":"fde19902-7fc5-4901-a1b4-1950aac07ed1"},{"name":"Carriers","item":[{"name":"List all carriers","id":"07644163-47b4-4818-930e-c69fbfe4d4e4","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://channeldock.com/portal/api/v2/center/carriers","description":"<p>Test auth endpoint</p>\n","urlObject":{"path":["portal","api","v2","center","carriers"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"4bcffd1f-f4b8-4e43-a42a-a0a898cc31e2","name":"List all carriers","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"urlencoded","urlencoded":[]},"url":"https://channeldock.com/portal/api/v2/center/carriers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"carriers\": {\n    \"postnl\": \"PostNL\",\n    \"dhl\": \"DHL\",\n    \"dpd\": \"DPD\",\n    \"ups\": \"United Parcel Service (UPS)\",\n    \"fedex\": \"FedEx\",\n    \"gls\": \"GLS\",\n    \"dhl_express\": \"DHL Express\",\n    \"bol_dhl_for_you\": \"Bol DHL ForYou (VVB)\",\n    \"bol_bpost\": \"Bol Bpost (VVB)\",\n    \"amazon_logistics\": \"Amazon Logistics\",\n    \"chronopost\": \"Chronopost\",\n    \"colissimo\": \"Colissimo\",\n    \"hermes\": \"Hermes\",\n    \"royal_mail\": \"Royal Mail\",\n    \"canada_post\": \"Canada Post\",\n    \"tnt\": \"TNT\",\n    \"manual\": \"Manual / custom carrier\"\n  }\n}"}],"_postman_id":"07644163-47b4-4818-930e-c69fbfe4d4e4"}],"id":"45fb7fef-edb2-4714-ac6c-57c3546d0702","_postman_id":"45fb7fef-edb2-4714-ac6c-57c3546d0702","description":""},{"name":"Sellers","item":[{"name":"Get sellers","id":"8aaed190-5a55-4d84-ac32-3dff11bc20ab","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/center/sellers?page=1","description":"<p>Products that are connected to a fulfillment center account can be viewed by this API.</p>\n<p>This request's return results are paginated. The API returns 50 items per page.</p>\n","urlObject":{"path":["portal","api","v2","center","sellers"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"seller_id","value":"2"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sort_attr","value":"id"}],"variable":[]}},"response":[{"id":"858a66f1-82ab-4dec-ac29-6b09faf3660f","name":"Get sellers","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":{"raw":"https://channeldock.com/portal/api/v2/center/sellers?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","sellers"],"query":[{"key":"page","value":"1"},{"key":"seller_id","value":"2","description":"optional","disabled":true},{"key":"sort_dir","value":"DESC","description":"optional","disabled":true},{"key":"sort_attr","value":"id","description":"optional","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 25,\n  \"sellers_count\": 2,\n  \"sellers\": [\n    {\n      \"id\": 2,\n      \"company\": \"Upwind Watersports B.V.\",\n      \"first_name\": \"Lars\",\n      \"last_name\": \"van Schaick\",\n      \"email\": \"lars@upwind.example.com\",\n      \"seller_email\": \"orders@upwind.example.com\",\n      \"vat_number\": \"NL801234567B01\",\n      \"kvk\": \"12345678\",\n      \"eori_number\": \"NL801234567000\",\n      \"street\": \"Duivendrechtsekade\",\n      \"house_number\": \"40\",\n      \"zipcode\": \"1080 AH\",\n      \"city\": \"Amsterdam\",\n      \"country\": \"NL\",\n      \"status\": \"connected\",\n      \"description\": \"Watersports & kitesurf retailer – priority shipping\",\n      \"private_note\": \"Active since 2024 – Q1 2026 expansion to FR/DE\"\n    },\n    {\n      \"id\": 5,\n      \"company\": \"Sail & Sport Demo\",\n      \"first_name\": \"Nicky\",\n      \"last_name\": \"Kouffeld\",\n      \"email\": \"nicky@sailsport.example.com\",\n      \"seller_email\": \"orders@sailsport.example.com\",\n      \"vat_number\": \"NL987654321B02\",\n      \"kvk\": \"87654321\",\n      \"eori_number\": null,\n      \"street\": \"Stationsweg\",\n      \"house_number\": \"15A\",\n      \"zipcode\": \"3011 AA\",\n      \"city\": \"Rotterdam\",\n      \"country\": \"NL\",\n      \"status\": \"connected\",\n      \"description\": null,\n      \"private_note\": null\n    }\n  ]\n}"}],"_postman_id":"8aaed190-5a55-4d84-ac32-3dff11bc20ab"},{"name":"Create seller","id":"70b044cb-c11f-46d7-8e5e-097e3c958c51","request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"firstname\": \"John\",\n  \"lastname\": \"Doe\",\n  \"email\": \"johndoe@example.com\",\n  \"tel\": \"+123456789\",\n  \"country\": \"USA\",\n  \"password\": \"StrongPassword123\",\n  \"company\": \"John's Supplies\",\n  \"description\": \"A reliable supplier for electronics.\",\n  \"timezone\": \"America/New_York\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/sellers","description":"<p>Products that are connected to a fulfillment center account can be viewed by this API.</p>\n<p>This request's return results are paginated. The API returns 50 items per page.</p>\n","urlObject":{"path":["portal","api","v2","center","sellers"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"8749a9e1-227f-44cd-8681-5a457da4a12a","name":"Create seller","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstname\": \"John\",\n  \"lastname\": \"Doe\",\n  \"email\": \"johndoe@example.com\",\n  \"tel\": \"+123456789\",\n  \"country\": \"USA\",\n  \"password\": \"StrongPassword123\",\n  \"company\": \"John's Supplies\",\n  \"description\": \"A reliable supplier for electronics.\",\n  \"timezone\": \"America/New_York\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/sellers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Seller created successfully!\",\n  \"seller\": {\n    \"id\": 6,\n    \"company\": \"Northern Lights Outdoor\",\n    \"first_name\": \"Anders\",\n    \"last_name\": \"Lindqvist\",\n    \"email\": \"anders@northern-lights.example.com\",\n    \"tel\": \"+46 8 555 123 45\"\n  }\n}"}],"_postman_id":"70b044cb-c11f-46d7-8e5e-097e3c958c51"}],"id":"b9d60aaa-abe5-4cc1-9d91-f863de125838","description":"<p>The products API allows you to view and update individual, or a batch, of products.</p>\n","_postman_id":"b9d60aaa-abe5-4cc1-9d91-f863de125838"},{"name":"User logs","item":[{"name":"Get user logs","id":"7aeb9fcd-2380-406d-a032-ddebf5752021","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/center/userlogs?page=1","description":"<p>Retrieve user activity logs for the authenticated fulfillment center. Returns 250 items per page. Optional filters: user_id, status, function_name, start_date, end_date, sort_dir.</p>\n","urlObject":{"path":["portal","api","v2","center","userlogs"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"user_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"status","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"function_name","value":""},{"disabled":true,"description":{"content":"<p>optional (datetime)</p>\n","type":"text/plain"},"key":"start_date","value":"2024-01-01 00:00:00"},{"disabled":true,"description":{"content":"<p>optional (datetime)</p>\n","type":"text/plain"},"key":"end_date","value":"2024-12-31 23:59:59"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"}],"variable":[]}},"response":[{"id":"21861ca6-995f-48f0-b1dc-23ab5e65b1a5","name":"Get user logs","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":{"raw":"https://channeldock.com/portal/api/v2/center/userlogs?page=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","userlogs"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 250,\n  \"user_logs\": [\n    {\n      \"id\": 90042,\n      \"status\": \"function_call\",\n      \"user_id\": 7,\n      \"title\": \"Inventory updated\",\n      \"description\": \"Stock amount updated for UPW-BAR-52: 50 → 48\",\n      \"created_at\": \"2026-06-14 08:12:30\"\n    },\n    {\n      \"id\": 90031,\n      \"status\": \"api_connected\",\n      \"user_id\": 7,\n      \"title\": \"PostNL gekoppeld\",\n      \"description\": \"connectPostNL\",\n      \"created_at\": \"2026-06-02 09:14:55\"\n    },\n    {\n      \"id\": 90015,\n      \"status\": \"label_created\",\n      \"user_id\": 7,\n      \"title\": \"Shipping label created\",\n      \"description\": \"Order 88210 → label 7701 (PostNL)\",\n      \"created_at\": \"2026-06-14 08:12:30\"\n    },\n    {\n      \"id\": 89998,\n      \"status\": \"activated_sub_account\",\n      \"user_id\": 7,\n      \"title\": \"Sub account toegevoegd\",\n      \"description\": \"addEmployee – warehouse_picker\",\n      \"created_at\": \"2026-05-22 11:05:18\"\n    }\n  ]\n}"}],"_postman_id":"7aeb9fcd-2380-406d-a032-ddebf5752021"}],"id":"f91436fe-2020-4466-bdfd-1559df3c5855","description":"<p>The user log API allows you to view all user logs, including those of employee accounts. Returns 250 items per page.</p>\n","_postman_id":"f91436fe-2020-4466-bdfd-1559df3c5855"},{"name":"Inventory logs","item":[{"name":"Get Inventory logs","id":"837807d8-fa83-40e0-b2de-b70929f4a620","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/stockmutations?page=1&ean=8719326583617","description":"<p>Retrieve inventory change history (stock mutations) for the fulfillment center. Returns 250 items per page. Filter by ean, product_id, or sku is recommended but optional.</p>\n","urlObject":{"path":["portal","api","v2","center","stockmutations"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>optional, required if product_id/sku not used</p>\n","type":"text/plain"},"key":"ean","value":"8719326583617"},{"disabled":true,"description":{"content":"<p>optional, required if ean/sku not used (Center Product ID)</p>\n","type":"text/plain"},"key":"product_id","value":""},{"disabled":true,"description":{"content":"<p>optional, required if ean/product_id not used</p>\n","type":"text/plain"},"key":"sku","value":""},{"disabled":true,"description":{"content":"<p>optional (datetime)</p>\n","type":"text/plain"},"key":"start_date","value":"2025-08-13 00:00:00"},{"disabled":true,"description":{"content":"<p>optional (datetime)</p>\n","type":"text/plain"},"key":"end_date","value":"2025-08-17 23:00:00"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"event_action","value":"correct"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"}],"variable":[]}},"response":[{"id":"32ff7af5-b622-4e24-9f69-4ba56f597cb8","name":"Get Inventory logs","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/inventory/logs?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","center","inventory","logs"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"inventory_logs\": [\n    {\n      \"id\": 88301,\n      \"ean\": \"8719326583631\",\n      \"event_action\": \"stock_inbound\",\n      \"message\": \"Stocked 50 units of UPW-BAR-52 from delivery 8101\",\n      \"old_stock\": 0,\n      \"new_stock\": 50,\n      \"created_at\": \"2026-06-03 14:22:11\",\n      \"total_stock\": 50\n    },\n    {\n      \"id\": 88302,\n      \"ean\": \"8719326583631\",\n      \"event_action\": \"shipment_picked\",\n      \"message\": \"Picked 2 units for shipment 7701 (order WC-88210)\",\n      \"old_stock\": 50,\n      \"new_stock\": 48,\n      \"created_at\": \"2026-06-14 08:12:30\",\n      \"total_stock\": 48\n    },\n    {\n      \"id\": 88305,\n      \"ean\": \"8719326583655\",\n      \"event_action\": \"stock_corrected\",\n      \"message\": \"Stock correction by warehouse_picker: 14 → 12\",\n      \"old_stock\": 14,\n      \"new_stock\": 12,\n      \"created_at\": \"2026-06-05 10:12:44\",\n      \"total_stock\": 12\n    }\n  ]\n}"}],"_postman_id":"837807d8-fa83-40e0-b2de-b70929f4a620"}],"id":"893b920d-e788-4a1c-95fd-33318df3d439","description":"<p>Endpoints to retrieve a fulfillment center's inventory change history (stock mutations). Supports filtering by EAN, product ID, SKU, date range, and event action, with pagination (250 items per page).</p>\n","_postman_id":"893b920d-e788-4a1c-95fd-33318df3d439"},{"name":"Administration","item":[{"name":"Get administration","id":"1c76915d-bd91-46b3-abf5-1c5bc533cbf3","request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":"https://channeldock.com/portal/api/v2/center/administration?page=1&start_date=2024-04-01&end_date=2024-04-05","description":"<p>This request's return results are paginated. The API returns 10 items (sellers) per page.</p>\n","urlObject":{"path":["portal","api","v2","center","administration"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"description":{"content":"<p>required: (Format: YYYY-MM-DD)</p>\n","type":"text/plain"},"key":"start_date","value":"2024-04-01"},{"description":{"content":"<p>required: (Format: YYYY-MM-DD)</p>\n","type":"text/plain"},"key":"end_date","value":"2024-04-05"},{"disabled":true,"description":{"content":"<p>optional: ID of a seller connected to your FC account</p>\n","type":"text/plain"},"key":"seller_id","value":"2"}],"variable":[]}},"response":[{"id":"c1b53788-16a3-4b1a-b908-7d9eaf683f10","name":"Get administration","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"page\": 1\n}","options":{"raw":{"language":"text"}}},"url":{"raw":"https://channeldock.com/portal/api/v2/center/administration?page=1&start_date=2023-01-01&end_date=2024-01-01","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","administration"],"query":[{"key":"page","value":"1"},{"key":"start_date","value":"2023-01-01"},{"key":"end_date","value":"2024-01-01"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 10,\n  \"sellers_count\": 2,\n  \"sellers\": [\n    {\n      \"id\": 2,\n      \"company\": \"Upwind Watersports B.V.\",\n      \"storage_costs\": 24.8,\n      \"pick_costs\": 18.55,\n      \"labels\": 142,\n      \"label_costs\": 198.4,\n      \"order_options_costs\": 4.5,\n      \"order_option_amount_4\": 9,\n      \"order_option_price_4\": 0.5,\n      \"processed_returns\": 3\n    },\n    {\n      \"id\": 5,\n      \"company\": \"Sail & Sport Demo\",\n      \"storage_costs\": 12.0,\n      \"pick_costs\": 6.3,\n      \"labels\": 47,\n      \"label_costs\": 71.25,\n      \"order_options_costs\": 0,\n      \"order_option_amount_4\": 0,\n      \"order_option_price_4\": 0,\n      \"processed_returns\": 0\n    }\n  ],\n  \"custom_fields\": [\n    {\n      \"id\": 4,\n      \"title\": \"Thank-you card\",\n      \"price\": 0.5\n    },\n    {\n      \"id\": 5,\n      \"title\": \"Gift wrap\",\n      \"price\": 1.95\n    }\n  ]\n}"}],"_postman_id":"1c76915d-bd91-46b3-abf5-1c5bc533cbf3"}],"id":"b7a74f0e-2aeb-4875-95b1-3485a5f15cbc","description":"<p>This endpoint is designed to facilitate streamlined invoicing by gathering a comprehensive set of financial data tied to individual sellers operating under a center, over a specific date range. It supersedes the standard <code>GET orders</code> API in several ways, providing a more holistic view of a seller's financial activities and obligations during the specified period.</p>\n<h3 id=\"why-use-this-api-over-the-standard-get-orders-api\">Why use this API over the standard GET orders API?</h3>\n<ol>\n<li><p><strong>Detailed Financial Breakdown</strong>:</p>\n<ul>\n<li><p><strong>Storage Costs</strong>: Know exactly what your storage obligations are with a detailed breakdown of storage costs accrued over the specified time period.</p>\n</li>\n<li><p><strong>Pick Costs</strong>: Gain insights into the costs associated with picking products.</p>\n</li>\n<li><p><strong>Label Costs</strong>: Understand the financial implications of labels created, including associated costs tied to specific shipping methods.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Customization and Flexibility</strong>:</p>\n<ul>\n<li><p><strong>Dynamic Date Range</strong>: Easily fetch data over different time frames to suit various invoicing cycles, be it weekly, monthly, or custom periods.</p>\n</li>\n<li><p><strong>Custom Fields</strong>: Tailor the data to suit your needs with customizable fields pertaining to order options.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Order Options Insights</strong>:</p>\n<ul>\n<li><strong>Rich Order Options Data</strong>: Get a deep understanding of the different order options chosen and their financial implications.</li>\n</ul>\n</li>\n</ol>\n","_postman_id":"b7a74f0e-2aeb-4875-95b1-3485a5f15cbc"},{"name":"Deliveries","item":[{"name":"Get inbounds","id":"f3b3f032-cc8a-45fa-94e8-2282e2f5f87a","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/inbounds?page=1","description":"<p>Get the deliveries. Deliveries can have either of three types:</p>\n<ul>\n<li><p>Replenishments to your warehouse (outbound)</p>\n</li>\n<li><p>Logistiek via Bol replenishments (bol_outbound)</p>\n</li>\n<li><p>Fulfillment by Amazon replinishments (amazon_outbound)</p>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","inbounds"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"236"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"seller_id","value":"1"},{"disabled":true,"description":{"content":"<p>optional ( new | confirmed | stocked )</p>\n","type":"text/plain"},"key":"status","value":"confirmed"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sort_attr","value":"updated_at"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional ( default: outbound  | bol_outbound | amazon_outbound )</p>\n","type":"text/plain"},"key":"delivery_type","value":"outbound"},{"disabled":true,"description":{"content":"<p>optional: filter deliveries with delivery_date &gt;= this value. Accepts 'Y-m-d' or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"delivery_date_from","value":"2023-01-01"},{"disabled":true,"description":{"content":"<p>optional: filter deliveries with delivery_date &lt;= this value. Accepts 'Y-m-d' (treated as 23:59:59) or 'Y-m-d H:i:s'.</p>\n","type":"text/plain"},"key":"delivery_date_to","value":"2023-01-31"},{"disabled":true,"description":{"content":"<p>optional ( datetime in UTC )</p>\n","type":"text/plain"},"key":"updated_at","value":"2025-07-23 12:34:36"}],"variable":[]}},"response":[{"id":"2862e437-514e-4289-b41f-54d4fce69b6b","name":"Get inbounds","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/inbounds","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","inbounds"],"query":[{"key":"page","value":"1","disabled":true},{"key":"id","value":"236","description":"optional","disabled":true},{"key":"seller_id","value":"1","disabled":true},{"key":"status","value":"confirmed","description":"optional ( new | confirmed | stocked )","disabled":true},{"key":"sort_attr","value":"updated_at","description":"optional","disabled":true},{"key":"sort_dir","value":"DESC","description":"optional","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 10,\n  \"inbounds_count\": 1,\n  \"inbounds\": [\n    {\n      \"id\": 8101,\n      \"seller_id\": 2,\n      \"ref\": \"PO-2026-0042\",\n      \"status\": \"stocked\",\n      \"extra_description\": \"Restock from PowerKite – Q2 order.\",\n      \"pallets\": 1,\n      \"boxes\": 4,\n      \"delivery_date\": \"2026-06-02\",\n      \"stocked_at\": \"2026-06-03 14:22:11\",\n      \"created_at\": \"2026-05-18 10:05:00\",\n      \"supplier_id\": 42,\n      \"supplier\": {\n        \"id\": 42,\n        \"firstname\": \"Klaus\",\n        \"lastname\": \"Berger\",\n        \"company\": \"PowerKite Manufacturing GmbH\",\n        \"phone\": \"+49 89 1234 5678\",\n        \"email\": \"orders@powerkite.example.com\",\n        \"address1\": \"Industriestraße 12\",\n        \"address2\": \"\",\n        \"city\": \"München\",\n        \"state\": \"Bayern\",\n        \"zipcode\": \"80331\",\n        \"country\": \"DE\",\n        \"payment_term\": 30,\n        \"website\": \"https://powerkite.example.com\",\n        \"vat\": 19,\n        \"vat_number\": \"DE123456789\",\n        \"email_text\": \"Hi Klaus,\\\\n\\\\nPlease find our latest purchase order attached.\\\\n\\\\nBest regards,\\\\nUpwind Watersports\"\n      },\n      \"items\": [\n        {\n          \"product_id\": 7,\n          \"ean\": \"8719326583631\",\n          \"sku\": \"UPW-BAR-52\",\n          \"location\": \"B-12\",\n          \"amount\": 50,\n          \"ref\": \"PO-2026-0042-L1\",\n          \"stock_location_id\": 114,\n          \"is_stocked\": 1\n        },\n        {\n          \"product_id\": 9,\n          \"ean\": \"8719326583655\",\n          \"sku\": \"UPW-BRD-134\",\n          \"location\": \"PR-A\",\n          \"amount\": 12,\n          \"ref\": \"PO-2026-0042-L2\",\n          \"stock_location_id\": 113,\n          \"is_stocked\": 1\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"f3b3f032-cc8a-45fa-94e8-2282e2f5f87a"},{"name":"Create inbound","id":"6dd540b4-a4a0-43ea-a623-5158f005f3b0","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"seller_id\": 950,\n    \"ref\": \"1234567890\",\n    \"status\": \"confirmed\",\n    \"delivery_date\": \"2021-12-10\",\n    \"extra_description\": \"This inbound was automatically created using the API.\",\n    \"pallets\": 0,\n    \"boxes\": 1,\n    \"items\": [\n        {\n            \"ean\": \"8719326801019\",\n            \"amount\": 10,\n            \"is_stocked\": 0\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds","description":"<p>This endpoint lets you create a new inbound delivery to your fulfillment center. After creating the inbound you can use the PUT method to update it.  </p>\n<p>Inbound status can be: 'new', 'confirmed', 'delivered', 'stocked', 'shipped', 'cancelled'.</p>\n","urlObject":{"path":["portal","api","v2","center","inbounds"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"38d76fa2-0252-4912-8504-f29f8b0e22d8","name":"Create inbound","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"seller_id\": 3,\n    \"ref\": \"1234567890\",\n    \"status\": \"confirmed\",\n    \"delivery_date\": \"2021-12-10\",\n    \"extra_description\": \"This inbound was automatically created using the API.\",\n    \"pallets\": 0,\n    \"boxes\": 1,\n    \"items\": [\n        {\n            \"ean\": \"8719326801019\",\n            \"amount\": 10,\n            \"is_stocked\": 0\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Inserted inbound: 8102\",\n  \"inbound_id\": 8102\n}"}],"_postman_id":"6dd540b4-a4a0-43ea-a623-5158f005f3b0"},{"name":"Update inbound","id":"fbf2721c-c4fc-4d50-82be-da69009f0517","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"inbound_id\": 418,\n    \"ref\": \"1234567890\",\n    \"status\": \"stocked\",\n    \"delivery_date\": \"2021-12-10\",\n    \"extra_description\": \"This inbound was automatically created using the API.\",\n    \"pallets\": 0,\n    \"boxes\": 1,\n    \"items\": [\n        {\n            \"id\": \"1001\",\n            \"amount\": 100,\n            \"is_processed\": 0\n        },\n        {\n            \"ean\": \"4548736091948\",\n            \"amount\": 25,\n            \"is_processed\": 1\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds","description":"<p>This endpoint updates the inbound delivery. For example, when the whole delivery is accepted and stocked by your warehouse, you can set the inbound status to stocked and each inbound item to: 'is_processed': 1.</p>\n<p>When updating the inbound to be stocked, ChannelDock does not actually add the inbound item amount to your stock level. We expect this to happen through a stock level update through the Products endpoint.</p>\n<p>Inbound status can be: 'new', 'confirmed', 'delivered', 'stocked', 'shipped', 'cancelled'.</p>\n<p>When updating the inbound items, you can send us either the item 'id' or 'ean'. When the EAN is not found in the inbound, we will add it as a new item.</p>\n","urlObject":{"path":["portal","api","v2","center","inbounds"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"ef1cf3bb-32b2-4613-8f08-afaba6b380ba","name":"Update inbound","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"inbound_id\": 236,\n    \"ref\": \"1234567890\",\n    \"status\": \"stocked\",\n    \"delivery_date\": \"2021-12-10\",\n    \"extra_description\": \"This inbound was automatically created using the API.\",\n    \"pallets\": 0,\n    \"boxes\": 1,\n    \"items\": [\n        {\n            \"id\": \"1001\",\n            \"amount\": 100,\n            \"is_processed\": 0\n        },\n        {\n            \"ean\": \"870987654321\",\n            \"amount\": 20,\n            \"is_processed\": 1\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Updated inbound: 8101\",\n  \"inbound_id\": 8101\n}"}],"_postman_id":"fbf2721c-c4fc-4d50-82be-da69009f0517"},{"name":"Delete inbound","id":"36d0c369-528f-4006-93a1-f80aa474bc53","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"inbound_id\": 235\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds","description":"<p>Create a new inbound delivery from your supplier. It is at this moment not yet possible to confirm and stock the inbound via the API.</p>\n","urlObject":{"path":["portal","api","v2","center","inbounds"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"df237752-4486-49ec-a6a6-d6b6a72d1e26","name":"Delete inbound","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"inbound_id\": 235\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Successfully deleted inbound: 8101\"\n}"}],"_postman_id":"36d0c369-528f-4006-93a1-f80aa474bc53"},{"name":"Stock inbound items","id":"39761e88-a1ca-4105-bd21-e04d5e4d19cb","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"inbound_id\": 236,\n    \"items\": [\n        {\n            \"ean\": \"8719326801019\",\n            \"amount\": 15\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds/stock","description":"<p>The <code>POST /portal/api/v2/center/inbounds/stock</code> endpoint is used to add stock for inbound items. The request should include the <code>inbound_id</code> and an array of <code>items</code>, where each item contains the <code>ean</code> (European Article Number) and the <code>amount</code> of stock to be added.</p>\n<p>Please note that this endpoint only processes the status of the inbound items and does not actually increase the stock level. We expect you to increase the stock level in your internal WMS and then send the updated stock levels to us via the products API.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>inbound_id</code> (number): The ID of the inbound item.</li>\n<li><code>items</code> (array): An array of objects containing the following parameters:<ul>\n<li><code>ean</code> (string): The European Article Number of the item.</li>\n<li><code>amount</code> (number): The amount of stock to be added for the item.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<ul>\n<li><code>response</code> (string): Indicates the status of the request, where \"success\" denotes a successful operation.</li>\n<li><code>message</code> (string): Provides a message regarding the outcome of the stock addition operation.</li>\n</ul>\n<h4 id=\"example\">Example</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"response\": \"success\",\n    \"message\": \"Succesfully stocked 1 inbound item(s)\"\n}\n\n</code></pre>\n","urlObject":{"path":["portal","api","v2","center","inbounds","stock"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"cb45ccf7-3754-455b-a43c-a318be26ccd8","name":"Stock inbound items","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n    \"inbound_id\": 237,\n    \"items\": [\n        {\n            \"ean\": \"8719326801019\",\n            \"amount\": 20\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/inbounds/stock"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Successfully stocked 2 inbound item(s)\"\n}"}],"_postman_id":"39761e88-a1ca-4105-bd21-e04d5e4d19cb"}],"id":"48984ce2-f32a-4884-b6b8-85347a46fcb1","description":"<p>Deliveries represent incoming shipments of products from sellers to a fulfillment center.Purpose:</p>\n<ul>\n<li><p>Track shipments from sellers as they arrive</p>\n</li>\n<li><p>Record what products and quantities are included</p>\n</li>\n<li><p>Manage the receiving process (confirm arrival, mark items as received)</p>\n</li>\n<li><p>Update inventory when items are stocked</p>\n</li>\n<li><p>Monitor shipment status (new, confirmed, delivered, stocked, shipped, cancelled)</p>\n</li>\n</ul>\n<p>Typical flow:</p>\n<ol>\n<li><p>Seller creates a delivery with products to send</p>\n</li>\n<li><p>Shipment is sent to the fulfillment center</p>\n</li>\n<li><p>Center receives and confirms the delivery</p>\n</li>\n<li><p>Center marks items as stocked</p>\n</li>\n<li><p>Products become available for order fulfillment</p>\n</li>\n</ol>\n","_postman_id":"48984ce2-f32a-4884-b6b8-85347a46fcb1"},{"name":"Tasks","item":[{"name":"Get tasks","id":"ff1b57af-3314-4d94-97b8-1384bc3ed380","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/tasks?page=1","description":"<p>List tasks for the authenticated fulfillment center (<code>tasks.center_id</code>). Returns all statuses unless you filter with <code>status</code>.</p>\n<p>Default pagination: 50 items per page (max 100). Sort by <code>created_at</code> using <code>sort_dir</code> (default DESC).</p>\n","urlObject":{"path":["portal","api","v2","center","tasks"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional (default 50, max 100)</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC, sorts on created_at)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional (single task, internal tasks.id)</p>\n","type":"text/plain"},"key":"id","value":""},{"disabled":true,"description":{"content":"<p>optional (open, in_progress, waiting, completed, cancelled — comma-separated allowed)</p>\n","type":"text/plain"},"key":"status","value":"open"},{"disabled":true,"description":{"content":"<p>optional (assignee user id, must be account employee)</p>\n","type":"text/plain"},"key":"planned_for_user_id","value":""},{"disabled":true,"description":{"content":"<p>optional (connected seller only)</p>\n","type":"text/plain"},"key":"seller_id","value":""},{"disabled":true,"description":{"content":"<p>optional (ChannelDock order id)</p>\n","type":"text/plain"},"key":"order_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"product_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"return_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"delivery_id","value":""},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"task_category_id","value":""},{"disabled":true,"description":{"content":"<p>optional (partial match on title and description)</p>\n","type":"text/plain"},"key":"search","value":""},{"disabled":true,"description":{"content":"<p>optional (filters planned_datetime)</p>\n","type":"text/plain"},"key":"date_from","value":"2026-01-01"},{"disabled":true,"description":{"content":"<p>optional (filters planned_datetime)</p>\n","type":"text/plain"},"key":"date_to","value":"2026-12-31"}],"variable":[]}},"response":[{"id":"6b2e9853-d8a6-4958-8407-e0f71b247861","name":"Get tasks","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/tasks?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","center","tasks"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"tasks\": [\n    {\n      \"id\": 501,\n      \"title\": \"Relabel inbound pallet\",\n      \"description\": null,\n      \"status\": \"in_progress\",\n      \"created_at\": \"2026-03-24 09:30:00\",\n      \"completed_at\": null,\n      \"planned_datetime\": \"2026-03-24 15:00:00\",\n      \"planned_end_datetime\": null,\n      \"created_by_user_id\": 10,\n      \"planned_for_user_id\": 15,\n      \"order_id\": null,\n      \"product_id\": null,\n      \"return_id\": null,\n      \"delivery_id\": 9001,\n      \"seller_id\": 2,\n      \"center_id\": 3,\n      \"task_category_id\": 8,\n      \"task_price\": 12.5,\n      \"task_currency\": \"EUR\",\n      \"is_internal\": true\n    }\n  ]\n}"}],"_postman_id":"ff1b57af-3314-4d94-97b8-1384bc3ed380"},{"name":"Create task","id":"38c2d6c2-6d7d-41d4-9a7b-d4814653b366","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"Relabel inbound pallet\",\n  \"seller_id\": 2,\n  \"delivery_id\": 9001,\n  \"status\": \"open\",\n  \"is_internal\": true,\n  \"planned_for_user_id\": 15\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/tasks","description":"<p>Create a new task for the fulfillment center.</p>\n<p><strong>Required:</strong> <code>title</code></p>\n<p><strong>Optional:</strong> <code>description</code>, <code>planned_for_user_id</code>, <code>planned_datetime</code>, <code>planned_end_datetime</code>, <code>order_id</code>, <code>product_id</code>, <code>return_id</code>, <code>delivery_id</code>, <code>task_category_id</code> (or <code>category_id</code>), <code>task_price</code>, <code>task_currency</code> (default EUR), <code>seller_id</code> (must be connected), <code>status</code> (<code>open</code>, <code>in_progress</code>, <code>waiting</code>, <code>completed</code>, <code>cancelled</code> — default <code>open</code>), <code>is_internal</code> (boolean).</p>\n<p><strong>Rules:</strong></p>\n<ul>\n<li><code>center_id</code> is set automatically for the authenticated center.</li>\n<li>If <code>seller_id</code> is omitted, it may be derived from the linked product, order, return, or delivery.</li>\n<li>Task category must belong to this center.</li>\n<li>Planned datetimes use the center account timezone and are stored as UTC.</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","tasks"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"a43b201d-7cef-4d8c-825d-3f239e930a07","name":"Create task","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"title\": \"Relabel inbound pallet\",\n  \"seller_id\": 2,\n  \"delivery_id\": 9001,\n  \"status\": \"open\",\n  \"is_internal\": true,\n  \"planned_for_user_id\": 15\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/tasks"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Task created.\",\n  \"task\": {\n    \"id\": 502,\n    \"title\": \"Relabel inbound pallet\",\n    \"description\": null,\n    \"status\": \"open\",\n    \"created_at\": \"2026-03-24 11:10:00\",\n    \"completed_at\": null,\n    \"planned_datetime\": null,\n    \"planned_end_datetime\": null,\n    \"created_by_user_id\": 10,\n    \"planned_for_user_id\": 15,\n    \"order_id\": null,\n    \"product_id\": null,\n    \"return_id\": null,\n    \"delivery_id\": 9001,\n    \"seller_id\": 2,\n    \"center_id\": 3,\n    \"task_category_id\": null,\n    \"task_price\": 0,\n    \"task_currency\": \"EUR\",\n    \"is_internal\": true\n  }\n}"}],"_postman_id":"38c2d6c2-6d7d-41d4-9a7b-d4814653b366"}],"id":"cdca5875-f376-434a-9785-40fd91d2c872","description":"<p>Create and list operational tasks for the fulfillment center. Tasks can be linked to connected sellers, orders, products, returns, or deliveries.</p>\n<p>Enable <strong>Tasks</strong> (GET and POST) on your API key in ChannelDock settings before calling these endpoints.</p>\n","_postman_id":"cdca5875-f376-434a-9785-40fd91d2c872"},{"name":"Batches","item":[{"name":"Get Batch Templates","id":"6a912837-42bb-45b7-aa46-1165cd0882b9","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/batchtemplates?page=1","urlObject":{"path":["portal","api","v2","center","batchtemplates"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional default: 50 max: 100</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"1, 2, 3"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"seller_id","value":"1"},{"disabled":true,"description":{"content":"<p>optional (true | false | ALL)</p>\n","type":"text/plain"},"key":"active","value":"ALL"},{"disabled":true,"description":{"content":"<p>optional (id | priority | active | created_at | updated_at | seller_id)</p>\n","type":"text/plain"},"key":"sort_attr","value":"priority"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"include","value":"requirements"}],"variable":[]}},"response":[{"id":"884e1ac0-6d99-469d-96c9-4f5de36b80ce","name":"Get Batch Templates","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/batchtemplates?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","center","batchtemplates"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"batch_templates_count\": 2,\n  \"batch_templates\": [\n    {\n      \"id\": 401,\n      \"seller_id\": 0,\n      \"center_id\": 1,\n      \"description\": \"Standard NL Orders\",\n      \"priority\": 1,\n      \"active\": true,\n      \"match_type\": \"all\",\n      \"max_orders\": 100,\n      \"max_order_items\": null,\n      \"pick_algorithm\": \"fifo\",\n      \"batch_category\": \"standard\",\n      \"created_at\": \"2026-04-01 09:00:00\",\n      \"updated_at\": \"2026-06-10 12:30:00\",\n      \"requirements\": [\n        {\n          \"requirement\": \"country\",\n          \"operator\": \"equals\",\n          \"value\": \"NL\"\n        },\n        {\n          \"requirement\": \"order_status\",\n          \"operator\": \"equals\",\n          \"value\": \"order\"\n        }\n      ]\n    },\n    {\n      \"id\": 402,\n      \"seller_id\": 12,\n      \"center_id\": 1,\n      \"description\": \"Bol.com Express\",\n      \"priority\": 2,\n      \"active\": true,\n      \"match_type\": \"all\",\n      \"max_orders\": 50,\n      \"max_order_items\": 200,\n      \"pick_algorithm\": \"lifo\",\n      \"batch_category\": \"express\",\n      \"created_at\": \"2026-04-15 11:20:00\",\n      \"updated_at\": \"2026-06-08 09:00:00\",\n      \"requirements\": [\n        {\n          \"requirement\": \"channel\",\n          \"operator\": \"equals\",\n          \"value\": \"bolcom\"\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"6a912837-42bb-45b7-aa46-1165cd0882b9"},{"name":"Get Batches","id":"5082b5a9-1982-4786-86e9-5dca72034645","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/batches?page=1","urlObject":{"path":["portal","api","v2","center","batches"],"host":["https://channeldock.com"],"query":[{"description":{"content":"<p>required</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional default: 50 max: 100</p>\n","type":"text/plain"},"key":"page_size","value":"50"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"id","value":"1, 2, 3"},{"disabled":true,"description":{"content":"<p>optional (pending | picking | picked | packing | shipped)</p>\n","type":"text/plain"},"key":"batch_status","value":"pending"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"batch_template_id","value":"1"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"created_at_from","value":"YYYY-mm-dd"},{"disabled":true,"description":{"content":"<p>optional</p>\n","type":"text/plain"},"key":"created_at_to","value":"YYYY-mm-dd"},{"disabled":true,"description":{"content":"<p>optional (id | created_at | batch_status | batch_template_id)</p>\n","type":"text/plain"},"key":"sort_attr","value":"id"},{"disabled":true,"description":{"content":"<p>optional (ASC | DESC)</p>\n","type":"text/plain"},"key":"sort_dir","value":"DESC"},{"disabled":true,"description":{"content":"<p>optional (template | template_requirements | counts | orders | order_products)</p>\n","type":"text/plain"},"key":"include","value":"template, counts"}],"variable":[]}},"response":[{"id":"5e7dadcb-dfdf-4761-acdf-352d66cfc8f5","name":"Get Batches","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/batches?page=1","host":["https://channeldock.com"],"path":["portal","api","v2","center","batches"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"batches_count\": 2,\n  \"batches\": [\n    {\n      \"id\": 11001,\n      \"center_id\": 1,\n      \"batch_title\": \"Morning batch 2026-06-14\",\n      \"batch_status\": \"picking\",\n      \"batch_template_id\": 401,\n      \"assigned_user_id\": 1,\n      \"batch_cart_number\": \"batch_cart_A12\",\n      \"created_at\": \"2026-06-14 08:00:00\",\n      \"updated_at\": \"2026-06-14 08:15:30\",\n      \"template\": {\n        \"id\": 401,\n        \"description\": \"Standard NL Orders\"\n      },\n      \"orders\": [\n        {\n          \"id\": 88210,\n          \"seller_id\": 12,\n          \"order_id\": \"WC-88210\",\n          \"seq_order_id\": \"UPW-2026-00415\",\n          \"order_status\": \"order\",\n          \"order_date\": \"2026-06-13 09:24:11\",\n          \"ship_on_date\": \"2026-06-14\",\n          \"shipping_first_name\": \"Lars\",\n          \"shipping_last_name\": \"van Schaick\",\n          \"shipping_country_code\": \"NL\"\n        }\n      ]\n    },\n    {\n      \"id\": 11002,\n      \"center_id\": 1,\n      \"batch_title\": \"Afternoon batch 2026-06-14\",\n      \"batch_status\": \"pending\",\n      \"batch_template_id\": 402,\n      \"assigned_user_id\": null,\n      \"batch_cart_number\": null,\n      \"created_at\": \"2026-06-14 12:30:00\",\n      \"updated_at\": \"2026-06-14 12:30:00\",\n      \"template\": {\n        \"id\": 402,\n        \"description\": \"Bol.com Express\"\n      },\n      \"orders\": []\n    }\n  ]\n}"}],"_postman_id":"5082b5a9-1982-4786-86e9-5dca72034645"},{"name":"Update batch status","id":"eb340a63-2929-42e4-9f99-6815fdfdb3c9","protocolProfileBehavior":{"disabledSystemHeaders":{}},"request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"[\n    {\n        \"batch_id\": 8279454,\n        \"batch_status\": \"picking\",\n        \"assign_user_id\": \"user@example.com\",\n        \"batch_cart_number\": \"batch_cart_A12\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/batches","description":"<h3 id=\"update-batch-status\">Update batch status</h3>\n<p>Update the status of one or more batches. You can also record which pick cart or box a batch was picked into.</p>\n<p>Send a single object, or an array of objects (max 200). If the same <code>batch_id</code> appears more than once, only the last object is applied.</p>\n<h4 id=\"request-body\">Request body</h4>\n<ul>\n<li><code>batch_id</code> (integer) or <code>batch_ids</code> (array of integers) — required. Use <code>batch_ids</code> only on a single-object request.</li>\n<li><code>batch_status</code> (string, required) — <code>pending</code> | <code>picking</code> | <code>picked</code> | <code>packing</code> | <code>shipped</code></li>\n<li><code>assign_user_id</code> (integer or string, required) — user ID or email of the picker/packer. This is not necessarily the API key owner.</li>\n<li><code>batch_cart_number</code> (string, optional) — cart/box codes for this batch. Same format as in the portal: each code must start with <code>batch_cart_</code>. Multiple codes may be separated by commas, spaces or semicolons (they are stored as a comma-separated string). Max 100 characters after normalization. Send an empty string to clear the cart. A non-empty cart can only be set when updating a <strong>single</strong> batch.</li>\n</ul>\n<h4 id=\"response-single-object\">Response (single object)</h4>\n<ul>\n<li><code>batch_status</code>, <code>assigned_user_id</code>, <code>batch_cart_number</code></li>\n<li><code>updated_ids</code>, <code>updated_count</code> — batches whose status was updated</li>\n<li><code>cart_updated_ids</code> — batches whose cart number was updated</li>\n<li><code>skipped</code>, <code>skipped_count</code> — batches that could not be updated (with a reason)</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","batches"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"1b9cea9b-c9fa-49b8-9608-6c3f5883c728","name":"Batch status updated","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"batch_ids\": [\n    11001\n  ],\n  \"batch_status\": \"picking\",\n  \"assign_user_id\": 1,\n  \"batch_cart_number\": \"batch_cart_A12\"\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/batches"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Processed batch status update.\",\n  \"batch_status\": \"picking\",\n  \"assigned_user_id\": 1,\n  \"batch_cart_number\": \"batch_cart_A12\",\n  \"updated_ids\": [\n    11001\n  ],\n  \"updated_count\": 1,\n  \"cart_updated_ids\": [\n    11001\n  ],\n  \"skipped\": [],\n  \"skipped_count\": 0\n}"}],"_postman_id":"eb340a63-2929-42e4-9f99-6815fdfdb3c9"}],"id":"211a1aec-3eef-4235-b987-23ef1fe63021","description":"<p>The Batches API allows you to retrieve and update batch information for your fulfillment center account. Batches represent groups of orders that are processed together for picking, packing, and shipping operations. PUT can also set <code>batch_cart_number</code> (cart/box codes starting with <code>batch_cart_</code>) on a single batch.</p>\n","_postman_id":"211a1aec-3eef-4235-b987-23ef1fe63021"},{"name":"Returns","item":[{"name":"Get returns","id":"c0bdd656-a434-4a5b-8dd3-802685703b0b","request":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":"https://channeldock.com/portal/api/v2/center/returns?page=1","description":"<p>Get a list of all returns.</p>\n<p>Add <code>include_attachments=true</code> to also get each return's uploaded files, with the file content included as base64 (<code>base64_content</code>) — no extra call needed to read attachment content. It's opt-in because it downloads every file from storage, which isn't free. Without it, the <code>attachments</code> field is omitted entirely.</p>\n","urlObject":{"path":["portal","api","v2","center","returns"],"host":["https://channeldock.com"],"query":[{"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>optional (default false): also return each return's attachments, with base64_content included</p>\n","type":"text/plain"},"key":"include_attachments","value":"true"},{"disabled":true,"key":"id","value":"13"},{"disabled":true,"description":{"content":"<p>ChannelDock Order ID</p>\n","type":"text/plain"},"key":"order_id","value":"12345"},{"disabled":true,"key":"sort_attr","value":"order_id"},{"disabled":true,"description":{"content":"<p>ASC or DESC</p>\n","type":"text/plain"},"key":"sort_dir","value":"ASC"},{"disabled":true,"description":{"content":"<p>Order ID from e.g. Amazon or bol.com</p>\n","type":"text/plain"},"key":"remote_order_id","value":"12345"},{"disabled":true,"description":{"content":"<p>Return ID from e.g. Amazon or bol.com</p>\n","type":"text/plain"},"key":"remote_return_id","value":"12345"},{"disabled":true,"description":{"content":"<p>1 or 0</p>\n","type":"text/plain"},"key":"is_handled","value":"1"},{"disabled":true,"key":"start_handled_date","value":"2024-01-01"},{"disabled":true,"key":"end_handled_date","value":"2024-01-03"}],"variable":[]}},"response":[{"id":"17458630-6d8e-47f3-b05e-00fa6374fc45","name":"Get returns","originalRequest":{"method":"GET","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"url":{"raw":"https://channeldock.com/portal/api/v2/center/returns?page=1&order_id=12345&sort_attr=order_id&sort_dir=ASC&remote_order_id=12345&remote_return_id=12345&is_handled=1","protocol":"https","host":["channeldock","com"],"path":["portal","api","v2","center","returns"],"query":[{"key":"page","value":"1"},{"key":"id","value":"13","disabled":true},{"key":"order_id","value":"12345","description":"ChannelDock Order ID"},{"key":"sort_attr","value":"order_id"},{"key":"sort_dir","value":"ASC","description":"ASC or DESC"},{"key":"remote_order_id","value":"12345","description":"Order ID from e.g. Amazon or bol.com"},{"key":"remote_return_id","value":"12345","description":"Return ID from e.g. Amazon or bol.com"},{"key":"is_handled","value":"1","description":"1 or 0"},{"key":"include_attachments","value":"true","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"page\": 1,\n  \"page_size\": 50,\n  \"return_count\": 1,\n  \"returns\": [\n    {\n      \"id\": 9301,\n      \"api_id\": 2450,\n      \"order_id\": 88211,\n      \"remote_return_id\": \"BOL-RET-77123\",\n      \"is_handled\": 1,\n      \"handled_date\": \"2026-06-13 11:14:08\",\n      \"created_at\": \"2026-06-12 16:45:22\",\n      \"channel_id\": 1,\n      \"custom_return_comment\": \"Return product 8719326583648 handled by Lars van Schaick (RETURN_RECEIVED).\",\n      \"return_products\": [\n        {\n          \"id\": 12211,\n          \"api_id\": 2450,\n          \"ean\": \"8719326583648\",\n          \"quantity\": 1,\n          \"reason\": \"Defective seam\",\n          \"return_status\": \"RETURN_RECEIVED\",\n          \"return_id\": 9301,\n          \"order_id\": 88211,\n          \"remote_order_id\": \"BOL-19877\",\n          \"restocked\": 0,\n          \"stock_location_id\": 0,\n          \"track_and_trace\": \"3SBOLRET00099\",\n          \"child_from_bundle\": 0,\n          \"order_product\": {\n            \"id\": 91215,\n            \"api_id\": 2450,\n            \"seller_id\": 1,\n            \"center_id\": 0,\n            \"order_id\": 88211,\n            \"orderItemId\": \"BOL-88211-1\",\n            \"ean\": \"8719326583648\",\n            \"title\": \"Wetsuit Predator 5/4 Freezip - Size M\",\n            \"price\": 189.95,\n            \"quantity\": 1,\n            \"is_shipped\": 1\n          }\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": 501,\n          \"name\": \"9301-64f1c2a1b2c3d-damage.jpg\",\n          \"extension\": \"jpg\",\n          \"content_type\": \"image/jpeg\",\n          \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n        }\n      ]\n    }\n  ]\n}"}],"_postman_id":"c0bdd656-a434-4a5b-8dd3-802685703b0b"},{"name":"Create return","id":"1c819d89-891a-44f2-bda9-04530c372aa3","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_action\": \"PENDING\",\n  \"return_track_trace\": \"3SABCD123456789\",\n  \"order_products\": [\n    {\n      \"order_id\": 123456,\n      \"quantity\": 1,\n      \"reason\": \"DAMAGED\"\n    },\n    {\n      \"order_id\": 123456,\n      \"quantity\": 2,\n      \"reason\": \"NOT_AS_DESCRIBED\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"filename\": \"damage-photo-1.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"invoice.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns","description":"<p>This endpoint allows you to create a new return based on a set of order products. To initiate a return, send a POST request containing an order_products array, where each item specifies the related order_product_id and the quantity to be returned. At least one product must have a quantity greater than zero for the return to be created successfully.</p>\n<p>Optionally, you may provide a return_action. If omitted, the return will default to PENDING.</p>\n<p>You can also include a return_track_trace value to store tracking information for the return shipment.</p>\n<p>Additionally, this endpoint supports uploading attachments, such as photos or documents related to the return (e.g. damage images or invoices). Attachments must be provided as base64-encoded content and will be validated and stored upon successful return creation.</p>\n<p>If the request is valid, the API creates a new return record, associates the provided products, stores any tracking information, and processes any supplied attachments. In case of an error, the API responds with an appropriate HTTP status code and a descriptive error message.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>order_products</strong> (array, required)</p>\n<p>  List of order products to be returned. Each item must include:</p>\n<ul>\n<li><p>order_product_id (integer, required)</p>\n</li>\n<li><p>quantity (integer, required, must be greater than 0)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>return_action</strong> (string, optional)</p>\n<p>  The initial status of the return. Defaults to PENDING.</p>\n<p>  Allowed values:</p>\n<p>  PENDING, RETURN_RECEIVED, EXCHANGE_PRODUCT, REPAIR_PRODUCT, STILL_APPROVED, RETURN_DOES_NOT_MEET_CONDITIONS, CUSTOMER_KEEPS_PRODUCT_PAID</p>\n</li>\n<li><p><strong>return_track_trace</strong> (string, optional)</p>\n<p>  Track and trace code for the return shipment.</p>\n</li>\n<li><p><strong>attachments</strong> (array, optional)</p>\n<p>  Files related to the return, provided as base64-encoded content. Each attachment must include:</p>\n<ul>\n<li><p>filename (string)</p>\n</li>\n<li><p>base64_content (string, base64-encoded file content)</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","returns"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"0489c380-6f56-49ee-997c-df73644b2345","name":"Create return","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_action\": \"PENDING\",\n  \"return_track_trace\": \"3SABCD123456789\",\n  \"order_products\": [\n    {\n      \"order_id\": 123456,\n      \"quantity\": 1,\n      \"reason\": \"DAMAGED\"\n    },\n    {\n      \"order_id\": 123456,\n      \"quantity\": 2,\n      \"reason\": \"NOT_AS_DESCRIBED\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"filename\": \"damage-photo-1.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"invoice.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Return created successfully\",\n  \"newReturnId\": 9302\n}"}],"_postman_id":"1c819d89-891a-44f2-bda9-04530c372aa3"},{"name":"Handle return","id":"7dc418d3-99b7-4801-9f21-9c432c9576db","request":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"is_handled\": true,\n  \"needs_attention\": false,\n  \"attachments\": [\n    {\n      \"filename\": \"received-package.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"inspection-report.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns","description":"<p>This endpoint allows you to update an existing return by its return ID. To process a return, send a PUT request including the return_id and the fields you wish to update.</p>\n<p>You can mark a return as handled by setting is_handled to true. When a return is marked as handled, the system automatically records the handling timestamp.</p>\n<p>You can flag or unflag a return for attention by setting needs_attention to true/false — the same field as the portal UI's \"needs attention\" toggle.</p>\n<p>Optionally, you may include attachments such as photos or documents related to the return. Attachments must be provided as base64-encoded content and will be validated and stored if the update is successful.</p>\n<p>If the return ID is valid and belongs to a seller connected to the authenticated center, the return record is updated accordingly and any provided attachments are processed. In case of an error, the API responds with an appropriate HTTP status code and a descriptive error message.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>return_id</strong> (integer, required)</p>\n<p>  The unique identifier of the return to be updated.</p>\n</li>\n<li><p><strong>is_handled</strong> (boolean, optional)</p>\n<p>  Indicates whether the return has been processed.</p>\n<p>  When set to true, the return is marked as handled and a handling date is automatically assigned.</p>\n</li>\n<li><p><strong>needs_attention</strong> (boolean, optional)</p>\n<p>  Flags (true) or unflags (false) the return for attention.</p>\n</li>\n<li><p>Files related to the return, provided as base64-encoded content. Each attachment must include:</p>\n<ul>\n<li><p>filename (string)</p>\n</li>\n<li><p>base64_content (string, base64-encoded file content)</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["portal","api","v2","center","returns"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"0185d1e5-1568-4e15-92bd-f66cf48c5acd","name":"Handle return","originalRequest":{"method":"PUT","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"is_handled\": true,\n  \"needs_attention\": false,\n  \"attachments\": [\n    {\n      \"filename\": \"received-package.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    },\n    {\n      \"filename\": \"inspection-report.pdf\",\n      \"base64_content\": \"JVBERi0xLjQKJcTl8uXr...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Return ID 9301 updated!\"\n}"}],"_postman_id":"7dc418d3-99b7-4801-9f21-9c432c9576db"},{"name":"Add return attachments","id":"576ed610-ff05-4cdf-a67a-89a5c432a107","request":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachments\": [\n    {\n      \"filename\": \"extra-photo.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns/attachments","description":"<p>Add one or more attachments to an existing return, after it has already been created. This is the same attachment logic used by <code>POST</code>/<code>PUT /returns</code>, but for attaching files after the fact — the return is identified in the body (<code>return_id</code>), not in the URL, matching the rest of this API. The center resolves the return via its connected sellers.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>return_id</strong> (integer, required)</p>\n<p>  The return to attach the files to.</p>\n</li>\n<li><p><strong>attachments</strong> (array, required)</p>\n<p>  One or more files, each an object with:</p>\n<ul>\n<li><p>filename (string, required)</p>\n</li>\n<li><p>base64_content (string, required, base64-encoded file content)</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Allowed file extensions: png, jpg, jpeg, gif, webp, zip, pdf, docx, xlsx, xls, csv. Max 10MB per file.</p>\n<p>The return must belong to a seller connected to the authenticated center, otherwise the API responds with an appropriate HTTP status code and error message.</p>\n","urlObject":{"path":["portal","api","v2","center","returns","attachments"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"520b5103-2831-4263-a34d-f3b66b556658","name":"Add return attachments","originalRequest":{"method":"POST","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachments\": [\n    {\n      \"filename\": \"extra-photo.jpg\",\n      \"base64_content\": \"/9j/4AAQSkZJRgABAQAAAQABAAD...BASE64...\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns/attachments"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"attachments_uploaded\": 1\n}"}],"_postman_id":"576ed610-ff05-4cdf-a67a-89a5c432a107"},{"name":"Delete return attachment","id":"0d7644d1-8772-44a4-9105-8e673005c1ce","request":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachment_id\": 501\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns/attachments","description":"<p>Delete a single uploaded attachment from a return.</p>\n<h3 id=\"body-parameters\"><strong>Body Parameters</strong></h3>\n<ul>\n<li><p><strong>return_id</strong> (integer, required)</p>\n<p>  The return the attachment belongs to.</p>\n</li>\n<li><p><strong>attachment_id</strong> (integer, required)</p>\n<p>  The <code>id</code> value from the <code>attachments</code> array (returned by <code>GET /returns?include_attachments=true</code>).</p>\n</li>\n</ul>\n<p>The return must belong to a seller connected to the authenticated center. Deletion removes the file from storage and its database record; if storage deletion fails, the database record is still removed.</p>\n","urlObject":{"path":["portal","api","v2","center","returns","attachments"],"host":["https://channeldock.com"],"query":[],"variable":[]}},"response":[{"id":"97aa5df8-7ba3-4f26-93c0-8af2a6372668","name":"Delete return attachment","originalRequest":{"method":"DELETE","header":[{"key":"api-key","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"api-secret","value":"xxxx-xxxx-xxxx-xxxx"}],"body":{"mode":"raw","raw":"{\n  \"return_id\": 98765,\n  \"attachment_id\": 501\n}","options":{"raw":{"language":"json"}}},"url":"https://channeldock.com/portal/api/v2/center/returns/attachments"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"response\": \"success\",\n  \"message\": \"Attachment ID 501 deleted!\"\n}"}],"_postman_id":"0d7644d1-8772-44a4-9105-8e673005c1ce"}],"id":"0a3fe3fa-64d5-4cf5-af4b-e15990147a4d","description":"<p>A seller can manually create a return in their account. Using this endpoint you can fetch all open (?is_handled=0) or processed (?is_handled=1) returns.</p>\n","_postman_id":"0a3fe3fa-64d5-4cf5-af4b-e15990147a4d"}],"id":"e0b8da3c-ed71-4455-89d1-794dc7bef769","description":"<p>The Fulfillment center API can be used to perform several functions. Most of the time you can filter based on seller_id. Bundles and product tags are documented alongside products.</p>\n<p>The base URL is: <a href=\"https://channeldock.com/\">https://channeldock.com</a></p>\n","_postman_id":"e0b8da3c-ed71-4455-89d1-794dc7bef769"}],"variable":[{"key":"BASE_URL","value":"https://channeldock.com"},{"key":"API_KEY_SELLER","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"API_SECRET_SELLER","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"API_KEY_CENTER","value":"xxxx-xxxx-xxxx-xxxx"},{"key":"API_SECRET_CENTER","value":"xxxx-xxxx-xxxx-xxxx"}]}