← The work// case study

Vlaamsch Broodhuys: Lightspeed connected to Twinfield for 19 bakeries, every night

A Twinfield-certified integration that books every store's sales into its own administration before the bakery opens, plus the dashboards that sit on top.

Vlaamsch Broodhuys runs 19 bakery stores, each its own company with its own Twinfield administration. When they moved to Lightspeed K-Series, no standard connector could book per store. I built a Twinfield-certified integration that books every store's sales, VAT, payment methods, tips and card fees at 06:00, then added a store dashboard and an operations dashboard on the same data.

Retail / Bakery chain

Lightspeed K-Series, Twinfield, Dyflexis, Google Places, Orbak, Python, Hetzner

19 stores booked into 19 Twinfield administrations, every night at 06:00

The problem

Vlaamsch Broodhuys is an artisan bakery chain with a central bakery in Vlaardingen and 19 stores across Amsterdam, Rotterdam, The Hague, Utrecht, Den Bosch, Eindhoven and more. Every store is its own B.V. with its own administration in Twinfield.

In the summer of 2026 they switched every store to the Lightspeed K-Series till. That's where it got stuck. The standard connectors either didn't support K-Series, or couldn't split bookings per location. Nineteen stores, nineteen administrations, and no tool that understood that.

Meanwhile, finance posted card fees by hand from Excel, and store managers had a different problem: the old store report disappeared with the old till system. As their project lead put it: a store manager could be running a week and a half under budget without knowing it.

What I built

1. Lightspeed to Twinfield, booked before the bakery opens

Lightspeed closes the business day at 05:30. At 06:00 my integration reads the day's financials for every store, and books one cash-book entry into that store's own Twinfield administration.

Each entry is split the way an accountant wants it: revenue per ledger account and VAT rate, and every payment method on its own line (card, cash, on account, delivery platforms). Tips are booked separately. Since October, so are the Lightspeed Payments card fees, per store per day. That used to be a manual Excel job for the controller.

The boring parts are what make it trustworthy:

Wolters Kluwer audited the integration and certified it in July 2026. First real booking on 10 August, fully automatic for every store since.

2. A store dashboard and a 07:00 email

Once the sales data flows, the next question is obvious: can store managers see it? I built a dashboard that combines Lightspeed sales, Dyflexis staff hours, the 2026 budget per store, last year's figures from their bakery ERP (Orbak), and Google reviews.

Store managers see revenue against budget, average spend, delivery platforms, revenue per labour hour and what sold. Directors see all stores side by side. Every morning at 07:00 each manager gets a personal email with their own store's numbers. Around 50 people use it.

One nice detail: managers write closing notes in the till at the end of the day, but the Lightspeed API doesn't expose them. Lightspeed does email an end-of-day PDF. So the dashboard has its own mail inbox, reads that PDF and pulls the notes out.

3. An operations dashboard for production and logistics

Behind the stores is a bakery that distributes 10,000 to 12,000 loaves every night with six vans. Route lists went from the ERP to route-planning software, got printed, got driver names written on in pen, and were scanned back in.

The operations dashboard now reads route lists straight from the PDF's text layer: 42 of 42 stops correct on the test day, where scanning read only 6 of 28 routes cleanly. Planned vs worked hours per department come from Dyflexis, complaints per department are tracked, and the operations team can now show that 2 complaints on 1,211 deliveries is 0.17%.

The operations team can change the dashboard themselves with Claude Code. The code lives in their own GitHub. I'd rather they don't need me for every tweak.

Inside the build

The accounting integration is the part nobody sees. These are the screens people do see: the dashboards store managers, directors and operations open every day, built on the same Lightspeed data. All figures, names and locations below are fictitious.

One store, against its budget

Store dashboard for one bakery store over one week: ten tiles with revenue excluding VAT, budget, receipts, worked hours, revenue per hour and delivery channels, a bar chart of daily revenue against last year, and a list of two signals.
Revenue against budget and last year, receipts and average spend, revenue per labour hour, and Uber, Thuisbezorgd and Too Good To Go, all for one store. Lightspeed, Dyflexis and Orbak in one view, with the signals that need a look listed right next to it.

All 19 stores side by side

Table of 19 bakery stores for one day, sorted by percentage against budget, with revenue, last year, receipts, average receipt, worked and planned hours, revenue per hour against the norm and opening times, under a one-line verdict naming the store furthest behind.
The old store report, rebuilt from live data and sortable on any column. A single line at the top tells the director which store is furthest behind budget, so you don't have to dig through the table to find it.

The 07:00 email

Mail client showing the daily 07:00 email: a total for five stores, a table per city with revenue, budget and year-on-year arrows, receipts, returns, revenue per hour against norm and hours, followed by flagged items and end-of-day notes.
Every manager gets yesterday's numbers for their own stores before the shop opens: budget, last year, revenue per hour against the norm, what stood out and the closing notes from the stores. One click and they're logged into the dashboard.

Route lists without the scanner

Operations dashboard screen with an upload area, a parsed route list of five delivery routes showing stops, driver, licence plate, planned and actual times and overrun, the stops of one route, a route overrun KPI card and complaints per department.
The route list comes in by email as a PDF and is read straight from its text layer, so every stop, time window and delivery instruction comes through. Logistics assigns the driver and van, and the clocked end time from Dyflexis shows how far each route ran over its plan.

Planned versus worked hours

Hours screen of the operations dashboard: four summary tiles, a table of planned and worked hours per department with finish time and headcount, a note on excluded hours, a bar chart per department and a weekly table.
Planned against worked hours per department, straight from Dyflexis, with when each department finished and a breakdown per week. Days without a plan, draft hours and unassigned hours are reported separately so they can't quietly distort the figure.

The result

What else you can connect around a till

A till is the heartbeat of a retail business. Once its data is flowing reliably, almost everything else can plug into the same stream:

The same pattern works with Lightspeed L-Series and X-Series, Square, Zettle, or any till with an API. It works for any business with several locations: franchise chains, hospitality groups, retail.

Can Lightspeed K-Series be connected to Twinfield?

Yes. Lightspeed's API exposes daily financials per location, and Twinfield accepts cash-book entries per administration. The hard part is splitting correctly per ledger account, VAT rate and payment method, and making sure a day is never booked twice.

Can every store book into its own Twinfield administration?

Yes. That's exactly what this integration does: each of the 19 stores books into its own administration, with one authorisation for all of them.

What does "Twinfield-certified" mean?

Wolters Kluwer audits integrations that write into Twinfield before they go live on production. This integration passed that audit in July 2026.

Is building your own integration more expensive than a standard connector?

Not necessarily. For 19 stores, my estimate over three years came to about 40% of the cost of a per-store connector subscription, and it does things a standard connector can't, like card fees per store and a dashboard on the same data.

What happens if a day doesn't balance?

It doesn't get booked. The integration refuses incomplete or unbalanced days, alerts me, and books it automatically on a later run once the day is correct.

Recognise your own operation in this?

Book a call
© 2026 QuikCode · software for better operations