Odoo payroll software
Senegalese payroll inside your Odoo: 29 collective agreements, compliant payslips, payroll ledger, DNS, returns, HR add-ons.
Discover the module →Free salary simulator
From the agreed net to the bonus: income tax, TRIMF, IPRES, CSS and employer cost, for every agreement, job and category.
Simulate a salary →Senedoo payslip generator
No Odoo needed: create your company and employees, issue compliant PDF payslips on demand, 500 F each.
Issue my payslips →Odoo payroll software
Payroll and accounting as the law writes them.

Income tax by bracket and household share, TRIMF, CSS capped at 63,000 F, general and executive IPRES, CFCE.
Payslips come out of the database that already carries your invoices and journal entries.
Categories, grids and hours; a rules engine our consultants maintain; statutory reports in one click.
- Six-column trial balance and cumulative four-column balance
- Expandable SYSCOHADA income statement
- Analytic balance, reporting codes, partner balance
- VAT return, 5% withholding (BRS), CEL on value added
- 360-day customer and supplier ageing, tax and social deadlines calendar
- Compliant payslip (IR, TRIMF, CSS, IPRES, CFCE)
- Complete payroll ledger, managers and staff, with your company logo, and Form 1024 over the calendar year
- Nominative salary return (DNS) as an Excel file, ready to file
- CSS-IPRES return, DGID salary withholdings
- Employment certificate and salary assignment letter, printed from the employee record
- Paid leave: entitlement accrued (1/12 of gross) on every payslip, payout from a button on the month's payslip, year-end provision posted
- Public holidays synced every year
- Payroll posting company by company
Every client has the update the same month.
Your Odoo stays standard: no Python module, no server to maintain.
A complete ecosystem: payroll and every Odoo HR module
Odoo payroll is not an isolated module: it is the core of a set of complementary modules sharing the same database and the same employees. The arrows follow the data: the employee record feeds skills and appraisals, whose salary review goes back to the contract; the contract and the month's events feed payroll; payroll in turn feeds returns, accounting, dashboards, signature and the employee file.
The employee and the career
Job offers on the website, applications, interviews; one-click hiring creates the employee record.
Complete record: civil status, ID, bank, IPRES number, job, org chart, departments, bulk updates.
Skills framework per job, training plans, tracking of authorisations and certifications.
Periodic reviews, objectives, 360 feedback: the salary review rests on facts.
Permanent, fixed-term, contractors; agreement category and job, agreed net, benefits; end of contract and final settlement.
Payroll
The core of the system, localised for Senegal by Senedoo
- Compliant payslips under 29 collective agreements: manager, staff, contractor
- Bonus solved from the agreed net
- Income tax by shares, TRIMF, IPRES, CSS, CFCE, IPM
- Bonuses, overtime, meal allowance, advances, loans, deductions
- Monthly batches, month-to-month check, PDF with the company logo
- Updated for all our clients when the law changes
The month
Teams and shifts planned by week, replacements, clashes with leave detected.
Clocking on tablet, badge or phone: hours worked, lateness and overtime.
Requests and approvals, balances, Senegal public holidays, 1/12 paid leave and provision.
Hours per project or customer: analytic split of payroll cost, time billing.
Employee expenses captured by photo, approved, reimbursed on the payslip.
What payroll feeds
Payroll ledger, Form 1024, DNS Excel, CSS-IPRES, DGID withholdings; OHADA entry company by company, nothing re-keyed.
Payroll mass, employer cost, headcount, absenteeism and charges payable, read every morning by management.
Payslips, certificates and amendments signed online by employee and employer, time-stamped.
Payslips and certificates filed on the employee record, next to ID, diplomas and medical checks.
What payroll costs when it lives on the side
The same four problems come up in every company we meet — a spreadsheet, a stand-alone payroll package, or a provider who sends the payslips at month end.
Payslips made by hand
One spreadsheet per employee, formulas copied month after month, a day lost at every close — and the copy error that ends up on the payslip.
Rules that keep moving
Income-tax scale, IPRES and CSS ceilings, TRIMF, CFCE, 29 collective agreements and their scales: who updates what, and when?
Leave and absences scattered
Requests on WhatsApp, balances in a notebook, absences found after the payslip: the proration is wrong, and the employee sees it.
Distributing, filing, archiving
Print, sign, hand over; re-key for the DNS, Form 1024, CSS-IPRES, DGID; dig out a 2023 payslip for a certificate.
The whole payroll and HR cycle, inside your Odoo
Not a payroll package next to your management: Odoo's Employees, Attendances, Time Off, Timesheets and Payroll apps, localised for Senegal by Senedoo, in the database that already holds your invoices and entries.
Payslips
- Manager, staff and contractor structures under 29 agreements
- Bonus solved from the agreed net
- Income tax by shares, TRIMF, IPRES, CSS, CFCE, IPM
- Bonuses, overtime, meal allowance, advances, loans, deductions
- Monthly batches, month-to-month check, compliant PDF with logo
HR management
- Complete employee record: civil status, ID, bank, IPRES
- Permanent / fixed-term contracts, agreement category and job
- Employment certificate, salary assignment letter
- Documents and history on the record
- Bulk updates, Excel import
Leave, absences, attendances
- Requests and approvals in the Time Off app
- Senegal public holidays set every year
- Paid leave: 1/12 of gross, payout, provision
- Clocking and overtime flow into payroll
- Automatic absence proration on the payslip
Returns and accounting
- Payroll ledger, Form 1024, DNS in Excel
- CSS-IPRES return and DGID withholdings
- OHADA entry company by company
- Tax and social deadlines calendar
- Payroll cost per project (analytic)
Everything that comes out of payroll, with nothing re-keyed
Odoo ships the payslip; Senegal expects the rest. Our HR add-ons add it to your database — installed as data, no Python module — and every document starts from validated payslips.
Employee documents
- Compliant payslip with the company logo, employee and employer shares side by side, year-to-date totals
- Employment certificate printed from the record, configurable signatory
- Salary assignment letter to the employee's bank, net of the last payslip
- Certificate and final settlement at the end of the contract
- Sent by e-mail or dropped in the employee portal
Social and tax returns
- Monthly payroll ledger, managers and staff, employer charges and employer cost
- Form 1024: annual summary per employee
- DNS — nominative salary return, ready-to-file Excel
- CSS-IPRES: social contributions for the period
- DGID withholdings: IR, TRIMF, CFCE
- OHADA accounting entry company by company, and deadlines calendar
Senedoo HR add-ons
Installed in your Odoo SaaS database, updated for all our clients.
- Employment certificate — Employees
- Salary assignment — Employees
- Payroll ledger + Form 1024 — Payroll
- DNS (Excel) — Payroll
- Paid leave: 1/12 accruals, payout, provision — Payroll + Time Off + Accounting
- Senegal public holidays — Time Off
- CSS-IPRES return and DGID withholdings — Accounting + posted payroll
- Tax and social deadlines — calendar, reminders, preparation
Printed from Odoo, in the expected format.
Payroll ledger, nominative salary return, employment certificate, salary assignment letter: one click from the payslips or the employee record, with your company logo. These are the real templates, filled with a fictitious company and staff.




And the returns
The CSS-IPRES return and the DGID salary withholdings (IR, TRIMF, CFCE) come from the posted payroll; Form 1024 sums up the calendar year employee by employee. Nothing is keyed in twice: everything comes from the payslips validated in Odoo.
Twenty-nine agreements ready to install
Each agreement opens on its own page: jobs, categories and agreement salaries, freely available — and the simulator works out the bonus from the agreed net.
Retail & trade
Construction
Industry
Transport
Hospitality
Security, cleaning
Education
Consular
All agreements, jobs and agreement salaries · Compute a bonus — free
What sits under the bonnet
Odoo payroll is not a set of tick-boxes: it is a rules engine. Here is how it works, and what we added to it for Senegal.

Salary rules, brick by brick
A payroll, in Odoo, is a structure — one per category of staff: executive, non-executive, contractor. Each structure carries rules, and each rule is a small named calculation: a code (SALBASE, IPRES_CADRE, TRIMF), a category, a sequence, and a Python formula evaluated against the contract and the month's inputs.
Three things matter, and are awkward to fix afterwards:
- The sequence. A rule can only read what has already been computed. Income tax needs the taxable net, which needs the IPRES deductions, which need the gross. A sequence in the wrong order raises no error: it simply yields zero.
- The condition. A rule that applies only to executives, only above a ceiling, or only one month in twelve, carries that condition in the rule — not in the payroll officer's head.
- Whether it shows on the payslip. Many rules are intermediate steps and have no business on the paper handed to the employee.
We maintain these rules for twenty-nine collective agreements, with their grids, categories and working hours. When a finance act changes a rate or a ceiling, the rule changes once, for every client.
The sursalaire, and why it is computed backwards
In Senegal, what is negotiated is a net. The employee wants to know what they take home; the collective agreement, for its part, sets a minimum base salary per category. The gap between the two is the sursalaire, and it is the unknown.
The net depends on the sursalaire along a path you cannot reverse by hand: the sursalaire raises the gross, hence the IPRES, hence the taxable net, hence the tax by bracket and by household share, hence the net. Working it out by hand means guessing.
Our solver does the opposite: give it the negotiated net and it finds the sursalaire that lands exactly on it, by successive approximation — five iterations are enough, to within a franc. That is what lets you answer “that net will cost you this much” during the interview, rather than the next day.
Compute a bonus — freeagreed net → bonus, income tax, TRIMF, IPRES, CSS, employer cost
Payslip batches
Payslips are not computed one by one. A batch groups a month, a company, a set of employees: you generate, check, correct, validate, and only then post to the accounts. While the batch is a draft, everything recomputes.
The check that matters before validating is to compare the batch with the previous month, line by line. An unexplained variance on a line is almost always a badly entered input for the month, not a broken rule.
The month's adjustments
A payroll month is never a plain repeat of the last one: absences, overtime, exceptional bonuses, deductions. Those values come in as the month's inputs, entered per payslip or imported, and the rules use them.
One trap we met and fixed: some allowances are entered before the absence proration, others after. A travel allowance entered in the wrong place is prorated twice, or not at all. Our agreements tell the two families apart explicitly.
Advances and loans
Two different mechanisms, often confused:
- A salary advance is repaid within the same month or the next: a single deduction, no schedule.
- A loan is spread out: a principal, a number of instalments, a monthly deduction that stops by itself at the last one. The balance outstanding must be readable at any moment — it is the employee's first question, and the auditor's.
In both cases the deduction comes after the taxable net: you do not repay a loan with tax.
Tailoring the payslip
The payslip handed to the employee is both a legal document and a company document. We compose it from templates: the dense Senegalese model — employee and employer shares facing each other on every line, a cumulative band, a boxed net to pay — or a plainer layout. Header, logo, legal wording, columns shown: all of it is set without touching the calculation.
The rule we hold ourselves to: whatever is on the payslip must be demonstrable. Every line points to a rule, every rule to a text.
Posting to the accounts
Validating a batch means writing to the accounts. Each rule carries its debit and credit accounts, and the entry is generated company by company.
This is the step where mistakes are expensive, and we have corrected real ones: a net credited twice because two rules carried the same account; rule accounts defined globally when they differ from one company to the next within a group. The check is simple and final: total staff credits must equal the batch's net to pay, and the expense must equal the gross plus employer contributions.
Analytic accounting
Payroll is often a company's largest cost, and the one least often spread. Yet the question “how much does this site, this shop, this department cost me?” only has an answer if payroll takes part.
Every payroll journal line can carry an analytic distribution — by company, by site, by project, with percentage keys. That is what lets you read, in the same dashboard, a point of sale's margin with staff costs included.
Why Senedoo payroll
Compliant
Labour Code, tax code, CSS, IPRES and IPM: the rules are written, readable and provable, line by line, on every payslip.
Inside your management
No double entry, no exports: employees, attendances, leave and accounting live with payroll in one Odoo SaaS database, with no server to maintain.
Updated for everyone
When a finance act changes a rate or a ceiling, we change the rule once: all our clients get it the same month.
Supported
Consultants who run Senegalese payroll every month, reachable on WhatsApp, and a tooled AI that checks a batch or installs an agreement on request.
One month in parallel, then the switch
Read your current payslips
Items, bonuses, over-salary, benefits in kind: we start from what you pay today.
Install the agreement
Structure, rules and categories loaded into your database from our reference set.
Run in parallel, one month
Odoo payslips compared line by line with yours. Differences are explained, not hidden.
Switch and file
Payroll ledger, Form 1024, CSS-IPRES and DGID come out of Odoo. Your deadlines are on the calendar.
Your payroll in Odoo: three amounts, nothing else
Prices in CFA francs excluding VAT, valid until 31 December 2026. The colour of each box tells you who invoices you.
Flat fee from 1 to 100 employees, for one company and one collective agreement.
- Full payroll set-up
- Your employees and contracts imported
- One month of parallel payroll
- One day of training
- First live payroll run together
Paid directly to Odoo. Senedoo prepares the quote with you.
First year: full licence at ≈ 7 870 F a month.
Annual contract, i.e. 720 000 F excl. VAT a year, whatever your headcount.
- E-mail, phone and WhatsApp
- Legal updates: scales, rates, ceilings
- Returns kept up to date
- Yearly review of your setup
Your budget, by headcount
| Headcount | Monthly, from year 2 | Year 1 | Following years |
|---|---|---|---|
| 10 employees | 85 910 F | 1 761 260 F | 1 030 940 F |
| 30 employees | 118 710 F | 2 154 860 F | 1 424 540 F |
| 50 employees | 151 510 F | 2 548 460 F | 1 818 140 F |
| 75 employees | 192 510 F | 3 040 460 F | 2 310 140 F |
| 100 employees | 233 510 F | 3 532 460 F | 2 802 140 F |
Monthly = 60 000 (support) + 9 510 (HR manager) + headcount × 1 640 (Light). Year 1 = 750 000 (deployment) + 720 000 (support) + 94 460 (HR manager, first-year rate) + headcount × 19 680. Amounts excluding VAT (18%). Odoo invoices in euros (€14.50 and €2.50 a month), converted at 655.957 F. Each extra full user adds ≈ 9 510 F a month.
- Deployment: 50% on order, 50% when the first payroll is validated
- Support: one-year commitment, 720 000 F excl. VAT
- Odoo licences: invoiced by Odoo S.A.
- Three to four weeks to your first payroll
Not included: filing the returns on the CSS-IPRES and DGID portals (the statements are ready to copy), travel outside Dakar, custom development.
Payroll in Odoo, or online payslips at 500 F?
The same calculation engine, two ways to use it.
| Criterion | Senedoo payroll in Odoo | Senedoo Paie online Beta |
|---|---|---|
| For whom | Companies that want payroll inside their management system, with accounting, leave and an employee space | Small businesses, associations, domestic or security staff employers, accounting firms running several companies |
| Calculation | Identical 29 agreements, top-up salary, income tax, TRIMF, IPRES, CSS, CFCE, IPM | Identical 29 agreements, top-up salary, income tax, TRIMF, IPRES, CSS, CFCE, IPM |
| Accounting | Automatic Entries posted in your Odoo accounting, paid-leave provision included | To re-enter SYSCOHADA entry supplied as PDF and Excel |
| Documents | Payslip and payroll entries; with a Standard or Premium contract: payroll ledger, Form 1024, DNS, CSS-IPRES, DGID, paid leave, employment certificate, domiciliation letter | Payslip, payroll ledger, Form 1024, DGID, CSS-IPRES |
| Employees | A personal space: payslips, leave, expenses, attendance | PDF payslips to hand out |
| Support | Deployment, training, support by e-mail, phone and WhatsApp | Self-service |
| Price | 750 000 F excl. VAT once, 60 000 F excl. VAT a month, Odoo licences | 500 F per payslip, 1 000 F per company, 500 F per return. VAT included, no subscription, 3 payslips free |
Yearly budget, side by side
| Headcount | Odoo, year 1 (excl. VAT) | Odoo, after (excl. VAT) | Senedoo Paie, per year (incl. VAT) |
|---|---|---|---|
| 10 employees | 1 761 260 F | 1 030 940 F | 84 000 F |
| 30 employees | 2 154 860 F | 1 424 540 F | 204 000 F |
| 50 employees | 2 548 460 F | 1 818 140 F | 324 000 F |
Senedoo Paie, year 1: 1 000 (company) + 12 × (headcount × 500 + 2 000) + 500 (Form 1024) − 1 500 (3 free payslips). The monthly 2 000 F covers the payroll ledger, DGID, CSS-IPRES and SYSCOHADA entry; add 500 F in following years. Top up with Wave, Orange Money or bank card.
Payroll never stands alone
OHADA accounting
6- and 4-column trial balances, expandable income statement, 360-day ageing, VAT, BRS and CEL returns: the payroll entry lands in accounts already localised for Senegal.
See accounting →Dashboards
Payroll mass, employer cost, headcount, absenteeism and charges payable, read every morning by management — next to sales, margin and cash.
See the dashboards →Tax and social deadlines
The calendar of Senegalese obligations — CSS, IPRES, DGID withholdings, VAT, corporate tax — kept in your database, with reminders and prepared returns.
See support →What we are asked before starting
Are the payslips compliant with Senegalese regulations?
Yes: income tax by brackets and shares, TRIMF, general and manager IPRES, capped CSS, CFCE, IPM — every payslip line points to a written rule, maintained by our consultants for the 29 agreements. When the law changes, the rule changes once for all our clients.
How much does Senedoo payroll in Odoo cost?
A one-off deployment of 750 000 F excl. VAT, then a support contract of 60 000 F excl. VAT a month. Per employee, only their Odoo Light licence is added, ≈ 1 640 F a month. For 10 employees, budget 1 761 260 F excl. VAT in year 1 and 1 030 940 F in the following years: see the offer and prices.
We already have payroll software: how does the takeover work?
We read your current payslips, install the agreement in your database, then run one month in parallel: every difference between your payslips and Odoo's is explained before the switch. Employees, contracts and year-to-date totals are carried over, so Form 1024 stays complete.
How long to get started?
For a company under one agreement: two to four weeks, including the parallel month.
Do we need a server or an installation?
No. Everything runs on a standard Odoo SaaS database — our modules are installed as data, with no Python module and no server to maintain — or on Senedoo Paie online, in your browser.
Do employees receive their payslips?
PDF payslips come out by batch and can be e-mailed from Odoo or dropped in the employee's portal; the salary assignment letter and the employment certificate print from the employee record.
And the social and tax returns?
Payroll ledger, Form 1024, DNS as a ready-to-file Excel, CSS-IPRES return and DGID salary withholdings (IR, TRIMF, CFCE) come out of validated payslips: nothing is re-keyed. The deadlines calendar reminds you of each filing.
Move to simple, compliant payroll.
A certified Odoo consultant sets up your agreement, runs a month in parallel with you and trains your payroll officer.
