Indian - E-waybill

l10n_in_ewaybill
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/l10n_in_ewaybill
VERSION
VERSION 2.0
CATEGORY
CATEGORYAccounting/Localizations
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Julien Castiaux, Anh Thao Pham (pta), Jigar Vaghela, alsh-odoo, Thomas Becquevort (thbe), Gauthier Wala (gawa), Dylan Kiss (dyki), Harsh Modi, Harsh Shah, dijo-odoo, prep-odoo, Smit Patel, masm-odoo, Krzysztof Magusiak (krma), Meet, hatr-odoo, ijja-odoo, Earth Patel, bhna-odoo, igbe, smjo-odoo, soza-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_in
    - account_tax_python
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_vat
    - account_debit_note
    - iap
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Indian - E-waybill
====================================
To submit E-waybill through API to the government.
We use "Tera Software Limited" as GSP

Step 1: First you need to create an API username and password in the E-waybill portal.
Step 2: Switch to company related to that GST number
Step 3: Set that username and password in Odoo (Goto: Invoicing/Accounting -> Configration -> Settings -> Indian Electronic WayBill or find "E-waybill" in search bar)
Step 4: Repeat steps 1,2,3 for all GSTIN you have in odoo. If you have a multi-company with the same GST number then perform step 1 for the first company only.
    

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
invoice_form_inherit_l10n_in_ewaybill account.move.form.inherit.l10n.in.ewaybill account.move xpath Inherits account.view_move_form
l10n_in_ewaybill_form_view l10n.in.ewaybill.form.view l10n.in.ewaybill form New
l10n_in_ewaybill_report_invoice_document_inherit l10n_in_ewaybill_report_invoice_document_inherit ir.ui.view qweb Inherits account.report_invoice_document
report_ewaybill report_ewaybill ir.ui.view qweb New
res_config_settings_view_form_inherit_l10n_in_edi_ewaybill res.config.settings.form.inherit.l10n_in_edi_ewaybill res.config.settings xpath Inherits account.res_config_settings_view_form
view_ewaybill_cancel_form l10n.in.ewaybill.cancel.form l10n.in.ewaybill.cancel form New
view_invoice_list_inherit_l10n_in_ewaybill account.move.list.inherit.l10n.in.ewaybill account.move xpath Inherits account.view_invoice_tree
Models touched (8)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • l10n_in_ewaybill_expiry_date Datetime
    compute='_compute_l10n_in_ewaybill_details'
  • l10n_in_ewaybill_feature_enabled Boolean
    related='company_id.l10n_in_ewaybill_feature' string='E-Waybill Feature Enabled'
  • l10n_in_ewaybill_ids One2many → l10n.in.ewaybill
    readonly=True string='E-Waybill' args: 'l10n.in.ewaybill', 'account_move_id'
  • l10n_in_ewaybill_name Char
    compute='_compute_l10n_in_ewaybill_details' args: 'Indian Ewaybill Number'
Public methods (2)
  • action_l10n_in_ewaybill_create(self)
  • action_open_l10n_in_ewaybill(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (34)
  • account_move_id Many2one → account.move
    copy=False readonly=True args: 'account.move'
  • attachment_file Binary
    attachment=True copy=False
  • attachment_id Many2one → ir.attachment
    compute=<expr> depends=['attachment_file'] args: 'ir.attachment'
  • blocking_level Selection
    readonly=True string='Blocking Level' args: [('warning', 'Warning'), ('error', 'Error')]
  • cancel_reason Selection
    copy=False selection=[('1', 'Duplicate'), ('2', 'Data Entry Mistake'), ('3', 'Order Cancelled'), ('4', 'Others')] string='Cancel reason' tracking=True
  • cancel_remarks Char
    copy=False tracking=True args: 'Cancel remarks'
  • company_currency_id Many2one
    related='company_id.currency_id'
  • company_id Many2one → res.company
    compute='_compute_ewaybill_company' store=True args: 'res.company'
  • content Binary
    compute='_compute_content'
  • distance Integer
    tracking=True args: 'Distance'
  • document_date Datetime
    compute='_compute_ewaybill_document_details' args: 'Document Date'
  • document_number Char
    compute='_compute_ewaybill_document_details' args: 'Document'
  • error_message Html
    readonly=True
  • ewaybill_date Date
    copy=False readonly=True tracking=True args: 'e-Waybill Date'
  • ewaybill_expiry_date Date
    copy=False readonly=True tracking=True args: 'e-Waybill Valid Upto'
  • is_bill_from_editable Boolean
    compute='_compute_is_editable'
  • is_bill_to_editable Boolean
    compute='_compute_is_editable'
  • is_ship_from_editable Boolean
    compute='_compute_is_editable'
  • is_ship_to_editable Boolean
    compute='_compute_is_editable'
  • mode Selection
    copy=False default='1' string='Transportation Mode' tracking=True args: [('1', 'By Road'), ('2', 'Rail'), ('3', 'Air'), ('4', 'Ship or Ship Cum Road/Rail')]
  • name Char
    copy=False readonly=True tracking=True args: 'e-Waybill Number'
  • partner_bill_from_id Many2one → res.partner
    check_company=True compute='_compute_document_partners_details' readonly=False store=True string='Bill From' args: 'res.partner'
  • partner_bill_to_id Many2one → res.partner
    check_company=True compute='_compute_document_partners_details' readonly=False store=True string='Bill To' args: 'res.partner'
  • partner_ship_from_id Many2one → res.partner
    check_company=True compute='_compute_document_partners_details' readonly=False store=True string='Dispatch From' args: 'res.partner'
  • partner_ship_to_id Many2one → res.partner
    check_company=True compute='_compute_document_partners_details' readonly=False store=True string='Ship To' args: 'res.partner'
  • state Selection
    copy=False default='pending' readonly=True required=True selection=[('pending', 'Pending'), ('generated', 'Generated'), ('cancel', 'Cancelled')] string='Status' tracking=True
  • sub_type_code Char
    related='type_id.sub_type_code'
  • supply_type Selection
    compute='_compute_supply_type' selection=[('O', 'Outward'), ('I', 'Inward')] string='Supply Type'
  • transportation_doc_date Date
    copy=False string='Transporter Doc Date' tracking=True
  • transportation_doc_no Char
    copy=False string='Transporter Doc No' tracking=True
  • transporter_id Many2one → res.partner
    copy=False tracking=True args: 'res.partner', 'Transporter'
  • type_id Many2one → l10n.in.ewaybill.type
    tracking=True args: 'l10n.in.ewaybill.type', 'Document Type'
  • vehicle_no Char
    copy=False tracking=True args: 'Vehicle Number'
  • vehicle_type Selection
    compute='_compute_vehicle_type' copy=False readonly=False store=True string='Vehicle Type' tracking=True args: [('R', 'Regular'), ('O', 'Over Dimensional Cargo')]
Public methods (5)
  • action_cancel_ewaybill(self)
  • action_export_content_json(self)
  • action_generate_ewaybill(self)
  • action_print(self)
  • action_reset_to_pending(self)

New fields (3)
  • cancel_reason Selection
    required=True selection=list(EDI_CANCEL_REASON.items()) string='Cancel Reason'
  • cancel_remarks Char
    args: 'Cancel Remarks'
  • l10n_in_ewaybill_id Many2one → l10n.in.ewaybill
    required=True string='Ewaybill' args: 'l10n.in.ewaybill'
Public methods (1)
  • cancel_ewaybill(self)

New fields (6)
  • active Boolean
    default=True args: 'Active'
  • allowed_supply_type Selection
    string='Allowed for supply type' args: [('both', 'Incoming and Outgoing'), ('out', 'Outgoing'), ('in', 'Incoming')]
  • code Char
    args: 'Type Code'
  • name Char
    args: 'Type'
  • sub_type Char
    args: 'Sub-type'
  • sub_type_code Char
    args: 'Sub-type Code'
Public methods (0)

No public methods.

New fields (4)
  • l10n_in_ewaybill_auth_validity Datetime
    groups='base.group_system' args: 'E-Waybill Valid Until'
  • l10n_in_ewaybill_feature Boolean
    string='E-Waybill'
  • l10n_in_ewaybill_password Char
    groups='base.group_system' args: 'E-Waybill Password'
  • l10n_in_ewaybill_username Char
    groups='base.group_system' args: 'E-Waybill Username'
Public methods (0)

No public methods.

New fields (3)
  • l10n_in_ewaybill_feature Boolean
    readonly=False related='company_id.l10n_in_ewaybill_feature'
  • l10n_in_ewaybill_password Char
    readonly=False related='company_id.l10n_in_ewaybill_password' args: 'Indian Ewaybill password'
  • l10n_in_ewaybill_username Char
    readonly=False related='company_id.l10n_in_ewaybill_username' args: 'Indian Ewaybill username'
Public methods (1)
  • l10n_in_ewaybill_test(self)