Skip to content

Case study · Travel company

Invoices that post themselves to Sage

Services
Development
Sector
Travel industry
The Shock Creative lightning bolt logo mark in ink on brand green
  • ~15 hrs

    Manual data entry saved each month (estimated)

  • ~300

    Invoices synced to Sage automatically each month

  • 0

    Missing invoices since launch

The challenge

This project was delivered under a non-disclosure agreement, so we can’t name the client or show their systems.

Our client, a travel company, raises its invoices in an online invoicing platform, but its accounts live in Sage. Every invoice had to be keyed into Sage by hand: slow, repetitive work that left room for typos, missed invoices and figures that didn’t match between the two systems.

They asked us to connect the two so that invoices flow into Sage automatically, accurately and without anyone having to check them twice, with around 300 invoices a month going through it. It also had to fit into their existing Laravel website rather than becoming another system to look after.

What we did

We built an integration that reads invoices from the invoicing platform’s API and creates them in Sage through the Sage API, matching each one to the right customer, ledger account and VAT rate. We built it into the client’s existing Laravel application, so it runs alongside the rest of their site with nothing new to host.

  1. Mapping the data: Worked with the finance team to map customers, products, nominal codes and VAT rates between the two systems, so every invoice lands in Sage exactly as they would have entered it.
  2. Secure API connection: Connected to Sage with OAuth, storing and refreshing tokens securely so the sync keeps running without anyone logging in.
  3. Reliable syncing: Each invoice is tracked against its Sage record, so nothing is posted twice. Failed requests are retried and API rate limits are respected.
  4. Logging and alerts: Every sync is logged, and anything Sage rejects (a new customer, an unknown VAT code) is flagged to the team with a clear reason, rather than failing silently.

The result

Around 300 invoices a month now reach Sage without anyone typing them in, which we estimate saves the finance team about 15 hours of data entry every month. Invoices are processed faster, appearing in Sage soon after they are raised rather than waiting in a queue to be keyed in, and taking the manual step out has removed the typos and mismatches that came with it. Since launch, not a single invoice has gone missing between the two systems.