POS Austria RKSV

l10n_at_pos_rksv
REPOSITORY
REPOSITORYOCA/l10n-austria
GIT
GIThttps://github.com/OCA/l10n-austria.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-austria/tree/19.0/l10n_at_pos_rksv
VERSION
VERSION 1.4.3
CATEGORY
CATEGORYLocalization/Austria
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Weboffice IT-Service und Marketing GmbH & Co KG
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Weboffice IT-Service und Marketing GmbH & Co KG
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Martin Reisenhofer
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-austria
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:50
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_at
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - account_edi_ubl_cii
    - base_iban
    - base_vat
    - l10n_din5008
    - point_of_sale
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - phone_validation
    - partner_autocomplete
    - iap_mail
    - iap
    - iot_base
    - google_address_autocomplete
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
pytz
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module integrates the Austrian RKSV (*Registrierkassensicherheitsverordnung*)
signing flow into the Odoo Point of Sale.

It uses the [a.sign RK](https://www.a-trust.at/de/asignrk/) online service of
A-Trust to sign every receipt with a chained AES-encrypted turnover counter,
producing the QR code, DEP entry and zero/start receipts required by the
Austrian fiscal authority.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
asign_cert_view_form asign.cert.view.form asign.cert form New
asign_cert_view_search asign.cert.view.search asign.cert search New
asign_cert_view_tree asign.cert.view.list asign.cert list New
pos_config_view_form pos.config.inherit.form pos.config sheet Inherits point_of_sale.pos_config_view_form
report_certificate report_certificate ir.ui.view qweb New
report_pos_config report_pos_config ir.ui.view qweb New
res_config_settings_view_form res.config.settings.inherit.form res.config.settings block Inherits point_of_sale.res_config_settings_view_form
view_pos_order_tree pos.order.inherit.list pos.order field Inherits point_of_sale.view_pos_order_tree
view_pos_pos_form pos.order.inherit.form pos.order notebook Inherits point_of_sale.view_pos_pos_form
view_tax_group_form account.tax.group.inherit.form account.tax.group field Inherits account.view_tax_group_form
view_tax_group_tree account.tax.group.inherit.list account.tax.group field Inherits account.view_tax_group_tree
Models touched (6)

New fields (1)
  • asign_type Selection
    help='RKSV (a.sign) tax category used when computing the chained signature for Austrian POS receipts.' string='a.sign Type' args: [('reduced1', 'Reduced 1'), ('reduced2', 'Reduced 2'), ('special', 'Special'), ('null', 'Null')]
Public methods (0)

No public methods.

New fields (8)
  • active Boolean
    default=True
  • cert Binary
    help='Public certificate of the signing card or online service.' string='Certificate'
  • cert_name Char
    compute='_compute_cert_name'
  • cert_type Selection
    default='online' required=True args: [('online', 'Online'), ('card', 'Card')]
  • name Char
    required=True string='Serial (Hex)'
  • password Char
  • serial_hex Char
    compute='_compute_serial_hex' help='Serial number of the certificate in normalized hex format.' index=True store=True string='Serial (Normalized)'
  • user Char
Public methods (0)

No public methods.

New fields (9)
  • asign_crc Char
    compute='_compute_asign_crc' copy=False help='Checksum of the encryption key.' store=True string='a.sign Checksum'
  • asign_enabled Boolean
    help='Enable Austrian RKSV (a.sign) signing for this POS.' string='a.sign Enabled'
  • asign_fid Char
    help='VAT or tax number of the company for the POS.' string='a.sign Fiscal ID'
  • asign_key Char
    copy=False help='The AES encryption key of the journal.' string='a.sign Encryption Key'
  • asign_method Selection
    default='online' string='a.sign Method' args: [('card', 'Card'), ('online', 'Online')]
  • asign_pid Char
    copy=False help='Fiscal ID of the POS system inside the company, used as prefix of the order number.' string='a.sign POS ID'
  • asign_serial_hex Char
    help='Serial number of the certificate in hex format.' string='a.sign Serial'
  • asign_start_order_id Many2one → pos.order
    compute='_compute_asign_start_order_id' store=False string='Start Order' args: 'pos.order'
  • asign_state Selection
    copy=False default='draft' readonly=True string='a.sign State' args: [('draft', 'Draft'), ('assigned', 'Assigned'), ('active', 'Active')]
Public methods (3)
  • action_asign_assign(self)
  • action_asign_reset(self)
  • action_asign_zero_receipt(self)

New fields (10)
  • asign_counter Char
    help='The turnover counter of the RKSV signature.' readonly=True string='a.sign Counter'
  • asign_dep Text
    help='The DEP entry of the RKSV signature export.' readonly=True string='a.sign DEP'
  • asign_qrcode Char
    help='The QR code of the RKSV signature.' index=True readonly=True string='a.sign QR-Code'
  • asign_qrcode_quoted Char
    compute='_compute_qrcode' string='a.sign QR-Code Quoted'
  • asign_seq Integer
    help='The sequence number of the RKSV signature export.' index=True readonly=True string='a.sign Sequence'
  • asign_serial Char
    help='The serial number of the RKSV signing component.' readonly=True string='a.sign Serial'
  • asign_state Selection
    help='State of the RKSV signature: unsigned means the signature is missing, signed means the signature is present. If empty, no signing is needed.' index=True readonly=True string='a.sign State' args: [('u', 'Unsigned'), ('s', 'Signed')]
  • asign_type Selection
    index=True readonly=True string='a.sign Type' args: [('o', 'Order'), ('s', 'Start'), ('0', 'Null'), ('c', 'Cancel'), ('m', 'Mixed'), ('t', 'Training')]
  • sign_qrcode Char
    compute='_compute_qrcode'
  • sign_qrcode_name Char
    compute='_compute_qrcode'
Public methods (1)
  • action_pos_order_paid(self)

New fields (0)

No new fields.

Public methods (1)
  • action_pos_session_close(self, balancing_account=False, amount_to_balance=0, bank_payment_method_diffs=None)

New fields (8)
  • asign_crc Char
    compute='_compute_asign' readonly=True
  • asign_enabled Boolean
    compute='_compute_asign' inverse='_inverse_asign'
  • asign_fid Char
    compute='_compute_asign' inverse='_inverse_asign'
  • asign_key Char
    compute='_compute_asign' inverse='_inverse_asign'
  • asign_method Selection
    compute='_compute_asign' inverse='_inverse_asign' args: [('card', 'Card'), ('online', 'Online')]
  • asign_pid Char
    compute='_compute_asign' inverse='_inverse_asign'
  • asign_serial_hex Char
    compute='_compute_asign' help='Serial number of the certificate in hex format.' inverse='_inverse_asign' string='a.sign Serial'
  • asign_state Selection
    compute='_compute_asign' readonly=True related='pos_config_id.asign_state'
Public methods (2)
  • action_asign_assign(self)
  • action_asign_reset(self)