apigatewaycl.api_client.sii package

Submodules

apigatewaycl.api_client.sii.actividades_economicas module

Módulo para obtener las actividades económicas del SII.

Para más información sobre la API, consulte la documentación completa de Actividades Económicas.

class apigatewaycl.api_client.sii.actividades_economicas.ActividadesEconomicas(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: ApiBase

Cliente para las actividades económicas del SII.

Provee métodos para obtener listados de actividades económicas, tanto de primera como de segunda categoría.

listado(categoria: int | None = None) → ApiResponse[dict[str, Any]][fuente]

Obtiene un listado de actividades económicas, filtrando por categoría.

Respuesta (ejemplo):

{
  "data": {
    "Explotación de minas y canteras": {
      "Actividades de apoyo para la extracción de petróleo y...": [
        {
          "codigo": "091002",
          "actividad_economica": "Actividades de apoyo para...",
          "afecta_iva": false,
          "categoria": "G",
          "internet": true
        }
      ],
      "Actividades de apoyo para la explotación de otras min...": [
        {
          "codigo": "099002",
          "actividad_economica": "Actividades de apoyo para...",
          "afecta_iva": false,
          "categoria": "G",
          "internet": true
        }
      ]
    }
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

categoria (int) – Categoría de las actividades económicas (opcional).

Devuelve:

Respuesta de la API, con data y metadata. En data, el listado de actividades económicas.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

listado_primera_categoria() → ApiResponse[dict[str, Any]][fuente]

Obtiene un listado de actividades económicas de primera categoría.

Respuesta (ejemplo):

{
  "data": {
    "Explotación de minas y canteras": {
      "Actividades de apoyo para la extracción de petróleo y...": [
        {
          "codigo": "091002",
          "actividad_economica": "Actividades de apoyo para...",
          "afecta_iva": false,
          "categoria": "G",
          "internet": true
        }
      ],
      "Actividades de apoyo para la explotación de otras min...": [
        {
          "codigo": "099002",
          "actividad_economica": "Actividades de apoyo para...",
          "afecta_iva": false,
          "categoria": "G",
          "internet": true
        }
      ]
    }
  },
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, el listado de primera categoría.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

listado_segunda_categoria() → ApiResponse[dict[str, Any]][fuente]

Obtiene un listado de actividades económicas de segunda categoría.

Respuesta (ejemplo):

{
  "data": {
    "Explotación de minas y canteras": {
      "Actividades de apoyo para la extracción de petróleo y...": [
        {
          "codigo": "091002",
          "actividad_economica": "Actividades de apoyo para...",
          "afecta_iva": false,
          "categoria": "G",
          "internet": true
        }
      ],
      "Actividades de apoyo para la explotación de otras min...": [
        {
          "codigo": "099002",
          "actividad_economica": "Actividades de apoyo para...",
          "afecta_iva": false,
          "categoria": "G",
          "internet": true
        }
      ]
    }
  },
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, el listado de segunda categoría.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.bhe module

Módulo para Boletas de Honorarios Electrónicas, emitidas y recibidas.

Para más información sobre la API, consulte la documentación completa de las BHE.

class apigatewaycl.api_client.sii.bhe.BheEmitidas(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para Boletas de Honorarios Electrónicas (BHE) emitidas.

Provee métodos para emitir, anular, y consultar información relacionada con BHEs.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

ANULACION_CAUSA_ERROR_DIGITACION = 3
ANULACION_CAUSA_SIN_PAGO = 1
ANULACION_CAUSA_SIN_PRESTACION = 2
RETENCION_EMISOR = 2
RETENCION_RECEPTOR = 1
anular(emisor: str, folio: str, causa: int = 3) → ApiResponse[dict[str, Any]][fuente]

Anula una BHE emitida.

Respuesta (ejemplo):

{
  "data": {
    "boleta_anulada": "S",
    "dv_autentificado": "4",
    "dv_receptor": "6",
    "fecha_cgi": "16/09/2020",
    "monto_maximo_anulacion": "100000000",
    "nombre_contribuyente": "EMISOR",
    "nombre_receptor": "NACIONALES SIN RUT   (USO EXCLUSIVO F...",
    "nro_boleta_eliminar": "155",
    "...": "..."
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de la boleta.

  • folio (str) – Número de folio de la boleta.

  • causa (int) – Motivo de anulación de la boleta.

Devuelve:

Respuesta de la API, con data y metadata. En data, confirmación de la anulación.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

documentos(emisor: str, periodo: str, pagina: int = 1) → ApiResponse[dict[str, Any]][fuente]

Obtiene los documentos de BHE emitidos por un emisor en un periodo.

La API exige pagina: parte en 1 y se avanza de a una, hasta n_paginas.

Respuesta (ejemplo):

{
  "data": {
    "boletas": [
      {
        "numero": 144,
        "rut": 0,
        "dv": "0",
        "nombre": "",
        "fecha": "2025-08-18",
        "...": "..."
      }
    ],
    "n_paginas": 1,
    "n_boletas": 1
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las boletas.

  • periodo (str) – Período de tiempo de las boletas emitidas.

  • pagina (int) – Página a consultar, partiendo desde 1.

Devuelve:

Respuesta de la API, con data y metadata. En data, documentos de BHE.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

email(codigo: str, email: str) → ApiResponse[dict[str, Any]][fuente]

Envía por correo electrónico una BHE emitida.

Respuesta (ejemplo):

{
  "data": {
    "message": "La Boleta de Honorarios Electrónica s...",
    "email": "ejemplo@ejemplo.com"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • codigo (str) – Código único de la BHE a enviar.

  • email (str) – Dirección de correo a la cual enviar la BHE.

Devuelve:

Respuesta de la API, con data y metadata. En data, confirmación del envío.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

emitir(boleta: dict[str, Any]) → ApiResponse[dict[str, Any]][fuente]

Emite una nueva Boleta de Honorarios Electrónica.

Respuesta (ejemplo):

{
  "data": {
    "Encabezado": {
      "Emisor": {
        "CmnaOrigen": "Región",
        "CodigoDirOrigen": "065722046",
        "DirOrigen": "Dirección",
        "GiroEmis": "Giro",
        "RUTEmisor": "12345678-9",
        "...": "..."
      },
      "IdDoc": {
        "CodigoBarras": "Código de barras",
        "CodigoInferior": "Código inferior",
        "FchEmis": "2020-09-16",
        "Folio": 155,
        "TipoDTE": 66,
        "...": "..."
      },
      "Receptor": {
        "CmnaRecep": "Región",
        "CodigoCmnaRecep": 6205,
        "CodigoRegionRecep": 6,
        "DirRecep": "Dirección",
        "RUTRecep": "0-0",
        "...": "..."
      }
    },
    "Detalle": [
      {
        "MontoItem": 50,
        "NmbItem": "Prueba integracion API Gateway 1"
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

boleta (dict) – Información detallada de la boleta a emitir.

Devuelve:

Respuesta de la API, con data y metadata. En data, confirmación de la emisión.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

pdf(codigo: str) → bytes[fuente]

Obtiene el PDF de una BHE emitida.

Parámetros:

codigo (str) – Código único de la BHE.

Devuelve:

Contenido del PDF de la BHE.

Tipo del valor devuelto:

bytes

class apigatewaycl.api_client.sii.bhe.BheRecibidas(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para Boletas de Honorarios Electrónicas (BHE) recibidas.

Provee métodos para obtener documentos, obtener PDF y observar BHE recibidas.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

documentos(receptor: str, periodo: str, pagina: int = 1) → ApiResponse[dict[str, Any]][fuente]

Obtiene los documentos de BHE recibidos por un receptor en un periodo.

La API exige pagina: parte en 1 y se avanza de a una, hasta n_paginas.

Respuesta (ejemplo):

{
  "data": {
    "n_paginas": 1,
    "n_boletas": 1,
    "boletas": [
      {
        "anulada": "",
        "codigo": "",
        "comuna": "13159",
        "dv": "9",
        "estado": "N",
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor de las boletas.

  • periodo (str) – Período de tiempo de las boletas recibidas.

  • pagina (int) – Página a consultar, partiendo desde 1.

Devuelve:

Respuesta de la API, con data y metadata. En data, documentos de BHE.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

observar(emisor: str, numero: str, causa: int = 1) → ApiResponse[dict[str, Any]][fuente]

Marca una observación en una BHE recibida.

Respuesta (ejemplo):

{
  "data": {
    "nombre_contribuyente": "API Gateway",
    "rut_arrastre": "76192083",
    "dv_arrastre": "9",
    "fecha_cgi": "16/08/2020",
    "nro_trx": "12345678"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de la boleta.

  • numero (str) – Número de la boleta.

  • causa (int) – Motivo de la observación.

Devuelve:

Respuesta de la API, con data y metadata. En data, confirmación de la observación.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

pdf(codigo: str) → bytes[fuente]

Obtiene el PDF de una BHE recibida.

Parámetros:

codigo (str) – Código único de la BHE.

Devuelve:

Contenido del PDF de la BHE.

Tipo del valor devuelto:

bytes

class apigatewaycl.api_client.sii.bhe.ConsultasPorTerceros(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para que un tercero verifique la autenticidad de una BHE.

A diferencia de BheEmitidas/BheRecibidas, la autenticación es de quien CONSULTA, no del emisor ni del receptor de la boleta.

Parámetros:
  • identificador (str) – Identificador de quien consulta.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

verificar(codigo_barras: str | None = None, emisor: str | None = None, receptor: str | None = None, periodo: str | None = None, folio: int | None = None) → bytes[fuente]

Verifica la autenticidad de una BHE ante el SII.

Modos excluyentes: enviar solo codigo_barras, o todos de emisor/receptor/periodo/folio.

Parámetros:
  • codigo_barras (str) – Código de barras de la boleta.

  • emisor (str) – RUT del emisor de la boleta.

  • receptor (str) – RUT del receptor de la boleta.

  • periodo (str) – Fecha de la boleta (AAAA-MM-DD).

  • folio (int) – Folio de la boleta.

Devuelve:

PDF oficial de la boleta emitido por el SII.

Tipo del valor devuelto:

bytes

apigatewaycl.api_client.sii.bienes_raices module

Módulo para Bienes Raíces del SII.

Para más información sobre la API, consulte la documentación completa de Bienes Raíces.

class apigatewaycl.api_client.sii.bienes_raices.BienesRaices(identificador: str | None = None, clave: str | None = None, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para consultas de Bienes Raíces del SII.

La mayoría de los recursos son públicos (solo requieren la llave de la API). propiedades_contribuyente() es la excepción: requiere autenticación con certificado digital, mediante identificador (cert-data o file-data) y clave (pkey-data o file-pass) al instanciar la clase.

Parámetros:
  • identificador (str) – Identificador del contribuyente (opcional, sólo lo usa propiedades_contribuyente()).

  • clave (str) – Clave del identificador (opcional).

  • kwargs – Argumentos adicionales.

certificado_antecedentes_data(comuna: int, manzana: int, predio: int, eac: int) → ApiResponse[dict[str, Any]][fuente]

Datos del certificado de antecedentes de un bien raíz.

Respuesta (ejemplo):

{
  "data": {
    "datos_generales": {
      "comuna": "CONCEPCIÓN",
      "rol": "00321-00001",
      "direccion": "AVENIDA ISLA DE MAIPO 3211",
      "ubicacion": "URBANA",
      "destino": "HABITACIONAL",
      "serie": "NO AGRÍCOLA",
      "semestre": null,
      "folio": "00000000000000000000",
      "...": "..."
    },
    "avaluos": {
      "total": 125352123.0,
      "exento": 125352123.0,
      "afecto": 0.0,
      "año_termino_exencion": 1988
    },
    "contribuciones": {
      "neta": 0.0,
      "sobretasa_sitios": 0.0,
      "adicional": 0.0,
      "sobretasa": 0.0,
      "cuota_aseo": 0.0,
      "total": 0.0
    },
    "avaluo_actualizado": 125352123.0,
    "fecha_emision": "16 de Diciembre de 2025"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Código de la manzana.

  • predio (int) – Código del predio.

  • eac (int) – Último EAC aplicado.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos generales, avalúos, contribuciones, avalúo actualizado y fecha de emisión.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

certificado_antecedentes_pdf(comuna: int, manzana: int, predio: int, eac: int) → bytes[fuente]

PDF del certificado de antecedentes de un bien raíz.

Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Código de la manzana.

  • predio (int) – Código del predio.

  • eac (int) – Último EAC aplicado.

Devuelve:

Contenido del PDF del certificado.

Tipo del valor devuelto:

bytes

certificado_avaluo_fiscal_previo_data(comuna: int, manzana: int, predio: int, eac: int) → ApiResponse[dict[str, Any]][fuente]

Datos del certificado de avalúo fiscal previo de un bien raíz.

Respuesta (ejemplo):

{
  "data": {
    "datos_generales": {
      "comuna": "SANTA CRUZ",
      "rol": "00133-00026",
      "direccion": "DANIEL BARROS GONZALEZ 121",
      "destino": "HABITACIONAL",
      "folio": "V189304624",
      "codigo_verificacion": "312dqsdf-4978-4b68-859f-5f743c9a03fb"
    },
    "avaluo": {
      "semestre": "segundo",
      "año": 2025,
      "total": 123456789.0
    },
    "fecha_emision": "12 de Diciembre de 2005",
    "error": null,
    "success": false
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Código de la manzana.

  • predio (int) – Código del predio.

  • eac (int) – Último EAC aplicado.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos generales, avalúo, fecha de emisión y resultado de la consulta.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

certificado_avaluo_fiscal_previo_pdf(comuna: int, manzana: int, predio: int, eac: int) → bytes[fuente]

PDF del certificado de avalúo fiscal previo de un bien raíz.

Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Código de la manzana.

  • predio (int) – Código del predio.

  • eac (int) – Último EAC aplicado.

Devuelve:

Contenido del PDF del certificado.

Tipo del valor devuelto:

bytes

certificado_avaluo_fiscal_simple_data(comuna: int, manzana: int, predio: int, eac: int) → ApiResponse[dict[str, Any]][fuente]

Datos del certificado de avalúo fiscal simple de un bien raíz.

Respuesta (ejemplo):

{
  "data": {
    "datos_generales": {
      "comuna": "SANTA CRUZ",
      "rol": "00133-00026",
      "direccion": "DANIEL BARROS GONZALEZ 121",
      "destino": "HABITACIONAL",
      "folio": "V189304624",
      "codigo_verificacion": "312dqsdf-4978-4b68-859f-5f743c9a03fb"
    },
    "avaluo": {
      "semestre": "segundo",
      "año": 2025,
      "total": 123456789.0
    },
    "fecha_emision": "12 de Diciembre de 2005",
    "error": null,
    "success": false
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Código de la manzana.

  • predio (int) – Código del predio.

  • eac (int) – Último EAC aplicado.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos generales, avalúo, fecha de emisión y resultado de la consulta.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

certificado_avaluo_fiscal_simple_pdf(comuna: int, manzana: int, predio: int, eac: int) → bytes[fuente]

PDF del certificado de avalúo fiscal simple de un bien raíz.

Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Código de la manzana.

  • predio (int) – Código del predio.

  • eac (int) – Último EAC aplicado.

Devuelve:

Contenido del PDF del certificado.

Tipo del valor devuelto:

bytes

comuna(comuna: str) → ApiResponse[dict[str, Any]][fuente]

Datos de una comuna de los bienes raíces, por nombre.

Respuesta (ejemplo):

{
  "data": {
    "codigoConaraSii": 6205,
    "nombre": "SANTA CRUZ",
    "regional": 6,
    "codigo": 0,
    "descripcion": null,
    "descCorta": null
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

comuna (str) – Nombre de la comuna a buscar.

Devuelve:

Respuesta de la API, con data y metadata. En data, código CONARA/SII, nombre, región, código y descripciones de la comuna.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

comunas() → ApiResponse[list[dict[str, Any]]][fuente]

Listado de comunas de los bienes raíces.

Respuesta (ejemplo):

{
  "data": [
    {
      "codigoConaraSii": 5406,
      "nombre": "ALGARROBO",
      "regional": 5,
      "codigo": 0,
      "descripcion": null,
      "descCorta": null
    }
  ],
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, comunas con su código CONARA/SII, nombre, región, código y descripciones.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

propiedades_contribuyente() → ApiResponse[list[dict[str, Any]]][fuente]

Propiedades del contribuyente autenticado.

Requiere autenticación con certificado digital (no admite RUT y clave).

Respuesta (ejemplo):

{
  "data": [
    {
      "comunaCnp": 6205,
      "manzanaCnp": 123,
      "predioCnp": 6,
      "idRol": 0,
      "comunaActual": 0,
      "manzanaActual": 0,
      "predioActual": 0,
      "ultimoEacAplicado": 14,
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, listado de propiedades con identificación del rol, ubicación, inscripción, avalúos y contribuciones.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

propiedades_rol(comuna: int, manzana: int, predio: int) → ApiResponse[list[dict[str, Any]]][fuente]

Propiedades de un bien raíz por su rol (comuna/manzana/predio).

Respuesta (ejemplo):

{
  "data": [
    {
      "comunaCnp": 6205,
      "manzanaCnp": 123,
      "predioCnp": 6,
      "idRol": 0,
      "comunaActual": 0,
      "manzanaActual": 0,
      "predioActual": 0,
      "ultimoEacAplicado": 14,
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • comuna (int) – Código de la comuna.

  • manzana (int) – Número de manzana.

  • predio (int) – Número de predio.

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de propiedades con identificación del rol, ubicación, inscripción, avalúos y contribuciones.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

apigatewaycl.api_client.sii.bte module

Módulo para la emisión de Boletas de Terceros Electrónicas del SII.

Para más información sobre la API, consulte la documentación completa de las BTE.

class apigatewaycl.api_client.sii.bte.BteEmitidas(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para Boletas de Terceros Electrónicas (BTE) emitidas.

Provee métodos para emitir, anular, y consultar información relacionada con BTEs.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

anular(emisor: str, numero: str, causa: int = 3, periodo: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Anula una BTE emitida.

Respuesta (ejemplo):

{
  "data": {
    "numero": 123,
    "fecha": null,
    "emisor_rut": "12345678-9",
    "emisor_nombre": "EMISOR",
    "fecha_emision": "2025-01-01",
    "receptor_rut": "66666666",
    "receptor_nombre": "RECEPTOR",
    "total_honorarios": 1000000,
    "...": "..."
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de la boleta.

  • numero (str) – Número de la boleta.

  • causa (int) – Causa de anulación.

  • periodo (str) – Período de emisión de la boleta (opcional).

Devuelve:

Respuesta de la API, con data y metadata. En data, confirmación de la anulación.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

documento(emisor: str, folio: int, periodo: str) → ApiResponse[dict[str, Any]][fuente]

Detalle de una BTE emitida específica (no un listado).

Respuesta (ejemplo):

{
  "data": {
    "codigo": "123ADSA45FSA67890",
    "emisor_nombre": "API Gateway",
    "emisor_rut": "76192083-9",
    "estado": "ANUL",
    "fecha": "2019-12-22",
    "fecha_emision": "2019-12-22",
    "numero": "123",
    "receptor_nombre": "RECEPTOR",
    "...": "..."
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor.

  • folio (int) – Folio de la boleta.

  • periodo (str) – Período de la boleta (AAAAMM). Acota la consulta a ese mes: sin él, el SII se recorre año por año buscando el folio.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos de la boleta (número, código, montos, estado).

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

documentos(emisor: str, periodo: str, pagina: int = 1) → ApiResponse[list[dict[str, Any]]][fuente]

Obtiene los documentos BTE emitidos por un emisor en un periodo.

La API exige pagina: parte en 1 y se avanza de a una.

Respuesta (ejemplo):

{
  "data": [
    {
      "numero": 123,
      "codigo": "C76192083000123D09D17",
      "emisor_rut": "76192083-9",
      "emisor_nombre": "EMPRESA SPA",
      "receptor_rut": "12345678-9",
      "receptor_nombre": "RECEPTOR EJEMPLO",
      "fecha": "2025-01-15",
      "fecha_emision": "2025-01-15",
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "...", "n_boletas": 1, "n_paginas": 1}
}
Parámetros:
  • emisor (str) – RUT del emisor de las BTE.

  • periodo (str) – Período de las BTE emitidas.

  • pagina (int) – Página a consultar, partiendo desde 1.

Devuelve:

Respuesta de la API, con data y metadata. En data, documentos BTE.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

emitir(datos: dict[str, Any]) → ApiResponse[dict[str, Any]][fuente]

Emite una nueva Boleta de Tercero Electrónica.

Respuesta (ejemplo):

{
  "data": {
    "Encabezado": {
      "Emisor": {
        "RUTEmisor": "76192083-9",
        "RznSoc": "EMPRESA EMISORA SPA",
        "GiroEmis": "SERVICIOS DE INFORMATICA",
        "Acteco": "620200",
        "DirOrigen": "AV. PRINCIPAL 123",
        "...": "..."
      },
      "IdDoc": {
        "FchEmis": "2025-01-15",
        "Folio": 336,
        "CodigoBarras": "C76192083000336D09D17"
      },
      "Receptor": {
        "RUTRecep": "12345678-9",
        "RznSocRecep": "Contribuyente Receptor",
        "DirRecep": "Av. Principal 123",
        "CmnaRecep": "Santiago"
      },
      "Totales": {
        "MntBruto": 150000,
        "TasaRetencion": 14.5,
        "MntRetencion": 21750,
        "MntNeto": 128250
      }
    },
    "Detalle": [
      {"NmbItem": "Servicio de consultoría", "MontoItem": 50000}
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

datos (dict) – Datos de la boleta a emitir.

Devuelve:

Respuesta de la API, con data y metadata. En data, confirmación de la emisión de la BTE.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

html(codigo: str) → bytes[fuente]

Obtiene la representación HTML de una BTE emitida.

Parámetros:

codigo (str) – Código único de la BTE.

Devuelve:

Contenido HTML de la BTE, sin decodificar (viene en ISO-8859-1).

Tipo del valor devuelto:

bytes

receptor_tasa(emisor: str, receptor: str, periodo: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Obtiene la tasa de retención aplicada a un receptor por un emisor.

Respuesta (ejemplo):

{
  "data": {
    "periodo": 202501,
    "tasa_base": 11.5,
    "tasa_receptor": 11.5
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de la boleta.

  • receptor (str) – RUT del receptor de la boleta.

  • periodo (str) – Período de emisión de la boleta (opcional).

Devuelve:

Respuesta de la API, con data y metadata. En data, tasa de retención.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

resumen(emisor: str, anio: str) → ApiResponse[dict[str, Any]][fuente]

Resumen anual y mensual de boletas de terceros emitidas.

Respuesta (ejemplo):

{
  "data": {
    "anual": {
      "anuladas": 2,
      "bruto": 500000,
      "folio_final": 150,
      "folio_inicial": 100,
      "retencion": 50000,
      "total": 450000,
      "vigentes": 48
    },
    "mensual": [
      {
        "anuladas": 0,
        "bruto": 100000,
        "folio_final": 110,
        "folio_inicial": 100,
        "mes_codigo": "01",
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las BTE.

  • anio (str) – Año del resumen.

Devuelve:

Respuesta de la API, con data y metadata. En data, resumen anual (anual) y, por cada mes, su propio resumen (mensual). Sin movimientos en el año, anual es None y mensual una lista vacía.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.bte.BteRecibidas(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para Boletas de Terceros Electrónicas (BTE) recibidas.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

documentos(receptor: str, periodo: str, pagina: int) → ApiResponse[list[dict[str, Any]]][fuente]

Obtiene los documentos BTE recibidos por un receptor en un periodo.

periodo acepta AAAAMM (mensual) o AAAAMMDD (diario). Paginado — pagina parte en 1.

Respuesta (ejemplo):

{
  "data": [
    {
      "numero": 123,
      "fecha": "2025-01-15",
      "emisor_rut": "76192083-9",
      "emisor_nombre": "EMPRESA SPA",
      "fecha_emision": "2025-01-15",
      "receptor_rut": "12345678-9",
      "receptor_nombre": "RECEPTOR EJEMPLO",
      "total_honorarios": 150000,
      "...": "..."
    }
  ],
  "metadata": {
    "timestamp": "...",
    "n_boletas": 150,
    "n_paginas": 15
  }
}
Parámetros:
  • receptor (str) – RUT del receptor de las BTE.

  • periodo (str) – Período de las BTE buscadas.

  • pagina (int) – Página a consultar, partiendo desde 1.

Devuelve:

Respuesta de la API, con data y metadata. En data, la lista de boletas; en metadata, n_boletas y n_paginas.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

html(codigo: str) → bytes[fuente]

Obtiene la representación HTML de una BTE recibida.

Parámetros:

codigo (str) – Código único de la BTE recibida.

Devuelve:

Contenido HTML de la BTE, sin decodificar (viene en ISO-8859-1).

Tipo del valor devuelto:

bytes

apigatewaycl.api_client.sii.caf module

Módulo para el Código de Asignación de Folios (CAF) del SII.

Para más información sobre la API, consulte la documentación completa del CAF.

class apigatewaycl.api_client.sii.caf.Caf(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para el Código de Asignación de Folios (CAF) de la API.

Provee métodos para consultar, solicitar y anular folios.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

anular(emisor: str, dte: int, folio_inicial: int, folio_final: int, certificacion: str | None = None, formato: str | None = None) → ApiResponse[dict[str, Any]] | str[fuente]

Anula un rango de folios ya solicitados al SII.

Respuesta (ejemplo):

{
  "data": {
    "emisor": "76192083-9",
    "fecha_anulacion": "2024-01-15",
    "dte": 39,
    "folio_inicial": 707,
    "folio_final": 707,
    "usuario": "12345678-9"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor.

  • dte (int) – Código del tipo de documento.

  • folio_inicial (int) – Primer folio a anular.

  • folio_final (int) – Último folio a anular.

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json” o “html”.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos de la anulación (fecha, usuario, rango). Con formato=”html” se entrega el HTML del SII como str, sin data ni metadata.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]] | str

estado(emisor: str, dte: int, folio: int, certificacion: str | None = None, formato: str | None = None) → ApiResponse[dict[str, Any]] | str[fuente]

Estado de un folio en el SII (estado, glosa, track id de envío).

Respuesta (ejemplo):

{
  "data": {
    "estado": "recibido",
    "estado_glosa": "Documento recibido por el SII",
    "track_id": "231986674"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor del folio.

  • dte (int) – Código del tipo de documento.

  • folio (int) – Folio a consultar.

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json” o “html”.

Devuelve:

Respuesta de la API, con data y metadata. En data, estado del folio. Con formato=”html” se entrega el HTML del SII como str, sin data ni metadata.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]] | str

estado_timbraje(emisor: str, dte: int, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Estado de timbraje de un tipo de DTE.

Folios timbrables y observaciones del SII sobre el contribuyente. Solo consulta, no solicita folios.

Respuesta (ejemplo):

{
  "data": {
    "dte": {
      "codigo": 33,
      "limitado": true,
      "maximo_autorizado": 100,
      "folios_disponibles": 20,
      "timbraje_permitido": 80
    },
    "contribuyente": {
      "observado": false,
      "glosa": null,
      "observaciones": []
    }
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor.

  • dte (int) – Código del tipo de documento.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos del tipo de DTE y situación del contribuyente.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

estados(emisor: str, dte: int, folio_inicial: int, folio_final: int, estado: str, certificacion: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Estados de un rango de folios en el SII, agrupados por tramos.

Respuesta (ejemplo):

{
  "data": [{"inicial": 1002, "final": 1004, "cantidad": 3}],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor.

  • dte (int) – Código del tipo de documento.

  • folio_inicial (int) – Primer folio del rango.

  • folio_final (int) – Último folio del rango.

  • estado (str) – Estado de los folios a consultar: recibidos, anulados o pendientes.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de tramos (inicial/final/cantidad).

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

solicitar(emisor: str, dte: int, cantidad: int, certificacion: str | None = None) → bytes[fuente]

Solicita un nuevo CAF (folios) al SII.

La respuesta es el XML del CAF, no un objeto JSON.

Parámetros:
  • emisor (str) – RUT del emisor del CAF.

  • dte (int) – Código del tipo de documento.

  • cantidad (int) – Cantidad de folios a solicitar.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Contenido del XML del CAF.

Tipo del valor devuelto:

bytes

solicitudes(emisor: str, dte: int, pagina: int, certificacion: str | None = None, formato: str | None = None) → ApiResponse[list[dict[str, Any]]] | str[fuente]

Listado paginado de solicitudes de CAF de un emisor.

pagina parte en 1 — usar metadata.siguiente_pagina de la respuesta (None si es la última) para paginar.

Respuesta (ejemplo):

{
  "data": [
    {
      "inicial": 1022,
      "final": 1022,
      "cantidad": 1,
      "fecha": "2025-09-24",
      "mandatario": "NOMBRE MANDATARIO 1"
    }
  ],
  "metadata": {"timestamp": "...", "siguiente_pagina": 2}
}
Parámetros:
  • emisor (str) – RUT del emisor del CAF.

  • dte (int) – Código del tipo de documento.

  • pagina (int) – Página a consultar, partiendo desde 1.

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json” o “html”.

Devuelve:

Respuesta de la API, con data y metadata. En data, el listado de solicitudes; en metadata, siguiente_pagina (None si es la última). Con formato=”html” se entrega el HTML del SII como str, sin data ni metadata.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]] | str

xml(emisor: str, dte: int, folio_inicial: int, folio_final: int, fecha_autorizacion: str, certificacion: str | None = None) → bytes[fuente]

Obtiene el XML de un CAF ya solicitado.

Parámetros:
  • emisor (str) – RUT del emisor del CAF.

  • dte (int) – Código del tipo de documento.

  • folio_inicial (int) – Folio inicial del CAF.

  • folio_final (int) – Folio final del CAF.

  • fecha_autorizacion (str) – Fecha de autorización del CAF.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Contenido del XML del CAF.

Tipo del valor devuelto:

bytes

apigatewaycl.api_client.sii.contribuyentes module

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.

class apigatewaycl.api_client.sii.contribuyentes.Contribuyentes(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: 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.

situacion_tributaria(rut: str) → ApiResponse[dict[str, Any]][fuente]

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": "..."}
}
Parámetros:

rut (str) – RUT del contribuyente.

Devuelve:

Respuesta de la API, con data y metadata. En data, situación tributaria.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

verificar_rut(rut: str, serie: str) → ApiResponse[dict[str, Any]][fuente]

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": "..."}
}
Parámetros:
  • rut (str) – RUT del contribuyente (ej. 76192083-9).

  • serie (str) – Número de serie de la cédula a verificar.

Devuelve:

Respuesta de la API, con data y metadata. En data, verificación del RUT.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.dte module

Módulo para Documentos Tributarios Electrónicos (DTE) del SII.

Para más información sobre la API, consulte la documentación completa de los DTE.

class apigatewaycl.api_client.sii.dte.Contribuyentes(identificador: str | None = None, clave: str | None = None, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para los endpoints de contribuyentes de la API de API Gateway.

Proporciona métodos para consultar la autorización de emisión de DTE de un contribuyente, sus datos privados y sus usuarios autorizados.

Parámetros:
  • identificador (str) – Identificador del contribuyente (opcional, sólo para los recursos que requieren autenticación).

  • clave (str) – Clave del identificador (opcional).

  • kwargs – Argumentos adicionales.

autorizacion(rut: str, certificacion: bool | None = None) → ApiResponse[dict[str, Any]][fuente]

Verifica si un contribuyente está autorizado para emitir DTE.

Respuesta (ejemplo):

{
  "data": {
    "autorizado": true,
    "direccion_regional": "VI",
    "documentos": [
      {
        "autorizado": "2016-03-01",
        "codigo": 39,
        "desautorizado": null,
        "descripcion": "BOLETA ELECTRONICA"
      }
    ],
    "razon_social": "API Gateway",
    "resolucion": {"fecha": "2014-08-22", "numero": 80},
    "rut": "76192083-9",
    "software": "mercado"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • rut (str) – RUT del contribuyente a verificar.

  • certificacion (bool) – Indica si se consulta en ambiente de certificación (opcional).

Devuelve:

Respuesta de la API, con data y metadata. En data, estado de autorización.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

autorizacion_certificado(rut: str, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Estado de autorización de un contribuyente, con certificado.

A diferencia de autorizacion() (GET, pública), esta variante requiere certificado digital y agrega el correo electrónico de intercambio del contribuyente a la respuesta.

Respuesta (ejemplo):

{
  "data": {
    "autorizado": true,
    "direccion_regional": "VI",
    "documentos": [
      {
        "autorizado": "2015-09-01",
        "codigo": 33,
        "desautorizado": null,
        "descripcion": "FACTURA ELECTRONICA"
      }
    ],
    "emails": {"intercambio": {"email": "dte@example.com"}},
    "razon_social": "API Gateway",
    "resolucion": {"fecha": "2014-08-22", "numero": 80},
    "rut": "76192083-9",
    "software": "mercado"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • rut (str) – RUT del contribuyente a consultar.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, autorización, resolución, dirección regional, software declarado, email de intercambio y documentos autorizados.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

autorizados(certificacion: str | None = None, dia: str | None = None, formato: str | None = None) → ApiResponse[list[dict[str, Any]]] | bytes[fuente]

Descarga masiva de contribuyentes autorizados a emitir DTE.

Descarga la base completa del SII (cercana a un millón de registros, cientos de MB, hasta 15 minutos). No es para consultas puntuales de un RUT — para eso usar autorizacion() o autorizacion_certificado().

Respuesta (ejemplo):

{
  "data": [
    {
      "rut": "76192083-9",
      "razon_social": "API Gateway",
      "resolucion_numero": "80",
      "resolucion_fecha": "2014-08-22",
      "email": "dte@example.com",
      "url": "www.example.com"
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • certificacion (str) – “0” producción, “1” certificación.

  • dia (str) – Fecha de corte (AAAAMMDD o AAAA-MM-DD).

  • formato (str) – “json”, “csv” o “csv_sii” (oficial del SII, sin transformar — recomendado y valor por defecto de la API).

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de contribuyentes autorizados (RUT, razón social, resolución, email de intercambio, URL). Con formato=”json” se entrega ya decodificado; con los dos formatos CSV se entrega el archivo crudo, sin decodificar (csv_sii viene en ISO-8859-1).

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]] | bytes

datos(contribuyente: str, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Datos privados del contribuyente autenticado.

Incluye resolución de autorización, correos y software de facturación declarado.

Respuesta (ejemplo):

{
  "data": {
    "rut": "12345678-9",
    "autorizado": "2025-02-25",
    "razon_social": "RAZON SOCIAL SPA",
    "resolucion": {"numero": 99, "fecha": "2014-10-21"},
    "emails": {
      "administrador": "admin@example.com",
      "sii": "sii@example.com",
      "intercambio": "intercambio@example.com"
    },
    "software": {"nombre": "SII", "url": "www.example.com"}
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos privados del contribuyente.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

set_datos(contribuyente: str, datos: dict[str, Any], certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Actualiza los datos privados del contribuyente (emails, software).

Respuesta (ejemplo):

{
  "data": {
    "data": {
      "rut": "12345678-9",
      "autorizado": "2019-12-23",
      "razon_social": "RAZON SOCIAL SPA",
      "resolucion": {"numero": 0, "fecha": "2019-12-23"},
      "emails": {
        "administrador": "admin@example.com",
        "sii": "sii@example.com",
        "intercambio": "dte@example.com"
      },
      "software": {"nombre": "LIBREDTE", "url": "www.libredte.cl"}
    }
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente a actualizar.

  • datos (dict) – Datos a actualizar (emails, software).

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos privados del contribuyente, ya actualizados.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

set_usuario(contribuyente: str, usuario: dict[str, Any], certificacion: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Asigna un usuario autorizado, o modifica sus permisos si ya existe.

usuario lleva run y permisos, con las claves booleanas administrador, solicitar_folios, anular_folios, firmar, enviar y consultar; las que no vengan cuentan como False. Para eliminar un usuario se envían todos los permisos en False: no hay un recurso aparte para eliminar.

Respuesta (ejemplo):

{
  "data": [
    {
      "run": "66666666-6",
      "nombre": "Juan",
      "permisos": {
        "administrador": true,
        "solicitar_folios": true,
        "anular_folios": true,
        "firmar": true,
        "enviar": true,
        "...": "..."
      }
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente a actualizar.

  • usuario (dict) – Usuario a asignar (run y permisos).

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, la lista completa de usuarios autorizados después del cambio (no solo el enviado), con sus permisos.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

usuarios(rut: str, certificacion: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Listado de usuarios autorizados de un contribuyente.

Respuesta (ejemplo):

{
  "data": [
    {
      "nombre": "Juan",
      "permisos": {
        "administrador": true,
        "anular_folios": true,
        "consultar": true,
        "enviar": true,
        "firmar": true,
        "...": "..."
      },
      "run": "1-9"
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • rut (str) – RUT del contribuyente a consultar.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de usuarios, con nombre, RUN y permisos.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

class apigatewaycl.api_client.sii.dte.Emitidos(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente específico para gestionar DTE emitidos.

Permite verificar la validez y autenticidad de un DTE emitido.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

estado_envio(emisor: str, track_id: int, certificacion: str | None = None, formato: str | None = None) → ApiResponse[dict[str, Any]] | str[fuente]

Estado del envío de un XML de DTE al SII.

Solo consulta envíos de empresas a las que el usuario autenticado con certificado digital tenga acceso.

Respuesta (ejemplo):

{
  "data": {
    "documentos": {
      "33": {
        "aceptados": 1,
        "dte": 33,
        "informados": 1,
        "rechazados": 0,
        "reparos": 0,
        "...": "..."
      }
    },
    "emisor": "76192083-9",
    "estado": "Envio Procesado [EPR].",
    "track_id": "1234"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de los documentos.

  • track_id (int) – Identificador del envío.

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json” o “html”.

Devuelve:

Respuesta de la API, con data y metadata. En data, estado del envío y resumen de documentos por tipo de DTE. Con formato=”html” se entrega el HTML del SII como str, sin data ni metadata.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]] | str

verificar(emisor: str, receptor: str, dte: int, folio: int, fecha: str, total: int, firma: str | None = None, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Verifica la validez de un DTE emitido.

Respuesta (ejemplo):

{
  "data": {
    "status": "DOK",
    "detalle": "Documento recibido por el SII. Datos ...",
    "track_id": 321421421521,
    "razon_social": "SASCO SPA"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor del DTE.

  • receptor (str) – RUT del receptor del DTE.

  • dte (int) – Tipo de DTE.

  • folio (int) – Número de folio del DTE.

  • fecha (str) – Fecha de emisión del DTE.

  • total (int) – Monto total del DTE.

  • firma (str) – Firma electrónica del DTE (opcional).

  • certificacion (str) – “0” producción, “1” certificación. Sólo aplica a documentos que no son boletas: las boletas (39 y 41) se verifican siempre en producción.

Devuelve:

Respuesta de la API, con data y metadata. En data, resultado de la verificación del DTE.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.dte.Iecv(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para la Información Electrónica de Compras y Ventas (IECV).

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

codigo_reemplazo(emisor: str, periodo: str, operacion: str, tipo: str, track_id: int, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Código de reemplazo de un libro IECV, para poder rectificarlo.

Solo para períodos de 201707 hacia atrás.

Respuesta (ejemplo):

{
  "data": {"codigo_reemplazo": "1234567890"},
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de los documentos.

  • periodo (str) – Período del registro (AAAAMM).

  • operacion (str) – “VENTA” o “COMPRA”.

  • tipo (str) – “MENSUAL” o “RECTIFICA”.

  • track_id (int) – Identificador del envío del libro a reemplazar.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, código de reemplazo del libro.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.eboleta module

Módulo para eBoleta (Boletas Electrónicas del SII, sistema propio).

Para más información sobre la API, consulte la documentación completa de eBoleta.

class apigatewaycl.api_client.sii.eboleta.EboletaContribuyente(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para información de contribuyentes emisores de eBoleta.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

emisor(emisor: str) → ApiResponse[dict[str, Any]][fuente]

Información del emisor de la boleta electrónica.

Respuesta (ejemplo):

{
  "data": {
    "contribuyente": {
      "rut": 12345678,
      "razon_social": "RAZON SOCIAL DEL EMISOR",
      "dv": "9",
      "giro": "GIRO DEL EMISOR",
      "actividad_economica": "Actividad económica del emisor",
      "telefono": "1234567890",
      "email": "emisor@example.com",
      "direccion": "Dirección del emisor",
      "...": "..."
    },
    "sucursales": [
      {
        "rut": 12345678,
        "codigo": 12345678,
        "sucursal": null,
        "direccion": "ERRAZURIZ 827 ",
        "comuna": "Santa Cruz",
        "...": "..."
      }
    ],
    "usuarios": [
      {
        "user": "12345678-9",
        "nombre": "NOMBRE DEL USUARIO 1",
        "es_representante": true,
        "permisos": 0,
        "total_records": 2
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

emisor (str) – RUT del emisor (formato 11222333-K).

Devuelve:

Respuesta de la API, con data y metadata. En data, datos del contribuyente, sus sucursales y usuarios.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

emisores_autorizados() → ApiResponse[dict[str, Any]][fuente]

Lista de emisores autorizados de la boleta electrónica.

Respuesta (ejemplo):

{
  "data": {
    "emisores": [
      {
        "rut": 12345678,
        "dv": "9",
        "razon_social": "RAZON SOCIAL DEL EMISOR"
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, listado de contribuyentes (RUT, DV y razón social).

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.eboleta.EboletaEmitidas(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para boletas electrónicas emitidas de eBoleta.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

documento(contribuyente: str, folio: int, dte: int, fecha: str) → ApiResponse[dict[str, Any]][fuente]

Detalle de un documento de la boleta electrónica.

Respuesta (ejemplo):

{
  "data": {
    "folio": 35,
    "neto": 4202,
    "iva": 798,
    "total": 5000,
    "exento": 0,
    "dte": 39,
    "revision_estado": "pendiente",
    "anulado": false,
    "...": "..."
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente.

  • folio (int) – Folio del documento.

  • dte (int) – Tipo de documento.

  • fecha (str) – Fecha de emisión del documento (AAAA-MM-DD).

Devuelve:

Respuesta de la API, con data y metadata. En data, datos del documento (montos, estado, revisión, PDF).

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

documentos(contribuyente: str, date_from: str, date_to: str, page: int | None = None, items_per_page: int | None = None, estado: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Listado de documentos emitidos de la boleta electrónica.

Respuesta (ejemplo):

{
  "data": [
    {
      "folio": 35,
      "neto": 4202,
      "iva": 798,
      "total": 5000,
      "exento": 0,
      "dte": 39,
      "revision_estado": "pendiente",
      "anulado": false,
      "...": "..."
    }
  ],
  "metadata": {
    "timestamp": "...",
    "total": "23390",
    "cantidad_emitida": "5"
  }
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente, sin puntos ni dígito verificador.

  • date_from (str) – Fecha de inicio (AAAA-MM-DD).

  • date_to (str) – Fecha de fin (AAAA-MM-DD).

  • page (int) – Página a obtener (por defecto 1).

  • items_per_page (int) – Ítems por página (por defecto 10).

  • estado (str) – Estado del documento (por defecto emitido).

Devuelve:

Respuesta de la API, con data y metadata. En data, el listado de documentos emitidos; en metadata, los datos de la consulta.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

email(contribuyente: str, folio: int, dte: int, fecha: str, to: str) → ApiResponse[dict[str, Any]][fuente]

Envía por correo electrónico un documento de la boleta.

Respuesta (ejemplo):

{
  "data": {"mensaje": "Email enviado con éxito"},
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente.

  • folio (int) – Folio del documento.

  • dte (int) – Tipo de documento.

  • fecha (str) – Fecha de emisión del documento (AAAA-MM-DD).

  • to (str) – Dirección de correo de destino.

Devuelve:

Respuesta de la API, con data y metadata. En data, mensaje de confirmación del envío.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

emitir(dte: dict[str, Any]) → ApiResponse[dict[str, Any]][fuente]

Emite una Boleta Electrónica Afecta (39) o Exenta (41).

Solo admite un ítem por documento. dte[“vendedor”] debe ser el mismo RUT usado para autenticar (auth.pass.rut).

Respuesta (ejemplo):

{
  "data": {
    "pdf": "url del pdf",
    "pdf_base64": "data:application/pdf;base64,...",
    "dte": 39,
    "folio": 40
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

dte (dict) – Datos de la boleta a emitir (vendedor, Encabezado, Detalle).

Devuelve:

Respuesta de la API, con data y metadata. En data, folio y tipo de documento emitido, URL del PDF y PDF en base64.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

pdf(contribuyente: str, folio: int, dte: int, fecha: str) → bytes[fuente]

PDF de un documento de la boleta electrónica.

Parámetros:
  • contribuyente (str) – RUT del contribuyente.

  • folio (int) – Folio del documento.

  • dte (int) – Tipo de documento.

  • fecha (str) – Fecha de emisión del documento (AAAA-MM-DD).

Devuelve:

Contenido del PDF del documento.

Tipo del valor devuelto:

bytes

apigatewaycl.api_client.sii.f29 module

Módulo para el Formulario 29 (F29) del SII.

Para más información sobre la API, consulte la documentación completa del Formulario 29.

class apigatewaycl.api_client.sii.f29.F29(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para consultas del Formulario 29 (F29) del SII.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

certificado_solemne_pdf(folio: str) → bytes[fuente]

Descarga el PDF del Certificado Solemne del Formulario 29.

Parámetros:

folio (str) – Folio del certificado solemne.

Devuelve:

Contenido del PDF del certificado solemne.

Tipo del valor devuelto:

bytes

declaraciones_listado(periodo: str) → ApiResponse[list[dict[str, Any]]][fuente]

Listado de declaraciones del Formulario 29 por período.

Respuesta (ejemplo):

{
  "data": [
    {
      "periodo": 202501,
      "folio": "8107267196",
      "rut": "76192083-9",
      "fecha": "20/02/2025",
      "estado": "Vigente"
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:

periodo (str) – Período a consultar (AAAA o AAAA-MM).

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de declaraciones (período, folio, RUT, fecha y estado) del período.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

detalles_declaracion(folio: str) → ApiResponse[dict[str, Any]][fuente]

Detalles de una declaración del Formulario 29 por folio.

Respuesta (ejemplo):

{
  "data": {
    "folio": "3341234111",
    "periodo": 202104,
    "fecha_hora": "11/12/2025 21:16:33",
    "estado": "Vigente",
    "historial": [
      {
        "fecha": "26-05-2021 23:25:43",
        "descripcion": "Selección de opción de pago PEL."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

folio (str) – Folio del formulario 29.

Devuelve:

Respuesta de la API, con data y metadata. En data, folio, período, fecha/hora, estado e historial de la declaración.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

formulario_compacto_pdf(folio: str) → bytes[fuente]

Descarga el PDF del formulario compacto del Formulario 29.

Parámetros:

folio (str) – Folio del formulario compacto.

Devuelve:

Contenido del PDF del formulario compacto.

Tipo del valor devuelto:

bytes

obtener_estados() → ApiResponse[list[dict[str, Any]]][fuente]

Consulta integral de fiscalización del Formulario 29.

Para cada período, indica si fue declarado y su estado (sin observaciones, con observaciones, con observaciones justificadas, o sin declaración presentada).

Respuesta (ejemplo):

{
  "data": [
    {
      "periodo": 202304,
      "declarado": false,
      "estado": "Periodo sin declaración."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, listado de períodos con su estado de declaración.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

apigatewaycl.api_client.sii.indicadores module

Módulo para obtener indicadores desde el SII.

Para más información sobre la API, consulte la documentación completa de Indicadores.

class apigatewaycl.api_client.sii.indicadores.CorreccionMonetaria(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: ApiBase

Cliente para los factores de corrección monetaria del SII.

Recurso público — solo requiere el token de la plataforma, no credenciales de un contribuyente.

anual(anio: int) → ApiResponse[dict[str, Any]][fuente]

Factores de corrección monetaria de un año.

Respuesta (ejemplo):

{
  "data": {
    "2024": [
      {
        "1": 0.2,
        "2": 0.5,
        "3": 0.8,
        "4": 1.0,
        "5": 1.2,
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

anio (int) – Año a consultar.

Devuelve:

Respuesta de la API, con data y metadata. En data, los factores del año, con el año como clave y un factor por cada mes (“1” a “12”).

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.indicadores.ImpuestoSegundaCategoria(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: ApiBase

Cliente para el impuesto único de segunda categoría del SII.

Recurso público — solo requiere el token de la plataforma, no credenciales de un contribuyente.

anual(anio: int) → ApiResponse[dict[str, Any]][fuente]

Tramos del impuesto de segunda categoría de un año.

Respuesta (ejemplo):

{
  "data": {
    "2024": [
      {
        "desde": 0,
        "hasta": 866310,
        "tasa": 0,
        "rebaja": 0,
        "maximo": null
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

anio (int) – Año a consultar.

Devuelve:

Respuesta de la API, con data y metadata. En data, los tramos del año, con el año como clave. Cada tramo trae desde, hasta, tasa, rebaja y maximo.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

mensual(periodo: str) → ApiResponse[dict[str, Any]][fuente]

Tramos del impuesto de segunda categoría de un mes.

Respuesta (ejemplo):

{
  "data": {
    "202410": [
      {
        "desde": 0,
        "hasta": 866310,
        "tasa": 0,
        "rebaja": 0,
        "maximo": null
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

periodo (str) – Período en formato AAAAMM (año y mes).

Devuelve:

Respuesta de la API, con data y metadata. En data, los tramos del período, con el período (AAAAMM) como clave. Cada tramo trae desde, hasta, tasa, rebaja y maximo.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.indicadores.Uf(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: ApiBase

Cliente para los valores de UF (Unidad de Fomento) de la API.

Provee métodos para obtener valores de UF anuales, mensuales y diarios.

anual(anio: int) → ApiResponse[dict[str, Any]][fuente]

Obtiene los valores de la UF para un año específico.

Respuesta (ejemplo):

{
  "data": {
    "2026": {
      "1": {
        "1": 39731.79,
        "2": 39735.63,
        "3": 39739.47,
        "4": 39743.31,
        "5": 39747.15,
        "...": "..."
      },
      "2": {
        "1": 39703.5,
        "2": 39700.94,
        "3": 39698.37,
        "4": 39695.81,
        "5": 39693.25,
        "...": "..."
      },
      "3": {
        "1": 39796.31,
        "2": 39801.98,
        "3": 39807.65,
        "4": 39813.33,
        "5": 39819.01,
        "...": "..."
      }
    }
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

anio (int) – Año para el cual se quieren los valores de UF.

Devuelve:

Respuesta de la API, con data y metadata. En data, los valores de la UF del año, con el año como clave.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

diario(dia: str) → ApiResponse[dict[str, Any]][fuente]

Obtiene el valor de la UF para un día específico.

Respuesta (ejemplo):

{"data": {"20241015": 37987.65}, "metadata": {"timestamp": "..."}}
Parámetros:

dia (str) – Fecha en formato AAAA-MM-DD o AAAAMMDD.

Devuelve:

Respuesta de la API, con data y metadata. En data, el valor de la UF del día, con la fecha normalizada a AAAAMMDD como clave. Para una fecha sin valor publicado la clave viene presente pero en null.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

mensual(periodo: str) → ApiResponse[dict[str, Any]][fuente]

Obtiene los valores de la UF para un mes específico.

Respuesta (ejemplo):

{
  "data": {
    "202603": {
      "1": 39796.31,
      "2": 39801.98,
      "3": 39807.65,
      "4": 39813.33,
      "5": 39819.01,
      "6": 39824.68,
      "7": 39830.36,
      "8": 39836.04,
      "...": "..."
    }
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

periodo (str) – Período en formato AAAAMM (año y mes).

Devuelve:

Respuesta de la API, con data y metadata. En data, los valores de la UF del mes, con el período (AAAAMM) como clave.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.misii module

Módulo para interactuar con la sección MiSii de un contribuyente.

Para más información sobre la API, consulte la documentación completa de MiSii.

class apigatewaycl.api_client.sii.misii.Contribuyente(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para los endpoints de un Contribuyente de MiSii de la API.

Hereda de ApiBase y utiliza su funcionalidad para realizar solicitudes a la API.

datos() → ApiResponse[dict[str, Any]][fuente]

Obtiene los datos de MiSii del contribuyente autenticado en el SII.

Respuesta (ejemplo):

{
  "data": {
    "datos": {
      "codigoError": 0,
      "descripcionError": "OK",
      "sysdate": "string",
      "contribuyente": {
        "codigoError": 0,
        "descripcionError": "Contribuyente existe",
        "sysdate": "string",
        "rut": "1111111",
        "dv": "4",
        "...": "..."
      },
      "direcciones": [
        {
          "codigoError": 0,
          "descripcionError": "Contribuyente posee dirección",
          "sysdate": "string",
          "codigo": "123456789",
          "comunaCodigo": "43231",
          "...": "..."
        }
      ],
      "atributos": [
        {
          "rut": 1111111,
          "dv": "4",
          "atrCodigo": "NOTI",
          "descAtrCodigo": "CONTRIBUYENTE ES NOTIFICADO POR...",
          "fechaInicio": "01-05-2025",
          "...": "..."
        }
      ],
      "alertas": [{}]
    },
    "actividades_economicas": [
      {
        "codigoError": 0,
        "descripcionError": "Contribuyente posee actividade...",
        "sysdate": "string",
        "codigo": "1111111",
        "descripcion": "ACTIVIDAD ECONOMICA GLOSA",
        "...": "..."
      }
    ],
    "alertas": {
      "codigoError": 0,
      "descripcionError": "string",
      "sysdate": "string",
      "alertas": [{}]
    }
  },
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, datos del contribuyente.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.misii.Representados(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para los representados de un contribuyente en MiSii.

«Representados» es a quiénes puede representar el contribuyente autenticado (lo contrario de Representantes).

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

listado() → ApiResponse[dict[str, Any]][fuente]

Listado de contribuyentes que representa el usuario autenticado.

Respuesta (ejemplo):

{
  "data": {
    "representante": {
      "rut": 19550156,
      "dv": "4",
      "nombre": "NICOLAS BENJAMIN CONTRERAS BECERRA"
    },
    "representados": [],
    "permisos": []
  },
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, datos del representante, sus representados y permisos.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

representar(rut: str, permisos: str) → ApiResponse[dict[str, Any]][fuente]

Asigna qué contribuyente representar en las siguientes llamadas.

Respuesta (ejemplo):

{
  "data": {
    "representado": {
      "rut": 76192083,
      "dv": "9",
      "nombre": "EMPRESA SPA"
    }
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • rut (str) – RUT del contribuyente a representar.

  • permisos (str) – Códigos APPL de MiSII separados por coma (ej. “RPETC,MISII” — ver tabla de códigos en la spec).

Devuelve:

Respuesta de la API, con data y metadata. En data, datos del contribuyente representado.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.misii.Representantes(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para los representantes de un contribuyente en MiSii.

«Representantes» es quién puede actuar por el contribuyente autenticado (lo contrario de Representados).

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

listado() → ApiResponse[dict[str, Any]][fuente]

Listado de representantes del contribuyente autenticado.

Incluye también el listado de permisos que se pueden asignar.

Respuesta (ejemplo):

{
  "data": {
    "representado": {
      "rut": 12345678,
      "dv": "4",
      "nombre": "Contribuyente"
    },
    "representantes": [
      {"rut": 111111111, "dv": "4", "nombre": "Representante"}
    ],
    "permisos": [
      {
        "codigo": "MISII",
        "descripcion": "Acceso a MiSII",
        "nivel": "B"
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Devuelve:

Respuesta de la API, con data y metadata. En data, datos del representado, sus representantes y permisos.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.portal_mipyme module

Módulo para consultas al Portal MIPYME del SII.

Para más información sobre la API, consulte la documentación completa del Portal MIPYME.

class apigatewaycl.api_client.sii.portal_mipyme.Borradores(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: Dte

Cliente para documentos borradores del Portal Mipyme.

Un borrador es un DTE armado en el Portal MIPYME del SII, antes de convertirse en un documento emitido de verdad.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

documentos(emisor: str, filtros: dict[str, Any] | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Listado de documentos borradores del emisor.

Por defecto entrega todos los borradores, ordenados por fecha ascendente. Para paginar se indica NUM_PAG en filtros (100 borradores por página) y metadata.n_paginas dice cuántas páginas hay con los filtros usados.

Filtros disponibles: NUM_PAG, CODIGO (código del borrador), TPO_DOC (código de DTE), RUT_RECP (RUT del receptor, con o sin dígito verificador), RZN_SOC (razón social del receptor, o parte de ella), FEC_DESDE y FEC_HASTA (AAAA-MM-DD) y ORDEN (FecAsc o FecDesc).

Respuesta (ejemplo):

{
  "data": [
    {
      "ehdr_codigo": "4728198",
      "ptdc_codigo": "33",
      "ptdc_codigo_desc": "Factura Electronica",
      "ptes_estado": null,
      "efxp_fch_emis": "2026-09-23 18:49:38",
      "efxp_rzn_soc": "EMPRESA EMISORA SPA",
      "efxp_rut_recep": "76192083",
      "efxp_dv_recep": "9",
      "...": "..."
    }
  ],
  "metadata": {
    "timestamp": "...",
    "n_documentos": 1,
    "n_paginas": 1
  }
}
Parámetros:
  • emisor (str) – RUT del emisor de los documentos.

  • filtros (dict) – Filtros de búsqueda (opcional).

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de borradores con los campos del Portal MIPYME en minúsculas; el código del borrador es ehdr_codigo.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

eliminar(emisor: str, codigo: str) → ApiResponse[dict[str, Any]][fuente]

Elimina un documento borrador del Portal Mipyme.

Respuesta (ejemplo):

{
  "data": {
    "ehdr_codigo": "4728198",
    "ptdc_codigo": "33",
    "ptdc_codigo_desc": "Factura Electronica",
    "ptes_estado": null,
    "efxp_fch_emis": "2026-09-23 18:49:38",
    "efxp_rzn_soc": "EMPRESA EMISORA SPA",
    "efxp_rut_recep": "76192083",
    "efxp_dv_recep": "9",
    "...": "..."
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de los documentos.

  • codigo (str) – Código del borrador (del listado de documentos).

Devuelve:

Respuesta de la API, con data y metadata. En data, True si el borrador fue eliminado.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

emitir(dte: dict[str, Any]) → ApiResponse[dict[str, Any]][fuente]

Crea un documento borrador en el Portal Mipyme.

No emite un DTE real ante el SII — el borrador se confirma luego desde el propio Portal MIPYME.

Respuesta (ejemplo):

{
  "data": {
    "ehdr_codigo": "4728198",
    "ptdc_codigo": "33",
    "ptdc_codigo_desc": "Factura Electronica",
    "ptes_estado": null,
    "efxp_fch_emis": "2026-09-23 18:49:38",
    "efxp_rzn_soc": "EMPRESA EMISORA SPA",
    "efxp_rut_recep": "76192083",
    "efxp_dv_recep": "9",
    "...": "..."
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:

dte (dict) – Datos del DTE a armar como borrador.

Devuelve:

Respuesta de la API, con data y metadata. En data, el borrador creado.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.portal_mipyme.Contribuyentes(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: PortalMipyme

Cliente para los endpoints de contribuyentes del Portal Mipyme.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

info(contribuyente: str, emisor: str, dte: int = 33) → ApiResponse[dict[str, Any]][fuente]

Obtiene información de un contribuyente específico.

Respuesta (ejemplo):

{
  "data": {
    "rut": 76192083,
    "dv": "9",
    "razon_social": "API Gateway",
    "direcciones": [
      {
        "direccion": "Daniel Barros Grez 191",
        "comuna": "SANTA CRUZ",
        "ciudad": "SANTA CRUZ",
        "telefono": null
      }
    ],
    "actividades": [
      {
        "codigo": "619090",
        "glosa": "OTRAS ACTIVIDADES DE TELECOMUNICACIONES"
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • contribuyente (str) – RUT del contribuyente.

  • emisor (str) – RUT del emisor del DTE.

  • dte (int) – Tipo de DTE.

Devuelve:

Respuesta de la API, con data y metadata. En data, datos del contribuyente.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

class apigatewaycl.api_client.sii.portal_mipyme.Dte(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: PortalMipyme

Base para los clientes específicos de DTE del Portal Mipyme.

Incluye constantes para diferentes estados de DTE.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

DTE_TIPOS: ClassVar[dict[str, str]] = {'33': '33', '34': '34', '35': '35', '36': '36', '37': '37', '38': '38', '39': '39'}
ESTADO_ACEPTADO = 'RAC'
ESTADO_ACEPTADO_LEY_19983 = 'RAL'
ESTADO_BORRADOR = 'PRV'
ESTADO_CERTIFICADO_RECHAZADO = 'DCD'
ESTADO_DISCREPANCIAS = 'RAD'
ESTADO_EMISOR_INVALIDO = 'DEI'
ESTADO_EMITIDO = 'EMI'
ESTADO_FIRMA_RECHAZADA = 'DRF'
ESTADO_FIRMA_SIN_PERMISO = 'DPF'
ESTADO_FOLIO_INVALIDO = 'DFI'
ESTADO_INCOMPLETO = 'DIN'
ESTADO_INICIALIZADO = 'INI'
ESTADO_NO_RECIBIDO = 'RNR'
ESTADO_RECEPTOR_INVALIDO = 'DRI'
ESTADO_RECHAZADO_RECEPTOR = 'RRH'
ESTADO_RECIBIDO = 'RRC'
ESTADO_REPETIDO = 'DRR'
ESTADO_SIN_REPAROS = 'RSR'
get_codigo_dte(tipo: str) → str[fuente]

Obtiene el código correspondiente al tipo de DTE.

Parámetros:

tipo (str) – Tipo de DTE.

Devuelve:

Código del DTE.

Tipo del valor devuelto:

str

class apigatewaycl.api_client.sii.portal_mipyme.DteEmitidos(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: Dte

Cliente específico para gestionar DTE emitidos en el Portal Mipyme.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

documentos(emisor: str, filtros: dict[str, Any] | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Obtiene documentos de DTE emitidos por un emisor.

Respuesta (ejemplo):

{
  "data": [
    {
      "codigo": 12345678,
      "rut": 76192083,
      "dv": "9",
      "razon_social": "CLIENTE EJEMPLO",
      "dte": 33,
      "dte_glosa": "Factura Electrónica",
      "folio": 123,
      "fecha": "15/11/2024",
      "...": "..."
    }
  ],
  "metadata": {
    "timestamp": "...",
    "n_documentos": 1926,
    "n_paginas": 20
  }
}
Parámetros:
  • emisor (str) – RUT del emisor.

  • filtros (dict) – Filtros adicionales para la consulta.

Devuelve:

Respuesta de la API, con data y metadata. En data, documentos de DTE emitidos.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

pdf(emisor: str, codigo: str) → bytes[fuente]

Obtiene el PDF de un DTE emitido.

El documento se identifica por su codigo, que entrega el listado de documentos(); no por tipo de DTE y folio.

Parámetros:
  • emisor (str) – RUT del emisor.

  • codigo (str) – Código del DTE emitido.

Devuelve:

Contenido del PDF del DTE emitido.

Tipo del valor devuelto:

bytes

xml(emisor: str, dte: str, folio: str, fecha_emision: str) → bytes[fuente]

Obtiene el XML de un DTE emitido.

Parámetros:
  • emisor (str) – RUT del emisor.

  • dte (str) – Tipo de DTE.

  • folio (str) – Número de folio del DTE.

  • fecha_emision (str) – Fecha de emisión del documento (AAAA-MM-DD). Sin ella el Portal MIPYME no ubica el documento y la API no entrega el XML.

Devuelve:

Contenido del XML del DTE emitido, sin decodificar.

Tipo del valor devuelto:

bytes

class apigatewaycl.api_client.sii.portal_mipyme.DteRecibidos(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: Dte

Cliente para DTE recibidos en el Portal Mipyme.

Proporciona métodos para obtener documentos, PDF y XML de DTE recibidos.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

documentos(receptor: str, filtros: dict[str, Any] | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Obtiene documentos de DTE recibidos por un receptor.

Respuesta (ejemplo):

{
  "data": [
    {
      "codigo": 12345678,
      "rut": 76192083,
      "dv": "9",
      "razon_social": "CLIENTE EJEMPLO",
      "dte": 33,
      "dte_glosa": "Factura Electrónica",
      "folio": 123,
      "fecha": "15/11/2024",
      "...": "..."
    }
  ],
  "metadata": {
    "timestamp": "...",
    "n_documentos": 589,
    "n_paginas": 6
  }
}
Parámetros:
  • receptor (str) – RUT del receptor.

  • filtros (dict) – Filtros adicionales para la consulta.

Devuelve:

Respuesta de la API, con data y metadata. En data, documentos de DTE recibidos.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

pdf(receptor: str, codigo: str) → bytes[fuente]

Obtiene el PDF de un DTE recibido.

El documento se identifica por su codigo, que entrega el listado de documentos(); no por emisor, tipo de DTE y folio.

Parámetros:
  • receptor (str) – RUT del receptor.

  • codigo (str) – Código del DTE recibido.

Devuelve:

Contenido del PDF del DTE recibido.

Tipo del valor devuelto:

bytes

xml(receptor: str, emisor: str, dte: str, folio: str, fecha_emision: str) → bytes[fuente]

Obtiene el XML de un DTE recibido.

Parámetros:
  • receptor (str) – RUT del receptor.

  • emisor (str) – RUT del emisor.

  • dte (str) – Tipo de DTE.

  • folio (str) – Número de folio del DTE.

  • fecha_emision (str) – Fecha de emisión del documento (AAAA-MM-DD). Sin ella el Portal MIPYME no ubica el documento y la API no entrega el XML.

Devuelve:

Contenido del XML del DTE recibido, sin decodificar.

Tipo del valor devuelto:

bytes

class apigatewaycl.api_client.sii.portal_mipyme.PortalMipyme(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase, ABC

Base para los clientes específicos del Portal Mipyme.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

apigatewaycl.api_client.sii.rcv module

Módulo para interactuar con el Registro de Compra y Venta del SII.

Para más información sobre la API, consulte la documentación completa del RCV.

class apigatewaycl.api_client.sii.rcv.Rcv(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para el Registro de Compras y Ventas (RCV) de la API.

Proporciona métodos para obtener resúmenes y detalles de compras y ventas.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

compras_async_detalle(receptor: str, periodo: str, id_solicitud: str, dte: int = 0, estado: str = 'REGISTRO', certificacion: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Obtiene los detalles de las compras de un receptor en un periodo.

Respuesta (ejemplo):

{
  "data": [
    {
      "dte": 33,
      "tipo_transaccion": "Del Giro",
      "rut": "12345-0",
      "razon_social": "RAZON SOCIAL DE LA EMPRESA",
      "folio": "10518",
      "fecha": "2025-09-01",
      "fecha_recepcion": "2025-09-01 10:52:28",
      "fecha_acuse": "2025-09-01 13:39:33",
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor de las compras formato 12345678-9.

  • periodo (str) – Período de tiempo de las compras formato YYYYMM.

  • id_solicitud (str) – ID de la solicitud de envío de los detalles de las compras.

  • dte (int) – Tipo de DTE formato 0 para todos los tipos de DTE o el tipo de DTE.

  • estado (str) – Estado de las compras (“REGISTRO”, “PENDIENTE”, “NO_INCLUIR”, “RECLAMADO”).

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, detalles de las compras.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

compras_async_estado(receptor: str, periodo: str, id_solicitud: str, dte: int = 0, estado: str = 'REGISTRO', certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Obtiene el estado de la solicitud de los detalles de las compras.

Respuesta (ejemplo):

{
  "data": {
    "id": "1234567890",
    "uuid": "1234567890",
    "dte": 33,
    "estado": "REGISTRO",
    "creada": "2025-01-01 12:00:00",
    "terminada": "2025-01-01 12:00:00",
    "seccion": "COMPRA",
    "registros": 100
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor de las compras formato 12345678-9.

  • periodo (str) – Período de tiempo de las compras formato YYYYMM.

  • id_solicitud (str) – ID de la solicitud de envío de los detalles de las compras.

  • dte (int) – Tipo de DTE formato 0 para todos los tipos de DTE o el tipo de DTE.

  • estado (str) – Estado de las compras (“REGISTRO”, “PENDIENTE”, “NO_INCLUIR”, “RECLAMADO”).

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, estado de la solicitud.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

compras_async_solicitar(receptor: str, periodo: str, dte: int = 0, estado: str = 'REGISTRO', certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Solicita el envío de los detalles de las compras de un receptor.

Respuesta (ejemplo):

{
  "data": {
    "id": 1234,
    "uuid": "1234567890",
    "dte": 33,
    "estado": "REGISTRO",
    "creada": "2025-01-01 12:00:00",
    "terminada": "2025-01-01 12:00:00",
    "seccion": "COMPRA",
    "registros": 100
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor de las compras formato 12345678-9.

  • periodo (str) – Período de tiempo de las compras formato YYYYMM.

  • dte (int) – Tipo de DTE formato 0 para todos los tipos de DTE o el tipo de DTE.

  • estado (str) – Estado de las compras (“REGISTRO”, “PENDIENTE”, “NO_INCLUIR”, “RECLAMADO”).

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, solicitud de envío.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

compras_detalle(receptor: str, periodo: str, dte: int = 0, estado: str = 'REGISTRO', tipo: str | None = None, certificacion: str | None = None, formato: str | None = None) → ApiResponse[list[dict[str, Any]] | dict[str, Any]] | bytes[fuente]

Obtiene detalles de las compras para un receptor en un periodo.

Respuesta (ejemplo, dte=0 y estado “REGISTRO”):

{
  "data": [
    {
      "dte": "33",
      "tipo_transaccion": "Del Giro",
      "rut": "76192083-9",
      "razon_social": "EMPRESA PROVEEDORA SPA",
      "folio": "123",
      "fecha": "2026-08-23",
      "fecha_recepcion": "2026-08-23 11:37:20",
      "fecha_acuse": null,
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}

Respuesta (ejemplo, un dte específico):

{
  "data": {
    "respEstado": {
      "codRespuesta": 0,
      "msgeRespuesta": null,
      "codError": null
    },
    "data": [
      {
        "cambiarTipoTran": true,
        "dcvCodigo": 1234,
        "dcvEstadoContab": null,
        "descTipoTransaccion": "Del Giro",
        "detAnulado": null,
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor de las compras.

  • periodo (str) – Período de tiempo de las compras.

  • dte (int) – Tipo de DTE.

  • estado (str) – Estado de las compras (“REGISTRO”, “PENDIENTE”, “NO_INCLUIR”, “RECLAMADO”).

  • tipo (str) – Tipo de formato de respuesta (“rcv_csv” o “rcv”).

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json” o “csv”.

Devuelve:

Respuesta de la API, con data y metadata. En data, detalles de las compras: con dte=0 y estado “REGISTRO” una lista de documentos; en otro caso un dict con respEstado y, en data, la lista de documentos. Con formato “csv” se entrega el archivo crudo, sin decodificar.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]] | dict[str, Any]] | bytes

compras_resumen(receptor: str, periodo: str, estado: str = 'REGISTRO', certificacion: str | None = None, formato: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Obtiene un resumen de las compras de un receptor en un periodo.

Respuesta (ejemplo):

{
  "data": {
    "respEstado": {
      "codRespuesta": 0,
      "msgeRespuesta": null,
      "codError": null
    },
    "data": [
      {
        "dcvCodigo": 1234,
        "dcvNombreTipoDoc": "Factura Electrónica",
        "dcvOperacion": null,
        "dcvTipoIngresoDoc": "DET_ELE",
        "rsmnCodigo": 1234,
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor de las compras.

  • periodo (str) – Período de tiempo de las compras.

  • estado (str) – Estado de las compras (“REGISTRO”, “PENDIENTE”, “NO_INCLUIR”, “RECLAMADO”).

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json”.

Devuelve:

Respuesta de la API, con data y metadata. En data, resumen de compras.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

compras_set_tipo_transaccion(receptor: str, periodo: str, documento: dict[str, Any], certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Asigna el tipo de transacción y código de IVA a una compra del RCV.

Se envía un solo documento, que debe estar en el Registro de Compras del período; el resto mantiene su tipo de transacción. Lleva emisor, dte (33, 34, 43, 46, 56 o 61), folio, tipo_transaccion (1 a 7) y codigo_iva, que debe ser uno de los permitidos para ese tipo_transaccion.

Respuesta (ejemplo):

{
  "data": {
    "codigo": 0,
    "mensaje": "Carga de cambios de tipo de compra re...",
    "estado": "ok",
    "reparos": [],
    "errores": []
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • receptor (str) – RUT del receptor del documento.

  • periodo (str) – Período del registro (AAAAMM).

  • documento (dict) – Documento al que asignar el tipo de transacción.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, el resultado del SII, donde codigo 0 indica éxito. Si el SII rechaza el documento, la API responde con error.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

ventas_async_detalle(emisor: str, periodo: str, id_solicitud: str, dte: int = 0, certificacion: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Obtiene los detalles de las ventas de un emisor.

Respuesta (ejemplo):

{
  "data": [
    {
      "dte": 33,
      "tipo_transaccion": "Del Giro",
      "rut": "1234-0",
      "razon_social": "RAZON SOCIAL DE LA EMPRESA",
      "folio": "12414",
      "fecha": "2025-09-01",
      "fecha_vencimiento": null,
      "fecha_recepcion": "2025-09-01 08:01:43",
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las ventas formato 12345678-9.

  • periodo (str) – Período de tiempo de las ventas formato YYYYMM.

  • id_solicitud (str) – ID de la solicitud de envío de los detalles de las ventas de un emisor.

  • dte (int) – Tipo de DTE formato 0 para todos los tipos de DTE o el tipo de DTE.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, detalles de las ventas.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

ventas_async_estado(emisor: str, periodo: str, id_solicitud: str, dte: int = 0, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Obtiene el estado de la solicitud de los detalles de las ventas.

Respuesta (ejemplo):

{
  "data": {
    "id": "1234567890",
    "uuid": "1234567890",
    "dte": 33,
    "estado": "REGISTRO",
    "creada": "2025-01-01 12:00:00",
    "terminada": "2025-01-01 12:00:00",
    "seccion": "VENTA",
    "registros": 100
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las ventas formato 12345678-9.

  • periodo (str) – Período de tiempo de las ventas formato YYYYMM.

  • id_solicitud (str) – ID de la solicitud de envío de los detalles de las ventas de un emisor.

  • dte (int) – Tipo de DTE formato 0 para todos los tipos de DTE o el tipo de DTE.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, estado de la solicitud.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

ventas_async_solicitar(emisor: str, periodo: str, dte: int = 0, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Solicita el envío de los detalles de las ventas de un emisor.

Respuesta (ejemplo):

{
  "data": {
    "id": 1234,
    "uuid": "1234567890",
    "dte": 33,
    "estado": "REGISTRO",
    "creada": "2025-01-01 12:00:00",
    "terminada": "2025-01-01 12:00:00",
    "seccion": "VENTA",
    "registros": 100
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las ventas formato 12345678-9.

  • periodo (str) – Período de tiempo de las ventas formato YYYYMM.

  • dte (int) – Tipo de DTE formato 0 para todos los tipos de DTE o el tipo de DTE.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, solicitud de envío.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

ventas_detalle(emisor: str, periodo: str, dte: int = 0, tipo: str | None = None, certificacion: str | None = None, formato: str | None = None) → ApiResponse[list[dict[str, Any]] | dict[str, Any]] | bytes[fuente]

Obtiene detalles de las ventas para un emisor en un periodo.

Respuesta (ejemplo, dte=0):

{
  "data": [
    {
      "dte": "33",
      "tipo_transaccion": "Del Giro",
      "rut": "12345678-9",
      "razon_social": "CLIENTE EJEMPLO",
      "folio": "123",
      "fecha": "2026-09-20",
      "fecha_recepcion": "2026-09-20 22:47:31",
      "fecha_acuse": null,
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}

Respuesta (ejemplo, un dte específico):

{
  "data": {
    "respEstado": {
      "codRespuesta": 0,
      "msgeRespuesta": null,
      "codError": null
    },
    "data": [
      {
        "cambiarTipoTran": false,
        "dcvCodigo": 1234,
        "dcvEstadoContab": null,
        "descTipoTransaccion": "Del Giro",
        "detAnulado": null,
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las ventas.

  • periodo (str) – Período de tiempo de las ventas.

  • dte (int) – Tipo de DTE.

  • tipo (str) – Tipo de formato de respuesta (“rcv_csv” o “rcv”).

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json” o “csv”.

Devuelve:

Respuesta de la API, con data y metadata. En data, detalles de las ventas: con dte=0 una lista de documentos; con un dte específico un dict con respEstado y, en data, la lista de documentos. Con formato “csv” se entrega el archivo crudo, sin decodificar.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]] | dict[str, Any]] | bytes

ventas_resumen(emisor: str, periodo: str, certificacion: str | None = None, formato: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Obtiene un resumen de las ventas de un emisor en un periodo.

Respuesta (ejemplo):

{
  "data": {
    "respEstado": {
      "codRespuesta": 0,
      "msgeRespuesta": null,
      "codError": null
    },
    "data": [
      {
        "dcvCodigo": 1234,
        "dcvNombreTipoDoc": "Factura Electrónica",
        "dcvOperacion": null,
        "dcvTipoIngresoDoc": "DET_ELE",
        "rsmnCodigo": 1234,
        "...": "..."
      }
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de las ventas.

  • periodo (str) – Período de tiempo de las ventas.

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “json”.

Devuelve:

Respuesta de la API, con data y metadata. En data, respEstado con el estado de la consulta al SII y, en data, el resumen por tipo de documento.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

ventas_set_resumen(emisor: str, periodo: str, documentos: list[dict[str, Any]], certificacion: str | None = None, graba_con_reparos: bool | None = None) → ApiResponse[dict[str, Any]][fuente]

Asigna un resumen de documentos emitidos al registro de ventas.

Útil para agregar mensualmente el resumen de boletas emitidas. Cada elemento de documentos lleva det_tipo_doc, det_nro_doc, det_mnt_neto, det_mnt_iva, det_mnt_exe y det_mnt_total. Los comprobantes de pago electrónico (48) llevan además canalTransacc y, si corresponde, codRznModifica y txtRznModifica.

Respuesta (ejemplo):

{
  "data": {
    "contribuyente": "76192083-9",
    "periodo": 202608,
    "resumenes": [
      {"tipo_doc": 48, "canal": 0, "registros_modificados": 1}
    ]
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor de los documentos.

  • periodo (str) – Período de emisión de los documentos (AAAAMM).

  • documentos (list) – Resumen de documentos a asignar.

  • certificacion (str) – “0” producción, “1” certificación.

  • graba_con_reparos (bool) – Con False el SII rechaza el resumen si encuentra reparos (la API responde con error). Sin indicarlo se aplica el valor por defecto de la API (True): el resumen se graba aunque tenga reparos.

Devuelve:

Respuesta de la API, con data y metadata. En data, el contribuyente, el periodo y en resumenes cada resumen grabado (tipo de documento, canal de venta y registros modificados por el SII).

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.rtc module

Módulo para el Registro de Transferencia de Crédito (RTC) del SII.

Para más información sobre la API, consulte la documentación completa del RTC.

class apigatewaycl.api_client.sii.rtc.Cesiones(identificador: str, clave: str, **kwargs: str)[fuente]

Bases: ApiBase

Cliente para cesiones de DTE (factoring) del RTC de la API.

Parámetros:
  • identificador (str) – Identificador del contribuyente.

  • clave (str) – Clave del identificador.

  • kwargs – Argumentos adicionales.

certificado(emisor: str, dte: str, folio: str, fecha: str, certificacion: str | None = None) → bytes[fuente]

Certificado de cesión de un DTE, con cedente/cesionario/fecha.

El certificado es un documento, no datos: la API lo entrega en HTML tal cual lo emite el SII, sin data ni metadata.

Parámetros:
  • emisor (str) – RUT del emisor del documento.

  • dte (str) – Código del tipo de documento.

  • folio (str) – Folio del documento.

  • fecha (str) – Fecha de la cesión (AAAA-MM-DD), no la de emisión del documento. Es el campo FCH_CESION del listado de cesiones que entrega documentos().

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Certificado de cesión en HTML, sin decodificar.

Tipo del valor devuelto:

bytes

documentos(desde: str, hasta: str, consulta: str, certificacion: str | None = None, formato: str | None = None) → ApiResponse[list[dict[str, Any]]] | bytes[fuente]

Listado de documentos cedidos en un período (máximo 1 mes).

Requiere autenticación de un contribuyente relacionado con la cesión (deudor, cedente o cesionario) o su representante.

Respuesta (ejemplo):

{
  "data": [
    {
      "CEDENTE": "76192083-9",
      "CESIONARIO": "2-7",
      "DEUDOR": "1-9",
      "ESTADO_CESION": "Cesion Vigente",
      "FCH_CESION": "2019-07-06 19:56",
      "FCH_EMIS_DTE": "2019-07-01",
      "FCH_VENCIMIENTO": "2019-07-01",
      "FOLIO_DOC": "123",
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • desde (str) – Fecha de inicio (AAAA-MM-DD).

  • hasta (str) – Fecha de fin, máximo 30 días desde desde (AAAA-MM-DD).

  • consulta (str) – “0” deudor, “1” cedente, “2” cesionario.

  • certificacion (str) – “0” producción, “1” certificación.

  • formato (str) – “xml”, “csv” o “txt” — de no indicarse, la respuesta es JSON.

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de cesiones del período. Con formato “xml”, “csv” o “txt” se entrega el archivo crudo, sin decodificar.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]] | bytes

estado(emisor: str, dte: str, folio: str, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Estado de cesión de un DTE (si está o no cedido, tenedor vigente).

Respuesta (ejemplo):

{
  "data": {
    "cedido": true,
    "clave_acceso": "",
    "declaracion_jurada": "Archivo Electrónico de Cesión in...",
    "fecha_ultima_anotacion": "2019-07-06 19:56:58",
    "tenedor_vigente": "1-9"
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • emisor (str) – RUT del emisor del documento.

  • dte (str) – Código del tipo de documento.

  • folio (str) – Folio del documento.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, estado de la cesión (y detalle, si hay tenedor vigente).

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

estado_envio(track_id: str, certificacion: str | None = None) → ApiResponse[dict[str, Any]][fuente]

Estado de envío de una cesión.

Respuesta (ejemplo):

{
  "data": {
    "estado": "Anotacion de Cesion Aceptada, Envio A...",
    "track_id": 75312822
  },
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • track_id (str) – ID de la cesión.

  • certificacion (str) – “0” producción, “1” certificación.

Devuelve:

Respuesta de la API, con data y metadata. En data, estado del envío y track id.

Tipo del valor devuelto:

ApiResponse[dict[str, Any]]

apigatewaycl.api_client.sii.vehiculos module

Módulo para tasación fiscal de vehículos del SII.

Para más información sobre la API, consulte la documentación completa de Vehículos.

class apigatewaycl.api_client.sii.vehiculos.Vehiculos(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: ApiBase

Cliente para tasación fiscal de vehículos de la API.

Recurso público — solo requiere el token de la plataforma, no credenciales de un contribuyente (identificador/clave).

buscar(anio: int | None = None, anio_tasa: int | None = None, categoria: int | None = None, marca: int | None = None, modelo: str | None = None, tipo: int | None = None, version: str | None = None) → ApiResponse[list[dict[str, Any]]][fuente]

Busca la tasación fiscal de un vehículo y su permiso de circulación.

categoria y tipo son obligatorios: sin ellos la API responde Debe especificar la categoría del vehículo. o Debe especificar el tipo de vehículo.. Los IDs válidos se obtienen con categorias_tipos() y categorias_marcas(). Agregar marca y anio acota bastante el resultado.

Respuesta (ejemplo):

{
  "data": [
    {
      "anio": "2017",
      "anioTasa": "2020",
      "cara": 5,
      "cateId": "6",
      "cateName": "Liviano",
      "code": "SU2290241",
      "equi": 0,
      "haveFeatures": false,
      "...": "..."
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:
  • anio (int) – Año del vehículo.

  • anio_tasa (int) – Año fiscal de la búsqueda (por defecto el año actual).

  • categoria (int) – ID de categoría, obligatorio (1 = liviano).

  • marca (int) – ID de la marca (ej. 229 = SUZUKI).

  • modelo (str) – Modelo del vehículo.

  • tipo (int) – ID del tipo de vehículo, obligatorio (6 = SUV).

  • version (str) – Versión del vehículo.

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de vehículos que calzan con la búsqueda.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

categorias_caracteristicas(categoria: str) → ApiResponse[list[dict[str, Any]]][fuente]

Características disponibles para una categoría de vehículo.

Respuesta (ejemplo):

{
  "data": [
    {
      "id": 1,
      "name": "Combustible",
      "data": [{"id": "2", "name": "Bencina"}]
    }
  ],
  "metadata": {"timestamp": "..."}
}
Parámetros:

categoria (str) – ID de categoría (“1” livianos, “2” pesados, “3” motos).

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de características, con sus valores posibles.

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

categorias_marcas(categoria: str) → ApiResponse[list[dict[str, Any]]][fuente]

Marcas de vehículos disponibles para una categoría.

Respuesta (ejemplo):

{
  "data": [{"id": "1", "name": "ACADIAN"}],
  "metadata": {"timestamp": "..."}
}
Parámetros:

categoria (str) – ID de categoría (“1” livianos, “2” pesados, “3” motos).

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de marcas (id, nombre).

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

categorias_tipos(categoria: str) → ApiResponse[list[dict[str, Any]]][fuente]

Tipos de vehículos disponibles para una categoría.

Respuesta (ejemplo):

{
  "data": [{"id": 37, "name": "Cabriolet"}],
  "metadata": {"timestamp": "..."}
}
Parámetros:

categoria (str) – ID de categoría (“1” livianos, “2” pesados, “3” motos).

Devuelve:

Respuesta de la API, con data y metadata. En data, listado de tipos (id, nombre).

Tipo del valor devuelto:

ApiResponse[list[dict[str, Any]]]

Module contents

Clientes específicos por servicio del SII (BHE, BTE, DTE, RCV, etc.).