Odoo 19.0 Community · Persistent

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 nameLabelTypeDetails
accrual_plan_idAccrual Planmany2one
required
accrual_validityAccrual Validityboolean
computed, stored
accrual_validity_countAccrual Validity Count

You can define a period of time where the days carried over will be available

integer
accrual_validity_typeAccrual Validity Type

This field defines the unit of time after which the accrual ends.

selection
required

Values: day (Days), month (Months)

accrued_gain_timeAccrued Gain Timeselection

related: accrual_plan_id.accrued_gain_time

action_with_unused_accrualsAction 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: lost (Lost), all (Carried over)

added_valueAdded Valuefloat
required
added_value_typeAdded Value Typeselection
requiredcomputed, stored

Values: day (Day(s)), hour (Hour(s))

can_be_carryoverCan Be Carryoverboolean
read-only

related: accrual_plan_id.can_be_carryover

can_modify_value_typeCan Modify Value Typeboolean
computed
cap_accrued_timeCap 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_yearlyCap Accrued Time Yearly

When the field is checked the total amount accrued each year will be capped at the specified amount

boolean
carryover_optionsCarryover Options

You can limit the accrued time carried over for the next period.

selection
requiredcomputed, stored

Values: unlimited (Unlimited), limited (Up to)

first_dayFirst Dayselection

Values computed at runtime

first_monthFirst Monthselection

Values: 1 (January), 2 (February), 3 (March), 4 (April), 5 (May), 6 (June)

first_month_dayFirst Month Dayselection
computed, stored

Values computed at runtime

frequencyFrequencyselection
requiredcomputed, stored

Values: hourly (Hourly), daily (Daily), weekly (Weekly), bimonthly (Twice a month), monthly (Monthly), biyearly (Twice a year), yearly (Yearly)

maximum_leaveMaximum Leave

Choose a cap for this accrual.

float
computed, stored
maximum_leave_yearlyMaximum Leave Yearlyfloat
milestone_dateMilestone Dateselection
requiredcomputed, stored

Values: creation (At allocation creation), after (After)

postpone_max_daysPostpone Max Days

Set a maximum of accruals an allocation keeps at the end of the year.

integer
second_daySecond Dayselection

Values computed at runtime

second_monthSecond Monthselection

Values: 7 (July), 8 (August), 9 (September), 10 (October), 11 (November), 12 (December)

second_month_daySecond Month Dayselection
computed, stored

Values computed at runtime

sequencesequence

Sequence is generated automatically by start time delta.

integer
computed, stored
start_countStart 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_typeStart Type

This field defines the unit of time after which the accrual starts.

selection
required

Values: day (Days), month (Months), year (Years)

week_dayAllocation onselection
required

Values: 0 (Monday), 1 (Tuesday), 2 (Wednesday), 3 (Thursday), 4 (Friday), 5 (Saturday), 6 (Sunday)

yearly_dayYearly Dayselection
computed, stored

Values computed at runtime

yearly_monthYearly Monthselection

Values: 1 (January), 2 (February), 3 (March), 4 (April), 5 (May), 6 (June), 7 (July), 8 (August), 9 (September), 10 (October), 11 (November), 12 (December)

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

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
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}'
Python (requests)
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.