All posts

SKUmargin shows real net profit per SKU on Noon, after fees, COGS, returns, and ads.

Start free trial
Operations

How to Connect the Noon Seller API (partners.noon.com)

#noon #noonseller #noonapi #partnersnoon #sellerlab #noonintegration #noonexports #gccsellers #ecommerce #automation

If you sell on Noon and you are still downloading reports by hand every morning, this is the guide that ends that. Noon gives every seller a Partner API at partners.noon.com. It is the same account you use for Seller Lab, it takes about ten minutes to set up, and once a tool is connected to it the settlement report, the catalogue, the sales-by-day report and your FBN stock arrive on their own.

This walkthrough covers the setup steps, the one error almost everyone hits, exactly which exports the API exposes (with the category codes, because they are not documented anywhere seller-friendly), and what a sensible integration does with them.

What the Partner API is, in plain terms

Noon's seller-facing systems sit behind one login. Seller Lab is the web interface. partners.noon.com is the same platform's developer face, where you create an API user, a machine identity that can request the same exports you would otherwise click through in Seller Lab. It is not a separate product and there is no fee for it.

An API user is created inside your partner account and scoped to a project. The project is Noon's word for the seller entity and its contracts; when you sell in more than one country each country is a contract under that project. The credentials Noon generates identify the key, carry a secret, and name the project code they belong to. That last part is what makes the common error below make sense.

Step by step

  1. Sign in at partners.noon.com with the account you use for Seller Lab. If you have a team, use the owner or admin account; API users inherit their permissions from whoever creates them.
  2. In the left navigation open User and Access, then API Users.
  3. Click Create new API user. Give it a name you will recognise in a year (the name of the tool you are connecting is the obvious choice).
  4. Tick the scopes the tool needs. For a profit or accounting tool that is finance, orders and catalog. Skip anything you do not need; you can create a second API user with more scopes later.
  5. Noon generates a JSON credentials file and prompts you to download it. You get this download once. Save it somewhere safe. If you lose it, come back to the same screen and regenerate the credentials, which invalidates the old file.
  6. Upload the JSON file into the tool you are connecting. In SKUmargin that is Settings, then Stores, add or edit a store, and drop the file into the "Connect via Noon API" block, then press Test connection.

A successful test should tell you which seller identity Noon sees for the key. If the identity is not yours, you are connecting a file from the wrong account.

The error you will probably see once

The message is: you don't have access over this project.

Noon returns it as a 403 on every export request, and it looks exactly like an empty account, so tools that do not surface the error just show nothing. It means the API user is asking for a project code it has no rights over. In practice that happens for one of two reasons:

  • The JSON file was generated under a different partner account than the one that owns the store. This is common with agencies, family businesses and anyone who has more than one Noon login.
  • The API user was created without the finance or orders scopes, or by a user whose own role does not include them.

Either way the fix is the same: sign in with the account that owns the seller you want to connect, recreate the API user with the scopes, download the new JSON and upload it again. Regenerating credentials on a key that belongs to the wrong project does not help; it is the project, not the secret, that is wrong.

What the API can actually export

This is the part nobody writes down. Noon's export system offers a fixed list of report categories, and only those codes work; anything else fails at the create-export step in a way that also looks like an empty file. Read off a live seller account on 30 August 2026, the list is:

Category code What it is Required parameters
noon_financeweb_transactionviewreportonitemlevel The transaction view at item level. Every sale, fee, refund, subsidy and payout row. This is the settlement report. from_date, to_date
noon_noonoms_ordersexport Orders as placed, including ones not yet settled. from_date, to_date (optional: is_fulfilled_by_noon)
noon_catalog_globalcatalogexport Your catalogue: SKUs, titles, barcodes, status. country, noon_status
noon_catalog_reports_productviewsandsalesdata Visits, units and revenue per SKU per day. The only per-day revenue source between a sale and its statement. country, from_date, to_date, lang
fbn_inventoryv2_ledgerdetailedview Every FBN stock movement. none
fbn_inventoryv2_ledgersummaryview FBN stock summarised by location or time. none
fbn_inventoryv2_aging How long each FBN unit has been sitting, which is what storage fees follow. none
noon_catalog_content_contentrejections Listings Noon has rejected and why. none

Two things this table tells you. First, the settlement report and the orders export are separate. A sale shows up in the orders export on the day it is placed and in the transaction view as an "Order" row the same day, but its fees usually arrive later on "Order Update" rows, and the statement that pays it comes later still. Any integration has to hold both views and know which one is the money authority; when does Noon pay sellers explains the timing.

Second, there is no advertising export in this list. Noon Ad Manager (admanager.noon.partners) is a separate console. The money you spent on ads reaches the settlement report as "Statement Fee" rows titled Advertising Fee, and the campaign-level performance lives only in Ad Manager. A tool that shows you ads per SKU is reading both; Noon sponsored ads: ACOS, ROAS and what Noon bills covers how those two reconcile.

What a sensible integration does with them

The order matters, because the reports contradict each other in small ways if you read them naively.

  1. Settlement first, every couple of hours. Pull the transaction view for the last few weeks, not just since the last pull, because fees and refunds land on old orders. Key every line on its Reference Number so a re-pull never double counts.
  2. Catalogue second. It supplies titles, barcodes and the current listing price, which is what an unsettled order should be valued at until the statement says otherwise.
  3. Sales by day third. Revenue per SKU per day gives you the average price a SKU actually shipped at, which is a better estimate than the list price for an unsettled order on a SKU you repriced last week.
  4. FBN stock and aging. No parameters, so they are cheap to pull. Stock-outs and long-sitting units are the two things sellers most often complain their dashboard gets wrong, and both come from here.
  5. Never let the estimate outrank the statement. When a settlement line arrives for an order that was valued from the catalogue, the settlement wins, the estimate is discarded, and the record says so.

Every two hours is a sensible cadence. Noon's exports are generated asynchronously (you request one, wait, then download it), so pulling more often mostly queues requests without giving you newer data.

Security, briefly

The JSON file is a password. Whoever holds it can read your finances. Store it encrypted at rest, never paste it into a chat or a ticket, and if a tool ever shows you the secret back in the browser, that tool is doing it wrong. Rotate by regenerating in partners.noon.com, which invalidates the old file immediately. SKUmargin encrypts credentials with AES-256-GCM before they touch the database and only decrypts them in memory for the outbound call; details are on the help page.

If you would rather not connect anything

Every report above is also available as a download in Seller Lab. The transaction view has a Download button on its own page under Payment and Fees; set the date range, wait for the export, and you have the same file the API returns. It works, and for a store doing a handful of orders a week it is enough. The API stops being optional at the point where you have more than a few SKUs and want the numbers to be current without someone remembering to fetch them.

Checklist before you press Test connection

  • Signed in to partners.noon.com with the account that owns the seller.
  • API user created under User and Access, then API Users, with finance, orders and catalog scopes.
  • JSON downloaded and saved somewhere that is backed up.
  • The tool shows your seller identity after the test, not somebody else's.
  • First settlement pull covers at least the last 30 days so fees on older orders are present.

Once that is done, the next question is what the numbers mean. Start with how to read your Noon settlement report, fee by fee, and if you want to see what an API-fed profit view looks like before connecting your own store, the live demo runs on a sample account.

See your real profit, per SKU, every day.

SKUmargin pulls your Noon orders, fees, and returns and shows the net profit each SKU is actually making.

  • Net profit per SKU after Noon commission, FBN/FBPI fees, returns, ads, and COGS.
  • Trends, monthly P&L, UAE/KSA/Egypt VAT report, low-margin email alerts.
  • Connect via Noon CSV upload or the Partner API. 30 days free, no card.
Start 30-day free trial