povero @Xfood, cos'hai contro di lui (ammaluzzu)Se le cose stanno proprio così, avremo una marea di nuovi programmatori, tutti quelli che vendono registratori di cassa,
nel giro di qualche anno saranno senza lavoro.
povero @Xfood, cos'hai contro di lui (ammaluzzu)Se le cose stanno proprio così, avremo una marea di nuovi programmatori, tutti quelli che vendono registratori di cassa,
nel giro di qualche anno saranno senza lavoro.
e' scadente lascia perdere. E' più bella quella di @Mashiane ma di più quella di @sfsameer oltre che molto più economicheInteressante... mi sa che ci penso, utilizzo l'app
Di @Star-Dust per le prenotazioni.?
Sono a dieta ? ?Preferisco far "mangiare" un paesano. ?
Chiariamo un aspetto: questo sistema con JSON non è quello che ivia direttamente all'ADE che usa invece formato XML. Ma è per essere passato a questa libreria scritta in C#. Libreria che si appoggia a alcune API usate dall'agenzia dell'entrate con le credenziali di FiscoOnline.Una prima bozza per la creazione del JSon dello scontrino. Mancano ancora i dati del documento.
Ho diviso in 4 classi.
Ovviamente è incompleto
- Scontrino: La classe generale che produce il JSON
- CedentePrestatore: Classe per impostare i dati fiscali e identificativi vari dell'Azienda
- documentoCommerciale: Dati del committente
- elementiContabili: Contenuto dello scontrino
siSignori, forse ci siamo.... conoscete YAML? No? peccato....
[B4X] YAML parser
A simple parser, similar to the json parser, for YAML strings. It is compatible with B4A and B4J. It is based on: https://github.com/EsotericSoftware/yamlbeans (MIT license) Put yaml.jar in the additional libraries folder and add a reference with: #AdditionalJar: yaml.jar Note that booleans...www.b4x.com
##########################################################################
#
# API DISPOSITIVI
#
##########################################################################
swagger: '2.0'
info:
title: API REST Dispositivi
description: |
API per l'utilizzo dei servizi di gestione e trasmissione dei Corrispettivi.
Dove è utilizzato il termine `file firmato` si fa riferimento ad un file in formato xml firmato con Xml Signature conforme ad uno specifico elemento di uno schema xml dove l'elemento `Signature` contiene la firma XML.
La definizione del formato della firma XML si trova in http://www.w3.org/TR/xmldsig-core/.
La firma XML è profilata per facilitare l'interoperabilità, in particolare:
- all'interno dell'elemento `Signature` non è presente l'elemento opzionale `Object`
- all'interno dell'elemento `SignedInfo` è presente un unico elemento `Reference` che identifica l'intero documento (URI="")
- viene utilizzato unicamente l'algoritmo di canonicalizzazione `http://www.w3.org/TR/2001/REC-xml-c14n-20010315` come definito in http://www.w3.org/TR/xml-c14n
- viene utilizzato unicamente l'algoritmo di firma `http://www.w3.org/2001/04/xmldsig-more#rsa-sha256` come definito in http://www.w3.org/TR/xmldsig-core/
- viene utilizzato unicamente l'algoritmo di hash `http://www.w3.org/2001/04/xmlenc#sha256` come definito in http://www.w3.org/TR/xmlenc-core/
- la trasformazione da applicare in fase di generazione della firma è quella definita in http://www.w3.org/TR/xmldsig-core/ come `http://www.w3.org/2000/09/xmldsig#envelopedsignature`
- l'elemento `KeyInfo` contiene unicamente il certificato della chiave di firma
version: "1.0"
# the domain of the service
host: api.corrispettivi.agenziaentrate.gov.it
# array of all schemes that your API supports
schemes:
- https
# will be prefixed to all paths
basePath: /v1
paths:
################################################################################
#
# DISPOSITIVI
#
################################################################################
/dispositivi/:
post:
summary: Richiesta generazione del certificato per il dispositivo.
description: |
Richiede il certificato del dispositivo ed effettua il suo censimento, per l'invio è necessario inviare un file firmato conforme all'elemento `RichiestaCertificatoDispositivo` dello schema XSD `CorrispettiviMessaggiType_1.0.xsd`.
Per ottenere il certificato è necessario richiamare il servizio fino alla restituzione del codice http 201 ed il certificato in formato X.509.
In caso di errore fare riferimento alla Tabella 1 dell'`Allegato - Code List`.
consumes:
- application/xml
produces:
- application/xml
parameters:
# - $ref: "#/parameters/IdentificativoProduttore"
- in: body
name: richiestaCertificatoDispositivo
required: true
description: certificato dispositivo
schema:
type: string
format: binary
description: |
File xml conforme all'elemento `RichiestaCertificatoDispositivo` dello schema XSD `CorrispettiviMessaggiType_1.0.xsd` firmato utilizzando la XML Signature con il certificato di firma del produttore e contenente la CSR (Certificate Signing Request). La CSR dovrà avere nel CN l'identificativo univoco del dispositivo
responses:
201:
description: |
Generazione certificato completata.
schema:
type: string
format: binary
description: |
Restituisce un file xml firmato con il certificato del sistema conforme all'elemento `EsitoRichiestaCertificatoDispositivo` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo operazione e il certificato X.509
202:
description: |
Generazione certificato in corso.
406:
description: Parametri di input non validi
schema:
type: string
format: binary
description: |
Restituisce un file xml firmato con il certificato del sistema conforme all'elemento `EsitoRichiestaCertificatoDispositivo` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
409:
description: Certificato già cesinto
schema:
type: string
format: binary
description: |
Restituisce un file xml firmato con il certificato del sistema conforme all'elemento `EsitoRichiestaCertificatoDispositivo` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
429:
description: Superato il numero massimo di chiamate nell'unità di tempo
403:
description: Dispositivo non autorizzato alla richiesta
default:
description: Errore non previsto
put:
summary: Attivazione del dispositivo.
description: |
Attiva il dispositivo associandolo al gestore, con il dettaglio del verificatore che ha effettuato l'operazione.
Il file è un xml firmato col certificato del dispositivo e conforme all'elemento `AttivaDispositivo` dello schema XSD `CorrispettiviMessaggiType_1.0.xsd`.
In caso di errore fare riferimento alla Tabella 2 dell'`Allegato - Code List`.
consumes:
- application/xml
produces:
- application/xml
parameters:
# - $ref: "#/parameters/IdentificativoDisp"
- name: attivaDispositivo
in: body
description: dati attivazione
required: true
schema:
type: string
format: binary
description: |
File xml firmato con il certificato del dispositovo conforme all'elemento `AttivaDispositivo` dello schema XSD `CorrispettiviMessaggiType_1.0.xsd`
responses:
200:
description: |
Attivazione eseguita.
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
406:
description: Parametri di input non validi
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
409:
description: Dispositivo non attivabile
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
403:
description: Dispositivo non autorizzato alla richiesta
default:
description: Errore non previsto
/dispositivi/corrispettivi/:
post:
summary: Invio dei corrispettivi.
description: |
Trasmette un file xml firmato con il certificato di firma del dispositivo conforme all'elemento `DatiCorrispettivi` dello schema XSD `CorrispettiviType_1.0.xsd`.
In caso di errore fare riferimento alla Tabella 3 dell'`Allegato - Code List`.
consumes:
- application/xml
produces:
- application/xml
parameters:
# - $ref: "#/parameters/IdentificativoDisp"
- name: datiCorrispettivi
in: body
required: true
schema:
type: string
format: binary
description: |
File xml firmato con il certificato del dispositovo conforme all'elemento `DatiCorrispettivi` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo operazione
responses:
200:
description: |
Trasmissione eseguita.
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
406:
description: Parametri di input non validi
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
409:
description: Dispositivo non valido
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
403:
description: Dispositivo non autorizzato alla richiesta
429:
description: Superato il numero massimo di chiamate nell'unità di tempo
default:
description: Errore non previsto
/dispositivi/datifatture/:
post:
summary: Invio i dati delle fatture.
description: |
Trasmette un file xml firmato con il certificato di firma del dispositivo conforme all'elemento `DatiFattura` dello schema XSD `DatiFattura_v1.0.xsd`.
In caso di errore fare riferimento alla Tabella 4 dell'`Allegato - Code List`.
consumes:
- application/xml
produces:
- application/xml
parameters:
# - $ref: "#/parameters/IdentificativoDisp"
- name: datiFatture
in: body
required: true
schema:
type: string
format: binary
description: |
File xml firmato con il certificato del dispositovo conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo operazione
responses:
200:
description: |
Trasmissione eseguita.
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
406:
description: Parametri di input non validi
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
409:
description: Dispositivo non valido
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
403:
description: Dispositivo non autorizzato alla richiesta
429:
description: Superato il numero massimo di chiamate nell'unità di tempo
default:
description: Errore non previsto
/dispositivi/scontrini/:
post:
summary: Invio gli scontrini parlanti.
description: |
Trasmette un file xml firmato con il certificato di firma del dispositivo conforme all'elemento `Scontrino` dello schema XSD `ScontriniType_v1.0.xsd`.
In caso di errore fare riferimento alla Tabella 5 dell'`Allegato - Code List`.
produces:
- application/xml
consumes:
- application/xml
parameters:
# - $ref: "#/parameters/IdentificativoDisp"
- name: datiFatture
in: body
required: true
schema:
type: string
format: binary
description: |
File xml firmato con il certificato del dispositovo conforme all'elemento `Scontrino` dello schema `ScontriniType_v1.0.xsd` contenente l'identificativo operazione
responses:
200:
description: |
Trasmissione eseguita.
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
406:
description: Parametri di input non validi
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
409:
description: Dispositivo non valido
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
403:
description: Dispositivo non autorizzato alla richiesta
429:
description: Superato il numero massimo di chiamate nell'unità di tempo
default:
description: Errore non previsto
/dispositivi/evento/:
put:
summary: Invio di un evento da parte del dispositivo.
description: |
Invia un evento che modifica lo stato del dispositivo (i.e. guasto o disattivazione).
Per i codici relativi alle tipologie di evento fare riferimento alla Tabella 6 dell'`Allegato - Code List`.
Per specificare il dettaglio dell'evento segnalato fare riferimento alla Tabella 7 dell'`Allegato - Code List`.
In caso di errore fare riferimento alla Tabella 8 dell'`Allegato - Code List`.
consumes:
- application/xml
produces:
- application/xml
parameters:
# - $ref: "#/parameters/IdentificativoDisp"
- name: eventoDispositivo
in: body
required: true
schema:
type: string
format: binary
description: |
File xml firmato con il certificato del dispositovo conforme all'elemento `EventoDispositivo` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo operazione
responses:
200:
description: anomalia registrata
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli errori riscontrati
409:
description: Dispositivo non valido
schema:
type: string
format: binary
description: |
Il file xml resituito è firmato con il certificato del sistema e conforme all'elemento `EsitoOperazione` dello schema `CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo dell'operazione
403:
description: Dispositivo non autorizzato alla richiesta
default:
description: Errore non previsto
# this is an example of the Uber API
# as a demonstration of an API spec in YAML
swagger: '2.0'
info:
title: API REST Gestionali
description: |
API per l'utilizzo dei servizi di gestionali per gestori e produttori.
version: '3.0'
host: api.ivaservizi.agenziaentrate.gov.it
# array of all schemes that your API supports
schemes:
- https
# will be prefixed to all paths
basePath: /v1
paths:
################################################################################
#
# GESTORI
#
################################################################################
################################################################################
# SERVIZI PORTALE
################################################################################
'/gestori/me/dispositivi/':
get:
summary: Elenco dei dispositivi del gestore.
description: |
Consente di avere l'elenco dei dispositivi associati al gestore con una serie di filtri.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- $ref: '#/parameters/IdDispositivoParam'
- name: tipologia
in: query
type: string
description: Filtro per tipologia di dispositivo
- name: stato
in: query
type: string
description: Filtro per stato del dispositivo
- name: start
in: query
type: string
description: Scostamento dal primo elemento restituito
- name: perPage
in: query
type: string
description: Numero di elementi per pagina (max 50)
- name: colsIdx
in: query
type: string
description: Numeri di colonna da ordinare
- name: colsOrder
in: query
type: string
description: Tipo di ordinamento in base alle colonne specificate su colsIdx
responses:
'200':
description: Elenco dei dispositivi associati al gestore
schema:
$ref: '#/definitions/PaginaDispositivo'
'403':
description: Non autorizzato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/dispositivi/{uid}/':
put:
summary: Cambia stato dispositivo.
description: |
Consente di cambiare lo stato del dispositivo a fronte di un evento.
Per i codici di dettaglio fare riferimento alla Tabella 7 all'`Allegato - Code List`.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
* consumes: - application/json
produces:
- application/json
consumes:
- application/json
parameters:
- name: uid
description: Identificativo univoco del dispositivo
in: path
type: string
required: true
- name: stato
in: body
required: true
description: motivo cambio stato
schema:
$ref: '#/definitions/EventoDispositivo'
responses:
'200':
description: Operazione eseguita.
schema:
$ref: '#/definitions/EsitoOperazione'
'403':
description: Non autorizzato
'404':
description: Dispositivo non trovato
'406':
description: Parametri di input non validi
schema:
$ref: '#/definitions/EsitoOperazione'
'409':
description: Dispositivo non valido
schema:
$ref: '#/definitions/EsitoOperazione'
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
delete:
summary: Dismissione del dispositivo.
description: |
Consente di dismettere il dispositivo.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
consumes:
- application/json
parameters:
- name: uid
description: Identificativo univoco del dispositivo
in: path
type: string
required: true
- name: stato
in: body
required: true
description: cambio di stato
schema:
$ref: '#/definitions/DismissioneDispositivo'
responses:
'200':
description: Dismissione correttamente effettuata
schema:
type: string
format: binary
description: >
Il file xml resituito è firmato con il certificato del sistema e
conforme all'elemento `EsitoOperazione` dello schema
`CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio degli
errori riscontrati
'403':
description: Non autorizzato
'404':
description: Dispositivo non trovato
'406':
description: Parametri di input non validi
schema:
type: string
format: binary
description: >
Restituisce un file xml firmato con il certificato del sistema
conforme all'elemento `EsitoRichiestaCertificatoDispositivo` dello
schema `CorrispettiviMessaggiType_1.0.xsd` contenente il dettaglio
degli errori riscontrati
'409':
description: Dispositivo non valido
schema:
type: string
format: binary
description: >
Il file xml resituito è firmato con il certificato del sistema e
conforme all'elemento `EsitoOperazione` dello schema
`CorrispettiviMessaggiType_1.0.xsd` contenente l'identificativo
dell'operazione
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/dispositivi/{uid}/info/':
get:
summary: Dettaglio del dispositivo.
description: |
Mostra il dettaglio delle informazioni associate al dispositivo.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- name: uid
description: Identificativo univoco del dispositivo
in: path
type: string
required: true
responses:
'200':
description: dettaglio dispositivo
schema:
$ref: '#/definitions/DispositivoAssociato'
'403':
description: Non autorizzato
'404':
description: Dispositivo non trovato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
put:
summary: Aggiorna i dati di dettaglio del dispositivo.
description: |
Consente di aggiornare le sole informazioni modificabili del dispositivo.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* consumes: - application/json
consumes:
- application/json
parameters:
- name: uid
description: Identificativo univoco del dispositivo
in: path
type: string
required: true
- name: dispositivo
in: body
required: true
description: Dati da aggiornare del dispositivo
schema:
$ref: '#/definitions/DispositivoAssociato'
responses:
'200':
description: Operazione eseguita.
'403':
description: Non autorizzato
'404':
description: Dispositivo non trovato
'406':
description: Parametri di input non validi
'409':
description: Dispositivo non valido
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/dispositivi/{uid}/info/qrcode/':
get:
summary: Download del qrcode.
description: |
Consente di scaricare il qrcode del dispositivo in formato jpeg.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - image/jpeg
produces:
- image/jpeg
parameters:
- name: uid
description: Identificativo univoco del dispositivo
in: path
type: string
required: true
responses:
'200':
description: Immagine qrcode che identifica il dispositivo
schema:
type: string
format: binary
description: Immagine del qrcode in formato jpeg
'202':
description: Immagine qrcode non ancora disponibile
'403':
description: Non autorizzato
'404':
description: Dispositivo non trovato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/dispositivi/{uid}/manutenzioni/':
get:
description: |
manutenzioni effettuate sul dispositivo
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- name: uid
in: path
required: true
type: string
responses:
'200':
description: Elenco delle manutenzioni effettuate sul dispositivo
schema:
type: array
items:
$ref: '#/definitions/ManutenzioneDispositivo'
'403':
description: Non autorizzato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
################################################################################
# CENSIMENTO DISPOSITIVI: DA TRANSITORIO
################################################################################
/gestori/me/dispositivi/censimenti/:
post:
summary: Avvia il censimento di un elenco di dispositivi.
description: |
Effettua il censimento di un elenco di dispositivi identificati da `idDispositivo` univoco assegnato dal gestore. L'operazione rilascia un `idOperazione` da utilizzare per verificare il completamento del censimento.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
* consumes: - application/json
produces:
- application/json
consumes:
- application/json
parameters:
- name: elencoDispositivi
in: body
schema:
type: array
items:
$ref: '#/definitions/DispositivoDaCensire'
responses:
'202':
description: Operazione di censimento avviata
schema:
type: string
description: Identificativo operazione
'403':
description: Non autorizzato alla richiesta
'406':
description: Parametri di input non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
get:
summary: Restituisce l'elenco dei censimenti richiesti.
description: |
Restituisce l'elenco dei censimenti richiesti con il dettaglio dello stato di avanzamento.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- $ref: '#/parameters/IdOperazioneParam'
- name: dataDa
type: string
format: date
in: query
description: Data di inizio
- name: dataA
type: string
format: date
in: query
description: Data di fine
responses:
'200':
description: Elenco dei censimenti richiesti secondo i parametri specificati
schema:
type: array
items:
$ref: '#/definitions/Censimento'
'403':
description: Non autorizzato
'406':
description: Parametri non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/dispositivi/censimenti/{idOperazione}':
get:
summary: Verifica lo stato di avanzamento di un censimento di dispositivi.
description: |
Restituisce lo stato del censimento per tutti i disposiviti associati ad un censimento precedentemente richiesto. Per ogni `idDispositivo` è restituito lo stato del censimento e l'identificativo univoco assegnato dal sistema `uid`.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- name: idOperazione
description: Identificativo del censimento
in: path
type: string
required: true
responses:
'200':
description: Elenco dispositivi censiti
schema:
$ref: '#/definitions/StatoCensimentoMassivo'
'403':
description: Non autorizzato
'404':
description: Censimento non trovato
'406':
description: Parametri di input non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/dispositivi/censimenti/{idOperazione}/qrcode/':
get:
summary: Download qrcode.
description: |
Effettua il download dei soli qrcode generati relativamente all'`idOperazione`.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/octet-stream
produces:
- application/octet-stream
parameters:
- name: idOperazione
description: Identificativo del censimento
in: path
type: string
required: true
responses:
'200':
description: |
File zip dei qrcode generati, ogni immagine ha il nome della matricola con estensione .jpg
schema:
type: string
format: binary
description: File zip dei qrcode generati
'403':
description: non autorizzato alla richiesta
'404':
description: Censimento non trovato
'406':
description: Censimento non completato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
################################################################################
# INTERROGAZIONE CORRISPETTIVI
################################################################################
/gestori/me/corrispettivi/:
get:
summary: Elenco corrispettivi inviati.
description: |
Restituisce un elenco filtrato dei corrispettivi inviati.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- name: dataRilevazioneDa
type: string
format: date
in: query
description: Data di rilevazione del corrispettivo
- name: dataRilevazioneA
type: string
format: date
in: query
description: Data di rilevazione del corrispettivo
- name: idDispositivo
type: string
in: query
description: Identificativo del dispositivo assegnato dal gestore
- name: uid
type: string
in: query
description: Identificativo del dispositivo assegnato dal sistema
- name: statoDispositivo
in: query
description: stato del dispositivo secondo i valori espressi da StatoDispositivo
type: string
- name: statoTrasmissione
in: query
description: >-
stato del corrispettivo secondo i valori espressi da
StatoCorrispettivo
type: string
- name: idTrasmissione
in: query
description: Identificativo del corrispettivo assegnato dal sistema
type: string
- $ref: '#/parameters/PaginazioneInizio'
- $ref: '#/parameters/PaginazioneElementiPerPagina'
- $ref: '#/parameters/OrdinamentoColonne'
- $ref: '#/parameters/OrdinamentoTipi'
responses:
'200':
description: Elenco corrispettivi
schema:
$ref: '#/definitions/PaginaCorrispettivo'
'403':
description: Non autorizzato alla richiesta
'406':
description: Parametri di input non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/gestori/me/corrispettivi/{idOperazione}/':
get:
summary: Dettaglio corrispettivo
description: |
Mostra i dettagli di un corrispettivo trasmesso.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto (produces - application/json)
produces:
- application/json
parameters:
- name: idOperazione
in: path
description: Identificativo del corrispettivo
required: true
type: string
responses:
'200':
description: Dettaglio del corrispettivo
schema:
$ref: '#/definitions/DettaglioCorrispettivo'
'403':
description: Non autorizzato
'404':
description: Corrispettivo non trovato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
put:
summary: Segnalazione corrispettivo anomalo
description: |
Consente di segnalare un corrispettivo anomalo
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto (consumes - application/json)
consumes:
- application/json
parameters:
- name: idOperazione
in: path
description: Identificativo del corrispettivo
required: true
type: string
- name: motivazione
in: body
required: true
schema:
description: Motivazione della segnalazione anomala
type: string
responses:
'200':
description: Operazione effettuata
'403':
description: Non autorizzato
'404':
description: Corrispettivo non trovato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
################################################################################
# PRODUTTORI : DA DEFINITIVO
################################################################################
/produttori/me/dispositivi/censimenti/:
post:
summary: Censimento massivo dei dispositivi.
description: |
Consente di effettuare la richiesta censimento dei dispositivi e la generazione dei corrispondenti certificati. Viene restituito un identificativo operazione `idOperazione` per scaricare successivamente i certificati.
lo ZIP deve contenere un file con nome `manifest.xml` rispondente all'elemento `RichiestaMassivaCertificatiDispositivo` dello schema `FabbricanteTypes_1.0.xsd` ed un file con nome pari al campo idDispositivo per ogni certificato da richiedere con estensione .csr
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
* consumes: - application/octet-stream
produces:
- application/json
consumes:
- application/octet-stream
parameters:
- name: archivioCsr
in: body
required: true
description: dispositivi da censire
schema:
type: string
format: binary
description: |
File zip contenente le CSR per la generazione dei certificati. Il CN presente su ogni CSR deve essere costituito dall'identificativo univoco del dispositivo assegnato dal produttore `idDispositivo`.
responses:
'202':
description: Censimento massivo avviato
schema:
type: string
description: Identificativo operazione
'403':
description: Non autorizzato
'406':
description: Parametri di input non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
get:
summary: Restituisce l'elenco dei censimenti richiesti.
description: |
Restituisce l'elenco dei censimenti richiesti con il dettaglio dello stato di avanzamento.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- $ref: '#/parameters/IdDispositivoParam'
- name: dataDa
type: string
format: date
in: query
description: Data di inizio
- name: dataA
type: string
format: date
in: query
description: Data di fine
responses:
'200':
description: Elenco dei censimenti richiesti secondo i parametri specificati
schema:
type: array
items:
$ref: '#/definitions/Censimento'
'403':
description: Non autorizzato
'406':
description: Parametri non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/produttori/me/dispositivi/censimenti/{idOperazione}/':
get:
summary: Dettaglio del censimento massivo dei dispositivi.
description: |
Consente di verificare lo stato di avanzamento di una richiesta di censimento massivo di dispositivi. Inviando l'identificativo operazione `idOperazione` è possibile verificare per ogni dispositivo lo stato di avanzamento e successivamente scaricare i certificati. Per ogni `idDispositivo` è restituito lo stato della generazione del certificato e l'identificativo univoco assegnato dal sistema `uid`.
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/json
produces:
- application/json
parameters:
- name: idOperazione
in: path
type: string
description: Identificativo operazione del censimento massivo dispositivi
required: true
responses:
'200':
description: Elenco dei certificati e stato di generazione
schema:
$ref: '#/definitions/StatoCensimentoMassivo'
'403':
description: Non autorizzato
'404':
description: Censimento massivo non trovato
'406':
description: Parametri non validi
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
'/produttori/me/dispositivi/censimenti/{idOperazione}/download/':
get:
summary: Scarica i certificati.
description: |
Consente di scaricare un file zip contenente tutti i certificati e qrcode generati associati ad una richiesta di censimento massivo di dispositivi.
Il file ZIP conterrà per ogni dispositivo un file con nome pari all'`idDispositivo` ed estensione .cer e .jpg rispettivamente per il certificato o il qrcode
Assicurarsi che i valori relativi al content-type siano conformi a quanto previsto:
* produces: - application/octet-stram
produces:
- application/octet-stream
parameters:
- name: idOperazione
in: path
type: string
description: Identificativo operazione
required: true
responses:
'200':
description: Un file zip con tutti i certificati ed i qrcode generati
schema:
type: string
format: binary
description: |
Formato del file ZIP
'403':
description: Non autorizzato
'404':
description: Censimento massivo non trovato
'406':
description: Censimento non completato
'415':
description: Il valore del content-type non è quello atteso
default:
description: Errore non previsto
parameters:
IdDispositivoParam:
name: idDispositivo
type: string
in: query
description: Identificativo del dispositivo assegnato dal gestore o produttore
IdOperazioneParam:
name: idOperazione
type: string
in: query
description: Identificativo dell'operazione
PaginazioneInizio:
name: start
in: query
type: string
description: Scostamento dal primo elemento restituito (vale zero se non specificato)
PaginazioneElementiPerPagina:
name: perPage
in: query
type: string
description: Numero di elementi per pagina (max 50)
OrdinamentoColonne:
name: colsIdx
in: query
type: array
items:
type: integer
collectionFormat: csv
description: Numeri di colonna da ordinare (per ora non implementato)
OrdinamentoTipi:
name: colsOrder
in: query
type: array
items:
type: string
enum:
- A
- D
collectionFormat: csv
description: >-
Tipo di ordinamento in base alle colonne specificate su colsIdx (per ora
non implementato)
################################################################################
# TIPI
################################################################################
definitions:
##############################################################################
# TIPI PER DISPOSITIVI
##############################################################################
DispositivoDaCensire:
type: object
required:
- idDispositivo
- informazioniAddizionali
properties:
idDispositivo:
type: string
description: Matricola ovvero identificativo univoco del dispositivo attribuito dal gestore o produttore
geolocalizzazione:
$ref: '#/definitions/GeoTag'
informazioniAddizionali:
$ref: '#/definitions/InformazioniAddizionaliDispositivo'
InformazioniAddizionaliDispositivo:
type: object
required:
- protocolloComunicazione
- tipoDistributore
properties:
protocolloComunicazione:
type: string
tipoDistributore:
type: string
DispositivoCensito:
type: object
required:
- idDispositivo
- stato
properties:
idDispositivo:
type: string
description: Matricola ovvero identificativo univoco del dispositivo attribuito dal gestore o produttore
stato:
type: string
description: stato di censimento del dispositivo
enum:
- CENSITO
- CENSIMENTO_IN_CORSO
- ERRORE
uid:
type: string
description: Identificativo univoco assegnato al dispositivo dal sistema
dettaglio:
type: array
description: Eventuale elenco degli errori
items:
$ref: '#/definitions/Errore'
StatoCensimentoMassivo:
type: object
required:
- completato
- dispositivi
- errori
properties:
completato:
type: boolean
dispositivi:
type: array
items:
$ref: '#/definitions/DispositivoCensito'
errori:
type: array
items:
$ref: '#/definitions/Errore'
DispositivoAssociato:
type: object
required:
- uid
- idDispositivo
- stato
- tipologia
properties:
uid:
type: string
description: Identificativo univoco assegnato al dispositivo dal sistema
idDispositivo:
type: string
description: Matricola ovvero identificativo univoco del dispositivo attribuito dal gestore o produttore
dataAttivazione:
type: string
format: dateTime
description: Data Attivazione dispositivo
dataMessaInServizio:
type: string
format: dateTime
description: data Messa In Servizio
marchio:
type: string
description: Marchio
modello:
type: string
description: modello dispositivo
stato:
$ref: '#/definitions/StatoDispositivo'
tipologia:
$ref: '#/definitions/TipologiaDispositivo'
geolocalizzazione:
$ref: '#/definitions/GeoTag'
informazioniAddizionali:
$ref: '#/definitions/InformazioniAddizionaliDispositivo'
riferimentoApprovazione:
$ref: '#/definitions/RiferimentoApprovazione'
RiferimentoApprovazione:
type: object
required:
- numero
- data
properties:
numero:
type: string
description: Numero dell'approvazione
data:
type: string
format: date
description: Data dell'approvazione
##############################################################################
# TIPI PER CENSIMENTI
##############################################################################
Censimento:
type: object
required:
- idOperazione
- dataCensimento
- stato
- totali
properties:
idOperazione:
type: string
dataCensimento:
type: string
format: date
stato:
type: string
enum:
- IN_CORSO
- COMPLETATO
totali:
$ref: '#/definitions/Totali'
Totali:
type: object
required:
- richiesti
- validi
- errati
properties:
richiesti:
type: number
format: int
validi:
type: number
format: int
errati:
type: number
format: int
##############################################################################
# TIPI PER CORRISPETTIVI
##############################################################################
DettaglioCorrispettivo:
type: object
required:
- idOperazione
- stato
- dataOraTrasmissione
properties:
idOperazione:
type: string
description: Identificativo univoco della trasmissione
stato:
$ref: '#/definitions/StatoCorrispettivo'
labelStato:
type: string
description: Decodifica stato corrispettivo
dataOraTrasmissione:
type: string
format: date-time
description: Data e ora della trasmissione
dataRilevazione:
type: string
format: date
description: Data della rilevazione
progressivoInvio:
type: integer
format: int64
description: Progressivo invio
inattivita:
$ref: '#/definitions/PeriodoInattivita'
uid:
type: string
description: uid del dispositivo che ha inviato il corrispettivo
geolocalizzazione:
$ref: '#/definitions/GeoTag'
interventiTecnici:
type: array
items:
$ref: '#/definitions/ManutenzioneDispositivo'
idDispositivo:
type: string
description: Identificativo univoco del dispositivo assegnato dal gestore
tipologiaDispositivo:
$ref: '#/definitions/TipologiaDispositivo'
labelTipologiaDispositivo:
type: string
description: Decodifica tipologia dispositivo
anomalia:
$ref: '#/definitions/AnomaliaCorrispettivo'
AnomaliaCorrispettivo:
type: object
required:
- flag
properties:
flag:
type: boolean
description: 'True se il corrispettivo è anomalo, false altrimenti'
motivazione:
type: string
description: Motivazione della anomalia (presente solo se flag = true)
Corrispettivo:
type: object
required:
- idOperazione
- stato
- dataOraTrasmissione
properties:
idOperazione:
type: string
description: Identificativo univoco della trasmissione
stato:
$ref: '#/definitions/StatoCorrispettivo'
labelStato:
type: string
description: Decodifica stato corrispettivo
dataOraTrasmissione:
type: string
format: date-time
description: Data e ora della trasmissione
PaginaCorrispettivo:
type: object
required:
- dataPage
- elencoCorrispettivi
properties:
dataPage:
$ref: '#/definitions/DataPage'
elencoCorrispettivi:
type: array
description: Elenco dei risultati di ricerca
items:
$ref: '#/definitions/Corrispettivo'
StatoCorrispettivo:
type: string
description: Stati del corrispettivo
enum:
- TRASMESSO
- IN_ELABORAZIONE
- ELABORATO
- ERRORE
- ANOMALO
- SCARTATO
PeriodoInattivita:
required:
- inizio
- fine
properties:
fine:
format: date-time
type: string
inizio:
format: date-time
type: string
ManutenzioneDispositivo:
type: object
description: dati della manutenzione effettutata
required:
- codice
- descrizione
- dataOraIntervento
- nota
properties:
codice:
type: string
descrizione:
type: string
dataOraIntervento:
type: string
format: date-time
description: Data e ora della trasmissione
nota:
type: string
##############################################################################
# TIPI PER DISPOSITIVI
##############################################################################
PaginaDispositivo:
type: object
required:
- dataPage
- dispositivi
properties:
dataPage:
$ref: '#/definitions/DataPage'
dispositivi:
type: array
items:
$ref: '#/definitions/Dispositivo'
Dispositivo:
type: object
required:
- uid
- idDispositivo
- stato
- tipologia
properties:
uid:
type: string
description: Identificativo univoco assegnato al dispositivo dal sistema
idDispositivo:
type: string
description: Identificativo univoco assegnato dal gestore
stato:
$ref: '#/definitions/StatoDispositivo'
tipologia:
$ref: '#/definitions/TipologiaDispositivo'
geolocalizzazione:
$ref: '#/definitions/GeoTag'
GeoTag:
type: object
required:
- lat
- lon
properties:
lat:
type: number
description: latitudine
format: double
lon:
type: number
description: longitudine
format: double
StatoDispositivo:
type: string
description: Stati del dispositivo
enum:
- CENSITO
- ATTIVATO
- IN_SERVIZIO
- FUORI_SERVIZIO
- DISATTIVATO
- DISMESSO
TipologiaDispositivo:
type: string
description: |
Tipologia del dispositivo:
- DA = Distributore automatico
- RT = Registratore Telematico
- MC = Multi cassa
- DM = Dispositivo Mobile
- DA_TRANS = Sistemi Master Soluzione Transitoria
enum:
- DA
- RT
- MC
- DM
- DA_TRANS
DismissioneDispositivo:
type: object
required:
- dataOra
- dettaglio
properties:
dataOra:
type: string
format: date-time
description: Data e ora della trasmissione
dettaglio:
$ref: '#/definitions/Dettaglio'
EventoDispositivo:
type: object
required:
- evento
- dataOra
- dettaglio
properties:
evento:
$ref: '#/definitions/EventiStatoDispositivo'
dataOra:
type: string
format: date-time
description: Data e ora della trasmissione
dettaglio:
$ref: '#/definitions/Dettaglio'
EventiStatoDispositivo:
type: string
enum:
- DISMISSIONE
- DISATTIVAZIONE
- ATTIVAZIONE
- FUORI_SERVIZIO
Dettaglio:
type: object
required:
- codice
properties:
codice:
type: string
description: Codice di errore
descrizione:
type: string
description: Messaggio di dettaglio
Errore:
type: object
required:
- codice
- messaggio
properties:
codice:
type: string
description: Codice di errore
messaggio:
type: string
description: Messaggio di errore
DataPage:
type: object
required:
- dataSetSize
properties:
dataSetSize:
type: number
format: int
description: Totale elementi individuati per i parametri forniti
pageSize:
type: number
format: int
description: Numero di elementi della pagina restituita
EsitoOperazione:
type: object
required:
- idOperazione
properties:
idOperazione:
type: string
description: operazione utente
errori:
type: array
items:
$ref: '#/definitions/Errore'
TipologiaDispositivo:
type: string
description: |
Tipologia del dispositivo:
- DA = Distributore automatico
- RT = Registratore Telematico
- MC = Multi cassa
- DM = Dispositivo Mobile
- DA_TRANS = Sistemi Master Soluzione Transitoria
enum:
- DA
- RT
- MC
- DM
- DA_TRANS