DoConure

Sigillo qualificato e marca temporale qualificata

Due cose che un documento finito può portare e che gli permettono di dimostrarsi da solo, senza di noi. Funzionano su tutte e tre le API — composizione, firma e flusso in una chiamata — e si acquistano a parte rispetto ai prodotti.

Cosa dimostraChi lo afferma
qeSeal questi byte sono usciti da questa organizzazione in questa forma e nessuno li ha toccati da allora (eIDAS art. 35) noi, con un certificato qualificato rilasciato da un QTSP
qualifiedTimestamp questi esatti byte esistevano a quest'ora (eIDAS art. 41) un'autorità di marcatura temporale indipendente

Nessuno dei due cambia il livello della firma. Un sigillo è l'atto di una persona giuridica e non dice nulla su chi ha firmato; la firma resta SES in ogni caso. Vedi Livelli di firma — la distinzione conta, e un documento con cui ci stai confrontando probabilmente la confonde.

Disponibili ora, per ogni organizzazione che non sia di test. Un sigillo costa 2 crediti, un sigillo con la sua marca temporale qualificata 6 (la marca vale 4 e non si vende mai da sola). Il credito regalato li paga come qualunque altro credito. Un'organizzazione che si registra da sola li ha entrambi fin dall'inizio; una aperta da un operatore li ha quando l'operatore li attiva. Si chiedono per chiamata (qeSeal, qualifiedTimestamp) o con l'impostazione della tua organizzazione.

Cosa dicono, e cosa non dicono. Il sigillo è apposto con il certificato d'organizzazione di DoConure, non con uno a nome della tua organizzazione. Dice che il file viene da DoConure e non è stato modificato da allora; non dice chi ha firmato (quella è la firma, che resta SES). Con la marca temporale il file è PAdES B-LT: continua a verificarsi dopo la scadenza del certificato.

Cosa torna indietro. Si pagano prima, e ciò che un problema lascia inutilizzato torna al credito da cui veniva. Una busta paga sigillo e marca insieme alla firma all'invio; se viene annullata, scade o è rifiutata, vengono restituiti (la firma no); se non si possono apporre quando l'ultimo firmatario finisce, vengono restituiti subito, e così quando il fornitore ha ricevuto la richiesta e la sua risposta è andata persa (non la ripetiamo mai). Ogni restituzione è una riga del tuo registro delle attività con il suo codice (ATTESTATION_REFUNDED_*, da 2130 a 2132).

Servono un fornitore esterno configurato per la piattaforma, la funzione abilitata per la tua organizzazione e una configurazione di produzione valida. Finché non ci sono tutti e tre, una richiesta che ne chiede uno viene rifiutata con TRUST_PROVIDER_NOT_CONFIGURED o FEATURE_NOT_ENABLED, mai soddisfatta con un documento non sigillato. Un fornitore simulato è indicato come non qualificato.

Chiederne uno

Entrambi sono facoltativi in settings e hanno tre stati: true lo chiede, false lo rifiuta, e omettere la chiave lascia la decisione all'impostazione della tua organizzazione (vedi la tabella più sotto). Mandare false non applica nulla e non addebita nulla.

POST /api/v1/compose/documents/generate
Authorization: Bearer lpdc_…

{
  "data": { "cliente": "Acme S.r.l." },
  "settings": {
    "templateId": "contract",
    "qeSeal": true,
    "qualifiedTimestamp": true
  }
}

Sull'API di firma le stesse due capacità si chiamano seal e timestamp dal 2026-09-18, e si chiamano ancora così — qui un campo pubblicato è per sempre. qeSeal e qualifiedTimestamp sono accettati anche lì, come alias, così un solo vocabolario funziona su tutte e tre le superfici e nulla di già scritto si rompe.

POST /api/v1/sign/envelopes

{
  "signers": { … },
  "settings": {
    "documentId": "…",
    "subject": "Contratto di servizio",
    "qeSeal": true
  }
}

Su una busta i due sono registrati come intenzione e applicati quando l'ultimo firmatario finisce, il che può accadere giorni dopo. Su una composizione sono applicati dentro la chiamata.

Le quattro combinazioni, e cosa produce ciascuna

La marca temporale è un'opzione del sigillo, non un prodotto a sé: puoi avere il sigillo senza, mai il contrario. Un sigillo è un certificato annuale fisso e una marca costa ogni volta, quindi comprare l'origine senza comprare il tempo è una scelta legittima per un cliente — e il profilo PAdES che ne risulta è riportato in output.compose.trust.padesProfile, così nessuno scopre nel 2031 di aver comprato un sigillo e non dieci anni.

qeSealqualifiedTimestampProfiloCosa vale
falsefalsenullun normale PDF
falsetrue—rifiutato con TIMESTAMP_REQUIRES_SEAL (1012): la marca è un'opzione del sigillo e non si applica mai da sola — vedi sotto
truefalseB-Bl'origine, finché il certificato non scade — dopo non si può più verificare
truetrueB-T o B-LTorigine e tempo. B-LT continua a verificarsi dopo la scadenza del certificato

Quanto costano. Un sigillo apposto da un fornitore qualificato costa 2 crediti e la sua marca temporale qualificata 4 (6 insieme), pagati all'invio per una busta e con il documento per una composizione. Un sigillo o una marca di un fornitore non qualificato (di test o simulato, riportato con TRUST_NOT_QUALIFIED e "qualified": false) non costa nulla: non attesta nulla, quindi non si vende. L'estimatedCredits della prova a vuoto segue la stessa regola. Cosa viene restituito quando uno dei due non è applicato è descritto in cima alla pagina.

La tua organizzazione deve avere la capacità

Si vendono a parte rispetto ai tre prodotti. Un'organizzazione che si è registrata da sola li ha entrambi dall'inizio; per una aperta da un operatore, li attiviamo noi. Il tuo amministratore vede quali sono attivi in Impostazioni → Fiducia e conformità nella console; solo noi possiamo cambiarli.

Una richiesta che ne chiede uno che non hai è rifiutata:

403 Forbidden

{
  "code": "FEATURE_NOT_ENABLED",
  "number": 1007,
  "message": "Qualified electronic seal is not enabled for this organisation…",
  "details": {
    "feature": "qeSeal",
    "enabled": { "qeSeal": false, "qualifiedTimestamp": true },
    "note": "the request was refused, not downgraded"
  },
  "retryable": false
}

Rifiutata su ogni API, e mai prodotta in silenzio senza. È lo stesso ragionamento di SIGNATURE_LEVEL_UNAVAILABLE: ricevere un documento che credi sigillato e non lo è è peggio che sentirsi dire di no. Non si addebita nulla, e details.enabled ti dice cosa hai, così un'integrazione può adattarsi senza una chiamata al supporto.

Le tue impostazioni sono un tetto separato, più basso

Una volta attiva una capacità, la tua organizzazione sceglie ancora quando si applica, in Impostazioni → Autenticità dei documenti. Tre posizioni, che si comportano come ogni altro filtro di questa API:

chiedi truechiedi falsenon dici nulla
offno, con un avvisonono
optionalsìnono
alwayssìsì, con un avvisosì

A differenza del diritto d'uso qui sopra, questo avvisa invece di rifiutare — ricevi il documento normale più un avviso SEAL_NOT_ENABLED o TIMESTAMP_NOT_ENABLED. La differenza è che questo tetto l'ha scelto il tuo amministratore e lo vede nella sua pagina delle impostazioni, quindi ricevere meno è qualcosa che puoi scoprire e su cui puoi agire.

Leggi sempre il valore effettivo, mai la tua richiesta. La risposta riporta quello che è successo davvero:

{
  "settings": { "qeSeal": true, "qualifiedTimestamp": false, … },
  "output": {
    "compose": {
      "trust": {
        "qeSeal":             { "requested": true, "applied": true,
                                "provider": "local",
                                "appliedAt": "2026-09-23T14:02:11+00:00" },
        "qualifiedTimestamp": { "requested": true, "applied": false },
        "padesProfile": "B-B"
      }
    },
    "warnings": [ { "code": "TIMESTAMP_NOT_ENABLED", "number": 2002, … } ]
  }
}

Un errore trattiene il documento

Se hai chiesto un sigillo e non è stato possibile apporlo, la composizione fallisce — 502 con SEAL_FAILED o TIMESTAMP_FAILED — e non torna nessun documento. L'attestazione non viene addebitata.

È voluto. Una composizione si può rifare, quindi trattenerla ti costa un nuovo tentativo; restituire un PDF non sigillato dove era stato chiesto un sigillo qualificato vorrebbe dire attribuire al file una proprietà che non ha, l'unica cosa che questo servizio non farà.

Nessuno dei due è segnato come da ritentare, ed è voluto anche questo: il fornitore potrebbe aver eseguito l'operazione prima che la connessione cadesse, e ritentare alla cieca un'operazione a pagamento è il modo in cui un documento ne costa due. Dove l'errore è chiaramente passeggero — il fornitore non era raggiungibile affatto, un limite di frequenza, un'autorità di marcatura che non ha risposto — ricevi invece TRUST_PROVIDER_UNAVAILABLE, che è da ritentare, con details.category che dice perché.

Il confine tra i due è se il fornitore ha ricevuto la richiesta. Una richiesta di sigillo andata in timeout dopo l'invio torna come SEAL_FAILED con details.category: "OUTCOME_UNKNOWN" — non sappiamo se è stata eseguita, quindi non la ripetiamo mai per conto tuo, e registriamo il riferimento del fornitore ogni volta che lo abbiamo, così l'operazione si può riconciliare dopo.

Una firma data non si perde mai per questo. Una busta si comporta all'opposto, di proposito: se il sigillo fallisce al completamento, la busta si completa lo stesso, con SEAL_NOT_APPLIED tra gli avvisi e padesProfile: null registrato. Una persona ha percorso tutto il flusso di firma; bloccare il suo documento perché l'endpoint di qualcun altro si stava riavviando la punirebbe per un guasto che non è suo, per un'attestazione che si può ottenere di nuovo in altri modi.

Le organizzazioni di test non acquistano mai né l'uno né l'altra

Un'organizzazione segnata come di prova non riceve nessuno dei due, qualunque cosa dicano le sue impostazioni, e la risposta porta PAID_EXTRA_SKIPPED_ON_TEST, così vedi perché il profilo è tornato null. Usa l'organizzazione reale per vedere un documento sigillato.

Lo stesso vale per una singola chiamata: isTest: true insieme a qeSeal: true o qualifiedTimestamp: true è rifiutato con FEATURE_NOT_AVAILABLE_IN_TEST_MODE prima che si riservi o si mandi qualcosa a un fornitore.

Una marca temporale da sola è rifiutata

La marca temporale qualificata esiste solo come opzione del sigillo. Chiedere qualifiedTimestamp: true senza qeSeal: true è rifiutato con TIMESTAMP_REQUIRES_SEAL (1012, HTTP 422, non da ritentare), su ogni porta — composizione, flusso, batch, busta — prima di comporre, riservare, inviare o addebitare qualunque cosa. Una marca da sola verrebbe da un'autorità non necessariamente qualificata e sembrerebbe quello che non è; un documento sigillato senza marca va benissimo.

422 Unprocessable Entity

{
  "code": "TIMESTAMP_REQUIRES_SEAL",
  "number": 1012,
  "message": "a qualified timestamp is an option of the qualified seal and is never applied on its own: …",
  "details": { "feature": "qualifiedTimestamp", "requires": "qeSeal",
               "source": "request" },
  "retryable": false
}

details.source è request quando hai chiesto la marca tu, e organisation setting quando il timestamp_mode della tua organizzazione è always e il documento non è sigillato: imposta anche il Sigillo su always, o la marca su optional. Una busta che perde il sigillo prima di completarsi finisce senza nessuno dei due, e lo dice in due avvisi (SEAL_NOT_APPLIED, TIMESTAMP_NOT_APPLIED).

Chi li esegue

Sigillo qualificato e marca temporale qualificata sono capacità di DoConure. Quale QTSP e quale autorità di marcatura ci siano dietro sta a noi cambiarlo — la richiesta che scrivi, gli errori su cui decidi e i metadati che rileggi non cambiano quando uno viene sostituito. output.compose.trust.*.provider riporta il nostro nome interno di chi l'ha eseguito, così in una conversazione con il supporto c'è qualcosa da citare.

Dove un ambiente gira con un'autorità simulata — il percorso completo gira, e il token non attesta nulla a nessuno — lo dice, su ogni schermata e in capabilities, e qualified è riportato come false qualunque cosa sostenga la configurazione.