---
title: "Genera il certificato PDF firmato"
method: POST
path: "/api/cert-pdf"
---

# Genera il certificato PDF firmato

`POST /api/cert-pdf`

Riceve l'oggetto restituito da POST /api/hash (deve includere `attestazione` + `hmac`, verificati server-side prima di firmare). Chiama authart server-to-server per la firma crittografica; archivia copia in R2. Campo facoltativo `lang` (it|en, P41): sceglie la lingua dei messaggi d'errore e della prosa disegnata a runtime nel PDF (stringa di attestazione, dati dichiarati, dettagli tecnici, data leggibile). Le etichette del template AcroForm (TITOLO, DIMENSIONE, MIME, SHA-256…) restano italiane. Non influisce sul contenuto attestato né sulla firma HMAC: lo stesso token è valido in entrambe le lingue.

## Request body

- object — Oggetto completo restituito da POST /api/hash

## Response `200`

PDF firmato

## Other responses

- `400` — attestazione incoerente con sha256/timestamp_iso
- `403` — HMAC non valido
- `429` — Rate limit per-IP (10/60s, il più basso dell'API: endpoint costoso)
- `503` — HMAC_SECRET non configurato (fail-closed), oppure firma temporaneamente non disponibile (es. deploy del firmatario in corso) — messaggio generico, riprovare tra qualche minuto

---

[API](https://skmtc.net/spaziogenesi/apis/imgauth-api-di-attestazione-opere-digitali.md) · [All operations](https://skmtc.net/spaziogenesi/apis/imgauth-api-di-attestazione-opere-digitali/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spaziogenesi/imgauth-api-di-attestazione-opere-digitali/revisions/99eac1f4f861/schema)
