CDON Group enables merchants to upload products and manage orders across two Nordic marketplaces — CDON and Fyndiq. For customers we provide marketplaces offering easy access to a wide variety of products.
One API serves both. The endpoints, the article model, the order lifecycle and the authentication scheme are shared, so adding the second marketplace means pointing at a different base URL rather than writing a second integration. Where a capability exists on only one of the two, it is marked.
This documentation guides merchants through developing their technical integration. Request and response samples are available in the right-hand panel, with dropdown menus for different scenarios.
API overview
Our API is designed around REST principles, providing simple and predictable URLs to access and modify objects.
Server–client interaction
There are two roles: the client that initiates the interaction, and the server that replies. The server never initiates an interaction — its role is to process the request it receives and return an appropriate response. The merchant is the client; CDON Group is the server.
Resources
The API exposes resources. A resource is an addressable object reachable via a URL.
| Resource | Purpose | Availability |
|---|---|---|
| Article | Your catalogue. An article is one sellable unit with its own SKU — a specific colour and size, not the product family. | Both |
| Order | The order lifecycle, from retrieval through to fulfilment. | Both |
| Category | The category tree, per market and language. | Both |
| Status | Processing status of your article submissions, by batch or by SKU. | Both |
| Shipping configuration | Carrier services you offer, mapped to articles per market. | CDON only |
We continuously improve the API by adding endpoints to existing resources and making new resources available.
HTTP requests and methods
Resources are acted on using standard HTTP methods:
| Method | Action |
|---|---|
POST | Create |
GET | Read |
PUT / PATCH | Update |
DELETE | Delete |
HTTP status codes
The status code indicates success or failure. The response body carries the detail.
| Code | Meaning |
|---|---|
2xx | Success |
4xx | Client error |
5xx | Server error |
Authentication
All endpoints require Basic Authentication. Requests must include an HTTP Authorization header containing Basic followed by the Base64-encoded string merchantID:token:
Authorization: Basic {base64_encode(merchantID:token)}
Credentials are issued per marketplace and are not interchangeable — a CDON token will not authenticate against Fyndiq, and vice versa. You will need a separate set for each marketplace you sell on.
Base URLs
Every endpoint page has a Base URL selector above the code sample. Choose your marketplace and environment before copying anything — samples are generated from whatever is selected, and the default is CDON production.
| Marketplace | Environment | Base URL |
|---|---|---|
| CDON | Production | https://merchants-api.cdon.com/api |
| CDON | Sandbox | https://merchants-api.sandbox.cdon.com/api |
| Fyndiq | Production | https://merchants-api.fyndiq.se/api |
| Fyndiq | Sandbox | https://merchants-api.sandbox.fyndiq.se/api |
The base URL stops at /api. Version numbers belong to the endpoint path, not the base URL — for example {base}/v2/articles/bulk and {base}/v1/orders/.
Sandbox
Each sandbox is a self-contained environment in which merchants can prototype and test their integration. Sandbox credentials are provided on request.
When migrating from sandbox to production you need only change the base URL and swap in your production credentials. No code changes are required.
Request format
All request arguments must be passed as JSON, with Content-Type set to application/json.
Your API-calling systems must support TLS 1.1 or higher; we strongly recommend TLS 1.2. TLS 1.0 is not available on our servers.
Response format
Unless otherwise specified, all responses return the information you requested in JSON.
Rate limits
Requests are limited in two windows — a per-minute burst and a per-hour quota. Exceeding either returns 429 Too Many Requests with headers telling you which policy you hit and when the window resets. Requests rejected with a 429 still count toward both limits, so back off rather than retrying immediately. See Rate Limiting for the current figures and the recommended retry strategy.
Article endpoints and versions
Two generations of article endpoints are documented.
/v2/articles/bulk is the current interface and works on both marketplaces. It handles creates and updates in batches of up to 100, returns a batch_id immediately, and processes asynchronously — poll the Status endpoints to see how each article landed. New integrations should use it.
The /v1/articles/* endpoints are the original Fyndiq interface. The three read endpoints — list, retrieve by ID, retrieve by SKU — are generally available. The single-article write endpoints are deprecated and available on Fyndiq only; they are documented so existing Fyndiq integrations have a reference, but anything new, and anything that has to work on CDON, should use /v2/articles/bulk.
The order lifecycle
Each order contains a single SKU, with a quantity that may be greater than one. Note that price is the price for the whole quantity, not the unit price — price = unit price × quantity, and total_price = price. All transactions are handled in the customer's local currency.
You are expected to tell us how you handled each order:
| State | Meaning | Availability |
|---|---|---|
CREATED | New order, awaiting your action | Both |
ACCEPTED | Accepted; must be fulfilled and delivered within the agreed delivery time | Not generally available |
FULFILLED | Shipped. Terminal. | Both |
NOT_FULFILLED | Cancelled and refunded. Terminal. | Both |
Once an order reaches FULFILLED or NOT_FULFILLED, its state can no longer be changed. Mark an order fulfilled as soon as you have shipped it, and include tracking information where you have it.
Markets, currencies and languages
Both marketplaces use the same market codes. Which markets are open to you depends on your merchant agreement. If titles and descriptions aren't provided in the local language we will translate them.
| Market | Code | Currency | Language codes |
|---|---|---|---|
| Sweden | SE | SEK | sv-SE |
| Denmark | DK | DKK | da-DK |
| Finland | FI | EUR | fi-FI |
| Norway | NO | NOK | nb-NO |
Getting help
Feel free to use the Ask AI, found in the upper right, right here in the documentation. Otherwise you can reach merchant support at [email protected] or [email protected].