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: XmlPayloadMixin

Libro 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: object

Datos 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: object

Construye 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: object

Agrupa los servicios de billing.book.

class libredte_lib_sdk.billing.book.BookLoaderService(client: ApiClient)

Bases: object

Carga 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: object

Valida 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.