libredte_lib_sdk.billing.document.dispatcher module

Servicio para billing.document.dispatcher.

class libredte_lib_sdk.billing.document.dispatcher.DocumentDispatcherService(client: ApiClient)

Bases: object

Arma y valida el sobre EnvioDTE (billing.document.dispatcher).

create(bag: DocumentBag) → DocumentEnvelope

Envuelve y firma un documento ya timbrado en un sobre EnvioDTE.

bag es el DocumentBag ya timbrado y firmado que devuelve DocumentBuilderService.build_signed() — trae certificate/ emisor incluidos, no hace falta pasarlos aparte. El sobre resultante es lo que se envía al SII (SiiDteService.send).

create_many(bags: Sequence[DocumentBag]) → DocumentEnvelope

Envuelve y firma 2+ documentos ya timbrados en un sobre EnvioDTE.

Igual que create(), pero para un sobre que agrupa más de un documento — cada DocumentBag trae su propio certificate/ emisor. El sobre resultante queda firmado con el certificado del PRIMER DocumentBag (el sobre en sí también se firma, no solo cada documento).

load_xml(xml_base64: str) → DocumentEnvelope

Carga un sobre EnvioDTE ya existente desde su XML (base64).

El DocumentEnvelope resultante trae en documents una bolsa por cada documento tributario que el sobre agrupaba — uno o más — y en caratula los datos de la carátula ya presente en ese XML.

validate(source: str) → dict[str, Any]

Valida un sobre EnvioDTE ya construido (source, XML en base64).

Devuelve el XML del sobre, como dict (representación parseada, ej. EnvioDTE.SetDTE.Caratula…).

validate_schema(source: str) → dict[str, Any]

Valida source contra el esquema XSD del sobre EnvioDTE.

validate_signature(source: str) → list[dict[str, Any]]

Valida cada firma electrónica encontrada en el sobre.

Un sobre trae más de una firma (la del DTE y la del propio EnvioDTE) — devuelve una lista, un ítem por firma. Cada ítem es un dict vacío en caso de éxito.