API Endpoints
Documentazione completa degli endpoint REST disponibili per Askme Desk.
Base URL
https://desk.askme.it/Askme/rest
Autenticazione
Tutti gli endpoint richiedono un token Bearer OAuth 2.0.
Authorization: Bearer {access_token}
Content-Type: application/json
Richieste (I Livello)
Creare Richiesta
POST /richieste/creazione-richiesta
Crea una nuova richiesta di I livello nel sistema.
Body (CreazioneRichiestaBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idUtente | Long | Si | ID dell'utente |
idRichiesta | long | Si | ID della richiesta |
idServizio | Long | Si | ID del servizio |
idAssetRoot | Long | No | ID dell'asset padre |
idAssetFiglio | Long | No | ID dell'asset figlio |
idTipoRichiesta | Long | Si | ID del tipo richiesta |
idUrgenza | Long | No | ID dell'urgenza |
idItem | Long | No | ID dell'item (CI) associato |
oggetto | string | Si | Oggetto della richiesta |
descrizione | string | No | Descrizione dettagliata |
note | string | No | Note aggiuntive |
codiceCanale | string | No | Codice del canale di apertura (es. WEB, TEL, MAIL) |
dataSegnalazione | string | No | Data di segnalazione (formato ISO 8601) |
dataScadenza | string | No | Data di scadenza manuale |
idUpload | string | No | ID dell'upload per allegati (ottenuto da /upload/upload-id) |
nomeAllegati | array | No | Lista nomi file allegati |
idProblemiAss | array | No | Lista ID problemi da associare |
listaSezioniRichiesta | array | No | Sezioni con attributi aggiuntivi |
La combinazione Servizio + Asset + Tipo Richiesta forma la "terna", che determina SLA, workflow e notifiche. Puoi usare i codici al posto degli ID: codServizio, codAssetRoot, codAssetFiglio, codTipoRichiesta, codUrgenza.
Esempio di Richiesta
curl -X POST "https://desk.askme.it/Askme/rest/richieste/creazione-richiesta" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"idServizio": 1,
"idAssetRoot": 10,
"idTipoRichiesta": 5,
"idUrgenza": 2,
"oggetto": "Problema di login",
"descrizione": "Non riesco ad accedere al portale aziendale",
"codiceCanale": "WEB"
}'
Risposta (200 OK) — InfoCreazioneRichiesta
{
"idRichiesta": 12345,
"idTicket": null,
"protocolloTicket": null,
"esitoInvioMail": true
}
| Campo | Tipo | Descrizione |
|---|---|---|
idRichiesta | Long | ID della richiesta creata |
idTicket | Long | ID del ticket generato automaticamente (se configurato) |
protocolloTicket | string | Protocollo del ticket generato |
esitoInvioMail | boolean | Esito dell'invio delle notifiche email |
Creare Richiesta (Contact Center)
POST /richieste/creazione-richiesta-ct
Crea una richiesta per conto di un altro utente (uso tipico: operatore di Contact Center).
Accetta gli stessi campi di CreazioneRichiestaBean con in piu:
| Campo | Tipo | Descrizione |
|---|---|---|
idUtenteRichiedente | integer | ID dell'utente per cui si crea la richiesta |
idPriorita | integer | ID della priorita |
presaInCaricoAutomatica | boolean | Se true, la richiesta viene automaticamente presa in carico |
Elenco Richieste
GET /paginated
Restituisce la lista delle richieste. I criteri di ricerca vengono passati nel body.
Body (RicercaRichiestaDto) — Parametri principali
| Campo | Tipo | Descrizione |
|---|---|---|
idRichiesta | string | Filtro per ID richiesta |
stato | string | Stato della richiesta |
statoRichiesta | string | Stato specifico (aperta, chiusa, ecc.) |
oggetto | string | Ricerca nell'oggetto |
descrizione | string | Ricerca nella descrizione |
listaIdServizio | array | Filtro per ID servizi |
listaIdAsset | array | Filtro per ID asset |
listaIdTipoRichiesta | array | Filtro per ID tipi richiesta |
listaIdUrgenza | array | Filtro per ID urgenze |
listaIdPriorita | array | Filtro per ID priorita |
listaStatoAvanz | array | Filtro per stati avanzamento |
dataRichiestaDa / dataRichiestaA | string | Range data richiesta |
dataChiusuraDa / dataChiusuraA | string | Range data chiusura |
idUtenteAssegnatario | integer | Filtro per assegnatario |
ordina | string | Campo di ordinamento |
verso | string | Direzione ordinamento (ASC / DESC) |
maxResults | integer | Numero massimo di risultati |
Risposta (200 OK) — DatatableOutput
{
"data": [
{
"idRichiesta": 12345,
"oggetto": "Problema di login",
"statoAvanz": "A",
"statoRichiesta": "Aperta",
"dataRichiesta": "2025-01-15T10:30:00",
"servizio": { "id": 1, "codice": "SRV_IT", "nome": "Servizio IT" },
"urgenza": { "id": 2, "codice": "HIGH", "nome": "Alta" },
"utenteAssegnatario": {
"idUtente": 100,
"nome": "Giuseppe",
"cognome": "Verdi",
"matricola": "M001"
}
}
],
"recordsTotal": 150,
"recordsFiltered": 42,
"message": ""
}
Liste Richieste Specializzate
Sono disponibili endpoint specifici per diversi punti di vista:
| Endpoint | Metodo | Descrizione |
|---|---|---|
/richieste/lista-richieste-fornitore | GET | Richieste visibili al fornitore |
/richieste/lista-richieste-fornitore-paginated | GET | Versione paginata |
/richieste/lista-richieste-cliente | GET | Richieste visibili al cliente |
/richieste/lista-richieste-cliente-paginated | GET | Versione paginata |
/richieste/lista-richieste-assegnate | GET | Richieste assegnate all'utente |
/richieste/lista-richieste-assegnate-paginated | GET | Versione paginata |
/richieste/ricerca-richiesta-rest | GET | Ricerca avanzata |
Le liste fornitore e ricerca supportano l'esportazione CSV tramite gli endpoint:
GET /richieste/lista-richieste-fornitore.csvGET /richieste/ricerca-richiesta.csv
Dettaglio Richiesta
GET /richieste/{idRichiesta}
Parametri
| Nome | In | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
idRichiesta | path | integer | Si | ID della richiesta |
viewAsCustomer | query | boolean | No | Visualizzazione lato cliente |
stripRichText | query | boolean | No | Rimuovi formattazione rich text |
Risposta (200 OK) — DettaglioRichiestaBean
{
"idRichiesta": 12345,
"oggetto": "Problema di login",
"descrizione": "Non riesco ad accedere al portale aziendale",
"note": "Tentati reset password senza successo",
"statoAvanz": "P",
"statoRichiesta": "In lavorazione",
"statoAssegnazione": "Assegnata",
"servizio": { "id": 1, "codice": "SRV_IT", "nome": "Servizio IT" },
"assetPadre": { "id": 10, "codice": "HW", "nome": "Hardware" },
"tipoRichiesta": { "id": 5, "codice": "INC", "nome": "Incident" },
"urgenza": { "id": 2, "codice": "HIGH", "nome": "Alta" },
"priorita": { "id": 3, "codice": "P2", "nome": "Priorita 2" },
"aziendaCliente": { "id": 1, "nome": "Acme S.p.A." },
"dataRichiesta": "2025-01-15T10:30:00",
"dataSegnalazione": "2025-01-15T09:00:00",
"dataPcarico": "2025-01-15T10:45:00",
"dataScadenza": "2025-01-16T10:30:00",
"utenteCre": { "idUtente": 50, "nome": "Mario", "cognome": "Rossi", "matricola": "M050" },
"utenteAssegnatario": { "idUtente": 100, "nome": "Giuseppe", "cognome": "Verdi" },
"utentePCarico": { "idUtente": 100, "nome": "Giuseppe", "cognome": "Verdi" },
"nrTicket": 2,
"nrTicketA": 1,
"minLavorazione": 45,
"allegati": [],
"sezioni": [],
"ticket": [],
"sospensioni": [],
"assegnazioni": []
}
Perfezionamento Richiesta
POST /richieste/perfezionamento-richiesta
Perfeziona una richiesta esistente (modifica terna, priorita, attributi).
Body (PerfezionamentoRichiestaBean)
| Campo | Tipo | Descrizione |
|---|---|---|
idRichiesta | integer | ID della richiesta |
idServizio | integer | Nuovo servizio |
idAssetRoot | integer | Nuovo asset padre |
idAssetFiglio | integer | Nuovo asset figlio |
idTipoRichiesta | integer | Nuovo tipo richiesta |
idPriorita | integer | Nuova priorita |
idRichiedente | integer | Nuovo richiedente |
cambiaTerna | boolean | Se true, permette il cambio terna |
notePerfezionamento | string | Note di perfezionamento |
GET /richieste/perfezionamento-richiesta/{idRichiesta}
Recupera le informazioni necessarie per il perfezionamento.
Modifica Richiesta
POST /richieste/modifica
Body (ModificaRichiestaBean)
| Campo | Tipo | Descrizione |
|---|---|---|
idRichiesta | integer | ID della richiesta |
oggetto | string | Nuovo oggetto |
descrizione | string | Nuova descrizione |
note | string | Nuove note |
nomeAllegati | array | Nuovi allegati |
idUpload | string | ID upload allegati |
Risposta (200 OK)
{
"idRichiesta": 12345,
"esitoModifica": true,
"esitoInvioMail": true
}
Assegnazione Richiesta
POST /richieste/assegnazione-richiesta
Assegna una richiesta a un operatore.
Body (AssegnazioneRichiestaBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idRichiesta | integer | Si | ID della richiesta |
idUtenteAssegnatore | integer | Si | ID dell'operatore che assegna |
idUtenteAssegnatario | integer | Si | ID dell'operatore assegnatario |
durataAss | integer | No | Durata prevista dell'assegnazione (minuti) |
noteAss | string | No | Note sull'assegnazione |
dataScadenzaAssDate | string | No | Data di scadenza dell'assegnazione |
Risposta (200 OK)
{
"idRichiesta": 12345,
"esitoAssegnazione": true,
"esitoInvioMail": true,
"conflittoAssegnazione": false,
"idAssegnazione": 678
}
POST /richieste/auto-assegnazione
Auto-assegna la richiesta all'utente corrente.
POST /richieste/elimina-assegnazione
Rimuove l'assegnazione corrente dalla richiesta.
POST /richieste/assegnazione-massiva
Assegna piu richieste contemporaneamente a un operatore.
Presa in Carico
POST /richieste/presa-in-carico
Prende in carico una richiesta, avviando formalmente la lavorazione e il conteggio SLA.
Body (PresaInCaricoRichiestaBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idRichiesta | integer | Si | ID della richiesta |
idUtente | integer | Si | ID dell'operatore |
note | string | No | Note di presa in carico |
idImpatto | integer | No | ID dell'impatto |
idUpload | string | No | ID upload allegati |
nomeAllegati | array | No | Nomi file allegati |
idProblemiAss | array | No | Problemi da associare |
Risposta (200 OK)
{
"idRichiesta": 12345,
"esitoPresaInCarico": true,
"erroreInvioMail": false
}
POST /richieste/presa-in-carico-massiva
Presa in carico massiva di piu richieste.
Sospensione Richiesta
POST /richieste/sospensione
Sospende una richiesta (es. in attesa di informazioni dal richiedente).
Body (SospensioneRichiestaBean)
| Campo | Tipo | Descrizione |
|---|---|---|
idRichiesta | integer | ID della richiesta |
idUtente | integer | ID dell'operatore |
note | string | Motivo della sospensione |
idTicketSosp | integer | ID del ticket sospeso (se presente) |
flagAttesaChiusura | boolean | Se true, la richiesta e in attesa chiusura ticket |
GET /richieste/sospensione/{idRichiesta}
Recupera le informazioni necessarie per la sospensione.
Chiusura Richiesta
POST /richieste/chiusura
Chiude una richiesta.
Body (ChiusuraRichiestaBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idRichiesta | integer | Si | ID della richiesta |
idUtente | integer | Si | ID dell'operatore |
note | string | No | Note di chiusura |
nomeAllegati | array | No | Allegati di chiusura |
idUpload | string | No | ID upload allegati |
listaSezioniRichiesta | array | No | Attributi aggiuntivi |
Risposta (200 OK)
{
"idRichiesta": 12345,
"esitoChiusuraRichiesta": true,
"esitoInvioMail": true
}
GET /richieste/check-chiusura/{idRichiesta}
Verifica se la chiusura della richiesta e possibile (es. tutti i ticket sono chiusi).
POST /richieste/chiusura-massiva
Chiusura massiva di piu richieste.
Riattivazione e Riapertura
POST /richieste/riattivazione
Riattiva una richiesta precedentemente sospesa.
POST /richieste/riapertura-richiesta/{idRichiestaOriginale}
Riapre una richiesta chiusa, creando una nuova richiesta collegata.
POST /richieste/riapertura-richiesta-note/{idRichiestaOriginale}
Riapre una richiesta chiusa includendo le note.
Commenti Richiesta
GET /richieste/commenti/{idRichiesta}
Recupera i commenti associati a una richiesta.
POST /richieste/{idRichiesta}/commento-fornitore
Inserisce un commento fornitore.
Body (CommentoRichiestaBean)
| Campo | Tipo | Descrizione |
|---|---|---|
note | string | Testo del commento |
sollecito | boolean | Se true, il commento e un sollecito |
nomeAllegati | array | Allegati al commento |
idUpload | string | ID upload allegati |
noteInterne | string | Note interne (non visibili al cliente) |
POST /richieste/{idRichiesta}/commento-cliente
Inserisce un commento dal lato cliente.
POST /richieste/{idRichiesta}/commento-ct
Inserisce un commento come Contact Center.
POST /richieste/{idRichiesta}/inserisci-nota-interna
Inserisce una nota interna (visibile solo agli operatori).
Operazioni Ausiliarie Richieste
| Endpoint | Metodo | Descrizione |
|---|---|---|
/richieste/attributi-aggiuntivi | GET | Attributi aggiuntivi per la terna selezionata |
/richieste/info-terna | GET | Informazioni sulla terna (SLA, workflow, notifiche) |
/richieste/operatori | GET | Lista operatori disponibili per la richiesta |
/richieste/scadenza-priorita | GET | Calcolo scadenza in base alla priorita |
/richieste/criteri-invio-notifiche | GET | Criteri configurati per l'invio notifiche |
/richieste/cancella | POST | Cancella una richiesta |
/richieste/cancellazione-massiva | POST | Cancellazione massiva |
/richieste/valutazione-richiesta | POST | Inserisce una valutazione sulla richiesta |
/richieste/{idRichiesta}/valutazione-permessi | GET | Verifica i permessi dell'utente sulla richiesta |
Ticket (II Livello)
Creare Ticket
POST /ticket/creazione-ticket
Crea un ticket di II livello, associandolo a una richiesta di I livello.
Body (CreazioneTicketBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idRichiesta | integer | Si | ID della richiesta di I livello |
idServizio | integer | No | ID del servizio (se diverso dalla richiesta) |
idAssetRoot | integer | No | ID dell'asset padre |
idAsset | integer | No | ID dell'asset figlio |
idTipoRichiesta | integer | No | ID del tipo richiesta |
idTerna | integer | No | ID della terna |
idPriorita | integer | No | ID della priorita |
oggetto | string | Si | Oggetto del ticket |
descrizione | string | No | Descrizione dettagliata |
noteCreazione | string | No | Note di creazione |
idAzione | integer | No | ID dell'azione iniziale del workflow |
durata | integer | No | Durata prevista (minuti) |
idUpload | string | No | ID upload allegati |
nomeAllegati | array | No | Nomi file allegati |
listaSezioniTicket | array | No | Sezioni con attributi aggiuntivi |
cambiaTerna | boolean | No | Se true, permette terna diversa dalla richiesta |
Esempio di Richiesta
curl -X POST "https://desk.askme.it/Askme/rest/ticket/creazione-ticket" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"idRichiesta": 12345,
"idServizio": 1,
"idTipoRichiesta": 5,
"idPriorita": 3,
"oggetto": "Problema di login - Analisi II livello",
"descrizione": "Approfondimento tecnico sul problema di autenticazione",
"noteCreazione": "Escalation da I livello"
}'
Risposta (200 OK) — InfoGeneraTicketBean
{
"ticket": {
"idTicket": 789,
"protocollo": "TCK-2025-00789",
"oggetto": "Problema di login - Analisi II livello",
"servizio": { "id": 1, "nome": "Servizio IT" },
"priorita": { "id": 3, "nome": "Priorita 2" },
"statoTicket": "A"
},
"richiestaOrig": {
"idRichiesta": 12345,
"oggetto": "Problema di login"
},
"erroreInvioMail": false
}
Elenco Ticket
GET /ticket/
Restituisce la lista dei ticket. I criteri di ricerca vengono passati nel body.
Body (RicercaTicketDto) — Parametri principali
| Campo | Tipo | Descrizione |
|---|---|---|
idRichiesta | string | Filtro per ID richiesta associata |
protocollo | string | Ricerca per protocollo ticket |
oggetto | string | Ricerca nell'oggetto |
descrizione | string | Ricerca nella descrizione |
statoTicket | string | Stato del ticket |
listaIdServizio | array | Filtro per servizi |
listaIdAsset | array | Filtro per asset |
listaIdTipoRichiesta | array | Filtro per tipi richiesta |
listaIdPriorita | array | Filtro per priorita |
listaIdNodoAttuale | array | Filtro per nodo workflow attuale |
listaIdStatoAvanzamento | array | Filtro per stati avanzamento |
dataInserimentoDa / dataInserimentoA | string | Range data inserimento |
dataChiusuraDa / dataChiusuraA | string | Range data chiusura |
dataScadenzaDa / dataScadenzaA | string | Range data scadenza |
ordina | string | Campo di ordinamento |
verso | string | Direzione (ASC / DESC) |
maxResults | integer | Numero massimo di risultati |
Risposta (200 OK)
{
"data": [
{
"idTicket": 789,
"protocollo": "TCK-2025-00789",
"oggetto": "Problema di login - Analisi II livello",
"statoTicket": "A",
"servizio": { "id": 1, "nome": "Servizio IT" },
"priorita": { "id": 3, "nome": "Priorita 2" },
"statoAvanzamento": { "id": 2, "nome": "In Lavorazione" },
"tsIns": "2025-01-15T11:00:00"
}
],
"recordsTotal": 80,
"recordsFiltered": 15,
"message": ""
}
Liste Ticket Specializzate
| Endpoint | Metodo | Descrizione |
|---|---|---|
/ticket/paginated | GET | Lista paginata di tutti i ticket |
/ticket/lista-ticket-assegnati | GET | Ticket assegnati all'utente |
/ticket/lista-ticket-assegnati-paginated | GET | Versione paginata |
/ticket/lista-avanzamento-ticket | GET | Lista ticket in avanzamento |
/ticket/lista-avanzamento-ticket-paginated | GET | Versione paginata |
/ticket/lista-assegnazioni-ticket | GET | Storico assegnazioni |
/ticket/lista-assegnazioni-ticket-paginated | GET | Versione paginata |
/ticket/ricerca-ticket.csv | GET | Esportazione CSV |
Dettaglio Ticket
GET /ticket/{idTicket}
Parametri
| Nome | In | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|---|
idTicket | path | integer | Si | ID del ticket |
visibility | query | string | No | Tipo di visibilita |
Risposta (200 OK) — DettaglioTicketBean
{
"ticket": {
"idTicket": 789,
"protocollo": "TCK-2025-00789",
"oggetto": "Problema di login - Analisi II livello",
"statoTicket": "A",
"servizio": { "id": 1, "nome": "Servizio IT" },
"priorita": { "id": 3, "nome": "Priorita 2" },
"statoAvanzamento": { "id": 2, "nome": "In Lavorazione" },
"minLavorazione": 120
},
"utenteRichiedente": { "idUtente": 50, "nome": "Mario", "cognome": "Rossi" },
"utenteInserimento": { "idUtente": 100, "nome": "Giuseppe", "cognome": "Verdi" },
"nodoAttuale": { "id": 5, "nome": "Analisi Tecnica" },
"dataInserimento": "2025-01-15T11:00:00",
"dataScadenza": "2025-01-17T11:00:00",
"descrizione": "Approfondimento tecnico sul problema di autenticazione",
"noteCreazione": "Escalation da I livello",
"richiesta": {
"idRichiesta": 12345,
"oggetto": "Problema di login"
},
"listaStep": [],
"ultimoStep": { ... },
"allegatiTicket": [],
"allegatiRichiesta": [],
"listaAssegnazioni": []
}
Modifica Ticket
POST /ticket/modifica-ticket
Body (ModificaTicketBean)
| Campo | Tipo | Descrizione |
|---|---|---|
idTicket | integer | ID del ticket |
oggetto | string | Nuovo oggetto |
descrizione | string | Nuova descrizione |
note | string | Nuove note |
dataScadenza | string | Nuova data scadenza |
listaSezioniTicket | array | Attributi aggiuntivi |
nomeAllegati | array | Nuovi allegati |
idUpload | string | ID upload |
allegatiDaEliminare | array | Allegati da rimuovere |
Assegnazione Ticket
POST /ticket/assegnazione-ticket
Body (AssegnazioneTicketBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idTicket | integer | Si | ID del ticket |
idUtenteAssegnatore | integer | Si | ID di chi assegna |
idUtenteAssegnatario | integer | Si | ID dell'assegnatario |
durataAss | integer | No | Durata prevista (minuti) |
noteAss | string | No | Note assegnazione |
dataScadenzaAssDate | string | No | Scadenza assegnazione |
Risposta (200 OK)
{
"idTicket": 789,
"protocollo": "TCK-2025-00789",
"esitoAssegnazione": true,
"esitoInvioMail": true,
"conflittoAssegnazione": false
}
POST /ticket/auto-assegnazione
Auto-assegna il ticket all'utente corrente.
POST /ticket/elimina-assegnazione
Rimuove l'assegnazione corrente.
Avanzamento Ticket (Workflow)
POST /ticket/avanzamento-ticket
Avanza il ticket allo step successivo del workflow configurato.
Body (AvanzamentoTicketBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idTicket | integer | Si | ID del ticket |
idAzione | integer | Si | ID dell'azione da eseguire |
note | string | No | Note dell'avanzamento |
durata | integer | No | Durata lavorazione (minuti) |
flagVisStepUtente | boolean | No | Visibilita step per l'utente |
flagVisStepOpePrimo | boolean | No | Visibilita step per operatore I livello |
flagChiusuraRic | boolean | No | Chiudi anche la richiesta di I livello |
flagSospensioneRic | boolean | No | Sospendi la richiesta di I livello |
flagRiattivazioneRic | boolean | No | Riattiva la richiesta di I livello |
flagAttesaChiusura | boolean | No | Imposta attesa chiusura |
nomeAllegati | array | No | Allegati |
idUpload | string | No | ID upload |
listaSezioniTicket | array | No | Attributi aggiuntivi |
Risposta (200 OK)
{
"idTicket": 789,
"idStep": 15,
"idRichiestaChiusa": null,
"erroreInvioMail": false,
"idRichiestaOrig": 12345
}
Endpoint di supporto al workflow:
| Endpoint | Metodo | Descrizione |
|---|---|---|
/ticket/azioni | GET | Azioni effettuabili per lo step corrente |
/ticket/info-step-successivo | GET | Informazioni sullo step successivo |
/ticket/{idTicket}/info-pre-avanzamento | GET | Dati necessari prima dell'avanzamento |
/ticket/lista-step-ticket | GET | Lista di tutti gli step del ticket |
Note Interne Ticket
POST /ticket/{idTicket}/inserisci-nota-interna-primo-livello
Inserisce una nota interna visibile solo al I livello.
POST /ticket/{idTicket}/inserisci-nota-interna-secondo-livello
Inserisce una nota interna visibile al II livello.
Body (CommentoTicketBean)
| Campo | Tipo | Descrizione |
|---|---|---|
note | string | Testo della nota |
sollecito | boolean | Se true, e un sollecito |
nomeAllegati | array | Allegati |
idUpload | string | ID upload |
Operazioni Ausiliarie Ticket
| Endpoint | Metodo | Descrizione |
|---|---|---|
/ticket/attributi-aggiuntivi | GET | Attributi aggiuntivi per la terna |
/ticket/operatori | GET | Operatori disponibili |
/ticket/scadenza-priorita | GET | Calcolo scadenza |
/ticket/calcola-data-scadenza | GET | Calcolo data scadenza ticket |
/ticket/valutazione-ticket | POST | Valutazione del ticket |
/ticket/{idTicket}/valutazione-permessi | GET | Verifica permessi utente |
/ticket/{idTicket}/invio-sollecito | POST | Invio sollecito sul ticket |
/ticket/recupera-sezioni-attributi | GET | Sezioni e attributi configurati |
Work Order
Creare Work Order
POST /workorder/creazione-workorder
Crea un ordine di lavoro associato a un ticket.
Body (CreazioneWorkOrderBean)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
idTicket | integer | Si | ID del ticket |
idAzienda | integer | No | ID dell'azienda destinataria |
idSede | integer | No | ID della sede |
oggetto | string | Si | Oggetto del work order |
descrizione | string | No | Descrizione |
note | string | No | Note |
dataDa | string | No | Data inizio prevista |
dataA | string | No | Data fine prevista |
idDestinatario | integer | No | ID del destinatario |
tipoDest | string | No | Tipo destinatario |
vincolante | boolean | No | Se true, il WO e vincolante per l'avanzamento del ticket |
sendMail | boolean | No | Invia notifica email |
idStatoWf | integer | No | Stato iniziale |
Avanzamento Work Order
POST /workorder/avanzamento-workorder
Avanza lo stato di un work order.
Lista e Dettaglio Work Order
| Endpoint | Metodo | Descrizione |
|---|---|---|
/workorder/lista-workorder | GET | Lista work order |
/workorder/lista-storico-workorder | GET | Storico work order |
/workorder/{idWorkOrder} | GET | Dettaglio work order |
/workorder/lista-stati-workorder | GET | Stati disponibili |
Allegati
Upload Allegato
POST /upload/
Carica un allegato. Prima di caricare, ottenere un uploadId.
GET /upload/upload-id
Genera un nuovo ID per il caricamento di allegati.
Flusso di upload:
- Chiamare
GET /upload/upload-idper ottenere unuploadId - Chiamare
POST /upload/con il file e l'uploadId - Utilizzare l'
uploadIdnelle operazioni di creazione/modifica (campoidUpload)
Download Allegato
GET /upload/{uploadId}/{filename}
Scarica un allegato tramite uploadId e nome file.
Allegati Ticket
POST /upload/upload-allegato-ticket
Upload di un allegato direttamente associato a un ticket.
Download tramite Hash
| Endpoint | Metodo | Descrizione |
|---|---|---|
/download/link/{hashId} | GET | Ottieni link diretto per il download |
/download/redirect/{hashId} | GET | Redirect al download |
/download/info/{hashId} | GET | Informazioni sull'allegato |
Knowledge Base
Lista Knowledge Base
GET /knowledge/lista-knowledge-base
Recupera la lista degli articoli della Knowledge Base.
Body (ListaKnownErrorDto)
| Campo | Tipo | Descrizione |
|---|---|---|
filtroStr | string | Ricerca full-text |
statoKe | string | Stato dell'articolo |
listaIdServizio | array | Filtro per servizi |
listaIdAsset | array | Filtro per asset |
listaIdTipoRichiesta | array | Filtro per tipi richiesta |
Dettaglio Knowledge Base
GET /knowledge/dettaglio-knowledge-base
Parametri
| Nome | In | Tipo | Obbligatorio |
|---|---|---|---|
idKnowError | query | integer | Si |
Risposta (200 OK) — KnowledgeBean
{
"idKnowError": 42,
"oggetto": "Problema accesso VPN",
"descrizione": "L'utente non riesce a connettersi alla VPN aziendale",
"soluzione": "Verificare che il client VPN sia aggiornato...",
"soluzioneOttimale": "Aggiornare il client VPN alla versione 5.x",
"stato": "A",
"allegati": [],
"countUtil": 15
}
Gestione Knowledge Base
| Endpoint | Metodo | Descrizione |
|---|---|---|
/knowledge/aggiungi-knowledge-base | POST | Crea un nuovo articolo KB |
/knowledge/modifica-knowledge-base | POST | Modifica un articolo esistente |
/knowledge/cancella | POST | Elimina un articolo |
/knowledge/utilizzo-knowledge-base | POST | Registra un utilizzo (incrementa contatore) |
/knowledge/controllo-knowledge-base | GET | Verifica esistenza articoli per la terna |
Reportistica
Richieste
| Endpoint | Metodo | Descrizione |
|---|---|---|
/statistics/richiesteFornitore | GET | Statistiche richieste fornitore |
/statistics/richiesteCliente | GET | Statistiche richieste cliente |
/statistics/richiesteAssegnate | GET | Statistiche richieste assegnate |
/statistics/richiesteAssegnateOperatore | GET | Statistiche per operatore |
/statistics/riepilogoRichiesteFornitore | GET | Riepilogo complessivo |
/statistics/monitor-andamentale-richieste | GET | Report andamentale |
Ticket
| Endpoint | Metodo | Descrizione |
|---|---|---|
/statistics/ticket | GET | Statistiche ticket |
/statistics/ticketAssegnati | GET | Ticket assegnati |
/statistics/ticketAssegnatiOperatore | GET | Per operatore |
/statistics/monitor-andamentale-ticket | GET | Report andamentale |
SLA
| Endpoint | Metodo | Descrizione |
|---|---|---|
/statistics/slaRichiestePc | GET | SLA presa in carico richieste |
/statistics/slaRichiesteCh | GET | SLA chiusura richieste |
/statistics/slaTicket | GET | SLA ticket |
/statistics/slaStepTicket | GET | SLA per step ticket |
/statistics/slaTempoResiduoRichiestePc | GET | Tempo residuo SLA presa in carico |
/statistics/slaTempoResiduoRichiesteCh | GET | Tempo residuo SLA chiusura |
/statistics/slaTempoResiduoTicket | GET | Tempo residuo SLA ticket |
/statistics/slaTempoResiduoStepTicket | GET | Tempo residuo SLA per step |
Autenticazione e Utente
Informazioni Utente
GET /authentication/userinfo
Restituisce le informazioni dell'utente autenticato.
GET /authentication/user-full-info
Restituisce le informazioni complete dell'utente con autorizzazioni.
GET /authentication/user-authorities
Restituisce i ruoli e le autorizzazioni dell'utente.
Agenda
| Endpoint | Metodo | Descrizione |
|---|---|---|
/agenda/eventi | GET | Recupera gli eventi calendario |
/agenda/evento/{eventId} | GET | Dettaglio evento |
/agenda/aggiungi-evento-personale | POST | Crea evento personale |
/agenda/aggiungi-evento-gruppo | POST | Crea evento di gruppo |
/agenda/modifica-evento/{eventId} | POST | Modifica evento |
/agenda/elimina-evento/{eventId} | POST | Elimina evento |
/agenda/lista-tipi-eventi | GET | Tipi di eventi disponibili |
/agenda/lista-esiti-eventi | GET | Esiti possibili degli eventi |
Gestione Errori
Tutte le API restituiscono errori con codici HTTP standard:
| Codice | Descrizione |
|---|---|
200 | Successo |
400 | Richiesta non valida — parametri mancanti o errati |
401 | Non autorizzato — token mancante o scaduto |
403 | Accesso negato — permessi insufficienti |
404 | Risorsa non trovata |
500 | Errore interno del server |
Le risposte di errore contengono un campo message con la descrizione dell'errore:
{
"message": "Richiesta non trovata",
"data": null
}
Le operazioni di scrittura (creazione, modifica, assegnazione, ecc.) restituiscono sempre HTTP 200 con un oggetto Info che contiene l'esito effettivo dell'operazione. Verifica sempre i campi esito* nella risposta.