Mergeți la conținutul principal
Certyneo

API Signature Electronică: Ghid Dezvoltator REST 2026

Integrarea unei API de semnătură electronică în aplicația dvs. business nu a fost niciodată atât de strategică. Acest ghid dezvoltator acoperă autentificarea, webhooks-urile și conformitatea eIDAS de la A la Z.

12 min de lectură

Echipa Certyneo

Redactor — Certyneo · Despre Certyneo

Introducere

Integrarea unei API REST de semnătură electronică a devenit un prerequisit obligatoriu pentru echipele de dezvoltare în 2026. Cu peste 73% din întreprinderile europene care au digitalizat cel puțin un proces contractual (sursă: IDC European Digital Transformation Report 2025), cererea de integrări tehnice robuste explodează. Fie că construiți o platformă LegalTech SaaS, un ERP sau o platformă HR, înțelegerea modului de consum al unei API de semnătură electronică — autentificare OAuth2, gestionarea webhooks-urilor, conformitate eIDAS — determină direct calitatea și valoarea juridică a fluxurilor dvs. documentare. Acest ghid dezvoltator REST vă însoțește pas cu pas: arhitectură, autentificare, ciclul de viață al unui document, webhooks în timp real și bune practici de securitate.

---

Arhitectura unei API REST de Semnătură Electronică

Principii RESTful și structura endpoint-urilor

O API REST de semnătură electronică bine concepută se bazează pe resurse clar identificate și verbe HTTP semantice. Resursele fundamentale sunt în general:

  • `/documents` — încărcare, gestionare și preluare a documentelor PDF/DOCX
  • `/signature-requests` — creație și pilotare a cererilor de semnare
  • `/signatories` — gestionarea semnatarilor și a identităților acestora
  • `/audit-trails` — preluare a jurnalelor de audit certificate
  • `/templates` — gestionarea șabloanelor de documente reutilizabile

Fiecare resursă expune endpoint-uri CRUD standard (`GET`, `POST`, `PUT`, `PATCH`, `DELETE`) și returnează răspunsuri JSON cu coduri HTTP standardizate: `200 OK`, `201 Created`, `400 Bad Request`, `401 Unauthorized`, `422 Unprocessable Entity`, `429 Too Many Requests`.

Un aspect critic adesea neglijat: gestionarea paginării. API-urile mature utilizează modelul cursor-based mai degrabă decât offset/limit, ceea ce garantează performanțe stabile chiar și pe volume de mii de documente semnate. Verificați că API-ul țintă expune un antet `X-Next-Cursor` sau un câmp `next_page_token` în corp.

Versioning-ul API și compatibilitate ascendentă

Versioning-ul constituie un punct de vigilență major pentru integratori. Cele două abordări dominante în 2026 sunt:

  1. Versioning prin URL: `https://api.certyneo.com/v2/signature-requests` — lizibil, cache-abil de către CDN, recomandat pentru API-urile B2B.
  2. Versioning prin antet: `Accept: application/vnd.certyneo.v2+json` — mai curat din punct de vedere arhitectural dar mai puțin vizibil.

Preferați furnizorii care se angajează la o politică de depreciere minimă de 12 luni și care publică un changelog public. O rupere de compatibilitate neintrodusă în fluxul dvs. de semnare poate avea consecințe juridice directe (contracte nesemnate, termene pierdute).

---

Autentificare OAuth2 și Securitatea Apelurilor API

OAuth2: flux client_credentials vs authorization_code

Autentificarea este piatra fundamentală a oricărei integrări API de semnătură electronică. Cele două fluxuri OAuth2 cele mai relevante pentru dezvoltatori sunt:

Client Credentials Flow (M2M — Machine to Machine): ``` POST /oauth/token Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET &scope=documents:write signature_requests:write audit_trails:read ``` Acest flux este ideal pentru integrări server-la-server unde niciun utilizator final nu este implicat în autentificare (procesare batch, automatizare contracte).

Authorization Code Flow + PKCE: recomandat atunci când aplicația dvs. acționează în numele unui utilizator final identificat. PKCE (Proof Key for Code Exchange) este obligatoriu din RFC 7636 și protejează împotriva atacurilor de interceptare.

Sfaturi esențiale de securitate:

  • Stocați `client_secret` într-un vault (HashiCorp Vault, AWS Secrets Manager) — niciodată în variabilă de mediu necifrată
  • Implementați rotația automată a token-urilor cu un buffer de 60 de secunde înainte de expirare
  • Utilizați scope-uri granulare: ceriți doar permisiunile strict necesare

Gestionarea cheilor API și rate limiting

Pentru integrări ușoare sau medii de testare, unele API-uri oferă chei API statice (Bearer Token). Dacă le utilizați în producție, aplicați sistematic:

  • Rotația trimestrială a cheilor
  • Restricție după IP (allowlist)
  • Monitorizarea apelurilor anormale prin SIEM-ul dvs.

Rate limiting-ul este o realitate inconturnabilă: API-urile de semnătură limitează în general între 100 și 1000 apeluri/minut în funcție de plan. Implementați un mecanism de retry exponențial cu jitter: ``` retry_delay = base_delay * (2^attempt) + random_jitter ``` Respectați scrupulos antetul `Retry-After` renvoyat cu `429 Too Many Requests`.

---

Ciclul de Viață al unei Cereri de Semnare prin API

Creație și configurare a unei cereri de semnare

Ciclul de viață al unei cereri de semnare prin API REST urmează o schemă de stări (`draft` → `pending` → `in_progress` → `completed` | `declined` | `expired`). Iată pașii tehnici detaliați:

Pasul 1 — Încărcarea documentului: ``` POST /v2/documents Content-Type: multipart/form-data

[email protected] ``` Răspuns: `{ "document_id": "doc_a1b2c3", "checksum_sha256": "e3b0c442..." }`

Pasul 2 — Creația cererii: ```json POST /v2/signature-requests { "document_id": "doc_a1b2c3", "name": "Contract prestation Q3 2026", "signatories": [ { "email": "[email protected]", "first_name": "Maria", "last_name": "Dupont", "signature_level": "advanced", "fields": [{ "type": "signature", "page": 3, "x": 120, "y": 680 }] } ], "expiry_date": "2026-06-05T23:59:59Z", "reminder_settings": { "enabled": true, "frequency_days": 3 } } ```

Pasul 3 — Activare: `POST /v2/signature-requests/req_x9y8z7/activate`

De la activare, semnatarii primesc invitațiile și cererea trece în stare `in_progress`.

Preluarea documentului semnat și a audit trail

Odată ce statusul `completed` este atins (detectabil prin webhook — vezi secțiunea următoare), preluați:

``` GET /v2/signature-requests/req_x9y8z7/document/signed → PDF semnat cu semnături electronice încorporate (PAdES-B-T conform ETSI EN 319 132)

GET /v2/signature-requests/req_x9y8z7/audit-trail → PDF al jurnalului de audit certificat (marcă de timp calificată RFC 3161) ```

Stocați întotdeauna ambele fișiere împreună în GED-ul sau DMS-ul dvs. Jurnalul de audit este dovada contestabilă în caz de dispută judiciară.

---

Webhooks: Evenimente în Timp Real și Gestionarea Erorilor

Configurare și securizare webhooks

Webhooks-urile transformă integrarea dvs. dintr-un polling scump într-o arhitectură eventuală reactivă. Configurați endpoint-ul webhook:

``` POST /v2/webhooks { "url": "https://your-app.com/hooks/certyneo", "events": [ "signature_request.completed", "signature_request.declined", "signatory.signed", "signature_request.expired" ], "secret": "whsec_your_hmac_secret" } ```

Securizare HMAC obligatorie: validați fiecare payload intrat prin compararea semnăturii HMAC-SHA256 calculate cu antetul `X-Certyneo-Signature`: ```python import hmac, hashlib

def verify_webhook(payload: bytes, secret: str, signature_header: str) -> bool: expected = hmac.new( secret.encode(), payload, hashlib.sha256 ).hexdigest() return hmac.compare_digest(f"sha256={expected}", signature_header) ``` Nu utilizați niciodată o comparație clasică de șiruri — vulnerabilă la atacuri de timing.

Idempotență și gestionarea retransmisiunilor

Webhooks-urile pot fi redelivrate în caz de timeout sau eroare 5xx din endpoint-ul dvs. Implementați idempotența obligatoriu:

  1. Extrageți `event_id` unic din fiecare payload webhook
  2. Verificați în bază dacă acest `event_id` a fost deja tratat
  3. Returnați `200 OK` imediat (chiar și pentru duplicări) pentru a evita relivrarrile infinite
  4. Tratați logica business asincron (coadă: Redis, RabbitMQ, SQS)

Regulă de aur: endpoint-ul webhook trebuie să răspundă în mai puțin de 5 secunde. Orice tratare de business grea (trimitere email, arhivare GED, notificare ERP) trebuie delegată unui worker asincron.

Pentru a aprofunda înțelegerea nivelurilor de semnare disponibile prin API, consultați ghidul nostru complet despre semnătura electronică care detaliază diferențele dintre semnăturile simple, avansate și calificate.

---

Bune Practici de Integrare și Performanță

Medii sandbox și strategie de testare

Orice API de semnătură electronică serioasă oferă un mediu sandbox izolat de producție. Adoptați această strategie de testare:

  • Teste unitare: mockează răspunsurile API (Wiremock, MSW) pentru a valida logica business fără a depinde de rețea
  • Teste de integrare: executați împotriva sandbox-ului real pentru a valida ciclul complet de viață (creație → semnare → preluare)
  • Teste de sarcină: simulați vârfuri de cereri simultane pentru a identifica gâturile dvs. de îngustare înainte de punerea în producție
  • Teste de haos: simulați timeout-uri și erori 5xx pentru a valida logica retry

Nu testați niciodată în producție cu adevărate identități de semnatari. Semnăturile electronice create în sandbox nu au nicio valoare juridică, ceea ce este exact ceea ce doriți pentru testele dvs.

Monitorizare, observabilitate și avertizare

În producție, instrumentați integrarea cu:

  • Metrici: rata de succes a apelurilor API, latență p95/p99, rata de eroare pe endpoint
  • Urme distribuite: propagați `trace-id` în antetele dvs. pentru a corela jurnalele dvs. cu jurnalele API furnizorului
  • Avertizare: declanșați o alertă dacă rata de eroare depășește 1% sau dacă latența p99 depășește 3 secunde

Consultați comparativul nostru al soluțiilor de semnătură electronică pentru a evalua SLA-urile de disponibilitate (uptime) oferite de diferiți furnizori — un criteriu adesea subestimat la integrarea API.

Dacă migrați din altă platformă, ghidul nostru despre cum se migrează de la DocuSign sau YouSign la Certyneo acoperă aspectele tehnice ale migrării API și compatibilitatea webhooks-urilor existente.

Pentru a estima rentabilitatea investiției integrării, utilizați calculatorul ROI pentru semnătura electronică care integrează câștigurile de productivitate legate de automatizare prin API.

În cele din urmă, dacă doriți să mergeți mai departe în generarea automată a documentelor de semnat, descoperiți generatorul de contracte prin IA care se conectează nativ cu API REST.

Cadrul Juridic Aplicabil API de Semnătură Electronică

Integrarea unei API de semnătură electronică nu se limitează la o problemă tehnică: angajează direct responsabilitatea juridică a editorului și clienților săi asupra mai multor texte fundamentale.

Regulamentul eIDAS nr. 910/2014 și eIDAS 2.0

Regulamentul (UE) nr. 910/2014 (eIDAS) stabilește cadrul juridic al semnăturii electronice în Uniunea Europeană. Distinge trei niveluri:

  • Semnătura electronică simplă (SES): valoare juridică minimă, adaptată actelor cu risc redus
  • Semnătura electronică avansată (AES): legată în mod univoc de semnatari, creată din date sub controlul exclusiv al acestuia — articolul 26 eIDAS
  • Semnătura electronică calificată (QES): echivalentă cu o semnătură olografă în întreaga UE — articolul 25 §2 eIDAS

Odată cu intrarea în vigoare progresivă a regulamentului eIDAS 2.0 (Regulamentul UE 2024/1183), dezvoltatorii trebuie să anticipeze integrarea Portofelelor Europene de Identitate Numerică (EUDIW) în fluxurile lor de autentificare. Consultați ghidul nostru eIDAS 2.0 pentru implicațiile tehnice detailate.

Codul civil francez — Articolele 1366 și 1367

În dreptul francez, articolul 1366 din Codul civil stabilește că „scrierea electronică are aceeași putere probantă ca scrierea pe suport hârtie, cu rezerva că pot fi identificate în mod corespunzător persoana din care emană și că a fost întocmit și păstrat în condiții de natură să garanteze integritatea acestuia".

Articolul 1367 precizează condițiile semnăturii electronice fiabile: identificarea semnatarului și garantarea integrității documentului. Aceste cerințe se traduc din punct de vedere tehnic prin obligația de a conserva jurnalele de audit certificate și dovezile de identitate utilizate în timpul semnării — elemente pe care API-ul dvs. trebuie să le expună și pe care trebuie să le stocați.

Standarde ETSI EN 319 132 — PAdES

Formatul tehnic obligatoriu pentru semnăturile PDF conforme eIDAS este PAdES (PDF Advanced Electronic Signatures), definit de norma ETSI EN 319 132. API-ul dvs. trebuie să producă cel puțin semnături PAdES-B-T (cu marcă de timp) și PAdES-B-LT sau PAdES-B-LTA pentru a garantiza validabilitatea pe termen lung (arhivare 10+ ani).

RGPD nr. 2016/679 — Datele semnatarilor

Datele personale colectate în timpul procesului de semnare (nume, prenume, email, adresă IP, date de identitate pentru AES/QES) constituie date cu caracter personal supuse RGPD. Obligațiile dvs. în calitate de operator de date sau suboperator includ:

  • Definirea unei durate de conservare justificate (în general aliniată cu termenele de prescripție: 5 ani în dreptul comun)
  • Prevederem unui mecanism de ștergere automată prin API (`DELETE /v2/signature-requests/{id}/personal-data`)
  • Documentarea tratării în registrul activităților de tratare (articolul 30 RGPD)
  • Încheiere a unui DPA (Acord de prelucrare a datelor) cu furnizorul API de semnătură

Directiva NIS2 și continuitate de serviciu

Pentru editorii de software calificați ca entități esențiale sau importante conform Directivei NIS2 (2022/2555), integrarea unei API terță creează o dependență care trebuie documentată în analiza risicurilor lanțului de aprovizionare digital. Exigând de la furnizorul dvs. API o certificare SOC 2 Type II și un SLA de disponibilitate ≥ 99,9%.

Scenarii de Utilizare: API Semnătură Electronică în Practică

Scenariul 1 — Automatizarea contractelor furnizorilor într-o PME industrială

O PME industrială gestionând aproximativ 200 de contracte furnizori pe an a dorit să elimine circulația dus-întors pe hârtie și relansările manuale care implicau 2 zile pe lună de lucru al unui asistent administrativ. Echipa de dezvoltare a integrat API REST de semnătură electronică direct în ERP-ul lor prin fluxul următor:

  1. La validarea unei comenzi în ERP, un apel `POST /v2/signature-requests` este declanșat automat
  2. Contractul PDF generat este încărcat și o cerere de semnare este trimisă contactului furnizorului referențiat
  3. Un webhook `signatory.signed` actualizează statusul comenzii în timp real
  4. Documentul semnat și jurnalul de audit sunt arhivate automat în DMS prin al doilea apel API

Rezultate observate (interval din rapoarte sectoriale KPMG/IDC 2024-2025): reducerea termenului mediu de semnare de 8 zile la mai puțin de 24 de ore, economie estimată la 60-70% din timp administrativ dedicat relansărilor, și zero pierderi documentare.

Scenariul 2 — Platformă LegalTech pentru cabinete de avocați

Un editor de software dezvoltând o soluție SaaS pentru cabinete de avocați de 5 la 30 colaboratori a integrat API de semnătură electronică pentru a permite utilizatorilor finali să facă semnate mandatele, convențiile de onorariu și actele de procedură direct din interfața cabinetului.

Arhitectura tehnică aleasă utilizează fluxul OAuth2 Authorization Code + PKCE pentru ca fiecare avocat să autentifice cererile în propriul nume. Webhooks-urile `signature_request.completed` declanșează automat depozitarea documentului semnat în dosarul client al GED-ului juridic.

Editorul a valorificat în mod deosebit disponibilitatea semnăturilor electronice avansate (AES) prin API — nivel cerut pentru convențiile de onorariu conform recomandărilor Consiliului Național al Barelor. Timpul de dezvoltare al integrării inițiale s-a stabilit la aproximativ 3 săptămâni pentru un dezvoltator backend senior, cu o acoperire a testelor de 85%.

Scenariul 3 — Onboarding digital într-un grup de clinici private

Un grup de clinici private de aproximativ 600 de paturi trebuia să demateri formularele de consimțământ informat și contractele de admitere, până atunci tipărite și semnate manual la recepție — generând costuri de imprimare estimate la mai multe mii de euro pe an și timpi de așteptare la recepție.

Integrarea API a conectat sistemul informatic spitalicesc (SIH) la platforma de semnătură electronică. La înregistrarea unui pacient, SIH apelează API pentru a crea o cerere de semnare multipartă (pacient + medic curant) cu poziționare automată a câmpurilor de semnare calculate din metadatele șablonului.

Conformitatea RGPD a necesitat punerea în funcție a unei ștergeri automate programate prin API (`PATCH /v2/signature-requests` + webhook de confirmare a ștergerii) aliniată cu duratele de conservare legale ale dosarelor medicale (20 de ani pentru adulți, conform articolului R. 1112-7 din Codul sănătății publice). Câștigurile măsurate au atins o reducere de 80% din tiempo de așteptare la admitere și o economie de 40% din costurile de imprimare și digitalizare.

Concluzie

Integrarea unei API REST de semnătură electronică în 2026 necesită o stăpânire simultană a mai multor dimensiuni: arhitectură RESTful robustă, autentificare OAuth2 securizată, gestionare eventuală prin webhooks, și conformitate cu cerințele eIDAS și RGPD. Dezvoltatorii care anticipează acești enjei de la conceperea integrării lor se scutesc de refactorări costisitoare și de riscuri juridice majore.

Cei trei piloni de reținut: securizați apelurile API (OAuth2 + scope-uri minimale + vault), tratați evenimentele asincron și idempotent prin webhooks, și arhivați sistematic documentul semnat cu jurnalul de audit certificat.

Certyneo pune la dispoziție o API REST documentată, conformă eIDAS, cu sandbox gratuit și suport tehnic dezvoltator dedicat. Creați contul Certyneo pentru a accesa cheia API sandbox și a începe integrarea azi.

Încercați Certyneo gratuit

Trimiteți primul dumneavoastră plic de semnătură în mai puțin de 5 minute. 5 plicuri gratuite pe lună, fără card bancar.

Aprofundați subiectul

Ghidurile noastre complete pentru a stăpâni semnătura electronică.