From eddba6af12ff36d8559cde4dec227c1f6f3623cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 14:37:01 -0300 Subject: [PATCH 01/10] config CircleCI Source: https://github.com/fyndata/gcp-utils-python/blob/6f594fd/.circleci/config.yml --- .circleci/config.yml | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..4464db20 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,80 @@ +# CircleCI 2.0 configuration file for this project. +# +# Notes: +# - Do not use CircleCI's brand of Docker images unless it is for a secondary environment. +# - We chose not to use dependencies caching because it is complicated to do it right and it is +# not worth the effort for a project so small. +# +# For more information check out: +# - https://circleci.com/docs/2.0/language-python/ for more details +# - https://circleci.com/docs/2.0/configuration-reference/ +# +version: 2 +jobs: + test-py37: + docker: + - image: python:3.7.2 + + working_directory: ~/repo + + steps: + - checkout + + - run: + name: install dependencies + command: | + python3 -m venv venv + . venv/bin/activate + pip install --upgrade pip + pip install --upgrade setuptools wheel + pip install -r requirements/test.txt + pip install -r requirements/extras.txt + + - run: + name: run tests + command: | + . venv/bin/activate + make lint + tox -e py37 + codecov + make test-coverage-report-console + make test-coverage-report-html + + - store_artifacts: + path: test-reports + destination: test-reports + + dist: + docker: + - image: python:3.7.2 + + working_directory: ~/repo + + steps: + - checkout + + - run: + name: install dependencies + command: | + python3 -m venv venv + . venv/bin/activate + pip install --upgrade pip + pip install --upgrade setuptools wheel + pip install -r requirements/release.txt + + - run: + name: make dist + command: | + . venv/bin/activate + make dist + + - store_artifacts: + path: dist + destination: dist + +workflows: + version: 2 + ci: + jobs: + - test-py37 + - dist From 530b2eed7fc7acd6a66ac7e9de4dbc8e8fd1bcaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 18:31:50 -0300 Subject: [PATCH 02/10] requirements: add 'Django' (extras) "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." https://www.djangoproject.com https://github.com/django/django --- requirements/extras.txt | 2 +- setup.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements/extras.txt b/requirements/extras.txt index 7cb924e2..649cc8e8 100644 --- a/requirements/extras.txt +++ b/requirements/extras.txt @@ -1,4 +1,4 @@ # note: it is NOT mandatory to register all dependencies of the required packages. # Required packages: -#none +Django<2.2 diff --git a/setup.py b/setup.py index 95b4c42a..bbfeeac1 100755 --- a/setup.py +++ b/setup.py @@ -25,6 +25,7 @@ def get_version(*file_paths: Sequence[str]) -> str: ] extras_requirements = { + 'django': ['Django>=2.1'], } setup_requirements = [ From 45a48aa815a3c23ba8b8d0f2e9a49a187de9991b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 18:33:13 -0300 Subject: [PATCH 03/10] requirements: add 'djangorestframework' (extras) "Web APIs for Django, made easy." https://www.django-rest-framework.org https://github.com/encode/django-rest-framework --- requirements/extras.txt | 1 + setup.py | 1 + 2 files changed, 2 insertions(+) diff --git a/requirements/extras.txt b/requirements/extras.txt index 649cc8e8..d0e3ad4f 100644 --- a/requirements/extras.txt +++ b/requirements/extras.txt @@ -2,3 +2,4 @@ # Required packages: Django<2.2 +djangorestframework<3.9 diff --git a/setup.py b/setup.py index bbfeeac1..4c16db89 100755 --- a/setup.py +++ b/setup.py @@ -26,6 +26,7 @@ def get_version(*file_paths: Sequence[str]) -> str: extras_requirements = { 'django': ['Django>=2.1'], + 'djangorestframework': ['djangorestframework>=3.8.2'], } setup_requirements = [ From 111100e93e54b3c8035212299620eeced5caac43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Tue, 4 Dec 2018 12:46:10 -0300 Subject: [PATCH 04/10] requirements: add 'marshmallow' "[..] an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes." https://marshmallow.readthedocs.io/ https://github.com/marshmallow-code/marshmallow --- requirements/base.txt | 2 +- setup.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/requirements/base.txt b/requirements/base.txt index 1601bfc4..f74d5c86 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -2,7 +2,7 @@ # note: it is mandatory to register all dependencies of the required packages. # Required packages: -#none +marshmallow==2.16.3 # Packages dependencies: #none diff --git a/setup.py b/setup.py index 4c16db89..bc23ba05 100755 --- a/setup.py +++ b/setup.py @@ -21,7 +21,9 @@ def get_version(*file_paths: Sequence[str]) -> str: readme = open('README.rst').read() history = open('HISTORY.rst').read().replace('.. :changelog:', '') +# TODO: add reasonable upper-bound for some of these packages? requirements = [ + 'marshmallow>=2.16.3', ] extras_requirements = { From bb4ffc3ce1463df5e8414a5b4458f56a80c509a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 18:24:31 -0300 Subject: [PATCH 05/10] extras: add `RutField` for Django models, DRF and MM A separate field class for: - Django model. - DRF (Django REST Framework) serializer. - MM (marshmallow) schema. Some tests have not been implemented. --- cl_sii/extras/__init__.py | 0 cl_sii/extras/dj_model_fields.py | 167 +++++++++++++++++++++++++++ cl_sii/extras/drf_fields.py | 76 ++++++++++++ cl_sii/extras/mm_fields.py | 64 ++++++++++ setup.cfg | 9 ++ tests/test_extras_dj_model_fields.py | 12 ++ tests/test_extras_drf_fields.py | 14 +++ tests/test_extras_mm_fields.py | 146 +++++++++++++++++++++++ 8 files changed, 488 insertions(+) create mode 100644 cl_sii/extras/__init__.py create mode 100644 cl_sii/extras/dj_model_fields.py create mode 100644 cl_sii/extras/drf_fields.py create mode 100644 cl_sii/extras/mm_fields.py create mode 100644 tests/test_extras_dj_model_fields.py create mode 100644 tests/test_extras_drf_fields.py create mode 100644 tests/test_extras_mm_fields.py diff --git a/cl_sii/extras/__init__.py b/cl_sii/extras/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/cl_sii/extras/dj_model_fields.py b/cl_sii/extras/dj_model_fields.py new file mode 100644 index 00000000..f4eb8a70 --- /dev/null +++ b/cl_sii/extras/dj_model_fields.py @@ -0,0 +1,167 @@ +""" +cl_sii "extras" / Django model fields. + +""" +try: + import django +except ImportError as exc: # pragma: no cover + raise ImportError("Package 'Django' is required to use this module.") from exc + +from typing import Any, Optional, Tuple + +import django.core.exceptions +import django.db.models +import django.db.models.fields + +import cl_sii.rut.constants +from cl_sii.rut import Rut + + +class RutField(django.db.models.Field): + + """ + Django model field for RUT. + + * Python data type: :class:`cl_sii.rut.Rut` + * DB type: ``varchar``, the same one as the one for model field + :class:`django.db.models.CharField` + + It verifies only that the input is syntactically valid; it does NOT check + that the value is within boundaries deemed acceptable by the SII. + + The field performs some input value cleaning when it is an str; + for example ``' 1.111.111-k \t '`` is allowed and the resulting value + is ``Rut('1111111-K')``. + + .. seealso:: + :class:`.drf_fields.RutField` and :class:`.mm_fields.RutField` + + Implementation partially inspired in + :class:`django.db.models.fields.UUIDField`. + + """ + + # TODO: add option to validate that "digito verificador" is correct. + # TODO: implement method 'formfield'. Probably a copy of 'CharField.formfield' is fine. + + description = 'RUT for SII (Chile)' + default_error_messages = { + 'invalid': "'%(value)s' is not a syntactically valid RUT.", + 'invalid_dv': "\"digito verificador\" of RUT '%(value)s' is incorrect.", + } + empty_strings_allowed = False + + def __init__(self, *args: Any, **kwargs: Any) -> None: + # note: the value saved to the DB will always be in canonical format. + db_column_max_length = cl_sii.rut.constants.RUT_CANONICAL_MAX_LENGTH + + # note: for some reason, even though the kwarg 'max_length' was not set explicitly in + # a model, some Django magic caused it was set automatically (perhaps consecutive calls + # or something like that?). + if 'max_length' in kwargs and kwargs['max_length'] != db_column_max_length: + raise ValueError("This field does not allow customization of 'max_length'.") + + kwargs['max_length'] = db_column_max_length + super().__init__(*args, **kwargs) + + def deconstruct(self) -> Tuple[str, str, Any, Any]: + """ + Return a 4-tuple with enough information to recreate the field. + """ + # note: this override is necessary because we have a custom constructor. + + name, path, args, kwargs = super().deconstruct() + del kwargs['max_length'] + + return name, path, args, kwargs + + def get_internal_type(self) -> str: + # Emulate built-in model field type 'CharField' i.e. the underlying DB type is the same. + # https://docs.djangoproject.com/en/2.1/howto/custom-model-fields/#emulating-built-in-field-types + return 'CharField' + + def from_db_value( + self, + value: Optional[str], + expression: object, + connection: object, + ) -> Optional[Rut]: + """ + Convert a value as returned by the database to a Python object. + + > It is the reverse of :meth:`get_prep_value`. + + > If present for the field subclass, :meth:`from_db_value` will be + > called in all circumstances when the data is loaded from the + > database, including in aggregates and ``values()`` calls. + + It needs to be able to process ``None``. + + .. seealso:: + https://docs.djangoproject.com/en/2.1/howto/custom-model-fields/#converting-values-to-python-objects + https://docs.djangoproject.com/en/2.1/ref/models/fields/#django.db.models.Field.from_db_value + + """ + # note: there is no parent implementation, for performance reasons. + return self.to_python(value) + + def get_prep_value(self, value: Optional[Rut]) -> Optional[str]: + """ + Convert the model's attribute value to a format suitable for the DB. + + i.e. prepared for use as a parameter in a query. + It is the reverse of :meth:`from_db_value`. + + However, these are preliminary non-DB specific value checks and + conversions (otherwise customize :meth:`get_db_prep_value`). + + """ + value = super().get_prep_value(value) + return value if value is None else value.canonical + + def to_python(self, value: Optional[object]) -> Optional[Rut]: + """ + Convert the input value to the correct Python object (:class:`Rut`). + + > It acts as the reverse of :meth:`value_to_string`, and is also + called in :meth`clean`. + + It needs to be able to process ``None``. + + .. seealso:: + https://docs.djangoproject.com/en/2.1/howto/custom-model-fields/#converting-values-to-python-objects + https://docs.djangoproject.com/en/2.1/ref/models/fields/#django.db.models.Field.to_python + + :raises django.core.exceptions.ValidationError: + if the data can't be converted + + """ + if value is None or isinstance(value, Rut): + converted_value = value + else: + try: + converted_value = Rut(value, validate_dv=False) # type: ignore + except (AttributeError, TypeError, ValueError): + raise django.core.exceptions.ValidationError( + self.error_messages['invalid'], + code='invalid', + params={'value': value}, + ) + + return converted_value + + def value_to_string(self, obj: django.db.models.Model) -> str: + """ + Convert to a string the field value of model instance``obj``. + + Used to serialize the value of the field. + + .. seealso:: + https://docs.djangoproject.com/en/2.1/howto/custom-model-fields/#converting-field-data-for-serialization + + """ + # note: according to official docs, 'value_from_object' is the + # "best way to get the field's value prior to serialization". + value: Optional[Rut] = self.value_from_object(obj) + + return '' if value is None else value.canonical diff --git a/cl_sii/extras/drf_fields.py b/cl_sii/extras/drf_fields.py new file mode 100644 index 00000000..9cbe7488 --- /dev/null +++ b/cl_sii/extras/drf_fields.py @@ -0,0 +1,76 @@ +""" +cl_sii "extras" / Django REST Framework (DRF) fields. + +(for serializers) + +""" +try: + import rest_framework +except ImportError as exc: # pragma: no cover + raise ImportError("Package 'djangorestframework' is required to use this module.") from exc + +import rest_framework.fields + +from cl_sii.rut import Rut + + +class RutField(rest_framework.fields.CharField): + + """ + DRF field for RUT. + + Data types: + * native/primitive/internal/deserialized: :class:`cl_sii.rut.Rut` + * representation/serialized: str, same as for DRF field + :class:`rest_framework.fields.CharField` + + It verifies only that the input is syntactically valid; it does NOT check + that the value is within boundaries deemed acceptable by the SII. + + The field performs some input value cleaning when it is an str; + for example ``' 1.111.111-k \t '`` is allowed and the resulting value + is ``Rut('1111111-K')``. + + .. seealso:: + :class:`.dj_model_fields.RutField` and :class:`.mm_fields.RutField` + + Implementation partially inspired in + :class:`rest_framework.fields.UUIDField`. + + """ + + default_error_messages = { + 'invalid': "'{value}' is not a syntactically valid RUT.", + } + + def to_internal_value(self, data: object) -> Rut: + """ + Deserialize. + + > Restore a primitive datatype into its internal python representation. + + :raises rest_framework.exceptions.ValidationError: + if the data can't be converted + + """ + if isinstance(data, Rut): + converted_data = data + else: + try: + if isinstance(data, str): + converted_data = Rut(data, validate_dv=False) + else: + self.fail('invalid', value=data) + except (AttributeError, TypeError, ValueError): + self.fail('invalid', value=data) + + return converted_data + + def to_representation(self, value: Rut) -> str: + """ + Serialize. + + > Convert the initial datatype into a primitive, serializable datatype. + + """ + return value.canonical diff --git a/cl_sii/extras/mm_fields.py b/cl_sii/extras/mm_fields.py new file mode 100644 index 00000000..d5eefc75 --- /dev/null +++ b/cl_sii/extras/mm_fields.py @@ -0,0 +1,64 @@ +""" +cl_sii "extras" / Marshmallow fields. + +(for serializers) + +""" +try: + import marshmallow +except ImportError as exc: # pragma: no cover + raise ImportError("Package 'marshmallow' is required to use this module.") from exc + +from typing import Optional + +import marshmallow.fields + +from cl_sii.rut import Rut + + +class RutField(marshmallow.fields.Field): + + """ + Marshmallow field for RUT. + + Data types: + * native/primitive/internal/deserialized: :class:`cl_sii.rut.Rut` + * representation/serialized: str, same as for Marshmallow field + :class:`marshmallow.fields.String` + + It verifies only that the input is syntactically valid; it does NOT check + that the value is within boundaries deemed acceptable by the SII. + + The field performs some input value cleaning when it is an str; + for example ``' 1.111.111-k \t '`` is allowed and the resulting value + is ``Rut('1111111-K')``. + + .. seealso:: + :class:`.dj_model_fields.RutField` and :class:`.drf_fields.RutField` + + Implementation partially inspired in :class:`marshmallow.fields.UUID`. + + """ + + default_error_messages = { + 'invalid': 'Not a syntactically valid RUT.' + } + + def _serialize(self, value: Optional[object], attr: str, obj: object) -> Optional[str]: + validated = self._validated(value) + return validated.canonical if validated is not None else None + + def _deserialize(self, value: str, attr: str, data: dict) -> Optional[Rut]: + return self._validated(value) + + def _validated(self, value: Optional[object]) -> Optional[Rut]: + if value is None or isinstance(value, Rut): + validated = value + else: + try: + validated = Rut(value, validate_dv=False) # type: ignore + except TypeError: + self.fail('type') + except ValueError: + self.fail('invalid') + return validated diff --git a/setup.cfg b/setup.cfg index ddb01ab7..5eeb1deb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,6 +27,15 @@ disallow_untyped_defs = True check_untyped_defs = True warn_return_any = True +[mypy-django.*] +ignore_missing_imports = True + +[mypy-marshmallow.*] +ignore_missing_imports = True + +[mypy-rest_framework.*] +ignore_missing_imports = True + [flake8] ignore = # W503 line break before binary operator diff --git a/tests/test_extras_dj_model_fields.py b/tests/test_extras_dj_model_fields.py new file mode 100644 index 00000000..f3970295 --- /dev/null +++ b/tests/test_extras_dj_model_fields.py @@ -0,0 +1,12 @@ +import unittest + +import django.db.models # noqa: F401 + +from cl_sii.extras.dj_model_fields import Rut, RutField # noqa: F401 + + +class RutFieldTest(unittest.TestCase): + + # TODO: implement! + + pass diff --git a/tests/test_extras_drf_fields.py b/tests/test_extras_drf_fields.py new file mode 100644 index 00000000..93210832 --- /dev/null +++ b/tests/test_extras_drf_fields.py @@ -0,0 +1,14 @@ +import unittest + +import rest_framework # noqa: F401 + +# TODO: create a test setup that at least makes it possible to run the following imports +# (underlying `import rest_framework.fields` raises Django's 'ImproperlyConfigured'): +# from cl_sii.extras.drf_fields import Rut, RutField + + +class RutFieldTest(unittest.TestCase): + + # TODO: implement! + + pass diff --git a/tests/test_extras_mm_fields.py b/tests/test_extras_mm_fields.py new file mode 100644 index 00000000..a6266ec2 --- /dev/null +++ b/tests/test_extras_mm_fields.py @@ -0,0 +1,146 @@ +import unittest + +import marshmallow + +from cl_sii.extras.mm_fields import Rut, RutField + + +class RutFieldTest(unittest.TestCase): + + def setUp(self) -> None: + + class MyObj: + def __init__(self, emisor_rut: Rut, other_field: int = None) -> None: + self.emisor_rut = emisor_rut + self.other_field = other_field + + class MyBadObj: + def __init__(self, some_field: int) -> None: + self.some_field = some_field + + class MyMmSchema(marshmallow.Schema): + + class Meta: + strict = False + + emisor_rut = RutField( + required=True, + load_from='RUT of Emisor', + ) + other_field = marshmallow.fields.Integer( + required=False, + ) + + class MyMmSchemaStrict(marshmallow.Schema): + + class Meta: + strict = True + + emisor_rut = RutField( + required=True, + load_from='RUT of Emisor', + ) + other_field = marshmallow.fields.Integer( + required=False, + ) + + self.MyObj = MyObj + self.MyBadObj = MyBadObj + self.MyMmSchema = MyMmSchema + self.MyMmSchemaStrict = MyMmSchemaStrict + + def test_load_ok_valid(self) -> None: + schema = self.MyMmSchema() + + data_valid_1 = {'RUT of Emisor': '1-1'} + data_valid_2 = {'RUT of Emisor': Rut('1-1')} + data_valid_3 = {'RUT of Emisor': ' 1.111.111-k \t '} + + result = schema.load(data_valid_1) + self.assertDictEqual(dict(result.data), {'emisor_rut': Rut('1-1')}) + self.assertDictEqual(dict(result.errors), {}) + + result = schema.load(data_valid_2) + self.assertDictEqual(dict(result.data), {'emisor_rut': Rut('1-1')}) + self.assertDictEqual(dict(result.errors), {}) + + result = schema.load(data_valid_3) + self.assertDictEqual(dict(result.data), {'emisor_rut': Rut('1111111-K')}) + self.assertDictEqual(dict(result.errors), {}) + + def test_dump_ok_valid(self) -> None: + schema = self.MyMmSchema() + + obj_valid_1 = self.MyObj(emisor_rut=Rut('1-1')) + obj_valid_2 = self.MyObj(emisor_rut=None) + + data, errors = schema.dump(obj_valid_1) + self.assertDictEqual(data, {'emisor_rut': '1-1', 'other_field': None}) + self.assertDictEqual(errors, {}) + + data, errors = schema.dump(obj_valid_2) + self.assertDictEqual(data, {'emisor_rut': None, 'other_field': None}) + self.assertDictEqual(errors, {}) + + def test_dump_ok_strange(self) -> None: + # If the class of the object to be dumped has attributes that do not match at all the + # fields of the schema, there are no errors! Even if the schema has `strict = True` set. + + schema = self.MyMmSchema() + schema_strict = self.MyMmSchemaStrict() + + obj_valid_1 = self.MyBadObj(some_field=123) + obj_valid_2 = self.MyBadObj(some_field=None) + + data, errors = schema.dump(obj_valid_1) + self.assertEqual((data, errors), ({}, {})) + + data, errors = schema_strict.dump(obj_valid_1) + self.assertEqual((data, errors), ({}, {})) + + data, errors = schema.dump(obj_valid_2) + self.assertEqual((data, errors), ({}, {})) + + data, errors = schema_strict.dump(obj_valid_2) + self.assertEqual((data, errors), ({}, {})) + + def test_load_fail(self) -> None: + + schema = self.MyMmSchema() + + data_invalid_1 = {'RUT of Emisor': '123123123123'} + data_invalid_2 = {'RUT of Emisor': 123} + data_invalid_3 = {'RUT of Emisor': None} + data_invalid_4 = {} + + result = schema.load(data_invalid_1) + self.assertDictEqual(dict(result.data), {}) + self.assertDictEqual(dict(result.errors), {'RUT of Emisor': ['Not a syntactically valid RUT.']}) # noqa: E501 + + result = schema.load(data_invalid_2) + self.assertDictEqual(dict(result.data), {}) + self.assertDictEqual(dict(result.errors), {'RUT of Emisor': ['Invalid input type.']}) + + result = schema.load(data_invalid_3) + self.assertDictEqual(dict(result.data), {}) + self.assertDictEqual(dict(result.errors), {'RUT of Emisor': ['Field may not be null.']}) + + result = schema.load(data_invalid_4) + self.assertDictEqual(dict(result.data), {}) + self.assertDictEqual(dict(result.errors), {'RUT of Emisor': ['Missing data for required field.']}) # noqa: E501 + + def test_dump_fail(self) -> None: + schema = self.MyMmSchema() + + obj_invalid_1 = self.MyObj(emisor_rut=20) + obj_invalid_2 = self.MyObj(emisor_rut='123123123123') + obj_invalid_3 = self.MyObj(emisor_rut='') + + data, errors = schema.dump(obj_invalid_1) + self.assertDictEqual(errors, {'emisor_rut': ['Invalid input type.']}) + + data, errors = schema.dump(obj_invalid_2) + self.assertDictEqual(errors, {'emisor_rut': ['Not a syntactically valid RUT.']}) + + data, errors = schema.dump(obj_invalid_3) + self.assertDictEqual(errors, {'emisor_rut': ['Not a syntactically valid RUT.']}) From 7030d96b1a2dccf667dee6135a97c3cee9ff6d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Wed, 28 Nov 2018 12:37:21 -0300 Subject: [PATCH 06/10] =?UTF-8?q?data.ref:=20add=20XML=20schemas=20of=20"f?= =?UTF-8?q?actura=20electr=C3=B3nica"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Official schemas of entities related to these domain concepts: - DTE (Documento Tributario Electrónico) - IECV (Información Electrónica de Libros de Compra y Venta) - LCE (Libros Contables Electrónicos) Includes a README file per schema set. All the files have been preserved as they were; schemas are in their original text encoding (ISO-8859-1) and have not been modified in the slightest way. Include the XML schema (`.xsd`) files in the distribution packages (source and wheel). Sources (2018-11-28): http://www.sii.cl/factura_electronica/schema_dte.zip http://www.sii.cl/factura_electronica/schema_iecv.zip --- MANIFEST.in | 2 + .../schema_dte/DTE_v10.xsd | 5162 +++++++++++++++++ .../schema_dte/EnvioDTE_v10.xsd | 108 + .../factura_electronica/schema_dte/README.md | 98 + .../schema_dte/SiiTypes_v10.xsd | 811 +++ .../schema_dte/xmldsignature_v10.xsd | 184 + .../schema_iecv/LceCal_v10.xsd | 139 + .../schema_iecv/LceCoCertif_v10.xsd | 56 + .../schema_iecv/LceSiiTypes_v10.xsd | 280 + .../schema_iecv/LibroCV_v10.xsd | 1637 ++++++ .../factura_electronica/schema_iecv/README.md | 89 + .../schema_iecv/xmldsignature_v10.xsd | 184 + setup.py | 3 + 13 files changed, 8753 insertions(+) create mode 100644 cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_dte/README.md create mode 100644 cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_dte/xmldsignature_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd create mode 100644 cl_sii/data/ref/factura_electronica/schema_iecv/README.md create mode 100644 cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd diff --git a/MANIFEST.in b/MANIFEST.in index 81f56241..2d57a301 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,4 +2,6 @@ include HISTORY.rst include LICENSE include README.rst recursive-include cl_sii *py +recursive-include cl_sii/data/ref/factura_electronica/schema_dte *.xsd +recursive-include cl_sii/data/ref/factura_electronica/schema_iecv *.xsd include cl_sii/py.typed diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd new file mode 100644 index 00000000..a528f2c1 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd @@ -0,0 +1,5162 @@ + + + + + + + + + Documento Tributario Electronico + + + + + + Informacion Tributaria del DTE + + + + + + Identificacion y Totales del Documento + + + + + + Identificacion del DTE + + + + + + Tipo de DTE + + + + + Folio del Documento Electronico + + + + + Fecha Emision Contable del DTE (AAAA-MM-DD) + + + + + Nota de Credito sin Derecho a Descontar Debito + + + + + + Nota de Credito sin Derecho a Descontar Debito + + + + + + + + Indica Modo de Despacho de los Bienes que Acompanan al DTE + + + + + + Despacho por Cuenta del Comprador + + + + + Despacho por Cuenta del Emisor a Instalaciones del Comprador + + + + + Despacho por Cuenta del Emisor a Otras Instalaciones + + + + + + + + Incluido en Guias de Despacho para Especifiicar el Tipo de Traslado de Productos + + + + + + Operacion Constituye Venta + + + + + Venta por Efectuar + + + + + Consignacion + + + + + Promocion o Donacion (RUT Emisor = RUT Receptor) + + + + + Traslado Interno + + + + + Otros Traslados que no Constituyen Venta + + + + + Guia de Devolucion + + + + + + + + + + Tipo de impresión N (Normal) o T (Ticket) + + + + + + + + + + + + Indica si Transaccion Corresponde a la Prestacion de un Servicio + + + + + + Facturacion de Servicios Periodicos Domiciliarios + + + + + Facturacion de Otros Servicios Periodicos + + + + + Factura de Servicio + + + + + + + + Indica el Uso de Montos Brutos en Detalle + + + + + + Monto de Lineas de Detalle Corresponde a Valores Brutos (IVA + Impuestos Adicionales) + + + + + + + + Forma de Pago del DTE + + + + + + Pago Contado + + + + + Pago Credito + + + + + Sin Costo + + + + + + + + Forma de Pago Exportación Tabla Formas de Pago de Aduanas + + + + + + + + + + Fecha de Cancelacion del DTE (AAAA-MM-DD) + + + + + Monto Cancelado al emitirse el documento + + + + + Saldo Insoluto al emitirse el documento + + + + + Tabla de Montos de Pago + + + + + + Fecha de Pago (AAAA-MM-DD) + + + + + Monto de Pago + + + + + + + + + + + + + + + Periodo de Facturacion - Desde (AAAA-MM-DD) + + + + + Periodo Facturacion - Hasta (AAAA-MM-DD) + + + + + Medio de Pago + + + + + Tipo Cuenta de Pago + + + + + + + + + + + + + + Número de la cuenta del pago + + + + + + + + + + Banco donde se realiza el pago + + + + + + + + + + Codigo del Termino de Pago Acordado + + + + + + + + + + Términos del Pago - glosa + + + + + + + + + + Dias de Acuerdo al Codigo de Termino de Pago + + + + + + + + + + Fecha de Vencimiento del Pago (AAAA-MM-DD) + + + + + + + + Datos del Emisor + + + + + + RUT del Emisor del DTE + + + + + Nombre o Razon Social del Emisor + + + + + + + + Giro Comercial del Emisor Relevante para el DTE + + + + + + + + + + + Telefono Emisor + + + + + + + + + + Correo Elect. de contacto en empresa del receptor + + + + + Codigo de Actividad Economica del Emisor Relevante para el DTE + + + + + + + + + + Emisor de una Guía de despacho para Exportación + + + + + + Código Emisor Traslado Excepcional + + + + + + + + + + + + + + Folio Autorización ( N° de Resolución del SI) + + + + + Fecha de emisión de la Resolución de autorización (AAAA-MM-DD) + + + + + + + + Sucursal que Emite el DTE + + + + + + + + + + Codigo de Sucursal Entregado por el SII + + + + + + + + + + Direccion de Origen + + + + + + + + + + Comuna de Origen + + + + + Ciudad de Origen + + + + + Codigo del Vendedor + + + + + + + + + + Identificador Adicional del Emisor + + + + + + + + + + + + + + RUT a Cuenta de Quien se Emite el DTE + + + + + Datos del Receptor + + + + + + RUT del Receptor del DTE + + + + + Codigo Interno del Receptor + + + + + + + + + + Nombre o Razon Social del Receptor + + + + + Receptor Extranjero + + + + + + Num. Identif. Receptor Extranjero + + + + + + + + + + + Nacionalidad Receptor Extranjero + + + + + + + + + + + + + + Giro Comercial del Receptor + + + + + + + + + + Telefono o E-mail de Contacto del Receptor + + + + + + + + + + Correo Elect. de contacto en empresa del receptor + + + + + Direccion en la Cual se Envian los Productos o se Prestan los Servicios + + + + + + + + + + Comuna de Recepcion + + + + + Ciudad de Recepcion + + + + + Direccion Postal + + + + + + + + + + Comuna Postal + + + + + Ciudad Postal + + + + + + + + RUT que solicita el DTE en Venta a Publico + + + + + Informacion de Transporte de Mercaderias + + + + + + Patente del Vehiculo que Transporta los Bienes + + + + + + + + + + RUT del Transportista + + + + + + + + RUT del Chofer + + + + + Nombre del Chofer + + + + + + + + + + + + + Direccion de Destino + + + + + + + + + + Comuna de Destino + + + + + Ciudad de Destino + + + + + documentos de Exportación y guías de despacho + + + + + + Código según tabla "Modalidad de Venta" de aduana + + + + + + + + + + Código según Tabla "Cláusula compra-venta" de Aduana + + + + + + + + + + Total Cláusula de venta + + + + + Indicar el Código de la vía de transporte utilizada para transportar la mercadería, según tabla Vías de Transporte de Aduana + + + + + + + + + + Nombre o Identificación del Medio de Transporte + + + + + + + + + + Rut Cía. Transportadora + + + + + Nombre Cía. Transportadora + + + + + + + + + + Identificador Adicional Cía. Transportadora + + + + + + + + + + + Numero de reserva del Operador + + + + + + + + + + + Código del Operador + + + + + + + + + + + Código del puerto de embarque según tabla de Aduana + + + + + + + + + + Identificador Adicional Puerto de Embarque + + + + + + + + + + + Código del puerto de desembarque según tabla de Aduana + + + + + + + + + + Identificador Adicional Puerto de Desembarque + + + + + + + + + + + + + + + + + + Código de la unidad de medida según tabla de Aduana + + + + + + + + + + Sumatoria de los pesos brutos de todos los ítems del documento + + + + + + + + + + + Código de la unidad de medida según tabla de Aduana + + + + + + + + + + Sumatoria de los pesos netos de todos los ítems del documento + + + + + + + + + + + Código de la unidad de medida según tabla de Aduana + + + + + + + + + + Indique el total de items del documento + + + + + + + + + + Cantidad total de bultos que ampara el documento. + + + + + + + + + + Tabla de descripción de los distintos tipos de bultos + + + + + + Código según tabla "Tipos de Bultos" de aduana + + + + + + + + + + Cantidad de Bultos + + + + + + + + + + Identificación de marcas, cuando es distinto de contenedor + + + + + + + + + + Se utiliza cuando el tipo de bulto es contenedor + + + + + + + + + + Sello contenedor. Con digito verificador + + + + + + + + + + Nombre emisor sello + + + + + + + + + + + + + Monto del flete según moneda de venta + + + + + Monto del seguro , según moneda de venta + + + + + Código del país del receptor extranjero de la mercadería, +según tabla Países aduana + + + + + + + + + + Código del país de destino extranjero de la mercadería, +según tabla Países aduana + + + + + + + + + + + + + + + + Montos Totales del DTE + + + + + + Monto Neto del DTE + + + + + Monto Exento del DTE + + + + + Monto Base Faenamiento Carne + + + + + Monto Base de Márgenes de Comercialización. Monto informado + + + + + Tasa de IVA + + + + + Monto de IVA del DTE + + + + + Monto del IVA propio + + + + + Monto del IVA de Terceros + + + + + Impuestos y Retenciones Adicionales + + + + + + Tipo de Impuesto o Retencion Adicional + + + + + Tasa de Impuesto o Retencion + + + + + + + + + + Monto del Impuesto o Retencion + + + + + + + + IVA No Retenido + + + + + Credito Especial Empresas Constructoras + + + + + Garantia por Deposito de Envases o Embalajes + + + + + Comisiones y otros cargos es obligatoria para Liquidaciones Factura + + + + + + Valor Neto Comisiones y Otros Cargos + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos + + + + + Valor IVA Comisiones y Otros Cargos + + + + + + + + Monto Total del DTE + + + + + Monto No Facturable - Corresponde a Bienes o Servicios Facturados Previamente + + + + + Total de Ventas o Servicios del Periodo + + + + + Saldo Anterior - Puede ser Negativo o Positivo + + + + + Valor a Pagar Total del documento + + + + + + + + Otra Moneda + + + + + + Tipo Ottra moneda Tabla de Monedas de Aduanas + + + + + Tipo de Cambio fijado por el Banco Central de Chile + + + + + Monto Neto del DTE en Otra Moneda + + + + + Monto Exento del DTE en Otra Moneda + + + + + Monto Base Faenamiento Carne en Otra Moneda + + + + + Monto Base de Márgenes de Comercialización. Monto informado + + + + + Monto de IVA del DTE en Otra Moneda + + + + + Impuestos y Retenciones Adicionales + + + + + + Tipo de Impuesto o Retencion Adicional + + + + + Tasa de Impuesto o Retencion + + + + + Valor del impuesto o retención en otra moneda + + + + + + + + IVA no retenido Otra Moneda + + + + + Monto Total Otra Moneda + + + + + + + + + + + Detalle de Itemes del Documento + + + + + + Numero Secuencial de Linea + + + + + + + + + + Codificacion del Item + + + + + + Tipo de Codificacion + + + + + + + + + + Valor del Codigo de Item, para la Codificacion Particular + + + + + + + + + + + + + Indicador de Exencion/Facturacion + + + + + + El Producto o Servicio NO ESTA Afecto a IVA + + + + + El Producto o Servicio NO ES Facturable + + + + + Garantia por Deposito/Envase + + + + + El producto No Constituye Venta + + + + + Item a Rebajar + + + + + No facturables negativos + + + + + + + + Sólo para transacciones realizadas por agentes retenedores + + + + + + Indicador Agente Retenedor + + + + + + + + + + + Monto Base Faenamiento + + + + + Márgenes de Comercialización + + + + + Precio Unitario Neto Consumidor Final + + + + + + + + Nombre del Item + + + + + + + + + + Descripcion del Item + + + + + + + + + + Cantidad para la Unidad de Medida de Referencia + + + + + Unidad de Medida de Referencia + + + + + + + + + + Precio Unitario de Referencia para Unidad de Referencia + + + + + Cantidad del Item + + + + + Distribucion de la Cantidad + + + + + + Cantidad Distribuida + + + + + Codigo Descriptivo de la Subcantidad + + + + + + + + + + + + + Fecha Elaboracion del Item + + + + + Fecha Vencimiento del Item + + + + + Unidad de Medida + + + + + + + + + + Precio Unitario del Item en Pesos + + + + + Precio del Item en Otra Moneda + + + + + + Precio Unitario en Otra Moneda + + + + + Codigo de Otra Moneda (Usar Codigos de Moneda del Banco Central) + + + + + + + + + + Factor para Conversion a Pesos + + + + + Descuento en Otra Moneda + + + + + Recargo en Otra Moneda + + + + + Valor por línea de detalle en Otra Moneda + + + + + + + + Porcentaje de Descuento + + + + + Monto de Descuento + + + + + Desglose del Descuento + + + + + + Tipo de SubDescuento + + + + + Valor del SubDescuento + + + + + + + + Porcentaje de Recargo + + + + + + + + + + Monto de Recargo + + + + + Desglose del Recargo + + + + + + Tipo de SubRecargo + + + + + Valor de SubRecargo + + + + + + + + Codigo de Impuesto Adicional o Retencion + + + + + Monto por Linea de Detalle. Corresponde al Monto Neto, a menos que MntBruto Indique lo Contrario + + + + + + + + Subtotales Informativos + + + + + + Número de Subtotal + + + + + + + + + + Glosa + + + + + + + + + + Ubicación para Impresión + + + + + + + + + + Valor Neto del Subtotal + + + + + Valor del IVA del Subtotal + + + + + Valor de los Impuestos adicionales o específicos del Subtotal + + + + + Valor no Afecto o Exento del Subtotal + + + + + Valor de la línea de subtotal + + + + + TABLA de Líneas de Detalle que se agrupan en el Subtotal + + + + + + + + + + + Descuentos y/o Recargos que afectan al total del Documento + + + + + + Numero Secuencial de Linea + + + + + Tipo de Movimiento + + + + + + + + Descuento + + + + + Recargo + + + + + + + + Descripcion del Descuento o Recargo + + + + + + + + + + Unidad en que se Expresa el Valor + + + + + Valor del Descuento o Recargo + + + + + Valor en otra moneda + + + + + Indica si el D/R es No Afecto o No Facturable + + + + + + Descuento/Recargo Global No Afecto + + + + + Descuento/Recargo No Facturable + + + + + + + + + + + Identificacion de otros documentos Referenciados por Documento + + + + + + Numero Secuencial de Linea de Referencia + + + + + + + + + + Tipo de Documento de Referencia + + + + + + + + + + + Indica que se esta Referenciando un Conjunto de Documentos + + + + + + + El Documento hace Referencia a un Conjunto de Documentos Tributarios del Mismo Tipo + + + + + + + + Folio del Documento de Referencia + + + + + RUT Otro Contribuyente + + + + + Fecha de la Referencia + + + + + Tipo de Uso de la Referencia + + + + + + Anula Documento de Referencia + + + + + Corrige Texto del Documento de Referencia + + + + + Corrige Montos + + + + + + + + Razon Explicita por la que se Referencia el Documento + + + + + + + + + + + + + Comisiones y otros cargos es obligatoria para Liquidaciones Factura + + + + + + Numero Secuencial de Linea + + + + + + + + + + + C (comisión) u O (otros cargos) + + + + + + + + + + + + Especificación de la comisión u otro cargo + + + + + + + + + + Valor porcentual de la comisión u otro cargo + + + + + Valor Neto Comisiones y Otros Cargos + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos + + + + + Valor IVA Comisiones y Otros Cargos + + + + + + + + Timbre Electronico de DTE + + + + + + Datos Basicos de Documento + + + + + + RUT Emisor + + + + + Tipo DTE + + + + + Folio DTE + + + + + Fecha Emision DTE en Formato AAAA-MM-DD + + + + + RUT Receptor + + + + + Razon Social Receptor + + + + + + + + + + + Monto Total DTE + + + + + Descripcion Primer Item de Detalle + + + + + + + + + + + Codigo Autorizacion Folios + + + + + + Datos de Autorizacion de Folios + + + + + + RUT Emisor + + + + + Razon Social Emisor + + + + + + + + + + + Tipo DTE + + + + + Rango Autorizado de Folios + + + + + + Folio Inicial (Desde) + + + + + Folio Final (Hasta) + + + + + + + + Fecha Autorizacion en Formato AAAA-MM-DD + + + + + + Clave Publica RSA del Solicitante + + + + + + Modulo RSA + + + + + Exponente RSA + + + + + + + + Clave Publica DSA del Solicitante + + + + + + Modulo Primo + + + + + Entero Divisor de P - 1 + + + + + Entero f(P, Q) + + + + + G**X mod P + + + + + + + + + Identificador de Llave + + + + + + + + Firma Digital (RSA) del SII Sobre DA + + + + + + + + + + + + + + + + TimeStamp de Generacion del Timbre + + + + + + + + Valor de Firma Digital sobre DD + + + + + + + + + + + + + + + + + + + + + + + Fecha y Hora en que se Firmo Digitalmente el Documento AAAA-MM-DDTHH:MI:SS + + + + + + + + + Informacion Tributaria de Liquidaciones + + + + + + Identificacion y Totales del Documento + + + + + + Identificacion del DTE + + + + + + Tipo de DTE + + + + + Folio del Documento Electronico + + + + + Fecha Emision Contable del DTE (AAAA-MM-DD) + + + + + Indica si Transaccion Corresponde a la Prestacion de un Servicio + + + + + + Facturacion de Servicios Periodicos Domiciliarios + + + + + Facturacion de Otros Servicios Periodicos + + + + + Factura de Servicio + + + + + + + + Indica el Uso de Montos Brutos en Detalle + + + + + + Monto de Lineas de Detalle Corresponde a Valores Brutos (IVA + Impuestos Adicionales) + + + + + + + + Forma de Pago del DTE + + + + + + Pago Contado + + + + + Pago Credito + + + + + Sin Costo + + + + + + + + Fecha de Cancelacion del DTE (AAAA-MM-DD) + + + + + Monto Cancelado al emitirse el documento + + + + + Saldo Insoluto al emitirse el documento + + + + + Tabla de Montos de Pago + + + + + + Fecha de Pago (AAAA-MM-DD) + + + + + Monto de Pago + + + + + + + + + + + + + + + Periodo de Facturacion - Desde (AAAA-MM-DD) + + + + + Periodo Facturacion - Hasta (AAAA-MM-DD) + + + + + Medio de Pago + + + + + Tipo Cuenta de Pago + + + + + + + + + + + + + + Número de la cuenta del pago + + + + + + + + + + Banco donde se realiza el pago + + + + + + + + + + Codigo del Termino de Pago Acordado + + + + + + + + + + Términos del Pago - glosa + + + + + + + + + + Dias de Acuerdo al Codigo de Termino de Pago + + + + + + + + + + Fecha de Vencimiento del Pago (AAAA-MM-DD) + + + + + + + + Datos del Emisor + + + + + + RUT del Emisor del DTE + + + + + Nombre o Razon Social del Emisor + + + + + + + + + + + Giro Comercial del Emisor Relevante para el DTE + + + + + + + + + + + Telefono Emisor + + + + + + + + + + Correo Elect. de contacto en empresa del receptor + + + + + Codigo de Actividad Economica del Emisor Relevante para el DTE + + + + + + + + + + Sucursal que Emite el DTE + + + + + + + + + + Codigo de Sucursal Entregado por el SII + + + + + + + + + + Direccion de Origen + + + + + + + + + + Comuna de Origen + + + + + Ciudad de Origen + + + + + Codigo del Vendedor + + + + + + + + + + + + + Datos del Receptor + + + + + + RUT del Receptor del DTE + + + + + Codigo Interno del Receptor + + + + + + + + + + Nombre o Razon Social del Receptor + + + + + Giro Comercial del Receptor + + + + + + + + + + Glosa con nombre o teléfono de contacto en empresa del receptor + + + + + + + + + + Correo Elect. de contacto en empresa del receptor + + + + + Direccion en la Cual se Envian los Productos o se Prestan los Servicios + + + + + + + + + + Comuna de Recepcion + + + + + Ciudad de Recepcion + + + + + Direccion Postal + + + + + + + + + + Comuna Postal + + + + + Ciudad Postal + + + + + + + + Montos Totales del DTE + + + + + + Monto Neto del DTE + + + + + Monto Exento del DTE + + + + + Tasa de IVA + + + + + Monto de IVA del DTE + + + + + Monto del IVA propio + + + + + Monto del IVA de Terceros + + + + + Impuestos y Retenciones Adicionales + + + + + + Tipo de Impuesto o Retencion Adicional + + + + + Tasa de Impuesto o Retencion + + + + + Monto del Impuesto o Retencion + + + + + + + + Comisiones y otros cargos es obligatoria para Liquidaciones Factura + + + + + + Valor Neto Comisiones y Otros Cargos + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos + + + + + Valor IVA Comisiones y Otros Cargos + + + + + + + + Monto Total del DTE + + + + + Total de Ventas o Servicios del Periodo + + + + + Saldo Anterior - Puede ser Negativo o Positivo + + + + + Valor a Pagar Total del documento + + + + + + + + + + + Detalle de Itemes del Documento + + + + + + Numero Secuencial de Linea + + + + + + + + + + Codificacion del Item + + + + + + Tipo de Codificacion + + + + + + + + + + Valor del Codigo de Item, para la Codificacion Particular + + + + + + + + + + + + + Tipo de Documento que se Liquida + + + + + + + + + + + Indicador de Exencion/Facturacion + + + + + + El Producto o Servicio NO ESTA Afecto a IVA + + + + + El Producto o Servicio NO ES Facturable + + + + + Garantia por Deposito/Envase + + + + + El producto No Constituye Venta + + + + + Item a Rebajar + + + + + No facturables negativos + + + + + + + + Nombre del Item + + + + + + + + + + Descripcion del Item + + + + + + + + + + Cantidad para la Unidad de Medida de Referencia + + + + + Unidad de Medida de Referencia + + + + + + + + + + Precio Unitario de Referencia para Unidad de Referencia + + + + + Cantidad del Item + + + + + Distribucion de la Cantidad + + + + + + Cantidad Distribuida + + + + + Codigo Descriptivo de la Subcantidad + + + + + + + + + + + + + Fecha Elaboracion del Item + + + + + Fecha Vencimiento del Item + + + + + Unidad de Medida + + + + + + + + + + Precio Unitario del Item en Pesos + + + + + Codigo de Impuesto Adicional o Retencion + + + + + Monto por Linea de Detalle. Corresponde al Monto Neto, a menos que MntBruto Indique lo Contrario + + + + + + + + Subtotales Informativos + + + + + + Número de Subtotal + + + + + + + + + + Glosa + + + + + + + + + + Ubicación para Impresión + + + + + + + + + + Valor Neto del Subtotal + + + + + Valor del IVA del Subtotal + + + + + Valor de los Impuestos adicionales o específicos del Subtotal + + + + + Valor no Afecto o Exento del Subtotal + + + + + Valor de la línea de subtotal + + + + + TABLA de Líneas de Detalle que se agrupan en el Subtotal + + + + + + + + + + + Identificacion de otros documentos Referenciados por Documento + + + + + + Numero Secuencial de Linea de Referencia + + + + + + + + + + Tipo de Documento de Referencia + + + + + + + + + + + Indica que se esta Referenciando un Conjunto de Documentos + + + + + + + El Documento hace Referencia a un Conjunto de Documentos Tributarios del Mismo Tipo + + + + + + + + Folio del Documento de Referencia + + + + + Fecha de la Referencia + + + + + Tipo de Uso de la Referencia + + + + + + Anula Documento de Referencia + + + + + Corrige Texto del Documento de Referencia + + + + + Corrige Montos + + + + + + + + Razon Explicita por la que se Referencia el Documento + + + + + + + + + + + + + Comisiones y otros cargos es obligatoria para Liquidaciones Factura + + + + + + Numero Secuencial de Linea + + + + + + + + + + + C (comisión) u O (otros cargos) + + + + + + + + + + + + + Especificación de la comisión u otro cargo + + + + + + + + + + + Valor porcentual de la comisión u otro cargo + + + + + Valor Neto Comisiones y Otros Cargos + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos + + + + + Valor IVA Comisiones y Otros Cargos + + + + + + + + Timbre Electronico de DTE + + + + + + Datos Basicos de Documento + + + + + + RUT Emisor + + + + + Tipo DTE + + + + + Folio DTE + + + + + Fecha Emision DTE en Formato AAAA-MM-DD + + + + + RUT Receptor + + + + + Razon Social Receptor + + + + + + + + + + + Monto Total DTE + + + + + Descripcion Primer Item de Detalle + + + + + + + + + + + Codigo Autorizacion Folios + + + + + + Datos de Autorizacion de Folios + + + + + + RUT Emisor + + + + + Razon Social Emisor + + + + + Tipo DTE + + + + + Rango Autorizado de Folios + + + + + + Folio Inicial (Desde) + + + + + Folio Final (Hasta) + + + + + + + + Fecha Autorizacion en Formato AAAA-MM-DD + + + + + + Clave Publica RSA del Solicitante + + + + + + Modulo RSA + + + + + Exponente RSA + + + + + + + + Clave Publica DSA del Solicitante + + + + + + Modulo Primo + + + + + Entero Divisor de P - 1 + + + + + Entero f(P, Q) + + + + + G**X mod P + + + + + + + + + Identificador de Llave + + + + + + + + Firma Digital (RSA) del SII Sobre DA + + + + + + + + + + + + + + + + TimeStamp de Generacion del Timbre + + + + + + + + Valor de Firma Digital sobre DD + + + + + + + + + + + + + + + + + + + + + + + Fecha y Hora en que se Firmo Digitalmente el Documento AAAA-MM-DDTHH:MI:SS + + + + + + + + + Informacion Tributaria de exportaciones + + + + + + Identificacion y Totales del Documento + + + + + + Identificacion del DTE + + + + + + Tipo de DTE + + + + + Folio del Documento Electronico + + + + + Fecha Emision Contable del DTE (AAAA-MM-DD) + + + + + Indica Modo de Despacho de los Bienes que Acompanan al DTE + + + + + + Despacho por Cuenta del Comprador + + + + + Despacho por Cuenta del Emisor a Instalaciones del Comprador + + + + + Despacho por Cuenta del Emisor a Otras Instalaciones + + + + + + + + Indica si Transaccion Corresponde a la Prestacion de un Servicio + + + + + + + Factura de Servicio + + + + + + + + + + Forma de Pago del DTE + + + + + + Pago Contado + + + + + Pago Credito + + + + + Sin Costo + + + + + + + + Forma de Pago Exportación Tabla Formas de Pago de Aduanas + + + + + + + + + + Fecha de Cancelacion del DTE (AAAA-MM-DD) + + + + + Monto Cancelado al emitirse el documento + + + + + Saldo Insoluto al emitirse el documento + + + + + Tabla de Montos de Pago + + + + + + Fecha de Pago (AAAA-MM-DD) + + + + + Monto de Pago + + + + + + + + + + + + + + + Periodo de Facturacion - Desde (AAAA-MM-DD) + + + + + Periodo Facturacion - Hasta (AAAA-MM-DD) + + + + + Medio de Pago + + + + + Tipo Cuenta de Pago + + + + + + + + + + + + + + Número de la cuenta del pago + + + + + + + + + + Banco donde se realiza el pago + + + + + + + + + + Codigo del Termino de Pago Acordado + + + + + + + + + + Términos del Pago - glosa + + + + + + + + + + Dias de Acuerdo al Codigo de Termino de Pago + + + + + + + + + + Fecha de Vencimiento del Pago (AAAA-MM-DD) + + + + + + + + Datos del Emisor + + + + + + RUT del Emisor del DTE + + + + + Nombre o Razon Social del Emisor + + + + + + + + + + + Giro Comercial del Emisor Relevante para el DTE + + + + + + + + + + + Telefono Emisor + + + + + + + + + + Correo Elect. de contacto en empresa del receptor + + + + + Codigo de Actividad Economica del Emisor Relevante para el DTE + + + + + + + + + + Sucursal que Emite el DTE + + + + + + + + + + Codigo de Sucursal Entregado por el SII + + + + + + + + + + Sucursal que Emite el DTE + + + + + + + + + + Direccion de Origen + + + + + + + + + + Comuna de Origen + + + + + Ciudad de Origen + + + + + Codigo del Vendedor + + + + + + + + + + Identificador Adicional del Emisor + + + + + + + + + + + + + + Datos del Receptor + + + + + + RUT del Receptor del DTE + + + + + Codigo Interno del Receptor + + + + + + + + + + Nombre o Razon Social del Receptor + + + + + Receptor Extranjero + + + + + + Num. Identif. Receptor Extranjero + + + + + + + + + + + Nacionalidad Receptor Extranjero + + + + + + + + + + + Identificador Adicional del Receptor extranjero + + + + + + + + + + + + + + Giro Comercial del Receptor + + + + + + + + + + Glosa con nombre o teléfono de contacto en empresa del receptor + + + + + + + + + + Correo Elect. de contacto en empresa del receptor + + + + + Direccion en la Cual se Envian los Productos o se Prestan los Servicios + + + + + + + + + + Comuna de Recepcion + + + + + Ciudad de Recepcion + + + + + Direccion Postal + + + + + + + + + + Comuna Postal + + + + + Ciudad Postal + + + + + + + + Informacion de Transporte de Mercaderias + + + + + + Patente del Vehiculo que Transporta los Bienes + + + + + + + + + + RUT del Transportista + + + + + + + + RUT del Chofer + + + + + Nombre del Chofer + + + + + + + + + + + + + Direccion de Destino + + + + + + + + + + Comuna de Destino + + + + + Ciudad de Destino + + + + + documentos de Exportación y guías de despacho + + + + + + Código según tabla "Modalidad de Venta" de aduana + + + + + + + + + + Código según Tabla "Cláusula compra-venta" de Aduana + + + + + + + + + + Total Cláusula de venta + + + + + Indicar el Código de la vía de transporte utilizada para transportar la mercadería, según tabla Vías de Transporte de Aduana + + + + + + + + + + Nombre o Identificación del Medio de Transporte + + + + + + + + + + Rut Cía. Transportadora + + + + + Nombre Cía. Transportadora + + + + + + + + + + Identificador Adicional Cía. Transportadora + + + + + + + + + + + Numero de reserva del Operador + + + + + + + + + + + Código del Operador + + + + + + + + + + + Código del puerto de embarque según tabla de Aduana + + + + + + + + + + Identificador Adicional Puerto de Embarque + + + + + + + + + + + Código del puerto de desembarque según tabla de Aduana + + + + + + + + + + Identificador Adicional Puerto de Desembarque + + + + + + + + + + + + + + + + + + Código de la unidad de medida según tabla de Aduana + + + + + + + + + + Sumatoria de los pesos brutos de todos los ítems del documento + + + + + + + + + + + Código de la unidad de medida según tabla de Aduana + + + + + + + + + + Sumatoria de los pesos netos de todos los ítems del documento + + + + + + + + + + + Código de la unidad de medida según tabla de Aduana + + + + + + + + + + Indique el total de items del documento + + + + + + + + + + Cantidad total de bultos que ampara el documento. + + + + + + + + + + Tabla de descripción de los distintos tipos de bultos + + + + + + Código según tabla "Tipos de Bultos" de aduana + + + + + + + + + + Cantidad de Bultos + + + + + + + + + + Identificación de marcas, cuando es distinto de contenedor + + + + + + + + + + Se utiliza cuando el tipo de bulto es contenedor + + + + + + + + + + Sello contenedor. Con digito verificador + + + + + + + + + + Nombre emisor sello + + + + + + + + + + + + + Monto del flete según moneda de venta + + + + + Monto del seguro , según moneda de venta + + + + + Código del país del receptor extranjero de la mercadería, +según tabla Países aduana + + + + + + + + + + Código del país de destino extranjero de la mercadería, +según tabla Países aduana + + + + + + + + + + + + + + + + Montos Totales del DTE + + + + + + Tipo de Moneda en que se regisrtra la transacción. Tabla de Monedas de Aduanas + + + + + Monto Exento del DTE + + + + + + + + + + + + + Monto Total del DTE + + + + + + + + + + + + + + + + Otra Moneda + + + + + + Tipo Otra moneda Tabla de Monedas de Aduanas + + + + + Tipo de Cambio fijado por el Banco Central de Chile + + + + + Monto Exento del DTE en Otra Moneda + + + + + Monto Total Otra Moneda + + + + + + + + + + + Detalle de Itemes del Documento + + + + + + Numero Secuencial de Linea + + + + + + + + + + Codificacion del Item + + + + + + Tipo de Codificacion + + + + + + + + + + Valor del Codigo de Item, para la Codificacion Particular + + + + + + + + + + + + + Indicador de Exencion/Facturacion + + + + + + El Producto o Servicio NO ESTA Afecto a IVA + + + + + El Producto o Servicio NO ES Facturable + + + + + Garantia por Deposito/Envase + + + + + El producto No Constituye Venta + + + + + Item a Rebajar + + + + + No facturables negativos + + + + + + + + Nombre del Item + + + + + + + + + + Descripcion del Item + + + + + + + + + + Cantidad para la Unidad de Medida de Referencia + + + + + Unidad de Medida de Referencia + + + + + + + + + + Precio Unitario de Referencia para Unidad de Referencia + + + + + Cantidad del Item + + + + + Distribucion de la Cantidad + + + + + + Cantidad Distribuida + + + + + Codigo Descriptivo de la Subcantidad + + + + + + + + + + Tipo de Código Subcantidad + + + + + + + + + + + + + + Fecha Elaboracion del Item + + + + + Fecha Vencimiento del Item + + + + + Unidad de Medida + + + + + + + + + + Precio Unitario del Item + + + + + Precio del Item en Otra Moneda + + + + + + Precio Unitario en Otra Moneda + + + + + Codigo de Otra Moneda (Usar Codigos de Moneda del Banco Central) + + + + + + + + + + Factor para Conversion a Pesos + + + + + Descuento en Otra Moneda + + + + + Recargo en Otra Moneda + + + + + + + + + + Valor por línea de detalle en Otra Moneda + + + + + + + + + + + + + Porcentaje de Descuento + + + + + Monto de Descuento + + + + + Desglose del Descuento + + + + + + Tipo de SubDescuento + + + + + + Descuento en Monto + + + + + Descuento en Porcentaje + + + + + + + + Valor del SubDescuento + + + + + + + + Porcentaje de Recargo + + + + + Monto de Recargo + + + + + Desglose del Recargo + + + + + + Tipo de SubRecargo + + + + + + Recargo en Monto + + + + + Recargo en Porcentaje + + + + + + + + Valor de SubRecargo + + + + + + + + Monto por Linea de Detalle. Corresponde al Monto Neto, a menos que MntBruto Indique lo Contrario + + + + + + + + + + + + + + + + Subtotales Informativos + + + + + + Número de Subtotal + + + + + + + + + + Glosa + + + + + + + + + + Ubicación para Impresión + + + + + + + + + + Valor Neto del Subtotal + + + + + Valor del IVA del Subtotal + + + + + Valor de los Impuestos adicionales o específicos del Subtotal + + + + + Valor no Afecto o Exento del Subtotal + + + + + Valor de la línea de subtotal + + + + + TABLA de Líneas de Detalle que se agrupan en el Subtotal + + + + + + + + + + + Descuentos y/o Recargos que afectan al total del Documento + + + + + + Numero Secuencial de Linea + + + + + Tipo de Movimiento + + + + + + Descuento + + + + + Recargo + + + + + + + + Descripcion del Descuento o Recargo + + + + + + + + + + Unidad en que se Expresa el Valor + + + + + + El valor se Expresa como Porcentaje + + + + + El Valor se Expresa en Pesos + + + + + + + + Valor del Descuento o Recargo + + + + + Valor en otra moneda + + + + + Indica si el D/R es No Afecto o No Facturable + + + + + + Descuento/Recargo Global No Afecto + + + + + Descuento/Recargo No Facturable + + + + + + + + + + + Identificacion de otros documentos Referenciados por Documento + + + + + + Numero Secuencial de Linea de Referencia + + + + + + + + + + Tipo de Documento de Referencia + + + + + + + + + + + Indica que se esta Referenciando un Conjunto de Documentos + + + + + + + El Documento hace Referencia a un Conjunto de Documentos Tributarios del Mismo Tipo + + + + + + + + Folio del Documento de Referencia + + + + + RUT Otro Contribuyente + + + + + Identificador Adicional del otro contribuyente + + + + + + + + + + + Fecha de la Referencia + + + + + + + + + + + Tipo de Uso de la Referencia + + + + + + Anula Documento de Referencia + + + + + Corrige Texto del Documento de Referencia + + + + + Corrige Montos + + + + + + + + Razon Explicita por la que se Referencia el Documento + + + + + + + + + + + + + Timbre Electronico de DTE + + + + + + Datos Basicos de Documento + + + + + + RUT Emisor + + + + + Tipo DTE + + + + + Folio DTE + + + + + Fecha Emision DTE en Formato AAAA-MM-DD + + + + + RUT Receptor + + + + + Razon Social Receptor + + + + + + + + + + + Monto Total DTE + + + + + + + + + + + + + Descripcion Primer Item de Detalle + + + + + + + + + + + Codigo Autorizacion Folios + + + + + + Datos de Autorizacion de Folios + + + + + + RUT Emisor + + + + + Razon Social Emisor + + + + + + + + + + + Tipo DTE + + + + + Rango Autorizado de Folios + + + + + + Folio Inicial (Desde) + + + + + Folio Final (Hasta) + + + + + + + + Fecha Autorizacion en Formato AAAA-MM-DD + + + + + + Clave Publica RSA del Solicitante + + + + + + Modulo RSA + + + + + Exponente RSA + + + + + + + + Clave Publica DSA del Solicitante + + + + + + Modulo Primo + + + + + Entero Divisor de P - 1 + + + + + Entero f(P, Q) + + + + + G**X mod P + + + + + + + + + Identificador de Llave + + + + + + + + Firma Digital (RSA) del SII Sobre DA + + + + + + + + + + + + + + + + TimeStamp de Generacion del Timbre + + + + + + + + Valor de Firma Digital sobre DD + + + + + + + + + + + + + + + + + + + + + + + Fecha y Hora en que se Firmo Digitalmente el Documento AAAA-MM-DDTHH:MI:SS + + + + + + + + + + Firma Digital sobre Documento + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd new file mode 100644 index 00000000..2ae36699 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd @@ -0,0 +1,108 @@ + + + + + + + + Envio de Documentos Tributarios Electronicos + + + + + + Conjunto de DTE enviados + + + + + + Resumen de Informacion Enviada + + + + + + RUT Emisor de los DTE + + + + + + + + RUT que envia los DTE + + + + + RUT al que se le envian los DTE + + + + + Fecha de Resolucion que Autoriza el Envio de DTE (AAAA-MM-DD) + Fecha de Resolucion que Autoriza el Envio de DTE (AAAA-MM-DD) + + + + + Numero de Resolucion que Autoriza el Envio de DTE + + + + + Fecha y Hora de la Firma del Archivo de Envio + + + + + Subtotales de DTE enviados + + + + + + Tipo de DTE Enviado + + + + + Numero de DTE Enviados + + + + + + + + + + + + Documento Tributario Electronico + + + + + + + + + Firma Digital sobre SetDTE + + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/README.md b/cl_sii/data/ref/factura_electronica/schema_dte/README.md new file mode 100644 index 00000000..1da1d5cc --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_dte/README.md @@ -0,0 +1,98 @@ +# schema_dte + +This directory contains all the files of `schema_dte.zip`, plus this text file. +All the files have been preserved as they were; schemas are in their original text encoding +(ISO-8859-1) and have not been modified in the slightest way. + +The most significant structures are: +- XML element `EnvioDTE`: "Envio de Documentos Tributarios Electronicos". +- XML data type `DTEDefType`: "Documento Tributario Electronico". + +Note: DTE means "Documento Tributario Electrónico". + + +## Source + +[schema_dte.zip](http://www.sii.cl/factura_electronica/schema_dte.zip) (2018-11-28), +referenced from official webpage +[SII](http://www.sii.cl) +/ [Factura electrónica](http://www.sii.cl/servicios_online/1039-.html) +/ [FORMATO XML DE DOCUMENTOS ELECTRÓNICOS](http://www.sii.cl/factura_electronica/formato_xml.htm) +as +"[Bajar schema XML de Documentos Tributarios Electrónicos](http://www.sii.cl/factura_electronica/schema_dte.zip) (Incluye Documentos de exportación)" + + +## Contents + + +### Detail + +- `DTE_v10.xsd`: "XSD principal y que incluye a los 3" otros XSD. + - XML target namespace: `http://www.sii.cl/SiiDte`. + - XML included/imported schemas: `SiiTypes_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `DTE`: (no description nor annotations) + - XML data types: + - `DTEDefType`: "Documento Tributario Electronico". + +- `EnvioDTE_v10.xsd`: "descripción de documentos" + - XML target namespace: `http://www.sii.cl/SiiDte`. + - XML included/imported schemas: `DTE_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `EnvioDTE`: "Envio de Documentos Tributarios Electronicos". + - XML data types: none. + +- `SiiTypes_v10.xsd`: "descripción de tipos de datos" + - XML target namespace: `http://www.sii.cl/SiiDte`. + - XML included/imported schemas: none. + - XML elements: none. + - XML data types: + - `DOCType`: "Todos los tipos de Documentos Tributarios Electronicos". + - `DocType`: "Tipos de Documento". + - `DTEType`: "Tipos de Documentos Tributarios Electronicos". + - `DTEFacturasType`: "Tipos de Documentos Tributarios Electronicos" (same description as + `DTEType` but different elements). + - `LIQType`: "Tipos de Liquidaciones". + - `EXPType`: "Tipos de Facturas de Exportacion". + - `RUTType`: "Rol Unico Tributario (99..99-X)". + - `MedioPagoType`: "Medios de Pago". + - `TipMonType`: "Tipos de Moneda de Aduana". + - `MontoType`: "Monto de 18 digitos". + - `MntImpType`: "Monto de Impuesto - 18 digitos". + - `ValorType`: "Monto de 18 digitos - Positivo o Negativo". + - `FolioType`: "Folio de DTE - 10 digitos". + - `FolioRType`: "Folio de Referencia - 18 digitos (incluye el cero)". + - `ImpAdicType`: "Tipo de Impuesto o Retencion Adicional". + - `ImpAdicDTEType`: "Tipo de Impuesto o Retencion Adicional de los DTE". + - `MailType`: "Dirección email". + - `DineroPorcentajeType`: "Unidad en que se expresa el Valor". + - `NroResolType`: "Número de Resolución". + - `RznSocLargaType`: "Razón Social (max 100)". + - `RznSocCortaType`: "Razón Social (max 40)". + - `DireccSoloDTEType`: "Dirección (maz 60)" (sic). + - `DireccType`: "Dirección (max 80)". + - `ComunaType`: "Comuna". + - `CiudadType`: "Ciudad". + - `FonoType`: "Fono". + - `NombreType`: "Nombre". + - `FechaType`: "Fecha entre 2000-01-01 y 2050-12-31". + - `FechaHoraType`: "FechaType + hora entre 00:00 y 23:59;". + - `Dec16_2Type`: "Monto con 16 Digitos de Cuerpo y 2 Decimales". + - `Dec14_4Type`: "Monto con 14 Digitos de Cuerpo y 4 Decimales". + - `Dec8_4Type`: "Monto con 8 Digitos de Cuerpo y 4 Decimales". + - `Dec6_4Type`: "Monto con 6 Digitos de Cuerpo y 4 Decimales". + - `Dec12_6Type`: "Monto con 12 Digitos de Cuerpo y 6 Decimales". + - `PctType`: "Monto de Porcentaje ( 3 y 2)". + + +### Notes + +- Enums `DOCType`, `DocType`, `DTEType` and `DTEFacturasType` (all of them in `SiiTypes_v10.xsd`) + are **very** similar. +- Enums `DocType` and `DTEType` have exactly the same elements (although descriptions differ). +- The elements of the following enums are strictly subgroups of enum `DOCType`: + - `DocType` and `DTEType`: same elements. + - `DTEFacturasType` + - `LIQType`: "Tipos de Liquidaciones". + - `EXPType`: "Tipos de Facturas de Exportacion". +- File `xmldsignature_v10.xsd` is identical to `../schema_iecv/xmldsignature_v10.xsd`. diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd new file mode 100644 index 00000000..40345318 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd @@ -0,0 +1,811 @@ + + + + + + Todos los tipos de Documentos Tributarios Electronicos + + + + + Factura Electronica + + + + + Factura Electronica de Venta de Bienes y Servicios No afectos o Exento de IVA + + + + + + Factura de Compra Electronica + + + + + Guia de Despacho Electronica + + + + + Nota de Debito Electronica + + + + + Nota de Credito Electronica + + + + + + + + + + Tipos de Documentos Tributarios Electronicos + + + + + Factura Electronica + + + + + Factura Electronica de Venta de Bienes y Servicios No afectos o Exento de IVA + + + + + Factura de Compra Electronica + + + + + Guia de Despacho Electronica + + + + + Nota de Debito Electronica + + + + + Nota de Credito Electronica + + + + + + + Tipos de Documentos Tributarios Electronicos + + + + + Factura Electronica + + + + + Factura Electronica de Venta de Bienes y Servicios No afectos o Exento de IVA + + + + + Factura de Compra Electronica + + + + + Liquidacion actura Electronica + + + + + + + Rol Unico Tributario (99..99-X) + + + + + + + + + + Monto de Impuesto - 18 digitos + + + + + + + + Monto de 18 digitos - Positivo o Negativo + + + + + + + + Folio de DTE - 10 digitos + + + + + + + + Folio de Referencia - 18 digitos (incluye el cero) + + + + + + + + + + Monto con 16 Digitos de Cuerpo y 2 Decimales + + + + + + + + + + + Monto con 14 Digitos de Cuerpo y 4 Decimales + + + + + + + + + + + Monto con 8 Digitos de Cuerpo y 4 Decimales + + + + + + + + + + + Monto con 6 Digitos de Cuerpo y 4 Decimales + + + + + + + + + + + Monto de Porcentaje ( 3 y 2) + + + + + + + + + + + Monto con 12 Digitos de Cuerpo y 6 Decimales + + + + + + + + + + + Tipo de Impuesto o Retencion Adicional + + + + + + IVA Margen Comercializacion (Factura Venta del Contribuyente) [F29 - C039] + + + + + IVA Retenido Total (Factura Compra del Contribuyente) [F29 - C039] + + + + + IVA Retenido Parcial (Factura Compra del Contribuyente) [F29] + + + + + IVA Anticipado Faenamiento Carne [F29 - C042] + + + + + IVA Anticipado Carne [F29 - C042] + + + + + IVA Anticipado Harina [F29 - C042] + + + + + Impuesto Adicional Productos Art. 37 a) b) c) Oro, Joyas, Pieles [F29 - C113] + + + + + Impuesto Art. 42 a) Licores, Pisco, Destilados [F29 - C148] + + + + + Impuesto Art. 42 c) Vinos + + + + + Impuesto Art. 42 c) Cervezas y Bebidas Alcoholicas [F29 - C150] + + + + + Impuesto Art. 42 d) y e) Bebidas Analcoholicas y Minerales [F29 - C146] + + + + + Impuesto Especifico Diesel [F29 - C127] + + + + + Recuperación Impuesto Específico diesel Transportistas Para transportistas de carga + Art 2° Ley N°19.764/2001 + + + + + IVA Retenido Legumbres + + + + + IVA Retenido Silvestres + + + + + IVA Retenido Ganado + + + + + IVA Retenido Madera + + + + + IVA Retenido Trigo + + + + + Impuesto Especifico Gasolina + + + + + IVA Retenido Arroz + + + + + IVA Retenido Hidrobiologicas + + + + + IVA Retenido Chatarra + + + + + IVA Retenido PPA + + + + + IVA Retenido Opcional + + + + + IVA Retenido Construccion + + + + + Impuesto Adicional Productos Art. 37 e) h) i) l) 1ra Venta (Alfombras, C. Rodantes, Caviar, Armas) [F29 - C113] + + + + + Impuesto Adicional Productos Art. 37 j) 1ra Venta (Pirotecnia) [F29 - C113] + + + + + + + + + + + + + + + + + + + + + + Tipo de Impuesto o Retencion Adicional de los DTE + + + + + + IVA Margen Comercializacion (Factura Venta del Contribuyente) [F29 - C039] + + + + + IVA Retenido Total (Factura Compra del Contribuyente) [F29 - C039] + + + + + IVA Retenido Parcial (Factura Compra del Contribuyente) [F29] + + + + + IVA Anticipado Faenamiento Carne [F29 - C042] + + + + + IVA Anticipado Carne [F29 - C042] + + + + + IVA Anticipado Harina [F29 - C042] + + + + + Impuesto Adicional Productos Art. 37 a) b) c) Oro, Joyas, Pieles [F29 - C113] + + + + + Impuesto Art. 42 a) Licores, Pisco, Destilados [F29 - C148] + + + + + Impuesto Art. 42 c) Vinos + + + + + Impuesto Art. 42 c) Cervezas y Bebidas Alcoholicas [F29 - C150] + + + + + Impuesto Art. 42 d) y e) Bebidas Analcoholicas y Minerales [F29 - C146] + + + + + Impuesto Especifico Diesel [F29 - C127] + + + + + IVA Retenido Legumbres + + + + + IVA Retenido Silvestres + + + + + IVA Retenido Ganado + + + + + IVA Retenido Madera + + + + + IVA Retenido Trigo + + + + + Impuesto Especifico Gasolina + + + + + IVA Retenido Arroz + + + + + IVA Retenido Hidrobiologicas + + + + + IVA Retenido Chatarra + + + + + IVA Retenido PPA + + + + + IVA Retenido Opcional + + + + + IVA Retenido Construccion + + + + + Impuesto Adicional Productos Art. 37 e) h) i) l) 1ra Venta (Alfombras, C. Rodantes, Caviar, Armas) [F29 - C113] + + + + + Impuesto Adicional Productos Art. 37 j) 1ra Venta (Pirotecnia) [F29 - C113] + + + + + + + + + + + + + + + + + + + + + + Monto de 18 digitos + + + + + + + + Tipos de Documento + + + + + Factura Electronica + + + + + Factura Electronica No Afecta o Exenta + + + + + Factura de Compra Electronica + + + + + Guia de Despacho Electronica + + + + + + + + + Dirección email + + + + + + + + Unidad en que se expresa el Valor + + + + + + + El valor se Expresa como Porcentaje + + + + + El Valor se Expresa en Pesos + + + + + + + Número de Resolución + + + + + + + + Razón Social (max 100) + + + + + + + + Razón Social (max 40) + + + + + + + + + Dirección (maz 60) + + + + + + + + Dirección (max 80) + + + + + + + + Comuna + + + + + + + + Ciudad + + + + + + + + Fono + + + + + + + + Nombre + + + + + + + + Tipos de Liquidaciones + + + + + + + + Tipos de Facturas de Exportacion + + + + + + + + + + Medios de Pago + + + + + Cheque + + + + + Letra + + + + + Efectivo + + + + + Pago a Cuenta Corriente + + + + + Tarjeta de Credito + + + + + Cheque a Fecha + + + + + Otro + + + + + + + + Tipos de Moneda de Aduana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fecha entre 2000-01-01 y 2050-12-31 + + + + + + + + + FechaType + hora entre 00:00 y 23:59; + + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/xmldsignature_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/xmldsignature_v10.xsd new file mode 100644 index 00000000..1137a846 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_dte/xmldsignature_v10.xsd @@ -0,0 +1,184 @@ + + + + + + Firma Digital sobre Documento + + + + + Firma Digital con Restricciones + + + + + Descripcion de la Informacion Firmada y del Metodo de Firma + + + + + + Algoritmo de Canonicalizacion + + + + + + + + Algoritmo de Firma + + + + + + + + + + + + + + + Referencia a Elemento Firmado + + + + + + Algoritmo de Transformacion + + + + + + + + + + + + + + Algoritmo de Digest + + + + + + + + Valor de Digest + + + + + + + + + + + + Valor de la Firma Digital + + + + + Informacion de Claves Publicas y Certificado + + + + + + + + + Informacion de Claves Publicas RSA + + + + + + Modulo Clave RSA + + + + + Exponente Clave RSA + + + + + + + + Informacion de Claves Publicas DSA + + + + + + Modulo Primo + + + + + Entero Divisor de P - 1 + + + + + Entero f(P, Q) + + + + + G**X mod P + + + + + + + + + + + Informacion del Certificado Publico + + + + + + Certificado Publico + + + + + + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd new file mode 100644 index 00000000..e4fb32bc --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd @@ -0,0 +1,139 @@ + + + + + + + + Certificado Autorizacion de Libros, generado por el SII + + + + + + Documento de Cal + + + + + + RUT Distribuidor + + + + + Tipo Certificado. C = Certificacion, P=Produccion + + + + + + Certificación. + Se utiliza para efectuar las pruebas de archivos + + + + + Producción. + Lo entrega el SII, una vez que se hayan efectuado las pruebas respectivas + + + + + + + + 1:Contribuyente, 2:Holding, 3:Empresa de Software. + + + + + + Contribuyente + + + + + Holding + + + + + Empresa Software + + + + + + + + Tipo del Libro Contable. + + + + + + Contable. Incluye, Diario, Mayor, Balance, Inventarios y Balance + + + + + Remuneraciones + + + + + Honorarios + + + + + Registro de Existencias + + + + + Activo Fijo + + + + + Compra y Venta + + + + + + + + Fecha de Emision del CAL(AAAA-MM-DD) + + + + + En caso que Clase = 3 corresponde al año en que es valido hacer envios con este CAL, de lo contrario es año de inicio para realizar envios. ( Formato AAAA) + + + + + Fecha y Hora de la Firma + + + + + + + + + Firma Digital sobre Documento + + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd new file mode 100644 index 00000000..fb9e1f2a --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd @@ -0,0 +1,56 @@ + + + + + + + + + Comprobante de Certificacion + + + + + + Documento de Comprobante de Certificacion + + + + + + RUT Contribuyente de los LCE + + + + + Fecha de Emision del Comprobante de Certificacion (AAAA-MM-DD) + + + + + + RUT autorizado por el Distribuidor a firmar este documento. + + + + + Fecha y Hora de la Firma + + + + + + + + + Firma Digital sobre Documento + + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd new file mode 100644 index 00000000..43bc1cb4 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd @@ -0,0 +1,280 @@ + + + + + + Rol Unico Tributario (99..99-X) + + + + + + + + + + Folio de DTE - 10 digitos + + + + + + + + Monto de 18 digitos y 4 decimales + + + + + + + + + Impuestos Adicionales + + + + + IVA Margen de Comercializacion + + + + + IVA Retenido Total + + + + + IVA Retenido Parcial + + + + + IVA Anticipado Faenamiento Carne + + + + + IVA Anticipado Carne + + + + + IVA Anticipado Harina + + + + + Impuesto Art. 37 Letras a, b, c + + + + + Impuesto Art. 42 Ley 825/74 Letra a + + + + + Impuesto Art. 42 Letra c + + + + + Impuesto Art. 42 Letra c + + + + + Impuesto Art. 42 Letra d y e + + + + + Impuesto Especifico Diesel + + + + + Recuperacion Impuesto Especifico Diesel Transportistas + + + + + IVA Retenido Legumbres + + + + + IVA Retenido Silvestres + + + + + IVA Retenido Ganado + + + + + IVA Retenido Madera + + + + + IVA Retenido Trigo + + + + + Impuesto Especifico Gasolina + + + + + IVA Retenido Arroz + + + + + IVA Retenido Hidrobiologicas + + + + + IVA Retenido Chatarra + + + + + IVA Retenido PPA + + + + + IVA Retenido Opcional + + + + + Impuesto Art. 37 Letras e, f, g y h + + + + + Impuesto Art. 37 Letra j + + + + + + + + + + Monto 18 digitos (> cero) + + + + + + + + Porcentaje (3 enteros y 2 decimales) + + + + + + + + + + + Tipos de Documentos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Monto 18 digitos (positivo o negativo) + + + + + + + + lapso de tiempo. En forma AAAA-MM hasta AAAA-MM + + + + + Inicio del Periodo. En formato AAAA-MM + + + + + Final del Periodo. Formato AAAA-MM + + + + + + + Monto 18 digitos (mayor o igual a cero) + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd new file mode 100644 index 00000000..6698f143 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd @@ -0,0 +1,1637 @@ + + + + + + + + Informacion Electronica de Libros de Compra y Venta + + + + + + Identificacion, Resumen y Detalles del Libro Electronico + + + + + + Identificacion del Envio del Libro Electronico + + + + + + RUT del Emisor del Libro Electronico + + + + + RUT que Realiza el Envio del Libro Electronico + + + + + Periodo Tributario del Libro Electronico (AAAA-MM) + + + + + Fecha de Resolucion que Autoriza el Envio de Libros (AAAA-MM-DD) + + + + + Numero de Resolucion que Autoriza el Envio de Libros + + + + + + + + + + Tipo de Operacion Declarada en el Libro + + + + + + + + + + + Tipo de Libro de Compra o Venta Enviado + + + + + + + + + + + + Tipo de Envio del Libro Electronico + + + + + + + Indica que es un Envio Parcial del Libro y que Faltan Otros para Completar el Libro + + + + + Indica que es el Ultimo Envio Parcial. Con Esto se Completa el Libro. + + + + + Indica que es el Unico Envio que Compone el Libro + + + + + Indica que es un Envio con Informacion para Corregir un Libro Previamente Enviado + + + + + + + + Correlativo del Segmento de Libro + + + + + + + + + + Folio de la Notificacion con que se Solicita el Libro Especial + + + + + + + + + + Codigo de Autorización de Rectificación + + + + + + + + + + + + + Resumen del Segmento de Informacion Enviado + + + + + + Totales de Control, por Tipo de Documento, Para el Segmento + + + + + + Tipo de Documento + + + + + Tipo de Impuesto Resumido (LC) + + + + + + + IVA + + + + + Ley 18.211 + + + + + + + + Numero de Documentos del Tipo Incluidos en el Libro Electronico + + + + + + + + + + Numero de Documentos Anulados + + + + + + + + + + Numero de Operaciones Exentas + + + + + + + + + + Total de los Montos Exentos + + + + + Total de los Montos Netos + + + + + Total de Operaciones con IVA Recuperable (LC) + + + + + + + + + + Total de los Montos de IVA (LV) o IVA Recuperable (LC) + + + + + Numero de Operaciones de Activo Fijo (LC) + + + + + + + + + + Total Monto Neto de las Operaciones de Activo Fijo (LC) + + + + + Total del IVA de las Operaciones de Activo Fijo (LC) + + + + + Totales de IVA No Recuperable (LC) + + + + + + Codigo de IVA No Recuperable + + + + + + + Compras destinadas a Generar Operaciones No Gravadas o Exentas + + + + + Facturas Registradas Fuera de Plazo + + + + + Gastos Rechazados + + + + + Entrega Gratuita + + + + + Otros + + + + + + + + Numero de Operaciones con IVA No Recuperable + + + + + + + + + + Total de IVA No Recuperable + + + + + + + + Numero de Operaciones con IVA Uso Comun (LC) + + + + + + + + + + Total IVA Uso Comun (LC) + + + + + Total IVA Fuera de Plazo (LV) + + + + + Total de IVA Propio en Operaciones a Cuenta de Terceros (LV) + + + + + Total de IVA a Cuenta de Terceros (LV) + + + + + Total Ley 18.211 (LV) + + + + + Totales de Otros Impuestos + + + + + + Codigo del Otro Impuesto + + + + + Monto del Otro Impuesto + + + + + + + + Total de Impuestos Sin Derecho a Credito (LC) + + + + + Numero de Operaciones con IVA Retenido Total (LV) + + + + + + + + + + Total de IVA Retenido Total (LV) + + + + + Numero de Operaciones con IVA Retenido Parcial (LV) + + + + + + + + + + Total de IVA Retenido Parcial (LV) + + + + + Total Credito Empresa Constructora (LV) + + + + + Total de los Depositos por Envase (LV) + + + + + Info. Elect. de Venta (LV) + + + + + + Valor Neto Comisiones y Otros Cargos (LV) + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos )LV) + + + + + Valor IVA Comisiones y Otros Cargos (LV) + + + + + + + + Total de los Montos Totales + + + + + Numero de Operaciones con IVA No Retenido (LV) + + + + + + + + + + Total IVA No Retenido + + + + + Total MOnto No Facturable (LV) + + + + + Total Monto Periodo (LV) + + + + + Total Venta Pasaje Nacional (LV) + + + + + Total Venta Pasaje Internacional (LV) + + + + + Total Tabacos - Puros (LC) + + + + + Total Tabacos - Cigarrillos (LC) + + + + + Total Tabacos - Elaborados (LC) + + + + + + + + + + + Resumen Para el Periodo Tributario + + + + + + Totales de Control, por Tipo de Documento, Para el Periodo Tributario + + + + + + Tipo de Documento Resumido + + + + + Tipo de Impuesto Resumido (LC) + + + + + + + IVA + + + + + Ley 18.211 + + + + + + + + Numero de Documentos del Tipo Incluidos en el Libro Electronico + + + + + + + + + + Numero de Documentos Anulados + + + + + + + + + + Numero de Operaciones Exentas + + + + + + + + + + Total de los Montos Exentos + + + + + Total de los Montos Netos + + + + + Total de Operaciones con IVA Recuperable (LC) + + + + + + + + + + Total de los Montos de IVA + + + + + Numero de Operaciones de Activo Fijo (LC) + + + + + + + + + + Total Monto Neto de Activo Fijo (LC) + + + + + Total del IVA de las Operaciones de Activo Fijo (LC) + + + + + Tabla de IVA No Recuperable (LC) + + + + + + Codigo de IVA No Recuperable + + + + + + + + + + Otros + + + + + + + + Numero de Operaciones de IVA No Recuperable + + + + + + + + + + Total de IVA No Recuperable + + + + + + + + Numero de Opraciones con IVA Uso Comun (LC) + + + + + + + + + + Total IVA Uso Comun (LC) + + + + + Factor Proporcionalidad IVA (LC) + + + + + + + + + + + + + Total Credito IVA Uso Comun (LC) + + + + + Total IVA Fuera de Plazo (LV) + + + + + Total de IVA Propio en Operaciones a Cuenta de Terceros (LV) + + + + + Total de IVA a Cuenta de Terceros (LV) + + + + + Total Ley 18211 + + + + + Totales de Otros Impuestos + + + + + + Codigo del Otro Impuesto + + + + + Monto Total del Otro Impuesto + + + + + Factor Impuesto Adicional (LC) + + + + + + + + + + + + + Total Credito Impuesto (LC) + + + + + + + + Total de Impuestos Sin Derecho a Credito (LC) + + + + + Numero de Operaciones con IVA Retenido Total (LV) + + + + + + + + + + Total IVA Retenido Total (LV) + + + + + Numero de Operaciones con IVA Retenido Parcial (LV) + + + + + + + + + + Total IVA Retenido Parcial (LV) + + + + + Total Credito Empresa Constructore (LV) + + + + + Total Deposito Envase (LV) + + + + + Info. Elect. de Venta (LV) + + + + + + Valor Neto Comisiones y Otros Cargos (LV) + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos )LV) + + + + + Valor IVA Comisiones y Otros Cargos (LV) + + + + + + + + Total de los Montos Totales + + + + + Numero de Operaciones con IVA No Retenido (LV) + + + + + + + + + + Total IVA No Retenido + + + + + Total Monto No Facturable (LV) + + + + + Total Monto Periodo (LV) + + + + + Total Venta PasajeNacional (LV) + + + + + Total Venta Pasaje Internacional (LV) + + + + + Total Tabaco -Puros (LC) + + + + + Total Tabaco - Cigarrillos (LC) + + + + + Total Tabaco - Elaborado (LC) + + + + + Total Impuesto Vehiculos (LC) + + + + + + + + + + + Detalle de Documentos que Componen el Libro Electronico + + + + + + Tipo de Documento + + + + + Indica si NDébito o NCrédito afecta a una Factura de Compra + + + + + + + Emitido por el Emisor del Libro de Compra + + + + + + + + Indica si NDébito o NCrédito afecta a una Factura de Compra + + + + + + + Emitido por el Emisor del Libro de Compra + + + + + + + + Identificador o Folio del Documento. + + + + + + + + + + Indica que el Estado del Documento es Anulado + + + + + + Documento Anulado + + + + + + + + Indica si Agrega o Elimina Informacion + + + + + + Agrega + + + + + Elimina + + + + + + + + Tipo de Impuesto Usado en la Operacion (LC) + + + + + + + IVA + + + + + Ley 18.211 + + + + + + + + Tasa de impuesto usada en la operación + + + + + Numero Interno + + + + + + + + + + Indica si Corresponde a un Servicio (LV) + + + + + + Facturacion de Servicios Periodicos Domiciliarios + + + + + Facturacion de Otros Servicios Periodicos + + + + + Facturacion de Servicios No Periodicos + + + + + + + + Indicador de Venta sin Costo (LV) + + + + + + Entrega Gratuita + + + + + + + + Fecha del Documento (AAAA-MM-DD) + + + + + + + + + + + Codigo de Sucursal Entregado por el SII + + + + + + + + + + RUT del Contraparte en la Operación Comercial + + + + + Razon Social de la Contraparte del Documento + + + + + + + + + + Receptor Extranjero (LV) + + + + + + Num. Identif. Receptor Extranjero (LV) + + + + + + + + + + + Nacionalidad Recptor Extranjero (LV) + + + + + + + + + + + + + + Tipo de Documento de Referencia (LV) + + + + + Folio del Documento Referenciado (LV) + + + + + + + + + + Monto Exento o no Gravado del Documento + + + + + Monto Neto del Documento + + + + + Monto de IVA del Documento + + + + + Monto Neto Activo Fijo (LC) + + + + + IVA de la Operacion de Activo Fijo (LC) + + + + + Tabla de IVA No Recuperable (LC) + + + + + + Codigo de IVA No Recuperable + + + + + + Compras Destinadas a Generar Operaciones No Gravadas o Exentas + + + + + Facturas de Proveedores Registradas Fuera de Plazo + + + + + Gastos Rechazados + + + + + Entrega Gratuita + + + + + Otros + + + + + + + + Monto de IVA No Recuperable + + + + + + + + IVA de Compras Destinadas en Parte a Ventas Exentas y Afectas (LC) + + + + + Solo Nota de Credito Fuera de Plazo (LV) + + + + + IVA Propio en Operaciones a Cuenta de Terceros (LV) + + + + + IVA por Cuenta de Terceros (LV) + + + + + Ley 18211 + + + + + Otros Impuestos o Recargos + + + + + + Codigo del Impuesto o Recargo + + + + + Tasa del Impuesto o Recargo + + + + + Monto del Impuesto o Recargo. En el LC Registrar Solo el Monto Con Derecho a Credito + + + + + + + + Monto del Impuesto Sin Derecho a Credito (LC) + + + + + IVA Retenido Total (LV) + + + + + IVA Retenido Parcial (LV) + + + + + Credito 65% Empresas Constructoras (LV) + + + + + Deposito por Envase (LV) + + + + + Info. Elect. de Venta (LV) + + + + + + Rut Emisor (LV) + + + + + Valor Neto Comisiones y Otros Cargos (LV) + + + + + Val. Comis. y Otros Cargos no Afectos o Exentos )LV) + + + + + Valor IVA Comisiones y Otros Cargos (LV) + + + + + + + + Monto Total del Documento + + + + + IVA No Retenido + + + + + Monto No Facturable (LV) + + + + + Total Monto Periodo (LV) + + + + + Venta Pasaje Nacional (LV) + + + + + Venta Pasaje Internacional (LV) + + + + + Tabacos - Puros (LC) + + + + + Tabacos - Cigarrillos (LC) + + + + + Tabacos - Elaborados (LC) + + + + + Impuesto a Vehiculo (LC) + + + + + + + + + + + + Fecha y Hora en formato AAAA-MM-DDTHH24:MI:SS de la Firma Electronica + + + + + + + + + + + + Firma Digital sobre SetDTE + + + + + + + + + RUT 99999999-X + + + + + + + + + + Monto 18 digitos (mayor o igual a cero) + + + + + + + + Monto 18 digitos (positivo o negativo) + + + + + + + + Monto 18 digitos (> cero) + + + + + + + + Impuestos Adicionales + + + + + IVA Margen de Comercializacion + + + + + IVA Retenido Total + + + + + IVA Retenido Parcial + + + + + IVA Anticipado Faenamiento Carne + + + + + IVA Anticipado Carne + + + + + IVA Anticipado Harina + + + + + Impuesto Art. 37 Letras a, b, c + + + + + Impuesto Art. 42 Ley 825/74 Letra a + + + + + Impuesto Art. 42 Letra c + + + + + Impuesto Art. 42 Letra c + + + + + Impuesto Art. 42 Letra d y e + + + + + Impuesto Especifico Diesel + + + + + Recuperacion Impuesto Especifico Diesel Transportistas + + + + + IVA Retenido Legumbres + + + + + IVA Retenido Silvestres + + + + + IVA Retenido Ganado + + + + + IVA Retenido Madera + + + + + IVA Retenido Trigo + + + + + Impuesto Especifico Gasolina + + + + + IVA Retenido Arroz + + + + + IVA Retenido Hidrobiologicas + + + + + IVA Retenido Chatarra + + + + + IVA Retenido PPA + + + + + IVA Retenido Opcional + + + + + + Impuesto Art. 37 Letras e, f, g y h + + + + + Impuesto Art. 37 Letra j + + + + + + + + + + + + Impuesto retenido a los suplementeros Art. 74 N°5 + + + + + + + + + + + + + + + Tipos de Documentos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Porcentaje (3 enteros y 2 decimales) + + + + + + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/README.md b/cl_sii/data/ref/factura_electronica/schema_iecv/README.md new file mode 100644 index 00000000..439181cd --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/README.md @@ -0,0 +1,89 @@ +# schema_iecv + +This directory contains all the files of `schema_iecv.zip`, plus this text file. +All the files have been preserved as they were; schemas are in their original text encoding +(ISO-8859-1) and have not been modified in the slightest way. + +The most significant structures are: +- XML element `LceCal`: "Certificado Autorizacion de Libros, generado por el SII". +- XML element `LceCoCertif`: "Comprobante de Certificacion". +- XML element `LibroCompraVenta`: "Informacion Electronica de Libros de Compra y Venta". + +Notes: +- IECV means "Información Electrónica de Libros de Compra y Venta". +- LCE means "Libros Contables Electrónicos". + + +## Source + +[schema_iecv.zip](http://www.sii.cl/factura_electronica/schema_iecv.zip) (2018-11-28), +referenced from official webpage +[SII](http://www.sii.cl) +/ [Factura electrónica](http://www.sii.cl/servicios_online/1039-.html) +/ [FORMATO XML DE DOCUMENTOS ELECTRÓNICOS](http://www.sii.cl/factura_electronica/formato_xml.htm) +as +"[Bajar schema XML de Información Electrónica de Compras y Ventas](http://www.sii.cl/factura_electronica/schema_iecv.zip)". + + +## Contents + + +### Detail + +- `LceCal_v10.xsd` + - XML target namespace: `http://www.sii.cl/SiiLce`. + - XML included/imported schemas: `LceSiiTypes_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `LceCal`: "Certificado Autorizacion de Libros, generado por el SII". + +- `LceCoCertif_v10.xsd`: + - XML target namespace: `http://www.sii.cl/SiiLce`. + - XML included/imported schemas: `LceSiiTypes_v10.xsd`, `LceCal_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `LceCoCertif`: "Comprobante de Certificacion". + +- `LceSiiTypes_v10.xsd`: + - XML target namespace: `http://www.sii.cl/SiiLce`. + - XML included/imported schemas: none. + - XML elements: none. + - XML data types: + - `RUTType`: "Rol Unico Tributario (99..99-X)". + - `FolioType`: "Folio de DTE - 10 digitos". + - `MontoType`: "Monto de 18 digitos y 4 decimales". + - `ImptoType`: "Impuestos Adicionales". + - `MntImpType`: "Monto 18 digitos (> cero)". + - `PctType`: "Porcentaje (3 enteros y 2 decimales)". + - `DoctoType`: "Tipos de Documentos". + - `ValorType`: "Monto 18 digitos (positivo o negativo)". + - `Periodo`: "lapso de tiempo. En forma AAAA-MM hasta AAAA-MM". + - `MontoSinDecType`: "Monto 18 digitos (mayor o igual a cero)". + +- `LibroCV_v10.xsd`: + - XML target namespace: `http://www.sii.cl/SiiDte` (**not** `http://www.sii.cl/SiiLce`). + - XML included/imported schemas: `LceCoCertif_v10.xsd`, `xmldsignature_v10.xsd`. + - XML elements: + - `LibroCompraVenta`: "Informacion Electronica de Libros de Compra y Venta". + - XML data types: + - `RUTType`: "RUT 99999999-X". + - `MontoType`: "Monto 18 digitos (mayor o igual a cero)". + - `ValorType`: "Monto 18 digitos (positivo o negativo)". + - `MntImpType`: "Monto 18 digitos (> cero)". + - `ImptoType`: "Impuestos Adicionales". + - `DoctoType`: "Tipos de Documentos". + - `PctType`: "Porcentaje (3 enteros y 2 decimales)". + +- `xmldsignature_v10.xsd`: + - XML target namespace: `http://www.w3.org/2000/09/xmldsig#`. + - XML included/imported schemas: none. + - XML elements: + - `Signature`: "Firma Digital sobre Documento". + - XML data types: + - `SignatureType`: "Firma Digital con Restricciones". + + +### Notes + +- File `LibroCV_v10.xsd` defines many data types that are already defined in `LceSiiTypes_v10.xsd`. +- The two enums named `DoctoType` (one in `LibroCV_v10.xsd` and the other in `LceSiiTypes_v10.xsd`) + **have different elements**. +- File `xmldsignature_v10.xsd` is identical to `../schema_dte/xmldsignature_v10.xsd`. diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd new file mode 100644 index 00000000..1137a846 --- /dev/null +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/xmldsignature_v10.xsd @@ -0,0 +1,184 @@ + + + + + + Firma Digital sobre Documento + + + + + Firma Digital con Restricciones + + + + + Descripcion de la Informacion Firmada y del Metodo de Firma + + + + + + Algoritmo de Canonicalizacion + + + + + + + + Algoritmo de Firma + + + + + + + + + + + + + + + Referencia a Elemento Firmado + + + + + + Algoritmo de Transformacion + + + + + + + + + + + + + + Algoritmo de Digest + + + + + + + + Valor de Digest + + + + + + + + + + + + Valor de la Firma Digital + + + + + Informacion de Claves Publicas y Certificado + + + + + + + + + Informacion de Claves Publicas RSA + + + + + + Modulo Clave RSA + + + + + Exponente Clave RSA + + + + + + + + Informacion de Claves Publicas DSA + + + + + + Modulo Primo + + + + + Entero Divisor de P - 1 + + + + + Entero f(P, Q) + + + + + G**X mod P + + + + + + + + + + + Informacion del Certificado Publico + + + + + + Certificado Publico + + + + + + + + + + + diff --git a/setup.py b/setup.py index bc23ba05..7635ceab 100755 --- a/setup.py +++ b/setup.py @@ -51,6 +51,9 @@ def get_version(*file_paths: Sequence[str]) -> str: 'cl_sii': [ # Indicates that the "typing information" of the package should be distributed. 'py.typed', + # Data files that are not in a sub-package. + 'data/ref/factura_electronica/schema_dte/*.xsd', + 'data/ref/factura_electronica/schema_iecv/*.xsd', ], } From 8b51350cf0590ab7ba4a1390676f6b307395b950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 17 Jan 2019 16:41:46 -0300 Subject: [PATCH 07/10] =?UTF-8?q?data.ref:=20update=20XML=20schemas=20of?= =?UTF-8?q?=20"factura=20electr=C3=B3nica"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update schemas from an unofficial source since the files available on SII's website are outdated with respect to the regulations (and even to the documentation PDFs published alongside). Source: repository/project "LibreDTE" at https://github.com/LibreDTE/libredte-lib Specific source per file: - 'schema_dte/DTE_v10.xsd': https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/DTE_v10.xsd - 'schema_dte/EnvioDTE_v10.xsd': https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/EnvioDTE_v10.xsd - 'schema_dte/SiiTypes_v10.xsd': https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/SiiTypes_v10.xsd - 'schema_iecv/LceCal_v10.xsd' https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/LceCal_v10.xsd - 'schema_iecv/LceCoCertif_v10.xsd' https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/LceCoCertif_v10.xsd - 'schema_iecv/LceSiiTypes_v10.xsd' https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/LceSiiTypes_v10.xsd - 'schema_iecv/LibroCV_v10.xsd' https://github.com/LibreDTE/libredte-lib/blob/c12f8845/schemas/LibroCV_v10.xsd --- .../schema_dte/DTE_v10.xsd | 33 +++++++- .../schema_dte/EnvioDTE_v10.xsd | 8 +- .../factura_electronica/schema_dte/README.md | 11 +++ .../schema_dte/SiiTypes_v10.xsd | 79 ++++++++++++++++++- .../schema_iecv/LceCal_v10.xsd | 10 ++- .../schema_iecv/LceCoCertif_v10.xsd | 1 + .../schema_iecv/LceSiiTypes_v10.xsd | 1 + .../schema_iecv/LibroCV_v10.xsd | 17 ++-- .../factura_electronica/schema_iecv/README.md | 11 +++ 9 files changed, 151 insertions(+), 20 deletions(-) diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd index a528f2c1..053d9e42 100644 --- a/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_dte/DTE_v10.xsd @@ -193,6 +193,18 @@ Descuento Recargo Global : se incorporar restricci + + + Tipo de Transacción para el comprador + Indica el Uso de Montos Brutos en Detalle + + + + + Tipo de Transacción para el vendedor + Indica el Uso de Montos Brutos en Detalle + + Forma de Pago del DTE @@ -1868,6 +1880,7 @@ seg + @@ -2200,6 +2213,18 @@ seg + + + Tipo de Transacción para el comprador + Indica el Uso de Montos Brutos en Detalle + + + + + Tipo de Transacción para el vendedor + Indica el Uso de Montos Brutos en Detalle + + Forma de Pago del DTE @@ -2609,7 +2634,7 @@ seg Tasa de Impuesto o Retencion - + Monto del Impuesto o Retencion @@ -3142,7 +3167,7 @@ seg - + Monto Total DTE @@ -4272,12 +4297,12 @@ seg Tipo de Cambio fijado por el Banco Central de Chile - + Monto Exento del DTE en Otra Moneda - + Monto Total Otra Moneda diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd index 2ae36699..94963a30 100644 --- a/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_dte/EnvioDTE_v10.xsd @@ -3,13 +3,15 @@ para realizar los envios de Documentos Tributarios Electronicos (DTE) hacia el Servicio de Impuestos Internos. -Fecha Actualizacion: 25/05/07 15:00 +Fecha Actualizacion: 30/07/10 15:00 Se incorporan dos nuevos Tipos de datos : FechaType : Fecha entre 2000-01-01 y 2050-12-31 FechaHoraType : FechaType + hora entre 00:00 y 23:59 + +Se limita a 2.000 documentos el máximo por envio o sobre (de acuerdo a publicación) --> - + @@ -87,7 +89,7 @@ FechaHoraType : FechaType + hora entre 00:00 y 23:59 - + Documento Tributario Electronico diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/README.md b/cl_sii/data/ref/factura_electronica/schema_dte/README.md index 1da1d5cc..c48d4483 100644 --- a/cl_sii/data/ref/factura_electronica/schema_dte/README.md +++ b/cl_sii/data/ref/factura_electronica/schema_dte/README.md @@ -13,6 +13,9 @@ Note: DTE means "Documento Tributario Electrónico". ## Source + +### Original & Official + [schema_dte.zip](http://www.sii.cl/factura_electronica/schema_dte.zip) (2018-11-28), referenced from official webpage [SII](http://www.sii.cl) @@ -22,6 +25,14 @@ as "[Bajar schema XML de Documentos Tributarios Electrónicos](http://www.sii.cl/factura_electronica/schema_dte.zip) (Incluye Documentos de exportación)" +### Updates + +Unfortunately the files available on SII's website are outdated with respect to the regulations +(and even with respect to the documentation PDFs published alongside). + +Schema files will be updated as necessary, indicating the source in the corresponding commit. + + ## Contents diff --git a/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd index 40345318..86d1ad86 100644 --- a/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd @@ -8,9 +8,15 @@ FechaHoraType : FechaType + hora entre 00:00 y 23:59 ImpAdicDTEType: elimina codigo 29 para DTE Fecha Actualizacion: 30/05/2011 12:00 - Se incorpora restricción en DineroPorcentajeType para que sea dato de largo 1 +Fecha Actualizacion: 07/05/2014 11:30 +ImpAdicDTEType : se agregan los codigos 54 y 55 (SDI-1092) + +Fecha Actualizacion: 30/09/2014 11:40 +ImpAdicDTEType : se agregan el codigo de impuesto 271 (SDI-9342) + + --> @@ -382,6 +388,9 @@ Se incorpora restricci + + + @@ -535,6 +544,13 @@ Se incorpora restricci + + + + + Bebidas analcohólicas y Minerales con elevado contenido de azúcares. + + @@ -808,4 +824,65 @@ Se incorpora restricci + + + Tipo de Transacción para el comprador + + + + + Del Giro + + + + + Supermercados y Similares + + + + + Adquisición o Construcción de Bienes inmuebles, BBRR + + + + + Activo Fijo + + + + + Compra IVA Uso Común o no Recuperable + + + + + + + + + Tipo de Transacción para el vendedor + + + + + Del Giro + + + + + Ventas que no son del Giro (Activo Fijo y Otros) + + + + + Venta de Bienes inmuebles, BBRR + + + + + NCE MR * (solo NCE + + + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd index e4fb32bc..2d777146 100644 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCal_v10.xsd @@ -3,8 +3,9 @@ Version 1, 01-08-2005 17:00 version Inicial 25-10-2005 17:00 Se agrega campo "Clase" 27-12-2005 12:00 Se agrega en TipoLCE el valor 6 para Compra y Venta + 18-04-2007 11:30 Se agrega a Clase el valor 4=Prestador de Libros Contables. --> - + @@ -47,7 +48,7 @@ - 1:Contribuyente, 2:Holding, 3:Empresa de Software. + 1:Contribuyente, 2:Holding, 3:Empresa de Software.,4:Prestador de Servicios Contables. @@ -66,6 +67,11 @@ Empresa Software + + + Prestador de Servicios Contables + + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd index fb9e1f2a..e697dcde 100644 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LceCoCertif_v10.xsd @@ -2,6 +2,7 @@ diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd index 43bc1cb4..65e865ee 100644 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LceSiiTypes_v10.xsd @@ -2,6 +2,7 @@ diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd b/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd index 6698f143..b5772e8d 100644 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/LibroCV_v10.xsd @@ -1,14 +1,5 @@ - @@ -1227,7 +1218,7 @@ Codigo del Impuesto o Recargo - + Tasa del Impuesto o Recargo @@ -1555,6 +1546,11 @@ + + + Bebidas analcohólicas y Minerales con elevado contenido de azúcares. + + @@ -1582,6 +1578,7 @@ + diff --git a/cl_sii/data/ref/factura_electronica/schema_iecv/README.md b/cl_sii/data/ref/factura_electronica/schema_iecv/README.md index 439181cd..69717f73 100644 --- a/cl_sii/data/ref/factura_electronica/schema_iecv/README.md +++ b/cl_sii/data/ref/factura_electronica/schema_iecv/README.md @@ -16,6 +16,9 @@ Notes: ## Source + +### Original & Official + [schema_iecv.zip](http://www.sii.cl/factura_electronica/schema_iecv.zip) (2018-11-28), referenced from official webpage [SII](http://www.sii.cl) @@ -25,6 +28,14 @@ as "[Bajar schema XML de Información Electrónica de Compras y Ventas](http://www.sii.cl/factura_electronica/schema_iecv.zip)". +### Updates + +Unfortunately the files available on SII's website are outdated with respect to the regulations +(and even with respect to the documentation PDFs published alongside). + +Schema files will be updated as necessary, indicating the source in the corresponding commit. + + ## Contents From a4b68fd98aa2fe24fe28b6aecc7abd3e9de6c9c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 20:52:23 -0300 Subject: [PATCH 08/10] rut.constants: fix URL reference --- cl_sii/rut/constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cl_sii/rut/constants.py b/cl_sii/rut/constants.py index edb4f2da..4bf379fb 100644 --- a/cl_sii/rut/constants.py +++ b/cl_sii/rut/constants.py @@ -2,7 +2,7 @@ RUT-related constants. Source: XML type 'RUTType' in official schema 'SiiTypes_v10.xsd'. -https://github.com/fynlabs/lib-cl-sii-python/blob/a80edd9/vendor/cl_sii/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L121-L130 +https://github.com/fyndata/lib-cl-sii-python/blob/8b51350/cl_sii/data/ref/factura_electronica/schema_dte/SiiTypes_v10.xsd#L127-L136 """ import re From 296b2015bfdd385537a36872e585171836b25d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 21:18:05 -0300 Subject: [PATCH 09/10] HISTORY: update for new version --- HISTORY.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 5943cfc4..61295351 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -6,6 +6,13 @@ History unreleased (YYYY-MM-DD) +++++++++++++++++++++++ +0.2.0 (2019-04-04) ++++++++++++++++++++++++ + +- (PR #6, 2019-04-04) data.ref: add XML schemas of "factura electrónica" +- (PR #5, 2019-04-04) extras: add 'RutField' for Django models, DRF and MM +- (PR #4, 2019-04-04) Config CircleCI + 0.1.0 (2019-04-04) +++++++++++++++++++++++ From 8e2abec85760ef7ae530d0efff7ad54357603f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Larra=C3=ADn?= Date: Thu, 4 Apr 2019 21:18:17 -0300 Subject: [PATCH 10/10] =?UTF-8?q?Bump=20version:=200.1.0=20=E2=86=92=200.2?= =?UTF-8?q?.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- cl_sii/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 03bd12ae..8bb38d7a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.1.0 +current_version = 0.2.0 commit = True tag = True diff --git a/cl_sii/__init__.py b/cl_sii/__init__.py index 42a55c1c..e015403b 100644 --- a/cl_sii/__init__.py +++ b/cl_sii/__init__.py @@ -5,4 +5,4 @@ """ -__version__ = '0.1.0' +__version__ = '0.2.0'