<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>noon API Platform Changelog</title>
        <link>https://noon-docs.noonpartners.dev/changelog</link>
        <description>API changes and platform updates for partners integrating with noon's APIs.</description>
        <lastBuildDate>Wed, 19 Aug 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>Copyright © 2026 noon. All rights reserved.</copyright>
        <item>
            <title><![CDATA[A complete guide to the Developer Portal]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/developer-portal-documentation</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/developer-portal-documentation</guid>
            <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Developer Portal now has a full documentation section — every feature walked through against the actual screens, with screenshots — and a Developer Portal entry in the site navigation to get you there.]]></description>
            <content:encoded><![CDATA[<p>The Developer Portal now has a full documentation section — every feature walked through against the actual screens, with screenshots — and a <strong>Developer Portal</strong> entry in the site navigation to get you there.</p>
<!-- -->
<ul>
<li><a href="https://noon-docs.noonpartners.dev/docs/developer-portal/overview">Overview</a> — what the portal offers and how to get access</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/developer-portal/support-cases">Support Cases</a> — raising a case, tracking it, replying in thread</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/developer-portal/rate-limit">Rate Limit</a> — your rate limit analytics and per-endpoint configuration</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/developer-portal/debugging-session">Debugging Session</a> — capturing live requests and responses, including headers and bodies, for one service and one API user over a bounded window</li>
<li>Event Notifications — <a href="https://noon-docs.noonpartners.dev/docs/developer-portal/event-notifications/overview">Overview</a>, <a href="https://noon-docs.noonpartners.dev/docs/developer-portal/event-notifications/destinations">Destinations</a>, <a href="https://noon-docs.noonpartners.dev/docs/developer-portal/event-notifications/analytics">Analytics</a>, and <a href="https://noon-docs.noonpartners.dev/docs/developer-portal/event-notifications/logs">Logs</a></li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="debugging-sessions-are-worth-a-look">Debugging sessions are worth a look<a href="https://noon-docs.noonpartners.dev/changelog/developer-portal-documentation#debugging-sessions-are-worth-a-look" class="hash-link" aria-label="Direct link to Debugging sessions are worth a look" title="Direct link to Debugging sessions are worth a look">​</a></h2>
<p>If you've never used one: a debugging session captures full request and response payloads — headers and bodies, per call — scoped to a single service and API user for a bounded window. It's the fastest way to see exactly what we received from you and exactly what we sent back. <a href="https://noon-docs.noonpartners.dev/docs/developer-portal/debugging-session">The page walks through setting one up</a>.</p>
<p>The portal itself is at <a href="https://developer.noon.partners/" target="_blank" rel="noopener noreferrer">developer.noon.partners</a>.</p>]]></content:encoded>
            <category>platform-update</category>
            <category>documentation</category>
            <category>major</category>
        </item>
        <item>
            <title><![CDATA[Guided walkthrough and dark mode in the Developer Portal]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/portal-walkthrough-and-dark-mode</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/portal-walkthrough-and-dark-mode</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Signing in to the Developer Portal for the first time now starts with a short guided tour of the main areas, and the whole portal has a dark theme that follows your system setting.]]></description>
            <content:encoded><![CDATA[<p>Signing in to the <a href="https://developer.noon.partners/" target="_blank" rel="noopener noreferrer">Developer Portal</a> for the first time now starts with a short guided tour of the main areas, and the whole portal has a dark theme that follows your system setting.</p>
<!-- -->
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="guided-walkthrough">Guided walkthrough<a href="https://noon-docs.noonpartners.dev/changelog/portal-walkthrough-and-dark-mode#guided-walkthrough" class="hash-link" aria-label="Direct link to Guided walkthrough" title="Direct link to Guided walkthrough">​</a></h2>
<p>First-time users are walked through where each part of the portal lives — rate limit analytics, event notification destinations, debugging sessions, support cases. It's skippable, and you can re-trigger it later from settings, which makes it a quick way to bring a new colleague up to speed.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="dark-mode">Dark mode<a href="https://noon-docs.noonpartners.dev/changelog/portal-walkthrough-and-dark-mode#dark-mode" class="hash-link" aria-label="Direct link to Dark mode" title="Direct link to Dark mode">​</a></h2>
<p>The portal follows your operating system's light or dark preference automatically. There's a manual toggle if you'd rather pin one, and that choice persists.</p>
<p>Both are interface changes only — no API behaviour changed, and nothing you've built against the portal needs updating.</p>]]></content:encoded>
            <category>platform-update</category>
        </item>
        <item>
            <title><![CDATA[Support cases in the Developer Portal]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/seller-support-portal</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/seller-support-portal</guid>
            <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The Seller Support Portal is live: raise a case with the API Platform team from inside the Developer Portal, track its status, and keep the whole exchange in one thread.]]></description>
            <content:encoded><![CDATA[<p>The Seller Support Portal is live: raise a case with the API Platform team from inside the Developer Portal, track its status, and keep the whole exchange in one thread.</p>
<!-- -->
<p>Cases live under <strong>Support</strong> in the <a href="https://developer.noon.partners/" target="_blank" rel="noopener noreferrer">Developer Portal</a>. From there you can open a new case, see everything you've raised, and open any one of them to read and continue the conversation. There's a full walkthrough in <a href="https://noon-docs.noonpartners.dev/docs/developer-portal/support-cases">Support Cases</a>.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="case-lifecycle">Case lifecycle<a href="https://noon-docs.noonpartners.dev/changelog/seller-support-portal#case-lifecycle" class="hash-link" aria-label="Direct link to Case lifecycle" title="Direct link to Case lifecycle">​</a></h2>
<p>A case moves through four states:</p>
<table><thead><tr><th>Status</th><th>Meaning</th></tr></thead><tbody><tr><td>Open</td><td>Raised, not yet picked up</td></tr><tr><td>Under Review</td><td>The platform team is working on it</td></tr><tr><td>Awaiting Partner Response</td><td>We've asked you something and are waiting</td></tr><tr><td>Closed</td><td>Resolved</td></tr></tbody></table>
<p>A case with no activity for 15 days closes automatically. If that happens and the problem hasn't gone away, open a new one and reference the old case.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="what-to-include">What to include<a href="https://noon-docs.noonpartners.dev/changelog/seller-support-portal#what-to-include" class="hash-link" aria-label="Direct link to What to include" title="Direct link to What to include">​</a></h2>
<p>The more of this you provide up front, the fewer round trips:</p>
<ul>
<li>The endpoint and HTTP method you called</li>
<li>A request ID or timestamp, so we can find it in the logs</li>
<li>What you expected versus what came back</li>
<li>Whether it reproduces or happened once</li>
</ul>
<p>If failures are broad rather than specific to one call, the <a href="https://noon-docs.noonpartners.dev/api-health-status">API health status page</a> may already show the cause.</p>]]></content:encoded>
            <category>platform-update</category>
            <category>support</category>
            <category>major</category>
        </item>
        <item>
            <title><![CDATA[Markdown export for every docs page]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/copy-docs-as-markdown</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/copy-docs-as-markdown</guid>
            <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Every documentation page — generated API reference included — can now be copied or downloaded as clean Markdown, ready to paste into an editor, a coding assistant, or your own internal docs.]]></description>
            <content:encoded><![CDATA[<p>Every documentation page — generated API reference included — can now be copied or downloaded as clean Markdown, ready to paste into an editor, a coding assistant, or your own internal docs.</p>
<!-- -->
<p>Each page carries actions to copy its Markdown source or download it as a <code>.md</code> file. Endpoint pages also have a copy button on the method and path, so grabbing just the route doesn't mean selecting text by hand.</p>
<p>Markdown round-trips cleanly where a screenshot or a copy-paste from rendered HTML doesn't: tables stay tables, code blocks stay code blocks, and enum values survive intact.</p>
<p>The site also publishes an <code>llms.txt</code> index, so tooling that understands that convention can discover the full documentation set on its own.</p>]]></content:encoded>
            <category>platform-update</category>
            <category>documentation</category>
        </item>
        <item>
            <title><![CDATA[Live API health, per service and endpoint]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/api-health-status-page</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/api-health-status-page</guid>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[The API health status page is now public: current error rates for every endpoint we expose, grouped by service and broken out per marketplace.]]></description>
            <content:encoded><![CDATA[<p>The <a href="https://noon-docs.noonpartners.dev/api-health-status">API health status page</a> is now public: current error rates for every endpoint we expose, grouped by service and broken out per marketplace.</p>
<!-- -->
<p>Each service group rolls up to a single state:</p>
<table><thead><tr><th>State</th><th>Meaning</th></tr></thead><tbody><tr><td>Operational</td><td>No errors observed</td></tr><tr><td>Degraded</td><td>Some errors observed</td></tr><tr><td>Outage</td><td>Error rate above 10%</td></tr></tbody></table>
<p>A group shows as <strong>Outage</strong> if any endpoint under it is in outage, and <strong>Degraded</strong> if any endpoint is degraded.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="how-its-calculated">How it's calculated<a href="https://noon-docs.noonpartners.dev/changelog/api-health-status-page#how-its-calculated" class="hash-link" aria-label="Direct link to How it's calculated" title="Direct link to How it's calculated">​</a></h2>
<p>The page reads observed error rates directly — it isn't updated by hand, so it stays accurate during an incident without anyone remembering to flip a switch.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="what-it-shows-and-what-it-doesnt">What it shows, and what it doesn't<a href="https://noon-docs.noonpartners.dev/changelog/api-health-status-page#what-it-shows-and-what-it-doesnt" class="hash-link" aria-label="Direct link to What it shows, and what it doesn't" title="Direct link to What it shows, and what it doesn't">​</a></h2>
<p>It reflects <strong>current</strong> state only; there's no historical availability chart today. Establishing what happened during a window that has already passed still needs a conversation with us.</p>
<p>The page is public and needs no login, so it's safe to link from your own runbooks and dashboards.</p>]]></content:encoded>
            <category>platform-update</category>
        </item>
        <item>
            <title><![CDATA[Return lookup by barcode]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/list-return-references</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/list-return-references</guid>
            <pubDate>Mon, 29 Jun 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[A new Returns API lets you list return items and their barcode references for a given barcode across the merchants you operate, so your warehouse can identify an inbound return from the label alone.]]></description>
            <content:encoded><![CDATA[<p>A new Returns API lets you list return items and their barcode references for a given barcode across the merchants you operate, so your warehouse can identify an inbound return from the label alone.</p>
<!-- -->
<table><thead><tr><th>Endpoint</th><th>Summary</th></tr></thead><tbody><tr><td><code>POST /v1/return-references/list</code></td><td><code>ListReturnReferences</code> — lists return items and their barcode references matching a barcode for the given merchants.</td></tr></tbody></table>
<p>This is the first endpoint on the Returns service — a single RPC, scoped to the merchants your credentials cover.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="why-youd-use-it">Why you'd use it<a href="https://noon-docs.noonpartners.dev/changelog/list-return-references#why-youd-use-it" class="hash-link" aria-label="Direct link to Why you'd use it" title="Direct link to Why you'd use it">​</a></h2>
<p>A returned parcel arrives at your facility carrying a barcode. Scan it, call <code>ListReturnReferences</code>, and you get the return items associated with it across all your partner merchants in one response — enough to route the parcel without a manual reconciliation step.</p>
<p>The endpoint and its full schema are in the Returns section of the API reference.</p>]]></content:encoded>
            <category>api-change</category>
            <category>returns</category>
        </item>
        <item>
            <title><![CDATA[A guide to querying event notification logs]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/querying-event-notification-logs</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/querying-event-notification-logs</guid>
            <pubDate>Mon, 29 Jun 2026 09:00:00 GMT</pubDate>
            <description><![CDATA[There's now a guide for querying your event notification delivery logs, so you can confirm what we dispatched, when, and how your endpoint responded.]]></description>
            <content:encoded><![CDATA[<p>There's now a guide for querying your event notification delivery logs, so you can confirm what we dispatched, when, and how your endpoint responded.</p>
<!-- -->
<p>The <a href="https://noon-docs.noonpartners.dev/docs/event-notifications/querying-logs">Querying logs</a> guide covers the query editor in the Developer Portal: how to filter delivery attempts, what each field in a log record means, and how to read the results when a delivery failed.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="what-this-is-good-for">What this is good for<a href="https://noon-docs.noonpartners.dev/changelog/querying-event-notification-logs#what-this-is-good-for" class="hash-link" aria-label="Direct link to What this is good for" title="Direct link to What this is good for">​</a></h2>
<ul>
<li>Confirming whether an event was dispatched at all, versus dispatched and rejected by your endpoint</li>
<li>Seeing the exact payload we sent, when your handler logged something unexpected</li>
<li>Pinning a gap down to a specific time window</li>
</ul>
<p>The guide is linked under Event Notifications in the docs sidebar, next to the event type references.</p>]]></content:encoded>
            <category>platform-update</category>
            <category>event-notifications</category>
            <category>documentation</category>
        </item>
        <item>
            <title><![CDATA[Content APIs for categories, attributes, and products]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/global-product-and-content-apis</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/global-product-and-content-apis</guid>
            <pubDate>Fri, 19 Jun 2026 10:00:00 GMT</pubDate>
            <description><![CDATA[You can now browse the noon category tree, discover exactly which attributes a category expects, submit products against it, and read back their content — four endpoints, with a guide set that takes you from first call to go-live.]]></description>
            <content:encoded><![CDATA[<p>You can now browse the noon category tree, discover exactly which attributes a category expects, submit products against it, and read back their content — four endpoints, with a guide set that takes you from first call to go-live.</p>
<!-- -->
<table><thead><tr><th>Endpoint</th><th>Summary</th></tr></thead><tbody><tr><td><code>POST /v1/categories/list</code></td><td><code>ListCategories</code> — lists all available product categories in the catalog.</td></tr><tr><td><code>POST /v1/categories/attributes/list</code></td><td><code>ListCategoryAttributes</code> — retrieves the attributes for a specified product category.</td></tr><tr><td><code>POST /v1/product/upsert</code></td><td><code>UpsertProduct</code> — creates or updates a product in the catalog.</td></tr><tr><td><code>POST /v1/product/content/get</code></td><td><code>GetContent</code> — retrieves content information for specified products.</td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="guides">Guides<a href="https://noon-docs.noonpartners.dev/changelog/global-product-and-content-apis#guides" class="hash-link" aria-label="Direct link to Guides" title="Direct link to Guides">​</a></h2>
<p>Five documents walk through a first integration end to end:</p>
<ul>
<li><a href="https://noon-docs.noonpartners.dev/docs/content/content-api">Content API overview</a> — how the service fits into the catalog lifecycle</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/content/quickstart">Quickstart</a> — your first successful call</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/content/guides/discover-category-attributes">Discover category attributes</a> — find out what a category requires before you submit</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/content/guides/submit-product">Submit a product</a> — build and send a valid product payload</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/content/guides/track-and-fix">Track and fix</a> — read back content status and correct rejections</li>
<li><a href="https://noon-docs.noonpartners.dev/docs/content/guides/go-live">Go live</a> — the checklist before you move to production</li>
</ul>
<p>The published reference is the source of truth for these endpoints: field and enum names match the service exactly, and rate limits render from the live specification.</p>]]></content:encoded>
            <category>api-change</category>
            <category>content</category>
            <category>catalog</category>
            <category>major</category>
        </item>
        <item>
            <title><![CDATA[Batch SKU deletion and bulk barcode import]]></title>
            <link>https://noon-docs.noonpartners.dev/changelog/catalog-sku-delete-and-barcode-import</link>
            <guid>https://noon-docs.noonpartners.dev/changelog/catalog-sku-delete-and-barcode-import</guid>
            <pubDate>Fri, 19 Jun 2026 09:00:00 GMT</pubDate>
            <description><![CDATA[The Catalog API now covers two operations you previously had to work around: deleting parent and child SKUs in batches, and loading barcodes in bulk from a file, a BigQuery table, or an inline list.]]></description>
            <content:encoded><![CDATA[<p>The Catalog API now covers two operations you previously had to work around: deleting parent and child SKUs in batches, and loading barcodes in bulk from a file, a BigQuery table, or an inline list.</p>
<!-- -->
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="sku-deletion">SKU deletion<a href="https://noon-docs.noonpartners.dev/changelog/catalog-sku-delete-and-barcode-import#sku-deletion" class="hash-link" aria-label="Direct link to SKU deletion" title="Direct link to SKU deletion">​</a></h2>
<table><thead><tr><th>Endpoint</th><th>Summary</th></tr></thead><tbody><tr><td><code>POST /v1/sku/parent/delete</code></td><td><code>ParentSkuDelete</code> — deletes parent partner SKUs / ZSKU parents. <strong>This cascades:</strong> every associated child SKU is deleted with it.</td></tr><tr><td><code>POST /v1/sku/child/delete</code></td><td><code>ChildSkuDelete</code> — deletes individual partner SKUs / child ZSKUs.</td></tr></tbody></table>
<p>Both accept batches. Because parent deletion cascades, check what sits underneath a parent before you call it.</p>
<h2 class="anchor anchorWithStickyNavbar_fF9Z" id="bulk-barcode-import">Bulk barcode import<a href="https://noon-docs.noonpartners.dev/changelog/catalog-sku-delete-and-barcode-import#bulk-barcode-import" class="hash-link" aria-label="Direct link to Bulk barcode import" title="Direct link to Bulk barcode import">​</a></h2>
<table><thead><tr><th>Endpoint</th><th>Summary</th></tr></thead><tbody><tr><td><code>POST /v1/import/generate-import-signed-url</code></td><td><code>GenerateImportSignedUrl</code> — returns a signed URL for uploading a file straight to GCS. Accepts <code>csv</code>, <code>tsv</code>, <code>json</code>, <code>xlsx</code>, <code>xlsm</code>, and <code>parquet</code>.</td></tr><tr><td><code>POST /v1/import/barcode</code></td><td><code>CreateBarcodeImport</code> — starts an import from exactly one source: <code>file_url</code>, <code>bq_table</code>, or inline <code>items</code>.</td></tr><tr><td><code>GET /v1/import/status/{reference}</code></td><td><code>GetImportStatus</code> — returns current status and a processing report: success and failure counts, progress, and completion timestamps.</td></tr></tbody></table>
<p>The usual flow is to call <code>GenerateImportSignedUrl</code>, upload your file to the URL it returns, pass that <code>file_url</code> to <code>CreateBarcodeImport</code>, then poll <code>GetImportStatus</code> with the returned reference until it completes. If your data already lives in BigQuery you can skip the upload and pass <code>bq_table</code> instead.</p>
<p>Full request and response shapes are in the Catalog section of the API reference.</p>]]></content:encoded>
            <category>api-change</category>
            <category>catalog</category>
        </item>
    </channel>
</rss>