Código fuente para apigatewaycl.api_client.sii.contribuyentes

#
# API Gateway: Cliente de API en Python.
# Copyright (C) API Gateway <https://www.apigateway.cl>
#
# Este programa es software libre: usted puede redistribuirlo y/o modificarlo
# bajo los términos de la GNU Lesser General Public License (LGPL) publicada
# por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia,
# o (a su elección) cualquier versión posterior de la misma.
#
# Este programa se distribuye con la esperanza de que sea útil, pero SIN
# GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD
# PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la GNU Lesser General
# Public License (LGPL) para obtener una información más detallada.
#
# Debería haber recibido una copia de la GNU Lesser General Public License
# (LGPL) junto a este programa. En caso contrario, consulte
# <http://www.gnu.org/licenses/lgpl.html>.
#

"""
Módulo para obtener datos de los contribuyentes a través del SII.

Para más información sobre la API, consulte la `documentación completa
de Contribuyentes
<https://www.apigateway.cl/docs>`_.
"""

from __future__ import annotations

from typing import Any

from .. import ApiBase, ApiResponse


[documentos] class Contribuyentes(ApiBase): """ Cliente para los endpoints de contribuyentes de la API de API Gateway. Hereda de ApiBase y utiliza su funcionalidad para realizar solicitudes a la API. """
[documentos] def situacion_tributaria(self, rut: str) -> ApiResponse[dict[str, Any]]: """ Obtiene la situación tributaria de un contribuyente. Respuesta (ejemplo):: { "data": { "rut": 76192083, "dv": "9", "razon_social": "EMPRESA EJEMPLO SPA", "inicio_actividades": true, "fecha_inicio_actividades": "2012-06-08", "fecha_consulta": "18-05-2026 12:32:03", "pro_pyme": true, "moneda_extranjera": false, "...": "..." }, "metadata": {"timestamp": "..."} } :param str rut: RUT del contribuyente. :return: Respuesta de la API, con `data` y `metadata`. En `data`, situación tributaria. :rtype: ApiResponse[dict[str, Any]] """ url = '/sii/contribuyentes/situacion_tributaria/tercero/%(rut)s' % { 'rut': rut } response = self.client.get(url) return self._json(response)
[documentos] def verificar_rut( self, rut: str, serie: str, ) -> ApiResponse[dict[str, Any]]: """ Verifica la cédula RUT de un contribuyente por su número de serie. Respuesta (ejemplo):: { "data": { "rut": "78.580.345-6", "nombre_o_razon_social": "NOMBRE O RAZÓN SOCIAL", "direccion_principal_casa_matriz": "DANIEL BARROS GREZ 191...", "n_de_serie": "22389021489", "fecha_de_emision": "11/11/2024", "rut_usuario_cedula": "12.345.678-9", "usuario_cedula": "USUARIO CÉDULA", "tipo": "Cédula" }, "metadata": {"timestamp": "..."} } :param str rut: RUT del contribuyente (ej. `76192083-9`). :param str serie: Número de serie de la cédula a verificar. :return: Respuesta de la API, con `data` y `metadata`. En `data`, verificación del RUT. :rtype: ApiResponse[dict[str, Any]] """ url = '/sii/contribuyentes/rut/verificar/%(rut)s/%(serie)s' % { 'rut': rut, 'serie': serie, } response = self.client.get(url) return self._json(response)