Metadata-Version: 2.4
Name: unpaismejor_ecf_engine_connector
Version: 7.0.18
Summary: Integración de Tryton con motores de Facturación Electrónica (e-CF) para República Dominicana.
Home-page: https://code.unpaismejor.org.do/tryton-do/ecf_engine_connector
Author: Fundación Un País Mejor
Author-email: info@unpaismejor.org.do
License: GPL-3
Keywords: tryton account invoice ecf
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
Classifier: Framework :: Tryton
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Legal Industry
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: Bulgarian
Classifier: Natural Language :: Catalan
Classifier: Natural Language :: Chinese (Simplified)
Classifier: Natural Language :: Czech
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
Classifier: Natural Language :: Finnish
Classifier: Natural Language :: French
Classifier: Natural Language :: German
Classifier: Natural Language :: Hungarian
Classifier: Natural Language :: Indonesian
Classifier: Natural Language :: Italian
Classifier: Natural Language :: Persian
Classifier: Natural Language :: Polish
Classifier: Natural Language :: Portuguese (Brazilian)
Classifier: Natural Language :: Romanian
Classifier: Natural Language :: Russian
Classifier: Natural Language :: Slovenian
Classifier: Natural Language :: Spanish
Classifier: Natural Language :: Turkish
Classifier: Natural Language :: Ukrainian
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Office/Business
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: trytond_ncf_manager<7.1,>=7.0
Requires-Dist: trytond_account_debit_note<7.1,>=7.0
Requires-Dist: trytond<7.1,>=7.0
Requires-Dist: lxml<6,>=4.9
Requires-Dist: certifi
Requires-Dist: qrcode<9,>=7
Requires-Dist: cryptography<46,>=41
Provides-Extra: test
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

###########################
Ecf Engine Connector Module
###########################

The ``ecf_engine_connector`` module integrates Tryton invoices with an external
Dominican Republic e-CF engine.

It works as the electronic fiscal layer above ``ncf_manager``. The module keeps
NCF assignment and fiscal validation in ``ncf_manager`` and adds e-CF payload
generation, engine submission, status tracking, QR data, signed XML storage,
and print-readiness fields.

Functional Scope
================

* Builds DGII e-CF payloads from posted Tryton invoices.
* Supports electronic NCF types 31, 32, 33, 34, 41, 43, 44, 45, 46, and 47.
* Sends documents to the configured e-CF engine.
* Tracks pending, accepted, rejected, and error states.
* Stores engine response data, QR image data, and signed XML attachments.
* Adds credit-note and debit-note electronic modification fields without
  replacing the accounting note workflows.

Compatibility
=============

The module targets Tryton 8.0 and depends on ``ncf_manager``. Through that
dependency it is designed to run with:

* ``account_do``
* ``account_invoice_do``
* ``account_credit_note``
* ``account_debit_note``
* ``account_invoice_apply_credit_note``
* ``ncf_manager``

Packaging
=========

The package is built with ``hatchling`` and ``hatch-tryton`` and publishes as
``unpaismejor_ecf_engine_connector``.

Safe transmission defaults
==========================

Posting an invoice builds and validates its e-CF payload but does not transmit
it by default. Transmission requires the explicit ``Enviar e-CF`` action or an
opt-in company setting. Production additionally requires the independent
``Autorizar transmisiones en producción`` switch. See ``doc/compliance.rst``.

