Aller au contenu
Deepstamp

Documentation

Quick start, in four steps.

One API call, a sealed PDF back, and a public verification link your users can share with anyone.

What you need

  • A Deepstamp API key (starts with dsk_)
  • A PDF document to certify
  • Any language that can send HTTP requests (Node.js, Python, Go, curl...)
1

Get your API key

Sign in to your Deepstamp dashboard and generate an API key under Settings > API Keys. Your key starts with dsk_. Keep it secret, server-side only.

Confirm your key is active:

curl
curl https://deepstamp.fr/api/v1/whoami \
  -H "x-api-key: dsk_YOUR_KEY"

No dashboard access yet? Contact our team to get started.

2

Certify a document

Send your PDF to the certification endpoint. You get back a certified version of the PDF with an embedded proof, plus a unique verification identifier.

curl
curl -X POST https://deepstamp.fr/api/v1/certify \
  -H "x-api-key: dsk_YOUR_KEY" \
  -F "file=@invoice.pdf" \
  -F "certificationName=Invoice #2026-0504"
node.js
import fs from "fs";
import path from "path";

const file = fs.readFileSync("invoice.pdf");

const form = new FormData();
form.append("file", new File([file], "invoice.pdf", { type: "application/pdf" }));
form.append("certificationName", "Invoice #2026-0504");

const res = await fetch("https://deepstamp.fr/api/v1/certify", {
  method: "POST",
  headers: { "x-api-key": process.env.DEEPSTAMP_API_KEY },
  body: form,
});

const json = await res.json();
const result = json.data;

// Save the certified PDF (includes embedded proof + verification link)
const certifiedPdf = Buffer.from(result.pades.signed_pdf_base64, "base64");
fs.writeFileSync("invoice-certified.pdf", certifiedPdf);

console.log("Done! Cert ID:", result.certif_hash);

Tip: The certificationName field is the human-readable label shown on the verification page. Use something your users will recognize (e.g., "Invoice #2026-0504").

3

Return the certified PDF

The API returns a JSON response with the certified PDF (base64-encoded) and a unique certif_hash identifier.

response
{
  "success": true,
  "data": {
    "certif_hash": "ctf_9f86d081884c7d659a2f...",
    "pades": {
      "signed_pdf_base64": "JVBERi0xLjQK..."
    },
    "short_link": {
      "id": "abc12xyz",
      "url": "https://deepstamp.fr/v/abc12xyz"
    }
  }
}
signed_pdf_base64

The certified PDF. Decode from base64 and serve it to your user. This PDF contains embedded proof that anyone can verify.

short_link.url

The public verification link. Share it with your users — anyone can verify the document at this URL without an account.

4

Verification

Anyone who receives the certified PDF can verify its authenticity. Two options:

Public verification page

Share the link with your users. They (or their clients) open it in a browser and see the certification status instantly.

https://deepstamp.fr/v/abc12xyz

Programmatic verification

Upload any document to the verify endpoint to check if it has been certified. Useful for automated workflows.

POST /api/v1/verify

Verification is always free and public. No API key required for the public proof page.

Error handling

All errors follow a standard JSON format:

{
  "success": false,
  "error": {
    "code": "MISSING_FILE",
    "message": "Field 'file' is required"
  }
}
StatusReason
401Missing or invalid API key
400Missing file or certificationName in request body
413File exceeds 25 MB limit
415Unsupported file type (PDF only)
429Rate limit exceeded — retry after the delay in the response header
500Server error — contact support@deepstamp.fr