libredte_lib_sdk.billing.trading_parties package
Submodules
- libredte_lib_sdk.billing.trading_parties.mandatario_manager module
- libredte_lib_sdk.billing.trading_parties.models module
CertificateCertificate.certificateCertificate.chainCertificate.emailCertificate.expiration_daysCertificate.exponentCertificate.from_api()Certificate.is_activeCertificate.issuerCertificate.modulusCertificate.nombreCertificate.private_keyCertificate.rawCertificate.rutCertificate.to_payload()Certificate.total_daysCertificate.valid_fromCertificate.valid_until
Mandatario
Module contents
Componente billing.trading_parties: partes comerciales de un DTE.
- class libredte_lib_sdk.billing.trading_parties.Certificate(certificate: str, private_key: str, rut: str | None = None, nombre: str | None = None, email: str | None = None, valid_from: datetime | None = None, valid_until: datetime | None = None, total_days: int | None = None, expiration_days: int | None = None, is_active: bool | None = None, issuer: str | None = None, modulus: str | None = None, exponent: str | None = None, chain: list[Any] | None = None, raw: dict[str, Any] | None = None)
Bases:
objectCertificado digital (firma electrónica) de un mandatario/emisor.
certificate/private_key son los únicos campos obligatorios — lo único que la API necesita cuando un Certificate se usa como entrada (to_payload(), para build_signed(), dispatcher.create(), sii_dte.send(), etc.). El resto queda poblado cuando el Certificate viene de la API (create_fake_certificate(), system.certificate.loader::load()).
certificate/private_key van siempre en claro (PEM sin proteger): esta operación no acepta un PFX ni una clave protegida con contraseña. Si el certificado del emisor viene de un archivo .pfx, system.certificate.loader::load hace esa extracción.
- certificate: str
- chain: list[Any] | None
- email: str | None
- expiration_days: int | None
- exponent: str | None
- classmethod from_api(data: dict[str, Any]) Certificate
Construye un Certificate desde el data que devuelve la API.
Cubre tanto createFakeCertificate como system.certificate .loader::load — ambas entregan el mismo shape completo (cert/ pkey + metadatos). Los campos ausentes quedan en None.
- is_active: bool | None
- issuer: str | None
- modulus: str | None
- nombre: str | None
- private_key: str
- raw: dict[str, Any] | None
- rut: str | None
- to_payload() dict[str, Any]
Payload esperado por la API para un certificado.
- total_days: int | None
- valid_from: datetime | None
- valid_until: datetime | None
- class libredte_lib_sdk.billing.trading_parties.Mandatario(rut: str, nombre: str, email: str | None = None)
Bases:
objectMandatario (representante) dueño de un certificado digital.
- email: str | None
- classmethod from_api(data: dict[str, Any]) Mandatario
Construye un Mandatario desde el data que devuelve la API.
- nombre: str
- rut: str
- to_payload() dict[str, Any]
Payload esperado por la API para un mandatario.
- class libredte_lib_sdk.billing.trading_parties.MandatarioManagerService(client: ApiClient)
Bases:
objectGestión del mandatario (representante) dueño de un certificado.
create_fake_certificate() genera un certificado ficticio para pruebas/desarrollo; create_from_certificate() hace el camino inverso, extrayendo el mandatario (RUT/nombre/correo) desde un certificado real ya cargado (ver system.certificate.loader::load).
- create_fake_certificate(mandatario: Mandatario) Certificate
Genera un certificado digital ficticio para mandatario.
Únicamente para pruebas/desarrollo: el certificado resultante es autofirmado por una CA de prueba de LibreDTE, no sirve para autenticar de verdad ante el SII. El Certificate resultante ya viene con el RUT/nombre/correo/vigencia poblados.
- create_from_certificate(certificate: Certificate) Mandatario
Extrae el mandatario dueño de certificate (RUT/nombre/correo).