ShipWave Channels

Connecting Bol.com

Connect the #1 marketplace in the Netherlands and Belgium via OAuth2 client credentials.

About Bol.com

Bol.com is the dominant marketplace in the Netherlands and Belgium, with over 13 million active customers across both countries. It is consistently the most visited e-commerce site in the region. Listings are in Dutch, transactions are in EUR (VAT-inclusive), and the platform supports both Fulfillment by Bol and seller-fulfilled (FBR) workflows.

Before you start

From the Bol.com seller portal at partner.bol.com you need:
  • An active Bol partner account (Bol verifies your Chamber of Commerce / VAT registration first)
  • API credentials — navigate to Settings → APIGenerate credentials. You will get a Client ID and Client Secret. Copy the secret immediately; Bol will not show it again.
Unlike Allegro, there is no OAuth consent screen — you paste credentials directly into ShipWave.

Connecting your account

  1. Go to Admin → Marketplace → Channels and click New Channel.
  2. Select Bol.com as the platform.
  3. Choose the marketplace: NL (Netherlands) or BE (Belgium). If you sell on both, create two channels.
  4. Pick the Shopify store to use as the product source.
  5. Name the channel (e.g. “Bol.com NL”).
  6. Click Create Channel.
  7. Paste your Client ID and Client Secret.
  8. Click Save Credentials. ShipWave performs an OAuth2 client_credentials exchange against login.bol.com/token and verifies the channel reaches /retailer/orders successfully.
Access tokens are short-lived (10 minutes); ShipWave refreshes them on every API call as needed.

How orders flow in

Bol.com supports webhooks for some events but ShipWave defaults to polling the /retailer/orders endpoint every 5 minutes for new OPEN orders — this is more reliable than webhooks for FBR sellers. For each new order, ShipWave fetches order detail and imports it. Bol uses per-order-item ship and cancel calls (you ship line items independently), and many endpoints return a processStatusId rather than a synchronous result — ShipWave polls /shared/process-status/{id} with exponential backoff (capped at 10 retries, max 200ms cap per backoff step) until the status resolves. If you sign HMAC webhooks for instant order push, ShipWave validates the X-BOL-Signature header automatically.

Listings and inventory sync

Bol.com is strictly EAN-based: every offer matches an existing Bol catalog product via 13-digit EAN. You cannot create new catalog entries from the API — products must already exist on Bol (which is usually the case for branded SKUs). ShipWave skips variants without an EAN. Price and stock updates use PUT /retailer/offers/{offerId}/price and /stock. All endpoints are async — ShipWave waits on the processStatus before reporting success. For the broader listing workflow see Listing statuses.

EUR + VAT inclusive pricing

Bol.com prices are VAT-inclusive — the price the buyer sees on the listing already includes 21% Dutch/Belgian VAT (or 9% for reduced-rate items like books). ShipWave applies the VAT markup automatically based on your channel’s VAT-rate setting. Make sure your Bol seller account has VAT registration on file (required for NL/BE sellers shipping into the EU).

Common issues

“401 Unauthorized” – client secret regenerated in Bol partner portal. Update credentials in the channel.

“processStatus FAILED” after ship call – tracking carrier code is not recognised. Bol expects exact codes like DHL, POSTNL, DPD, BPOST_BE. Set the mapping under Channel settings → Carrier mapping.

“Offer rejected: EAN not found” – the EAN does not exist in Bol’s catalog. You will need to add the product through the Bol seller portal first — the API cannot create new catalog entries.

Inventory drift – Bol caches offer state for ~15 minutes. After a stock push, allow 15 minutes before checking the listing on the site.

FAQs

Do I need a Dutch or Belgian company to sell on Bol.com?
No, but you do need an EU VAT registration. Many UK sellers use Dutch tax representatives to qualify. Bol verifies your VAT and Chamber of Commerce (KvK) details before activating the partner account.
What is FBR vs LVB on Bol?
FBR (Fulfillment by Retailer) means you ship orders yourself — this is the default flow ShipWave handles. LVB (Logistiek via Bol) is Bol’s fulfilment service where they store and ship your stock; LVB orders come into ShipWave for visibility but you do not fulfil them.
Why does Bol use async processStatus instead of returning results directly?
Bol’s API decouples request acceptance from processing — useful at their scale. ShipWave hides the polling logic from you; you just see “success” or a clear error after the status resolves.
Can I sell digital products on Bol?
No. ShipWave’s Bol adapter only supports physical products. Digital and subscription items must be handled through Bol’s separate digital catalog flow.
How are returns handled?
Bol sends return notifications via the orders feed (status <code>RETURN_REGISTERED</code>). ShipWave imports them into the returns dashboard so you can issue refunds or accept the goods back in your warehouse.

More in ShipWave Channels