Skip to content

Colombian payroll

Colombian payroll inside your Odoo. The calculation does not exist for 19, and I am building it.

Your company can run sales, purchasing, inventory and accounting on Odoo Community without paying a licence per user, and issue its electronic invoices to the DIAN from that same place. When payday comes, Odoo drops out: the Payroll app is an Enterprise one, and Colombia is not even on the list of countries Odoo ships payroll rules for, so paying for the licence does not bring them either.

And in Colombia payroll does not end when people are paid. The electronic payroll support document has to be transmitted to the tax authority within the first ten days of the following month, and it is what holds that cost up in your corporate income tax return. It is not optional and it is not only for large employers: the last group on the roll-out calendar is the one from one to ten employees.

That is what I am building: the Colombian rule set on top of the community's free payroll engine, which already has a branch for Odoo 19. It started this week, and this page will not tell you otherwise: further down you will find what there is, what is missing, and the date on which you stop waiting for me at no cost.

Three launch places. From USD 39 a month per company, with all your users, and the setup is not charged until your first payroll run goes out of your own Odoo.

01

What happens today when payday comes

A Colombian company already working in Odoo Community has its accounting inside and its payroll outside, and usually in two places at once: where it is worked out and where it is filed. It is not a disaster: it works. What it costs is this.

The spreadsheet only one person understands

The run is put together in a spreadsheet somebody inherited, with formulas nobody else has reviewed. When that person is away in payday week, the company finds out all at once how much depended on them.

The usual case

What gets filed and what gets booked come from different places

The tax authority's document is produced in a portal or in a separate payroll system, while staff cost reaches accounting as a summarised journal entry somebody keys in once a month. Two figures with two origins: when they disagree, finding out which of the two is wrong lands on somebody, usually in closing week.

The DIAN and the ledger

Statutory benefits come out of accumulated balances, not out of the month

The service bonus, severance pay, the interest on severance and holidays are not worked out from the current month: they are worked out from what has been earned since. Every time one falls due, somebody walks back through months of separate spreadsheets, and a month added up wrongly in March shows up in December.

Accumulated balances

The evidence is not where it gets looked for

When someone queries a figure, when an employee leaves, or when the social-security enforcement agency asks about a contribution, a payment made two years ago has to be reconstructed from whatever survived in somebody's email and folders.

When someone asks

The usual ways out are three: pay for Odoo Enterprise, which charges a licence per user and which does not ship Colombian payroll rules anyway; buy a separate payroll system and key the journal entry across by hand; or stay in the spreadsheet and file with the tax authority somewhere else. All three work and none of them is a mistake. What none of them does is leave payroll in the same place where the accounting already lives, with the same people, the same chart of accounts and the same backups.

02

What it has to calculate

The full monthly run, each item with the rule of law behind it. This is the scope, described by what it does rather than by the name of a field. None of it calculates yet: what exists and what is missing is set out without decoration in section 03, which comes before the price on purpose.

Social security

Health, pension and occupational-risk contributions on each person's contribution base, with the employee's share and the employer's share shown separately, the cap on that base, and the pension solidarity fund for whoever owes it. Plus the exemption in article 114-1 of the Tax Code, which does not apply to every company or every employee alike, and which is one of the things a spreadsheet tends to apply by eye.

Payroll taxes

The family compensation fund, the national training service and the family welfare institute on the base that applies, with the same exemption where it is due, and with the detail your company needs to settle its contribution return. The module works it out and leaves the evidence; the return is filed and paid where it is filed and paid today.

Statutory benefits

The service bonus of article 306 of the Labour Code, the severance allowance of article 249, the interest on severance created by Law 52 of 1975 and the holidays of article 186, each with its own base and accrued month by month, so the cost shows up when it is earned and not when it is paid. When somebody leaves, the balance is already there and does not have to be reconstructed.

Transport allowance and work clothing

The statutory transport allowance for whoever is entitled to it, with the effect it has on some bases and not on others, which is where nearly everybody gets it wrong. And the work clothing and footwear of article 230 of the Labour Code, with a record of who is due it and how often.

Overtime, night work and Sunday work

Hours beyond the ordinary working day, the night surcharge over the band that article 160 of the Labour Code now sets after the labour reform, and work on a mandatory rest day under article 179, whose surcharge currently follows a schedule an employer may phase in. The module records, per company, which stage it has adopted, because it is not the same for everyone.

Withholding tax on employment income

Each person's monthly withholding under either of the two procedures the Tax Code allows, procedure one in article 385 and procedure two in article 386, with the base worked down, the payments that reduce it and the exempt portion each person is entitled to. The procedure is chosen per employee and cannot be switched mid-year, and the module remembers it for you.

Sick leave, parental leave and absences

Ordinary sick leave and work-related sick leave, maternity and paternity leave, and unpaid absence, each one with who pays it, from which day and on what base, and with the effect it has on the month's contributions and benefits.

Final settlement when somebody leaves

Benefits and holidays outstanding up to the last day, the compensation in article 64 of the Labour Code where the termination is without cause, with its bands according to the kind of contract and the length of service, and the detail that holds the settlement up if anyone disputes it later, which is what article 65 is about.

The document the tax authority expects

The electronic payroll support document and its adjustment notes, built from the very figures people were paid with rather than from a separate upload, so that what the tax authority receives and what your ledger records are the same number. Every earning and every deduction travels in the box the technical annex gives it.

The payslip, the entry and the payment

The payslip each person receives and the month's consolidated run; the journal entry in the same accounting you already use, broken down by cost centre; and the payment summary, both for the employees and for what goes to social security and to the tax authority. Without keying anything into a second system.

There is not a single percentage, threshold or table on this page, and that is deliberate. In Colombia those values do not merely change every year: they change mid-year, and sometimes in stages. Over the last twelve months the maximum working week came down another step, the night-surcharge band moved, and the surcharge for work on a mandatory rest day went up again — and that last one follows a schedule each employer may phase in, so two companies can settle the same Sunday on different figures and both be right. That is why every value lives inside the module next to the rule that sets it and next to the company it applies to, and keeping them current is exactly what the monthly plan pays for. If anyone publishes the percentages on their sales page, check the date before trusting them.

03

Where it stands today

I am asking you to buy something that is not finished, so the status comes in full and it comes before the price. This is what there is as of 24 September 2026, without dressing it up.

  1. It calculates

    The month, the statutory benefits and the final settlement

    The whole monthly run: pro-rated wage, daytime and night-time overtime, the night surcharge, the Sunday and public holiday surcharge, commissions, ordinary sick leave, non-salary payments and the transport allowance. Health, pension and occupational risk contributions, the pension solidarity fund by bands, and the payroll taxes with the article 114-1 exemption applied employee by employee and month by month, which is where nearly everyone gets it wrong. Withholding tax on employment income with its full computation and both statutory procedures. The four statutory benefits — service bonus, severance fund, interest on severance and holiday pay — each on its own base and settled from payslips already confirmed, because a draft does not count. And the final settlement, with compensation according to the type of contract.

  2. It can be checked

    Every figure with its law, and a test watching it

    One hundred and sixty automated tests for the module and three hundred and ninety-five counting the whole workshop, all passing and re-run on every change. Every rate carries beside it the article of the Labour Code, the decree or the act it comes from, with the date it was consulted, and one test fails the whole battery if anyone adds a rate without saying where it came from. Two real errors were caught by those tests while it was being written: the holiday-pay divisor was out by a factor of twelve, and the one for the second withholding procedure divided by twelve where the law says thirteen. That is the whole difference between a spreadsheet and this.

  3. And a decision worth seeing

    The Sunday surcharge is not a number, it is a table

    The Sunday surcharge rose from eighty to ninety per cent on 1 July 2026, and the law lets each employer take the phased route or not, with that ninety as the floor and not the ceiling. So June 2026's payroll and July's carried different rates, and two companies can settle the same Sunday with different figures and both be right. That is why it is a table with an effective date here and not a constant, with a test on each side of that date. And that is why, in a company that was already running payroll, the first thing to review is the Sundays paid since that date: a single number leaves half a year settled wrongly, and nobody notices until the claim arrives. The next step is 1 July 2027.

  4. Missing, and this is the one that weighs

    The document for the tax authority

    The module calculates and does not yet issue the electronic payroll document. In Colombia that is not one more piece: it is the one thing the law requires, and without it what is left open is whether that cost stands up in your income tax return. Today that part is solved with another tool, and I am telling you here rather than after you have paid. Also missing: the integrated contributions return, the journal entry, the income and withholding certificate, the three late-payment penalties, and the retroactive severance regime, which the module flags and does not calculate.

  5. And the test that actually counts

    A real payroll, closed with its accountant

    Reading the law is not the same as having run payrolls. Until a service bonus, a severance payment, a period of sick leave and a final settlement have gone through for real, with your accountant checking and with the document accepted by the tax authority, nobody knows what is still absent. That is exactly what the three launch places are buying, and it is why they are paid when your first payroll comes out and not before. Two contradictions in the law itself are written inside the module rather than settled by hand: whether the surcharges stack, where article 168 and common practice say different things, and the ceiling on the contribution base for occupational risk, which one decree puts at twenty minimum wages and health and pension put at twenty-five. Where no rule settles it, the calculation stops and says so.

I am not publishing a delivery date. I cannot stand behind one in front of you today, and I would rather say so here than have you read it in an email three months from now. What I do publish is how you hear about it and how long you wait.

Every two weeks I write you three things: what was finished, what is missing and what moved. No decoration and no pretty screenshots. If something slips, you hear it the day it slips, not on delivery day.

And there is a cut-off date: if by 31 March 2027 your first payroll run has not gone out of your Odoo, I return the deposit in full and you owe me nothing. That date is not the delivery date; it is the date on which you stop waiting for me at no cost.

What I looked for before writing this page, on 23 September 2026, and you should know it before you hold anything. For the tax authority's document there is something published and maintained: Jorels SAS gives away, as free software, an electronic payroll module with a branch for Odoo 19 and fixes landing through this year. It produces the document and transmits it to the tax authority through its own author's service, and it does not bring the Colombian calculation rules. If what you are short of is the document, and your payroll is already worked out correctly elsewhere, that module will do for you — and you are hearing it from the person trying to sell you his. For the calculation I found nothing published for 19: the community's free engine has a branch and is alive, but ships without any country's rules; the community's Colombian localisation has a 19 branch and carries no payroll, and its only proposed payroll contribution targets version 16 and has not moved since October 2023.

04

The launch places, and the price

You pay per company, not per user, exactly as with the accounting. What is different from every other page on this site is when you pay: the deposit now, the setup on the day your first payroll run goes out, and the monthly plan from that same day.

USD 39 a month

Monthly run

Up to fifteen people. The full month: earnings and deductions, social security and payroll taxes, overtime, surcharges and Sunday work, transport allowance, sick and parental leave, statutory benefits accrued month by month, withholding tax under whichever procedure applies to each person, the individual and consolidated payslips, and the entry in your own accounting. Setup: USD 290.

USD 69 a month

Full payroll

Up to forty people, several branches and several cost centres. Everything above plus the electronic payroll support document and its adjustment notes transmitted from your own Odoo, final settlements when someone leaves, and the summaries your accountant needs for the contribution return and for the year end. Setup: USD 390.

Tailored

Over forty, or a special regime

More than forty people, several companies on the same Odoo, a migration from another payroll system with its accumulated balances, or a sector with rules of its own. Quoted after a fifteen-minute call, and if it does not suit you I will say so on that call.

Launch: the first three companies get their first payroll run done together, with their accountant on the call and the month's close reviewed; the loading of their staff history at no cost, meaning contracts, salaries and accumulated balances for benefits and holidays; the plan price frozen for as long as it stays active; and priority in the build order for whatever they ask for that the law requires. It is not a discount: the published price is the one that stays once the three places are gone. In return I ask for two concrete things, and they are worth reading before you write to me: patience with deadlines I cannot promise today, and half an hour every two weeks to tell me what the run you have just received is still missing.

How it is paid: the place is held with USD 90, which comes off the setup. The rest of the setup is paid on the day your first payroll run goes out of your Odoo, and the monthly plan starts running that same day, not before. If by 31 March 2027 that run has not gone out, I return the USD 90 in full. The monthly plan is cancelled whenever you want, with no lock-in, and stays active until the last day of the month you paid for; pay for the year and two months are free. Prices are in United States dollars and no VAT is added to them under my tax regime, so that is the final figure; whatever your company has to withhold on the payment comes from its own regime and is agreed in the proposal. Full conditions in the refund policy.

05

How it starts

01

Fifteen minutes to see your case

How many people, in which sector, on what kinds of contract, who puts the run together today, where you file with the tax authority and which version of Odoo you work with. If your case does not fit what I am building, you hear it here and you hold nothing.

02

The place held and the Odoo ready

With the deposit, everything that does not depend on the module is prepared: the engine installed on your Odoo 19, the payroll accounts and cost centres, and the contracts and people loaded with their balances up to date.

03

One month run in parallel

Before anything changes, the month is calculated in the module and compared against what you settled and against what you filed with the tax authority, person by person and item by item. Every difference is explained one by one; the ones that belong to the module get fixed.

04

The first payroll run, together

The run is issued in your Odoo with your accountant on the call, the journal entry is checked against your accounting, and you keep the guide so your own people do it alone the following month. That is the day the monthly plan starts.

06

What it does not include

What is out, said before you pay, which is when it is of any use.

Payments to contractors

What your company pays an independent contractor for services is not payroll and does not go in this document: it has its own supporting document before the tax authority and its own withholding. That is resolved on the accounting side, not here.

Sectors with rules of their own

The public sector, construction, farm work, domestic work, transport, apprentices on a training contract and employees on the all-inclusive salary scheme have their own rules, their own bases or their own collective agreements. The launch places do not cover them. If your company is in one of those cases, say so on the call: it is quoted separately and with its own timeline, or I tell you no.

What belongs to your accountant and to the operators

Registering people and filing joiners and leavers, settling and paying the contribution return through your operator, submitting the returns, and the judgement of which payment counts as salary and which does not. The module calculates, keeps the detail and produces the supporting documents; registering, filing, paying and signing remain your company's and your accountant's, with their responsibility.

What I do not do

Recruitment, employment contracts, employment law advice, defending you before the Ministry of Labour or the social-security enforcement agency, or time and attendance with a biometric clock. Hours go into the module; where those hours come from is another project and is quoted separately.

07

Frequently asked

Why buy something that has only just started?

For three reasons you can check: you pay neither the setup nor the plan until your first payroll run goes out of your Odoo; the price stays frozen for you while the plan is active; and whatever your company needs, if the law requires it, is built before anything else. If none of that pays for the wait, then wait: when it is finished it will still be here, and you buy it then.

An electronic payroll module for Colombia already exists. Why not use that one?

Because they solve different things, and it is worth knowing which one you need. The one that exists, from Jorels SAS, is free software, has a branch for Odoo 19 and is being fixed this year: it builds the electronic payroll support document and transmits it to the tax authority through its author's service. What it does not bring is the Colombian calculation rules, which are the part that decides how much each person is owed. If your payroll is already worked out correctly and the document is all you are short of, that module will do for you — and you are hearing it from the person trying to sell you his.

Why believe you will finish it?

Because of what is already done and can be looked at on this same site. Colombian withholding tax, its bridge to electronic invoicing and the withholding certificates are in production on Odoo 19 Community, with ninety-nine automated tests re-run on every change. The Ecuadorian localisation is already on 19: eleven modules with five hundred and eighty tests passing. Colombian payroll is being built in the same workshop and with the same method.

Can we run payroll on Odoo Community today, without this?

Not really. Odoo's Payroll app is an Enterprise one, charged per user, and even paying for it you get no Colombian rules: Colombia is not on the list of countries Odoo ships payroll for. The community's free engine does exist and has a branch for Odoo 19, but it ships empty of rules: somebody has to write Colombia's, which is precisely what I am doing. What you can do today is record people, contracts and time off, and post the cost by hand.

What happens if we do not file the electronic payroll?

The document is what supports that cost and that deduction in your corporate income tax return, so what is left open without it is not a fine but the cost itself. It is an obligation within the electronic invoicing system and it came in by groups according to headcount, and the last group on the calendar is the one from one to ten employees, so the size of your company does not leave you out. The deadline is within the first ten days of the month following the payment. Exactly what applies to your case is for your accountant to say, not for this page.

Who owns the code?

It is free software under the AGPL-3 licence and it is installed on your server: yours to use and to modify, and not dependent on my still being around. What is charged for is the setup, keeping the rules current and the support.

What happens when the minimum wage, the tax unit or a surcharge changes?

While the plan is active, the change is applied on your installation at no extra cost. That is the reason there is a monthly plan and not a single payment: in Colombia the figure that is right today stops being right in January, and some of them stop being right in July.

We already have Colombian accounting with you. Do they join up?

Yes, and it is the simplest case: same Odoo, same company and same accounting, so the payroll entry lands where your invoices and withholdings already are. The two plans are paid for separately and each is cancelled separately. If you do not have it yet, it is on the Odoo accounting localisation for Colombia.

What if we grow from fifteen to twenty people?

You move to the next plan from the month you go over the limit, and you hear it from me when I see it on your own payroll run, not when the invoice arrives. There is no backdated charge and no new setup.

What do we need to have to start?

Odoo 19 Community with your accounting running, your people's current contracts and salaries, and this year's accumulated balances: benefits accrued and holidays outstanding. If you are coming from another payroll system, those balances come out of it and I load them.

08 /

Take a launch place

Tell me how many people you have on the payroll, which sector your company is in and how the run is put together today. I reply within one business day, and if your case does not fit the launch you hear it in that reply.

contacto@andresbrinez.com

+593 95 893 3406 · WhatsApp

By sending this form you accept that I use your details only to reply to you, under the privacy policy.

Six years building systems for companies in three countries: Colombia, Ecuador and Australia · Member of the Odoo Community Association

WhatsApp