Co-ownership
BUSL-1.1The syndicate of co-owners as the Civil Code organises it: general meetings, common expenses, contingency fund, maintenance log and an occupant portal.
A syndicate of co-owners usually runs on a spreadsheet of relative values, an accounting package and whatever the manager remembers. None of the three knows that article 1101 of the Civil Code deems unwritten any clause that changes the number of votes required, or that the maintenance log has an author who cannot be the building's manager.
Comparable to BuildingLink, on your own domain and under Québec's Civil Code
The suite's 13 modulesDetails and the 13 modules
A syndicate of co-owners usually runs on a spreadsheet of relative values, an accounting package and whatever the manager remembers. None of the three knows that article 1101 of the Civil Code deems unwritten any clause that changes the number of votes required, or that the maintenance log has an author who cannot be the building's manager.
Comparable to BuildingLink, on your own domain and under Québec's Civil Code
The foundation holds the structure: the syndicate, its buildings, its fractions and their relative value, the common portions, general or for restricted use, and the history of co-owners, undivided co-ownership included, because article 1070 calls for a register, not just the name of today's owner. The total of relative values is checked against the declared base: a gap shows, it never blocks data entry.
Thirteen add-ons build on it. General meetings and the board of directors, with votes counted in the order the Code sets. Common expenses, fund calls and collection. The maintenance log, the contingency fund study and the certificate for a seller. The occupant portal. Building operations run by maintenance teams. Then electronic signature, secure hand-over of documents, text message notices, occupant satisfaction and the Act 25 register.
⚠️ The law is applied as written: the Civil Code of Québec, its regulations and the transitional provisions of the 2019 statute known as Bill 16, each rule with its article. Where the text is silent, the module says so on screen instead of inventing a threshold: no statutory deadline to answer an occupant, no imposed interest rate, no contingency fund floor chosen on the syndicate's behalf.
Emails go out in the syndicate's name, never as Odoo's generic invitation, and take your organisation's look when the Symbifox branding module is installed. Screens and documents exist in French and English, with the Code's official terms. Data is partitioned by company.
This is software, not legal advice: the decisions remain the syndicate's.
13 add-on modules
General meetings and board of directorsNotice of meeting, quorum, weighted votes and majorities, encoded from the Civil Code rather than left as settings.
Article 1101 of the Civil Code deems unwritten any clause of the declaration that alters the number of votes required. A configurable percentage is therefore not a feature, it is a defect, and article 1103 makes a counting error a ground to annul the decision, with 90 days to bring the action.
Votes are counted in the order the Code sets, each step measured on the result of the one before: votes in proportion to relative value and split between undivided co-owners, no vote for a fraction the syndicate holds, loss of the right to vote, the presumed mandate between undivided co-owners, and the caps for small co-ownerships and for the promoter. The three majorities (arts. 1096, 1097 and 1098) show with their article. ⚠️ Since 10 January 2020, article 1097 no longer requires a majority in number, whatever much of the online commentary still says.
The notice of meeting is checked against the 10 to 45 day window, and a meeting held without ever being called is told apart from a late notice. A secret ballot keeps an urn with no names and a register with no choices. ⚠️ Because a weighted ballot has to carry its number of votes, the module counts the ballots their weight makes recognisable, rather than promising a secrecy the arithmetic cannot keep.
The board of directors has its meetings and minutes, which belong in the register just as the general meeting's do. Transmission of the minutes within 30 days is tracked; the module does not send them itself, and it does not model the board's composition, which the declaration of co-ownership sets.

Common expenses and fund callsBudget, allocation of expenses to the cent, fund calls, imputation of payments and arrears, the way the Civil Code settles them.
⚠️ Article 1064 of the Civil Code sets three regimes, not two. Major repairs to a common portion for restricted use follow the general rule and are spread over every fraction, unless the declaration provides otherwise. A module with a single "restricted use" expense type is wrong by tens of thousands of dollars: here, every budget line carries its nature.
The board of directors fixes the budget after consulting the general meeting, as article 1072 requires, and the module refuses to fix one that has not been through that consultation. Fund calls are allocated to the cent, basis by basis, and the shares add up exactly to the amount called. The module keeps no expenses and does not depend on Odoo accounting: its "budget against actual" is the cycle of fixed, called, collected.
Payments are imputed as the Code dictates (arts. 1569 to 1572), interest before capital. Interest runs from default, never from the due date, and no rate is hard-coded: the syndicate enters its own, and the default is no interest at all. Loss of the right to vote after more than three months of arrears is proposed on the attendance sheet, never ticked on its own.
The contingency fund floor has three possible bases depending on where the syndicate stands, including the 5 % of Bill 16's transitional provisions, which is widely and wrongly described as repealed. The module picks none: the syndicate records its own, on its notary's or lawyer's reading. The ten-year catch-up, the self-insurance fund and the statement of common expenses due to a prospective acquirer complete the module. ⚠️ That 15-day deadline runs against the syndicate, and the prior notice goes by email to every owner on the register who has an address; the thread names those who must be reached some other way.
Maintenance log, study and certificateThe maintenance log, the contingency fund study, the certificate for a selling co-owner and the documents owed to a promising buyer, with their deadlines.
The 2019 reform gave the syndicate documentary obligations whose thresholds are not in the Code but in the regulation. Reading the Code alone gives you no figure at all.
The maintenance log knows its author and the conditions that author must meet: a member of one of the four professional orders named, chartered appraisers included, which the usual list forgets, and independent of the building. ⚠️ The building's manager cannot draw up the log. Every inventory item says where it is. The review interval is five years, and ten only when one of the regulation's size conditions is met.
The contingency fund study depends on the log: the module refuses to record it as obtained while the log is not established, and says what is missing. Once obtained, it feeds the contingency fund data of the finance module.
The syndicate's certificate for a selling co-owner (art. 1068.1) follows the eight points of the regulation and the 15-day deadline. What the module can know, it draws from the register and the finance module; the rest, such as claims, inspections or litigation, is entered by hand. ⚠️ The certificate cannot be handed over while anything is missing, and the module names what is.
The documents owed to a promising buyer (art. 1068.2) are released only after the other co-owners' personal information has been reviewed, and the exact list of what was handed over then goes to the owner. A transitional calendar dates all of these deadlines: where a text reads two ways, the module takes the earlier date.
Occupant portalAnnouncements, documents, maintenance requests, common space bookings, parcels and visitors, each person seeing only what concerns them.
A lessee is in the syndicate's register, but that gives them no right to the register, which article 1070.1 reserves to co-owners. A generic notice board cannot tell the two apart. This one does it with access rules, not with what the page happens to display: a lessee who guesses the address of a document meant for co-owners gets nothing.
⚠️ Putting a register item online is the syndicate's decision, not a default. Article 1070.1 provides for consultation in the presence of a director, at reasonable hours; opening it at all hours gives more than that, and the module refuses to publish until the syndicate has acknowledged it.
Maintenance requests show who bears the cost under the three regimes of article 1064, and never close without saying what was done or why the request was refused. The decision goes by email to the person who filed it. No statutory response time is invented: the syndicate enters the commitment it gives itself. Common spaces are booked without anyone seeing who took Saturday, and a common portion for restricted use cannot be booked by anyone else.
The parcel and visitor log shows each person only their own, and it expires: the syndicate sets a retention period, and a daily job deletes the closed entries that have passed it. No directory of co-owners, no anonymous links.
The portal invitation and the welcome message are the syndicate's own, and the office is told when an occupant files something.


Building operationsWhere each piece of equipment is, which team answers for the building, preventive maintenance, and the work shift with its handover.
Odoo's Maintenance app knows everything about a piece of equipment except where it is: its only location field is free text. This module gives it the building, the private portion or common portion, and the team that answers for each building.
Preventive work belongs to the equipment, not to the work order. A boiler is inspected twice a year whether or not the last work order was closed: a daily job opens whatever falls due, and every missed occurrence gets its own work order. ⚠️ Scheduled maintenance that is not done must say why, as the maintenance log regulation asks.
A work shift brings together a team, a time span, the people assigned and a work list. It closes: whatever is still open passes to a named next shift, with a handover note, and an item leaves the list only with a reason.
⚠️ The caretaker sees the address of their team's buildings, never the register of co-owners. The module does no payroll and no time clock, and it serves a rental building as well as a co-ownership.
From the occupant's request to the work orderAn occupant's request reaches the team for their building and produces the work orders it calls for.
A squeaking garage door makes two objects: the occupant's request and the work to be done. This bridge links them, and installs itself when operations and the portal are both present.
The request carries the building, and the building names its team: the request reaches that team without anyone dispatching it, then goes to the team lead if nobody is already responsible for it. One request can produce no work order, one, or several. ⚠️ A refused request opens no work, and a request with work under way cannot be deleted.
The occupant sees their request, its state and what was done. They see neither the team, nor the technician, nor the work orders: access rights close the work register to them.
The maintenance log and operationsThe maintenance log cites the equipment operations keeps, and flags when the two drift apart.
A boiler has two records, and neither contains the other: the regulatory reading in the maintenance log, drawn up by an independent professional, and the team's operational reading. The risk is not duplication, it is drift: the day the log still describes a boiler that operations has already replaced.
The log item cites the equipment, and a warning appears at the top of the log when that equipment is scrapped or archived. ⚠️ The warning never blocks a save: the regulation asks the log to state what was not done and why, and a refusal would stop it from telling the truth.
Three dated facts travel from operations back to the log: required servicing done, a routine repair done, and scheduled work not done, with its reason. Only an established log is updated, a date never moves backwards, a reason a person wrote is never overwritten, and every write is recorded on the log's thread.
Electronic signatureHave the maintenance log declaration, the article 1068.1 certificate and the minutes signed, without confusing signing with delivering.
Only one document in the suite has to be signed according to the text: the on-site examination declaration by the author of the maintenance log (regulation, s. 6). A box ticked by the manager says something else, namely that the manager asserts the professional declared. Here the author receives a link and signs without an account in the instance, and it is their signature that ticks the box and sets the date.
⚠️ Signing is not delivering. The certificate's 15 days stop at delivery, the minutes' 30 days at transmission, and neither text requires a signature. The module offers one without presenting it as an obligation.
It never guesses who signs for the syndicate: the declaration of co-ownership sets the board's composition, so the module asks at sending time. A signed paper declaration stays valid, and the box can still be ticked by hand.
Secure hand-over of documentsHand the certificate, the statement of expenses due and the documents for a promising buyer over by secure transfer, and know whether they were opened.
The three document regimes of a fraction's sale are all a hand-over to someone outside the syndicate, and two of them carry a 15-day deadline. This bridge sends them through Symbifox's secure transfer.
⚠️ Sending is not delivering. A link expires, and if it expires without anyone opening it, the module says so instead of counting a hand-over that never happened. On the statement of expenses due, whose deadline runs against the syndicate, the warning is red.
A document the module produces is frozen on the record once it has left, since a certificate regenerated six months later would no longer say the same thing. For a promising buyer, only files attached to the record go out, never those carried by the discussion thread, and the bridge refuses until the personal information review is done. The access code can travel by text message rather than to the same mailbox as the link.
Text message noticesTell an occupant a parcel has arrived or an urgent notice concerns them, with their express consent, dated and revocable.
A phone number is not in the register by right: article 1070 admits it only with the person's express consent. So consent is a record, not a checkbox: given to one syndicate, dated, channel by channel, and withdrawn rather than erased, so that anyone can say what was permitted when a message already sent went out.
Two switches, both off by default: the syndicate opens the channel, the person consents. The message gives the syndicate's name and nothing else, no door number, no carrier, no tracking number. An urgent notice goes out from a button, never as a side effect of publishing, and ⚠️ the announcement's audience outranks the consent: a notice addressed to co-owners does not reach a lessee.
A failed send never blocks recording the parcel, and the reason is noted on it.
Occupant satisfactionAsk the occupant how their maintenance request went, once it is settled.
When a maintenance request is settled, the person who filed it gets a single question with three answers, and the reply lands in the Symbifox experience register like any other rating.
⚠️ A refused request is never measured. Asking "how did it go?" right after a refusal measures the refusal, not the service. The syndicate turns the measurement on itself, it is off by default, and the per-person solicitation limit and the unsubscribe link apply on top.
The email comes from the syndicate and names no software. A failed send never reopens a settled request, and the thread says why nothing went out.
Privacy (Act 25)Record in the register of processing activities what the co-ownership suite collects, with its legal basis and retention period.
A syndicate that keeps the article 1070 register processes personal information, and Québec's Act 25 makes no exception for it. This bridge writes three purposes into the register of processing activities, each with a plain-language summary, because they do not fall under the same regime.
The syndicate's register exists by operation of law: no consent is asked, since asking would suggest it could be refused. Text message notices rest on express consent, and each consent opens a formal consent file, closed the day it is withdrawn. The parcel and visitor log concerns third parties who consented to nothing.
⚠️ A declared retention period that differs from the one the portal actually applies is worse than no policy: the bridge compares the two and shows the gap, without correcting either. Installed on a database that already holds consents, it manufactures no file dated today.
Operations: privacy (Act 25)Record in the register of processing activities what a work shift says about the people who held it.
A work shift names people and records what they did. That is personal information, even when those people are employees. This bridge declares the shift in the register of processing activities, with a plain-language summary.
No consent is asked: the employer knows who held the shift because the employer assigned it, and a consent that cannot be refused would be a form, not a consent.
⚠️ The shift is not a disciplinary file. It records the work, not appraisal, performance or hours, and the summary says so.


















































































































































































