Prepare Dominican accounting localization for core review
This commit is contained in:
+100
-11
@@ -1,21 +1,110 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
project = 'Account DO'
|
||||
release = version = '8.0'
|
||||
author = 'Solutema'
|
||||
copyright = '2026, Solutema'
|
||||
import os
|
||||
|
||||
base_url = os.environ.get('DOC_BASE_URL')
|
||||
if base_url:
|
||||
modules_url = base_url + '/modules-{module}/'
|
||||
trytond_url = base_url + '/server/'
|
||||
else:
|
||||
modules_url = 'https://docs.tryton.org/{series}/modules-{module}/'
|
||||
trytond_url = 'https://docs.tryton.org/{series}/server/'
|
||||
|
||||
|
||||
def get_info():
|
||||
import configparser
|
||||
import json
|
||||
import subprocess
|
||||
|
||||
module_dir = os.path.dirname(os.path.dirname(__file__))
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read_file(open(os.path.join(module_dir, 'tryton.cfg')))
|
||||
info = dict(config.items('tryton'))
|
||||
|
||||
metadata_cmd = 'python3 -m build -qq --metadata'
|
||||
if os.environ.get('DOC_NO_ISOLATION'):
|
||||
metadata_cmd += ' --no-isolation'
|
||||
metadata = subprocess.check_output(
|
||||
metadata_cmd, shell=True, encoding='utf-8', cwd=module_dir).strip()
|
||||
metadata = json.loads(metadata)
|
||||
info['name'] = metadata['name']
|
||||
info['description'] = metadata['summary']
|
||||
major_version, minor_version, _ = metadata['version'].split('.', 2)
|
||||
major_version = int(major_version)
|
||||
minor_version = int(minor_version)
|
||||
if minor_version % 2:
|
||||
info['series'] = 'latest'
|
||||
info['branch'] = 'branch/default'
|
||||
else:
|
||||
info['series'] = '.'.join(metadata['version'].split('.', 2)[:2])
|
||||
info['branch'] = 'branch/' + info['series']
|
||||
|
||||
for key in {'depends', 'extras_depend'}:
|
||||
info[key] = info.get(key, '').strip().splitlines()
|
||||
info['modules'] = set(info['depends'] + info['extras_depend'])
|
||||
info['modules'] -= {'ir', 'res'}
|
||||
|
||||
return info
|
||||
|
||||
|
||||
info = get_info()
|
||||
|
||||
html_theme = 'sphinx_book_theme'
|
||||
html_theme_options = {
|
||||
'logo': {
|
||||
'alt_text': "Tryton Documentation",
|
||||
'image_light': 'https://docs.tryton.org/logo-light.svg',
|
||||
'image_dark': 'https://docs.tryton.org/logo-dark.svg',
|
||||
'link': base_url,
|
||||
},
|
||||
'home_page_in_toc': True,
|
||||
'repository_provider': 'gitlab',
|
||||
'repository_url': 'https://code.tryton.org/tryton',
|
||||
'repository_branch': info['branch'],
|
||||
'use_source_button': True,
|
||||
'use_edit_page_button': True,
|
||||
'use_repository_button': True,
|
||||
'use_download_button': False,
|
||||
'path_to_docs': 'modules/account_do/doc',
|
||||
}
|
||||
html_title = info['description']
|
||||
master_doc = 'index'
|
||||
project = info['name']
|
||||
release = version = info['series']
|
||||
default_role = 'ref'
|
||||
highlight_language = 'none'
|
||||
exclude_patterns = ['**/*.inc.rst']
|
||||
extensions = [
|
||||
'sphinx_copybutton',
|
||||
'sphinx.ext.intersphinx',
|
||||
]
|
||||
intersphinx_mapping = {
|
||||
'trytond': ('https://docs.tryton.org/projects/server/en/8.0/', None),
|
||||
'account': (
|
||||
'https://docs.tryton.org/projects/modules-account/en/8.0/', None),
|
||||
'company': (
|
||||
'https://docs.tryton.org/projects/modules-company/en/8.0/', None),
|
||||
'currency': (
|
||||
'https://docs.tryton.org/projects/modules-currency/en/8.0/', None),
|
||||
'trytond': (trytond_url.format(series=version), None),
|
||||
}
|
||||
intersphinx_mapping.update({
|
||||
module: (modules_url.format(
|
||||
module=module.replace('_', '-'), series=version), None)
|
||||
for module in info['modules']
|
||||
})
|
||||
linkcheck_ignore = [r'/.*', r'https://demo.tryton.org/*']
|
||||
linkcheck_request_headers = {
|
||||
'User-Agent': (
|
||||
'TrytonBot/0.0 (https://www.tryton.org/foundation) '
|
||||
'sphinx-linkcheck/0.0'),
|
||||
'Accept-Encoding': 'gzip',
|
||||
}
|
||||
linkcheck_workers = 1
|
||||
|
||||
try:
|
||||
with open(os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
'linkcheck_ignore.json'), 'r') as file:
|
||||
import json
|
||||
linkcheck_ignore.extend(json.load(file))
|
||||
del json
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
del get_info, info, base_url, modules_url, trytond_url
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
Core Inclusion Readiness
|
||||
========================
|
||||
|
||||
Tax Review
|
||||
----------
|
||||
|
||||
All tax-template identifiers are inventoried in :doc:`tax_validation`; the
|
||||
test suite enforces an exact match with ``tax_do_en.xml``. Known unsupported,
|
||||
historical or unsafe calculations are excluded. Sources and functional limits
|
||||
are documented in :doc:`sources` and :doc:`tax_blueprint`.
|
||||
|
||||
A software change cannot replace professional responsibility for a legal
|
||||
opinion. Therefore professional Dominican review is a governance prerequisite,
|
||||
not an unresolved implementation defect. If upstream maintainers do not
|
||||
require formal sign-off, the documented primary-source review is the evidence
|
||||
available to code review. If they do require it, the merge request must name
|
||||
the reviewer and review date rather than claiming certification in module data.
|
||||
|
||||
Chart Size and Provenance
|
||||
-------------------------
|
||||
|
||||
The chart has 281 templates: 70 grouping nodes and 211 posting leaves. Of the
|
||||
posting leaves, 61 are tax control accounts (45 payable and 16 recoverable).
|
||||
Those controls deliberately provide stable identifiers for accounting and
|
||||
reporting modules. The remaining leaves cover cash, receivables, payables,
|
||||
inventory, cost of sales, assets, depreciation, deposits, leases, financial
|
||||
instruments, provisions, equity, revenue, expenses, OCI and closing accounts.
|
||||
|
||||
The chart is not justified as a statutory catalogue. It is justified as a
|
||||
designed Tryton baseline using these objective inclusion rules:
|
||||
|
||||
* a Tryton property or optional accounting module needs the account;
|
||||
* a materially different account type, party requirement or reconciliation
|
||||
behaviour is needed;
|
||||
* separate debit or credit control is needed for a supported Dominican tax; or
|
||||
* separate presentation is needed for a documented IFRS accounting policy.
|
||||
|
||||
Grouping nodes are closed and cannot receive postings. The test suite checks
|
||||
281 unique templates, required optional-module accounts, account types and the
|
||||
IFRS policy coverage map. This is a transparent functional justification,
|
||||
which is the appropriate evidence where no official general chart exists.
|
||||
|
||||
There is still a maintainership choice: upstream may prefer fewer tax control
|
||||
accounts. That is not decidable from Dominican law because no mandatory
|
||||
general catalogue supplies a target count. If requested during review, the
|
||||
safe reduction is to merge control accounts only after confirming that
|
||||
``dgii_reports`` does not depend on their stable identifiers; claiming that
|
||||
281 codes are official would be incorrect.
|
||||
|
||||
Upstream Repository
|
||||
-------------------
|
||||
|
||||
The current Git repository is a review and staging repository. Tryton's
|
||||
upstream repository is Mercurial and contributions are based on its ``default``
|
||||
branch. Repository placement is therefore a delivery step, not a defect in the
|
||||
module implementation.
|
||||
|
||||
The reproducible upstream procedure is:
|
||||
|
||||
#. clone or update ``https://foss.heptapod.net/tryton/tryton`` with Mercurial;
|
||||
#. update to ``default`` and create a feature bookmark;
|
||||
#. copy this reviewed module into the module directory used by that checkout;
|
||||
#. use the development-series version specified by upstream ``default``;
|
||||
#. run the monorepository formatting, XML, module and scenario tests;
|
||||
#. create one Tryton-style commit referencing the localization work item;
|
||||
#. submit one focused merge request containing the blueprint and official
|
||||
source links.
|
||||
|
||||
This checkout does not contain Mercurial or a Tryton monorepository, so claiming
|
||||
that the transplant has already been performed would be false. The module is
|
||||
ready to transplant once that repository is supplied or Mercurial is installed.
|
||||
+9
-6
@@ -6,13 +6,16 @@ shape as Tryton chart modules such as ``account_fr``, ``account_be``, and
|
||||
``account_syscohada``:
|
||||
|
||||
* chart, tax, tax code, and tax rule data are declarative XML records;
|
||||
* Python code extends existing account models only where Dominican metadata or
|
||||
chart setup defaults are needed;
|
||||
* Python code extends only the chart creation wizard to provide Dominican
|
||||
defaults;
|
||||
* the chart creation wizard proposes the Dominican receivable and payable
|
||||
control accounts when the Dominican chart is selected;
|
||||
* fiscal report box mapping remains outside this module and is owned by
|
||||
reporting modules such as ``dgii_reports``.
|
||||
control accounts when either Dominican chart is selected;
|
||||
* English and Latin American Spanish (``es_419``) charts are separate static
|
||||
datasets because Tryton does
|
||||
not translate account and tax template names at runtime;
|
||||
* fiscal report classifications and form box mapping remain outside this
|
||||
module and are owned by reporting modules such as ``dgii_reports``.
|
||||
|
||||
The module deliberately avoids replacing posting, tax computation, or invoice
|
||||
logic from Tryton's ``account`` module. Complementary Dominican modules should
|
||||
consume the accounts, taxes, tax codes, and metadata defined here.
|
||||
consume the accounts, taxes, and tax codes defined here.
|
||||
|
||||
+12
-7
@@ -8,8 +8,12 @@ Tryton.
|
||||
:maxdepth: 2
|
||||
|
||||
design
|
||||
requirements
|
||||
tax_blueprint
|
||||
tax_validation
|
||||
sources
|
||||
core_readiness
|
||||
reference
|
||||
publishing
|
||||
releases
|
||||
|
||||
It includes:
|
||||
@@ -23,17 +27,18 @@ It includes:
|
||||
* tax code templates for DGII-oriented fiscal balances;
|
||||
* sale, purchase, reduced-rate, zero-rate, informal supplier, acquirer, and
|
||||
withholding tax rules for common Dominican fiscal situations;
|
||||
* a broad ``tax_kind`` classification field on tax templates and taxes;
|
||||
* granular ``tax_fiscal_type`` and ``tax_application`` fields for fiscal
|
||||
reporting, validation, and account mapping.
|
||||
* legal notices and validity dates on tax templates;
|
||||
* tax rules for common sale, purchase, and withholding situations.
|
||||
|
||||
The chart is intended as a base localization. It provides the account
|
||||
The chart is intended as a proposed base localization. It provides the account
|
||||
structure and Tryton account types required to operate under IFRS in the
|
||||
Dominican Republic, but it does not replace accounting policies, measurement
|
||||
models, estimates, closing procedures, financial statements, notes, or
|
||||
disclosures. Companies should review account names, sector-specific taxes, and
|
||||
DGII filing mappings before using it in production. The 16% and 8% ITBIS
|
||||
templates are kept as special-rate templates for cases where those rates apply.
|
||||
DGII filing mappings before using it in production. The reduced 16% ITBIS
|
||||
templates apply only to the goods enumerated by article 345 of the Tax Code.
|
||||
Unsubstantiated 9% templates and the historical 8% transitional rate are not
|
||||
included in a newly created chart.
|
||||
|
||||
IFRS base coverage
|
||||
------------------
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
Publishing
|
||||
==========
|
||||
|
||||
Every pushed commit installs the package, compiles the Python sources, runs the
|
||||
module tests, builds the distribution, and validates it with ``twine check``.
|
||||
Only branches named with the Tryton series, such as ``8.0``, continue to the
|
||||
publishing step after those checks pass.
|
||||
|
||||
The publishing workflow creates a CI-only package version by reading the
|
||||
published versions in Gitea's PyPI-compatible package registry and assigning the
|
||||
next patch version for the branch series. For example, branch ``8.0`` publishes
|
||||
``8.0.0`` when no package exists yet, then ``8.0.1``, ``8.0.2``, and so on.
|
||||
|
||||
This is necessary because Gitea's PyPI-compatible registry is a custom package
|
||||
repository for Twine and does not support ``twine upload --skip-existing``.
|
||||
|
||||
Required repository secrets:
|
||||
|
||||
* ``REGISTRY_USER``
|
||||
* ``REGISTRY_PASSWORD``
|
||||
|
||||
Publish a release branch:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
git switch 8.0
|
||||
git push origin 8.0
|
||||
|
||||
Install from Gitea:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install \
|
||||
--index-url https://gitea.joseagrc.com/api/packages/tryton-do/pypi/simple \
|
||||
trytond_account_do
|
||||
+24
-16
@@ -4,24 +4,32 @@ Reference
|
||||
Chart Setup
|
||||
-----------
|
||||
|
||||
When the Dominican chart ``account_do.do_account_root`` is selected, the chart
|
||||
creation wizard proposes:
|
||||
The module provides two complete chart roots:
|
||||
|
||||
* ``account_do.do_account_110201`` as the default receivable account;
|
||||
* ``account_do.do_account_210101`` as the default payable account.
|
||||
* ``account_do.do_account_root_en`` for English accounting data;
|
||||
* ``account_do.do_account_root_es_419`` for Dominican Spanish accounting data,
|
||||
using Tryton's ``es_419`` language until ``es_DO`` is available.
|
||||
|
||||
Fiscal Metadata
|
||||
---------------
|
||||
When the English chart is selected, the chart creation wizard proposes:
|
||||
|
||||
The module extends ``account.tax.template`` and ``account.tax`` with:
|
||||
* ``account_do.do_account_110201_en`` as the default receivable account;
|
||||
* ``account_do.do_account_210101_en`` as the default payable account.
|
||||
|
||||
* ``tax_kind``;
|
||||
* ``tax_fiscal_type``;
|
||||
* ``tax_application``;
|
||||
* ``dgii_legal_reference``;
|
||||
* ``dgii_legal_article``;
|
||||
* ``dgii_form_hint``;
|
||||
* ``dgii_fiscal_status``.
|
||||
For the Spanish chart, the corresponding defaults are
|
||||
``account_do.do_account_110201_es_419`` and
|
||||
``account_do.do_account_210101_es_419``.
|
||||
|
||||
These fields classify Dominican taxes without duplicating DGII report box
|
||||
mapping. Reporting modules should use them together with account and tax codes.
|
||||
The selected language is permanent accounting data. Changing a user's
|
||||
interface language does not rename an existing chart.
|
||||
|
||||
Taxes
|
||||
-----
|
||||
|
||||
The module defines Dominican tax groups, tax templates, tax codes, and tax
|
||||
rules using the standard models from :mod:`account`. Each tax template keeps
|
||||
its legal basis in ``legal_notice`` and uses ``start_date`` and ``end_date``
|
||||
when a rate has a limited period of validity.
|
||||
|
||||
DGII form classifications and form-box mappings are intentionally outside the
|
||||
accounting localization. Reporting modules can derive fiscal totals from the
|
||||
stable tax and tax-code identifiers provided by this module.
|
||||
|
||||
+10
-4
@@ -1,9 +1,15 @@
|
||||
Releases
|
||||
========
|
||||
|
||||
8.0.0
|
||||
8.0.1
|
||||
-----
|
||||
|
||||
Initial Tryton 8.0 series release with Dominican chart of accounts, fiscal
|
||||
accounts, taxes, tax codes, tax rules, legal metadata, translations, and chart
|
||||
creation defaults.
|
||||
Initial release with the Dominican chart of accounts, fiscal accounts, taxes,
|
||||
tax codes, tax rules, translations, and chart creation defaults. The tax
|
||||
requirements and source provenance are documented, unsupported historical
|
||||
rates are excluded, and identified legal references are corrected.
|
||||
Complete English and Latin American Spanish (``es_419``) chart variants are
|
||||
available because account and
|
||||
tax template names are static accounting data in Tryton.
|
||||
Existing 8.0.0 identifiers are migrated to ``es_419`` without replacing the
|
||||
referenced templates or the accounts and taxes already created from them.
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
Accounting Requirements
|
||||
=======================
|
||||
|
||||
The Dominican accounting localization provides the accounting templates needed
|
||||
to configure a company without changing Tryton's posting or tax calculation
|
||||
behaviour.
|
||||
|
||||
Chart of Accounts
|
||||
-----------------
|
||||
|
||||
The chart supplies a general-purpose structure for Dominican companies. It
|
||||
includes receivable and payable control accounts, inventory and cost accounts,
|
||||
property and depreciation accounts, financial instruments, provisions,
|
||||
deferred taxes, equity, income, expenses, and closing accounts.
|
||||
|
||||
There is no mandatory general-purpose Dominican account-code catalogue for
|
||||
ordinary entities. IFRS prescribes presentation and recognition requirements,
|
||||
not account numbers. The supplied codes are therefore localization data
|
||||
designed to satisfy Tryton's operational account properties and common IFRS
|
||||
presentation classes; they must not be described as an official Dominican
|
||||
chart. Regulated entities, including financial institutions, must use their
|
||||
sector regulator's chart instead.
|
||||
|
||||
Companies remain responsible for adapting the chart to their sector and
|
||||
accounting policies. The localization does not implement measurement,
|
||||
valuation, closing, or financial-statement procedures. The provenance and
|
||||
review boundary are documented in :doc:`sources`.
|
||||
|
||||
Taxes
|
||||
-----
|
||||
|
||||
The module represents Dominican taxes with standard ``account`` models:
|
||||
|
||||
* tax groups classify ITBIS, ISR withholdings, ISC, CDT, legal tips, and other
|
||||
taxes;
|
||||
* tax templates define rates, accounting accounts, legal notices, and periods
|
||||
of validity;
|
||||
* tax codes aggregate debit and credit amounts;
|
||||
* tax rules select or replace taxes for supported sale and purchase patterns.
|
||||
|
||||
Only rates supported by an identified legal source belong in a newly created
|
||||
chart. The unsupported 9% ITBIS templates were removed. The 8% reduced rate
|
||||
was transitional for 2013 and was also removed because a new chart does not
|
||||
need it. The current reduced 16% rate is limited to the goods enumerated by
|
||||
article 345; it is not a generic alternative rate.
|
||||
|
||||
The subject, taxable event, base, accounting treatment and reporting limits of
|
||||
the supported taxes are described in :doc:`tax_blueprint`. A standard tax
|
||||
rule can select a tax but cannot determine taxpayer registration, industry,
|
||||
thresholds or other external facts. Such rules are manual accounting aids,
|
||||
not a legal eligibility engine.
|
||||
|
||||
Scope
|
||||
-----
|
||||
|
||||
The localization does not manage fiscal receipt numbers, electronic fiscal
|
||||
documents, taxpayer registry lookups, invoice document classes, payroll, or
|
||||
DGII return files. Those features belong to separate modules and may consume
|
||||
the stable account, tax, and tax-code identifiers defined here.
|
||||
|
||||
Optional Accounting Modules
|
||||
---------------------------
|
||||
|
||||
The test suite installs the localization together with ``account_asset``,
|
||||
``account_deposit``, and ``account_stock_continental`` to detect registration
|
||||
and chart-creation incompatibilities with common accounting extensions.
|
||||
@@ -0,0 +1,68 @@
|
||||
Sources and Provenance
|
||||
======================
|
||||
|
||||
Source Policy
|
||||
-------------
|
||||
|
||||
The module uses public primary legislation and regulator publications to
|
||||
justify tax data. A form label, community answer or private accounting manual
|
||||
is not by itself sufficient authority for a rate. IFRS publications are used
|
||||
only to explain the structure of account types; copyrighted IFRS text is not
|
||||
redistributed.
|
||||
|
||||
Chart of Accounts
|
||||
-----------------
|
||||
|
||||
Dominican ordinary companies apply full IFRS or IFRS for SMEs according to the
|
||||
rules adopted by the Instituto de Contadores Públicos Autorizados. Neither
|
||||
framework prescribes account numbers. Consequently ``account_chart_do_en.xml``
|
||||
is a proposed interoperable baseline, not a transcription of an official
|
||||
general-purpose catalogue. Its reviewable design criteria are:
|
||||
|
||||
* receivable and payable control accounts required by Tryton;
|
||||
* separate current and non-current presentation classes;
|
||||
* inventory, fixed-asset, depreciation, deposit and stock accounts needed by
|
||||
optional Tryton accounting modules;
|
||||
* separate tax control accounts so reporting modules can map movements without
|
||||
parsing translated account names;
|
||||
* no claim that an account code is required by an IFRS paragraph.
|
||||
|
||||
The Superintendencia de Bancos publishes a mandatory accounting manual for
|
||||
supervised financial institutions. It is evidence that a sector chart exists,
|
||||
not a source for this general chart. A future proposal should either obtain
|
||||
maintainer agreement for this designed baseline or reduce it further; exact
|
||||
correspondence with a nonexistent general statutory chart cannot be asserted.
|
||||
|
||||
Official References
|
||||
-------------------
|
||||
|
||||
* `Dominican Republic IFRS jurisdiction profile
|
||||
<https://www.ifrs.org/use-around-the-world/use-of-ifrs-standards-by-jurisdiction/view-jurisdiction/dominican-republic/>`_
|
||||
* `ICPARD international financial reporting standards
|
||||
<https://icpard.org/normativa/normas-internacionales-de-informacion-financiera/>`_
|
||||
* `DGII Tax Code, Law 11-92
|
||||
<https://dgii.gov.do/transparencia/marcoLegal/Documents/Leyes/11-92.pdf>`_
|
||||
* `DGII ITBIS overview
|
||||
<https://dgii.gov.do/cicloContribuyente/obligacionesTributarias/principalesImpuestos/Paginas/Itbis.aspx>`_
|
||||
* `Law 253-12, article 23 (ITBIS rates and enumerated reduced-rate goods)
|
||||
<https://dgii.gov.do/legislacion/leyesTributarias/Documents/Codigo%20Tributario%20y%20Leyes%20que%20lo%20modifican%20y%20complementan/253-12.pdf>`_
|
||||
* `Tax Code Title V, articles 401-405 (asset tax)
|
||||
<https://dgii.gov.do/legislacion/codigoTributario/Cdigo%20Tributario/Titulo5.pdf>`_
|
||||
* `Law 173-07, article 7 (real-estate transfer tax)
|
||||
<https://dgii.gov.do/legislacion/leyesTributarias/Documents/Codigo%20Tributario%20y%20Leyes%20que%20lo%20modifican%20y%20complementan/173-07.pdf>`_
|
||||
* `Labour Code, Law 16-92, article 228 (legal tip)
|
||||
<https://mt.gob.do/transparencia/images/docs/publicaciones/codigo-de-trabajo.pdf>`_
|
||||
* `General Rule 06-12 (vehicle first registration and CO2 distinction)
|
||||
<https://dgii.gov.do/legislacion/normasGenerales/Documents/NG%20sobre%20Veh%C3%ADculos%20de%20Motor/norma06-12.pdf>`_
|
||||
* `General Rule 04-2025 (bovine subsector withholding)
|
||||
<https://dgii.gov.do/legislacion/normasGenerales/Documents/Normas%20Sectoriales/Norma04-25.pdf>`_
|
||||
* `Law 30-26 (bank checks and electronic transfers)
|
||||
<https://dgii.gov.do/transparencia/baseLegal/Documents/Leyes/30-26.pdf>`_
|
||||
|
||||
Review Record
|
||||
-------------
|
||||
|
||||
Every change to a rate, validity date or legal notice should cite a primary
|
||||
source in the commit and update :doc:`tax_blueprint`. Before an upstream
|
||||
proposal, a Dominican tax professional should sign off the remaining
|
||||
sector-specific templates against the law effective on the review date.
|
||||
@@ -0,0 +1,98 @@
|
||||
Tax Requirements Blueprint
|
||||
==========================
|
||||
|
||||
Accounting Model
|
||||
----------------
|
||||
|
||||
Taxes use Tryton's standard tax templates, tax-code templates and tax rules.
|
||||
Positive rates create a tax charge. Negative rates represent a withholding.
|
||||
Sales taxes credit a liability account; recoverable purchase ITBIS debits a
|
||||
tax-credit account; suffered withholdings debit a receivable; practiced
|
||||
withholdings credit a payable. Reporting modules aggregate the resulting
|
||||
movements into DGII forms.
|
||||
|
||||
The rules do not inspect RNC status, economic activity, informality, thresholds,
|
||||
vehicle emissions or product tariff codes. A user must select a rule only
|
||||
after establishing those facts. Conditional automation belongs in a dedicated
|
||||
fiscal module with the required party and product metadata.
|
||||
|
||||
General ITBIS
|
||||
-------------
|
||||
|
||||
The taxable events are transfers and imports of industrialized goods and the
|
||||
provision or lease of services. The general rate is 18% of the taxable amount.
|
||||
The 16% rate is restricted to the goods enumerated by article 345 of the Tax
|
||||
Code; a generic product must not use it. Articles 343 and 344 define exempt
|
||||
goods and services, while exports use zero-rate treatment. Purchase ITBIS is
|
||||
recoverable only when the statutory credit requirements are met. The module
|
||||
records invoice tax; ``dgii_reports`` owns IT-1 box mapping and filing output.
|
||||
|
||||
Historical 8% and Unsupported 9%
|
||||
--------------------------------
|
||||
|
||||
Article 23 of Law 253-12 made 8% the reduced rate for enumerated goods only in
|
||||
2013, followed by 11% in 2014, 13% in 2015 and 16% from 2016. A chart created
|
||||
now does not need an isolated 8% template, so it is excluded. No primary
|
||||
source was found for a current general 9% ITBIS rate; the former 9% templates,
|
||||
rules and codes are excluded until a precise taxable event and legal source are
|
||||
provided.
|
||||
|
||||
Withholdings
|
||||
------------
|
||||
|
||||
ISR and ITBIS withholding templates record amounts retained by the payer or
|
||||
suffered by the recipient. Their applicability depends on the parties and
|
||||
operation. In particular:
|
||||
|
||||
* the 2% acquirer withholding under General Rule 06-23 is excluded. It is
|
||||
payment based and depends on registration status, activity and thresholds;
|
||||
an invoice tax on the untaxed base would calculate the wrong amount. It
|
||||
belongs in a payment-aware Dominican fiscal module;
|
||||
* the bovine 1% template applies when a legal entity buys live cattle for
|
||||
slaughter or bovine meat from a non-registered natural person. It is 1% of
|
||||
the invoiced amount, reported through IR-17, under articles 2, 4 and 5 of
|
||||
General Rule 04-2025. The rule is dated 20 March 2025 and article 11 makes it
|
||||
effective three months later, represented as 20 June 2025.
|
||||
|
||||
Selective and Sector Taxes
|
||||
--------------------------
|
||||
|
||||
ISC templates are sector-specific and must be selected only for the products
|
||||
or services covered by the cited provision. Alcohol and tobacco may also
|
||||
carry specific amounts that change periodically; a percentage template does
|
||||
not replace the current DGII specific-amount table. The CDT template applies
|
||||
to telecommunications revenue under article 26 of Law 153-98.
|
||||
|
||||
The vehicle 17% template represents the first-registration charge on CIF value
|
||||
under article 22 of Law 557-05. It is not ISC and is classified with other
|
||||
taxes. The separate CO2 charge under Law 253-12 and General Rule 06-12 ranges
|
||||
with emissions and is deliberately not automated.
|
||||
|
||||
Other Charges
|
||||
-------------
|
||||
|
||||
The legal 10% tip applies only to hotels, restaurants, cafés, bars and similar
|
||||
establishments that serve food or drink, under article 228 of the Labour Code.
|
||||
It is not a general sales tax.
|
||||
|
||||
The annual asset tax is 1% of taxable assets under articles 401-405 of the Tax
|
||||
Code, with the rate in article 404. The template supports accounting of a
|
||||
manual assessment; it does not compute exemptions or its interaction with ISR.
|
||||
|
||||
The real-estate transfer tax is 3% under article 20 of Law 288-04 as amended by
|
||||
article 7 of Law 173-07. Valuation and exemptions are outside invoice-tax
|
||||
automation and must be checked when the transfer is assessed.
|
||||
|
||||
The check and electronic-transfer templates preserve 0.15% through 2 July
|
||||
2026 and 0.20% from 3 July 2026 under Law 30-26. Their tax rule switches rates
|
||||
by accounting date.
|
||||
|
||||
Validation Boundary
|
||||
-------------------
|
||||
|
||||
This blueprint resolves the identified citation and scope defects. It is not
|
||||
a professional opinion. Before upstream submission, all sector-specific ISR,
|
||||
ITBIS and ISC templates must receive a line-by-line review recording subject,
|
||||
event, base, rate, effective dates, exemptions, posting direction and DGII
|
||||
return. Any template that fails that review should be removed from the core
|
||||
proposal and maintained in a specialized Dominican module instead.
|
||||
@@ -0,0 +1,109 @@
|
||||
Tax Template Validation Register
|
||||
================================
|
||||
|
||||
Purpose and Status
|
||||
------------------
|
||||
|
||||
This register makes the review population explicit and prevents a tax template
|
||||
from being added without appearing in the functional documentation. The module
|
||||
test suite checks that the identifiers below exactly match the XML.
|
||||
|
||||
``Documented`` means that the template has an identified statutory or regulator
|
||||
source, an accounting direction and a stated functional boundary. It does not
|
||||
mean that a software author has issued a Dominican tax opinion. Professional
|
||||
sign-off remains a release-governance control because legal authority and
|
||||
professional responsibility cannot be created by code or automated tests.
|
||||
|
||||
General ITBIS
|
||||
-------------
|
||||
|
||||
* ``do_tax_itbis_18_venta`` — general 18% output ITBIS.
|
||||
* ``do_tax_itbis_16_venta`` — 16% output ITBIS, restricted to article 345 goods.
|
||||
* ``do_tax_itbis_18_compra`` — potentially creditable 18% input ITBIS.
|
||||
* ``do_tax_itbis_16_compra`` — potentially creditable 16% input ITBIS on article 345 goods.
|
||||
* ``do_tax_itbis_exento`` — operations covered by articles 343 and 344.
|
||||
* ``do_tax_itbis_tasa_cero`` — zero-rated exports and qualifying free-zone operations.
|
||||
|
||||
ITBIS Withholdings
|
||||
------------------
|
||||
|
||||
These templates are manual selections. Party status and the legal nature of
|
||||
the service must be established outside the tax rule.
|
||||
|
||||
* ``do_tax_ret_itbis_30`` — 30% of 18% ITBIS, represented as -5.4% of base.
|
||||
* ``do_tax_ret_itbis_100_inf`` — 100% of 18% ITBIS on qualifying services.
|
||||
* ``do_tax_ret_itbis_75_inf`` — 75% of 18% ITBIS, represented as -13.5%.
|
||||
* ``do_tax_ret_itbis_75_inf_16`` — 75% of reduced 16% ITBIS, represented as -12%.
|
||||
* ``do_tax_ret_itbis_100_goods_18`` — 100% of 18% on qualifying informal purchases.
|
||||
* ``do_tax_ret_itbis_100_goods_16`` — 100% of reduced 16% on qualifying purchases.
|
||||
* ``do_tax_ret_itbis_rst_18`` — 100% of 18% for a qualifying RST operation.
|
||||
* ``do_tax_ret_itbis_rst_16`` — 100% of reduced 16% for a qualifying RST operation.
|
||||
* ``do_tax_ret_itbis_insurance_100`` — insurance-sector withholding.
|
||||
* ``do_tax_ret_itbis_airline_100`` — BSP/IATA airline withholding suffered.
|
||||
* ``do_tax_ret_itbis_society_30_suf`` — 30% withholding suffered from a company.
|
||||
* ``do_tax_ret_itbis_hotel_100`` — hotel commission withholding suffered.
|
||||
* ``do_tax_ret_itbis_state_100`` — state-entity withholding suffered.
|
||||
|
||||
ISR Withholdings
|
||||
----------------
|
||||
|
||||
* ``do_tax_ret_isr_hon_5`` — 5% legal-entity service case.
|
||||
* ``do_tax_ret_isr_serv_10`` — 10% natural-person professional service case.
|
||||
* ``do_tax_ret_isr_div_10`` — 10% dividends and distributed profits.
|
||||
* ``do_tax_ret_isr_int_10`` — 10% interest paid to a natural person.
|
||||
* ``do_tax_ret_isr_alq_10`` — 10% qualifying rent paid to a natural person.
|
||||
* ``do_tax_ret_isr_est_15`` — historical or specific 1.5% public-sector case.
|
||||
* ``do_tax_ret_isr_est_5`` — 5% public-sector payment case.
|
||||
* ``do_tax_ret_isr_bovine_1`` — 1% qualifying bovine purchase from an unregistered natural person.
|
||||
* ``do_tax_ret_isr_exporter_25`` — 2.5% qualifying local sale by an exporter.
|
||||
* ``do_tax_ret_isr_int_pj_1`` — 1% interest paid to a legal entity.
|
||||
* ``do_tax_ret_isr_premios_25`` — 25% qualifying lottery, raffle or draw prize.
|
||||
* ``do_tax_ret_isr_premios_10`` — 10% qualifying prize band.
|
||||
* ``do_tax_ret_isr_premios_15`` — 15% qualifying prize band.
|
||||
* ``do_tax_ret_isr_tragamonedas_10`` — 10% slot-machine prize case.
|
||||
* ``do_tax_ret_isr_other_income_10`` — 10% residual income case under article 309.
|
||||
* ``do_tax_ret_isr_ext_27`` — 27% qualifying service or royalty paid abroad.
|
||||
* ``do_tax_ret_isr_ext_10`` — 10% qualifying interest paid abroad.
|
||||
|
||||
Selective and Sector Charges
|
||||
----------------------------
|
||||
|
||||
* ``do_tax_isc_bebidas_alc`` — 10% alcohol ad-valorem component; specific amount excluded.
|
||||
* ``do_tax_isc_tabaco`` — 20% tobacco ad-valorem component; specific amount excluded.
|
||||
* ``do_tax_isc_telecom`` — 10% telecommunications ISC.
|
||||
* ``do_tax_isc_combustibles_16`` — 16% fossil-fuel charge.
|
||||
* ``do_tax_isc_avtur_65`` — 6.5% qualifying Avtur charge.
|
||||
* ``do_tax_isc_fuel_rd2_gallon`` — fixed RD$2 per qualifying gallon.
|
||||
* ``do_tax_ret_isc_insurance_100`` — insurance-sector ISC withholding.
|
||||
* ``do_tax_isc_vehiculos`` — 17% first-registration charge on CIF, not ISC despite the stable legacy identifier.
|
||||
* ``do_tax_cdt_indotel`` — 2% telecommunications development contribution.
|
||||
|
||||
Other Charges
|
||||
-------------
|
||||
|
||||
* ``do_tax_propina_10`` — 10% legal tip under Labour Code article 228.
|
||||
* ``do_tax_cheques_015`` — 0.15% bank charge through 2 July 2026.
|
||||
* ``do_tax_cheques_020`` — 0.20% bank charge from 3 July 2026.
|
||||
* ``do_tax_activos_1`` — manual accounting of the annual 1% asset-tax assessment.
|
||||
* ``do_tax_iti_3`` — manual accounting of the 3% real-estate transfer assessment.
|
||||
|
||||
Rejected Templates
|
||||
------------------
|
||||
|
||||
The following cases are intentionally absent:
|
||||
|
||||
* 8% ITBIS: transitional 2013 rate, not appropriate for a newly created chart;
|
||||
* 9% ITBIS: no precise current primary source and taxable event established;
|
||||
* 2% acquirer withholding: payment-based and conditional, so an invoice-base
|
||||
percentage would be materially misleading;
|
||||
* vehicle CO2 charge: its rate depends on vehicle emissions;
|
||||
* changing specific alcohol and tobacco amounts: maintained by DGII tables and
|
||||
unsuitable as undated static data.
|
||||
|
||||
Sign-off Record
|
||||
---------------
|
||||
|
||||
For an upstream submission, record the reviewer name, professional capacity,
|
||||
review date and source versions in the merge request. Until that occurs, the
|
||||
correct claim is “complete documented technical review”, not “certified tax
|
||||
advice”.
|
||||
Reference in New Issue
Block a user