Nordia Listing & order ops
Built on Etsy Open API v3

One order. Four calls. No polling.

Nordia keeps listings, inventory and orders in step for sellers who run an Etsy shop alongside other channels. Sellers connect their own shop with OAuth, choose what Nordia may touch, and can disconnect at any time.

Operated by Nordia Tools nordiatools.com Webhook-first, cached reads
Order pipeline receipt 3041882901
01 order.paidwebhook Etsy tells us. We don't poll for it.
02 getShopReceipttransactions_r 3 items · buyer note · ship-by date
03 updateListingInventorylistings_w Stock pushed back to the other channels
04 createReceiptShipmenttransactions_w Tracking number written to the receipt
05 shipping noticeoff Etsy Sent by the seller's own email provider, not by Etsy
3 calls · 1 webhook 0 polling loops

What it does

A working day for a shop that sells in more than one place

Nordia is used by print-on-demand and small-batch sellers who list the same catalogue on Etsy and elsewhere. The work is repetitive and easy to get wrong by hand, so we do it against the API instead.

Publish and edit listings in bulk

Sellers write one product record — title, tags, description, variations, images, shipping profile — and Nordia creates or updates the matching Etsy listing. Edits to a group of listings go out as one job with a per-listing result log.

Keep stock honest across channels

When a unit sells anywhere, the quantity on the Etsy listing is corrected within seconds. Sellers stop cancelling orders for things they no longer have.

Run fulfilment from one queue

New paid orders arrive in a single queue with the buyer's shipping address and personalisation notes. When the parcel ships, the tracking number is written back to the Etsy receipt so the buyer sees it in their Etsy account.

Show sellers what is actually selling

Listing views, favourites and sales are read on a schedule and turned into a plain view of which products earn their place in the shop and which do not.

Post-purchase email, on the seller's own terms

Order confirmations and shipping notices are sent through the seller's own email provider, from the seller's own domain, only to buyers who have not opted out. Etsy is never used as a sending channel and buyer addresses are never used for marketing lists.

An audit trail for every write

Every call Nordia makes on a seller's behalf is logged with a timestamp, the endpoint, the scope used and the result. Sellers can export the log; support can read it when something looks wrong.


How we connect

The seller is the one who grants access

Nordia holds no shop credentials. Each shop is reached through its own OAuth 2.0 token, granted by the shop owner and revocable by them at any time.

Step 01

Seller starts the connection

From their Nordia account the seller clicks Connect Etsy shop. We send them to etsy.com/oauth/connect with the scopes listed below and a PKCE challenge.

Step 02

Etsy asks for consent

The seller reviews the permission list on Etsy's own consent screen and approves or refuses. Nothing reaches us before they approve.

Step 03

We exchange the code

Etsy returns the authorisation code to our fixed callback at https://nordiatools.com/oauth/etsy/callback. We verify the state value, exchange the code with the PKCE verifier, and store the token encrypted at rest.

Step 04

Seller stays in control

Refresh tokens keep the connection alive without asking again. A seller can disconnect in Nordia, or revoke us from their Etsy account, and we delete the token and stop all calls for that shop.


Permissions

Every scope we ask for, and the feature that needs it

We request the narrowest set that makes the product work. If a feature is switched off for a shop, the calls behind it are never made.

Scope Why Nordia needs it What we never do with it
listings_r Read the shop's listings to show them in the catalogue view, detect drift from the seller's master record, and report performance. Read listings belonging to shops that have not connected.
listings_w Create and update listings and their inventory, images, variations and shipping profiles, from the seller's own product data. Publish anything the seller has not queued or approved.
listings_d Remove a listing when the seller deletes it in Nordia, so the two sides do not disagree. Delete anything automatically, in bulk cleanups, or without a confirmation step.
shops_r Read shop id, sections, shipping profiles and return policies so new listings are attached to the right ones. Read shop data for competitor research or resale.
transactions_r Read paid receipts to build the fulfilment queue: items, quantities, personalisation, ship-by date. Build buyer profiles, or retain order data after a shop disconnects (30-day deletion).
transactions_w Write the shipment record back to the receipt — carrier and tracking number — when the parcel leaves. Mark anything shipped that the seller or their fulfiller has not confirmed.
address_r Read the buyer's shipping address to print the label and pass it to the print partner who makes the item. Store addresses beyond the fulfilment window, or share them with anyone but the print partner for that order.
email_r Read the connecting seller's own account email, to match the Etsy shop to the right Nordia account and send them operational alerts. Treat it as a buyer address, or add it to any marketing list.
profile_r Read the seller's public profile so the connected shop is labelled correctly in the interface. Scrape profiles at large.

On buyer email addresses. The Etsy API has no endpoint for sending a message to a buyer, and we do not ask for one. Where a seller wants to send a shipping notice or a post-purchase email, Nordia uses the buyer address exposed on the receipt only for a transactional message about that order, sent through the seller's own email provider from the seller's own domain, with an unsubscribe link and no marketing use. Access to the buyer address field is requested from Etsy separately and is switched off for a shop until it is granted.


API usage

How we stay inside our quota

Rate limit discipline is a design constraint here, not an afterthought. The load per connected shop is bounded and predictable.

  • Webhooks over polling. Order events arrive by webhook. We do not run a receipt poll on a timer.
  • Nothing stale is ever shown. Listing content and images are refreshed at least every 6 hours and other shop data at least every 24 hours, matching the caching limits in Etsy's API Terms of Use. Cached copies exist to serve the seller, not to build a data set.
  • Every listing links back to Etsy. Wherever Nordia shows a listing or its images, the seller and anyone they share the view with can open that listing on Etsy in one click.
  • Refresh passes are paginated at the maximum page size and jittered so shops do not sync in lockstep.
  • Read-through cache on shop, section and shipping profile data, invalidated on our own writes.
  • Write batching. Bulk edits are queued and de-duplicated, so ten edits to one listing become one call.
  • Exponential backoff with jitter on 429 and 5xx, with a circuit breaker that pauses a shop's queue rather than hammering the API.
  • A per-shop and per-app budget enforced on our side, with alerting at 70% of quota so we ask for headroom before we need it.
Steady-state estimate

Per connected shop, per day

Content refresh (4× daily)~160 calls
Order handling~3 calls per order
Inventory corrections~25 calls
Listing edits~30 calls
Typical total~250–400 calls

We publish this figure because it is the number that decides whether our quota request is reasonable. It is measured, not aspirational, and we update it as the product changes.


Data and security

What we keep, where, and for how long

Tokens

OAuth access and refresh tokens are encrypted with AES-256 using keys held in a managed secrets store, never written to logs, and deleted the moment a shop disconnects.

Order and buyer data

Held only while the order is open and for 30 days after fulfilment, then deleted. Buyer addresses are shared with the print partner for that specific order and with no one else.

Transport and access

TLS 1.2 or better on every connection. Production access is limited to named staff with two-factor authentication, and every access is logged.

Deletion on request

A seller can ask us to erase everything we hold for their shop. We confirm within 5 business days and complete within 30, backups included.

No resale, ever

We do not sell, rent or share Etsy data with advertisers, data brokers or model training pipelines. Aggregate benchmarks, if published, are never traceable to a shop.

Incidents

If seller or buyer data is exposed we notify affected sellers and security@nordiatools.com is monitored for reports from anyone else.


Questions

The things people ask before connecting

Do I have to give Nordia my Etsy password?

No. The connection is OAuth 2.0 with PKCE. You sign in on Etsy, not here, and you approve a named list of permissions. We never see your credentials.

Can Nordia change my listings without me asking?

No. Writes only happen from a job you queued or a rule you switched on. Every write is in your log with the time, the endpoint and the result.

Will Nordia message my buyers on Etsy?

No, and the Etsy API offers no way to. Any post-purchase email goes out through your own email provider, from your own domain, about a specific order the buyer placed.

What happens when I disconnect?

All calls for your shop stop immediately, tokens are deleted, and the data we hold for you is erased on the schedule in our privacy policy — or straight away if you ask.

Is Nordia affiliated with Etsy?

No. Nordia is an independent tool built on the public Etsy Open API. Etsy does not sponsor or endorse it. Etsy is a trademark of Etsy, Inc.