Metadata-Version: 2.1
Name: odoo-addon-l10n_ch_pain_base
Version: 16.0.1.0.0.4
Summary: ISO 20022 base module for Switzerland
Home-page: https://github.com/OCA/l10n-switzerland
Author: Akretion,Camptocamp,Odoo Community Association (OCA)
Author-email: support@odoo-community.org
License: AGPL-3
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 16.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Requires-Python: >=3.10
Requires-Dist: odoo-addon-account-banking-pain-base<16.1dev,>=16.0dev
Requires-Dist: odoo<16.1dev,>=16.0a

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

=======================
Switzerland - ISO 20022
=======================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:62eaeab48834fe7620dbfb849314340cba4f6f19a07f46858e5dcc0b6e00d17a
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--switzerland-lightgray.png?logo=github
    :target: https://github.com/OCA/l10n-switzerland/tree/16.0/l10n_ch_pain_base
    :alt: OCA/l10n-switzerland
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/l10n-switzerland-16-0/l10n-switzerland-16-0-l10n_ch_pain_base
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-switzerland&target_branch=16.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module doesn't do anything by himself. It is the base module for 2 other modules:

* the module *l10n_ch_pain_credit_transfer* which adds support for the file format *pain.001.001.03.ch.02* which is used for ISO 20022 credit transfers (SEPA or not SEPA),
* the module *l10n_ch_pain_direct_debit* which adds support for the file format *pain.008.001.02.ch.01* which is used for ISO 20022 direct debits.

**Table of contents**

.. contents::
   :local:

Known issues / Roadmap
======================

This roadmap summarizes follow-up actions discussed in
`OCA/l10n-switzerland#754 <https://github.com/OCA/l10n-switzerland/pull/754>`_.

Short-term (merge-safe, keep architecture stable)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Keep ``l10n_ch_pain_base`` close to legacy architecture for 16.0 migration.
- Avoid moving PAIN flavor declarations from feature modules into base only to satisfy tests.
- Keep base tests minimal and focused on base behavior; validate flavor-specific behavior in
  dedicated modules.
- Ensure CI is stable (including copier/CI profile alignment if conflicting modules require
  dedicated handling).

Mid-term refactor
~~~~~~~~~~~~~~~~~

- Review conditional logic in shared block generators that branches on ``pain_flavor`` and decide
  what should remain in base vs. move to extension modules.
- Revisit module split and responsibilities:

  - ``l10n_ch_pain_base``: common/shared generation logic.
  - ``l10n_ch_pain_credit_transfer``: credit-transfer specific behavior.
  - ``l10n_ch_pain_direct_debit``: confirm if still needed in current architecture.

- Reduce duplicated Swiss-specific logic where practical while preserving backward compatibility.

Swiss standard update (time-bound)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Prepare support for Swiss credit transfer ``pain.001.001.09.ch.03``.
- Plan deprecation path for ``pain.001.001.03.ch.02`` (announced acceptance window ends around
  Nov 2026).
- Validate generated XML with official SIX validators and real bank acceptance tests.
- Address format differences required by new standards, especially postal address handling and
  structured remittance/QRR compatibility.

Implementation checklist
~~~~~~~~~~~~~~~~~~~~~~~~

- [x] Keep migration PR scope limited and merge 16.0 base migration.
- [ ] Open a dedicated refactor PR for shared vs module-specific PAIN logic.
- [ ] Open a dedicated standards PR for ``pain.001.001.09.ch.03`` support.
- [ ] Track rollout status in this roadmap and link follow-up PRs/issues.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-switzerland/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/l10n-switzerland/issues/new?body=module:%20l10n_ch_pain_base%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* Akretion
* Camptocamp

Contributors
~~~~~~~~~~~~

* Alexis de Lattre <alexis.delattre@akretion.com>
* Denis Leemann <denis.leemann@camptocamp.com>
* Mykhailo Panarin <m.panarin@mobilunity.com>
* Alberto Nieto <alberto.nieto@braintec.com>

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/l10n-switzerland <https://github.com/OCA/l10n-switzerland/tree/16.0/l10n_ch_pain_base>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
