§ Developers

Add signing, sealing and timestamping in a few lines of code.

A REST API with predictable behaviour, complete documentation and examples in the main programming languages.

§ 01 — Quick start

Your first sealed document in three steps.

01

Get your API key

Create an account, then generate a key from your dashboard. Keep it server-side, in an environment variable: it must never appear in code that runs in the browser.

export DOCACERT_API_KEY="your-test-key"

02

Send your first document

Send the file and the options you need. The response contains the operation ID and the document status.

cURL

curl https://api.docacert.com/v1/seals \
  -H "Authorization: Bearer $DOCACERT_API_KEY" \
  -F "file=@invoice-2026-0418.pdf" \
  -F "timestamp=true"

Node.js

import { openAsBlob } from "node:fs";

const form = new FormData();
form.append("file", await openAsBlob("invoice-2026-0418.pdf"), "invoice-2026-0418.pdf");
form.append("timestamp", "true");

const res = await fetch("https://api.docacert.com/v1/seals", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.DOCACERT_API_KEY}` },
  body: form,
});
const seal = await res.json();

Python

import os
import requests

with open("invoice-2026-0418.pdf", "rb") as f:
    res = requests.post(
        "https://api.docacert.com/v1/seals",
        headers={"Authorization": f"Bearer {os.environ['DOCACERT_API_KEY']}"},
        files={"file": f},
        data={"timestamp": "true"},
    )

seal = res.json()

C#

using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
    "Bearer", Environment.GetEnvironmentVariable("DOCACERT_API_KEY"));

using var form = new MultipartFormDataContent
{
    { new StreamContent(File.OpenRead("invoice-2026-0418.pdf")), "file", "invoice-2026-0418.pdf" },
    { new StringContent("true"), "timestamp" }
};

var res = await http.PostAsync("https://api.docacert.com/v1/seals", form);
var seal = await res.Content.ReadFromJsonAsync<Seal>();

Response · 201

{
  "id": "seal_8f2c41d0e7",
  "status": "sealed",
  "format": "PAdES-B-LT",
  "timestamp": "2026-10-13T09:41:27Z",
  "sha256": "9b1f04…a2c07e"
}

03

Track the result

Download the certified document, or subscribe to webhooks to be notified of every step. Always verify the signature of the notifications you receive.

{
  "type": "seal.completed",
  "created_at": "2026-10-13T09:41:29Z",
  "data": {
    "id": "seal_8f2c41d0e7",
    "status": "sealed"
  }
}

§ 02 — API principles

Conventions you already know.

REST and JSON

Clearly named resources, standard HTTP verbs and JSON responses.

OpenAPI specification

Generate your client or import the API into your tools from the public specification.

Test environment

Build and test with a dedicated key, isolated from production.

Signed webhooks

Every notification is signed: verify its authenticity before processing it.

Explicit errors

Consistent HTTP status codes and detailed error messages, so you can fix issues quickly.

Audit trail

Every operation is logged and exportable, for your internal controls and for your auditors.

§ 03 — Resources

Everything you need for a smooth integration.

Documentation

Guides, concepts and best practices, from your first call to production.

API reference

Every endpoint, its parameters and its responses, with examples.

Technical support

A question about your integration? Write to our technical team.

§ Get started

Ready to send your first document?

Get your API key and make your first calls in the test environment.