Skip to Content
Odoo model

res.country

Country. Defined in module base; exists in Odoo 16, 17, 18, 19, 20. Across the upgrade steps we tracked: 5 fields added, 3 removed, 0 renamed.

Represents a nation or territory. Used for addressing, tax rules (fiscal positions), and localization settings.

  1. Odoo 16 base
  2. Odoo 17 base
  3. Odoo 18 base
  4. Odoo 19 base
  5. Odoo 20 base

Odoo 16 to 17

Community only All changes in this step

No change to this model's own fields in this step.

Odoo 17 to 18

Community only All changes in this step

Now also inherits pos.load.mixin (fields from these parents are listed on their own pages).

Odoo 18 to 19

Community + Enterprise All changes in this step

Fields removed (1)

FieldTypeModuleNotes
intrastatbooleanaccount_intrastat

Fields added (3)

FieldTypeModule
country_group_codesjsonbase
has_foreign_fiscal_positionbooleanbase_vat
is_mercado_pago_supported_countrybooleanpayment
2 views of this model removed
  • account_intrastat.view_country_form
  • account_intrastat.view_country_tree

Odoo 19 to 20

Community + Enterprise All changes in this step

Fields removed (2)

FieldTypeModuleNotes
l10n_br_edi_codecharl10n_br_edi
zip_requiredbooleanbase

Fields added (2)

FieldTypeModule
l10n_be_nis_codecharl10n_be_hr_payroll
zip_applicabilityselectionbase
1 views of this model removed
  • l10n_br_edi.view_res_country_form

All fields declared on res.country (35)

Fields this model declares itself in any version, with the versions they exist in. Inherited fields (mail.thread and other mixins) are on the parent model's page.

present not present not covered (Enterprise, Odoo 16 and 17)

Show all 35 fields
FieldTypeLabelModule1617181920
address_formattextLayout in Reportsbase
address_view_idmany2one ir.ui.viewInput Viewbase
codecharCountry Codebase
country_group_codesjsonbase
country_group_idsmany2many res.country.groupCountry Groupsbase
currency_idmany2one res.currencyCurrencybase
demonymcharl10n_mx_reportsE
enforce_citiesbooleanEnforce Citiesbase_address_extended
has_foreign_fiscal_positionbooleanl10n_eu_account_vies
image_urlcharFlagbase
intrastatbooleanIntrastat memberaccount_intrastatE
is_mercado_pago_supported_countrybooleanpayment
is_stripe_supported_countrybooleanpayment
l10n_ar_afip_codecharARCA Codel10n_ar
l10n_ar_natural_vatcharNatural Person VATl10n_ar
l10n_ar_other_vatcharOther VATl10n_ar
l10n_be_nis_codecharNIS Codel10n_be_hr_payrollE
l10n_br_edi_codecharBR Country Codel10n_br_ediE
l10n_cl_customs_abbreviationcharCustoms Abbreviationl10n_cl
l10n_cl_customs_codecharCustoms Codel10n_cl
l10n_cl_customs_namecharCustoms Namel10n_cl
l10n_ec_code_atscharATS Codel10n_ec_ediE
l10n_ec_code_tax_havencharATS Tax Haven Codel10n_ec_ediE
l10n_mx_edi_codecharCode MXl10n_mx_ediE
l10n_pe_agreement_codecharAgreement Codel10n_pe_reportsE
l10n_pe_codecharCode PEl10n_pe_reportsE
namecharCountry Namebase
name_positionselectionCustomer Name Positionbase
phone_codeintegerPhone Prefixbase
state_idsone2many res.country.stateStatesbase
state_requiredbooleanbase
vat_labelcharVat Labelbase
zip_applicabilityselectionZipbase
zip_requiredbooleanbase

Related models

Inherits: pos.load.mixin

Linked by its relational fields: ir.ui.viewres.country.groupres.country.stateres.currency

Coverage. Odoo 16 to 17 and 17 to 18 compare Community modules only (the Enterprise 16 and 17 sources are not available to us). Odoo 18 to 19 and 19 to 20 include Community and Enterprise modules. Everything here comes from a static read of the Odoo source code: a field counts as removed only when no parent model, mixin or delegated model still provides it. Fields created dynamically at run time can be missed, and entries we could not confirm are marked as low confidence.