libredte_lib_sdk.billing.book package
Submodules
Module contents
Componente billing.book: libros tributarios (ventas/compras/RVD/etc.).
- class libredte_lib_sdk.billing.book.Book(datos: dict[str, Any], xml_base64: str)
Bases:
XmlPayloadMixinLibro tributario construido (book.builder::build).
Genérico entre los 5 tipos de libro (tipo del bag de entrada) — la clave raíz de datos varía según cuál se haya construido (ej. libro_ventas/libro_compras traen {“LibroCompraVenta”: {…}}), por eso no se tipa más allá de dict. xml_base64 es el XML completo, listo para encadenar a BookValidatorService.
- datos: dict[str, Any]
- classmethod from_api(data: dict[str, Any]) Book
Construye un Book desde el data que devuelve la API.
- xml_base64: str
- class libredte_lib_sdk.billing.book.BookBag(datos: dict[str, Any] | None, book_type: dict[str, Any], auth: dict[str, Any] | None, caratula: dict[str, Any], detalle: list[dict[str, Any]], raw: dict[str, Any])
Bases:
objectDatos de un libro tributario normalizados por book.loader::load.
Esta operación solo normaliza caratula/detalle a partir de los datos de entrada — no construye el libro ni genera su documento firmado (eso lo hace BookBuilderService.build), por lo que datos (el libro ya construido) siempre viene None acá, sin importar los datos de entrada recibidos. auth (la autorización del emisor del libro) solo viene poblada si esa autorización se incluyó junto con los datos del emisor en la solicitud; si no, viene None.
- auth: dict[str, Any] | None
- book_type: dict[str, Any]
- caratula: dict[str, Any]
- datos: dict[str, Any] | None
- detalle: list[dict[str, Any]]
- classmethod from_api(data: dict[str, Any]) BookBag
Construye un BookBag desde el data que devuelve la API.
- raw: dict[str, Any]
- class libredte_lib_sdk.billing.book.BookBuilderService(client: ApiClient)
Bases:
objectConstruye un libro tributario (billing.book.builder).
- build(bag: dict[str, Any], *, certificate: Certificate) Book
Construye el libro descrito por bag.
bag trae tipo (“libro_ventas”, “libro_compras”, “libro_boletas”, “libro_guias”, “resumen_ventas_diarias”, sin tipar como enum cerrado), caratula, detalle y emisor, tal cual el formato SII.
- class libredte_lib_sdk.billing.book.BookComponent(client: ApiClient)
Bases:
objectAgrupa los servicios de billing.book.
- class libredte_lib_sdk.billing.book.BookLoaderService(client: ApiClient)
Bases:
objectCarga y normaliza los datos de un libro (billing.book.loader).
- load(bag: dict[str, Any], *, certificate: Certificate) BookBag
Normaliza caratula/detalle de bag en un BookBag.
bag trae tipo/caratula/detalle/emisor, tal cual el formato SII. BookBag.datos siempre viene None (no construye el libro); BookBag.auth viene poblado solo si bag[“emisor”] incluye autorizacion_dte.
- class libredte_lib_sdk.billing.book.BookValidatorService(client: ApiClient)
Bases:
objectValida un libro tributario ya construido (billing.book.validator).
source es el XML del libro en base64. Devuelve un dict/list vacío en caso de éxito.
- validate_schema(source: str) dict[str, Any]
Valida source contra el esquema XSD del libro.
- validate_signature(source: str) dict[str, Any]
Valida la firma electrónica del libro.
El libro tiene una sola firma — devuelve un único dict, no una lista.