Inkr API

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 :

TypeDescriptionOptions
signatureZone de signaturesignature_kind : drawn / typed / drawn_or_typed / upload
initialsParaphesidem signature
dateDateformat (default DD/MM/YYYY), auto_fill_signing_date (bool)
textTexte librevalidation_pattern (regex)
checkboxCase à cocherdefault_value (bool)
numberNombremin, max, step
radioChoix uniqueoptions: ["A", "B", "C"]
selectListe déroulanteoptions: ["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).