hr.leave.accrual.level: fields, relations and API
The hr.leave.accrual.level model ("Accrual Plan Level") is a persistent model declared by the Time Off module, then extended by 1 other module. It exposes 36 fields, 30 of them declared directly on the model. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.
Model identity
- Technical name
hr.leave.accrual.level- Label
- Accrual Plan Level
- Type
- Persistent (models.Model)
- SQL table
hr_leave_accrual_level- Origin module
- Time Off (
hr_holidays) - Extended by
- hr_holidays_attendance
- Default order (_order)
sequence asc
Model fields
30 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
36 of 36 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| accrual_plan_id | Accrual Plan | many2one | required |
| accrual_validity | Accrual Validity | boolean | computed, stored |
| accrual_validity_count | Accrual Validity Count You can define a period of time where the days carried over will be available | integer | |
| accrual_validity_type | Accrual Validity Type This field defines the unit of time after which the accrual ends. | selection | required Values: |
| accrued_gain_time | Accrued Gain Time | selection | related: |
| action_with_unused_accruals | Action With Unused Accruals When the Carry-Over Time is reached, according to Plan's setting, select what you want to happen with the unused time off: Lost (time will be reset to zero), Carried over (accrued time carried over to the next period.) | selection | requiredcomputed, stored Values: |
| added_value | Added Value | float | required |
| added_value_type | Added Value Type | selection | requiredcomputed, stored Values: |
| can_be_carryover | Can Be Carryover | boolean | read-only related: |
| can_modify_value_type | Can Modify Value Type | boolean | computed |
| cap_accrued_time | Cap Accrued Time When the field is checked the balance of an allocation using this accrual plan will never exceed the specified amount. | boolean | |
| cap_accrued_time_yearly | Cap Accrued Time Yearly When the field is checked the total amount accrued each year will be capped at the specified amount | boolean | |
| carryover_options | Carryover Options You can limit the accrued time carried over for the next period. | selection | requiredcomputed, stored Values: |
| first_day | First Day | selection | Values computed at runtime |
| first_month | First Month | selection | Values: |
| first_month_day | First Month Day | selection | computed, stored Values computed at runtime |
| frequency | Frequency | selection | requiredcomputed, stored Values: |
| maximum_leave | Maximum Leave Choose a cap for this accrual. | float | computed, stored |
| maximum_leave_yearly | Maximum Leave Yearly | float | |
| milestone_date | Milestone Date | selection | requiredcomputed, stored Values: |
| postpone_max_days | Postpone Max Days Set a maximum of accruals an allocation keeps at the end of the year. | integer | |
| second_day | Second Day | selection | Values computed at runtime |
| second_month | Second Month | selection | Values: |
| second_month_day | Second Month Day | selection | computed, stored Values computed at runtime |
| sequence | sequence Sequence is generated automatically by start time delta. | integer | computed, stored |
| start_count | Start Count The accrual starts after a defined period from the allocation start date. This field defines the number of days, months or years after which accrual is used. | integer | |
| start_type | Start Type This field defines the unit of time after which the accrual starts. | selection | required Values: |
| week_day | Allocation on | selection | required Values: |
| yearly_day | Yearly Day | selection | computed, stored Values computed at runtime |
| yearly_month | Yearly Month | selection | Values: |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- hr.leave.accrual.plan: accrual_plan_id
Fields of other models pointing here
No Many2one or Many2many field of another model points to this model.
Reading this model through the API
Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.
curl -X POST "https://your-instance.odoo.com/json/2/hr.leave.accrual.level/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["accrual_plan_id","accrual_validity_type","action_with_unused_accruals","added_value","added_value_type"],"limit":5}'import requests
BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}
res = requests.post(
f"{BASE_URL}/hr.leave.accrual.level/search_read",
headers=headers,
json={"domain": [], "fields": ["accrual_plan_id","accrual_validity_type","action_with_unused_accruals","added_value","added_value_type"], "limit": 5},
)
res.raise_for_status()
print(res.json())- External API access requires Odoo's Custom plan.
- XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
- The access rights and record rules of the key's user apply.
Cite this tool
Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.
<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/hr-leave-accrual-level">hr.leave.accrual.level (Odoo 19.0)</a>Sources
Data verified on September 23, 2026 · Odoo 19.0 Community
Have an Odoo project, or want to put your ERP to work with AI? Let's talk
Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.