libredte_lib_sdk.billing.identifier package
Submodules
Module contents
Componente billing.identifier: folios de documentos tributarios.
- class libredte_lib_sdk.billing.identifier.Caf(id: str, emisor: dict[str, str], tipo_documento: int, folio_desde: int, folio_hasta: int, cantidad_folios: int, fecha_autorizacion: str, fecha_vencimiento: str | None, meses_autorizacion: float, vigente: bool, vence: bool, idk: int, ambiente: SiiEnvironment | None, certificacion: int | None, public_key: str, private_key: str, xml_base64: str, raw: dict[str, Any])
Bases:
XmlPayloadMixinCAF (Código de Autorización de Folios) de un emisor.
Expone todos los campos que devuelve la API — es el estado real del CAF al momento de la consulta (vigente/meses_autorizacion dependen de la fecha en que se pidió, no son un valor fijo). .raw igual se conserva con el dict completo, por si la API agrega algo nuevo que este DTO todavía no tipa.
- ambiente: SiiEnvironment | None
- cantidad_folios: int
- certificacion: int | None
- emisor: dict[str, str]
- fecha_autorizacion: str
- fecha_vencimiento: str | None
- folio_desde: int
- folio_hasta: int
- id: str
- idk: int
- meses_autorizacion: float
- private_key: str
- public_key: str
- raw: dict[str, Any]
- tipo_documento: int
- vence: bool
- vigente: bool
- xml_base64: str
- class libredte_lib_sdk.billing.identifier.CafFakerService(client: ApiClient)
Bases:
objectGenera CAF ficticios (billing.identifier.caf_faker::create).
Solo para pruebas/desarrollo: el CAF resultante no está autorizado de verdad por el SII, pero permite ejercitar el timbrado/firma de un documento sin depender de un folio real.
- create(emisor: dict[str, Any], *, codigo_documento: int, folio_desde: int = 1, folio_hasta: int | None = None) Caf
Genera un CAF ficticio para emisor y codigo_documento.
emisor es un dict con rut/razon_social, tal como lo espera la API. folio_hasta por defecto cubre solo folio_desde (un único folio), igual que hace la API.
- class libredte_lib_sdk.billing.identifier.CafLoaderService(client: ApiClient)
Bases:
objectCarga un CAF real (billing.identifier.caf_loader::load).
Carga el XML de un CAF real (el que el SII le entrega al emisor) y lo entrega como Caf, con su folio/vigencia ya resueltos.
- class libredte_lib_sdk.billing.identifier.CafValidatorService(client: ApiClient)
Bases:
objectValida un CAF (billing.identifier.caf_validator::validate).
Valida la firma y las llaves públicas/privadas asociadas al CAF.
- validate(caf_xml_base64: str) Caf
Valida el CAF cuyo XML (en base64) es caf_xml_base64.
La API espera el mismo XML en base64 que CafLoaderService.load (el parámetro de la operación se llama caf, no xml, pero es el mismo dato). Devuelve el Caf ya validado si es válido; levanta LibreDteApiError si no lo es.