apigatewaycl.api_client package

Subpackages

Module contents

Cliente base de la API de API Gateway (ApiClient/ApiBase).

Este cliente habla únicamente con la versión 2 de la API (https://app.apigateway.cl/api/v2). La versión 1 (legacy) ya no está soportada.

Los métodos que responden JSON entregan el cuerpo tal cual lo envía la API, sin transformarlo:

{"data": ..., "metadata": {...}}

data trae el resultado y metadata los datos de la consulta (marca de tiempo, paginación, etc.). Los recursos que responden un archivo (PDF, XML, CSV, HTML) entregan su contenido sin decodificar.

class apigatewaycl.api_client.ApiBase(identificador: str | None = None, clave: str | None = None, api_token: str | None = None, api_url: str | None = None, api_raise_for_status: bool = True, api_auth_cache: bool | None = None, **kwargs: str)[fuente]

Bases: object

Clase base para las clases que consumen la API (wrappers).

No es ABC: ninguna subclase fuerza métodos propios con abstractmethod — todas comparten exactamente el mismo __init__ (autenticación), no hay nada que declarar como contrato acá.

Los dos primeros argumentos posicionales son siempre las credenciales del contribuyente, en todas las clases. Antes, las que no definían su propio __init__ heredaban este con api_token y api_url al frente, así que Clase(rut, clave) terminaba usando la clave como URL de la API.

Parámetros:
  • identificador (str) – RUT del contribuyente, o el certificado digital en PEM o en base64. Opcional: los recursos públicos no lo necesitan.

  • clave (str) – Clave del identificador, o la llave privada cuando el identificador es un certificado en PEM.

  • api_token (str) – Token de autenticación para la API.

  • api_url (str) – URL base para la API.

  • api_raise_for_status (bool) – Si se debe lanzar una excepción automáticamente para respuestas de error HTTP. Por defecto es True.

  • api_auth_cache (bool) – Con False se fuerza un login nuevo en el SII en vez de reutilizar la sesión guardada.

  • kwargs (dict) – Argumentos adicionales para la autenticación.

class apigatewaycl.api_client.ApiClient(token: str | None = None, url: str | None = None, raise_for_status: bool = True, auth_cache: bool | None = None)[fuente]

Bases: object

Cliente para interactuar con la API de API Gateway.

Parámetros:
  • token (str) – Token de autenticación del usuario. Si no se proporciona, se intentará obtener de una variable de entorno.

  • url (str) – URL base de la API. Si no se proporciona, se usará https://app.apigateway.cl.

  • raise_for_status (bool) – Si se debe lanzar una excepción automáticamente para respuestas de error HTTP. Por defecto es True.

  • auth_cache (bool) – Con False se fuerza un login nuevo en el SII en vez de reutilizar la sesión guardada. Sirve para recuperarse cuando el portal cerró la sesión antes de que venciera y la API responde que hay que volver a autenticar.

delete(resource: str, headers: dict[str, str] | None = None) → Response[fuente]

Realiza una solicitud DELETE a la API.

Parámetros:
  • resource (str) – Recurso de la API a solicitar.

  • headers (dict) – Cabeceras adicionales para la solicitud.

Devuelve:

Respuesta de la solicitud.

Tipo del valor devuelto:

requests.Response

get(resource: str, headers: dict[str, str] | None = None) → Response[fuente]

Realiza una solicitud GET a la API.

Parámetros:
  • resource (str) – Recurso de la API a solicitar.

  • headers (dict) – Cabeceras adicionales para la solicitud.

Devuelve:

Respuesta de la solicitud.

Tipo del valor devuelto:

requests.Response

post(resource: str, data: dict[str, Any] | str | None = None, headers: dict[str, str] | None = None) → Response[fuente]

Realiza una solicitud POST a la API.

Parámetros:
  • resource (str) – Recurso de la API a solicitar.

  • data (dict) – Datos a enviar en la solicitud.

  • headers (dict) – Cabeceras adicionales para la solicitud.

Devuelve:

Respuesta de la solicitud.

Tipo del valor devuelto:

requests.Response

put(resource: str, data: dict[str, Any] | str | None = None, headers: dict[str, str] | None = None) → Response[fuente]

Realiza una solicitud PUT a la API.

Parámetros:
  • resource (str) – Recurso de la API a solicitar.

  • data (dict) – Datos a enviar en la solicitud.

  • headers (dict) – Cabeceras adicionales para la solicitud.

Devuelve:

Respuesta de la solicitud.

Tipo del valor devuelto:

requests.Response

token_prefix = 'Token'
exception apigatewaycl.api_client.ApiException(message: str, code: int | None = None, params: dict[str, Any] | None = None)[fuente]

Bases: Exception

Excepción personalizada para errores en el cliente de la API.

Parámetros:
  • message (str) – Mensaje de error.

  • code (int) – Código de error (opcional).

  • params (dict) – Parámetros adicionales del error (opcional).

class apigatewaycl.api_client.ApiResponse[fuente]

Bases: TypedDict, Generic

Cuerpo JSON de una respuesta exitosa de la API.

data trae el resultado: según el recurso es un dict o una list, y T indica cuál (ApiResponse[dict[str, Any]] o ApiResponse[list[dict[str, Any]]]). metadata trae los datos de la consulta (timestamp siempre; el resto de las claves, como la paginación, depende del recurso y se deja abierto para no amarrarlo a una lista fija). Con raise_for_status=False una respuesta de error no tiene esta forma.

data: T
metadata: dict[str, Any]