Integración Python con AppDTE API

Firma, timbre y envío de DTE

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

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

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

Repositorio GitLab

El SDK Python está disponible en nuestro repositorio oficial:

Ir al repositorio GitLab

Contacto