Guida all'integrazione — Medibridge API
Versione 1.0 — ottobre 2026
Medibridge collega il software gestionale al Fascicolo Sanitario Elettronico (FSE 2.0). Il gestionale invia i dati del referto e il PDF; Medibridge genera il documento clinico (CDA), lo inserisce nel PDF, lo firma dove previsto e lo pubblica verso la regione della struttura, nel protocollo di ciascuna regione. Un'unica integrazione vale per tutte le regioni attive, con le stesse chiamate e gli stessi identificativi.
Questa guida descrive l'integrazione dall'attivazione alla prima pubblicazione in produzione. Le particolarità di ogni regione sono nelle pagine per regione. Il dettaglio di ogni campo è nello Swagger di ciascun ambiente (/docs).
Indice
- In 10 minuti
- Ambienti
- Il percorso di attivazione
- Autenticazione
- Strutture
- Pubblicare un referto
- Dopo la pubblicazione: stato, sostituzione, oscuramento, cancellazione
- I dati del referto
- Leggere le risposte
- Errori: significato e azioni
- Ritentare in sicurezza
- Supporto
- Collaudo
- Privacy e conservazione
- Pagine per regione
- Domande frequenti
0. In 10 minuti
Richiesta di attivazione a support@medibridge.it, con ragione sociale e P.IVA della software house.
Chiave e richiesta di certificato (CSR) per la sandbox: si generano con i comandi del §3.1 e la CSR si invia a Medibridge, che restituisce il certificato di sandbox.
Prima chiamata: con un token firmato (§3.2) si crea una struttura di prova:
curl -X POST https://staging.medibridge.it/api/customers/ \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"organization_name": "Poliambulatorio di prova", "piva": "01234567890", "region": "100"}'Una risposta
201con ilcustomer_idconferma che chiave, certificato e token sono corretti.Dati regionali: Medibridge completa i dati regionali della struttura (§4.2). Da quel momento è possibile pubblicare il primo referto di prova (§5).
1. Ambienti
| Sandbox | Produzione | |
|---|---|---|
| API | https://staging.medibridge.it |
https://api.medibridge.it |
| Documentazione dei campi | https://staging.medibridge.it/docs |
https://api.medibridge.it/docs |
| Destinazione dei referti | ambienti di test delle regioni e del Gateway nazionale | Fascicolo Sanitario Elettronico dei pazienti |
| Certificato | di sandbox | di produzione |
| Strutture | di prova | reali |
I due ambienti sono indipendenti: il certificato di sandbox vale solo in sandbox e quello di produzione solo in produzione, e le strutture create in un ambiente non esistono nell'altro. La sandbox è a disposizione per ogni prova: nessun referto raggiunge il fascicolo di un paziente.
Lo Swagger di ciascun ambiente (/docs) riporta ogni endpoint con campi, tipi e un esempio completo: è il riferimento campo per campo a cui questa guida rimanda.
2. Il percorso di attivazione
| # | Passo | A cura di | Esito |
|---|---|---|---|
| 1 | Richiesta di attivazione, con ragione sociale e P.IVA | integratore | invio della guida e incontro tecnico |
| 2 | Incontro tecnico: regioni delle strutture, tipi di referto, firma del medico o firma delegata, volumi | integratore e Medibridge | piano di attivazione |
| 3 | CSR di sandbox (§3.1) | integratore | certificato di sandbox |
| 4 | Strutture di prova (§4) | creazione: integratore; dati regionali: Medibridge | strutture pronte a pubblicare |
| 5 | Sviluppo dell'integrazione in sandbox | integratore, con il supporto Medibridge | — |
| 6 | Collaudo (§12) | esecuzione: integratore; verifica: Medibridge | collaudo superato |
| 7 | CSR di produzione, con una nuova coppia di chiavi | integratore | certificato di produzione |
| 8 | Strutture reali in produzione | creazione: integratore; dati regionali: Medibridge | strutture attive |
| 9 | Prima pubblicazione reale, seguita insieme | integratore e Medibridge | primo referto nel FSE |
Per tutto il percorso è disponibile un referente tecnico Medibridge. Per qualsiasi dubbio, anche in sviluppo, si scrive a support@medibridge.it indicando l'X-Request-ID della chiamata (§11).
3. Autenticazione
Ogni chiamata porta un token JWT firmato dal gestionale con la chiave privata del proprio certificato. Non esistono login né password: il certificato identifica il software, e la chiave privata resta sempre sui sistemi dell'integratore.
3.1 Chiave e certificato
Si genera una coppia di chiavi e una CSR, una per ambiente:
# Sandbox
openssl req -new -newkey rsa:2048 -nodes \
-keyout medibridge-sandbox.key -out medibridge-sandbox.csr \
-subj "/C=IT/O=Software House S.r.l./CN=01234567890"
Oè la ragione sociale,CNla P.IVA della software house;- a Medibridge si invia solo il file
.csr; il file.keyresta custodito dall'integratore; - Medibridge restituisce il certificato (
.crt, formato PEM), valido 825 giorni.
Per la produzione si ripete lo stesso comando con nomi di file diversi (medibridge-produzione.key / .csr): una chiave distinta per ciascun ambiente.
Il rinnovo prima della scadenza si concorda con Medibridge: è sufficiente una nuova CSR, anche con la stessa chiave.
3.2 Il token di ogni chiamata
Il token viaggia nell'header:
Authorization: Bearer <token>
| Parte | Campo | Valore |
|---|---|---|
| header | alg |
RS256 |
| header | x5c |
elenco con un elemento: il certificato in formato DER, codificato base64 |
| payload | sub |
la P.IVA della software house, la stessa indicata in attivazione |
| payload | vendor |
il nome del software (es. GestionaleClinico) |
| payload | version |
la versione del software (es. 4.2) |
| payload | iat |
istante di emissione (secondi Unix) |
| payload | exp |
scadenza: si consigliano 5 minuti dopo iat |
vendor e version identificano il software che pubblica verso il FSE: vanno scelti con cura, e version si aggiorna a ogni nuovo rilascio del gestionale.
Un token si può riusare per più chiamate fino alla scadenza; la soluzione più semplice è generarne uno nuovo per ogni chiamata, operazione che richiede pochi millisecondi.
Python (pip install pyjwt cryptography):
import base64
import time
import jwt
from cryptography import x509
from cryptography.hazmat.primitives.serialization import Encoding
with open("medibridge-sandbox.crt", "rb") as f:
certificate = x509.load_pem_x509_certificate(f.read())
with open("medibridge-sandbox.key", "rb") as f:
private_key = f.read()
x5c = base64.b64encode(certificate.public_bytes(Encoding.DER)).decode()
def medibridge_token() -> str:
now = int(time.time())
return jwt.encode(
{"sub": "01234567890", "vendor": "GestionaleClinico", "version": "4.2",
"iat": now, "exp": now + 300},
private_key,
algorithm="RS256",
headers={"x5c": [x5c]},
)
Node.js (npm install jsonwebtoken, Node 16 o successivo):
const fs = require("fs");
const crypto = require("crypto");
const jwt = require("jsonwebtoken");
const certificate = new crypto.X509Certificate(fs.readFileSync("medibridge-sandbox.crt"));
const x5c = certificate.raw.toString("base64");
const privateKey = fs.readFileSync("medibridge-sandbox.key");
function medibridgeToken() {
return jwt.sign(
{ sub: "01234567890", vendor: "GestionaleClinico", version: "4.2" },
privateKey,
{ algorithm: "RS256", expiresIn: "5m", header: { x5c: [x5c] } },
);
}
3.3 Esiti dell'autenticazione
| Risposta | Significato | Azione |
|---|---|---|
403 Not authenticated |
manca l'header Authorization |
aggiungere Authorization: Bearer <token> |
401 Missing x5c in JWT header |
il token non porta il certificato | aggiungere x5c nell'header del token |
401 Untrusted signing certificate |
il certificato non è registrato in questo ambiente | usare il certificato dell'ambiente chiamato: sandbox su staging.medibridge.it, produzione su api.medibridge.it |
401 JWT sub does not match registered app_id |
sub diverso dalla P.IVA registrata |
indicare in sub la P.IVA della software house |
401 Invalid JWT |
firma non valida o token scaduto | firmare con la chiave corrispondente al certificato; verificare exp e l'orologio del server |
4. Strutture
Una struttura è un ambulatorio, poliambulatorio o studio per cui il gestionale pubblica referti, identificata dalla sua P.IVA. Ogni referto indica la struttura nel campo piva, e Medibridge ricava dalla struttura registrata tutti i dati regionali: non vanno ripetuti a ogni chiamata.
4.1 Gestione delle strutture
| Operazione | Endpoint | Risposta |
|---|---|---|
| Creazione | POST /api/customers/ |
201 con la struttura; 409 se la P.IVA è già registrata per lo stesso gestionale |
| Creazione in blocco | POST /api/customers/bulk-import |
201 con created e skipped_piva (le P.IVA già presenti) |
| Modifica | PUT /api/customers/{customer_id} |
200 con la struttura aggiornata |
| Eliminazione | DELETE /api/customers/{customer_id} |
204 |
Per creare una struttura bastano tre campi:
{ "organization_name": "Poliambulatorio Rossi", "piva": "01234567890", "region": "100" }
region è il codice della regione in cui opera la struttura (codici nelle pagine per regione).
In blocco:
{
"customers": [
{ "organization_name": "Poliambulatorio Rossi", "piva": "01234567890", "region": "100" },
{ "organization_name": "Studio Bianchi", "piva": "09876543210", "region": "050" }
]
}
Il customer_id restituito serve per modificare o eliminare la struttura.
4.2 I dati regionali della struttura
Per pubblicare, ogni regione richiede i propri identificativi della struttura (codice nel sistema sanitario, azienda sanitaria di riferimento, specialità, ...). La raccolta e l'inserimento di questi dati sono a cura di Medibridge: dopo la creazione della struttura, Medibridge richiede i dati elencati nella pagina della regione, completa la configurazione e comunica quando la struttura è pronta a pubblicare.
5. Pubblicare un referto
Le modalità di pubblicazione sono due, a seconda di chi firma il documento.
5.1 Firma delegata — una sola chiamata
Il documento viene firmato digitalmente da Medibridge per conto della struttura. Un'unica chiamata genera il documento clinico, lo valida, lo firma e lo pubblica:
POST /api/documents/generate/validate-publish-delegated
{
"pdf": "<PDF del referto, base64>",
"piva": "01234567890",
"patient_data": { "...": "..." },
"document_data": { "...": "..." },
"author_data": { "...": "..." }
}
Gestionale ──POST /generate/validate-publish-delegated──▶ Medibridge
├─ genera il CDA e lo inserisce nel PDF
├─ valida presso la regione
├─ firma il PDF
└─ pubblica
Gestionale ◀──────── esito + identificativoDoc + workflowInstanceId
5.2 Firma del medico — due chiamate
Il medico firma il referto con la propria firma qualificata (PAdES). Il FSE richiede che la firma copra anche il documento clinico inserito nel PDF: per questo la firma avviene dopo la validazione, sul PDF restituito da Medibridge.
Passo A — validazione
POST /api/documents/generate/validate
Stesso corpo della firma delegata, con il PDF non firmato. In caso di validazione riuscita la risposta contiene:
{
"status": 201,
"data": { "workflowInstanceId": "...", "...": "..." },
"document_pdf": "<PDF con il CDA incorporato, base64 — da far firmare al medico>"
}
Il medico firma esattamente document_pdf, senza rigenerarlo: la pubblicazione verifica che il documento firmato sia quello validato.
Passo B — pubblicazione del PDF firmato
POST /api/documents/generate/publish-signed
{
"pdf": "<PDF firmato dal medico, base64>",
"piva": "01234567890",
"patient_data": { "...": "..." },
"document_data": { "...": "...", "workflowInstanceId": "<dal passo A>" }
}
Gestionale ──POST /generate/validate──▶ Medibridge ──▶ validazione regionale
Gestionale ◀── document_pdf + workflowInstanceId
Medico firma document_pdf (PAdES)
Gestionale ──POST /generate/publish-signed──▶ Medibridge ──▶ pubblicazione
Gestionale ◀── esito + identificativoDoc
Nota: il passo B è indipendente dal passo A. Le due chiamate non condividono stato:
publish-signedriceve nel corpo tutto ciò che gli serve e può seguire anche una validazione eseguita fuori da Medibridge, ad esempio da un gestionale che genera e valida il documento clinico per conto proprio. In questo caso:
- il
workflowInstanceIddeve essere quello restituito dal Gateway FSE per la validazione di questo stesso documento, nello stesso ambiente (sandbox o produzione). Una validazione solo locale (XSD, schematron) non produce unworkflowInstanceIde non basta;- il PDF deve contenere già il documento clinico, e la firma PAdES deve coprirlo: Medibridge non genera né modifica nulla, pubblica il file così com'è;
- l'elemento
<id>del documento clinico deve coincidere con l'identificativoDocche Medibridge ricava dadocument_data(sez. 5.4), altrimenti la regione rifiuta il documento. L'anteprima (sez. 5.3) mostra il valore atteso;patient_dataedocument_datavanno inviati comunque completi: da essi si compongono i metadati di pubblicazione;
5.3 Anteprima del documento
POST /api/documents/generate/pdf
Restituisce il PDF con il documento clinico incorporato, senza inviarlo alla regione: in sviluppo consente di controllare i dati, e il documento è identico a quello che verrebbe pubblicato.
5.4 La risposta di una pubblicazione
{
"status": 202,
"data": { "...": "risposta della regione, così come inviata" },
"identificativoDoc": "<radice OID della regione>^<identificativo del referto>",
"workflowInstanceId": "<identificativo dell'operazione>"
}
| Campo | Funzione | Da conservare |
|---|---|---|
status |
esito restituito dalla regione | — |
data |
risposta completa della regione | utile in caso di contestazione |
identificativoDoc |
l'identificativo del referto: è l'unico identificativo da usare per sostituirlo, oscurarlo o cancellarlo, in qualunque regione | sempre |
workflowInstanceId |
identifica l'operazione; serve per verificarne l'esito (§6.1) | sì |
6. Dopo la pubblicazione
Ogni operazione successiva identifica il referto con il suo identificativoDoc, nello stesso modo in tutte le regioni: le differenze di protocollo fra regioni sono gestite da Medibridge. Le operazioni attive in ciascuna regione sono indicate nella pagina regionale.
L'identificativoDoc contiene ^ e va inserito nel path codificato (percent-encoding), ad esempio con urllib.parse.quote(identificativo, safe="") in Python o encodeURIComponent in JavaScript.
6.1 Verificare l'esito
In alcune regioni la pubblicazione è asincrona: la risposta 202 conferma la presa in carico, e l'indicizzazione nel fascicolo segue dopo pochi secondi. Lo stato si legge con:
GET /api/documents/status/{workflowInstanceId}?piva=01234567890
{
"status": 200,
"data": { "...": "eventi restituiti dalla regione" },
"verdict": "SUCCESS",
"checked_event": "SEND_TO_INI",
"event_status": "SUCCESS"
}
verdict |
Significato | Azione |
|---|---|---|
SUCCESS |
operazione completata nel fascicolo | nessuna |
PENDING |
operazione ancora in lavorazione | nuova lettura dopo 10 secondi; di norma ne bastano una o due |
FAILED |
la regione ha rifiutato l'operazione | leggere data, correggere e ripubblicare |
UNKNOWN |
la risposta non contiene eventi riconoscibili | contattare il supporto con l'X-Request-ID |
Anche il workflowInstanceId va codificato nel path. È disponibile anche la ricerca per traceId: GET /api/documents/status/search/{traceId}?piva=....
6.2 Sostituire un referto
PUT /api/documents/generate/update/{identificativoDoc}
Stesso corpo della firma delegata (§5.1), con il PDF e i dati della nuova versione. La risposta ha la forma di una pubblicazione e contiene l'identificativoDoc della nuova versione, da conservare al posto del precedente.
Con "documentoAnnullativo": true nel corpo, la nuova versione annulla la precedente invece di correggerla.
6.3 Oscurare un referto pubblicato
PUT /api/documents/{identificativoDoc}/metadata
{
"piva": "01234567890",
"patient_data": { "...": "..." },
"document_type": "RSA",
"document_data": { "...": "dati del referto, come inviati alla pubblicazione" },
"confidentiality": "V"
}
confidentiality: "V" oscura il referto, "N" lo rende di nuovo visibile. document_data è lo stesso inviato alla pubblicazione: i metadati richiesti dalla regione vengono composti da Medibridge a partire da questi dati e dalla struttura registrata.
6.4 Cancellare un referto
DELETE /api/documents/{identificativoDoc}
{
"piva": "01234567890",
"patient_data": { "...": "..." },
"document_type": "RSA",
"workflowInstanceIdUpdate": "<workflowInstanceId della pubblicazione>"
}
La cancellazione ha un corpo JSON, come le altre chiamate, e rimuove il referto dal fascicolo. Nelle regioni asincrone la risposta riporta il workflowInstanceId della cancellazione, con cui verificarne l'esito (§6.1).
Nota: nelle Marche la cancellazione funziona diversamente. La Regione Marche non ammette la cancellazione con i soli dati qui sopra: per annullare un referto si invia un documento annullativo, cioè la copia del referto con la dicitura «Annullato», firmata dal medico. La chiamata resta
DELETE /api/documents/{identificativoDoc}, ma riceve anche il PDF annullativo firmato: il gestionale deve quindi prevedere una firma del medico anche per annullare. I dettagli sono nella pagina Marche.
7. I dati del referto
Il corpo delle chiamate è JSON; i PDF viaggiano come stringa base64 all'interno del JSON.
| Blocco | Contenuto |
|---|---|
piva |
la struttura che pubblica (registrata come in §4) |
patient_data |
il paziente: codice fiscale, nome, cognome, data di nascita, sesso, consenso |
document_data |
il referto: tipo, numero, date, medico che firma, riservatezza, sezioni cliniche |
author_data |
il medico autore del referto |
7.1 Tipi di referto
documentType |
Referto |
|---|---|
RSA |
specialistico ambulatoriale |
RAD |
radiologico |
LAB |
di laboratorio — in approvazione presso il Gateway nazionale |
CERT_VACC |
certificato vaccinale — in approvazione presso il Gateway nazionale |
SING_VACC |
singola vaccinazione — in approvazione presso il Gateway nazionale |
Ogni pagina regionale indica i tipi attivi nella regione.
7.2 Campi principali
documentNumber: il numero del referto nel gestionale. Deve essere unico per struttura: diventa parte dell'identificativoDoc.submissionId: un progressivo numerico diverso a ogni invio (pubblicazione o sostituzione), ad esempio un contatore o un timestamp in millisecondi. Alcune regioni rifiutano come duplicato un invio con unsubmissionIdgià usato.confidentiality:N(normale) oV(oscurato: visibile solo al paziente e a chi ha il suo consenso esplicito).consent(inpatient_data): consenso del paziente all'alimentazione del fascicolo.action:CREATEper pubblicazione e validazione,UPDATEper la sostituzione.workflowInstanceId: solo nel passo B della firma del medico (§5.2).
Lo Swagger di ciascun ambiente riporta ogni campo con tipo, valori ammessi e un esempio completo per ogni tipo di referto.
8. Leggere le risposte
Ogni risposta ha due livelli:
- lo status HTTP, che segue l'esito dell'operazione:
2xxindica un'operazione riuscita,4xx/5xxun'operazione non riuscita; - il corpo, con
statusedatarestituiti dalla regione così come inviati.
Lo status HTTP è quindi sufficiente per sapere se un'operazione è riuscita; il corpo ne spiega il motivo. Le letture dello stato (§6.1) rispondono sempre 200: l'esito dell'operazione verificata è in verdict.
Ogni risposta, anche di errore, porta l'header X-Request-ID (§11).
9. Errori
| Codice | Significato | Azione |
|---|---|---|
400 |
dati della richiesta non validi | correggere secondo il messaggio (formato sotto) |
400 Dati organizzazione incompleti |
la struttura non ha ancora i dati regionali completi | contattare Medibridge per il completamento (§4.2) |
401 / 403 |
autenticazione non riuscita | §3.3 |
402 |
pubblicazioni sospese per l'account | leggere reason (sotto) e contattare Medibridge |
404 Cliente non trovato o non attivo per questa piva |
nessuna struttura attiva con quella P.IVA in questo ambiente | creare la struttura (§4) o verificare la piva |
404 Documento ... non trovato |
nessun referto con quell'identificativoDoc nel fascicolo regionale |
verificare l'identificativo e la sua codifica nel path |
409 |
risorsa già esistente, ad esempio una struttura con la stessa P.IVA | usare quella esistente |
410 |
il documento clinico non rispetta lo schema (XSD) | correggere i dati indicati in detail.failures |
420 |
il documento clinico non rispetta le regole di validazione (Schematron) | correggere secondo la regola in detail.failures |
430 |
errore del validatore | contattare il supporto con l'X-Request-ID |
4xx / 5xx dalla regione |
la regione ha rifiutato l'operazione | il motivo è in data, con il codice della regione |
502 |
la validazione regionale non è riuscita | il motivo è in detail.validation_error |
503 |
la regione della struttura non è ancora attiva in questo ambiente | contattare Medibridge |
500 |
errore interno | contattare il supporto con il request_id presente nel corpo |
400 — formato dei dati. Un elenco leggibile delle correzioni necessarie:
{ "validation_errors": ["body -> document_data -> confidentiality: Input should be 'N' or 'V'"] }
410 / 420 — documento clinico. Lo stadio di validazione e le regole non rispettate:
{ "detail": { "stage": "Schematron", "message": "...", "failures": ["..."] } }
402 — account. Il campo reason indica la causa:
reason |
Causa |
|---|---|
billing_blocked |
un pagamento è in sospeso |
package_exhausted |
i referti del pacchetto prepagato sono esauriti |
Il 402 riguarda solo le nuove pubblicazioni: cancellazioni e letture dello stato restano sempre disponibili.
10. Ritentare in sicurezza
- Timeout: almeno 120 secondi. Una pubblicazione comprende generazione del documento, firma e due chiamate alla regione.
- Errori
4xx: la stessa richiesta darebbe lo stesso risultato; si correggono i dati e si invia una nuova richiesta. - Errori
5xxo timeout su una pubblicazione: prima di ripubblicare si verifica lo stato (§6.1). Un secondo invio con lo stessodocumentNumberviene rifiutato dalla regione come duplicato. - Disservizi regionali: nuovi tentativi con attese crescenti (1, 5, 15 minuti). Per i disservizi prolungati Medibridge invia una comunicazione.
11. Supporto
Ogni risposta porta l'header X-Request-ID, un codice univoco della chiamata: con questo codice il supporto ritrova in pochi secondi la chiamata, il suo esito e la risposta della regione.
Ogni segnalazione relativa a una chiamata riporta:
- l'
X-Request-ID; - l'ambiente (sandbox o produzione) e l'ora approssimativa.
I dati del paziente e il PDF non sono necessari: l'X-Request-ID è sufficiente.
Contatti: support@medibridge.it.
12. Collaudo
Prima del passaggio in produzione si eseguono in sandbox i casi seguenti, per ogni tipo di referto previsto, e si inviano a Medibridge gli X-Request-ID di ciascuno. Medibridge li verifica e conferma il passaggio in produzione.
| # | Caso | Esito atteso |
|---|---|---|
| 1 | Pubblicazione di un referto | 2xx, identificativoDoc conservato |
| 2 | Verifica dell'esito, nelle regioni asincrone | verdict: SUCCESS |
| 3 | Pubblicazione di un referto oscurato (confidentiality: V) |
2xx |
| 4 | Sostituzione del referto del caso 1 | 2xx, nuovo identificativoDoc conservato |
| 5 | Oscuramento e ritorno alla visibilità, dove disponibile | 2xx per entrambe le operazioni |
| 6 | Cancellazione | 2xx |
| 7 | Errore gestito: referto con un campo obbligatorio mancante | 400, messaggio mostrato all'utente |
| 8 | Nuova pubblicazione con lo stesso documentNumber |
rifiuto della regione, gestito senza ripubblicazioni in ciclo |
Le pagine regionali indicano gli eventuali casi aggiuntivi richiesti da ciascuna regione.
13. Privacy e conservazione
- I dati del paziente e i PDF vengono elaborati nella sola chiamata e restituiti al gestionale: Medibridge non li conserva.
- Del traffico si conserva un registro tecnico a fini di supporto (ora, endpoint, esito, durata, messaggio d'errore con i codici fiscali mascherati), cancellato dopo 90 giorni.
- La conservazione dei referti e dei loro identificativi (
identificativoDoc,workflowInstanceId) è a cura del gestionale, sistema di riferimento della struttura.
14. Pagine per regione
| Regione | Codice | Sandbox | Produzione | Pagina |
|---|---|---|---|---|
| Umbria | 100 |
disponibile | in attivazione | Umbria |
| Veneto | 050 |
disponibile | in attivazione | Veneto |
| Lazio | 120 |
in collaudo regionale | in attivazione | Lazio |
| Marche | 110 |
in attivazione | in attivazione | Marche |
Per le altre regioni, i tempi di attivazione si concordano con Medibridge.
15. Domande frequenti
Una struttura appena creata può pubblicare? Dopo il completamento dei dati regionali (§4.2), che Medibridge comunica.
Come si verifica che un referto sia nel fascicolo? Uno status HTTP 2xx indica che la regione ha accettato il referto. Nelle regioni asincrone la conferma finale è verdict: SUCCESS nel recupero stato (§6.1).
Il modo di chiamare le API cambia da regione a regione? No: endpoint, corpi delle richieste e identificativi sono gli stessi in tutte le regioni. Cambiano solo i dati regionali della struttura, gestiti da Medibridge, e le operazioni attive, indicate nelle pagine regionali.
Che differenza c'è tra /generate/public e /generate/validate-publish-delegated? Nessuna: sono lo stesso flusso di firma delegata. Si raccomanda /generate/validate-publish-delegated.
Il certificato di sandbox vale anche in produzione? No: i certificati sono due, uno per ambiente (§1).
I dati della struttura vanno inviati a ogni chiamata? No: basta la piva. Gli altri dati vengono ricavati dalla struttura registrata.
Storico delle versioni
| Versione | Data | Novità |
|---|---|---|
| 1.0 | ottobre 2026 | ambienti sandbox e produzione, percorso di attivazione, sostituzione e cancellazione con l'identificativoDoc in tutte le regioni, verifica dello stato, pagine per regione, collaudo |
| 0.1 | agosto 2026 | prima bozza |
Umbria — codice regione 100
| Sandbox | disponibile |
| Produzione | in attivazione — la data viene comunicata durante l'onboarding |
| Pubblicazione | asincrona: 202 = presa in carico, conferma con il recupero stato |
| Strutture ammesse | convenzionate, accreditate e autorizzate |
Operazioni
| Operazione | Disponibile |
|---|---|
| Pubblicazione con firma delegata (guida §5.1) | ✓ |
| Pubblicazione con firma del medico (guida §5.2) | ✓ |
Referto oscurato (confidentiality: V) |
✓ |
| Recupero stato (guida §6.1) | ✓ |
| Sostituzione (guida §6.2) | ✓ |
| Oscuramento dopo la pubblicazione (guida §6.3) | in attivazione |
| Cancellazione (guida §6.4) | ✓ |
Tipi di referto
RSA e RAD sono attivi. LAB, CERT_VACC e SING_VACC sono pronti in sandbox e si attivano in produzione con l'approvazione del Gateway nazionale.
La pubblicazione
La pubblicazione in Umbria è asincrona:
- la pubblicazione risponde
202con ilworkflowInstanceId; - il recupero stato restituisce
verdict: SUCCESSsull'eventoSEND_TO_INI, di norma entro 10–20 secondi.
Sostituzione e cancellazione si confermano allo stesso modo. La sostituzione apre una nuova operazione: il suo esito si verifica con il workflowInstanceId restituito dalla sostituzione stessa. La cancellazione si conferma sull'evento INI_DELETE.
Dati della struttura richiesti
| Dato | Esempio |
|---|---|
| Tipo di codice della struttura: STS.11, HSP.11, RIA.11 oppure P.IVA (strutture autorizzate) | STS.11 |
| Codice della struttura | 100-201-030101 |
| Denominazione | Poliambulatorio Piazzale Europa |
| Azienda sanitaria di riferimento | Azienda USL Umbria 1 |
| Specialità (una per struttura) | Radiodiagnostica |
| Indirizzo completo con codice ISTAT del comune, telefono, PEC ed email | — |
Il primo dato da chiarire è se l'azienda sanitaria abbia assegnato alla struttura un codice STS.11, HSP.11 o RIA.11. Le strutture autorizzate, prive di codice regionale, si identificano con la P.IVA.
Ogni struttura dichiara una sola specialità: le strutture che pubblicano referti di aree diverse (ad esempio radiologia e laboratorio) si configurano in fase di onboarding.
Collaudo
Ai casi della guida §12 si aggiungono:
- un referto oscurato;
- un referto in regime di maggior tutela, oscurato e in chiaro.
Il collaudo regionale si svolge un tipo di referto alla volta; la documentazione per la Regione è predisposta da Medibridge a partire dagli identificativi delle prove eseguite in sandbox.
Veneto — codice regione 050
| Sandbox | disponibile |
| Produzione | in attivazione — la data viene comunicata durante l'onboarding |
| Pubblicazione | sincrona: la risposta contiene già l'esito definitivo |
| Pazienti | è sufficiente il codice fiscale: il codice regionale del paziente viene ricavato da Medibridge |
Operazioni
| Operazione | Disponibile |
|---|---|
| Pubblicazione con firma delegata (guida §5.1) | ✓ |
| Pubblicazione con firma del medico (guida §5.2) | ✓ |
Referto oscurato (confidentiality: V) |
✓ |
| Sostituzione (guida §6.2) | ✓ |
| Oscuramento dopo la pubblicazione (guida §6.3) | ✓ |
| Cancellazione (guida §6.4) | ✓ |
Sostituzione, oscuramento e cancellazione usano l'identificativoDoc restituito dalla pubblicazione, come in tutte le altre regioni: i riferimenti richiesti dal fascicolo veneto vengono ricavati da Medibridge.
Tipi di referto
RSA e RAD sono attivi. LAB, CERT_VACC e SING_VACC si attivano con l'approvazione del Gateway nazionale.
La pubblicazione
In Veneto la pubblicazione è sincrona: una risposta con status 2xx indica che il referto è già registrato nel fascicolo, senza bisogno del recupero stato. Lo stesso vale per sostituzione, oscuramento e cancellazione.
Il Veneto identifica i pazienti con un codice regionale diverso dal codice fiscale. Il gestionale invia il codice fiscale come per ogni altra regione, e il codice regionale viene ricavato dall'anagrafe regionale prima della pubblicazione. Sono gestiti anche i pazienti stranieri con codice STP o ENI, anche se registrati in un'altra regione.
La cancellazione rimuove dal fascicolo sia i dati del referto sia il documento.
Dati della struttura richiesti
| Dato | Esempio |
|---|---|
| Codice della struttura (STS.11) | 050101123456 |
| Denominazione | Poliambulatorio San Marco |
| Azienda ULSS di riferimento | Azienda ULSS 3 Serenissima |
| Specialità | Radiodiagnostica |
| Indirizzo completo, telefono, PEC ed email | — |
In Veneto il codice della struttura entra nell'identificativo di ogni referto: ogni struttura ha quindi identificativi propri, e più strutture si attivano in modo indipendente.
Lazio — codice regione 120
| Sandbox | in collaudo regionale |
| Produzione | in attivazione, al termine del collaudo regionale |
| Pubblicazione | asincrona: 2xx = presa in carico, conferma con il recupero stato |
Operazioni
| Operazione | Disponibile |
|---|---|
| Pubblicazione con firma delegata (guida §5.1) | in collaudo |
| Pubblicazione con firma del medico (guida §5.2) | in collaudo |
| Recupero stato (guida §6.1) | in collaudo |
| Sostituzione, oscuramento e cancellazione | in collaudo |
Gli aggiornamenti sul collaudo regionale vengono comunicati man mano. Lo sviluppo dell'integrazione può procedere in sandbox con le altre regioni: le chiamate sono le stesse.
La pubblicazione
La pubblicazione nel Lazio passa dal Middleware regionale ed è asincrona: una risposta 2xx conferma la presa in carico, e l'indicizzazione nel fascicolo si verifica con il recupero stato, come in Umbria.
Dati della struttura richiesti
| Dato | Esempio |
|---|---|
| Ragione sociale | Poliambulatorio Rossi S.r.l. |
| P.IVA (identifica la struttura verso la Regione) | 01234567890 |
| Azienda sanitaria di riferimento | ASL Roma 1 |
| Specialità | Radiodiagnostica |
| Indirizzo completo, telefono, PEC ed email | — |
Nel Lazio la struttura si identifica con la P.IVA, da indicare esattamente come registrata, zeri iniziali compresi.
Marche — codice regione 110
| Sandbox | in attivazione |
| Produzione | in attivazione, al termine del collaudo regionale |
L'integrazione con la piattaforma regionale delle Marche è in corso. Le chiamate sono le stesse delle altre regioni: l'integrazione si sviluppa in sandbox fin da ora, e le strutture marchigiane si attivano appena la regione è disponibile, senza modifiche al codice del gestionale.
Dati da raccogliere fin da ora
Per accelerare l'attivazione, i dati delle strutture marchigiane si raccolgono già oggi:
| Dato | Esempio |
|---|---|
| Ragione sociale | Centro Medico Adriatico S.r.l. |
| P.IVA | 01234567890 |
| Codice della struttura, se assegnato dall'azienda sanitaria | — |
| Azienda sanitaria territoriale di riferimento | AST Ancona |
| Specialità | Radiodiagnostica |
| Indirizzo completo, telefono, PEC ed email | — |
La data di disponibilità in sandbox e le operazioni attive vengono comunicate da Medibridge.
Cancellazione
Stato: in attivazione.
Nelle Marche un referto pubblicato non si cancella con i soli dati della guida sez. 6.4: la Regione richiede un documento annullativo, che prende il posto del referto nel fascicolo e lo annulla.
| Documento annullativo | |
|---|---|
| Contenuto | la copia del referto da annullare, con la dicitura «Annullato» |
| Firma | firma digitale PAdES del medico, come per la pubblicazione |
| Validazione | come ogni nuovo referto, prima dell'invio alla Regione |
La chiamata resta DELETE /api/documents/{identificativoDoc}, con l'identificativoDoc del referto da annullare, ma riceve anche il PDF annullativo firmato. Per il gestionale la cancellazione richiede quindi una firma del medico, esattamente come la pubblicazione: il flusso di annullamento va progettato con questo passaggio. Il formato del corpo e la sequenza delle chiamate vengono comunicati da Medibridge con l'attivazione dell'operazione.
Un referto già sostituito si corregge con una nuova sostituzione, non con un annullamento: per le regole regionali, annullare la versione sostitutiva rende invisibile nel fascicolo anche la versione che aveva sostituito.