bol.com
The bol.com connector turns every shipped business order on a bol shop into a Peppol e-invoice and uploads the invoice PDF back onto the bol shipment. It exists because of a gap: since 1 January 2026 a Belgian seller owes every Belgian VAT-registered business buyer a structured e-invoice over Peppol, bol flags business orders and exposes the buyer's VAT or enterprise number โ and offers no way to issue the invoice. bol only asks the seller to upload a PDF per shipment, within 24 hours when the customer requests one.
The connector is a pull connector (connector_type bol): GoRoute holds the shop's
Retailer API credentials and reads orders, shipments and invoice requests every few
minutes. Nothing is installed on bol's side.
Availabilityโ
bol.com is switched on per organisation, and the connector is new (September 2026). Two checks before you plan work around it:
- Confirm it is offered to you. Open Connectors in GoRoute and look for the bol.com card. If
that card โ or the Connectors entry itself โ is not there, the connector is not switched on for
your organisation: ask us to switch it on. The same check from the API side is
POST /api/v1/connectorswith"connector_type": "bol"; an answer of400reading Unknown connector_type 'bol' means the service you reach does not offer this connector yet. - Run your first cycle against bol's demo environment. The demo environment box described
under Connect points the connector at bol's
retailer-demoAPI โ real credentials, fixed demo data, uploads accepted and discarded. Watch a cycle there before pointing the connector at a live shop and real buyers.
Who it is forโ
A seller registered in Belgium or the Netherlands, with that identifier registered
under Participants in GoRoute (the enterprise number under 0208 for Belgium, the KVK
number under 0106 for the Netherlands). A seller registered anywhere else is told so
and nothing is pulled.
Buyers are the shop's Belgian and Dutch business customers. A business buyer in another country is held with a reason (see below) rather than guessed at.
Connectโ
- In the bol seller dashboard open Settings โ Services โ API settings and create Retailer API credentials. bol shows a client id and a client secret once.
- In GoRoute open Connectors โ bol.com, paste the pair, state the VAT rate the
shop charges (bol gives prices including VAT and no rate โ 21 % is the standard rate
in both countries) and, if you like, the invoice number prefix (default
BOL-). - Press Connect. GoRoute proves the credentials against bol's API before saving them, encrypted. The credentials are never shown again.
There is no seller form: invoices issue under the organisation's own identifier and the saved company settings, exactly as the storefront apps do. Nothing is sent until that identifier is registered on the network โ the connector says so, and syncing resumes on its own once it is.
The demo environment box points the connector at bol's retailer-demo API instead
of the live shop: fixed sample orders, uploads accepted and discarded, real credentials
still required. Use it to watch the flow before connecting a live shop.
To change the VAT rate or the prefix later, disconnect and connect again. Disconnecting deletes the credentials and every register below.
What gets invoicedโ
| Order | What happens |
|---|---|
| Business order (the buyer gave a VAT or KVK/enterprise number), shipped | One Peppol invoice, then the PDF onto every shipment of the order |
| Business order, not yet shipped | Waits in a register and is invoiced once the last item has shipped โ a split order gets its invoice when the last shipment goes, and one PDF per shipment |
| Consumer order (no number given โ a company name alone does not count) | Nothing. Consumers are not e-invoiced |
| Cancelled order | Nothing |
An order is a business order because the buyer typed a number at checkout; bol has no separate flag. Each order becomes exactly one invoice, numbered prefix + bol order id, and a repeat of the same order is answered with the invoice already filed rather than a second one.
The invoice. Buyer name, address and numbers as bol gave them; the enterprise number
under 0208 for a Belgian buyer, the KVK number under 0106 (or the VAT number under
9944) for a Dutch buyer. One line per order item at the net price โ bol's price
divided by the stated VAT rate โ with cancelled quantities left out, bol discounts as
line allowances, the EAN as the item's GTIN and the offer reference as the seller's
item id. The buyer's own order reference (or the bol order id) as the buyer reference,
the shipment date as the delivery date, EUR, and a note that the order was paid
through bol.com.
The PDF. After the invoice is on the network, GoRoute renders its PDF and uploads it to each shipment with bol's own invoice upload. bol accepts PDF only, 2 MB at most, one per shipment, and settles the upload asynchronously; GoRoute reads the outcome back. An upload bol keeps refusing is tried six times and then reported on the connector page with bol's reason, so it can be uploaded by hand.
Invoice requests. Every cycle also reads the requests customers have opened in their bol account. A request for an order already invoiced gets the PDF on that shipment; a request for a business order the connector has not seen (placed before the shop was connected, say) is read and invoiced; a request from a consumer is counted and shown on the connector page โ those are for a person to answer in the bol seller dashboard.
Held orders and their reasonsโ
An order that cannot be invoiced is held โ parked on the connector with a reason, listed on the connector page and in held invoices โ and never blocks the orders behind it. Reasons you will see:
| Reason | What to do |
|---|---|
| โฆ cannot receive e-invoices yet. Belgium retired the Hermes SMP โฆ | The buyer has not appointed a Peppol provider. GoRoute asks the network again every quarter of an hour and sends as soon as they appear. If they will not join, invoice by hand and upload the PDF in the bol dashboard |
| โฆ gave 'X' as its VAT / enterprise number โฆ, which is not a Belgian enterprise number | The buyer mistyped the number. Ask them for the right one, or invoice by hand |
| โฆ's enterprise number โฆ is not valid: โฆ check digit | Same โ the number fails Belgium's mod-97 check, which Peppol enforces |
| โฆ is billed in DE. This connector issues e-invoices to Belgian and Dutch business buyers only | Invoice that order by hand |
| โฆ could not be processed because of an error on GoRoute's side | Ours. Retried automatically; nothing to do |
A held order is re-read from bol when it is retried, so a correction on bol's side is picked up without anyone pressing anything.
What the connector page showsโ
- Connected / on hold โ and, on hold, why: the seller's identifier is not registered yet, or the seller is not Belgian or Dutch.
- Orders waiting to ship โ the register of business orders seen and not yet shipped.
- Orders needing attention โ the held list, with reasons.
- One line for anything else a person must act on: bol could not be reached (the connector then backs off, from 30 seconds to ten minutes, instead of dialling every cycle), a PDF bol keeps refusing, or invoice requests from consumers.
Sync now runs a cycle immediately. Otherwise the shop is read every five minutes, well inside bol's rate limits (the order list allows 25 reads a minute; each cycle makes one, plus one detail read per new order).
Limits worth knowingโ
-
GoRoute is an unlisted integration partner, by bol's own definition. The seller creates the credentials in Seller Dashboard, names GoRoute as the third party and pastes them here; nothing is registered with bol. bol's listed-integrator programme (OAuth sign-in instead of pasted credentials, a place on the partner platform) is out of reach for now: its lowest label, Ambassador, requires five bol sellers connected for at least six months, offer and content management and single sign-on, and applications are read twice a year. Invoicing is one of bol's seven "specific services" (VAT invoice upload), so the connector counts towards a label once the seller numbers exist.
-
One VAT rate per shop. bol carries no rate, so every line is issued at the rate stated on the connector. A shop selling reduced-rate goods through bol needs a per-item rate bol does not provide โ tell us before connecting such a shop.
-
Totals may differ from bol by a cent. Net prices are derived from bol's VAT-inclusive prices and the network recomputes the totals; a rounding cent between the two is possible on a line with many units.
-
bol keeps three months of orders and removes the buyer's billing details after a month. An order that waits longer than that to ship, or is only requested after that, cannot be invoiced from bol's data.
-
Credit notes are not raised for returns or refunds through bol. Issue those in GoRoute directly.
-
The PDF uploaded to bol is GoRoute's English rendering of the invoice.
APIโ
The connector uses the shared lifecycle endpoints; the connect body is described under Connector API โ bol.com.
What was verified against bol's documentationโ
Written against the Retailer API v10 as bol publishes it (2026-09-24): the OpenAPI
document behind the ReDoc reference, the Orders and shipments and Customer invoices
functional pages, Authentication, Best practices, Conventions, Rate limits and
the published limit list, and the demo pages for orders and shipments. In particular:
client-credentials tokens live 299 seconds and must be reused; GET /retailer/orders
lists 50 orders a page, newest placement first, filtered by status and
fulfilment-method; billingDetails on the order carry company, vatNumber and
kvkNumber (the KVK number in the Netherlands, the enterprise number in Belgium) and no
business flag; prices include VAT with no rate; POST /retailer/shipments/invoices/{shipment-id}
takes one multipart invoice field, PDF, 2 MB, one per shipment, and answers 202 with a
process status; GET /retailer/shipments/invoices/requests?state=OPEN lists what
customers are waiting for.