Skip to main content

radiankore

Librería Python de Deikore SAS para consultar servicios de DIAN y eventos RADIAN con certificado digital PFX/P12. Python >=3.13, API síncrona y licencia MIT.

Estado
Documentación Read the Docs
Calidad y pruebas CI
Paquete PyPI Python MIT

Instalación

pip install radiankore
# Con uv:
uv add radiankore

Si necesitas compilar las dependencias de firma, consulta la guía de instalación.

Métodos disponibles

Método Operación DIAN Resultado
get_numbering_range(account_code=..., account_code_t=..., software_code=...) GetNumberingRange Rangos de numeración autorizados y clave técnica
get_exchange_emails() GetExchangeEmails Registros del CSV del directorio de correos
get_status(track_id) GetStatus Estado de validación y payloads decodificados
get_invoice_events(cufe) GetStatusEvent Eventos asociados a una factura
get_acquirer(identification_type=..., identification_number=...) GetAcquirer Nombre y correo del adquiriente
get_document_info(uuid) GetDocumentInfo Información, estados, eventos y notas del documento
get_reference_notes(track_id) GetReferenceNotes Notas referenciadas y motivos por línea
get_xml_by_document_key(document_key) GetXmlByDocumentKey XML original del documento como bytes

No genera facturas ni envía eventos. Los resultados utilizan dataclasses inmutables y campos opcionales cuando corresponda.

Consultar eventos

from radiankore import DianClient, Environment

client = DianClient(
    certificate_path="/ruta/segura/certificado.pfx",
    password="password-de-ejemplo",
    environment=Environment.PRODUCTION,
)

result = client.get_invoice_events("CUFE-DE-LA-FACTURA")
for event in result.events:
    print(event.id, event.code, event.description, event.date, event.time)

Producción es el ambiente predeterminado; usa Environment.HABILITATION para habilitación. Cada consulta cierra sus conexiones automáticamente y puedes reutilizar el cliente sin volver a cargar el certificado.

Otras consultas

from pathlib import Path

from radiankore.catalogs import IdentificationType

emails = client.get_exchange_emails()
if emails is not None and emails.csv is not None:
    for row in emails.csv:
        print(row)

status = client.get_status("CUFE-O-TRACK-ID")
if status is not None:
    print(status.is_valid, status.status_code, status.messages)

acquirer = client.get_acquirer(
    identification_type=IdentificationType.NIT,
    identification_number="000123456",
)
if acquirer is not None:
    print(acquirer.name, acquirer.email)

document = client.get_document_info("UUID-DEL-DOCUMENTO")
if document is not None:
    for item in document.documents:
        if item is not None:
            print(item.uuid, item.totals)

notes = client.get_reference_notes("CUFE-O-TRACK-ID")
if notes is not None:
    for note in notes.notes:
        print(note.code, note.description)

xml = client.get_xml_by_document_key("CLAVE-DEL-DOCUMENTO")
if xml is not None and xml.document_xml is not None:
    Path("documento.xml").write_bytes(xml.document_xml)

La documentación completa incluye contratos, modelos, errores y ejemplos por operación. Para contribuir, consulta CONTRIBUTING.

Metadata

Release files for radiankore 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for radiankore 0.4.0
File Size Uploaded Provenance
radiankore-0.4.0.tar.gz 66.4 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for radiankore 0.4.0
File Interpreter ABI Platform
radiankore-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 110.0 kB

Release files / radiankore-0.4.0.tar.gz

Download URL radiankore-0.4.0.tar.gz
Size 66.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4f5c6f008c6ae8ff4aad240cb04f1b933f478dd2d57ea82b52599bfc16e97ae8
BLAKE2b-256 checksum
How to use checksums
bcc5d7504e43cf4ab4b9af92a0326c2d17e1046358bfb29aa96e03307e251de8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / radiankore-0.4.0-py3-none-any.whl

Download URL radiankore-0.4.0-py3-none-any.whl
Size 43.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cdc5464d06dc1d5bfcc7f35e110e73152d1a9bbcdb9fe5e25d3bda8d344d2c65
BLAKE2b-256 checksum
How to use checksums
cb8782cfab1c8d413e2ee22d45e8984693d8dbeee2db2c2bd1a0bb2b1c774589
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Security for radiankore 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for radiankore-0.4.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page