Skip to content
FeaturesField modeComparatorSecurityFAQPricingDocumentation
Free trial14 daysRequest a demoLog in
FeaturesField modeComparatorSecurityFAQPricingDocumentationFree trial for 14 daysRequest a demoFrançaisالعربيةEspañolItaliano

Documentation

Tessaro user guide

How to manage a construction project from start to finish: from the quote to profitability, through purchasing, stock and time tracking - including in the field, without a network -, progress invoicing, payment reminders, the export for your accountant and client tracking. The last section is for the technical teams who install the app.

Contents
  1. Getting started
  2. Projects, work packages and photos
  3. Clients, prospects and quotes
  4. Purchasing, online consultation and quote comparison
  5. Supplier portal
  6. Stock
  7. Time tracking and QR poster
  8. Offline field mode
  9. Vehicles, drivers and fuel
  10. Progress claims, invoices and profitability
  11. Accounting export and external accountant
  12. Customer portal, progress report and sharing
  13. Administration and CSV import
  14. Subscription, plans and referral
  15. Security and two-factor authentication
  16. Technical installation

Contents

  1. Getting started
  2. Projects, work packages and photos
  3. Clients, prospects and quotes
  4. Purchasing, online consultation and quote comparison
  5. Supplier portal
  6. Stock
  7. Time tracking and QR poster
  8. Offline field mode
  9. Vehicles, drivers and fuel
  10. Progress claims, invoices and profitability
  11. Accounting export and external accountant
  12. Customer portal, progress report and sharing
  13. Administration and CSV import
  14. Subscription, plans and referral
  15. Security and two-factor authentication
  16. Technical installation

1. Getting started

Logging in

Open the Log in page, then enter your email address and password. For a new company, create your workspace from the Free trial page (14 days, no credit card required). To join a company that is already registered, your account is created by its administrator, who gives you an initial password.

  • Change this password as soon as you first log in, from your profile menu. A password has at least 8 characters, with both letters and digits.
  • After 5 incorrect passwords, the account is locked for 15 minutes. The administrator can unlock it by resetting the password.
  • Your session stays open as long as you use the app; “Log out” closes it immediately.

The workspace

The left-hand menu (menu button on a phone) groups the modules by area: Overview, Projects, Sales, Catalog, Purchasing, Stock, Teams, Resources, Finance and Administration. You only see the modules open to your role. A module that your plan does not include stays visible in the menu, with the name of the plan that includes it (see Subscription). Every list offers a search, a period filter where relevant, and a CSV export for authorised roles.

The app is available in five languages: French, Arabic, English, Spanish and Italian. The language is chosen when the account is created, and this choice is mandatory; it cannot be changed afterwards. Login, management screens, field mode, customer portal, pages opened by your clients and suppliers, PDFs and emails are all in your company’s language, for your whole team.

An empty workspace to start with

Your workspace starts with no data at all: no projects, no clients, no warehouses, no categories. You enter or import your own data, in your language.

Roles

Each user has a single role, which determines what they can view, create, edit, delete, approve and export.

RoleWhat it sees and does
AdministratorAll modules, with full rights. The only role that manages users and edits the company profile.
DirectorAll business modules with full rights; users and company profile read-only; audit log.
Purchasing managerSuppliers, purchase requests, quote comparison, purchase orders (full rights). Catalog and stock with write access. Projects and supplier invoices read-only.
Works managerProjects, tasks, site log and time tracking (full rights). Employees, teams, leave, equipment, subcontracting and stock with write access. Creates purchase requests. Clients, quotes, purchase orders and profitability read-only.
Site managerTasks and site log with write access; enters and approves time tracking; stock movements; creates purchase requests; requests leave. Projects, employees, teams, products and equipment read-only.
SalesProspects, clients, contacts and quotes (full rights). Catalog and projects read-only.
AccountantCustomer and supplier invoices, payments, profitability (full rights). Clients, suppliers, quotes, projects, purchase orders, time tracking and employees read-only.
EmployeeTheir own time tracking (clock-in and clock-out), their leave requests, and the list of projects and their site log, read-only.
Chartered accountant (external)Free account for the company’s external accountant, read-only: customer and supplier invoices, payments, progress claims, clients, suppliers, quotes and accounting export. No write access.

The full matrix, module by module, is shown in the app: Administration → Users → Roles and permissions.

The “Chartered accountant (external)” role is a free, read-only access for the firm that keeps your books: see Accounting export and external accountant.

2. Projects, work packages and photos

The project is the central object: purchases, stock movements, time entries, subcontracting contracts and invoices are all linked to it. Its record holds the client, the dates, the contract amount (excluding tax) and the planned cost budget - these two amounts are used to calculate profitability.

Project statuses

  • Preparation
  • Pending
  • In progress
  • Suspended
  • Completed
  • Handed over
  • Archived

Work packages and tasks

A project is split into work packages, each linked to a trade:

  • Structural work
  • Electrical
  • Plumbing
  • Joinery
  • Painting
  • Air conditioning
  • Tiling
  • Miscellaneous

Tasks describe the work to be done; their status goes from “To do” to “In progress” and then “Completed”. The project overview brings together progress, work packages, tasks, purchases and costs.

Site log

The site manager or the works supervisor records how the day went. Every role with access to the project can read it.

Site photos

The “Photos” tab of the project record gathers the photos taken by phone, from that tab or from field mode. They are resized before upload; each one can be given an area (floor, work package…) and a caption. Tick “Visible to the customer” for a photo to appear on the client’s tracking portal; the others remain internal.

3. Clients, prospects and quotes

Prospects and clients

A prospect moves through the sales pipeline:

  • New
  • Contacted
  • Visit
  • Quotes
  • Negotiation
  • Won
  • Lost

When one of their quotes is converted into a project, the prospect automatically becomes a client, at the “Won” stage.

Writing a quote

  1. In Sales → Quotes, create a quote and choose the client or prospect. The number (DEV-year-number) is assigned automatically.
  2. Add the lines: description, unit, quantity, unit price, discount in % and VAT rate. You can start from a catalog product, or click “Add work item” to reuse a service from your library.
  3. The totals excluding VAT, VAT and including VAT are calculated by the app; VAT applies to the amount net of discount.

Work items and the standard work item library

A work item is a service you price often: code, description, unit, selling price and VAT rate. Work items are managed in Catalog → Work items.

  • In a quote, “Add work item” opens a search by code or description among your active work items. The added line takes the work item’s description, unit, selling price and VAT, with a quantity of 1 for you to adjust.
  • As long as you have no work items, the Work items screen shows the “Load a library of standard work items” card: the “Load the library” button adds 44 common residential construction work items, grouped by trade.
  • This library provides descriptions and units, not prices: they are created at 0 and are yours to fill in. It can only be loaded into an empty work item list.
  • Structural work
  • Masonry
  • Waterproofing
  • Electrical
  • Sanitary plumbing
  • Tiling and finishes
  • Joinery
  • Painting

Quote templates

  • Save: on a quote that has at least one line, “Save as template” copies its lines (descriptions, quantities, prices, discounts, VAT) under the name of your choice. The client, dates and totals are not copied.
  • Reuse: in the quote list, “From a template” asks for the template and the client, then creates a draft quote dated today with the template’s lines and prices. Everything can still be edited before sending.
  • Manage: the “Templates” button lets you view a template’s lines, rename it or delete it. Deleting a template does not change the quotes already created from it.
  • Two templates cannot have the same name, and a company can keep at most 100 templates. A line linked to a product removed from the catalog is kept as free text.

Quote statuses

  • Draft
  • Sent
  • Accepted
  • Declined
  • Expired
  • Converted to project
  • Only a “Draft” quote can be edited. Once “Sent”, it can go back to draft for correction, or move to “Accepted”, “Declined” or “Expired”.
  • “Duplicate” creates a new draft from an existing quote - handy for a variant.

Online acceptance by the client

Your client can accept or decline a quote from a private link, without creating an account.

  1. Set the quote to “Sent”. On its record, open “Acceptance link”, then click “Create acceptance link”. This button is reserved for roles that can edit quotes.
  2. Copy the link, or send it by WhatsApp or email from the dialog. The link is only shown at this moment: if it is lost, use “Regenerate link”.
  3. The client opens the page, in your company’s language: quote number, validity date, line details, totals, your notes and terms, and a button to download the PDF.
  4. To accept, they enter their full name, tick “I have read and accept this quote”, then click “I accept this quote”. To decline, they click “I refuse” and can give a reason (500 characters at most).

The quote then moves to “Accepted” or “Declined”, and the quote’s author is notified by email. The quote record shows what was recorded: the name entered by the client, the date and time of their answer and their IP address - or the reason for declining. The answer is also written to the audit log. The client can no longer change it from their page.

The link stops working in the following cases:

  • at the end of the quote’s validity day (“Valid until”); if the quote has no upcoming validity date, 30 days after the link was created;
  • as soon as you click “Regenerate link” (the old link is replaced) or “Deactivate link”;
  • if the quote goes back to draft or is deleted;
  • if you settle the quote yourself (accepted, declined, expired): the page then states that the quote is no longer open for online acceptance.

Online acceptance records the client’s agreement with the name they entered, the date and their IP address. It is not an electronic signature.

Converting a quote into a project

On a “Accepted” quote, the “Convert to project” action creates the project (status “Preparation”) with the quote’s total excluding VAT as the contract amount. If the quote was already linked to a project, that project is used and its contract amount is only filled in if it was empty. The quote then moves to “Converted to project” and can no longer be deleted. This action requires the “validate” right on quotes.

Quote PDF

From the quote record, “View PDF” opens the document and “Download” saves it: your company’s logo and contact details, lines, totals, amount in words and footer. “Share” creates a link to this PDF to send by WhatsApp or email (see Document sharing). The logo and footer are set in Administration → Company.

4. Purchasing, online supplier consultation and quote comparison

A purchase always follows the same path, from expressing the need to receiving the goods:

  1. Purchase requestThe project lists the products and quantities it needs. The request (DA-year-number) can be edited as long as it is “Draft”.
  2. ApprovalOnce “Submitted” (at least one line), a manager with the “validate” right moves it to “Approved” or “Rejected”. The author of a request cannot approve it themselves: another approver must do so. The only exception is a company where they are the only active user able to approve: the approval is then accepted and noted in the request.
  3. Supplier offersConsult your suppliers online (see below) or enter yourself, for each supplier, the unit price and discount of each line, the delivery charges and the delivery lead time. A line can be marked as not available. As soon as the first offer arrives, the request moves to “Out for quotation”.
  4. ComparisonThe table cross-references the request lines with the offers; see the details below.
  5. Purchase ordersChoose a single supplier (their offer must cover every line) or the best combination: one purchase order (BC-year-number) is generated per selected supplier and the request moves to “Ordered”.
  6. ReceiptOn delivery, enter the quantities received and the destination warehouse. A goods receipt is created and that warehouse’s stock increases.

Online supplier consultation

  1. On the purchase request, click “Request quotes from suppliers” and tick the ones to consult. Each supplier must have an email address on their record.
  2. Each one receives a personal link by email, valid for 14 days. They do not need to create an account.
  3. On their page, they enter their unit prices excluding tax, their discount, delivery charges, delivery lead time, payment terms and warranty; they can tick “Not available” on a line, and correct their offer until the order is placed.
  4. Their offer appears in the purchase request and in the comparison; you are alerted by a notification.

The page opened by the supplier is in your company’s language. Their prices are visible only to your company.

Reading the comparison

All compared amounts are excluding tax and net of discount.

  • Best price per line: the cheapest offer for each line is highlighted.
  • Total per supplier: lines offered + delivery, with incomplete offers flagged.
  • Best single supplier: the cheapest complete offer, delivery included.
  • Best combination: the split between suppliers that costs the least, including the delivery charges of each selected supplier. At equal cost, the app prefers the fewest suppliers, then the best rated.
  • Savings: in the heading, the difference between the best combination and the best single supplier (amount and percentage of its total) - this is the real saving. The difference from the most expensive complete offer is shown in small print.

The comparison suggests, you decide: a shorter lead time or a trusted supplier can justify another choice. If no offer covers a line, the app says so and does not generate an incomplete order.

Supplier offer statuses:

  • Requested
  • Received
  • Selected
  • Rejected

Purchase order statuses

  • Draft
  • Sent
  • Partially received
  • Received
  • Cancelled
  • An order can be received when it is “Sent” or “Partially received”. It moves to “Received” when everything has been delivered.
  • The quantity received cannot exceed the quantity still to be delivered on the line.
  • An order can no longer be cancelled once a receipt has been recorded.
  • “Send to supplier” sends the order by email. An order placed by phone (or otherwise) is recorded with “Mark as sent”: choose the channel, and the order moves to “Sent” with today’s date, without an email.
  • The purchase order PDF has a “Delivery” box: project, delivery address (the warehouse chosen on the order, otherwise the project address), requested date and on-site contact. The lines show the product reference.

5. Supplier portal

You can open an online space in their own name for each of your suppliers: they keep their catalogue there, answer your price requests and confirm your purchase orders. It is a feature included in the Pro and Entreprise plans.

On the company side

  1. In Purchasing → Suppliers, enter the supplier’s email address, then open “Supplier portal” on their row and choose “Create supplier access”.
  2. The supplier receives an email with a link, valid for 7 days, to choose their password. Their login is this email address; an address can only be used for one account.
  3. The supplier’s row shows the status of the access: invitation sent, active or blocked. You can resend the invitation, send a password reset link, block the access (the supplier is logged out immediately) or unblock it. Deactivating or deleting the supplier also closes their access.
  4. “Supplier catalogue”, on the same row, shows their items. “Add to my products” turns them into products in your catalog, with a purchase price of 0 that you fill in afterwards; a product that already exists (same reference or same description) is not created again.
  5. When you move a purchase order from “draft” to “sent”, the supplier receives an email with the link to the PDF, the project and the delivery location. “Resend to supplier” sends this email again. Their confirmation and delivery date appear on the purchase order, and you are alerted by a notification.
  • What the supplier sees: their catalogue, the price requests you have sent them, their own purchase orders (never your drafts) with the project and delivery address, and their contact details.
  • What they do not see: everything else - your other suppliers and their prices, your clients, your projects, your stock, your invoices.
  • A supplier account does not count towards your plan’s user limit and does not appear in Administration → Users.

On the supplier side

  • My catalogue: the items sold, grouped by category, with reference, unit and description - no prices or stock. An item can be hidden without being deleted.
  • Import: a PDF or Excel file (5 MB at most) is read automatically. A preview is shown; the supplier corrects the descriptions, completes the categories, unticks what they do not want, then imports. Nothing is saved before this confirmation, and items already in the catalogue are skipped. A scanned PDF (an image) cannot be read.
  • Price requests: the same form as the consultation link received by email. An offer submitted from the portal can no longer be changed there.
  • Purchase orders: lines, total, PDF, delivery location with a “View on map” link, and “Confirm the order” with an optional delivery date and message.
  • My account: contact name, phone, address, city and password. The company name, tax ID and email address remain managed by your company.

Lost password: “Forgot your password?”, on the login page, sends a link valid for 1 hour. This link is available for every account in the app.

6. Stock

Warehouses

Stock is kept per product and per location. A location can be:

  • Central warehouse
  • Project
  • Vehicle
  • Store

Movement types

MovementEffect on stock
Stock inAdds the quantity to the warehouse. Order receipts create these entries automatically.
Stock outRemoves the quantity from the warehouse.
TransferRemoves from the source warehouse and adds to the destination warehouse, which must be different.
ReturnPuts back into stock a quantity returned from the project.
Site consumptionRemoves from the warehouse what was consumed on a project.
Inventory adjustmentCorrects stock after a stocktake: the quantity entered is the difference, positive or negative.

A movement that would make stock negative is refused, with the available quantity shown. Every movement is kept in the history.

Each project automatically gets its own “site” location when it is created: an order can be delivered straight to it.

Valuation

Stock is valued at the weighted average unit cost (WAC) of each warehouse, not at the catalog price. An order receipt comes in at the order’s purchase price, net of discount, with the order’s delivery charges spread in proportion to the value of the lines; the warehouse’s WAC is then recalculated. Issues, project consumption and transfers are costed at the WAC of the source warehouse.

Alerts

  • Out of stock: the quantity in stock is zero.
  • Low stock: the quantity is less than or equal to the minimum stock set on the product.

7. Time tracking and QR poster

Daily sheet

In Teams → Time tracking, choose the date, then filter by project or by team. The sheet lists the employees concerned; for each one, enter the status and, if present, the clock-in and clock-out times.

  • Present
  • Absent
  • Late
  • Leave
  • Business trip
  • Hours are calculated by the app from the times: a 60-minute break is deducted from days longer than 6 hours, and time beyond 8 hours counts as overtime.
  • A clock-out earlier than the clock-in is treated as a night shift.
  • An employee whose account is linked to their record can clock in and out themselves from “My time tracking”; the time recorded is the server’s time.
  • To link an account to a record: Administration → Users, “Edit”, field “Employee record (for time tracking)”. A record can only be linked to one account; the user list shows the linked record under each name.

Approval

The site manager or the works supervisor approves a day’s time entries, for one project or for all. An approved line can no longer be changed by a role without the “validate” right, nor by the employee themselves.

Time tracking QR poster

On a project record, “Team” tab, the “Time tracking QR code” button opens a poster to print: project name, QR code and instructions in your company’s language, each repeated in Arabic. The employee scans the code with their phone camera, logs in if asked, then clocks in or out on this project. Time tracking remains reserved for accounts linked to an employee record. Without a network, the same QR code opens field mode with this project already selected, provided field mode has already been opened on that phone.

Monthly summary

The summary gives, for each employee and for the chosen month, the number of days per status, regular hours, overtime and the corresponding labour cost. It is the basis for preparing payroll and feeds project profitability.

8. Offline field mode

Field mode (menu Projects → Field mode) is a screen designed for phones: it brings together personal time tracking, site photos and recording a fuel fill-up. Time tracking and photos remain usable without a network. It is in your company’s language, like the rest of the app.

What works without a network

  • Clocking in and out. Online, the time recorded is the server’s time, in the company’s time zone (Administration → Company; Tunis by default). Offline, it is the phone’s time: the entry is marked “Entered offline” and must be approved by the site manager.
  • Taking site photos. Choose the project first; photos are resized on the phone and stay on the device until they are uploaded.

What needs a connection

The “Refuelling” card only saves online: a fill-up is not queued. Without a network, note down the litres, amount and meter reading, then enter them once you are back online. See Vehicles, drivers and fuel.

The queue

Everything entered without a network appears in the “Queue” card. It is sent when the network comes back while the page is open, or the next time it is opened; the “Sync now” button triggers it manually. Nothing is sent in the background while the app is closed.

Good to know: open field mode once with a network connection on each phone; do not clear the browser data or log out while the queue is not empty, or it would be lost. Everything else in the app - lists, quotes, purchasing, stock, dashboards - needs a connection.

Installing the app on a phone

Tessaro is an installable web app: from the phone browser’s menu, choose “Add to Home Screen” (or “Install app”). There is no app to download from an app store.

9. Vehicles, drivers and fuel

Vehicles are managed in Resources → Equipment & machinery, along with the rest of the equipment: there is no separate vehicle list. The screen has three tabs: “Equipment & machinery”, “Assignments” and “Fuel”.

Vehicle or machine record

In addition to the code, name, type and status, an equipment record holds:

  • Vehicle: “Registration”, “Usual driver” (an employee) and “Daily cost charged to the project”, in DT per day of assignment (0 = nothing is charged).
  • Administrative due dates: three dates - “Insurance”, “Roadworthiness test” and “Road tax”.

The daily cost is only shown to roles that view profitability, a feature included in the Pro and Entreprise plans. In the list, a due date 30 days away or less is flagged under the machine’s name (“expires in 12 days”, “expired 3 days ago”).

Drivers

A driver is an employee: there is no separate record. Their record, in Teams → Employees, has a “Driving licence” section, with “Licence no.” and “Licence expiry”. A licence that expires in 30 days or less is flagged in the employee list.

Assigning a machine to a project

  1. In the “Assignments” tab, create an assignment: equipment, project, start date and, if you know it, end date. Leave the end date empty while the machine stays on the project.
  2. The driver is optional: if left empty, the machine’s usual driver is used.
  3. From the equipment list, the “Assignments of this machine” icon opens its assignments.
  • A machine cannot have two assignments with overlapping periods: the second one is refused, with the name of the project and the conflicting dates.
  • While an assignment covers today’s date, the machine moves to “Assigned” status on that project; a machine that is “Under maintenance” or “Out of service” keeps its status.
  • The machine on an assignment cannot be changed: end the assignment and create a new one.

Cost of an assignment = days elapsed × daily costDays counted from the start to the end of the assignment, or to today if it is ongoing, both ends included. Future days do not count.

The daily cost is copied from the machine’s record when the assignment is created, then frozen: changing the machine’s rate later does not change the cost already charged to the project.

Fuel fill-ups

A fill-up can be recorded in two ways:

  • At the office, in the “Fuel” tab: date, equipment, project, “Filled up by”, litres, amount in DT and, if you record it, the meter reading (km or hours).
  • In the field, in Projects → Field mode, “Refuelling” card: vehicle or machine, litres, amount and meter reading, then “Save refuelling”. The fill-up is linked to the project chosen at the top of the page or, failing that, to the one of your time entry for the day. This card needs a connection.
  • The field mode card offers the motorised machines (vehicle, truck, concrete mixer, crane, excavator, aerial work platform) that are not out of service. It is shown to roles that can create in “Equipment & machinery”.
  • The date of a fill-up cannot be in the future.
  • A meter reading updates the machine’s meter if it is higher: the meter never goes backwards.
  • The project is optional; without a project, the fill-up is not charged to any project.

Effect on the project cost

The cost of assignments and the amount of fill-ups linked to a project are added to its “Equipment” cost line, and therefore to its actual cost and profitability. On the project record, the “Machines” tab lists the assigned machines, their dates and their driver, and shows the total fuel.

Due date reminders

A daily check monitors the insurance, roadworthiness test and road tax of each machine, as well as the driving licence of each active employee.

  • Three reminders per due date: 30 days before, 7 days before, then on the day itself. A due date entered late only triggers the reminder for that moment.
  • Administrators and directors receive a single email grouping all of the day’s due dates; a notification also appears in the app.
  • Due dates of a “Out of service” machine are not reminded.
  • Renew the date on the record to restart the reminder cycle.

10. Progress claims, invoices and profitability

The Finance module covers progress claims, customer invoices (deposit, progress, progress claim, final account, credit note), supplier invoices and payments - both incoming and outgoing. Profitability, on the other hand, is not entered: it is calculated from what has been recorded on the project.

Progress claims

  1. In Finance → Progress claims, create a progress claim for a project. It takes the project’s work packages and their contract amounts; its number (SIT-year-number) is assigned automatically.
  2. Enter the cumulative progress of each work package. The app calculates the cumulative work, deducts the work from previous claims and obtains the work for the period.
  3. The summary adds VAT, then deducts the retention and the deposit: it shows the net amount payable. Your company’s stamp duty and withholding tax appear there when they are set (see below).
  4. While it is a draft, the progress claim can be edited or deleted. “Approve and invoice” locks it and creates the corresponding customer invoice, with its lines and PDF.

To understand the calculation with a worked example, read our guides: the progress claim (in French) and retention (in French).

Stamp duty, withholding tax and VAT by rate

These options apply to customer invoices. They are optional: at 0, nothing changes on your invoices.

  • Default values: in Administration → Company, the “Stamp duty per invoice (DT)” and “Default withholding tax (%)” fields set what is proposed on each new customer invoice, including one created from a progress claim.
  • Invoices already created: when you change one of these two values, a box “Also apply to existing unpaid client invoices” appears, ticked. On saving, the net amount payable of drafts and of validated or partially paid invoices is recalculated; paid or cancelled invoices and credit notes do not change. Untick it to apply the new value only to future invoices.
  • Supplier invoices: in Finance → Supplier invoices, each row has the same “view” and “download” icons as customer invoices. The PDF is a summary sheet (supplier, number, amounts, balance due); the supplier’s original invoice is authoritative.
  • Invoice by invoice: the invoice’s “Stamp duty (DT)” and “Withholding tax (%)” fields can be edited as long as it is a draft.
  • VAT by rate: the invoice PDF details, for each rate, the base excluding VAT and the VAT. On screen, this breakdown appears as soon as the lines carry several rates. The VAT for a rate is the sum of the VAT of its lines.

Net payable = total incl. VAT + stamp duty − retention − deposit − withholding taxTotal incl. VAT = total excl. VAT + VAT. Withholding tax = rate entered × total incl. VAT, rounded to the millime. Balance due = net payable − amount collected.

Stamp duty is a fixed amount added after VAT: it is not part of the total including VAT, nor of the VAT base, nor of the withholding tax base.

Tessaro does not set any legal rate or amount: the stamp duty and withholding rate are the ones your company enters. Have these values, and the calculation conventions above, confirmed by your accountant.

Chasing an unpaid invoice

On a validated or partially paid customer invoice with a balance due, the “Send reminder” button opens the reminder dialog. It does not appear on a draft, a paid or cancelled invoice or a credit note, and it is reserved for roles that can edit customer invoices.

  • The dialog proposes a message for you to review and correct. It contains a link to the invoice PDF, created when it is sent and valid for 30 days.
  • “Send by email”: the email goes to the address on the client’s record, in your company’s name. The client replies to your company’s email address or, if it is not set, to yours.
  • “Open WhatsApp”: the conversation with the client opens with the message pre-filled; you just have to send it. The app cannot tell whether the message was sent: the history notes “WhatsApp opened”.
  • A channel is unavailable if the client’s record has no email address, or no usable phone number: the dialog says so.
  • Only one reminder email per invoice per hour, automatic reminders included.
  • The dialog keeps the invoice’s reminder history: date, channel, recipient and author.

Automatic reminders (optional)

Automatic reminders are disabled by default, because the emails go to your clients. The administrator enables them in Administration → Company, “Automatic reminders for unpaid invoices” card, with the “Automatically send my clients email reminders” switch. Your company’s email address must be set: your clients reply to it.

  • Invoices concerned: validated or partially paid, excluding credit notes, with a due date that has passed, a balance due and a client who has an email address. An invoice without a due date is never chased.
  • Steps: numbers of days overdue after the due date, 7, 15, 30 by default. You choose from 1 to 5 steps, between 1 and 120 days.
  • The check runs once a day. Each step is sent only once; if several steps have already passed, only the highest is sent and the lower steps will no longer be sent.
  • No automatic email is sent for an invoice chased by email less than 2 days ago, manually or automatically: the step is postponed to the next check.
  • At most 50 emails per company per day; the rest are sent on the following days.
  • The email states the invoice number, its due date, the amount outstanding and a link to the PDF. A summary appears in your notifications after each send.
  • If you push back the due date of an invoice that has already been chased, the steps already sent are not sent again.

Actual cost of a project

Actual cost = purchases received + labour tracked + subcontracting + equipmentAll amounts are excluding tax.

  • Purchases received: value of the quantities actually received on the project’s purchase orders, including the order’s delivery charges (in proportion to what is received) - an order not yet delivered does not weigh on the cost yet. Added to this is the stock consumed on the project, costed at the warehouse’s weighted average cost, except for the quantities already delivered by the project’s orders: the same purchase is never counted twice.
  • Labour tracked: hours tracked on the project × the employee’s hourly cost; overtime is marked up by 25%.
  • Subcontracting: amount of each contract × its percentage of progress.
  • Equipment: machine assignments (days elapsed × daily cost), fuel linked to the project and maintenance of machines currently assigned to the project. See Vehicles, drivers and fuel.

Margin and variances

IndicatorCalculation
MarginContract amount − actual cost
Margin rateMargin ÷ contract amount
Budget varianceActual cost − budget; positive = overrun
Budget consumedActual cost ÷ budget
Left to spendBudget − actual cost (never negative)
Left to invoiceContract amount − invoiced excl. tax
Left to collectInvoiced − collected

For these figures to be accurate: enter the project’s contract amount and budget and each employee’s hourly cost, receive orders as they are delivered, and keep the progress of subcontracting contracts up to date.

Budget overrun alerts

When the actual cost of an active project reaches 80% and then 100% of its budget, administrators and directors are alerted by email, and users who view profitability by a notification.

  • The check runs once a day, on projects with status “Preparation”, “Pending”, “In progress”, “Suspended” that have a budget entered. A project without a budget is ignored.
  • Each threshold is reported only once per project, even if consumption goes down and then up again. If 100% is reached straight away, only the 100% alert is sent.
  • The alert covers the whole project, not each work package: expenses are linked to the project, not to its work packages.
  • Alerts are enabled by default. The administrator turns them off in Administration → Company, “Budget overrun alerts” switch.

11. Accounting export and external accountant

Exporting the journals for a period

  1. Open Finance → Accounting export.
  2. Choose the period: “This month”, “Last month”, “This quarter”, “Last quarter”, “This year”, or your own dates (two years at most).
  3. The screen shows what the files will contain: number of invoices, totals, VAT collected by rate, and the number of drafts and cancelled invoices left out.
  4. Click “Download CSV” under “Sales journal” or under “Purchases journal”.
FileColumns
Sales journalOne row per customer invoice: Date, Number, Type, Client, Client tax ID, Project; for each VAT rate in the period, Net amount and VAT; Total excl. VAT, Total VAT, Total incl. VAT, Stamp duty, Retention, Deposit deducted, Withholding tax, Net payable, Paid, Balance due, Status.
Purchases journalOne row per supplier invoice: Date, Internal number, Supplier invoice number, Supplier, Supplier tax ID, Project, Total excl. VAT, Total VAT, Total incl. VAT, Paid, Balance due, Status.
  • Invoices are selected by their date. Only validated, partially paid or paid invoices are included; drafts and cancelled invoices are excluded.
  • In the sales journal, a credit note is shown as a negative amount. If an invoice’s totals differ from its lines, the difference appears in two “unallocated” columns, so that the sum of the columns matches the total.
  • In the purchases journal, VAT is not broken down by rate: supplier invoices are entered by their totals.
  • Each file ends with a “TOTAL” row.
  • Format: UTF-8 encoded CSV, semicolon separator, decimal comma, amounts with 3 decimals, dates in dd/mm/yyyy format. It opens directly in Excel.
  • Above 10,000 invoices in the period, the app asks you to shorten it and export in several goes.

These files are lists of invoices, not accounting entries: no account numbers appear in them; posting remains your accountant’s job. The accounting export is a feature included in the Pro and Entreprise plans.

Giving your accountant access

In Administration → Users, create an account with the “Chartered accountant (external)” role.

  • What they see, read-only: customer and supplier invoices, payments, progress claims, clients, suppliers, quotes and accounting export - within the limits of what your plan includes. They can download both journals.
  • What they do not see: the dashboard, projects, stock, teams, users. They cannot create, edit, approve or delete anything.
  • Free account: it does not count towards your plan’s user limit. A company can have at most 2 active accounts with this role at the same time.
  • An account belongs to a single company: a firm that looks after several companies uses a different email address for each one.

12. Customer portal, progress report and sharing

Customer tracking portal

  1. On the project record, open “Customer portal”, then “Activate and get the link”.
  2. Send this private link to your client, by WhatsApp or email, or copy it. They do not need to create an account.
  3. “Regenerate link” replaces the link (the old one stops working); “Deactivate portal” closes it.

The portal is in your company’s language. There, the client sees:

  • the project’s status, its dates, overall progress and the progress of each work package;
  • the photos marked “Visible to the customer”;
  • their validated invoices, downloadable as PDF, with what has been paid and what remains to be paid.

They see no budgets, costs or margins.

Progress report for the client

On the project record, “Progress report” produces a PDF to hand to your client.

  1. Choose the period (the last seven days are proposed).
  2. Write, if you wish, “Work done” and “Next steps” (1,500 characters each at most).
  3. Turn “Include site photos” on or off, then click “Download”.
  • What it contains: your company’s header with its logo, the project and the client, the period, overall progress and that of each work package, your two texts, and the photos marked “Visible to the customer” taken during the period - the 8 most recent at most.
  • What it never contains: budget, cost, margin, purchases, time tracking. It shows nothing more than the customer portal.
  • The report is not stored online. Once downloaded, “WhatsApp message” and “Email message” prepare a message to which you attach the PDF; on a phone that supports it, “Share the PDF” sends the file directly.
  • It requires the right to edit projects, and a plan that includes the customer portal: it is a feature included in the Pro and Entreprise plans.

Document sharing

On a quote, an invoice or a purchase order, “Share” creates a public link to the PDF, valid for 30 days, to copy or send by WhatsApp or email. It is sent from your own WhatsApp or email account: the app prepares the message, it sends nothing on your behalf.

13. Administration and CSV import

Users

  • Create: name, email (login, unique), phone, role and initial password.
  • Edit: name, phone, role, account active or not. Deactivating an account closes its sessions.
  • Reset password: sets a new password, unlocks the account and closes its open sessions.
  • Delete: the account can no longer log in and its email address becomes available again; the history of its actions is kept.

Two safeguards: you cannot deactivate, demote or delete your own account, and a company always keeps at least one active administrator. The “Roles and permissions” tab shows what each role can do.

Company

The company profile feeds your documents: company name, tax ID, address, city, phone, email, bank details (RIB), logo (PNG or JPG image, 500 KB at most), default VAT rate, currency, stamp duty and withholding tax proposed on customer invoices (see Stamp duty and withholding tax) and quote footer. The logo appears on your quotes, invoices and purchase orders. Only the administrator can edit this profile.

The same screen brings together your company’s settings: My subscription, automatic invoice reminders, weekly report, budget alerts, referral and assisted onboarding.

Weekly email report

At the start of each week, administrators and directors receive by email the key things to follow up: ongoing projects and their progress, quotes awaiting a reply, unpaid customer invoices, products below their stock threshold and purchase requests to approve. A section whose module is not included in your plan does not appear, and no email is sent when there is nothing to report.

The report is enabled by default. The administrator turns it off or back on with the “Weekly email report” switch, in Administration → Company.

Exporting your data

In Administration → Company, the “Your data” card lets the administrator download their company’s data in a file (JSON format).

CSV import

The lists of clients, prospects, contacts, suppliers, products, categories and employees offer “Import”. Import happens in two steps: the CSV file is checked first and the app shows how many rows are valid and which ones have problems; nothing is saved before you confirm. From Excel, use “Save As” and then the CSV format.

Assisted onboarding

Rather than importing yourself, you can hand your existing file (clients, products, suppliers, price list) to the PURA Solutions team, who will import it into your workspace.

  1. In Administration → Company, “Assisted onboarding” card, click “Choose a file”: an Excel (.xlsx, .xls) or CSV file of 5 MB at most.
  2. Describe what it contains if needed, tick the import authorisation, then click “Send my file”. Only the administrator can send a request, and only one request can be open at a time.
  3. Follow its status in “Your requests”. While it is “Pending”, you can cancel it.
  4. When the import is done, you receive an “Onboarding completed” notification.
  • Pending
  • In progress
  • Completed
  • Cancelled
  • The PURA Solutions team can only import into your workspace while your request is “In progress”: your request is your authorisation, and no further import is possible once it is closed.
  • The team uses the same import as you do, with the same checks, for the same lists.
  • Every import done on your behalf is written to your company’s audit log: you can see what was added, and by whom.
  • Your file is deleted as soon as the request is completed or cancelled.

Audit log

The log lists, from newest to oldest, logins, failed logins, password changes and all creations, edits and deletions: date, user, action, item concerned and IP address. It can be filtered by action, by email and by period. It is read-only and limited to your company.

14. Subscription, plans and referral

A new workspace starts with a free trial (14 days), during which every feature is open, with no quantity limits. After that, your company subscribes to a plan, for 6 months or 1 year. There is no online payment: your company’s administrator sends a request, and PURA Solutions activates it once payment is received. The plans and their prices are presented on the Pricing page.

What each plan includes

The content of each plan is set by PURA Solutions and may change: the comparison table on the Pricing page is authoritative, and the app applies exactly that table. As of today:

The Essentiel plan includes:

  • Projects, work packages, tasks and site log
  • Prospects, clients and contacts
  • Line-by-line quotes with PDF, sharing by link or WhatsApp
  • Dashboard and notifications
  • Quote templates and work item library
  • Online quote acceptance by the client
  • Weekly email report
  • Product catalog, stock by location, low-stock alerts
  • Time tracking: daily sheet, approval, monthly summary
  • QR code time tracking on site
  • Vehicles and machinery: assignments, fuel, due-date reminders
  • Roles and permissions by module
  • Audit log
  • CSV import and company logo on documents
  • Free read-only access for your accountant

The Pro plan includes everything in the Essentiel plan, plus:

  • Purchase requests
  • Online supplier consultation
  • Supplier quote comparison
  • Purchase orders with PDF and receipts
  • Supplier portal: catalog, price requests and purchase orders online
  • Progress claims
  • Invoices with lines and PDF
  • Profitability by project
  • Client tracking portal
  • Site photos
  • Stamp duty, withholding tax and VAT by rate
  • Unpaid invoice reminders
  • Accounting export
  • Budget overrun alerts
  • PDF progress report

The Entreprise plan gives access to the same software features as the Pro plan.

The support offered with some plans (importing your data, training, setup: see the Pricing page) is a service provided by the PURA Solutions team, not a software feature.

Modules outside your plan

A module that your plan does not include stays in the menu, with the name of the plan that includes it. When you open it, you can read what it does and which plans include it. The administrator finds a button there to request that plan, which leads to “My subscription”; other users are invited to contact the administrator. Your existing data is kept: changing plans deletes nothing.

User and project limits

  • A plan can limit the number of active users, active projects and active suppliers. These limits are set by PURA Solutions; when there are any, they are shown on the Pricing page and in your “My subscription” card, with your usage, on the “Active users”, “Active projects” and “Active suppliers” lines.
  • A project is active as long as its status is “Preparation”, “Pending”, “In progress”, “Suspended”. Completing or archiving a project frees up a slot.
  • Deactivated or deleted accounts do not count, nor does the demo account, nor “Chartered accountant (external)” accounts, nor supplier portal accounts.
  • When the limit is reached, creating one more user, project or supplier is refused, with a message stating the limit and how to lift it.
  • During the free trial, no limits apply.

Requesting or renewing a subscription

  1. Open Administration → Company: the “My subscription” card shows your plan, its status and its expiry date.
  2. Click “Request a subscription” - or “Renew or change plan” if you are already subscribed.
  3. Choose the plan and the duration (6 months or 1 year), then click “Send the request”.
  4. PURA Solutions activates or declines the request; you are notified in the app and by email.
  • Only the company’s administrator can send a request. It remains possible once the trial or subscription has ended.
  • One request at a time: “Change my request” replaces it, “Cancel the request” withdraws it without changing your current access.

Pro forma invoice and transfer receipt

  • Payment details: the request dialog and the “My subscription” card show the instructions, bank and bank details (RIB) provided by PURA Solutions.
  • “Download the pro forma invoice”: a PDF in your company’s name, with the plan, duration and price excluding tax. It is a non-tax document, meant to help you prepare your bank transfer. For a plan priced “on request”, PURA Solutions sends you the pro forma invoice.
  • “Attach the bank transfer receipt”: once the request has been sent, upload a PDF, PNG or JPG file of 2 MB at most. You can replace or remove it while the request is pending.
  • The receipt is passed on to PURA Solutions, then deleted once the request has been processed or cancelled.

Expiry and reminders

When the trial or subscription expires, access is suspended and your data is kept; the screen shown lets the administrator send their subscription request and write to PURA Solutions by email - or by WhatsApp when that button is offered. Before that, the company’s administrators receive reminders by email, together with a notification in the app:

  • Free trial: three days before the end, the day before, then once the trial has ended.
  • Subscription: fourteen days before expiry, three days before, then on the expiry date.

Referral

When referral is offered, the “Referral” card in Administration → Company shows your code and your sign-up link to share, with the “Copy” and “WhatsApp” buttons.

  • A company that signs up with your link starts its free trial like any other.
  • When it activates its first subscription, your subscription is extended - or your trial, if you are still on trial. The number of days is shown in your Referral card.
  • The extension is granted only once per referred company. You are notified by a notification and by email.
  • The card lists your referred companies and their status: “On trial”, “Subscribed” or “Trial ended”.

15. Security and two-factor authentication

  • Roles and permissions: every call to the server checks the user’s role for the module and action requested. Hiding a button on screen is only a convenience; the check is done on the server.
  • Company isolation: every piece of data carries its company’s identifier and every request is filtered on the logged-in account’s company. Identifiers received in a request are re-checked before use.
  • Passwords: stored only as a bcrypt hash. 15-minute lockout after 5 failed login attempts.
  • Sessions: 15-minute access token and a refresh token renewed on every use, in cookies that scripts cannot access. Only the hash of the refresh token is stored; reusing a token that has already been renewed revokes the whole session.
  • Write requests: refused if they come from a site other than the app.
  • Audit log: all writes and logins are recorded.

Two-factor authentication

When it is enabled on the platform, the “Two-factor authentication” entry in your account menu lets you protect your login with a six-digit code, in addition to your password.

  1. Scan the QR code with an authenticator app (Google Authenticator, Microsoft Authenticator, Authy…).
  2. Enter the code shown by the app to confirm.
  3. Keep the 8 single-use backup codes: they are for when you no longer have your phone.

The platform administrator can make two-factor authentication mandatory for company administrators.

Good practice: one account per person, the most restricted role that still lets them work, and deactivating the account as soon as a team member leaves the company.

16. Technical installation

This section is for developers and system administrators. Tessaro is a Next.js application backed by PostgreSQL (via Prisma).

Prerequisites

  • Node.js 22 or later
  • Docker (PostgreSQL runs in a container)

Local installation

cp .env.example .env     # then fill in JWT_ACCESS_SECRET and the super-admin account
npm install
npm run db:up            # starts PostgreSQL (Docker)
npm run db:migrate       # applies the migrations
npm run db:seed          # loads the demo data
npm run dev              # http://localhost:3041

The .env file contains the database connection (DATABASE_URL, DIRECT_URL), the token signing secret (JWT_ACCESS_SECRET, to be generated with openssl rand -base64 48), the super-administrator account (SUPER_ADMIN_EMAIL, SUPER_ADMIN_PASSWORD) and the public address of the site (PUBLIC_APP_URL).

Scheduled reminders

A daily run sends the end-of-trial and subscription reminders, the weekly report, budget alerts, vehicle and driving licence due date reminders and automatic invoice reminders. Set CRON_SECRET in .env, then schedule npm run reminders once a day; npm run reminders -- --dry-run shows what would be sent without sending anything. Sending emails requires an SMTP configuration (SMTP_* variables). The details are in the project’s README file.

Tests

npm test                 # unit tests (vitest)
npm run typecheck        # TypeScript check

Production

docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml exec app npm run db:seed:prod
  • Place a .env file next to the Compose file with POSTGRES_PASSWORD, JWT_ACCESS_SECRET, SUPER_ADMIN_EMAIL, SUPER_ADMIN_PASSWORD and PUBLIC_APP_URL.
  • npm run db:seed:prod only creates the super-administrator account, with no demo data. It can safely be run again: an existing account is not changed. Its password must have at least 12 characters.
  • The super-administrator then creates each company and its first administrator from Platform → Companies.
  • Set PUBLIC_APP_URL to the final https address: it is used for canonical links, the sitemap and structured data.

A question this guide does not answer?

Write to us at ayoub_sifaou@hotmail.com - or on WhatsApp, with the button shown at the bottom of this site’s pages when it is offered - or log in to put the guide into practice.

Free trial 14 days Log in

Tessaro is construction management software for building contractors: quotes, purchasing, inventory, time tracking, progress billing and client updates in a single tool.

Product

  • Features
  • Offline field mode
  • Progress claims
  • Client tracking portal
  • Supplier quote comparison
  • The app in pictures
  • Security

Get started

  • Free trial for 14 days
  • Request a demo
  • Pricing
  • FAQ
  • Documentation
  • Free guides (in French)
  • Log in

Contact

  • ayoub_sifaou@hotmail.com

© 2026 PURA Solutions

Tessaro - construction management software

Powered by Pura Solution

Languages : FrançaisالعربيةEnglishEspañolItaliano