Przejdź do zawartości głównej
Certyneo
API REST eIDAS

API do podpisu elektronicznego dla programistów

Zintegruj podpis elektroniczny eIDAS ze swoją aplikacją: REST API, webhooki podpisane HMAC, podpisywanie osadzone w iframe i darmowe klucze testowe już na bezpłatnym koncie.

Darmowe klucze testowe · SLA 99,9% (Business i Enterprise) · Hosting w UE

REST + specyfikacja OpenAPI

Przewidywalne endpointy, czysty JSON, standardowe kody HTTP. Specyfikacja OpenAPI do pobrania, aby generować własnych klientów.

Wiarygodne witryny internetowe

5 prób z rosnącymi odstępami, podpis HMAC SHA-256, nieudane zdarzenia do ponownego wysłania z panelu. Bez pisania pollingu.

Właściwy organ

Podpis zwykły, zaawansowany (OTP przez SMS) i kwalifikowany, wybierany dla każdej koperty polem signatureLevel. Do każdego podpisanego dokumentu dołączana jest ścieżka audytu ze znacznikiem czasu.

Hosting w UE

Serwery w Niemczech, Francji i Hiszpanii. Opublikowane limity zapytań dla każdego planu i nagłówki X-RateLimit w każdej odpowiedzi. SLA 99,9% w planach Business i Enterprise.

Start w trzech wywołaniach

Prześlij PDF, utwórz kopertę, wyślij ją: wystarczą trzy zapytania HTTP.

cURL — przesłanie, utworzenie, wysyłka
# 1. Upload the PDF
curl https://certyneo.com/api/v1/documents \
  -H "Authorization: Bearer $CERTYNEO_API_KEY" \
  -F "file=@contrat.pdf"
# → { "id": "cm8doc...", "status": "READY", ... }

# 2. Create the envelope (draft)
curl https://certyneo.com/api/v1/envelopes \
  -H "Authorization: Bearer $CERTYNEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Contrat de prestation",
    "documentIds": ["cm8doc..."],
    "recipients": [{ "email": "client@example.com", "name": "Jane Doe" }]
  }'
# → { "id": "cm8env...", "status": "DRAFT", ... }

# 3. Send the invitations
curl -X POST https://certyneo.com/api/v1/envelopes/cm8env.../send \
  -H "Authorization: Bearer $CERTYNEO_API_KEY"

POST /documents zwraca identyfikator PDF, POST /envelopes tworzy wersję roboczą z sygnatariuszami, a następnie POST /envelopes/:id/send wysyła zaproszenia. Postęp przychodzi potem przez webhook.

Node.js — natywny fetch, bez zależności
// Node 18+ — native fetch, no dependency
import { readFile } from "node:fs/promises";

const API = "https://certyneo.com/api/v1";
const auth = { Authorization: `Bearer ${process.env.CERTYNEO_API_KEY}` };

// 1. Upload the PDF
const form = new FormData();
const pdf = new Blob([await readFile("contrat.pdf")], { type: "application/pdf" });
form.append("file", pdf, "contrat.pdf");
const doc = await (await fetch(`${API}/documents`, { method: "POST", headers: auth, body: form })).json();

// 2. Create the envelope (draft)
const envelope = await (await fetch(`${API}/envelopes`, {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({
    subject: "Contrat de prestation",
    documentIds: [doc.id],
    recipients: [{ email: "client@example.com", name: "Jane Doe" }],
  }),
})).json();

// 3. Send the invitations
await fetch(`${API}/envelopes/${envelope.id}/send`, { method: "POST", headers: auth });

SDK nie jest potrzebne: API obsłużysz natywnym fetch z Node 18 lub dowolnym klientem HTTP. Specyfikacja OpenAPI pozwala też wygenerować typowanego klienta w Twoim języku.

Webhook reagować w czasie rzeczywistym

Zdarzenia koperty i odbiorcy, weryfikowalna sygnatura HMAC i automatyczne przypomnienia.

envelope.completed
{
  "id": "cm8f2h6a10004qr9k5p2wm3xt",
  "event": "envelope.completed",
  "data": {
    "envelopeId": "cm7x2k9p40001qz8h3f7bn2ld",
    "subject": "Contrat de prestation",
    "status": "COMPLETED",
    "completedAt": "2026-09-26T08:42:13.000Z",
    "recipientCount": 1,
    "recipients": [
      { "email": "client@example.com", "name": "Jane Doe", "role": "SIGNER", "status": "SIGNED" }
    ],
    "signedDocumentUrl": "https://storage.certyneo.com/signed/...pdf?X-Amz-Expires=604800&..."
  },
  "timestamp": "2026-09-26T08:42:13.521Z"
}
  • HMAC SHA-256 podpis każdego ładunku weryfikuj serwerową autentyczność.
  • Automatyczne ponowienie próby w przypadku tymczasowej awarii: 5 prób w ciągu około 1 h 20 z wykładniczym wycofaniem.
  • Nieudane zdarzenia są widoczne w panelu i można je wysłać ponownie jednym kliknięciem. Po 5 kolejnych niepowodzeniach endpoint zostaje zawieszony, a Ty dostajesz powiadomienie.
  • Do 5 endpointów w planie Standard, 15 w Business i 50 w Business Pro, każdy zasubskrybowany na wybrane przez Ciebie zdarzenia.

Po co nam API dedykowane do podpisu elektronicznego?

Włączenie podpisu elektronicznego do produktu nie jest łatwe. Potrzebujesz gwarancji zgodności z prawem (eIDAS), rzetelności technicznej (webhooki, które naprawdę przychodzą) i suwerenności danych (europejski hosting w celu uniknięcia ustawy Cloud Act).

Stworzone przez programistów dla programistów, API trzyma się konwencji REST: wersja w URL (/api/v1), paginacja parametrami page i limit, błędy JSON z kodem czytelnym dla maszyny, specyfikacja OpenAPI do generowania klientów. Bez SOAP, bez XML, bez niespodzianek.

Zgodność eIDAS wyjaśniona dla deweloperów

Rozporządzenie eIDAS definiuje trzy poziomy podpisu: zwykły (SES), zaawansowany (AES) i kwalifikowany (QES). API Certyneo pozwala wybrać poziom każdej koperty polem signatureLevel: SIMPLE (domyślnie), ADVANCED lub QUALIFIED. Podpis zwykły wystarcza dla większości typowych umów handlowych; QES stosuje się, gdy przepis lub odbiorca wymaga równoważności z podpisem własnoręcznym.

Od strony technicznej poziom zaawansowany automatycznie włącza OTP przez SMS i wymaga numeru telefonu każdego sygnatariusza. Ścieżka audytu otrzymuje znacznik czasu zgodny z normą RFC 3161. QES opiera się na certyfikacie kwalifikowanym wydanym przez kwalifikowanego dostawcę usług zaufania z UE. Wszystkim sterujesz przez API.

Zalecana architektura integracji

Najczęściej wzorzec integracji następuje w ten sposób:

  • Twój backend przesyła PDF (POST /api/v1/documents), tworzy kopertę jako wersję roboczą (POST /api/v1/envelopes), a następnie ją wysyła (POST /api/v1/envelopes/:id/send).
  • Sygnatariusz dostaje zaproszenie e-mailem albo podpisuje bezpośrednio w Twoim interfejsie dzięki podpisywaniu osadzonemu w iframe (POST /api/v1/envelopes/:id/embed-url, od planu Standard).
  • Po zakończeniu podpisu, Certyneo wywołuje twój webhook z wydarzeniem envelope.completed.
  • Aktualizujesz bazę danych i powiadamiasz użytkownika (email, w aplikacji itp.).

Darmowe klucze testowe

Klucze sk_test_ są dostępne we wszystkich planach, także w planie Bezpłatny, a koperty testowe nie zużywają miesięcznego limitu. W planie Bezpłatny można je kierować tylko na własny adres e-mail i obowiązuje limit 20 zapytań na godzinę; plany płatne oferują od 200 do 1000 zapytań na godzinę. Dane testowe są usuwane po 30 dniach. Pierwszy klucz testowy na bezpłatnym koncie daje dodatkowo miesiąc planu Standard gratis.

A jeśli nie chcesz pisać kodu

Wszystko, co robi ten API, można również kontrolować bez pisania linijki kodu, z poziomu przepływu: utworzyć kopertę, wysłać ją, reagować na podpis, pobrać zapieczętowany plik PDF i jego ścieżkę audytu. Ta sama podstawa, z wizualnym projektantem zamiast klienta HTTP. Wyświetl integrację Power Automate i Microsoft 365.

Migracja z DocuSign lub Yousign

Jeśli masz już integrację z DocuSign lub Yousign, słownictwo jest podobne: envelopes → envelopes, recipients → recipients, webhooki statusu → webhooki. Przewodnik migracji z DocuSign i Yousign do Certyneo opisuje kolejne kroki, od eksportu szablonów po przełączenie webhooków.

Migrujesz z Adobe Acrobat Sign (dawniej EchoSign, następnie Adobe Sign)? Mapowanie jest równie bezpośrednie — agreements → envelopes, participants → recipients, webhooks → webhooks. Porównaj Certyneo i Adobe Acrobat Sign →

Cena API podpisu elektronicznego: gdzie kupić subskrypcję?

Nie potrzebujesz wyceny ani zamówienia, aby kupić abonament API do podpisu elektronicznego: klucze testowe są darmowe, klucz API generujesz w panelu, a dostęp do produkcyjnego REST API jest zawarty już w planie Standard za 19 €/miesiąc — z webhookami, bez opłat za podpis zwykły.

  • Standard — 19 €/miesiąc: 100 kopert/miesiąc, API REST + webhooks, 10 użytkowników
  • Business — 39 €/miesiąc: 300 kopert/miesiąc, wysyłka grupowa, formularze internetowe
  • Business Pro — 99 €/miesiąc: 1 000 kopert/miesiąc, API o wysokiej częstotliwości (300 żąd./min), nieograniczeni użytkownicy

Podpis kwalifikowany (QES) jest rozliczany za każde użycie i opłacany przy wysyłce: 9,90 € za podpis z abonamentem, pobierane z zapisanej karty po wykorzystaniu QES zawartych w Business i Business Pro, oraz 14,90 € bez abonamentu.

W przypadku dużych wolumenów lub potrzeby zobowiązania umownego (SLA, dedykowana DPA, rozliczenia roczne), plan Enterprise kupuje się u zespołu handlowego. W każdym razie ceny są publiczne — porównaj je przed zaangażowaniem się.

Aby pogłębić wiedzę

Wystarczy zadać pytania API

Jaki jest limit błędu API?

Limit dotyczy każdego klucza, na minutę, zależnie od planu: 60 zapytań w Standard, 120 w Business, 300 w Business Pro i 1000 w Enterprise. Każda odpowiedź zawiera nagłówki X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset; po przekroczeniu API zwraca 429 z nagłówkiem Retry-After.

Ile kosztuje API?

Klucze testowe (sk_test_) są darmowe we wszystkich planach. Dostęp do produkcyjnego REST API jest zawarty od planu Standard za 19 €/miesiąc (100 kopert/miesiąc), dalej Business za 39 €/miesiąc i Business Pro za 99 €/miesiąc z rosnącymi limitami; podpis kwalifikowany (QES) jest rozliczany za każde użycie, 9,90 € z abonamentem. Przy większych wolumenach plan Enterprise zamawia się u zespołu sprzedaży.

Czy jest ALS?

Tak: 99,9% miesięcznej dostępności w planach Business i Enterprise, z kredytem na fakturze od 10 do 50% zależnie od stwierdzonego odchylenia. Stan usługi jest publikowany na bieżąco na stronie statusu Certyneo.

Jakiego typu uwierzytelnianie używasz?

Klucz API w nagłówku Authorization (Bearer sk_live_… lub sk_test_…). Klucze tworzysz i unieważniasz w panelu, ze skutkiem natychmiastowym. Dla aplikacji zewnętrznej działającej w imieniu Twoich użytkowników dostępny jest OAuth 2.0 z przepływem authorization code i PKCE.

Jak sprawdzić sygnaturę HMAC w sieci?

Każdy webhook ma nagłówek X-Certyneo-Signature: podpis HMAC SHA-256, szesnastkowo, surowej treści zapytania, obliczony z sekretem Twojego endpointu. Oblicz go ponownie po stronie serwera na niezmienionej treści i porównaj w stałym czasie (crypto.timingSafeEqual w Node, hmac.compare_digest w Pythonie).

Czy istnieje oficjalne SDK?

Jeszcze nie zostało opublikowane. API wywołuje się bezpośrednio przez HTTP z dowolnego języka, a specyfikacja OpenAPI pozwala wygenerować typowanego klienta za pomocą openapi-generator lub podobnego narzędzia. Bez kodu Certyneo jest też dostępne w Make, n8n, Postman i RapidAPI.

Czy mogę testować bez płacenia?

Tak: załóż bezpłatne konto i wygeneruj klucz sk_test_ w panelu. Pierwszy klucz testowy na bezpłatnym koncie daje też miesiąc planu Standard gratis. Kolekcja Postman pozwala wykonać pierwsze wywołania bez pisania kodu.

Ile kosztuje API EchoSign (teraz Adobe Acrobat Sign)?

EchoSign został przejęty przez Adobe w 2011 roku, przemianowany na Adobe Sign, a potem na Adobe Acrobat Sign: API do podpisu nadal istnieje, ale jego cena nie jest publiczna i wymaga wyceny korporacyjnej od działu sprzedaży Adobe, zwykle według progów rocznych transakcji. Certyneo przeciwnie, publikuje ceny: produkcyjny dostęp do API jest zawarty od planu Standard za 19 €/miesiąc, kupowanego online bez wyceny, z darmowymi kluczami testowymi, by ocenić API przed zapłatą.

Gotowi do włączenia podpisu elektronicznego?

Darmowe klucze testowe, specyfikacja OpenAPI, podpisane webhooki. Zacznij teraz.