Inkr API
API REST de signature électronique européenne, eIDAS SES, hébergement UE, pricing dégressif sans engagement.
Intègre la signature électronique dans ton SaaS en quelques heures. Inkr expose une API REST conforme eIDAS Simple Electronic Signature, avec un audit trail PDF inclus, hébergée en Union européenne, sans abonnement ni minimum mensuel.
Démarrer
Quickstart 10 minutes
Crée un compte, génère une clé sk_test, signe ton premier PDF de bout en bout.
Authentification
Clés sk_test et sk_live, rotation, rate limits, environnements isolés.
Explorer les endpoints
Templates
PDF figés réutilisables avec 8 types de champs de saisie.
Submissions
Envoyer un document à signer depuis un template ou un PDF inline, suivre les statuts.
Webhooks
10 events granulaires signés HMAC, retry 8 fois sur 72h.
Embedded signing
Intégrer la signature en iframe dans ton SaaS sans rediriger l'utilisateur.
Erreurs et retries
Enveloppe d'erreur normée, codes HTTP, idempotence.
Référence complète
Tous les endpoints documentés depuis l'OpenAPI 3.1 officielle.
Premières lignes de code
Voici comment créer une submission à partir d'un PDF inline. Snippet complet avec headers requis (Authorization et Idempotency-Key) :
curl -X POST https://api.getinkr.eu/v1/submissions/from_pdf \
-H "Authorization: Bearer sk_test_xxx..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"documents": [{ "name": "Contrat", "pdf_base64": "JVBERi0..." }],
"submitters": [{
"role": "Signataire",
"email": "alice@example.com",
"fields": [{
"name": "signature",
"type": "signature",
"areas": [{ "page": 0, "x": 0.5, "y": 0.9, "w": 0.3, "h": 0.05 }]
}]
}],
"send_email": true
}'import { randomUUID } from 'node:crypto'
const res = await fetch('https://api.getinkr.eu/v1/submissions/from_pdf', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.INKR_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': randomUUID(),
},
body: JSON.stringify({
documents: [{ name: 'Contrat', pdf_base64: pdfBase64 }],
submitters: [{
role: 'Signataire',
email: 'alice@example.com',
fields: [{
name: 'signature',
type: 'signature',
areas: [{ page: 0, x: 0.5, y: 0.9, w: 0.3, h: 0.05 }],
}],
}],
send_email: true,
}),
})
const submission = await res.json()
console.log(submission.id)require 'net/http'
require 'securerandom'
require 'json'
require 'base64'
pdf_base64 = Base64.strict_encode64(File.read('contrat.pdf'))
uri = URI('https://api.getinkr.eu/v1/submissions/from_pdf')
req = Net::HTTP::Post.new(uri)
req['Authorization'] = "Bearer #{ENV['INKR_API_KEY']}"
req['Content-Type'] = 'application/json'
req['Idempotency-Key'] = SecureRandom.uuid
req.body = JSON.generate({
documents: [{ name: 'Contrat', pdf_base64: pdf_base64 }],
submitters: [{
role: 'Signataire',
email: 'alice@example.com',
fields: [{
name: 'signature',
type: 'signature',
areas: [{ page: 0, x: 0.5, y: 0.9, w: 0.3, h: 0.05 }],
}],
}],
send_email: true,
})
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)['id']Tous les POST mutants exigent un header Idempotency-Key (UUID v4 recommandé). Inkr cache la réponse 24h : retry avec la même clé replay la même réponse sans facturer deux fois.
Pricing dégressif
Tu démarres à 0,20 € par signature et plus tu signes moins tu paies. Aucun palier contractuel, aucun minimum mensuel, aucun abonnement.
| Volume mensuel | Prix par signature |
|---|---|
| 0 à 500 | 0,20 € |
| 501 à 2 500 | 0,18 € |
| 2 501 à 10 000 | 0,17 € |
| 10 001 à 50 000 | 0,16 € |
| 50 000 et plus | 0,15 € + contact sales |
Le prix s'applique au volume total du mois calculé à la facturation. Exemple : 3 000 signatures dans le mois facturées 3 000 × 0,17 € = 510 €.
Conformité et hébergement
- eIDAS SES au sens du règlement européen 910/2014. Recevable devant les tribunaux européens.
- Audit trail PDF téléchargeable via
GET /v1/submissions/{id}/audit_logavec IPs, user-agents, hash SHA-256 et horodatages UTC. - Hébergement Union européenne, conforme RGPD strict. Aucune exposition au CLOUD Act américain.
- DPA disponible sur demande commerciale.