| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/l10n_sa_edi |
| VERSION | |
| VERSION | 0.3 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Josse Colpaert, qdp-odoo, Laurent Smet, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Gorash, william-andre, jbw-odoo, Pedram (PEBR), Maximilien (malb), Mahamadasif Ansari, Gauthier Wala (gawa), Yosua Nicolaus, Dylan Kiss (dyki), khfa, Sarah Bellefroid, sesn-odoo, AMZIL Ayoub, Louis Gobert, Harsh Shah, Mathieu Coutant, Khumam Alzagim, Yousef Alnashef (alny), Claire (clbr), Hammad Arif, Antoine Dupuis, Hesham Saleh, abwa, khsr-odoo, Anton Romanova (roan), Corentin Lombard, AKR, dvsh-odoo, bhra-odoo, Earth Patel, Ayush Modi, Jacob Was (jacw), khom-odoo, Omar Khalid, Nesma Harraz (neha), MohsinAli Masi, matd-odoo, Adnan Sabbir, yush-odoo, Farah (ahmfa), Ahmad Khater, amml |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:44 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account_edi - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - http_routing - auth_signup - digest - resource - account_edi_ubl_cii - l10n_sa - l10n_gcc_invoice - account_debit_note - base_vat - certificate |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
E-invoice implementation for Saudi Arabia; Integration with ZATCA
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
export_sa_zatca_ubl_extensions |
export_sa_zatca_ubl_extensions | ir.ui.view | qweb | New |
export_sa_zatca_ubl_signed_properties |
export_sa_zatca_ubl_signed_properties | ir.ui.view | qweb | New |
l10n_sa_edi_external_layout_bold |
l10n_sa_edi_external_layout_bold | ir.ui.view | qweb | Inherits web.external_layout_bold |
l10n_sa_edi_external_layout_boxed |
l10n_sa_edi_external_layout_boxed | ir.ui.view | qweb | Inherits web.external_layout_boxed |
l10n_sa_edi_external_layout_bubble |
l10n_sa_edi_external_layout_bubble | ir.ui.view | qweb | Inherits web.external_layout_bubble |
l10n_sa_edi_external_layout_folder |
l10n_sa_edi_external_layout_folder | ir.ui.view | qweb | Inherits web.external_layout_folder |
l10n_sa_edi_external_layout_standard |
l10n_sa_edi_external_layout_standard | ir.ui.view | qweb | Inherits web.external_layout_standard |
l10n_sa_edi_external_layout_striped |
l10n_sa_edi_external_layout_striped | ir.ui.view | qweb | Inherits web.external_layout_striped |
l10n_sa_edi_external_layout_wave |
l10n_sa_edi_external_layout_wave | ir.ui.view | qweb | Inherits web.external_layout_wave |
l10n_sa_edi_otp_wizard_view_form |
l10n_sa_edi.otp.wizard.form | l10n_sa_edi.otp.wizard | form | New |
l10n_sa_edi_report_invoice_document |
l10n_sa_edi_report_invoice_document | ir.ui.view | qweb | Inherits l10n_sa.l10n_sa_report_invoice_document |
res_config_settings_view_form |
res.config.settings.view.form.inherit.l10n_sa_edi | res.config.settings | xpath | Inherits account.res_config_settings_view_form |
sa_partner_address_form |
sa.partner.form.address | res.partner | form | New |
view_account_form_inherit |
account.move.form.inherit | account.move | xpath | Inherits account.view_move_form |
view_account_journal_form |
account.journal.form.l10n_sa_edi | account.journal | xpath | Inherits account.view_account_journal_form |
view_company_form |
res.company.l10n_sa_edi.form | res.company | xpath | Inherits base.view_company_form |
view_partner_form |
res.partner.l10n_sa_edi.form | res.partner | xpath | Inherits base.view_partner_form |
view_tax_form |
account.tax.form.zatca | account.tax | xpath | Inherits account.view_tax_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
l10n_sa_chain_sequence_id
Many2one → ir.sequence
copy=False
readonly=True
string='ZATCA account.move chain sequence'
args: 'ir.sequence'
l10n_sa_compliance_checks_passed
Boolean
copy=False
default=False
help='Specifies if the Compliance Checks have been completed successfully'
args: 'Compliance Checks Done'
l10n_sa_compliance_csid_certificate_id
Many2one → certificate.certificate
comodel_name='certificate.certificate'
domain=[('is_valid', '=', True)]
string='CCSID certificate'
l10n_sa_compliance_csid_json
Char
copy=False
groups='base.group_system'
help='Compliance CSID data received from the Compliance CSID API in dumped json format'
args: 'CCSID JSON'
l10n_sa_csr
Binary
attachment=True
copy=False
groups='base.group_system'
help='The Certificate Signing Request that is submitted to the Compliance API'
l10n_sa_csr_errors
Html
copy=False
args: 'Onboarding Errors'
l10n_sa_latest_submission_hash
Char
copy=False
help='Hash of the latest submitted invoice to be used as the Previous Invoice Hash (KSA-13)'
args: 'Latest Submission Hash'
l10n_sa_production_csid_certificate_id
Many2one → certificate.certificate
comodel_name='certificate.certificate'
domain=[('is_valid', '=', True)]
string='PCSID Certificate'
l10n_sa_production_csid_json
Char
copy=False
groups='base.group_system'
help='Production CSID data received from the Production CSID API in dumped json format'
args: 'PCSID JSON'
l10n_sa_production_csid_validity
Datetime
related='l10n_sa_production_csid_certificate_id.date_end'
No public methods.
l10n_sa_chain_index
Integer
copy=False
help='Invoice index in chain, set if and only if an in-chain XML was submitted and did not error'
readonly=True
string='ZATCA chain index'
l10n_sa_edi_chain_head_id
Many2one → account.move
copy=False
help='Technical field to know if the chain has been stopped by a previous invoice'
readonly=True
string='ZATCA chain stopping move'
args: 'account.move'
l10n_sa_invoice_signature
Char
copy=False
args: 'Unsigned XML Signature'
l10n_sa_uuid
Char
copy=False
help='Universally unique identifier of the Invoice'
string='Document UUID (SA)'
action_show_chain_head(self)
button_draft(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
onchange_amount(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
journal_id
Many2one → account.journal
default=<expr>
required=True
args: 'account.journal'
l10n_sa_otp
Char
copy=False
help='OTP required to get a CCSID. Can only be acquired through the Fatoora portal.'
args: 'OTP'
l10n_sa_renewal
Boolean
default=False
help='Used to decide whether we should call the PCSID renewal API or the CCSID API'
args: 'PCSID Renewal'
default_get(self, fields)
validate(self)
l10n_sa_api_mode
Selection
copy=False
default='sandbox'
help='Specifies which API the system should use'
required=True
args: [('sandbox', 'Sandbox'), ('preprod', 'Simulation (Pre-Production)'), ('prod', 'Production')]
l10n_sa_edi_additional_identification_number
Char
readonly=False
related='partner_id.l10n_sa_edi_additional_identification_number'
l10n_sa_edi_additional_identification_scheme
Selection
readonly=False
related='partner_id.l10n_sa_edi_additional_identification_scheme'
l10n_sa_edi_building_number
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_building_number'
l10n_sa_edi_is_production
Boolean
copy=False
string='Is Production'
l10n_sa_edi_plot_identification
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_plot_identification'
l10n_sa_private_key_id
Many2one → certificate.key
comodel_name='certificate.key'
copy=False
domain=[('public', '=', False)]
help='The private key used to generate the CSR and obtain certificates'
string='ZATCA Private key'
write(self, vals)
l10n_sa_api_mode
Selection
readonly=False
related='company_id.l10n_sa_api_mode'
No public methods.
l10n_sa_edi_additional_identification_number
Char
help='Additional Identification Number for the Seller/Buyer'
args: 'Identification Number (SA)'
l10n_sa_edi_additional_identification_scheme
Selection
default='OTH'
help='Additional Identification Scheme for the Seller/Buyer'
string='Identification Scheme'
args: [('TIN', 'Tax Identification Number'), ('CRN', 'Commercial Registration Number'), ('MOM', 'Momra License'), ('MLS', 'MLSD License'), ('700', '700 Number'), ('SAG', 'Sagia License'), ('NAT', 'National ID'), ('GCC', 'GCC ID'), ('IQA', 'Iqama Number'), ('PAS', 'Passport ID'), ('OTH', 'Other ID')]
l10n_sa_edi_building_number
Char
l10n_sa_edi_plot_identification
Char
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/l10n_sa_edi |
| VERSION | |
| VERSION | 0.3 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Josse Colpaert, Xavier Morel, Yannick Tivisse, Laurent Smet, Christophe Monniez, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Tiffany Chang (tic), odoo, Florian(flg), Vincent Larcin, Louis Wicket (wil), Maximilien (malb), Mahamadasif Ansari, Gauthier Wala (gawa), Pieter Claeys (clpi), Yosua Nicolaus, Dylan Kiss (dyki), hupo-odoo, khfa, Sarah Bellefroid, sesn-odoo, guva-odoo, yosa-odoo, kcv-odoo, mega, Mehdi (mebe), mebe-odoo, Louis Gobert, Louis (wil), mano-odoo, Harsh Shah, Yousef Alnashef (alny), Claire (clbr), Hammad Arif, Antoine Dupuis, Hesham Saleh, abwa, Corentin Lombard, nape-odoo, dvsh-odoo, bhra-odoo, Ayush Modi, Jacob Was (jacw), khom-odoo, Omar Khalid, Nesma Harraz (neha), MohsinAli Masi, Megaaaaaa, yush-odoo, Farah (ahmfa), Ahmad Khater |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account_edi - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - account_edi_ubl_cii - account_debit_note - l10n_sa - l10n_gcc_invoice - base_vat - certificate |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
E-invoice implementation for Saudi Arabia; Integration with ZATCA
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
arabic_english_invoice |
arabic_english_invoice | ir.ui.view | qweb | Inherits l10n_sa.arabic_english_invoice |
export_sa_zatca_ubl_extensions |
export_sa_zatca_ubl_extensions | ir.ui.view | qweb | New |
export_sa_zatca_ubl_signed_properties |
export_sa_zatca_ubl_signed_properties | ir.ui.view | qweb | New |
l10n_sa_edi_otp_wizard_view_form |
l10n_sa_edi.otp.wizard.form | l10n_sa_edi.otp.wizard | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.l10n_sa_edi | res.config.settings | xpath | Inherits account.res_config_settings_view_form |
sa_partner_address_form |
sa.partner.form.address | res.partner | form | New |
ubl_21_AddressType_zatca |
ubl_21_AddressType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_AddressType |
ubl_21_CreditNoteLineType_zatca |
ubl_21_CreditNoteLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_CreditNoteLineType |
ubl_21_CreditNoteType_zatca |
ubl_21_CreditNoteType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_CreditNoteType |
ubl_21_DebitNoteLineType_zatca |
ubl_21_DebitNoteLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_DebitNoteLineType |
ubl_21_DebitNoteType_zatca |
ubl_21_DebitNoteType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_DebitNoteType |
ubl_21_InvoiceLineType_zatca |
ubl_21_InvoiceLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_InvoiceLineType |
ubl_21_InvoiceType_zatca |
ubl_21_InvoiceType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_InvoiceType |
ubl_21_PartyType_zatca |
ubl_21_PartyType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PartyType |
ubl_21_PaymentMeansType_zatca |
ubl_21_PaymentMeansType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PaymentMeansType |
ubl_21_TaxTotalType_zatca |
ubl_21_TaxTotalType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_TaxTotalType |
view_account_journal_form |
account.journal.form.l10n_sa_edi | account.journal | xpath | Inherits account.view_account_journal_form |
view_account_move_reversal_inherit_l10n_sa_edi |
account.move.reversal.form.inherit.l10n_sa_edi | account.move.reversal | field | Inherits account.view_account_move_reversal |
view_company_form |
res.company.l10n_sa_edi.form | res.company | xpath | Inherits base.view_company_form |
view_partner_form |
res.partner.l10n_sa_edi.form | res.partner | xpath | Inherits base.view_partner_form |
view_tax_form |
account.tax.form.zatca | account.tax | xpath | Inherits account.view_tax_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)create_debit(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
l10n_sa_chain_sequence_id
Many2one → ir.sequence
copy=False
readonly=True
string='ZATCA account.move chain sequence'
args: 'ir.sequence'
l10n_sa_compliance_checks_passed
Boolean
copy=False
default=False
help='Specifies if the Compliance Checks have been completed successfully'
args: 'Compliance Checks Done'
l10n_sa_compliance_csid_certificate_id
Many2one → certificate.certificate
comodel_name='certificate.certificate'
domain=[('is_valid', '=', True)]
string='CCSID certificate'
l10n_sa_compliance_csid_json
Char
copy=False
groups='base.group_system'
help='Compliance CSID data received from the Compliance CSID API in dumped json format'
args: 'CCSID JSON'
l10n_sa_csr
Binary
attachment=True
copy=False
groups='base.group_system'
help='The Certificate Signing Request that is submitted to the Compliance API'
l10n_sa_csr_errors
Html
copy=False
args: 'Onboarding Errors'
l10n_sa_latest_submission_hash
Char
copy=False
help='Hash of the latest submitted invoice to be used as the Previous Invoice Hash (KSA-13)'
args: 'Latest Submission Hash'
l10n_sa_production_csid_certificate_id
Many2one → certificate.certificate
comodel_name='certificate.certificate'
domain=[('is_valid', '=', True)]
string='PCSID Certificate'
l10n_sa_production_csid_json
Char
copy=False
groups='base.group_system'
help='Production CSID data received from the Production CSID API in dumped json format'
args: 'PCSID JSON'
l10n_sa_production_csid_validity
Datetime
related='l10n_sa_production_csid_certificate_id.date_end'
l10n_sa_serial_number
Char
copy=False
help='Unique Serial Number automatically filled when the journal is onboarded'
args: 'Serial Number'
No public methods.
l10n_sa_chain_index
Integer
copy=False
help='Invoice index in chain, set if and only if an in-chain XML was submitted and did not error'
readonly=True
string='ZATCA chain index'
l10n_sa_invoice_signature
Char
copy=False
args: 'Unsigned XML Signature'
l10n_sa_uuid
Char
copy=False
help='Universally unique identifier of the Invoice'
string='Document UUID (SA)'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)reverse_moves(self, is_modify=False)
No new fields.
Public methods (0)No public methods.
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
onchange_amount(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
journal_id
Many2one → account.journal
default=<expr>
required=True
args: 'account.journal'
l10n_sa_otp
Char
copy=False
help='OTP required to get a CCSID. Can only be acquired through the Fatoora portal.'
args: 'OTP'
l10n_sa_renewal
Boolean
default=False
help='Used to decide whether we should call the PCSID renewal API or the CCSID API'
args: 'PCSID Renewal'
default_get(self, fields)
validate(self)
l10n_sa_additional_identification_number
Char
readonly=False
related='partner_id.l10n_sa_additional_identification_number'
l10n_sa_additional_identification_scheme
Selection
readonly=False
related='partner_id.l10n_sa_additional_identification_scheme'
l10n_sa_api_mode
Selection
copy=False
default='sandbox'
help='Specifies which API the system should use'
required=True
args: [('sandbox', 'Sandbox'), ('preprod', 'Simulation (Pre-Production)'), ('prod', 'Production')]
l10n_sa_edi_building_number
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_building_number'
l10n_sa_edi_plot_identification
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_plot_identification'
l10n_sa_private_key_id
Many2one → certificate.key
comodel_name='certificate.key'
copy=False
domain=[('public', '=', False)]
help='The private key used to generate the CSR and obtain certificates'
string='ZATCA Private key'
write(self, vals)
l10n_sa_api_mode
Selection
readonly=False
related='company_id.l10n_sa_api_mode'
No public methods.
l10n_sa_additional_identification_number
Char
help='Additional Identification Number for Seller/Buyer'
args: 'Identification Number (SA)'
l10n_sa_additional_identification_scheme
Selection
default='OTH'
help='Additional Identification scheme for Seller/Buyer'
string='Identification Scheme'
args: [('TIN', 'Tax Identification Number'), ('CRN', 'Commercial Registration Number'), ('MOM', 'Momra License'), ('MLS', 'MLSD License'), ('700', '700 Number'), ('SAG', 'Sagia License'), ('NAT', 'National ID'), ('GCC', 'GCC ID'), ('IQA', 'Iqama Number'), ('PAS', 'Passport ID'), ('OTH', 'Other ID')]
l10n_sa_edi_building_number
Char
l10n_sa_edi_plot_identification
Char
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/l10n_sa_edi |
| VERSION | |
| VERSION | 0.3 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Josse Colpaert, Xavier Morel, qdp-odoo, Laurent Smet, Moens Alexandre, Xavier-Do, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Brice bib Bartoletti, Nasreddin Boulif (bon), Gorash, Julien Van Roy, aliya, Florian(flg), Maximilien (malb), Mahamadasif Ansari, Gauthier Wala (gawa), Claire Bretton (clbr), Yosua Nicolaus, Dylan Kiss (dyki), hupo-odoo, khfa, Mehdi Bendali Hacine, Sarah Bellefroid, sesn-odoo, guva-odoo, yosa-odoo, Julien Carion (juca), mega, Mehdi (mebe), mebe-odoo, Louis Gobert, Yousef Alnashef (alny), Claire (clbr), Hammad Arif, abwa, Corentin Lombard, AKR, nape-odoo, dvsh-odoo, Jacob Was (jacw), khom-odoo, Omar Khalid, Nesma Harraz (neha), MohsinAli Masi |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account_edi - account - base_setup - base - web - onboarding - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - account_edi_ubl_cii - account_debit_note - l10n_sa - l10n_gcc_invoice - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
E-invoice implementation for Saudi Arabia; Integration with ZATCA
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_move_send_form |
account.move.send.form | account.move.send | xpath | Inherits account.account_move_send_form |
arabic_english_invoice |
arabic_english_invoice | ir.ui.view | qweb | Inherits l10n_sa.arabic_english_invoice |
export_sa_zatca_ubl_extensions |
export_sa_zatca_ubl_extensions | ir.ui.view | qweb | New |
export_sa_zatca_ubl_signed_properties |
export_sa_zatca_ubl_signed_properties | ir.ui.view | qweb | New |
l10n_sa_edi_otp_wizard_view_form |
l10n_sa_edi.otp.wizard.form | l10n_sa_edi.otp.wizard | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.l10n_sa_edi | res.config.settings | xpath | Inherits account.res_config_settings_view_form |
sa_partner_address_form |
sa.partner.form.address | res.partner | form | New |
ubl_21_AddressType_zatca |
ubl_21_AddressType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_AddressType |
ubl_21_CreditNoteLineType_zatca |
ubl_21_CreditNoteLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_CreditNoteLineType |
ubl_21_CreditNoteType_zatca |
ubl_21_CreditNoteType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_CreditNoteType |
ubl_21_DebitNoteLineType_zatca |
ubl_21_DebitNoteLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_DebitNoteLineType |
ubl_21_DebitNoteType_zatca |
ubl_21_DebitNoteType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_DebitNoteType |
ubl_21_InvoiceLineType_zatca |
ubl_21_InvoiceLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_InvoiceLineType |
ubl_21_InvoiceType_zatca |
ubl_21_InvoiceType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_InvoiceType |
ubl_21_PartyType_zatca |
ubl_21_PartyType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PartyType |
ubl_21_PaymentMeansType_zatca |
ubl_21_PaymentMeansType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PaymentMeansType |
ubl_21_TaxTotalType_zatca |
ubl_21_TaxTotalType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_TaxTotalType |
view_account_journal_form |
account.journal.form.l10n_sa_edi | account.journal | xpath | Inherits account.view_account_journal_form |
view_account_move_reversal_inherit_l10n_sa_edi |
account.move.reversal.form.inherit.l10n_sa_edi | account.move.reversal | field | Inherits account.view_account_move_reversal |
view_company_form |
res.company.l10n_sa_edi.form | res.company | xpath | Inherits base.view_company_form |
view_partner_form |
res.partner.l10n_sa_edi.form | res.partner | xpath | Inherits base.view_partner_form |
view_tax_form |
account.tax.form.zatca | account.tax | xpath | Inherits account.view_tax_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)create_debit(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
l10n_sa_chain_sequence_id
Many2one → ir.sequence
copy=False
readonly=True
string='ZATCA account.move chain sequence'
args: 'ir.sequence'
l10n_sa_compliance_checks_passed
Boolean
copy=False
default=False
help='Specifies if the Compliance Checks have been completed successfully'
args: 'Compliance Checks Done'
l10n_sa_compliance_csid_json
Char
copy=False
groups='base.group_system'
help='Compliance CSID data received from the Compliance CSID API in dumped json format'
args: 'CCSID JSON'
l10n_sa_csr
Binary
attachment=True
copy=False
groups='base.group_system'
help='The Certificate Signing Request that is submitted to the Compliance API'
l10n_sa_csr_errors
Html
copy=False
args: 'Onboarding Errors'
l10n_sa_latest_submission_hash
Char
copy=False
help='Hash of the latest submitted invoice to be used as the Previous Invoice Hash (KSA-13)'
args: 'Latest Submission Hash'
l10n_sa_production_csid_json
Char
copy=False
groups='base.group_system'
help='Production CSID data received from the Production CSID API in dumped json format'
args: 'PCSID JSON'
l10n_sa_production_csid_validity
Datetime
compute='_l10n_sa_compute_production_csid_validity'
help='Production CSID expiration date'
store=True
args: 'PCSID Expiration'
l10n_sa_serial_number
Char
copy=False
help='Unique Serial Number automatically filled when the journal is onboarded'
args: 'Serial Number'
No public methods.
l10n_sa_chain_index
Integer
copy=False
help='Invoice index in chain, set if and only if an in-chain XML was submitted and did not error'
readonly=True
string='ZATCA chain index'
l10n_sa_invoice_signature
Char
copy=False
args: 'Unsigned XML Signature'
l10n_sa_uuid
Char
copy=False
help='Universally unique identifier of the Invoice'
string='Document UUID (SA)'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)reverse_moves(self, is_modify=False)
l10n_sa_edi_enable_zatca
Boolean
compute='_compute_l10n_sa_edi_enable_zatca'
string='ZATCA'
No public methods.
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
onchange_amount(self)
No new fields.
Public methods (0)No public methods.
journal_id
Many2one → account.journal
default=<expr>
required=True
args: 'account.journal'
l10n_sa_otp
Char
copy=False
help='OTP required to get a CCSID. Can only be acquired through the Fatoora portal.'
args: 'OTP'
l10n_sa_renewal
Boolean
default=False
help='Used to decide whether we should call the PCSID renewal API or the CCSID API'
args: 'PCSID Renewal'
default_get(self, fields)
validate(self)
l10n_sa_additional_identification_number
Char
readonly=False
related='partner_id.l10n_sa_additional_identification_number'
l10n_sa_additional_identification_scheme
Selection
readonly=False
related='partner_id.l10n_sa_additional_identification_scheme'
l10n_sa_api_mode
Selection
copy=False
default='sandbox'
help='Specifies which API the system should use'
required=True
args: [('sandbox', 'Sandbox'), ('preprod', 'Simulation (Pre-Production)'), ('prod', 'Production')]
l10n_sa_edi_building_number
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_building_number'
l10n_sa_edi_plot_identification
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_plot_identification'
l10n_sa_private_key
Binary
attachment=False
copy=False
groups='base.group_system'
help='The private key used to generate the CSR and obtain certificates'
args: 'ZATCA Private key'
write(self, vals)
l10n_sa_api_mode
Selection
readonly=False
related='company_id.l10n_sa_api_mode'
No public methods.
l10n_sa_additional_identification_number
Char
help='Additional Identification Number for Seller/Buyer'
args: 'Identification Number (SA)'
l10n_sa_additional_identification_scheme
Selection
default='OTH'
help='Additional Identification scheme for Seller/Buyer'
string='Identification Scheme'
args: [('TIN', 'Tax Identification Number'), ('CRN', 'Commercial Registration Number'), ('MOM', 'Momra License'), ('MLS', 'MLSD License'), ('700', '700 Number'), ('SAG', 'Sagia License'), ('NAT', 'National ID'), ('GCC', 'GCC ID'), ('IQA', 'Iqama Number'), ('PAS', 'Passport ID'), ('OTH', 'Other ID')]
l10n_sa_edi_building_number
Char
l10n_sa_edi_plot_identification
Char
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/l10n_sa_edi |
| VERSION | |
| VERSION | 0.2 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Josse Colpaert, Moens Alexandre, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Nasreddin Boulif (bon), Julien Van Roy, Florian(flg), mehjabinfarsana, Maximilien (malb), Mahamadasif Ansari, khfa, Mehdi Bendali Hacine, sesn-odoo, yosa-odoo, mega, Mehdi (mebe), mebe-odoo, Louis Gobert, Yousef Alnashef (alny), Claire (clbr), Hammad Arif, abwa, Khaled Said, AKR |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:52 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account_edi_ubl_cii - account_edi - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - account_debit_note - l10n_sa - l10n_multilang - l10n_gcc_invoice - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
E-invoice implementation for Saudi Arabia; Integration with ZATCA
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
arabic_english_invoice |
arabic_english_invoice | ir.ui.view | qweb | Inherits l10n_sa.arabic_english_invoice |
export_sa_zatca_ubl_extensions |
export_sa_zatca_ubl_extensions | ir.ui.view | qweb | New |
export_sa_zatca_ubl_signed_properties |
export_sa_zatca_ubl_signed_properties | ir.ui.view | qweb | New |
l10n_sa_edi_otp_wizard_view_form |
l10n_sa_edi.otp.wizard.form | l10n_sa_edi.otp.wizard | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.l10n_sa_edi | res.config.settings | xpath | Inherits account.res_config_settings_view_form |
sa_partner_address_form |
sa.partner.form.address | res.partner | form | New |
ubl_21_AddressType_zatca |
ubl_21_AddressType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_AddressType |
ubl_21_InvoiceLineType_zatca |
ubl_21_InvoiceLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_InvoiceLineType |
ubl_21_InvoiceType_zatca |
ubl_21_InvoiceType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_InvoiceType |
ubl_21_PartyType_zatca |
ubl_21_PartyType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PartyType |
ubl_21_PaymentMeansType_zatca |
ubl_21_PaymentMeansType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PaymentMeansType |
ubl_21_TaxTotalType_zatca |
ubl_21_TaxTotalType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_TaxTotalType |
view_account_journal_form |
account.journal.form.l10n_sa_edi | account.journal | xpath | Inherits account.view_account_journal_form |
view_account_move_reversal_inherit_l10n_sa_edi |
account.move.reversal.form.inherit.l10n_sa_edi | account.move.reversal | field | Inherits account.view_account_move_reversal |
view_company_form |
res.company.l10n_sa_edi.form | res.company | xpath | Inherits base.view_company_form |
view_partner_form |
res.partner.l10n_sa_edi.form | res.partner | field | Inherits base.view_partner_form |
view_tax_form |
account.tax.form.zatca | account.tax | xpath | Inherits account.view_tax_form |
No new fields.
Public methods (1)create_debit(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
l10n_sa_chain_sequence_id
Many2one → ir.sequence
copy=False
readonly=True
string='ZATCA account.move chain sequence'
args: 'ir.sequence'
l10n_sa_compliance_checks_passed
Boolean
copy=False
default=False
help='Specifies if the Compliance Checks have been completed successfully'
args: 'Compliance Checks Done'
l10n_sa_compliance_csid_json
Char
copy=False
groups='base.group_system'
help='Compliance CSID data received from the Compliance CSID API in dumped json format'
args: 'CCSID JSON'
l10n_sa_csr
Binary
attachment=True
copy=False
groups='base.group_system'
help='The Certificate Signing Request that is submitted to the Compliance API'
l10n_sa_csr_errors
Html
copy=False
args: 'Onboarding Errors'
l10n_sa_latest_submission_hash
Char
copy=False
help='Hash of the latest submitted invoice to be used as the Previous Invoice Hash (KSA-13)'
args: 'Latest Submission Hash'
l10n_sa_production_csid_json
Char
copy=False
groups='base.group_system'
help='Production CSID data received from the Production CSID API in dumped json format'
args: 'PCSID JSON'
l10n_sa_production_csid_validity
Datetime
compute='_l10n_sa_compute_production_csid_validity'
help='Production CSID expiration date'
store=True
args: 'PCSID Expiration'
l10n_sa_serial_number
Char
copy=False
help='Unique Serial Number automatically filled when the journal is onboarded'
args: 'Serial Number'
No public methods.
l10n_sa_chain_index
Integer
copy=False
help='Invoice index in chain, set if and only if an in-chain XML was submitted and did not error'
readonly=True
string='ZATCA chain index'
l10n_sa_invoice_signature
Char
copy=False
args: 'Unsigned XML Signature'
l10n_sa_uuid
Char
copy=False
help='Universally unique identifier of the Invoice'
string='Document UUID (SA)'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)reverse_moves(self)
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
onchange_amount(self)
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
No public methods.
No new fields.
Public methods (0)No public methods.
journal_id
Many2one → account.journal
default=<expr>
required=True
args: 'account.journal'
l10n_sa_otp
Char
copy=False
help='OTP required to get a CCSID. Can only be acquired through the Fatoora portal.'
args: 'OTP'
l10n_sa_renewal
Boolean
default=False
help='Used to decide whether we should call the PCSID renewal API or the CCSID API'
args: 'PCSID Renewal'
default_get(self, fields)
validate(self)
l10n_sa_additional_identification_number
Char
readonly=False
related='partner_id.l10n_sa_additional_identification_number'
l10n_sa_additional_identification_scheme
Selection
readonly=False
related='partner_id.l10n_sa_additional_identification_scheme'
l10n_sa_api_mode
Selection
copy=False
default='sandbox'
help='Specifies which API the system should use'
required=True
args: [('sandbox', 'Sandbox'), ('preprod', 'Simulation (Pre-Production)'), ('prod', 'Production')]
l10n_sa_edi_building_number
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_building_number'
l10n_sa_edi_plot_identification
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_plot_identification'
l10n_sa_private_key
Binary
attachment=False
copy=False
groups='base.group_system'
help='The private key used to generate the CSR and obtain certificates'
args: 'ZATCA Private key'
write(self, vals)
l10n_sa_api_mode
Selection
readonly=False
related='company_id.l10n_sa_api_mode'
No public methods.
l10n_sa_additional_identification_number
Char
help='Additional Identification Number for Seller/Buyer'
args: 'Identification Number (SA)'
l10n_sa_additional_identification_scheme
Selection
default='OTH'
help='Additional Identification scheme for Seller/Buyer'
string='Identification Scheme'
args: [('TIN', 'Tax Identification Number'), ('CRN', 'Commercial Registration Number'), ('MOM', 'Momra License'), ('MLS', 'MLSD License'), ('700', '700 Number'), ('SAG', 'Sagia License'), ('NAT', 'National ID'), ('GCC', 'GCC ID'), ('IQA', 'Iqama Number'), ('PAS', 'Passport ID'), ('OTH', 'Other ID')]
l10n_sa_edi_building_number
Char
l10n_sa_edi_plot_identification
Char
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/l10n_sa_edi |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Accounting/Localizations/EDI |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo |
| MAINTAINERS | |
| MAINTAINERS | Odoo |
| COMMITTERS | |
| COMMITTERS | Josse Colpaert, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Nasreddin Boulif (bon), mehjabinfarsana, akr, khfa, Mehdi Bendali Hacine, sesn-odoo, yosa-odoo, mega, Mehdi (mebe), mebe-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account_edi_ubl_cii - account_edi - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - account_debit_note - l10n_sa_invoice - l10n_sa - l10n_multilang - l10n_gcc_invoice - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
E-invoice implementation for the Kingdom of Saudi Arabia
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
arabic_english_invoice |
arabic_english_invoice | ir.ui.view | qweb | Inherits l10n_sa_invoice.arabic_english_invoice |
export_sa_zatca_ubl_extensions |
export_sa_zatca_ubl_extensions | ir.ui.view | qweb | New |
export_sa_zatca_ubl_signed_properties |
export_sa_zatca_ubl_signed_properties | ir.ui.view | qweb | New |
l10n_sa_edi_otp_wizard_view_form |
l10n_sa_edi.otp.wizard.form | l10n_sa_edi.otp.wizard | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.l10n_sa_edi | res.config.settings | xpath | Inherits account.res_config_settings_view_form |
sa_partner_address_form |
sa.partner.form.address | res.partner | form | New |
ubl_21_AddressType_zatca |
ubl_21_AddressType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_AddressType |
ubl_21_InvoiceLineType_zatca |
ubl_21_InvoiceLineType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_InvoiceLineType |
ubl_21_InvoiceType_zatca |
ubl_21_InvoiceType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_21_InvoiceType |
ubl_21_PartyType_zatca |
ubl_21_PartyType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PartyType |
ubl_21_PaymentMeansType_zatca |
ubl_21_PaymentMeansType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_PaymentMeansType |
ubl_21_TaxTotalType_zatca |
ubl_21_TaxTotalType_zatca | ir.ui.view | qweb | Inherits account_edi_ubl_cii.ubl_20_TaxTotalType |
view_account_journal_form |
account.journal.form.l10n_sa_edi | account.journal | xpath | Inherits account.view_account_journal_form |
view_account_move_reversal_inherit_l10n_sa_edi |
account.move.reversal.form.inherit.l10n_sa_edi | account.move.reversal | field | Inherits account.view_account_move_reversal |
view_company_form |
res.company.l10n_sa_edi.form | res.company | xpath | Inherits base.view_company_form |
view_partner_form |
res.partner.l10n_sa_edi.form | res.partner | field | Inherits base.view_partner_form |
view_tax_form |
account.tax.form.zatca | account.tax | xpath | Inherits account.view_tax_form |
No new fields.
Public methods (1)create_debit(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
l10n_sa_chain_sequence_id
Many2one → ir.sequence
copy=False
readonly=True
string='ZATCA account.move chain sequence'
args: 'ir.sequence'
l10n_sa_compliance_checks_passed
Boolean
copy=False
default=False
help='Specifies if the Compliance Checks have been completed successfully'
args: 'Compliance Checks Done'
l10n_sa_compliance_csid_json
Char
copy=False
groups='base.group_system'
help='Compliance CSID data received from the Compliance CSID API in dumped json format'
args: 'CCSID JSON'
l10n_sa_csr
Binary
attachment=True
copy=False
groups='base.group_system'
help='The Certificate Signing Request that is submitted to the Compliance API'
l10n_sa_csr_errors
Html
copy=False
args: 'Onboarding Errors'
l10n_sa_latest_submission_hash
Char
copy=False
help='Hash of the latest submitted invoice to be used as the Previous Invoice Hash (KSA-13)'
args: 'Latest Submission Hash'
l10n_sa_production_csid_json
Char
copy=False
groups='base.group_system'
help='Production CSID data received from the Production CSID API in dumped json format'
args: 'PCSID JSON'
l10n_sa_production_csid_validity
Datetime
compute='_l10n_sa_compute_production_csid_validity'
help='Production CSID expiration date'
store=True
args: 'PCSID Expiration'
l10n_sa_serial_number
Char
copy=False
help='The serial number of the Taxpayer solution unit. Provided by ZATCA'
args: 'Serial Number'
No public methods.
l10n_sa_chain_index
Integer
copy=False
help='Invoice index in chain, set if and only if an in-chain XML was submitted and did not error'
readonly=True
string='ZATCA chain index'
l10n_sa_invoice_signature
Char
copy=False
args: 'Unsigned XML Signature'
l10n_sa_uuid
Char
copy=False
help='Universally unique identifier of the Invoice'
string='Document UUID (SA)'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)reverse_moves(self)
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
onchange_amount(self)
l10n_sa_exemption_reason_code
Selection
help='Tax Exemption Reason Code (ZATCA)'
selection=EXEMPTION_REASON_CODES
string='Exemption Reason Code'
l10n_sa_is_retention
Boolean
default=False
help='Determines whether or not a tax counts as a Withholding Tax'
args: 'Is Retention'
No public methods.
journal_id
Many2one → account.journal
default=<expr>
required=True
args: 'account.journal'
l10n_sa_otp
Char
copy=False
help='OTP required to get a CCSID. Can only be acquired through the Fatoora portal.'
args: 'OTP'
l10n_sa_renewal
Boolean
default=False
help='Used to decide whether we should call the PCSID renewal API or the CCSID API'
args: 'PCSID Renewal'
default_get(self, fields)
validate(self)
l10n_sa_additional_identification_number
Char
readonly=False
related='partner_id.l10n_sa_additional_identification_number'
l10n_sa_additional_identification_scheme
Selection
readonly=False
related='partner_id.l10n_sa_additional_identification_scheme'
l10n_sa_api_mode
Selection
copy=False
default='sandbox'
help='Specifies which API the system should use'
required=True
args: [('sandbox', 'Sandbox'), ('preprod', 'Simulation (Pre-Production)'), ('prod', 'Production')]
l10n_sa_edi_building_number
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_building_number'
l10n_sa_edi_plot_identification
Char
compute='_compute_address'
inverse='_l10n_sa_edi_inverse_plot_identification'
l10n_sa_private_key
Binary
attachment=False
copy=False
groups='base.group_system'
help='The private key used to generate the CSR and obtain certificates'
args: 'ZATCA Private key'
write(self, vals)
l10n_sa_api_mode
Selection
readonly=False
related='company_id.l10n_sa_api_mode'
No public methods.
l10n_sa_additional_identification_number
Char
help='Additional Identification Number for Seller/Buyer'
args: 'Identification Number (SA)'
l10n_sa_additional_identification_scheme
Selection
default='OTH'
help='Additional Identification scheme for Seller/Buyer'
string='Identification Scheme'
args: [('TIN', 'Tax Identification Number'), ('CRN', 'Commercial Registration Number'), ('MOM', 'Momra License'), ('MLS', 'MLSD License'), ('700', '700 Number'), ('SAG', 'Sagia License'), ('NAT', 'National ID'), ('GCC', 'GCC ID'), ('IQA', 'Iqama Number'), ('PAS', 'Passport ID'), ('OTH', 'Other ID')]
l10n_sa_edi_building_number
Char
l10n_sa_edi_plot_identification
Char
No public methods.