AppDTE SDK Python
SDK oficial en Python para integrar sistemas y aplicaciones con la API de firma, timbre y envío de documentos tributarios electrónicos (DTE) de AppDTE.
Compatibilidad
- Python 3.8 o superior
- Sistemas operativos: Linux / macOS / Windows
- Frameworks compatibles: FastAPI, Flask, Django, Tkinter, PyQt y scripts CLI
Instalación
Instala las dependencias necesarias:
pip install requests
Ejemplo rápido
Crear DTE:
import requests
import json
import base64
# URL del servicio REST
url = "https://apicert.appdte.cl/api/creadte" # reemplaza con tu URL
# JSON que vas a enviar
data = { "DTE": {
"Documento": {
"Encabezado": {
"IdDoc": {
"TipoDTE": 33,
"Folio": 95,
"FchEmis": "2025-11-12"
},
"Emisor": {
"RUTEmisor": "76040308-3",
"RznSocEmisor": "EGGA INFORMATICA EIRL",
"GiroEmisor": "SERVICIOS INFORMATICOS",
"CdgSIISucur": 1,
"DirOrigen": "RAFAEL CASANOVA 297",
"CmnaOrigen": "SANTA CRUZ",
"CiudadOrigen": "SANTA CRUZ",
"Acteco":"620200"
},
"Receptor": {
"RUTRecep": "9375855-2",
"RznSocRecep": "LUZMIRA CESPEDES NAVARRO",
"DirRecep": "ADRIANO DIAZ 560",
"CmnaRecep": "Santa Cruz",
"CiudadRecep": "Santa Cruz"
},
"Totales": {
"MntNeto": "1765",
"TasaIVA":19,
"IVA": "335",
"MntTotal": 2100
}
},
"Detalle": [
{
"NroLinDet": 1,
"CdgItem": {
"TpoCodigo": "INT",
"VlrCodigo": "01001"
},
"NmbItem": "PAN CORRIENTE",
"QtyItem": 1,
"PrcItem": 1765,
"MontoItem": 1765
}
]
}
}
}
# Cabeceras HTTP
headers = {
"Content-Type": "application/json"
}
# Enviar POST
response = requests.post(url, headers=headers, data=json.dumps(data))
# Revisar que la respuesta sea exitosa
if response.status_code == 200:
respuesta_json = response.json()
xml_base64 = respuesta_json.get("xmlResultado")
if xml_base64:
# Decodificar base64
xml_bytes = base64.b64decode(xml_base64)
# Guardar en archivo
with open("resultado.xml", "wb") as f:
f.write(xml_bytes)
print("Archivo 'resultado.xml' guardado correctamente.")
else:
print("No se encontró 'xmlResultado' en la respuesta.")
else:
print(f"Error al llamar al servicio: {response.status_code}")
print(response.text)
Características del SDK
- Manejo automático de Base64
- Compatibilidad con XML firmado y no firmado
- Implementación simple y portable
- Permite uso en backend, desktop o scripts
Descripción de los archivo del SDK
creadte.py: Crea el DTE en formato XML a partir de un Json enviado como parametro.
timbredte.py: Se encarga de timbrar el XML del DTE con la llave CAF, entregada por el SII.
firmadte.py:Firma el XML del DTE con el certificado digital en formato PFX.
creaenviodte.py:Crea el EnvioDTE y adjunta el DTE timbrado y firmado.
firmaenviodte.py:Firma el EnvioDTE con certificado digital.
uploaddte.py:Envía el DTE al Serrvicio de Impuestos Internos (SII)
Buenas prácticas
- Ejecutar pruebas con ejemplos antes de producción
- Utilizar virtualenv para aislar dependencias
- Manejar los certificados fuera del repositorio
Repositorio GitLab
El SDK Python está disponible en nuestro repositorio oficial:
Ir al repositorio GitLabContacto
- Correo: contacto@egga.cl
- WhatsApp: +56 9 7588 3420