Generar PDF a partir del XML del DTE
Generar PDF de un DTE a partir de su XML firmado en base64.
/api/v1/vendemas/dte/documentos/pdfv1 · ESTABLEGenerar PDF de un DTE a partir de su XML firmado en base64.
Parsea el XML DTE, extrae los datos del documento y construye un PDF con reportlab siguiendo el formato tributario chileno estandar. Operacion puramente local — no requiere llamadas al SII.
Autenticacion requerida: API token en header X-API-Token con scope vendemas:read.
Quota: Consume 1 consulta | Peso: 2x
Parametros de consulta
| Parametro | Tipo | Default | Descripcion |
|---|---|---|---|
formato | string | base64 | base64 (JSON con metadata) o pdf (passthrough binario) |
Body (JSON)
| Campo | Tipo | Requerido | Default | Descripcion |
|---|---|---|---|---|
xml | string | Si | — | XML del DTE codificado en base64 |
cedible | bool | No | false | Incluir copia cedible |
copias_cedibles | int | No | 1 | Numero de copias cedibles |
copias_tributarias | int | No | 1 | Numero de copias tributarias |
layout | string | No | general | Layout papel: general, carta, oficio, continuo |
webVerificacion | bool | No | false | Incluir URL verificacion SII |
footer | object | No | null | Footer personalizado {left, right} |
resolucion | object | No | null | Resolucion SII {numero, anio} para leyenda del timbre |
Respuesta - formato base64 (200)
Respuesta - formato pdf (200)
PDF binario con Content-Type: application/pdf y Content-Disposition: attachment.
Errores especificos
| Codigo | error_code | Causa | Resolucion |
|---|---|---|---|
| 400 | VALIDATION_ERROR | xml faltante o mal formado (base64 invalido) | Enviar XML firmado valido |
| 401 | HTTP_401 | API token ausente o invalido | Enviar X-API-Token valido |
| 422 | VALIDATION_ERROR | Body con formato invalido | Revisar errors[] |
| 429 | SII_RATE_LIMIT / QUOTA_EXCEEDED | Rate limit | Respetar Retry-After |
Notas
- El XML debe estar firmado (EnvioDTE o DTE individual).
- Nota breaking change: el campo body
formatose renombro alayoutpara liberar el nombre como query param.
El body acepta los siguientes campos::
Args:
body: Request body con xml (base64) y opciones de renderizacion.
formato: Query param para elegir el transporte de la respuesta
(:class:DownloadFormato.BASE64 default o
:class:DownloadFormato.RAW).
Returns:
:class:FileBase64Response si formato=base64, o
:class:Response binario con Content-Type: application/pdf
si formato=raw.
Raises: ValueError: Si falta el campo xml o el base64 / XML son invalidos.