{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/it/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Certificazione — Panoramica","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"certificazione--panoramica","__idx":0},"children":["Certificazione — Panoramica"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Una ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["certificazione"]}," è il processo con cui uno o più file digitali vengono certificati crittograficamente per attestarne:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["l'",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["esistenza"]}," a un determinato momento (timestamp),"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["l'",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["integrità"]}," (i file non sono stati alterati dopo la certificazione),"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["la ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["provenienza"]}," (l'utente che ha effettuato la certificazione)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Il risultato è un insieme di artefatti firmati digitalmente che costituiscono la prova della certificazione."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"le-tre-modalità","__idx":1},"children":["Le tre modalità"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["La Public API offre ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["tre modalità"]}," per creare una certificazione, a seconda di come viene fornito il contenuto:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"certificazione-dati","__idx":2},"children":["Certificazione dati"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Il client invia ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["dati chiave-valore in formato stringa"]}," nel campo obbligatorio ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},". TrueScreen certifica solo quelle coppie (nessun upload di file, nessun elenco di hash)."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/data-certifications"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Chiamate necessarie:"]}," 1"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Livello di sicurezza:"]}," inferiore — i dati sono dichiarati dal chiamante (simile alla certificazione hash)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Costo:"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1 credito per certificazione"]}," (indipendentemente da quante coppie chiave-valore sono in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},")."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Usa ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," per il contenuto certificato"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"certificazione-hash","__idx":3},"children":["Certificazione hash"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Il client invia un elenco di ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["nomi file e hash"]}," (SHA-256) già calcolati. TrueScreen certifica gli hash senza ricevere i file originali."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/hash-certifications"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Chiamate necessarie:"]}," 1"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Livello di sicurezza:"]}," inferiore — il sistema non può verificare che gli hash corrispondano a file reali."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Costo:"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1 credito per ogni hash"]}," inviato."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"certificazione-file","__idx":4},"children":["Certificazione file"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Il client ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["carica i file"]}," tramite URL di upload temporanei. TrueScreen riceve i file originali, ne calcola gli hash e procede alla certificazione."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/file-certifications-attachments"]}," + upload + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/file-certifications"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Chiamate necessarie:"]}," 3 (registrazione file → upload → creazione certificazione)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Livello di sicurezza:"]}," superiore — i file originali vengono processati dal sistema."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Costo:"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["1 credito per ogni file"]}," caricato."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Su ogni elemento di ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["files"]}," in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/file-certifications-attachments"]}]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["creation_datetime"]}]}," è opzionale (ISO 8601 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date-time"]},", stesso oggetto di ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["file_name"]},"). Se presente e valido, viene utilizzata come data di creazione nel ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["jsonData"]}," per quell’allegato. Vedi ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/it/certification-workflow#3-certificazione-file"},"children":["Flusso di chiamate Certificazione"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"confronto-rapido","__idx":5},"children":["Confronto rapido"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Aspetto"},"children":["Aspetto"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Certificazione hash"},"children":["Certificazione hash"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Certificazione dati"},"children":["Certificazione dati"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Certificazione file"},"children":["Certificazione file"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Input"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Nomi file + hash (SHA-256)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stringhe chiave-valore in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["File da caricare"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Upload file"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sì (URL presigned)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Chiamate API"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sicurezza"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Inferiore"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Inferiore"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Superiore"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Costo crediti"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 per hash"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 per certificazione"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 per file"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"certificazione-tramite-mcp","__idx":6},"children":["Certificazione tramite MCP"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["TrueScreen espone i flussi di certificazione anche tramite MCP."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_create_hash_certification"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_create_data_certification"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_get_certification"]}," e ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_wait_for_certification"]}," sono disponibili sia sul server MCP ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["remoto"]}," sia su quello ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["locale"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["La certificazione file è disponibile solo sul server MCP ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["locale"]}," tramite ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_create_file_certification_attachments"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_upload_file"]}," e ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["truescreen_create_file_certification"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Vedi ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/it/mcp-integration"},"children":["Integrazione MCP"]}," per scegliere il server corretto e installarlo."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"artefatti-prodotti","__idx":7},"children":["Artefatti prodotti"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Al completamento della certificazione, il sistema produce tre tipologie di file:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Artefatto"},"children":["Artefatto"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Formato"},"children":["Formato"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Leggibilità"},"children":["Leggibilità"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descrizione"},"children":["Descrizione"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["jsonData"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["JSON"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Machine-readable"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Hash dei file certificati, metadati dei file e metadati utente. Contiene tutte le informazioni per la verifica dell'integrità."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Report PDF"]}," (opzionale)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PDF"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Human-readable"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Report leggibile con i dati salienti dal jsonData. Utile per consultazione diretta (avvocati, auditor, ecc.). Generato solo se previsto dalla configurazione."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["XML firmato"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["XML + XAdES"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Entrambe"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contiene gli hash di jsonData e, quando presente, del report PDF. Firmato digitalmente e marcato temporalmente. È l'elemento che conferisce valore probatorio alla certificazione."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["L'",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["XML firmato"]}," garantisce:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Integrità"]}," — qualsiasi modifica a jsonData o al report PDF (quando presente) invalida la firma."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Autenticità"]}," — la firma digitale attesta che la certificazione è stata emessa dal sistema TrueScreen."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Data certa"]}," — la marca temporale prova che i dati esistevano al momento della certificazione."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"processo-asincrono","__idx":8},"children":["Processo asincrono"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["La generazione della certificazione è ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["asincrona"]},": la risposta alla richiesta di creazione restituisce ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status: \"processing\""]}," e un ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["report_id"]},". Il completamento si verifica in un secondo momento."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Hai ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["due opzioni"]}," per sapere quando la certificazione è pronta:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"webhook","__idx":9},"children":["Webhook"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Passa un ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhook_url"]}]}," nel body della richiesta di creazione. Quando l'elaborazione ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["termina"]}," (successo o errore), TrueScreen effettua una callback ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HTTP POST"]}," verso quell'URL."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Il payload della callback segue il formato envelope ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://www.standardwebhooks.com"},"children":["Standard Webhooks"]}]}," — un oggetto JSON con tre campi top-level:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Campo"},"children":["Campo"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Tipo"},"children":["Tipo"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descrizione"},"children":["Descrizione"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["stringa"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tipo di evento: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["certification.completed"]}," o ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["certification.error"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["timestamp"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["stringa"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Timestamp ISO 8601 di quando l'evento si è verificato"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["oggetto"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Payload dell'evento (vedi sotto)"]}]}]}]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["certification.completed"]}]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," coincide con la risposta ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["200"]}," di ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/certifications/{reportId}"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status: \"completed\""]},", array ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["files"]}," con URL firmati)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["certification.error"]}]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," contiene un documento ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/problem+json"]}]}," (RFC 9457) con la stessa forma della risposta di errore di quella ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Il ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Type"]}," è sempre ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/json"]},"; la distinzione successo/errore si fa tramite il campo ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"verifica-della-firma","__idx":10},"children":["Verifica della firma"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ogni callback include tre header ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Standard Webhooks"]}," per la verifica della firma:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Header"},"children":["Header"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Descrizione"},"children":["Descrizione"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhook-id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Identificativo univoco dell'evento (chiave di idempotency)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhook-timestamp"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Timestamp Unix (secondi dall'epoch) del tentativo di invio"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["webhook-signature"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Firma(e) HMAC-SHA256 nel formato ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v1,<base64>"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["La firma è calcolata su ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{webhook-id}.{webhook-timestamp}.{raw_body}"]}," usando un ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["webhook signing secret"]}," — una chiave dedicata (prefisso ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["whsec_"]},") separata dall'API key, ottenuta dal portale TrueScreen. Per verificare:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ricostruire il contenuto firmato: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["\"{webhook-id}.{webhook-timestamp}.{body}\""]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Calcolare ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HMAC-SHA256"]}," con il signing secret decodificato"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Confrontare (tempo costante) con ogni firma ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["v1,..."]}," nell'header"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Rifiutare se ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["|now - webhook-timestamp| > 300s"]}," (protezione anti-replay)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"polling","__idx":11},"children":["Polling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Interroga periodicamente ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/certifications/{reportId}"]}]}," usando il ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["report_id"]}," ricevuto nella risposta di creazione. Quando la certificazione è completata, la risposta è ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["200"]}," con ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["status: \"completed\""]}," e l'array ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["files"]}," con gli URL firmati. Se l'elaborazione asincrona fallisce, l'API restituisce un ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["codice di errore HTTP"]}," e ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/problem+json"]}]},"—vedi OpenAPI e ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/it/certification-workflow"},"children":["Flusso chiamate certificazione"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"metadati-aggiuntivi","__idx":12},"children":["Metadati aggiuntivi"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In entrambi gli endpoint di creazione puoi passare un campo opzionale ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metadata"]}]},": un oggetto chiave-valore libero con dati personalizzati (es. numero pratica, nome cliente, riferimento contratto)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Le chiavi e i valori del metadata vengono inclusi nel ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["jsonData"]}," e, quando generato, nel ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["report PDF"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Esempio:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"metadata\": {\n    \"case_number\": \"2024/001\",\n    \"client_name\": \"Mario Rossi\",\n    \"contract_ref\": \"CTR-20240315\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"crediti","__idx":13},"children":["Crediti"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Ogni certificazione ha un costo in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["crediti"]}," (unità di valuta acquistabile dal portale TrueScreen)."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Modalità"},"children":["Modalità"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Costo"},"children":["Costo"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Certificazione hash"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 credito per ogni hash inviato"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Certificazione file"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 credito per ogni file caricato"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["I crediti vengono ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["detratti al momento della creazione"]},", prima che la lavorazione asincrona abbia inizio. Se il saldo crediti è insufficiente, la richiesta viene rifiutata con un errore e nessun credito viene scalato."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Puoi verificare il saldo in qualsiasi momento con ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/credits"]}]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"purchased\": 100,\n  \"used\": 35,\n  \"available\": 65,\n  \"expires_at\": \"2026-12-31\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"riferimenti","__idx":14},"children":["Riferimenti"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/it/certification-workflow"},"children":["Flusso di chiamate Certificazione"]}," — Guida operativa con sequenze di chiamate API"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/it/errors"},"children":["Errori API"]}," — Formato RFC 9457, elenco codici e pagine di dettaglio per ogni tipo di errore"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/it/openapi"},"children":["Specifica OpenAPI"]}," — Riferimento tecnico degli endpoint"]}]}]},"headings":[{"value":"Certificazione — Panoramica","id":"certificazione--panoramica","depth":1},{"value":"Le tre modalità","id":"le-tre-modalità","depth":2},{"value":"Certificazione dati","id":"certificazione-dati","depth":3},{"value":"Certificazione hash","id":"certificazione-hash","depth":3},{"value":"Certificazione file","id":"certificazione-file","depth":3},{"value":"Confronto rapido","id":"confronto-rapido","depth":3},{"value":"Certificazione tramite MCP","id":"certificazione-tramite-mcp","depth":2},{"value":"Artefatti prodotti","id":"artefatti-prodotti","depth":2},{"value":"Processo asincrono","id":"processo-asincrono","depth":2},{"value":"Webhook","id":"webhook","depth":3},{"value":"Verifica della firma","id":"verifica-della-firma","depth":4},{"value":"Polling","id":"polling","depth":3},{"value":"Metadati aggiuntivi","id":"metadati-aggiuntivi","depth":2},{"value":"Crediti","id":"crediti","depth":2},{"value":"Riferimenti","id":"riferimenti","depth":2}],"frontmatter":{"title":"Certificazione — Panoramica","description":"Cos'è una certificazione, modalità disponibili, artefatti prodotti e processo asincrono","seo":{"title":"Certificazione — Panoramica"}},"lastModified":"2026-06-25T15:58:45.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/it/certification-overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}