eBill Paynet

ebill_paynet
REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/14.0/ebill_paynet
VERSION
VERSION 1.1.4
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSOCA Transbot, Thierry Ducrest, oca-travis, OCA-git-bot, Stephane Mangin, Vincent Van Rossem, Hai Lang, oca-git-bot, Dũng (Trần Đình)
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-switzerland
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_transmit_method
OCA/edi:
    - account_invoice_export
    - base_ebill_payment_contract
OCA/l10n-switzerland:
    - l10n_ch_base_bank
OCA/queue:
    - queue_job
OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_sparse_field
    - base_iban
    - l10n_ch
    - l10n_multilang
    - l10n_ch_qriban
    - sale
    - sales_team
    - payment
    - utm
    - delivery
    - sale_stock
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES zeep
astor
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
dws_reject_invoice dws_reject_invoice ir.ui.view qweb New
ebill_payment_contract_form_view ebill.payment.contract.form (in ebill_panyet) ebill.payment.contract group Inherits base_ebill_payment_contract.ebill_payment_contract_form_view
paynet_invoice_message_form_view paynet.invoice.message.form paynet.invoice.message form New
paynet_invoice_message_search_view paynet.invoice.message.search paynet.invoice.message search New
paynet_invoice_message_tree_view paynet.invoice.message.tree paynet.invoice.message tree New
paynet_service_form_view paynet.service.form paynet.service form New
paynet_service_search_view paynet.service.search paynet.service search New
paynet_service_tree_view paynet.service.tree paynet.service tree New
Models touched (5)

New fields (0)

No new fields.

Public methods (5)
  • create_paynet_message(self)
    Generate the paynet message for an invoice.
  • get_paynet_other_reference(self)
    Allows glue module to insert <OTHER-REFERENCE> in paynet <HEADER> Add to the list ref, object strucutred like this: {'type': other reference allowed types, 'no': the content of <Reference-No> desired }
  • log_invoice_accepted_by_system(self)
  • log_invoice_refused_by_system(self)
  • paynet_invoice_line_ids(self)
    Filter invoice line to be included in XML message. Invoicing line that are UX based (notes, sections) are removed.

New fields (4)
  • is_paynet_contract Boolean
    compute='_compute_is_paynet_contract' store=False
  • payment_type Selection
    default='qr' help='Payment type to use for the invoices sent, PDF will be generated and attached accordingly.' selection=[('qr', 'QR'), ('isr', 'ISR')] string='Payment method'
  • paynet_account_number Char
    size=20 string='Paynet ID'
  • paynet_service_id Many2one → paynet.service
    comodel_name='paynet.service' ondelete='restrict' string='Paynet Service'
Public methods (0)

No public methods.

New fields (11)
  • attachment_id Many2one → ir.attachment
    args: 'ir.attachment', 'PDF'
  • ebill_account_number Char
    size=20 args: 'Paynet Id'
  • ic_ref Char
    help='Document interchange reference' size=14 string='IC Ref'
  • invoice_id Many2one → account.move
    comodel_name='account.move' ondelete='restrict'
  • payload Text
    args: 'Payload sent'
  • payment_type Selection
    default='qr' readonly=True selection=[('qr', 'QR'), ('isr', 'ISR'), ('esp', 'ESP'), ('npy', 'NPY')]
  • ref Char
    size=35 args: 'Reference No.'
  • response Text
    args: 'Response recieved'
  • service_id Many2one → paynet.service
    comodel_name='paynet.service' ondelete='restrict' readonly=True required=True string='Paynet Service'
  • shipment_id Char
    help='Shipment Id on Paynet service' size=24
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('sent', 'Sent'), ('done', 'Done'), ('reject', 'Reject'), ('error', 'Error')]
Public methods (3)
  • format_date(date_string=None)
    @staticmethod
  • send_to_paynet(self)
  • update_invoice_status(self)
    Update the export status in the chatter.

New fields (12)
  • active Boolean
    default=True
  • client_pid Char
    required=True size=17 string='Paynet ID'
  • ebill_payment_contract_ids One2many → ebill.payment.contract
    comodel_name='ebill.payment.contract' inverse_name='paynet_service_id' readonly=True string='Contracts'
  • invoice_message_ids One2many → paynet.invoice.message
    comodel_name='paynet.invoice.message' inverse_name='service_id' readonly=True string='Invoice Messages'
  • name Char
    required=True
  • operation_timeout Integer
    default='600' help='Timeout for each HTTP (GET, POST) request in seconds.' string='HTTP Timeout'
  • partner_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' ondelete='restrict' string='Bank account'
  • password Char
  • service_type Selection
    default='b2b' help='Specify the type of XML exchange with the service.' selection=[('b2b', 'B2B'), ('b2c', 'B2C')] string='Service type'
  • url Char
    compute='_compute_url'
  • use_test_service Boolean
    help='Target the test service' string='Testing'
  • username Char
Public methods (10)
  • check_shipments(self)
    Check for shipments on the service and create jobs to download them.
  • confirm_shipment(self, shipment_id)
    Confirm a shipment reception to the DWS.
  • cron_poll_shipment(self)
    @api.model
    Cron job to poll for shipments on all active services.
  • download_shipment(self, shipment_id)
    Download a shipment, parse it and if successful, acknowledge it.
  • get_shipment_content(self, shipment_id)
  • get_shipment_list(self)
    Get a list of shipments present on the DWS.
  • handle_received_shipment(self, res, shipment_id)
    @api.model
  • ping_service(self)
    Ping the DWS service this works without autentication.
  • take_shipment(self, content)
    Send a shipment via DWS to the Paynet System Return value is the shipment id
  • test_ping(self)
    Test the service from the UI.

New fields (1)
  • paynet_client_order_ref Char
    compute='_compute_paynet_client_order_ref'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-switzerland
GIT
GIThttps://github.com/OCA/l10n-switzerland.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-switzerland/tree/13.0/ebill_paynet
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSThierry Ducrest, oca-travis, OCA-git-bot, Iryna Vyshnevska, Vincent Van Rossem, Matthieu Méquignon
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-switzerland
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-invoicing:
    - account_invoice_transmit_method
OCA/edi:
    - account_invoice_export
    - base_ebill_payment_contract
OCA/l10n-switzerland:
    - l10n_ch_base_bank
OCA/queue:
    - queue_job
OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - l10n_ch
    - l10n_multilang
    - l10n_ch_qriban
    - sale
    - sales_team
    - payment
    - utm
    - delivery
    - sale_stock
    - stock_account
    - stock
    - barcodes
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES zeep
astor
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
dws_reject_invoice dws_reject_invoice ir.ui.view qweb New
ebill_payment_contract_form_view ebill.payment.contract.form (in ebill_panyet) ebill.payment.contract group Inherits base_ebill_payment_contract.ebill_payment_contract_form_view
paynet_invoice_message_form_view paynet.invoice.message.form paynet.invoice.message form New
paynet_invoice_message_search_view paynet.invoice.message.search paynet.invoice.message search New
paynet_invoice_message_tree_view paynet.invoice.message.tree paynet.invoice.message tree New
paynet_service_form_view paynet.service.form paynet.service form New
paynet_service_search_view paynet.service.search paynet.service search New
paynet_service_tree_view paynet.service.tree paynet.service tree New
Models touched (5)

New fields (0)

No new fields.

Public methods (5)
  • create_paynet_message(self)
    Generate the paynet message for an invoice.
  • get_paynet_other_reference(self)
    Allows glue module to insert <OTHER-REFERENCE> in paynet <HEADER> Add to the list ref, object strucutred like this: {'type': other reference allowed types, 'no': the content of <Reference-No> desired }
  • log_invoice_accepted_by_system(self)
  • log_invoice_refused_by_system(self)
  • paynet_invoice_line_ids(self)
    Filter invoice line to be included in XML message. Invoicing line that are UX based (notes, sections) are removed.

New fields (4)
  • is_paynet_contract Boolean
    compute='_compute_is_paynet_contract' store=False
  • payment_type Selection
    default='qr' help='Payment type to use for the invoices sent, PDF will be generated and attached accordingly.' selection=[('qr', 'QR'), ('isr', 'ISR')] string='Payment method'
  • paynet_account_number Char
    size=20 string='Paynet ID'
  • paynet_service_id Many2one → paynet.service
    comodel_name='paynet.service' ondelete='restrict' string='Paynet Service'
Public methods (0)

No public methods.

New fields (11)
  • attachment_id Many2one → ir.attachment
    args: 'ir.attachment', 'PDF'
  • ebill_account_number Char
    size=20 args: 'Paynet Id'
  • ic_ref Char
    help='Document interchange reference' size=14 string='IC Ref'
  • invoice_id Many2one → account.move
    comodel_name='account.move' ondelete='restrict'
  • payload Text
    args: 'Payload sent'
  • payment_type Selection
    default='qr' readonly=True selection=[('qr', 'QR'), ('isr', 'ISR'), ('esp', 'ESP'), ('npy', 'NPY')]
  • ref Char
    size=35 args: 'Reference No.'
  • response Text
    args: 'Response recieved'
  • service_id Many2one → paynet.service
    comodel_name='paynet.service' ondelete='restrict' readonly=True required=True string='Paynet Service'
  • shipment_id Char
    help='Shipment Id on Paynet service' size=24
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('sent', 'Sent'), ('done', 'Done'), ('reject', 'Reject'), ('error', 'Error')]
Public methods (3)
  • format_date(date_string=None)
    @staticmethod
  • send_to_paynet(self)
  • update_invoice_status(self)
    Update the export status in the chatter.

New fields (11)
  • active Boolean
    default=True
  • client_pid Char
    required=True size=17 string='Paynet ID'
  • ebill_payment_contract_ids One2many → ebill.payment.contract
    comodel_name='ebill.payment.contract' inverse_name='paynet_service_id' readonly=True string='Contracts'
  • invoice_message_ids One2many → paynet.invoice.message
    comodel_name='paynet.invoice.message' inverse_name='service_id' readonly=True string='Invoice Messages'
  • name Char
    required=True
  • partner_bank_id Many2one → res.partner.bank
    comodel_name='res.partner.bank' ondelete='restrict' string='Bank account'
  • password Char
  • service_type Selection
    default='b2b' help='Specify the type of XML exchange with the service.' selection=[('b2b', 'B2B'), ('b2c', 'B2C')] string='Service type'
  • url Char
    compute='_compute_url'
  • use_test_service Boolean
    help='Target the test service' string='Testing'
  • username Char
Public methods (10)
  • check_shipments(self)
    Check for shipments on the service and create jobs to download them.
  • confirm_shipment(self, shipment_id)
    Confirm a shipment reception to the DWS.
  • cron_poll_shipment(self)
    @api.model
    Cron job to poll for shipments on all active services.
  • download_shipment(self, shipment_id)
    @job(default_channel='root.invoice_export')
    Download a shipment, parse it and if successful, acknowledge it.
  • get_shipment_content(self, shipment_id)
  • get_shipment_list(self)
    Get a list of shipments present on the DWS.
  • handle_received_shipment(self, res, shipment_id)
    @api.model
  • ping_service(self)
    Ping the DWS service this works without autentication.
  • take_shipment(self, content)
    Send a shipment via DWS to the Paynet System Return value is the shipment id
  • test_ping(self)
    Test the service from the UI.

New fields (1)
  • paynet_client_order_ref Char
    compute='_compute_paynet_client_order_ref'
Public methods (0)

No public methods.