Generar XML firmado de un DTE
Generar XML firmado de un Documento Tributario Electronico (DTE).
/api/v1/vendemas/dte/documentos/generarv1 · ESTABLEGenerar XML firmado de un Documento Tributario Electronico (DTE).
Genera XML completo segun esquema SII con firma digital RSA-SHA1, a
partir del CAF + datos del DTE + certificado digital. Opcionalmente
envia el XML al SII y retorna track_id.
Autenticacion requerida: API token en header X-API-Token con scope vendemas:write
- certificado digital en
auth.cert(PFX o PEM).
Quota: Consume 1 consulta | Peso: 5x (operacion critica si enviar_sii=1)
Tipos de DTE soportados
| Codigo | Documento |
|---|---|
| 33 / 34 | Factura Electronica / Factura Exenta |
| 39 / 41 | Boleta Electronica / Boleta Exenta |
| 43 | Liquidacion Factura Electronica |
| 52 | Guia de Despacho Electronica |
| 56 / 61 | Nota de Debito / Nota de Credito |
| 110 / 111 / 112 | Factura / Nota Debito / Nota Credito de Exportacion |
Parametros de consulta
| Parametro | Tipo | Default | Descripcion |
|---|---|---|---|
normalizar | string | 1 | 1 calcula valores derivados; 0 usa valores tal cual |
formato | string | json | json, xml, yaml, JSONString, Acepta.{Normal,Boleta}, FacturacionCL.XML |
enviar_sii | string | 0 | 1 envia al SII tras generar |
gzip | string | 0 | 1 comprime el envio al SII |
retry | string | 1 | Intentos de envio |
Body (JSON)
Campos auto-calculados con normalizar=1
FchEmis-> fecha de hoy si se omite.IndServicio->3para boletas (39, 41).NroLinDet-> numerado 1, 2, 3...MontoItem->QtyItem * PrcItem(con descuentos).MntNeto-> suma desde items.IVA->MntNeto * TasaIVA / 100.MntTotal->MntNeto + IVA + MntExe.TasaIVA->19para tipos afectos.
Con normalizar=0 debe enviar todos los campos explicitamente.
Respuesta exitosa (200)
Errores especificos
| Codigo | error_code | Causa | Resolucion |
|---|---|---|---|
| 400 | VALIDATION_ERROR | caf o dte faltantes | Enviar ambos |
| 400 | AUTH_ERROR | Certificado invalido o passphrase incorrecta | Renovar certificado |
| 401 | HTTP_401 | API token ausente o invalido | Enviar X-API-Token valido |
| 403 | INSUFFICIENT_SCOPE | Token sin scope vendemas:write | Generar token con scope |
| 429 | SII_RATE_LIMIT / QUOTA_EXCEEDED | Rate limit | Respetar Retry-After |
| 502 | SII_UPLOAD_ERROR | SII rechazo el envio (solo si enviar_sii=1) | Reintentar con mismo XML |
| 503 | SII_UNAVAILABLE | SII en mantenimiento | Reintentar en 5 min |
(Docstring legacy con estructura interna del body - preservado para referencia)
El body debe tener la siguiente estructura::
Args:
body: Request body con auth, caf, dte y resolucion.
normalizar: "1" para calcular valores derivados, "0" para usarlos tal cual.
formato: Formato de los datos del DTE en el body.
enviar_sii: "1" para enviar el XML al SII tras generarlo.
gzip: "1" para comprimir el envio al SII.
retry: Numero de reintentos de envio al SII.
Returns: Diccionario con xml (dte, receptor, sii en base64), certificacion y track_id.
Raises: ValueError: Si faltan datos obligatorios o el DTE es invalido.
Parámetros
Respuestas
Forma de la respuesta
Código 200. Estructura del JSON devuelto.