Templates
Créer un template figé pour réutiliser le même PDF et les mêmes positions de champs sur N submissions.
Un template est un PDF + une liste de champs (signature, date, texte, etc.) à des positions définies. Tu crées un template une seule fois et tu envoies N submissions à partir de lui.
Si tu génères un PDF différent à chaque appel (par exemple un contrat avec un tableau variable par signataire), utilise plutôt POST /v1/submissions/from_pdf qui crée le template en interne pour toi.
Types de champs (MVP)
8 types sémantiques couvrant 95 % des cas d'usage signature :
| Type | Description | Options |
|---|---|---|
signature | Zone de signature | signature_kind : drawn / typed / drawn_or_typed / upload |
initials | Paraphes | idem signature |
date | Date | format (default DD/MM/YYYY), auto_fill_signing_date (bool) |
text | Texte libre | validation_pattern (regex) |
checkbox | Case à cocher | default_value (bool) |
number | Nombre | min, max, step |
radio | Choix unique | options: ["A", "B", "C"] |
select | Liste déroulante | options: ["A", "B"] |
Tous les champs supportent : required (bool), readonly (bool), default_value (string), title, description, name (clé pour matcher dans submitter.fields).
Créer un template
POST /v1/templates accepte le PDF en base64 ou via URL, avec une liste de champs et leurs positions.
curl -X POST https://api.getinkr.eu/v1/templates \
-H "Authorization: Bearer $INKR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"name": "Contrat partenariat v3",
"pdf_base64": "JVBERi0xLjQK...",
"fields": [
{
"name": "signature_partenaire",
"type": "signature",
"required": true,
"areas": [{ "page": 0, "x": 0.6, "y": 0.85, "w": 0.3, "h": 0.05 }]
},
{
"name": "date_signature",
"type": "date",
"auto_fill_signing_date": true,
"areas": [{ "page": 0, "x": 0.1, "y": 0.85, "w": 0.15, "h": 0.03 }]
}
]
}'Coordonnées : les areas sont en fractions du PDF (0 à 1), pas en points. x=0.6 = 60% depuis la gauche, y=0.85 = 85% depuis le haut.
Lister les templates
curl "https://api.getinkr.eu/v1/templates?limit=20&cursor=eyJpZCI6..." \
-H "Authorization: Bearer $INKR_API_KEY"Cursor pagination. Le champ meta.next_cursor de la réponse contient le cursor pour la page suivante (ou null si fin).
Détail et suppression
curl https://api.getinkr.eu/v1/templates/tpl_01J5HZ... \
-H "Authorization: Bearer $INKR_API_KEY"
curl -X DELETE https://api.getinkr.eu/v1/templates/tpl_01J5HZ... \
-H "Authorization: Bearer $INKR_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"DELETE archive le template (status archived). Les submissions déjà créées avec ce template restent intactes (préservation eIDAS 6+ ans).