Guatemala Payroll - Planilla GT
Full Guatemalan payroll on Odoo 17: IGSS, ISR mensual, Bono 14, Aguinaldo, Vacaciones, Indemnizacion, IRTRA, INTECAP, Bonificacion Incentivo, horas extras 50%/100%, employee advances, shift scheduling vs attendance with approval flow.
ARMKU LLC · Odoo 17.0 · version 17.0.7.5.0 · OPL-1
A complete Guatemalan payroll layer for Odoo 17 â every salary rule, accrual, withholding, and quincenal workflow a real GT business needs to run payroll without spreadsheets.
Compatibility
- Odoo 17.0 Community / Enterprise (tested in production on a multi-location restaurant)
- Requires
om_hr_payrollandom_hr_payroll_accountfrom the Odoo Mates community apps â install separately (free, MIT)
What it adds (the headline features)
1. IGSS afiliación on the employee record
Two new fields on hr.employee: gt_igss_afiliado (Bool) and gt_igss_fecha_inicio (Date). The IGSS employee salary rule only applies when both conditions hold AND the payroll period starts on or after the affiliation date. This lets HR hire someone today and start the IGSS clock only when they actually affiliate â exactly how Guatemalan labour law expects (you have until month 4).
2. Employee cash advances (Adelantos)
A new l10n_gt.payroll.adelanto model: employee requests an advance, admin approves it, cash or bank pays it out, and the next payroll auto-deducts it via the ADELANTO_DEDUC salary rule until the balance reaches zero. Per-payslip view shows outstanding advances per employee.
3. Shift scheduling (Turnos)
l10n_gt.payroll.turnoâ your shift catalogue (Cocina mañana, Sala tarde, Cierre, etc.).
l10n_gt.payroll.programacionâ assignments per employee per day.
- Weekly target: 42h (the Guatemalan legal cap).
4. Scheduled vs actual variance approval
Daily cron walks through hr.attendance and compares to l10n_gt.payroll.programacion. Every diff (tardy, early leave, OT, no-show, swap) becomes a l10n_gt.payroll.variacion record that the admin approves or rejects before it affects payroll. Full audit trail on every state change.
5. Salary rules â the full Guatemalan stack
| Rule | Notes |
|---|---|
| IGSS empleado | 4.83% deducción |
| IGSS patronal | 10.67% aporte |
| ISR mensual | Régimen Asalariado, escala SAT vigente |
| Bono 14 | Provisión 8.33% + payout julio |
| Aguinaldo | Provisión 8.33% + payout diciembre |
| Vacaciones | 15 dÃas hábiles/año, provisión 4.17% |
| Indemnización | 1 mes por año de servicio, provisión 9.72% |
| IRTRA | 1% patronal |
| INTECAP | 1% patronal |
| Bonificación Incentivo | Q250 fijo no afecto a IGSS/ISR |
| Horas extras 50% | OT diurnas |
| Horas extras 100% | Nocturnas / dominicales / feriados |
| ADELANTO_DEDUC | Recuperación de adelantos |
All loaded via data XML on install. Restructure or override via the standard Odoo salary rule editor.
6. Liquidación wizard
One screen: select employee + termination date â wizard pre-fills final salary, prorrata Bono 14 / Aguinaldo / Vacaciones, indemnización, final IGSS, final ISR. Creates the final payslip in one click.
7. Boleta de pago employee portal
Employees see their own payslips at /my/boleta. Sign-with-DPI flow: a tokenised URL emails them the link, they sign (touchscreen or mouse), the IP + timestamp are stored, and the signed PDF replaces the unsigned version.
8. Guatemalan holidays 2026
Pre-loaded into resource.calendar.leaves so payroll doesn't have to enter Independence Day, Holy Week, etc. by hand.
New models added
| Model | Purpose |
|---|---|
l10n_gt.payroll.adelanto | Employee cash advances with installment recovery |
l10n_gt.payroll.turno | Shift catalogue |
l10n_gt.payroll.programacion | Shift à employee à date assignment |
l10n_gt.payroll.variacion | Scheduled-vs-actual variance with approval workflow |
l10n_gt.payroll.propina | Tip distribution to staff |
l10n_gt.payroll.feriado | Local holiday register |
Payroll inputs auto-generated
compute_sheet() is overridden to populate hr.payslip.input with:
| code | Represents | Source |
|---|---|---|
HE_50 | Approved 50% overtime hours | variacion type hora_extra_50, approved |
HE_100 | Approved 100% overtime hours | variacion type hora_extra_100, approved |
FALTA_H | Approved no-show hours | variacion type falta_marcaje, approved |
ADELQ | Period's advance recovery installment | adelanto in state pagado with balance |
Install
# 1) Install om_hr_payroll + om_hr_payroll_account first
git clone https://github.com/odoomates/odooapps.git /tmp/odoomates
cp -r /tmp/odoomates/om_hr_payroll /tmp/odoomates/om_hr_payroll_account YOUR_ADDONS_DIR/
# 2) Drop this module into YOUR_ADDONS_DIR
unzip l10n_gt_payroll-17.0.7.4.0.zip -d YOUR_ADDONS_DIR/
# 3) Install
sudo systemctl stop odoo
sudo -u odoo /path/to/odoo-bin \
-c /etc/odoo/odoo.conf -d YOUR_DB \
--stop-after-init --no-http \
-i l10n_gt_payroll
sudo systemctl start odoo
Initial setup (one-time, ~30 min)
After install:
- HR â Configuración â Settings â set your company's IGSS patrono number.
- HR â Employees â for each existing employee, set IGSS afiliado + fecha inicio.
- Payroll â Configuración â Estructuras Salariales â confirm the GT structure loaded (
KS-GT-NOM).
- Payroll â Configuración â Turnos â define your shift catalogue.
- Payroll â Programación â schedule the first week.
- Wait for the daily variance cron to run (or trigger it manually from System Parameters â Scheduled Actions).
Best-fit use cases
- Restaurants and food-service businesses in Guatemala (5â200 employees).
- Distributors / wholesalers running quincenal payroll.
- Service businesses needing IGSS/ISR compliance plus shift scheduling.
Not for fully-remote companies with no shift component, or businesses outside Guatemala. The salary rules are GT-specific.
Limitations / honest caveats
- This module is Odoo 17 only until the 18 port lands.
- ISR mensual table reflects the SAT scale at module write time; review when SAT publishes new scales (one-line update to
data/salary_rules.xml).
- IGSS rates are hard-coded â if the IGSS board changes them, override via the salary rule editor.
- The Bono 14 / Aguinaldo accrual uses a simplified pro-rata; if you need the SAT-exact monthly accrual, override the rule.
- The COA mapping in
post_init.pyfalls back to2.1.01.01 Cuentas por Pagarif a dedicated2.1.05.01 Sueldos por Pagaraccount isn't found. Create the dedicated account in your COA to split payroll from general AP.
Support
This module is a 4,500-line localization layer â we strongly recommend the Installation & Setup Service for first-time installs to make sure your salary rules, sequence, IGSS settings, and mail templates wire correctly.
Support. Bugs and configuration questions are answered by the author. Write to rkong@armku.us quoting your order number.
© 2026 ARMKU LLC · armku.us
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Discuss (mail) • Employee Contracts (hr_contract) • Employees (hr) • Invoicing (account) • Time Off (hr_holidays) • Calendar (calendar) |
| Community Apps Dependencies | Show |
| Lines of code | 6488 |
| Technical Name |
l10n_gt_payroll |
| License | OPL-1 |
| Website | https://armku.us |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module