Import/Export Invoices From XML/PDF

account_edi
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/account_edi
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Josse Colpaert, Xavier Morel, Laurent Smet, Julien Castiaux, Tiffany Chang (tic), Gorash, Louis Wicket (wil), Antoine Dupuis (andu), Dylan Kiss (dyki), Harsh Modi, Louis Gobert, masm-odoo, AKR, Krzysztof Magusiak (krma)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Electronic Data Interchange
=======================================
EDI is the electronic interchange of business information using a standardized format.

This is the base module for import and export of invoices in various EDI formats, and the
the transmission of said documents to various parties involved in the exchange (other company,
governements, etc.)
    

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_account_journal_form_inherited account.journal.form.inherited account.journal xpath Inherits account.view_account_journal_form
view_in_bill_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_bill_tree
view_in_invoice_refund_tree_inherit account.move.list.inherit account.move field Inherits account.view_in_invoice_refund_tree
view_move_form_inherit account.move.form.inherit account.move xpath Inherits account.view_move_form
view_out_credit_note_tree_inherit account.move.list.inherit account.move field Inherits account.view_out_credit_note_tree
view_out_invoice_tree_inherit account.move.list.inherit account.move field Inherits account.view_out_invoice_tree
view_tree_account_edi_document Account.edi.document.list account.edi.document list New
Models touched (8)

New fields (9)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' groups='base.group_system' help='The file generated by edi_format_id when the invoice is posted (and this document is processed).'
  • blocking_level Selection
    help="Blocks the current operation of the document depending on the error severity:\n * Info: the document is not blocked and everything is working as it should.\n * Warning: there is an error that doesn't prevent the current Electronic Invoicing operation to succeed.\n * Error: there is an error that blocks the current Electronic Invoicing operation." selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_content Binary
    compute='_compute_edi_content'
  • edi_format_id Many2one → account.edi.format
    required=True args: 'account.edi.format'
  • edi_format_name Char
    related='edi_format_id.name' string='Format Name'
  • error Html
    help='The text of the last error that happened during Electronic Invoice operation.'
  • move_id Many2one → account.move
    index=True ondelete='cascade' required=True args: 'account.move'
  • name Char
    related='attachment_id.name'
  • state Selection
    args: [('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')]
Public methods (1)
  • action_export_xml(self)

New fields (2)
  • code Char
    required=True
  • name Char
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • compatible_edi_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_compatible_edi_ids' help='EDI format that support moves in this journal'
  • edi_format_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_edi_format_ids' domain="[('id', 'in', compatible_edi_ids)]" help='Send XML/EDI invoices' readonly=False store=True string='Electronic invoicing'
Public methods (1)
  • write(self, vals)

New fields (9)
  • edi_blocking_level Selection
    compute='_compute_edi_error_message' selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_document_ids One2many → account.edi.document
    comodel_name='account.edi.document' inverse_name='move_id'
  • edi_error_count Integer
    compute='_compute_edi_error_count' help='How many EDIs are in error for this move?'
  • edi_error_message Html
    compute='_compute_edi_error_message'
  • edi_show_abandon_cancel_button Boolean
    compute='_compute_edi_show_abandon_cancel_button'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
  • edi_show_force_cancel_button Boolean
    compute='_compute_edi_show_force_cancel_button'
  • edi_state Selection
    compute='_compute_edi_state' help='The aggregated state of all the EDIs with web-service of this move' selection=[('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')] store=True string='Electronic invoicing'
  • edi_web_services_to_process Text
    compute='_compute_edi_web_services_to_process'
Public methods (8)
  • action_process_edi_web_services(self, with_commit=True)
  • action_retry_edi_documents_error(self)
  • button_abandon_cancel_posted_posted_moves(self)
    Cancel the request for cancellation of the EDI.
  • button_cancel(self)
  • button_cancel_posted_moves(self)
    Mark the edi.document related to this move to be canceled.
  • button_draft(self)
  • button_force_cancel(self)
    Cancel the invoice without waiting for the cancellation request to succeed.
  • button_process_edi_web_services(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • resequence(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/account_edi
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Josse Colpaert, Xavier Morel, Odoo Online, Laurent Smet, Luis Torres, Tiffany Chang (tic), Gorash, Florian(flg), Vincent Larcin, Habib (ayh), Louis Wicket (wil), Maximilien (malb), Gauthier Wala (gawa), Claire Bretton (clbr), Yosua Nicolaus, Antoine Dupuis (andu), Dylan Kiss (dyki), Vivek Pathak, Zeel Patel, sesn-odoo, Sven Fuehr, AMZIL Ayoub, adsh-odoo, Louis Gobert, Louis (wil), mano-odoo, kais-odoo, masm-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Electronic Data Interchange
=======================================
EDI is the electronic interchange of business information using a standardized format.

This is the base module for import and export of invoices in various EDI formats, and the
the transmission of said documents to various parties involved in the exchange (other company,
governements, etc.)
    

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_account_journal_form_inherited account.journal.form.inherited account.journal xpath Inherits account.view_account_journal_form
view_in_bill_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_bill_tree
view_in_invoice_refund_tree_inherit account.move.list.inherit account.move field Inherits account.view_in_invoice_refund_tree
view_move_form_inherit account.move.form.inherit account.move xpath Inherits account.view_move_form
view_out_credit_note_tree_inherit account.move.list.inherit account.move field Inherits account.view_out_credit_note_tree
view_out_invoice_tree_inherit account.move.list.inherit account.move field Inherits account.view_out_invoice_tree
view_tree_account_edi_document Account.edi.document.list account.edi.document list New
Models touched (8)

New fields (9)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' groups='base.group_system' help='The file generated by edi_format_id when the invoice is posted (and this document is processed).'
  • blocking_level Selection
    help="Blocks the current operation of the document depending on the error severity:\n * Info: the document is not blocked and everything is working as it should.\n * Warning: there is an error that doesn't prevent the current Electronic Invoicing operation to succeed.\n * Error: there is an error that blocks the current Electronic Invoicing operation." selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_content Binary
    compute='_compute_edi_content' compute_sudo=True
  • edi_format_id Many2one → account.edi.format
    required=True args: 'account.edi.format'
  • edi_format_name Char
    related='edi_format_id.name' string='Format Name'
  • error Html
    help='The text of the last error that happened during Electronic Invoice operation.'
  • move_id Many2one → account.move
    index=True ondelete='cascade' required=True args: 'account.move'
  • name Char
    related='attachment_id.name'
  • state Selection
    args: [('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')]
Public methods (1)
  • action_export_xml(self)

New fields (2)
  • code Char
    required=True
  • name Char
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • compatible_edi_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_compatible_edi_ids' help='EDI format that support moves in this journal'
  • edi_format_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_edi_format_ids' domain="[('id', 'in', compatible_edi_ids)]" help='Send XML/EDI invoices' readonly=False store=True string='Electronic invoicing'
Public methods (1)
  • write(self, vals)

New fields (9)
  • edi_blocking_level Selection
    compute='_compute_edi_error_message' selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_document_ids One2many → account.edi.document
    comodel_name='account.edi.document' inverse_name='move_id'
  • edi_error_count Integer
    compute='_compute_edi_error_count' help='How many EDIs are in error for this move?'
  • edi_error_message Html
    compute='_compute_edi_error_message'
  • edi_show_abandon_cancel_button Boolean
    compute='_compute_edi_show_abandon_cancel_button'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
  • edi_show_force_cancel_button Boolean
    compute='_compute_edi_show_force_cancel_button'
  • edi_state Selection
    compute='_compute_edi_state' help='The aggregated state of all the EDIs with web-service of this move' selection=[('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')] store=True string='Electronic invoicing'
  • edi_web_services_to_process Text
    compute='_compute_edi_web_services_to_process'
Public methods (8)
  • action_process_edi_web_services(self, with_commit=True)
  • action_retry_edi_documents_error(self)
  • button_abandon_cancel_posted_posted_moves(self)
    Cancel the request for cancellation of the EDI.
  • button_cancel(self)
  • button_cancel_posted_moves(self)
    Mark the edi.document related to this move to be canceled.
  • button_draft(self)
  • button_force_cancel(self)
    Cancel the invoice without waiting for the cancellation request to succeed.
  • button_process_edi_web_services(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • resequence(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/account_edi
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Josse Colpaert, Xavier ALT, Christophe Simonis, Xavier Morel, Odoo Online, Pierre Masereel, Laurent Smet, Julien Castiaux, Luis Torres, Andrea Grazioso (agr-odoo), Sébastien Theys, Tiffany Chang (tic), Gorash, momegahed, Ricardo Gomes Rodrigues (rigr), Julien Van Roy, Yolann Sabaux, Abdelouahab (abla), Florian(flg), Habib (ayh), Thomas Lefebvre (thle), Louis Wicket (wil), Maximilien (malb), Claire Bretton (clbr), Yosua Nicolaus, Naman Shah, Antoine Dupuis (andu), Dylan Kiss (dyki), smdc-odoo, Paolo Gatti (pgi), Renilkumar Kajavadra, Zeel Patel, Khushi Vakil, sesn-odoo, AMZIL Ayoub, det, adsh-odoo, Louis Gobert, Louis (wil), mano-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Electronic Data Interchange
=======================================
EDI is the electronic interchange of business information using a standardized format.

This is the base module for import and export of invoices in various EDI formats, and the
the transmission of said documents to various parties involved in the exchange (other company,
governements, etc.)
    

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_account_journal_form_inherited account.journal.form.inherited account.journal xpath Inherits account.view_account_journal_form
view_in_bill_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_bill_tree
view_in_invoice_refund_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_refund_tree
view_move_form_inherit account.move.form.inherit account.move xpath Inherits account.view_move_form
view_out_credit_note_tree_inherit account.move.tree.inherit account.move field Inherits account.view_out_credit_note_tree
view_out_invoice_tree_inherit account.move.tree.inherit account.move field Inherits account.view_out_invoice_tree
view_tree_account_edi_document Account.edi.document.tree account.edi.document tree New
Models touched (8)

New fields (9)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' groups='base.group_system' help='The file generated by edi_format_id when the invoice is posted (and this document is processed).'
  • blocking_level Selection
    help="Blocks the current operation of the document depending on the error severity:\n * Info: the document is not blocked and everything is working as it should.\n * Warning: there is an error that doesn't prevent the current Electronic Invoicing operation to succeed.\n * Error: there is an error that blocks the current Electronic Invoicing operation." selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_content Binary
    compute='_compute_edi_content' compute_sudo=True
  • edi_format_id Many2one → account.edi.format
    required=True args: 'account.edi.format'
  • edi_format_name Char
    related='edi_format_id.name' string='Format Name'
  • error Html
    help='The text of the last error that happened during Electronic Invoice operation.'
  • move_id Many2one → account.move
    index=True ondelete='cascade' required=True args: 'account.move'
  • name Char
    related='attachment_id.name'
  • state Selection
    args: [('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')]
Public methods (1)
  • action_export_xml(self)

New fields (2)
  • code Char
    required=True
  • name Char
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • compatible_edi_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_compatible_edi_ids' help='EDI format that support moves in this journal'
  • edi_format_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_edi_format_ids' domain="[('id', 'in', compatible_edi_ids)]" help='Send XML/EDI invoices' readonly=False store=True string='Electronic invoicing'
Public methods (1)
  • write(self, vals)

New fields (9)
  • edi_blocking_level Selection
    compute='_compute_edi_error_message' selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_document_ids One2many → account.edi.document
    comodel_name='account.edi.document' inverse_name='move_id'
  • edi_error_count Integer
    compute='_compute_edi_error_count' help='How many EDIs are in error for this move?'
  • edi_error_message Html
    compute='_compute_edi_error_message'
  • edi_show_abandon_cancel_button Boolean
    compute='_compute_edi_show_abandon_cancel_button'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
  • edi_show_force_cancel_button Boolean
    compute='_compute_edi_show_force_cancel_button'
  • edi_state Selection
    compute='_compute_edi_state' help='The aggregated state of all the EDIs with web-service of this move' selection=[('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')] store=True string='Electronic invoicing'
  • edi_web_services_to_process Text
    compute='_compute_edi_web_services_to_process'
Public methods (8)
  • action_process_edi_web_services(self, with_commit=True)
  • action_retry_edi_documents_error(self)
  • button_abandon_cancel_posted_posted_moves(self)
    Cancel the request for cancellation of the EDI.
  • button_cancel(self)
  • button_cancel_posted_moves(self)
    Mark the edi.document related to this move to be canceled.
  • button_draft(self)
  • button_force_cancel(self)
    Cancel the invoice without waiting for the cancellation request to succeed.
  • button_process_edi_web_services(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • resequence(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/account_edi
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Josse Colpaert, Xavier ALT, Christophe Simonis, Pierre Masereel, Laurent Smet, Jairo Llopis, wan, Julien Castiaux, Luis Torres, Victor Feyens, Andrea Grazioso (agr-odoo), Joseph Caburnay, Anh Thao Pham (pta), Ivan Yelizariev, Nasreddin Boulif (bon), Tiffany Chang (tic), remi-filament, momegahed, Ricardo Gomes Rodrigues (rigr), Nicolas (vin), william-andre, Julien Van Roy, william, Yolann Sabaux, Abdelouahab (abla), Thomas Beckers, Adrien Minet, Stanislas Gueniffey, Habib (ayh), Thomas Lefebvre (thle), Mahamadasif Ansari, Antoine Dupuis (andu), Sanket Brahmbhatt, Paolo Gatti (pgi), Soam (sold), Rahul Prajapati, gera-odoo, Zeel Patel, Khushi Vakil, Eteil Djoumatchoua (etdj), AMZIL Ayoub, det, moerradi, Louis Gobert, bt-ojossen, Corentin Lombard, kasm
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:51
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Electronic Data Interchange
=======================================
EDI is the electronic interchange of business information using a standardized format.

This is the base module for import and export of invoices in various EDI formats, and the
the transmission of said documents to various parties involved in the exchange (other company,
governements, etc.)
    

Code Analysis

Views touched (9)
XML IDNameModelTypeStatus
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_account_journal_form_inherited account.journal.form.inherited account.journal xpath Inherits account.view_account_journal_form
view_in_bill_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_bill_tree
view_in_invoice_refund_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_refund_tree
view_move_form_inherit account.move.form.inherit account.move xpath Inherits account.view_move_form
view_out_credit_note_tree_inherit account.move.tree.inherit account.move field Inherits account.view_out_credit_note_tree
view_out_invoice_tree_inherit account.move.tree.inherit account.move field Inherits account.view_out_invoice_tree
view_payment_form_inherit account.payment.form.inherit account.payment xpath Inherits account.view_account_payment_form
view_tree_account_edi_document Account.edi.document.tree account.edi.document tree New
Models touched (11)

New fields (9)
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' groups='base.group_system' help='The file generated by edi_format_id when the invoice is posted (and this document is processed).'
  • blocking_level Selection
    help="Blocks the current operation of the document depending on the error severity:\n * Info: the document is not blocked and everything is working as it should.\n * Warning: there is an error that doesn't prevent the current Electronic Invoicing operation to succeed.\n * Error: there is an error that blocks the current Electronic Invoicing operation." selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_content Binary
    compute='_compute_edi_content' compute_sudo=True
  • edi_format_id Many2one → account.edi.format
    required=True args: 'account.edi.format'
  • edi_format_name Char
    related='edi_format_id.name' string='Format Name'
  • error Html
    help='The text of the last error that happened during Electronic Invoice operation.'
  • move_id Many2one → account.move
    index=True ondelete='cascade' required=True args: 'account.move'
  • name Char
    related='attachment_id.name'
  • state Selection
    args: [('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')]
Public methods (1)
  • action_export_xml(self)

New fields (2)
  • code Char
    required=True
  • name Char
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • compatible_edi_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_compatible_edi_ids' help='EDI format that support moves in this journal'
  • edi_format_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_edi_format_ids' domain="[('id', 'in', compatible_edi_ids)]" help='Send XML/EDI invoices' readonly=False store=True string='Electronic invoicing'
Public methods (1)
  • write(self, vals)

New fields (8)
  • edi_blocking_level Selection
    compute='_compute_edi_error_message' selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_document_ids One2many → account.edi.document
    comodel_name='account.edi.document' inverse_name='move_id'
  • edi_error_count Integer
    compute='_compute_edi_error_count' help='How many EDIs are in error for this move ?'
  • edi_error_message Html
    compute='_compute_edi_error_message'
  • edi_show_abandon_cancel_button Boolean
    compute='_compute_edi_show_abandon_cancel_button'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
  • edi_state Selection
    compute='_compute_edi_state' help='The aggregated state of all the EDIs with web-service of this move' selection=[('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')] store=True string='Electronic invoicing'
  • edi_web_services_to_process Text
    compute='_compute_edi_web_services_to_process'
Public methods (7)
  • action_process_edi_web_services(self, with_commit=True)
  • action_retry_edi_documents_error(self)
  • button_abandon_cancel_posted_posted_moves(self)
    Cancel the request for cancellation of the EDI.
  • button_cancel(self)
  • button_cancel_posted_moves(self)
    Mark the edi.document related to this move to be canceled.
  • button_draft(self)
  • button_process_edi_web_services(self)

New fields (0)

No new fields.

Public methods (1)
  • reconcile(self)

New fields (0)

No new fields.

Public methods (2)
  • action_process_edi_web_services(self)
  • action_retry_edi_documents_error(self)

New fields (0)

No new fields.

Public methods (1)
  • resequence(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • generate_email(self, res_ids, fields)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/account_edi
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Josse Colpaert, Christophe Simonis, GitHub, Laurent Smet, Christophe Monniez, Jorge Pinna Puissant, wan, Julien Castiaux, Xavier-Do, Luis Torres, Andrea Grazioso (agr-odoo), oco-odoo, Ivan Yelizariev, Nasreddin Boulif (bon), nie, Tiffany Chang (tic), jbw, Benjamin Frantzen (bfr), Ricardo Gomes Rodrigues (rigr), Nicolas (vin), william-andre, Julien Van Roy, MerlinGuillaume, william, Yolann Sabaux, Abdelouahab (abla), Thomas Beckers, Adrien Minet, Stanislas Gueniffey, jbw-odoo, Habib (ayh), Thomas Lefebvre (thle), Sanket Brahmbhatt, Soam (sold), Rahul Prajapati, gera-odoo, Zeel Patel, Khushi Vakil, Eteil Djoumatchoua (etdj), Sven Fuehr, moerradi
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:28
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Electronic Data Interchange
=======================================
EDI is the electronic interchange of business information using a standardized format.

This is the base module for import and export of invoices in various EDI formats, and the
the transmission of said documents to various parties involved in the exchange (other company,
governements, etc.)
    

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_account_journal_form_inherited account.journal.form.inherited account.journal xpath Inherits account.view_account_journal_form
view_move_form_inherit account.move.form.inherit account.move xpath Inherits account.view_move_form
view_out_credit_note_tree_inherit account.move.tree.inherit account.move field Inherits account.view_out_credit_note_tree
view_out_invoice_tree_inherit account.move.tree.inherit account.move field Inherits account.view_out_invoice_tree
view_payment_form_inherit account.payment.form.inherit account.payment xpath Inherits account.view_account_payment_form
view_tree_account_edi_document Account.edi.document.tree account.edi.document tree New
Models touched (11)

New fields (9)
  • attachment_id Many2one → ir.attachment
    help='The file generated by edi_format_id when the invoice is posted (and this document is processed).' args: 'ir.attachment'
  • blocking_level Selection
    help="Blocks the current operation of the document depending on the error severity:\n * Info: the document is not blocked and everything is working as it should.\n * Warning: there is an error that doesn't prevent the current Electronic Invoicing operation to succeed.\n * Error: there is an error that blocks the current Electronic Invoicing operation." selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_content Binary
    compute='_compute_edi_content' compute_sudo=True
  • edi_format_id Many2one → account.edi.format
    required=True args: 'account.edi.format'
  • edi_format_name Char
    related='edi_format_id.name' string='Format Name'
  • error Html
    help='The text of the last error that happened during Electronic Invoice operation.'
  • move_id Many2one → account.move
    ondelete='cascade' required=True args: 'account.move'
  • name Char
    related='attachment_id.name'
  • state Selection
    args: [('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')]
Public methods (1)
  • action_export_xml(self)

New fields (2)
  • code Char
    required=True
  • name Char
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • compatible_edi_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_compatible_edi_ids' help='EDI format that support moves in this journal'
  • edi_format_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_edi_format_ids' domain="[('id', 'in', compatible_edi_ids)]" help='Send XML/EDI invoices' readonly=False store=True string='Electronic invoicing'
Public methods (1)
  • write(self, vals)

New fields (8)
  • edi_blocking_level Selection
    compute='_compute_edi_error_message' selection=[('info', 'Info'), ('warning', 'Warning'), ('error', 'Error')]
  • edi_document_ids One2many → account.edi.document
    comodel_name='account.edi.document' inverse_name='move_id'
  • edi_error_count Integer
    compute='_compute_edi_error_count' help='How many EDIs are in error for this move ?'
  • edi_error_message Html
    compute='_compute_edi_error_message'
  • edi_show_abandon_cancel_button Boolean
    compute='_compute_edi_show_abandon_cancel_button'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
  • edi_state Selection
    compute='_compute_edi_state' help='The aggregated state of all the EDIs with web-service of this move' selection=[('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')] store=True string='Electronic invoicing'
  • edi_web_services_to_process Text
    compute='_compute_edi_web_services_to_process' help='Technical field to display the documents that will be processed by the CRON'
Public methods (7)
  • action_process_edi_web_services(self, with_commit=True)
  • action_retry_edi_documents_error(self)
  • button_abandon_cancel_posted_posted_moves(self)
    Cancel the request for cancellation of the EDI.
  • button_cancel(self)
  • button_cancel_posted_moves(self)
    Mark the edi.document related to this move to be canceled.
  • button_draft(self)
  • button_process_edi_web_services(self)

New fields (0)

No new fields.

Public methods (1)
  • reconcile(self)

New fields (2)
  • edi_show_abandon_cancel_button Boolean
    compute='_compute_edi_show_abandon_cancel_button'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
Public methods (4)
  • action_process_edi_web_services(self)
  • action_retry_edi_documents_error(self)
  • button_abandon_cancel_posted_payments(self)
    Cancel the request for cancellation of the EDI.
  • button_cancel_posted_payments(self)
    Mark the edi.document related to this payment to be canceled.

New fields (0)

No new fields.

Public methods (1)
  • resequence(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • generate_email(self, res_ids, fields)

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/account_edi
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Josse Colpaert, GitHub, Laurent Smet, Jorge Pinna Puissant, wan, Xavier-Do, Andrea Grazioso (agr-odoo), Paul Morelle, oco-odoo, Ivan Yelizariev, Nasreddin Boulif (bon), nie, snd, Benjamin Frantzen (bfr), Ricardo Gomes Rodrigues (rigr), Nicolas (vin), Julien Van Roy, william, Abdelouahab (abla), Florian Gilbert, Adrien Minet, jbw-odoo, Habib (ayh), Thomas Lefebvre (thle), Julien (jula), Sanket Brahmbhatt, Soam (sold), Rahul Prajapati, gera-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Electronic Data Interchange
=======================================
EDI is the electronic interchange of business information using a standardized format.

This is the base module for import and export of invoices in various EDI formats, and the
the transmission of said documents to various parties involved in the exchange (other company,
governements, etc.)
    

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
account_invoice_send_inherit_account_wizard_form account.invoice.send.form.inherited.edi account.invoice.send xpath Inherits account.account_invoice_send_wizard_form
view_account_journal_form_inherited account.journal.form.inherited account.journal xpath Inherits account.view_account_journal_form
view_move_form_inherit account.move.form.inherit account.move xpath Inherits account.view_move_form
view_payment_form_inherit account.payment.form.inherit account.payment xpath Inherits account.view_account_payment_form
view_tree_account_edi_document Account.edi.document.tree account.edi.document tree New
Models touched (11)

New fields (8)
  • attachment_id Many2one → ir.attachment
    help='The file generated by edi_format_id when the invoice is posted (and this document is processed).' args: 'ir.attachment'
  • edi_content Binary
    compute='_compute_edi_content' compute_sudo=True
  • edi_format_id Many2one → account.edi.format
    required=True args: 'account.edi.format'
  • edi_format_name Char
    related='edi_format_id.name' string='Format Name'
  • error Html
    help='The text of the last error that happened during Electronic Invoice operation.'
  • move_id Many2one → account.move
    ondelete='cascade' required=True args: 'account.move'
  • name Char
    related='attachment_id.name'
  • state Selection
    args: [('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')]
Public methods (2)
  • action_export_xml(self)
  • write(self, vals)
    If account_edi_extended is not installed, a default behaviour is used instead.

New fields (2)
  • code Char
    required=True
  • name Char
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • edi_format_ids Many2many
    related='invoice_ids.journal_id.edi_format_ids' string='Electronic invoicing'
Public methods (0)

No public methods.

New fields (2)
  • compatible_edi_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_compatible_edi_ids' help='EDI format that support moves in this journal'
  • edi_format_ids Many2many → account.edi.format
    comodel_name='account.edi.format' compute='_compute_edi_format_ids' domain="[('id', 'in', compatible_edi_ids)]" help='Send XML/EDI invoices' readonly=False store=True string='Electronic invoicing'
Public methods (1)
  • write(self, vals)

New fields (5)
  • edi_document_ids One2many → account.edi.document
    comodel_name='account.edi.document' inverse_name='move_id'
  • edi_error_count Integer
    compute='_compute_edi_error_count' help='How many EDIs are in error for this move ?'
  • edi_show_cancel_button Boolean
    compute='_compute_edi_show_cancel_button'
  • edi_state Selection
    compute='_compute_edi_state' help='The aggregated state of all the EDIs of this move' selection=[('to_send', 'To Send'), ('sent', 'Sent'), ('to_cancel', 'To Cancel'), ('cancelled', 'Cancelled')] store=True string='Electronic invoicing'
  • edi_web_services_to_process Text
    compute='_compute_edi_web_services_to_process' help='Technical field to display the documents that will be processed by the CRON'
Public methods (4)
  • action_process_edi_web_services(self)
  • button_cancel(self)
  • button_cancel_posted_moves(self)
    Mark the edi.document related to this move to be canceled.
  • button_draft(self)

New fields (0)

No new fields.

Public methods (2)
  • reconcile(self)
  • remove_move_reconcile(self)

New fields (0)

No new fields.

Public methods (1)
  • action_process_edi_web_services(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • unlink(self)

New fields (0)

No new fields.

Public methods (1)
  • generate_email(self, res_ids, fields)

New fields (0)

No new fields.

Public methods (0)

No public methods.