Introduction

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.

ResourcePurposeAvailability
ArticleYour catalogue. An article is one sellable unit with its own SKU — a specific colour and size, not the product family.Both
OrderThe order lifecycle, from retrieval through to fulfilment.Both
CategoryThe category tree, per market and language.Both
StatusProcessing status of your article submissions, by batch or by SKU.Both
Shipping configurationCarrier 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:

MethodAction
POSTCreate
GETRead
PUT / PATCHUpdate
DELETEDelete

HTTP status codes

The status code indicates success or failure. The response body carries the detail.

CodeMeaning
2xxSuccess
4xxClient error
5xxServer 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.

MarketplaceEnvironmentBase URL
CDONProductionhttps://merchants-api.cdon.com/api
CDONSandboxhttps://merchants-api.sandbox.cdon.com/api
FyndiqProductionhttps://merchants-api.fyndiq.se/api
FyndiqSandboxhttps://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:

StateMeaningAvailability
CREATEDNew order, awaiting your actionBoth
ACCEPTEDAccepted; must be fulfilled and delivered within the agreed delivery timeNot generally available
FULFILLEDShipped. Terminal.Both
NOT_FULFILLEDCancelled 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.

MarketCodeCurrencyLanguage codes
SwedenSESEKsv-SE
DenmarkDKDKKda-DK
FinlandFIEURfi-FI
NorwayNONOKnb-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].