Self-billing for everyone

From entering a timesheet to raising invoices and paying suppliers, we’ve made sure everyone in the supply chain could get paid through Engage and knew when, why and how much they could expect.


One of our missions at Engage is ‘Introduce trust and transparency in the recruitment supply chain and make sure everyone gets paid on time.’ For people outside of this industry that seems pretty obvious. But the industry is complex and there are a lot of moving parts. People need to work hard to earn trust. This impacts how and when people get paid dramatically. Especially for temp workers not getting paid on time could mean not having a roof above your head the following week.

Problems to solve

  • There can be up to five different stakeholders involved in making sure a temp worker is placed for a job. How do you make sure all of them have access to the data they need in order to keep processes moving and not block payments?
  • Some of these processes happen offline and are captured in file types sent across via email or discussed over a phone call
  • When processes are managed digitally different stakeholders could be using different software which may not communicate well with each other
  • Companies that are responsible for paying temp workers will sometimes only pay the worker once the invoice to their client has been paid.
  • If there is a hiccup within the process of getting someone’s work for a period authorised it slows down the entire process and people will either not be paid (on time) or need to be paid out of pocket which can have a major negative impact on cash flow. 

Timesheets to invoicing

Engage modelled self-billing agreements between recruitment agencies and their clients. This meant whenever a timesheet with the time worked by the worker for a specific period was approved, an invoice would automatically be issued to the client on behalf of the agency. In the past these timesheets would have, more often than not, be handled offline on paper or in a spreadsheet. We introduced a solution where both workers and recruitment consultants could enter timesheets. We saw a significant increase of timesheets being submitted on time, speeding up payment processes along the way.

Getting a timesheet submitted and approved
Submitting a timesheet

Divorcing expenses from timesheets

There was however an issue with the way we handled timesheets. If expenses were incurred during a timesheet period that needed to be reimbursed we captured those expenses on the same timesheet we captured the time worked. In order for clients to approve an expense item they need to see proof however, a receipt, for that expense. We saw that timesheets were being approved with expenses that had no receipts as proof. When the invoice would be handled by the finance department at the client they would go back to the agency and decline to pay that invoice because of lack of proof. This meant the agency didn’t get paid on time and the worker needed to be paid out of pocket.

Submitting an expense independent of a timesheet
Submitting an expense

We spoke to workers and agencies to understand what was needed to solve this issue. Clients elaborated that missing receipts for expenses were the primary reason invoices couldn’t be paid. This meant the timesheet itself could be paid if it weren’t for the faulty expense being on there. With this information we prototyped a solution where we separated the approval flow of timesheets from expenses. This meant workers could submit expenses independent from their time worked and clients could approve them independently as well.

During the process we reached out to users to validate if this solution would work for them. We gained some valuable input from those sessions (‘if expenses should be approved separately this means that could mean more work for me’) and added some additional features, like a daily digest email for all timesheets and expenses awaiting approval, that would help the workflow.

Viewing a submitted expense
Viewing an expense

After the feature was released we saw a dramatic decline in timesheets being rejected and invoices that couldn’t be paid.

Self billing for contractors and umbrella businesses

When we launched the new SaaS solution for agencies  - Read the case here ︎ -  we interviewed a large number of recruitment agency users. Amongst other things they identified that having all data for their contractors on a single software solution would fit their needs the most. This meant that they were looking for a way to not only manage timesheets and billing for their clients on the platform, but they also were keen to have a self-billing solution for their suppliers (e.g. contractors being paid through their own business or umbrella companies that supply temp workers).

We set out to achieve just that. We could leverage a lot from the work we had already done around self-billing for agencies. We talked to contractors to understand their needs for a self-bill solution. Contractors saw a lot of value in managing their timesheets and their invoices on a single platform. Their biggest concern was around getting the invoices out of the system for accounting purposes and making sure they could see which invoice were paid for a received payment.

Contractors keeping track of their received payments
Payments list view and detail page

When talking to agencies however we saw we couldn’t just replicate the existing behaviour we had around raising an invoice (timesheet approval == invoice generation). They were expecting to select which invoices they wanted to raise and also create a payment directly. They also mentioned that not all of their suppliers had a self-bill agreement in place.

Making agencies’ lives  easier

We introduced the feature of generating invoices manually from approved timesheets where they could raise invoices in a bulk action and de-select the timesheets they didn’t wish to invoice just yet. From here they could also directly choose to create a payment which meant it would speed up their workflow dramatically. Most small agencies work with accounting packages or other financing software, but have great trouble of getting the right data into them. They told us it was a very manual process which involved a mix of on- and offline tools to get to a payment. We connected a lot of the dots for agencies which meant they could spend more time in sourcing the right candidates and grow their business.

Not wanting to raise an invoice?

Now that we had the ability to raise invoices between agencies and their suppliers we wanted to solve another issue our users had identified. One that is present in a lot of similar timesheet solutions tools. What happens when a worker can’t work for a certain period? A timesheet still needs to be generated since it is part of their contract period. In the past, workers (or recruitment consultants on their behalf) would save or submit a so called ‘zero-value timesheet’ which is exactly the same as how it sounds. However, this raised concerns for clients who were approving. They weren’t always aware of a worker being away and in some cases would unknowingly approve a timesheet which would raise an invoice without an amount.

Saving a timesheet as ‘absent’

We introduced a way of identifying if the worker was away for a period. Workers now had the option to let agencies and clients know they were away for a period. This could also be done by the recruitment consultant on behalf of the worker and they could even schedule an absence in advance if it would be for multiple timesheet periods. Timesheets with this new status of ‘Absent’ would never result in an invoice since there was no need to approve and workers would not be reminded to submit a timesheet for a period when they were away.


In connecting our expertise from earlier development work and talking to users from every part of the supply chain we identified a solution that would help connect the different parts of the supply chain in a transparent and helpful way. We managed to speed up, or sometimes replace, workflows that were tedious and were costly from a time perspective. We also realised our solution wouldn’t cater to everyone. With that new knowledge we understood that we needed to focus on optimising the solution we had so that it could be the best it could be and not look at solving all the problems at once.