Dar de alta un template
Registra una plantilla en tu cuenta, o la reemplaza si ya existe una con el mismo nombre.
Un solo endpoint atiende los cuatro tipos de plantilla — HTML, PDF con AcroForm, pdfmake y
DOCX. Lo que cambia es template_type y cómo se codifica template_data; el flujo siempre es
el mismo:
- Da de alta la plantilla aquí.
- Firmame responde con los placeholders que encontró, así que te enteras de los nombres de los campos en vez de adivinarlos.
- De ahí en adelante genera documentos con
POST /developers/json, mandando solotemplateyfields.
Autenticación
signmage Cada petición lleva Authorization: signmage {webId}:{firma}, donde firma es el Base64 de
HMAC-SHA256(apiKey, cadenaFirmada).
Qué va dentro de cadenaFirmada depende de la petición:
| Petición | cadenaFirmada |
|---|---|
GET | La URI completa incluyendo el query string, exactamente como se envía |
POST con JSON | El cuerpo JSON, re-serializado compacto (sin espacios ni salto de línea final) |
POST multipart | El SHA-256 en Base64 del archivo, que además se manda en el header Content-SHA256 |
Dos detalles que conviene resolverlos desde el principio:
- En
GET, la URI se firma tal como se envía, así que el orden y el encoding de los parámetros importan. - En
POST, la comparación se hace contra tu JSON re-serializado en forma compacta. Manda JSON compacto y canónico para que las firmas coincidan.
Una firma que no coincide devuelve 401 con el cuerpo vacío. Como la misma respuesta cubre un
web ID desconocido, una llave inactiva y una firma que no coincide, revisa las tres cosas al
diagnosticar.
En: header
Cuerpo de la petición
application/json
Definiciones de TypeScript
Usa el tipo request body en TypeScript.
Da de alta una plantilla, o la reemplaza si ya existe una con el mismo nombre.
Se aceptan dos formas de payload. La plana que aparece abajo es la que usan los SDKs y el
portal actual; también se acepta un objeto anidado template: {title, type, data, url}, que
es equivalente.
Cuerpo de la respuesta
application/json
text/plain
curl -X POST "https://example.com/developers/template/save" \ -H "Content-Type: application/json" \ -d '{ "template_type": "html", "template_name": "contrato-arrendamiento", "template_data": "PHA+SG9sYSB7e25vbWJyZX19PC9wPg==" }'{ "tables": [ { "id": "directory", "rows": [] } ], "template_title": "contrato-arrendamiento", "fields": [ { "id": "full-name", "value": "" } ]}