Per consultare la documentazione v1 fare riferimento a Fatturazione Elettronica API Docs
1. Introduzione
I Web Services della Fatturazione Elettronica di Aruba sono a disposizione delle utenze Premium o utenze base a loro collegate mediante delega. |
La "Fatturazione elettronica" è il processo digitale con cui si generano e si gestiscono le fatture nel corso del loro intero ciclo di vita:
-
generazione
-
emissione/ricezione
-
conservazione a norma
Per fattura elettronica si intende:
-
un documento informatico
-
strutturato secondo un linguaggio standard ovvero il formato .xml, tracciato «Fattura PA»
-
firmato digitalmente da chi la emette (per PA)
-
avente il contenuto minimo obbligatorio previsto dal DM 55/2013 (All. A)
-
da conservare a norma (ai sensi del DPCM 3 dicembre 2013) obbligatoriamente sia ai fini fiscali (decreto MEF 17 giugno 2014) che ai fini civilistici (Art.2220 del Codice Civile).
Gli attori coinvolti nel processo di Fatturazione Elettronica sono:
-
L’Operatore Economico (OE): il cedente/prestatore che emette fatture verso PA/PRIVATI o il soggetto cessionario/committente che riceve fatture elettroniche
-
L’Intermediario (Aruba PEC S.p.A): il soggetto incaricato dal cedente/prestatore o dal cessionario/committente di trasmettere e/o ricevere per proprio conto le fatture elettroniche veicolate tramite SDI
-
Sistema di Interscambio (SDI): struttura che fa capo al Ministero dell’Economia e delle Finanze attraverso la quale avviene la trasmissione delle fatture elettroniche verso l’Amministrazione (art.1, comma 211, legge 24 dicembre 2007 n. 244) o verso privati (art. 1, comma 2, decreto legislativo 127/2015)
I processi per l’invio (ciclo attivo) e ricezione (ciclo passivo) di fatture elettroniche mediante Fatturazione Elettronica di Aruba sono schematizzati nelle figure seguenti:

-
L’Operatore Economico crea la fattura in formato .xml (da proprio gestionale o da Pannello web) e invia la fattura mediante i canali web service.
-
Aruba PEC (l’intermediario) controlla la conformità sul formato
-
Aruba PEC appone la firma elettronica qualificata (facoltativa per B2b e B2C) tramite firma automatica Aruba PEC o del Cliente e la invia a SdI.
-
SdI controlla e valida la fattura elettronica e la inoltra al destinatario (tramite codice destinatario o PEC) oppure a un terzo soggetto ricevente di cui il destinatario si avvale
-
SdI restituisce ad Aruba PEC S.p.A. la notifica di scarto, mancata consegna o consegna della fattura.
-
SdI, ricevute le notifiche di esito invio (accettazione/rifiuto) dal destinatario le inoltra ad Aruba PEC S.p.A. (flusso non previsto per B2b e B2C) che le recapita a OE.
-
Passaggio in conservazione digitale a norma (obbligatoria) delle fatture inviate.

-
L’Operatore economico o suo intermediario trasmette la fattura elettronica al Sistema di Interscambio utilizzando il codice destinatario di sette caratteri di Aruba PEC (intermediario in ricezione), fornito dal Sistema di Interscambio
-
SdI invia la fattura ricevuta dal trasmittente al canale di ricezione WS di Aruba PEC (associato al codice destinatario)
-
Aruba PEC recapita al Cliente la fattura elettronica ricevuta sulla base della Partita IVA mediante WS, applicazione web e/o PEC
-
Aruba PEC conserva a norma le fatture elettroniche inviate tramite il sistema DocFly Conservazione digitale a norma
Per poter ricevere fatture elettroniche su Fatturazione Elettronica di Aruba, è necessario che vengano trasmesse al codice destinatario KRRH6B9.
Il Codice Destinatario è un codice numerico univoco a 7 cifre che viene rilasciato dall’Agenzia delle Entrate ai titolari di un canale di ricezione delle fatture elettroniche presso il Sistema di Interscambio (SdI). Tale codice, quindi, viene fornito o alle Partite IVA che hanno eseguito l’accreditamento presso l’Agenzia delle Entrate oppure agli intermediari accreditati che si occupano dello smistamento delle fatture ai destinatari (come Aruba).
Il codice destinatario di Aruba, necessario per ricevere le fatture elettroniche sull’applicazione Fatturazione Elettronica è: KRRH6B9. |
Questa guida descrive il corretto utilizzo dei web service offerti dal sistema di Fatturazione Elettronica Aruba. La Fatturazione Elettronica Aruba mette a disposizione una serie di API REST con cui è possibile interfacciarsi per inviare fatture a SDI, ricercare le fatture inviate e ricevute, nonché inviare le comunicazioni finanziarie relative al "nuovo spesometro" (Liquidazioni periodiche IVA e Dati fatture).
Il sistema è inoltre predisposto per inviare le fatture ricevute (ciclo passivo) dai Web Services esposti dall’utente, che dovranno implementare una serie di requisiti tecnico-funzionali.
Il sistema prende in carico le richieste ricevute tramite i servizi, le elabora, controlla alcuni dati ed effettua l’invio al SdI (Sistema di Interscambio).
SdI elabora le richieste tramite controlli sui dati inviati e provvede, nel caso delle Comunicazioni Finanziarie, a generare un esito che il sistema di Aruba verifica e notifica ai propri clienti.
Nel caso della fattura elettronica SdI elabora i dati ricevuti, trasmette agli enti di Pubblica Amministrazione o Privati e notifica gli esiti direttamente al sistema di ARUBA.
I web services esposti permettono di provvedere alle Comunicazioni Finanziarie:

… e al ciclo attivo di fatturazione:

… e al ciclo passivo di fatturazione:

2. Ambienti
Sono previsti due ambienti per l’integrazione con i servizi di Fatturazione Elettronica.
DEMO: Ambiente con funzionalità equivalenti all’ambiente di produzione, ma accessibile solo temporaneamente, tramite uno specifico accreditamento. I dati inseriti sono validati e mantenuti per la duratà di validità dell’utente.
PRODUZIONE: Ambiente di produzione disponibile agli utenti titolari del servizio.
Nella tabella seguente vengono riportati i base url da anteporre ai path dei metodi di autenticazione (Capitolo Autenticazione) e degli altri metodi (Capitoli: Comunicazioni Finanziarie, Invio Fatture Elettroniche, Ricerca Fatture Inviate, Ricerca Fatture Ricevute, Invio Esito Committente, Ricerca Notifiche su Fatture Inviate e Ricerca Notifiche su Fatture Ricevute).
BASE URL |
AMBIENTE |
|
---|---|---|
Demo |
Produzione |
|
Autenticazione |
||
Altri metodi |
Si ricorda che, ricevute le credenziali, è necessario completare la registrazione accedendo con esse al pannello web della Fatturazione Elettronica Aruba. Dal pannello web è inoltre possibile consultare i dati (es. fatture inviate, fatture ricevute) e configurare il servizio di Fatturazione Elettronica (es. ricezione email, richieste deleghe, cedenti).
Nella tabella seguente viene riportato il link al pannello web della fatturazione elettronica per gli ambienti di DEMO e PRODUZIONE.
LINK PANNELLO WEB |
|
---|---|
Demo |
Produzione |
3. SLA (Service Level Agreement)
La API di Fatturazione Elettronica limita i client a un certo numero di chiamate, nella tabella seguente sono descritte tali limitazioni.
Servizio | SLA |
---|---|
Nr. massimo richieste di autenticazione per IP |
1 al minuto |
Dimensione massima file inviati |
5 MB |
Nr. massimo richieste di invio fatture per IP (Upload invoice) |
30 al minuto |
Nr. massimo richieste di invio fatture già firmate per IP (Upload invoice signed) |
30 al minuto |
Nr. massimo richieste di ricerca fatture inviate per IP (Ricerca Fatture Inviate) |
12 al minuto |
Nr. massimo richieste di ricerca fatture ricevute per IP (Ricerca Fatture Ricevute) |
12 al minuto |
Nr. massimo richieste di ricerca notifiche di fatture inviate per IP (Ricerca Notifiche su Fatture Inviate) |
12 al minuto |
Nr. massimo richieste di ricerca notifiche di fatture ricevute per IP (Ricerca Notifiche su Fatture Ricevute) |
12 al minuto |
SLA complessivo sul servizio |
99,95% uptime dell’interfaccia Web e dei Web Services |
Presa in carico del file fattura |
Entro 24 ore dal ricevimento da parte del cliente |
Invio del file fattura al SDI |
Entro 24 ore dalla presa in carico del file fattura |
Invio della notifica esito al cliente |
Entro 24 ore dalla ricezione dal Sistema di Interscambio |
Invio file fattura e notifica esito al Sistema di Conservazione |
Entro i tempi previsti dalla normativa vigente |
4. HTTP status codes
Di seguito sono riportate gli HTTP status code che possono essere ricevuti da un client dell’API di Fatturazione Elettronica.
Status code | Significato |
---|---|
|
Risposta standard per le richieste HTTP andate a buon fine. |
|
La richiesta è stata soddisfatta, restituendo la creazione di una nuova risorsa |
|
Il server ha processato con successo la richiesta e non restituirà nessun contenuto. |
|
La richiesta non può essere soddisfatta a causa di errori di sintassi. |
|
Simile a 403/Forbidden, ma pensato per essere usato quando l’autenticazione è possibile ma è fallita o non può essere soddisfatta. |
|
La richiesta è valida ma il server si rifiuta di soddisfarla. L’utente potrebbe non disporre delle autorizzazioni necessarie per accedere alla risorsa. |
|
La risorsa richiesta non è stata trovata. |
|
Superate le limitazioni descritte in SLA (Service Level Agreement) |
|
Superate le limitazioni descritte in SLA (Service Level Agreement) |
|
Messaggio di errore generico senza alcun dettaglio. |
5. Autenticazione
Per poter accedere al servizio di Fatturazione Elettronica è necessario procedere con l’autenticazione utilizzando i seguenti metodi.
per invocare i metodi di autenticazione il path del metodo va preceduto dall’apposito base URL |
Poichè le chiamate ai metodi di Autenticazione vengono effettuate fornendo informazioni sensibili, è necessario che gli utenti li invochino proteggendo i propri dati come indicato di seguito.
|
5.1. signin
POST base url autenticazione/auth/signin
Il metodo serve a richiedere un token di autenticazione. Tale token è necessario per invocare i metodi dei vari server della Fatturazione Elettronica (Resource Server) che sono protetti dal sistema.
Il token scade dopo 30 minuti. |
I seguenti parametri della richiesta devono essere in formato application/x-www-form-urlencoded
con encoding UTF-8
.
Parametro | Descrizione | Vincoli |
---|---|---|
|
Tipologia di grant utilizzata per l’autenticazione. Normalmente uguale a "password" |
Obbligatorio |
|
Username dell’utente |
Obbligatorio |
|
Password dell’utente |
Obbligatorio |
HTTP request
POST /auth/signin HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=password&username=Utente&password=Password
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 278
{
"access_token" : "711b398c61857ecc",
"token_type" : "bearer",
"expires_in" : 1800,
"refresh_token" : "7a9aff46fad778ed",
"userName" : "Utente",
"as:client_id" : "Auth",
".issued" : "Thu, 21 Nov 2024 09:39:10 GMT",
".expires" : "Thu, 21 Nov 2024 10:09:10 GMT"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Token di accesso |
|
|
Tipologia del token restituito. Costante = "bearer" |
|
|
Numero di secondi di validità (rimanente) del token |
|
|
Refresh Token da utilizzare per ottenere un nuovo token |
|
|
Client che ha richiesto il token |
|
|
Utente Loggato |
|
|
Data/Ora di emissione del ticket in formato: |
|
|
Data/Ora di scadenza del ticket in formato: |
In caso di errore, il sistema ritorna un HTTP status codes 400 Bad Request
con la seguente response
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Content-Length: 98
{
"error" : "invalid_grant",
"error_description" : "The user name or password is incorrect."
}
dove
Campo | Tipo | Descrizione |
---|---|---|
|
|
Codice di Errore |
|
|
Descrizione dell’errore |
Il token di accesso deve essere utilizzato per richiamare i metodi seguenti. In particolare deve essere inserita nella richiesta HTTP un header così composto:
Nome Header | Valore Header |
---|---|
Authorization |
Bearer <access_token> |
Le richieste prive di token autorizzativo (o con token errato / scaduto) riceveranno un HTTP status codes 401 Unauthorized
con il messaggio: "Full authentication is required to access this resource" .
|
5.2. refresh
POST base url autenticazione/auth/signin
Il token può essere rinnovato attraverso una richiesta di refresh che richiede i seguenti parametri in formato
application/x-www-form-urlencoded
con encoding UTF-8
. Il refresh del token,evitando di inviare le credenziale di
autenticazione, offre maggiore sicurezza ed è un’operazione più performante rispetto alla richiesta di un nuovo token mediante signin.
Se non viene specificato un refresh token valido, il metodo refresh restituisce l’errore "invalid_grant"
|
Il refresh token è valido per 60 minuti dopo l’emissione (.issued ), pertanto permette di rinnovare il token
fino a 30 minuti dopo la scadenza (.expires )
|
I seguenti parametri della richiesta devono essere in formato application/x-www-form-urlencoded
con encoding UTF-8
.
Parametro | Descrizione | Vincoli |
---|---|---|
|
Costante = "refresh_token" |
Obbligatorio |
|
Token di refresh ritornato nella richiesta precedente |
Obbligatorio |
Ad esempio:
POST /auth/signin HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
grant_type=refresh_token&refresh_token=ee4aae0c9d754ad08a657510cae82efe
La risposta è identica alla precedente, viene rilasciato un altro token di accesso (e relativo token di refresh).
5.3. userInfo
GET base url autenticazione/auth/userInfo
Questo metodo permette di recuperare le informazioni dell’utente relativo al token di autenticazione.
HTTP request
GET /auth/userInfo HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 347
{
"username" : "ARUBA0000",
"pec" : "pec@pec.it",
"userDescription" : "Aruba PEC S.p.A.",
"countryCode" : "IT",
"vatCode" : "01879020517",
"fiscalCode" : "01879020517",
"accountStatus" : {
"expired" : false,
"expirationDate" : "2025-02-21"
},
"usageStatus" : {
"usedSpaceKB" : 262144,
"maxSpaceKB" : 1048576
}
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Nome utente |
|
|
Indirizzo pec |
|
|
Nome e cognome o ragione sociale |
|
|
Codice paese (es. IT per Italia) |
|
|
Partita IVA |
|
|
Codice fiscale |
|
|
true se l’utenza è scaduta o sospesa, false altrimenti |
|
|
Data scadenza utenza in formato |
|
|
Spazio di conservazione utilizzato espresso in kilobyte |
|
|
Spazio di conservazione acquistato espresso in kilobyte |
5.4. multicedenti
GET base url autenticazione/auth/multicedenti
Questo metodo permette di recuperare le informazioni dei multicecedenti dell’utente Premium relativo al token di autenticazione.
HTTP request
GET /auth/multicedenti HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Codice paese (es. IT per Italia) |
Non obbligatorio |
|
Partita IVA |
Non obbligatorio |
|
Non obbligatorio |
|
|
dimensione della pagina (default 10) |
Compreso tra 1 e 100 |
|
pagina richiesta (default 1) |
compreso tra 1 e totalPages |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 665
{
"first" : true,
"last" : true,
"number" : 1,
"numberOfElements" : 2,
"size" : 2,
"totalElements" : null,
"totalPages" : 1,
"content" : [ {
"description" : "Multicedente di esempio 1",
"countryCode" : "IT",
"vatCode" : "98765123453",
"usedSpaceKB" : 7,
"creationDate" : "2022-08-04T10:50:05.571+02:00",
"id" : "5dee624a18ba9a66af3ef417",
"status" : "ACTIVE"
}, {
"description" : "Multicedente di esempio 2",
"countryCode" : "IT",
"vatCode" : "12345634512",
"usedSpaceKB" : 123,
"creationDate" : "2022-08-04T10:50:05.571+02:00",
"id" : "62eb883d89ec1c5540f80cb1",
"status" : "ACTIVE"
} ]
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Array dei multicedenti trovati |
|
|
true se la pagina trovata è la prima, altrimenti false |
|
|
true se la pagina trovata è l’ultima, altrimenti false |
|
|
Numero della pagina corrente |
|
|
Numero di elementi ritornati |
|
|
Dimensione della pagina |
|
|
Numero totale multicedenti trovati |
|
|
Numero totale pagine |
|
|
Codice paese (es. IT per Italia) |
|
|
Date creazione |
|
|
Ragione sociale |
|
|
Identificativo multicedente |
|
|
Stato multicedente |
|
|
Spazio di conservazione utilizzato espresso in kilobyte |
|
|
Partita IVA |
5.5. multicedenteById
GET base url autenticazione/auth/multicedenti/{id}
Questo metodo permette di recuperare le informazioni di un singolo multicedente.
HTTP request
GET /auth/multicedenti/62eb883d89ec1c5540f80cb1 HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 237
{
"description" : "Multicedente di esempio 2",
"countryCode" : "IT",
"vatCode" : "12345634512",
"usedSpaceKB" : 123,
"creationDate" : "2022-08-04T10:50:05.571+02:00",
"id" : "62eb883d89ec1c5540f80cb1",
"status" : "ACTIVE"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Codice paese (es. IT per Italia) |
|
|
Date creazione |
|
|
Ragione sociale |
|
|
Identificativo multicedente |
|
|
Stato multicedente |
|
|
Spazio di conservazione utilizzato espresso in kilobyte |
|
|
Partita IVA |
5.6. Stato dei multicedenti
Stato | Codice Stato | Descrizione |
---|---|---|
Connesso |
ACTIVE |
Multicedente connesso |
Sospeso |
SUSPEND |
Multicedente sospeso |
Non Attivo |
INACTIVE |
Multicedente non attivo |
In attesa di approvazione |
PENDING |
Multicedente in attesa di approvazione |
6. Comunicazioni Finanziarie

I metodi esposti per le Comunicazioni Finanziarie permettono la creazione di una nuova richiesta di trasmissione a SdI oppure il recupero dello stato della propria richiesta presa in carico dal sistema di Aruba.
Le richieste di invio possono essere di due tipi:
-
Dati Fattura (cosiddetto spesometro): xml contenente i dati relativi a una o più fatture emesse verso più cessionari/committenti oppure una o più fatture ricevute anche da più cedenti /prestatori. Possono essere trasmessi in singolo file .xml oppure file ZIP contenenti più .xml.
-
Liquidazioni iva: file in formato .xml contenente i dati della comunicazione relativa al soggetto dichiarante. Possono essere trasmessi in singolo file .xml oppure file ZIP contenenti più .xml.
6.1. CreateTransmissionRequest
POST base url altri metodi /api/v2/comfin
Creazione di una nuova richiesta per la trasmissione di tipo "Comunicazioni Finanziarie".
Il campo |
HTTP request
POST /api/v2/comfin HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Content-Type: application/json;charset=UTF-8
{
"userId" : "ARUBA0000",
"comunicationType" : "LI",
"dataFile" : "dGVzdA=="
}
Request fields
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Identificativo univoco del cliente / utente, è uguale all’username quando viene chiamato da un cliente esterno. |
|
|
|
Enumerazione che identifica il tipo di comunicazione CommunicationType |
Obbligatorio |
|
|
Dati allegato in formato Base64 |
Obbligatorio |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 38
{
"requestId" : "8XVJQQY4CGVDIBQN"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Codice univoco della richiesta utilizzato nelle successive comunicazioni (callback / on demand). Valorizzato solo in caso di esito positivo (nessun codice di errore). |
6.2. GetTransmissionInfoRequest
GET base url altri metodi/api/v2/comfin/{requestId}
Servizio per l’interrogazione dello stato di una richiesta.
HTTP request
GET /api/v2/comfin/GPBJ95IEM9 HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Path parameters
Parametro | Descrizione |
---|---|
|
Identificativo univoco delle richiesta fornito nella fase di creazione |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 233
{
"result" : "SF01",
"notifyResult" : "",
"elaboratedResult" : "",
"receiptTimestamp" : "2017-04-18 18:30:30",
"fileId" : "8054598261",
"fileName" : "IT01879020517_LI_0001.xml",
"status" : "",
"pddAvailable" : false
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Esito elaborazione richiesta |
|
|
XML Base64 con la risposta ottenuta da SDI, solo quando il file è stato elaborato |
|
|
Codice esito quando il file risulta essere elaborato da SDI |
|
|
Data e ora ricezione file da SDI |
|
|
Identificativo univoco fornito da SDI nella richiesta |
|
|
Nome del file generato secondo le specifiche del tipo di comunicazione |
|
|
true se la comunicazione finanziaria e i relativi file di esito sono stati conservati (si veda pdd per il download del pacchetto di conservazione), false altrimenti |
|
|
Stato |
6.3. pdd
GET base url altri metodi/api/v2/comfin/{requestID}/pdd
Se pddAvailable
è true, tale metodo permette di recuperare il pacchetto di Conservazione
in formato Zip di una comunicazione finanziaria, specificando l’identificativo richiesta (requestID)
di quest’ultima.
Se invece pddAvailable
è false, ovvero il pacchetto di Conservazione non è disponibile,
viene restituito HTTP status code 404.
HTTP request
GET /api/v2/comfin/MUO040KWCP/pdd HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Path parameters
Parametro | Descrizione |
---|---|
|
Identificativo univoco delle richiesta fornito nella fase di creazione |
HTTP response
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="IT01879020517_LI_0001.conservazione.zip"
Content-Type: application/zip
Accept-Ranges: bytes
Content-Length: 8
<binary>
6.4. ComunicationType
Valore | Descrizione |
---|---|
|
Liquidazione periodica IVA |
|
Dati fatture |
6.5. Result
Valore | Descrizione |
---|---|
SF01 |
In elaborazione |
SF02 |
Elaborato |
SF03 |
Errore |
AR01 |
File allegato vuoto o non presente |
AR02 |
Accesso non consentito |
AR03 |
File non corretto |
AR04 |
ID Richiesta non presente |
AR05 |
Firma remota non effettuata |
AR06 |
Invio a SDI non eseguito |
AR07 |
Risposta esito SDI non pervenuta |
AR08 |
Firma non corretta |
AR09 |
Invio conto terzi non consentito |
AR10 |
Raggiunto massimo numero fatture e comunicazioni finanziarie |
AR20 |
ComunicationType errato |
AR21 |
File non firmato |
AR99 |
Errore generico |
6.6. CodiceEsito
Valore | Descrizione |
---|---|
|
Liquidazione periodica IVA |
|
File valido con segnalazioni |
|
Scartato |
7. Invio Fatture Elettroniche

I metodi esposti permettono la creazione di una nuova richiesta di trasmissione a SdI di fatture verso la Pubblica Amministrazione o privati.
SdI verifica la correttezza formale del contenuto dei file trasmessi e li veicola verso il destinatario in essi indicato.
Le fatture, firmate o da firmare, devono essere inviate tramite file .xml secondo uno specifico formato stabilito da SdI.
7.1. Dati Trasmittente
E' stato introdotto il controllo sincrono sul campo ID Trasmittente (tag 1.1.1 <IdTrasmittente> [1] del tracciato XML), il quale dovrà essere valorizzato con il codice fiscale dell’intermediario Aruba PEC S.p.A.: 01879020517.
Sotto è riportato un esempio di compilazione della sezione 1.1 <DatiTrasmissione> [1] del file fattura XML:
<DatiTrasmissione>
<IdTrasmittente>
<IdPaese>IT</IdPaese>
<IdCodice>01879020517</IdCodice>
</IdTrasmittente>
<!--
...
altri dati del tag XML 1.1 <DatiTrasmissione>:
- 1.1.2 <ProgressivoInvio>
- 1.1.3 <FormatoTrasmissione>
- 1.1.4 <CodiceDestinatario>
...
-->
<ContattiTrasmittente>
<Telefono>05750505</Telefono>
<Email>info@arubapec.it</Email>
</ContattiTrasmittente>
<!--
...
altri dati del tag XML 1.1 <DatiTrasmissione>:
- 1.1.6 <PECDestinatario>
...
-->
</DatiTrasmissione>
7.2. Autofattura
L’autofattura è un documento fiscale simile alla fattura, emessa dal cessionario/committente (cliente) per conto del cedente/prestatore (fornitore). Si tratta di una tipologia di fattura molto particolare caratterizzata dal fatto che l’obbligo di applicazione dell’IVA e dell’emissione di fattura è a carico del cliente.
Per emettere una autofattura in formato elettronico è necessario avere cura di compilare il file XML nel seguente modo:
-
Popolare il campo 1.6 <SoggettoEmittente> con il valore "CC". Tale valore indica che la fattura è emessa dal Cessionario/Committente per conto del Cedente/Prestatore;
-
Popolare la sezione 1.4 <CessionarioCommittente> con i dati del soggetto emittente, ossia del Cedente/Prestatore indicato nell’anagrafica di Fatturazione Elettronica di Aruba (PIVA dell’utente);
-
Popolare la sezione 1.2 <CedentePrestatore> con i dati del fornitore.
Fatturazione Elettronica di Aruba verificherà il file XML ricevuto mediante i seguenti controlli sul soggetto emittente (cedente/prestatore indicato in anagrafica):
-
se non presente il tag 1.6 viene controllato che la P.IVA del soggetto emittente corrisponda alla P.IVA riportata sul cedente/prestatore (sezione 1.2 del file XML);
-
se presente il tag 1.6 compilato con il valore "CC" viene controllato che la P.IVA del soggetto emittente corrisponda alla P.IVA riportata sul cessionario/committente (sezione 1.4 del file XML);
-
se presente il tag 1.6 compilato con il valore "TZ" o se non rispettati i controlli sopra, la fattura non viene accettata dal sistema.
Le autofatture potranno essere emesse con uno dei seguenti "Tipo Documento", a seconda della tipologia di autofattura emessa: TD01, TD16, TD17, TD18, TD19, TD20, TD21, TD22, TD23, TD26, TD27.
Per maggiori informazioni sulle casistiche e modalità di creazione delle autofatture è possibile visionare anche le FAQ di:
7.3. Upload invoice
POST base url altri metodi/services/invoice/upload
Questo metodo deve essere utilizzato dall’OE per effettuare l’invio di una fattura già nel formato XML secondo norme AGID, ma non ancora firmata digitalmente.
HTTP request
POST /services/invoice/upload HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Content-Type: application/json;charset=UTF-8
{
"dataFile" : "dGVzdA==",
"credential" : "",
"domain" : "",
"senderPIVA" : "",
"skipExtraSchema" : false,
"dryRun" : false
}
I parametri "domain" e "credential" rappresentano rispettivamente il dominio e le credenziali di firma automatica se possedute dall’utente, in caso contrario lasciare tali campi vuoti o ometterli. |
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request fields
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
File fattura codificato in Base64 |
Obbligatorio |
|
|
Credenziali firma |
|
|
|
Domain firma |
|
|
|
Nel caso in cui la fattura che si intende trasmettere abbia TD26 (cessione di beni ammortizzabili e per passaggi interni ex art.36 DPR 633/72) come "2.1.1.1 <TipoDocumento>", il campo senderPIVA può essere utilizzato per specificare quale tra il cedente /prestatore e il cessionario/committente sia il mittente della fattura. Il campo senderPIVA, nel caso in cui venga utilizzato, deve riportare il codice nazione e la partita iva del mittente (es. IT99999999999 ) |
|
|
|
false di default. Se impostato a true non vengono effettuati i Controlli extraschema sincroni e i Controlli extraschema asincroni. I Controlli extraschema sincroni e i Controlli extraschema asincroni vengono in ogni caso effettuati dal Sistema di Interscambio |
|
|
|
false di default. Se impostato a 'true' la fattura attraverserà le fasi di validazione ma non verrà inviata a SdI |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 161
{
"errorCode" : "0000",
"errorDescription" : "Operazione effettuata - 521e052902be7b879d41e0fd586f0e21",
"uploadFileName" : "IT07641803768_sykkr.xml.p7m"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Nome file assegnato alla fattura |
|
|
Eventuale codice di errore Controlli Sincroni |
|
|
Eventuale descrizione errore Controlli Sincroni e identificativo richiesta |
Identificativo richiesta: Nel campo errorDescription è stato inserito un identificativo richiesta, questo codice può essere riportato nelle richieste di assistenza
al fine di velocizzarne la risoluzione.
|
7.4. Upload invoice signed
POST base url altri metodi/services/invoice/uploadSigned
Questo metodo deve essere utilizzato dall’OE per effettuare l’invio di una fattura nel formato XML e già firmata digitalmente secondo norme AGID:
-
con estensione .p7m e formato CAdES-BES (CMS Advanced Electronic Signatures);
-
con estensione .xml e formato XAdES-BES (XML Advanced Electronic Signatures).
HTTP request
POST /services/invoice/uploadSigned HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Content-Type: application/json;charset=UTF-8
{
"dataFile" : "dGVzdA==",
"senderPIVA" : "",
"skipExtraSchema" : false,
"dryRun" : false
}
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request fields
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
File fattura codificato in Base64 |
Obbligatorio |
|
|
Nel caso in cui la fattura che si intende trasmettere abbia TD26 (cessione di beni ammortizzabili e per passaggi interni ex art.36 DPR 633/72) come "2.1.1.1 <TipoDocumento>", il campo senderPIVA può essere utilizzato per specificare quale tra il cedente /prestatore e il cessionario/committente sia il mittente della fattura. Il campo senderPIVA, nel caso in cui venga utilizzato, deve riportare il codice nazione e la partita iva del mittente (es. IT99999999999 ) |
|
|
|
false di default. Se impostato a true non vengono effettuati i Controlli extraschema sincroni e i Controlli extraschema asincroni. I Controlli extraschema sincroni e i Controlli extraschema asincroni vengono in ogni caso effettuati dal Sistema di Interscambio |
|
|
|
false di default. Se impostato a 'true' la fattura attraverserà le fasi di validazione ma non verrà inviata a SdI |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 157
{
"errorCode" : "",
"errorDescription" : "Operazione effettuata - 521e052902be7b879d41e0fd586f0e21",
"uploadFileName" : "IT01879020517_eqcoo.xml.p7m"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Nome file assegnato alla fattura |
|
|
Eventuale codice di errore Controlli Sincroni |
|
|
Eventuale descrizione errore Controlli Sincroni e identificativo richiesta |
Identificativo richiesta: Nel campo errorDescription è stato inserito un identificativo richiesta, questo codice può essere riportato nelle richieste di assistenza
al fine di velocizzarne la risoluzione.
|
7.5. Controlli
Al fine di limitare il rischio di scarto il sistema Fatturazione Elettronica di Aruba effettua alcuni controlli sulle fatture elettroniche XML ricevute da Web Services. In particolare, il controllo dei file caricati viene eseguito in 2 fasi:
-
Controlli sincroni: vengono eseguiti nel momento in cui viene ricevuta la fattura da parte del sistema Fatturazione Elettronica di Aruba, consentendo un’analisi preliminare del file. L’esito di tali controlli comporta la presa in carico o il rifiuto della fattura ricevuta. L’esito dei controlli sincroni viene restituito immediatamente con uno dei messaggi indicati in Controlli Sincroni.
-
Controlli asincroni: vengono eseguiti successivamente alla presa in carico del file dai nostri sistemi. L’esito di tali controlli comporta l’assegnazione di uno stato alla fattura:
-
Se la fattura supera i controlli, viene inviata al Sistema di Interscambio e assegnato lo stato "Inviata";
-
Se la fattura non supera i controlli, non viene inviata al Sistema di Interscambio e viene assegnato lo stato "Errore Elaborazione". L’esito di tali controlli può essere recuperato mediante i metodi di ricerca delle fatture inviate findInvoices, getInvoiceDetail o mediante le Callback.
-

7.5.1. Controlli Sincroni
Codice | Messaggio | Descrizione Controllo |
---|---|---|
0000 |
Operazione effettuata |
Invio fattura effettuato correttamente |
0001 |
Errore imprevisto generico |
Errore generico |
0002 |
Errore parametri in input: emailnotifica, formato mail inserita non valido |
Formato email non valido |
0002 |
Errore parametri in input: dataFile, formato fattura errato o non presente |
Fattura non presente |
0012 |
Errore di autenticazione al sistema |
Autenticazione dell’utente sul sistema fallita |
0013 |
Errore in fase di salvataggio dati |
Errore salvataggio su db |
0033 |
Il file inviato supera la dimensione massima |
Fattura superiore alla dimensione massima SLA (Service Level Agreement) |
0034 |
File già inviato di recente |
Il file è stato già inviato precedentemente ed è stato preso in carico dal sistema |
0092 |
Errore in validazione XSD: "errore specifico" |
Validazione xsd con la descrizione dell’errore specifico |
0093 |
Errore deleghe non valide |
Utente con deleghe non valide |
0094 |
La fattura che stai inviando contiene ID e/o contatti dei trasmittenti differenti dai dati dell’intermediario Aruba PEC. |
Id Trasmittente non presente o diverso da Aruba PEC S.p.A |
0095 |
Servizio momentaneamente non disponibile. Il controllo dei permessi è fallito. Si prega di riprovare più tardi. |
Il servizio è momentaneamente non disponibile, non è possibile verificare i permessi dell’utente. |
0096 |
Errore di validazione: "codice" - "messaggio" |
Errore di validazione (Controlli extra schema) |
0097 |
Spazio esaurito o non sufficiente, è necessario effettuare un aumento di spazio. |
E' necessario effettuare un aumento di spazio, ulteriori informazioni disponibili collegandosi al pannello web. |
0098 |
Formato Base64 non valido. |
La codifica in Base64 del file fattura non è valida. |
Controlli extra schema
Per quanto riguarda i controlli sincroni per il messaggio 0096, "codice" e "messaggio" possono essere quelli nella seguente tabella:
Codice SdI | Messaggio Fattura Ordinaria [1] | Messaggio fattura semplificata (se differente) [1] | Campo su cui si effettua il controllo | Controllo effettuato |
---|---|---|---|---|
00313 |
L’elemento 1.1.4 <CodiceDestinatario> può essere valorizzato con "XXXXXXX" esclusivamente per le fatture emesse verso soggetti non residenti (1.4.1.1 <IdFiscaleIVA> deve essere valorizzato e 1.4.1.1.1 <IdPaese> deve essere diverso da "IT") |
L’elemento 1.1.4 <CodiceDestinatario> può essere valorizzato con "XXXXXXX" per comunicare i dati di fatture emesse esclusivamente verso soggetti non residenti (1.3.1.1 <IdFiscaleIVA> deve essere valorizzato e 1.3.1.1.1 <IdPaese> deve essere diverso da "IT") |
1.1.4 <CodiceDestinatario> |
Nel caso in cui l’elemento 1.1.4 <CodiceDestinatario> sia valorizzato con "XXXXXXX" (fattura emessa verso soggetti non residenti, non stabiliti, non identificati in Italia) viene controllato che il campo IdPaese del cessionario/committente contenga un valore diverso da "IT" |
7.5.2. Controlli Asincroni
Messaggio | Descrizione controllo |
---|---|
|
Errore nel parsing del file fattura |
|
Iva cedente prestatore o paese ced prestatore null |
|
Partita iva non trovata |
|
Username non trovato |
|
Errore di validazione (Controlli extra schema) |
|
Username non trovato |
|
Deleghe non trovate |
|
Firma non valida |
|
File vuoto |
|
Utente disabilitato |
|
Errore nel parsing del file notifica |
|
Nome file notifica assente |
Controlli extra schema
Per quanto riguarda i controlli asincroni per il messaggio FATRSM212, "codice" e "messaggio" possono essere quelli nella seguente tabella:
Codice SdI | Messaggio Fattura Ordinaria [1] | Messaggio fattura semplificata (se differente) [1] | Campo su cui si effettua il controllo | Controllo effettuato |
---|---|---|---|---|
|
1.4.1.1.2 <IdCodice> non valido |
1.4.1.1.2 <IdCodice> |
||
|
1.4.1.2 <CodiceFiscale> non valido |
1.4.1.2 <CodiceFiscale> |
||
|
2.2.1.14 < Natura> non presente a fronte di 2.2.1.12 <AliquotaIVA> pari a zero |
2.2.4 <Natura> non presente a fronte di 2.2.3.2 <Aliquota> pari a zero |
2.2.1.14 <Natura> |
Viene controllato che sia valorizzato, se l’elemento informativo 2.2.1.12 <AliquotaIVA> è pari a "0.00", e che non sia valorizzato, se l’elemento informativo 2.2.1.12 <AliquotaIVA> è diverso |
|
2.2.1.14 <Natura> presente a fronte di 2.2.1.12 <AliquotaIVA> diversa da zero (l’indicazione di un’aliquota IVA diversa da zero qualifica l’operazione come imponibile e quindi non è ammessa la presenza dell’elemento <Natura>, ad eccezione del caso in cui l’elemento TipoDocumento assume valore TD16) |
2.2.4 <Natura> presente a fronte di 2.2.3.2 <Aliquota> diversa da zero (l’indicazione di un’aliquota IVA diversa da zero qualifica l’operazione come imponibile e quindi non è ammessa la presenza dell’elemento <Natura>, ad eccezione del caso in cui l’elemento TipoDocumento assume valore TD16) |
2.2.1.14 <Natura> e 2.2.1.12 <AliquotaIVA> |
Viene controllato che sia valorizzato, se l’elemento informativo 2.2.1.12 <AliquotaIVA> è pari a "0.00", e che non sia valorizzato, se l’elemento informativo 2.2.1.12 <AliquotaIVA> è diverso da "0.00" (salvo il caso in cui l’elemento 2.1.1.1 <TipoDocumento> sia pari a TD16) |
|
2.1.1.3 <Data> successiva alla data di ricezione |
2.1.1.3 <Data> |
Viene controllato che non sia successiva alla data in cui il file è stato ricevuto dal Sistema di Interscambio. Inoltre, se l’elemento informativo 2.1.1.1 <TipoDocumento> vale "TD04", viene controllato che non sia antecedente a quella presente nell’elemento informativo 2.1.6.3 <Data> |
|
|
2.1.1.5 <DatiRitenuta> non presente a fronte di almeno un blocco 2.2.1 <DettaglioLinee> con 2.2.1.13 <Ritenuta> uguale a SI |
2.1.1.5 <DatiRitenuta> |
Viene controllata la presenza di questo blocco in presenza di almeno un blocco 2.2.1 <DettaglioLinee> con l’elemento 2.2.1.13 <Ritenuta> uguale a 'SI' e/o di un blocco 2.1.1.7 <DatiCassaPrevidenziale> con l’elemento 2.1.1.7.6 <Ritenuta> uguale a 'SI' |
|
|
2.1.1.7.7 <Natura> non presente a fronte di 2.1.1.7.5 <AliquotaIVA> pari a zero |
2.1.1.7.7 <Natura> |
Viene controllato che sia valorizzato, se l’elemento informativo 2.1.1.7.5 <AliquotaIVA> è pari a "0.00", e che non sia valorizzato, se l’elemento informativo 2.1.1.7.5 <AliquotaIVA> è diverso da "0.00" |
|
|
2.1.1.5 <DatiRitenuta> non presente a fronte di 2.1.1.7.6 <Ritenuta> uguale a SI |
2.1.1.7.6 <Ritenuta> |
Se è valorizzato a "SI", viene controllato che esista il blocco 2.1.1.5 <DatiRitenuta> |
|
|
1.4.1.1 <IdFiscaleIVA> e 1.4.1.2 <CodiceFiscale> non valorizzati (almeno uno dei due deve essere valorizzato) |
1.4.1.1 <IdFiscaleIVA> e 1.4.1.2 <CodiceFiscale> |
1.4.1.2 <CodiceFiscale>: Se non è valorizzato, viene controllato che sia valorizzato il blocco 1.4.1.1 <IdFiscaleIVA>, se valorizzato, viene controllata la sua esistenza in Anagrafe Tributaria |
|
|
2.1.1.3 <Data> antecedente a 2.1.6.3 <Data> |
2.1.1.3 <Data> |
||
|
2.2.2 <DatiRiepilogo> non presente in corrispondenza di almeno un valore di 2.1.1.7.5 <AliquotaIVA> o 2.2.1.12 <AliquotaIVA> |
2.2.2 <DatiRiepilogo> |
Viene controllato che il numero di blocchi 2.2.2. <DatiRiepilogo> sia maggiore o uguale al numero di aliquote IVA presenti nel documento |
|
|
2.2.2.2 <Natura> con valore N6 (inversione contabile) a fronte di 2.2.2.7 <EsigibilitaIVA> uguale a S (scissione pagamenti) |
2.2.2.2 <Natura> o 2.2.2.7 <EsigibilitaIVA> |
Se 2.2.2.2 <Natura> è valorizzato a "N6", viene controllato che l’elemento informativo 2.2.2.7 <EsigibilitaIVA> non sia valorizzato a "S". Viene controllato che sia valorizzato, se l’elemento informativo 2.2.2.1 <AliquotaIVA> è pari a "0.00", e che non sia valorizzato, se l’elemento informativo 2.2.2.1 <AliquotaIVA> è diverso da "0.00". |
|
|
2.2.1.12 <AliquotaIVA> o 2.2.2.1< AliquotaIVA> o 2.1.1.7.5 <AliquotaIVA> non indicata in termini percentuali |
2.2.3.2 <Aliquota> non indicata in termini percentuali |
2.2.1.12 <AliquotaIVA> o 2.2.2.1< AliquotaIVA> o 2.1.1.7.5 <AliquotaIVA> |
Viene controllato che il valore sia espresso in termini percentuali (es.: "22.00" e non "0.22") |
|
2.1.1.4 <Numero> non contenente caratteri numerici |
2.1.1.4 <Numero> |
Viene controllato che contenga almeno un carattere numerico |
|
|
1.1.4 <CodiceDestinatario> di 7 caratteri a fronte di 1.1.3 <FormatoTrasmissione> con valore "FPA12" o 1.1.4 <CodiceDestinatario> di 6 caratteri a fronte di 1.1.3 <FormatoTrasmissione> con valore "FPR12" |
1.1.4 <CodiceDestinatario> |
||
|
1.1.3 <FormatoTrasmissione> con valore diverso da "FPA12" e "FPR12" |
1.1.3 <FormatoTrasmissione> |
Viene controllata la coerenza con l’elemento informativo 1.1.4 <CodiceDestinatario>: se vale "FPA12", l’elemento informativo 1.1.4 deve essere di 6 caratteri; se vale "FPR12", l’elemento informativo 1.1.4 deve essere di 7 caratteri. |
|
|
2.2.2.2 < Natura> non presente a fronte di 2.2.2.1 <AliquotaIVA> pari a zero |
2.2.2.2 <Natura> |
||
|
2.2.2.2 <Natura> presente a fronte di 2.2.2.1 <AliquotaIVA> diversa da zero (l’indicazione di un’aliquota IVA diversa da zero qualifica l’operazione comei mponibile e quindi non è ammessa la presenza dell’elemento <Natura>, ad eccezione del caso in cui l’elemento TipoDocumento assume valore TD16) |
2.2.2.2 <Natura> |
Viene controllato che sia valorizzato, se l’elemento informativo 2.2.2.1 <AliquotaIVA> è pari a "0.00", e che non sia valorizzato, se l’elemento informativo 2.2.2.1 <AliquotaIVA> è diverso da "0.00" (salvo il caso in cui l’elemento 2.1.1.1 <TipoDocumento> sia pari a TD16) |
|
|
2.1.1.8.2 <Percentuale> e 2.1.1.8.3 <Importo> non presenti a fronte di 2.1.1.8.1 <Tipo> valorizzato |
<ScontoMaggiorazione> 2.1.1.8 |
2.1.1.8.1 <Tipo>: Se valorizzato, viene controllato che esista almeno uno dei due elementi 2.1.1.8.2 <Percentuale> e 2.1.1.8.3 <Importo> |
|
|
2.2.1.10.2 <Percentuale> e 2.2.1.10.3 <Importo> non presenti a fronte di 2.2.1.10.1 <Tipo> valorizzato |
<ScontoMaggiorazione> 2.2.1.10.1 |
Se valorizzato, viene controllato che esista almeno uno dei due elementi 2.2.1.10.2 <Percentuale> e 2.2.1.10.3 <Importo> |
|
|
Non c’è corrispondenza tra i valori indicati nell’elemento 2.2.1.12 <AliquotaIVA> o 2.1.1.7.5 <AliquotaIVA> e quelli dell’elemento 2.2.2.1 <AliquotaIVA> |
2.1.1.7.5 <AliquotaIVA> o 2.2.1.12 <AliquotaIVA> e 2.2.2.1 <AliquotaIVA> |
Viene controllato che il valore espresso in questo elemento sia anche presente nell’elemento 2.2.2.1 <AliquotaIVA> di uno dei blocchi 2.2.2 <DatiRiepilogo> presenti in fattura. Viene controllato che il valore espresso in questo elemento sia anche presente nell’elemento 2.2.1.12 <AliquotaIVA> di uno dei blocchi 2.2.1 <DettaglioLinee> presenti in fattura o nell’elemento 2.1.1.7.5 <AliquotaIVA> di uno dei blocchi 2.1.1.7 <DatiCassaPrevidenziale> presenti in fattura |
|
|
Non c’è corrispondenza tra i valori indicati nell’elemento 2.2.1.14 <Natura> o 2.1.1.7.7 <Natura> e quelli dell’elemento 2.2.2.2 <Natura> |
2.1.1.7.7 <Natura> o 2.2.1.14 <Natura> e 2.2.2.2 <Natura> |
Viene controllato che il valore espresso in questo elemento sia anche presente nell’elemento 2.2.2.1 <AliquotaIVA> di uno dei blocchi 2.2.2 <DatiRiepilogo> presenti in fattura. Viene controllato che il valore espresso in questo elemento sia anche presente nell’elemento 2.2.1.14 <Natura> di uno dei blocchi 2.2.1 <DettaglioLinee> presenti in fattura o nell’elemento 2.1.1.7.7 <Natura> di uno dei blocchi 2.1.1.7 <DatiCassaPrevidenziale> presenti in fattura |
|
|
Non è più ammesso il valore generico N2, N3 o N6 come codice natura dell’operazione |
Non è più ammesso il valore generico N2 o N3 come codice natura dell’operazione |
2.1.1.7.7 <Natura> o 2.2.1.14 <Natura> o 2.2.2.2 <Natura> o 2.2.4 <Natura> (semplificata) |
Dal primo gennaio 2021 viene controllato che il valore espresso in questo elemento sia diverso da N2, N3 e N6 (valori non più ammessi) |
|
Importo totale superiore al limite previsto per le fatture semplificate ai sensi del DPR 633/72, art. 21 bis |
2.2.2 <Importo> |
Il valore di questo campo (o la somma dei valori di questo campo in caso di presenza di più blocchi 2.2 <DatiBeniServizi>) non deve eccedere il limite di 400,00 euro. Il superamento di tale limite è consentiro solo se presente il blocco 2.1.2 <DatiFatturaRettificata> |
|
|
Per il valore indicato nell’elemento 2.1.1.1 <TipoDocumento> il cedente/prestatore non può essere uguale al cessionario/committente (i valori del tipo documento TD01, TD02, TD03, TD06, TD16, TD17, TD18, TD19, TD20, TD24, TD25 e TD28 (fatture ordinarie) e TD07 (fatture semplificate) non ammettono l’indicazione in fattura dello stesso soggetto sia come cedente che come cessionario) |
2.1.1.1 <TipoDocumento> |
Se l’elemento informativo 2.1.1.1 <TipoDocumento> vale TD01, TD02, TD03, TD06, TD16, TD17, TD18, TD19, TD20, TD24, TD25 o TD28, viene controllato che il cedente/prestatore e il cessionario/committente siano soggetti diversi |
|
|
Per il valore indicato nell’elemento 2.1.1.1 <TipoDocumento> il cedente/prestatore deve essere uguale al cessionario/committente (i valori TD21 e TD27 non ammettono l’indicazione in fattura di un cedente diverso dal cessionario) |
2.1.1.1 <TipoDocumento> |
Se l’elemento informativo 2.1.1.1 <TipoDocumento> vale TD21 o TD27, viene controllato che il cedente/prestatore e il cessionario/committente siano uguali |
|
|
Per il valore indicato nell’elemento 2.1.1.1 <TipoDocumento> non è ammesso il valore IT nell’elemento 1.2.1.1.1 <IdPaese> (i valoriTD17, TD18, TD19 e TD28 del tipo documento non ammettonol’indicazione in fattura di un cedente italiano. Nei casi di TD17 e TD19 è ammessa l’indicazione del valore 'OO' nell’elemento 1.2.1.1.1 <IdPaese>per operazioni effettuate da soggetti residenti in Livigno e Campione d’Italia. Inoltre, nel caso del TD28, l’elemento 1.2.1.1.1 <IdPaese> deve essere valorizzato con il valore SM)(vale solo per le fatture ordinarie) |
2.1.1.1 <TipoDocumento> e 1.2.1.1.1 <IdPaese> |
Se l’elemento informativo 2.1.1.1 <TipoDocumento> vale TD17, TD18, TD19 o TD28, viene effettuato il controllo sul campo 1.2.1.1.1<IdPaese> del cedente/prestatore che deve essere diverso da "IT" e, nel caso di TD28, deve essere uguale a "SM" |
|
|
Per il valore indicato nell’elemento 2.1.1.1 <TipoDocumento> non sono ammesse linee di dettaglio con l’elemento 2.2.1.12 <AliquotaIVA> contenente valore zero |
2.1.1.1 <TipoDocumento> e 2.2.1.12 <AliquotaIVA> |
Se l’elemento informativo 2.1.1.1 <TipoDocumento> vale TD21, viene controllato che non esista alcuna riga di fattura con il campo 2.2.1.12<AliquotaIVA> valorizzato a zero |
|
|
Per il valore indicato nell’elemento 2.1.1.1 <TipoDocumento> deve essere presente l’elemento 1.4.1.1 <IdFiscaleIVA> del cessionario/committente (i tipi documento TD16, TD17, TD18, TD19, TD20, TD22, TD23 e TD28 prevedono obbligatoriamente la presenza della partita IVA del cessionario/committente) |
2.1.1.1 <TipoDocumento> e 1.4.1.1 <IdFiscaleIVA> |
Se l’elemento informativo 2.1.1.1 <TipoDocumento> vale TD16, TD17, TD18, TD19, TD20, TD22, TD23 o TD28, viene controllato che sia valorizzato il blocco 1.4.1.1 <IdFiscaleIVA> del cessionario/committente |
|
|
Gli elementi 1.2.1.1.1 <IdPaese> e 1.4.1.1.1 <IdPaese> non possono essere entrambi valorizzati con codice diverso da IT (non è ammessa una fattura riportante contemporaneamente nel paese dell’identificativo fiscale del cedente/prestatore e del cessionario/committente un valore diverso da IT) |
Gli elementi 1.2.1.1 <IdPaese> (cedente) e 1.3.1.1.1 <IdPaese> (cessionario) non possono essere entrambi valorizzati con codice diverso da IT (non è ammessa una fattura riportante contemporaneamente nel paese dell’identificativo fiscale del cedente/prestatore e del cessionario/committente un valore diverso da IT) |
1.2.1.1.1 <IdPaese> (cedente) e 1.4.1.1.1 <IdPaese> |
Se l’elemento informativo 1.2.1.1.1 <IdPaese> ha un valore diverso da "IT", viene verificato che l’elemento informativo 1.4.1.1.1 <IdPaese> non sia anche esso diverso da "IT" |
8. Ricerca Fatture Inviate
Metodi di ricerca fatture inviate.
8.1. Stati delle fatture
Di seguito l’elenco degli Stati delle fatture che è possibile ottenere invocando i metodi descritti in questo capitolo e nel prossimo.
Stato | Codice Stato | Tipo Notifica SDI | Descrizione |
---|---|---|---|
Presa in carico |
1 |
La fattura è in attesa di essere elaborata dai sistemi di Aruba e non risulta ancora trasmessa a SDI. |
|
Errore Elaborazione |
2 |
Si è verificato un errore nell’elaborazione della fattura (Problema tecnico nell' invio allo SDI). |
|
Inviata |
3 |
La fattura è stata inviata al Sistema di Interscambio (SDI). |
|
Scartata |
4 |
NS |
La fattura è stata rifiutata dal Sistema di Interscambio (SDI) che ha restituito un codice di errore specifico. |
Non Consegnata |
5 |
MC |
La consegna della fattura da parte del Sistema di Interscambio (SDI) è fallita. Solo per le PA, verranno fatti ulteriori tentativi di consegna nei 10 giorni seguenti. |
Recapito Impossibile |
6 |
AT |
La consegna della fattura da parte del Sistema di Intercambio (SDI) non è andata a buon fine. Non verranno effettuati ulteriori tentativi di consegna. |
Consegnata |
7 |
RC |
La fattura è stata consegnata da parte del Sistema di Interscambio (SDI). |
Accettata |
8 |
NE (EC01) |
Il cliente ha accettato la fattura consegnata dal Sistema di Interscambio (SDI). |
Rifiutata |
9 |
NE (EC02) |
Il cliente ha rifiutato la fattura consegnata dal Sistema di Interscambio (SDI). |
Decorrenza Termini |
10 |
DT |
La fattura è stata consegnata da parte del Sistema di Interscambio (SDI) ma il cliente non ha inoltrato alcuna risposta nei 15 successivi alla consegna. |
Ricevuta |
MT |
Le fatture ricevute sono accompagnate dalla Notifica Metadati che il Sistema di Interscambio (SDI) invia al destinatario insieme alla fattura |
8.2. findInvoices
GET base url altri metodi/api/v2/invoices-out
Questo metodo restituisce l’elenco delle fatture elettroniche inviate dall’utente e prese in carico dal sistema. La lista di Fatture ritorna senza il contenuto in base64 (lazy loading).
HTTP request
GET /api/v2/invoices-out HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
pagina richiesta (default 1) |
Compreso tra 1 e totalPages |
|
dimensione della pagina (default 10) |
Compreso tra 1 e 100 |
|
Data creazione fattura (da) |
Obbligatorio, in formato ISO 8601, la differenza con creationEndDate non può essere maggiore di 2 giorni |
|
Data creazione fattura (a) |
Obbligatorio, in formato ISO 8601, la differenza con creationStartDate non può essere maggiore di 2 giorni |
|
Codice Paese del cedente/prestatore |
Obbligatorio se si utilizza un’utenza Premium |
|
Partita iva del cedente/prestatore |
Obbligatorio se si utilizza un’utenza Premium |
|
Codice Paese del cessionario/committente |
|
|
Partita iva del cessionario/committente |
|
|
Codice fiscale del cessionario/committente |
|
|
Stato della fattura |
|
|
Tipo di documento |
|
|
Data ultima modifica fattura (da) |
In formato ISO 8601 |
|
Data ultima modifica fattura (a) |
In formato ISO 8601 |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 4072
{
"content" : [ {
"channelGroup" : 2,
"shopName" : "null",
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:09.630Z",
"number" : "1",
"documentType" : "TD01",
"status" : "Inviata",
"statusDescription" : "",
"totalDocument" : 100.0,
"totalVat" : 27.0,
"netPayable" : 100.0
} ],
"sdiErrors" : [ ],
"id" : "1",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "6372762541",
"fiscalCode" : "N5Hnt9vvMZ"
},
"receiver" : {
"description" : "Rossi SRL",
"countryCode" : "IT",
"vatCode" : "8767263441",
"fiscalCode" : "LVZTeOJ8BN"
},
"invoiceType" : "FPR12",
"docType" : "out",
"file" : null,
"filename" : "IT01879020517_jtlk1.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:09.630+0000",
"lastUpdate" : "2024-11-21T09:39:09.630+0000",
"idSdi" : "7895",
"pddAvailable" : true
}, {
"channelGroup" : 2,
"shopName" : "null",
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:09.630Z",
"number" : "1",
"documentType" : "TD01",
"status" : "Inviata",
"statusDescription" : "",
"totalDocument" : 100.0,
"totalVat" : 27.0,
"netPayable" : 100.0
} ],
"sdiErrors" : [ ],
"id" : "2",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "yBJ",
"vatCode" : "1745663161",
"fiscalCode" : "GFZ3LzV8wY"
},
"receiver" : {
"description" : "Rossi SRL",
"countryCode" : "IT",
"vatCode" : "7180594879",
"fiscalCode" : "HwDBzj6cjT"
},
"invoiceType" : "FPR12",
"docType" : "out",
"file" : null,
"filename" : "IT01879020517_eqcoo.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:09.630+0000",
"lastUpdate" : "2024-11-21T09:39:09.630+0000",
"idSdi" : "7895",
"pddAvailable" : true
}, {
"channelGroup" : 2,
"shopName" : "null",
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:09.630Z",
"number" : "1",
"documentType" : "TD01",
"status" : "Inviata",
"statusDescription" : "",
"totalDocument" : 100.0,
"totalVat" : 27.0,
"netPayable" : 100.0
} ],
"sdiErrors" : [ ],
"id" : "3",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "31464730975",
"fiscalCode" : "05361669693"
},
"receiver" : {
"description" : "Rossi SRL",
"countryCode" : "IT",
"vatCode" : "47231866271",
"fiscalCode" : "55896669261"
},
"invoiceType" : "FPR12",
"docType" : "out",
"file" : null,
"filename" : "IT07641803768_sykkr.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:09.630+0000",
"lastUpdate" : "2024-11-21T09:39:09.630+0000",
"idSdi" : "7895",
"pddAvailable" : true
}, {
"channelGroup" : 2,
"shopName" : "null",
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:09.630Z",
"number" : "1",
"documentType" : "TD01",
"status" : "Inviata",
"statusDescription" : "",
"totalDocument" : 100.0,
"totalVat" : 27.0,
"netPayable" : 100.0
} ],
"sdiErrors" : [ ],
"id" : "4",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "49438996411",
"fiscalCode" : "76718412753"
},
"receiver" : {
"description" : "Rossi SRL",
"countryCode" : "IT",
"vatCode" : "52900309206",
"fiscalCode" : "84120122783"
},
"invoiceType" : "FPR12",
"docType" : "out",
"file" : null,
"filename" : "IT03452204191_ktpkf.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:09.630+0000",
"lastUpdate" : "2024-11-21T09:39:09.630+0000",
"idSdi" : "7895",
"pddAvailable" : true
} ],
"first" : true,
"last" : true,
"totalElements" : 4,
"totalPages" : 1,
"size" : 10,
"number" : 1,
"numberOfElements" : 4
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Array delle fatture trovate |
|
|
true se la pagina trovata è l’ultima, altrimenti false |
|
|
Numero totale fatture trovate |
|
|
Numero totale pagine |
|
|
Dimensione della pagina |
|
|
Numero della pagina corrente |
|
|
true se la pagina trovata è la prima, altrimenti false |
|
|
Numero di elementi ritornati |
|
|
Array delle singole fatture presenti nel lotto |
|
|
Identificativo fattura |
|
|
Company sender |
|
|
Company receiver |
|
|
Formato trasmissione (es. 'FPA12' o 'FPR12', …) |
|
|
out per fattura inviata, in per fattura ricevuta |
|
|
File in formato Base64 |
|
|
Filename (es. IT01879020517_abcde.xml.p7m) |
|
|
Username del proprietario della fattura |
|
|
Data di creazione, ovvero la data in cui la fattura è stata recepita dalla Fatturazione Elettronica Aruba |
|
|
Data di ultimo aggiornamento |
|
|
Identificativo SdI (Sistema di Interscambio) |
|
|
true se la fattura e le relative notifiche sono state conservate (si veda getInvoicePdd per il download del pacchetto di conservazione), false altrimenti |
|
|
Canale della fattura |
|
|
Nome dello shop nel caso la fattura provenga da ecommerce |
|
|
Lista di errori presenti nell’eventuale notifica di scarto |
|
|
Denominazione cedente prestatore |
|
|
Codice nazione cedente prestatore(es. 'IT', 'DE', …) |
|
|
Partita IVA cedente prestatore |
|
|
Codice fiscale cedente prestatore |
|
|
Denominazione cessionario committente |
|
|
Codice nazione cessionario committente(es. 'IT', 'DE', …) |
|
|
Partita IVA cessionario committente |
|
|
Codice fiscale cessionario committente |
|
|
Data della fattura |
|
|
Numero della fattura |
|
|
Totale documento |
|
|
Totale iva |
|
|
Netto |
|
|
Tipo documento |
|
|
|
|
|
Contiene uno dei messaggi in Controlli asincroni se |
8.3. getInvoiceDetail
GET base url altri metodi/api/v2/invoices-out/detail
Ricerca una singola fattura per Id, invoice filename o idSdi.
HTTP request
GET /api/v2/invoices-out/detail?id=1 HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Identificativo fattura |
Obbligatorio se non sono specificati né filename né idSdi |
|
Nome del file fattura |
Obbligatorio se non sono specificati né id né idSdi |
|
Identificativo SdI |
Obbligatorio se non sono specificati né id né filename |
|
Se impostato a true, viene incluso il campo |
Non obbligatorio, di default è false |
|
Se impostato a false, viene escluso il campo |
Non obbligatorio, di default è true |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 948
{
"channelGroup" : 2,
"shopName" : "null",
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:09.573Z",
"number" : "1",
"documentType" : "TD01",
"status" : "Inviata",
"statusDescription" : "",
"totalDocument" : 100.0,
"totalVat" : 27.0,
"netPayable" : 100.0
} ],
"sdiErrors" : [ ],
"id" : "1",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "6372762541",
"fiscalCode" : "N5Hnt9vvMZ"
},
"receiver" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "8767263441",
"fiscalCode" : "LVZTeOJ8BN"
},
"invoiceType" : "FPR12",
"docType" : "out",
"file" : "ZEdWemRBPT0=",
"filename" : "IT01879020517_jtlk1.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:09.573+0000",
"lastUpdate" : "2024-11-21T09:39:09.573+0000",
"idSdi" : "9998l",
"pdfFile" : "ZEdWemRGQmtaZz09",
"pddAvailable" : true
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Array delle singole fatture presenti nel lotto |
|
|
Identificativo fattura |
|
|
Company sender |
|
|
Company receiver |
|
|
Formato trasmissione (es. 'FPA12' o 'FPR12', …) |
|
|
out per fattura inviata, in per fattura ricevuta |
|
|
File in formato Base64 |
|
|
Filename (es. IT01879020517_abcde.xml.p7m) |
|
|
Username del proprietario della fattura |
|
|
Data di creazione, ovvero la data in cui la fattura è stata recepita dalla Fatturazione Elettronica Aruba |
|
|
Data di ultimo aggiornamento |
|
|
Identificativo SdI (Sistema di Interscambio) |
|
|
true se la fattura e le relative notifiche sono state conservate (si veda getInvoicePdd per il download del pacchetto di conservazione), false altrimenti |
|
|
Canale della fattura |
|
|
Nome dello shop nel caso la fattura provenga da ecommerce |
|
|
Lista di errori presenti nell’eventuale notifica di scarto |
|
|
File pdf in formato Base64. |
|
|
Denominazione cedente prestatore |
|
|
Codice nazione cedente prestatore(es. 'IT', 'DE', …) |
|
|
Partita IVA cedente prestatore |
|
|
Codice fiscale cedente prestatore |
|
|
Denominazione cessionario committente |
|
|
Codice nazione cessionario committente(es. 'IT', 'DE', …) |
|
|
Partita IVA cessionario committente |
|
|
Codice fiscale cessionario committente |
|
|
Data della fattura |
|
|
Numero della fattura |
|
|
Totale documento |
|
|
Totale iva |
|
|
Netto |
|
|
Tipo documento |
|
|
|
|
|
Contiene uno dei messaggi in Controlli asincroni se |
8.4. getInvoiceZip
GET base url altri metodi/api/v2/invoices-out/zip
Ritorna una fattura con tutte le sue notifiche in formato Zip (es. IT01879020517_abcde.xml.p7m). Ricerca eseguita per Id fattura, invoice filename o idSdi.
HTTP request
GET /api/v2/invoices-out/zip?filename=IT01879020517_jtlk1.xml.p7m HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Nome del file fattura |
Obbligatorio se non sono specificati né id né idSdi |
|
Identificativo fattura |
Obbligatorio se non sono specificati né filename né idSdi |
|
Identificativo SdI |
Obbligatorio se non sono specificati né id né filename |
HTTP response
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="IT01879020517_jtlk1.xml.p7m.zip"
Content-Type: application/zip
Accept-Ranges: bytes
Content-Length: 8
<binary>
8.5. getInvoicePdd
GET base url altri metodi/api/v2/invoices-out/pdd
Se pddAvailable
è true, tale metodo permette di recuperare il pacchetto di Conservazione
in formato Zip di una fattura inviata, specificando il nome file (filename), l’identificativo (id) o l’idSdi (idSdi)
di quest’ultima.
Se invece pddAvailable
è false, ovvero il pacchetto di Conservazione non è disponibile,
viene restituito HTTP status code 404.
HTTP request
GET /api/v2/invoices-out/pdd?filename=IT01879020517_jtlk1.xml.p7m HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Nome del file fattura |
Obbligatorio se non sono specificati né id né idSdi |
|
Identificativo fattura |
Obbligatorio se non sono specificati né filename né idSdi |
|
Identificativo SdI |
Obbligatorio se non sono specificati né id né filename |
HTTP response
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="IT01879020517_jtlk1.conservazione.zip"
Content-Type: application/zip
Accept-Ranges: bytes
Content-Length: 8
<binary>
9. Ricerca Fatture Ricevute

Metodi di ricerca fatture ricevute.
9.1. findInvoices
GET base url altri metodi/api/v2/invoices-in
Questo metodo restituisce l’elenco delle fatture elettroniche ricevute dall’utente e prese in carico dal sistema. La lista di Fatture ritorna senza il contenuto in base64 (lazy loading).
HTTP request
GET /api/v2/invoices-in HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
pagina richiesta (default 1) |
Compreso tra 1 e totalPages |
|
dimensione della pagina (default 10) |
Compreso tra 1 e 100 |
|
Data creazione fattura (da) |
Obbligatorio, in formato ISO 8601, la differenza con creationEndDate non può essere maggiore di 2 giorni |
|
Data creazione fattura (a) |
Obbligatorio, in formato ISO 8601, la differenza con creationStartDate non può essere maggiore di 2 giorni |
|
Codice Paese del cedente/prestatore |
|
|
Partita iva del cedente/prestatore |
|
|
Codice fiscale del cedente/prestatore |
|
|
Codice Paese del cessionario/committente |
Obbligatorio se si utilizza un’utenza Premium |
|
Parita iva del cessionario/committente |
Obbligatorio se si utilizza un’utenza Premium |
|
Tipo di documento |
|
|
Data ultima modifica fattura (da) |
In formato ISO 8601 |
|
Data ultima modifica fattura (a) |
In formato ISO 8601 |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 3547
{
"content" : [ {
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:05.972Z",
"number" : "2024/0001",
"documentType" : "TD01",
"totalDocument" : 100.0,
"totalVat" : 22.0,
"netPayable" : 100.0
} ],
"id" : "1",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "22222222",
"fiscalCode" : "11111111111"
},
"receiver" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "4444444",
"fiscalCode" : "333333333"
},
"invoiceType" : "FPR12",
"docType" : "in",
"file" : null,
"filename" : "IT01879020517_jtlk0.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:05.973+0000",
"lastUpdate" : "2024-11-21T09:39:05.973+0000",
"idSdi" : "11110",
"pddAvailable" : true
}, {
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:05.973Z",
"number" : "2024/0002",
"documentType" : "TD01",
"totalDocument" : 100.0,
"totalVat" : 22.0,
"netPayable" : 100.0
} ],
"id" : "2",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "22222222",
"fiscalCode" : "11111111111"
},
"receiver" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "4444444",
"fiscalCode" : "333333333"
},
"invoiceType" : "FPR12",
"docType" : "in",
"file" : null,
"filename" : "IT01879020517_jtlk1.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:05.973+0000",
"lastUpdate" : "2024-11-21T09:39:05.973+0000",
"idSdi" : "11111",
"pddAvailable" : true
}, {
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:05.973Z",
"number" : "2024/0003",
"documentType" : "TD01",
"totalDocument" : 100.0,
"totalVat" : 22.0,
"netPayable" : 100.0
} ],
"id" : "3",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "22222222",
"fiscalCode" : "11111111111"
},
"receiver" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "4444444",
"fiscalCode" : "333333333"
},
"invoiceType" : "FPR12",
"docType" : "in",
"file" : null,
"filename" : "IT01879020517_jtlk2.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:05.973+0000",
"lastUpdate" : "2024-11-21T09:39:05.973+0000",
"idSdi" : "11112",
"pddAvailable" : true
}, {
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:05.973Z",
"number" : "2024/0004",
"documentType" : "TD01",
"totalDocument" : 100.0,
"totalVat" : 22.0,
"netPayable" : 100.0
} ],
"id" : "4",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "22222222",
"fiscalCode" : "11111111111"
},
"receiver" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "4444444",
"fiscalCode" : "333333333"
},
"invoiceType" : "FPR12",
"docType" : "in",
"file" : null,
"filename" : "IT01879020517_jtlk3.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:05.973+0000",
"lastUpdate" : "2024-11-21T09:39:05.973+0000",
"idSdi" : "11113",
"pddAvailable" : true
} ],
"first" : true,
"last" : true,
"totalElements" : 4,
"totalPages" : 1,
"size" : 10,
"number" : 1,
"numberOfElements" : 4
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Array delle fatture trovate |
|
|
true se la pagina trovata è l’ultima, altrimenti false |
|
|
Numero totale fatture trovate |
|
|
Numero totale pagine |
|
|
Dimensione della pagina |
|
|
Numero della pagina corrente |
|
|
true se la pagina trovata è la prima, altrimenti false |
|
|
Numero di elementi ritornati |
|
|
Array delle singole fatture presenti nel lotto |
|
|
Identificativo fattura |
|
|
Company sender |
|
|
Company receiver |
|
|
Formato trasmissione (es. 'FPA12' o 'FPR12', …) |
|
|
out per fattura inviata, in per fattura ricevuta |
|
|
File in formato Base64 |
|
|
Filename (es. IT01879020517_abcde.xml.p7m) |
|
|
Username del proprietario della fattura |
|
|
Data di creazione, ovvero la data in cui la fattura è stata recepita dalla Fatturazione Elettronica Aruba |
|
|
Data di ultimo aggiornamento |
|
|
Identificativo SdI (Sistema di Interscambio) |
|
|
true se la fattura e le relative notifiche sono state conservate (si veda getInvoicePdd per il download del pacchetto di conservazione), false altrimenti |
|
|
Denominazione cedente prestatore |
|
|
Codice nazione cedente prestatore(es. 'IT', 'DE', …) |
|
|
Partita IVA cedente prestatore |
|
|
Codice fiscale cedente prestatore |
|
|
Denominazione cessionario committente |
|
|
Codice nazione cessionario committente(es. 'IT', 'DE', …) |
|
|
Partita IVA cessionario committente |
|
|
Codice fiscale cessionario committente |
|
|
Data della fattura |
|
|
Numero della fattura |
|
|
Totale documento |
|
|
Totale iva |
|
|
Netto |
|
|
Tipo documento |
9.2. getInvoiceDetail
GET base url altri metodi/api/v2/invoices-in/detail
Ricerca una singola fattura per Id, invoice filename o idSdi.
HTTP request
GET /api/v2/invoices-in/detail?id=1 HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Identificativo fattura |
Obbligatorio se non sono specificati né filename né idSdi |
|
Nome del file fattura |
Obbligatorio se non sono specificati né id né idSdi |
|
Identificativo SdI |
Obbligatorio se non sono specificati né id né filename |
|
Se impostato a true, viene incluso il campo |
Non obbligatorio, di default è false |
|
Se impostato a false, viene escluso il campo |
Non obbligatorio, di default è true |
|
Se impostato a true, viene incluso il campo |
Non obbligatorio, di default è false |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 896
{
"invoices" : [ {
"invoiceDate" : "2024-11-21T09:39:05.972Z",
"number" : "2024/0001",
"documentType" : "TD01",
"totalDocument" : 100.0,
"totalVat" : 22.0,
"netPayable" : 100.0
} ],
"id" : "1",
"sender" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "22222222",
"fiscalCode" : "11111111111"
},
"receiver" : {
"description" : "Aruba SPA",
"countryCode" : "IT",
"vatCode" : "4444444",
"fiscalCode" : "333333333"
},
"invoiceType" : "FPR12",
"docType" : "in",
"file" : "ZEdWemRBPT0=",
"filename" : "IT01879020517_jtlk0.xml.p7m",
"username" : "Utente",
"creationDate" : "2024-11-21T09:39:05.973+0000",
"lastUpdate" : "2024-11-21T09:39:05.973+0000",
"idSdi" : "11110",
"pdfFile" : "ZEdWemRGQmtaZz09",
"signed" : "true",
"unsignedFile" : "ZEdWemRGVnVjMmxuYm1Waw==",
"pddAvailable" : true
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Array delle singole fatture presenti nel lotto |
|
|
Identificativo fattura |
|
|
Company sender |
|
|
Company receiver |
|
|
Formato trasmissione (es. 'FPA12' o 'FPR12', …) |
|
|
out per fattura inviata, in per fattura ricevuta |
|
|
File in formato Base64 |
|
|
Filename (es. IT01879020517_abcde.xml.p7m) |
|
|
Username del proprietario della fattura |
|
|
Data di creazione, ovvero la data in cui la fattura è stata recepita dalla Fatturazione Elettronica Aruba |
|
|
Data di ultimo aggiornamento |
|
|
Identificativo SdI (Sistema di Interscambio) |
|
|
true se la fattura e le relative notifiche sono state conservate (si veda getInvoicePdd per il download del pacchetto di conservazione), false altrimenti |
|
|
true se il file fattura è firmato digitalmente, false altrimenti |
|
|
Contenuto del file senza la firma in formato Base64 |
|
|
File pdf in formato Base64. |
|
|
File pdf in formato Base64. |
|
|
Denominazione cedente prestatore |
|
|
Codice nazione cedente prestatore(es. 'IT', 'DE', …) |
|
|
Partita IVA cedente prestatore |
|
|
Codice fiscale cedente prestatore |
|
|
Denominazione cessionario committente |
|
|
Codice nazione cessionario committente(es. 'IT', 'DE', …) |
|
|
Partita IVA cessionario committente |
|
|
Codice fiscale cessionario committente |
|
|
Data della fattura |
|
|
Numero della fattura |
|
|
Totale documento |
|
|
Totale iva |
|
|
Netto |
|
|
Tipo documento |
9.3. getInvoiceZip
GET base url altri metodi/api/v2/invoices-in/zip
Ritorna una fattura con tutte le sue notifiche in formato Zip (es. IT01879020517_abcde.xml.p7m). Ricerca eseguita per Id fattura, invoice filename o idSdi.
HTTP request
GET /api/v2/invoices-in/zip?filename=IT01879020517_jtlk1.xml.p7m HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Unresolved directive in docs.adoc - include::../../../target/generated-snippets/invoice-controller-v2-test/int_get-invoice-zip/request-headers.adoc[]
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Nome del file fattura |
Obbligatorio se non sono specificati né id né idSdi |
|
Identificativo fattura |
Obbligatorio se non sono specificati né filename né idSdi |
|
Identificativo SdI |
Obbligatorio se non sono specificati né id né filename |
HTTP response
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="IT01879020517_jtlk1.xml.p7m.zip"
Content-Type: application/zip
Accept-Ranges: bytes
Content-Length: 8
<binary>
9.4. getInvoicePdd
GET base url altri metodi/api/v2/invoices-in/pdd
Se pddAvailable
è true, tale metodo permette di recuperare il pacchetto di Conservazione
in formato Zip di una fattura inviata, specificando il nome file (filename), l’identificativo (id) o l’idSdi (idSdi)
di quest’ultima.
Se invece pddAvailable
è false, ovvero il pacchetto di Conservazione non è disponibile,
viene restituito HTTP status code 404.
HTTP request
GET /api/v2/invoices-in/pdd?filename=IT01879020517_jtlk1.xml.p7m HTTP/1.1
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Nome del file fattura |
Obbligatorio se non sono specificati né id né idSdi |
|
Identificativo fattura |
Obbligatorio se non sono specificati né filename né idSdi |
|
Identificativo SdI |
Obbligatorio se non sono specificati né id né filename |
HTTP response
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="IT01879020517_jtlk1.conservazione.zip"
Content-Type: application/zip
Accept-Ranges: bytes
Content-Length: 8
<binary>
10. Invio Esito Committente
10.1. sendEsitoCommittente
POST base url altri metodi/services/invoice/in/sendEsitoCommittente
Il metodo consente all’utente di generare e inviare a SDI la notifica di Esito Committente. É possibile inviare una notifica di Esito Committente solo per fatture ricevute da meno di 15 giorni che abbiano formato trasmissione FPA12.
HTTP request
POST /services/invoice/in/sendEsitoCommittente HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Content-Type: application/json;charset=UTF-8
{
"filename" : "IT01879020517_jtlk1.xml.p7m",
"sdiId" : 1263,
"esito" : "EC01",
"numero" : "1",
"anno" : 2018,
"posizione" : 1,
"descrizione" : "Desc",
"messageId" : "7865"
}
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request fields
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Nome della fattura ricevuta |
Obbligatorio |
|
|
Identificativo SdI (Sistema di Interscambio) della fattura ricevuta |
Obbligatorio |
|
|
Esito committente: EC01 per Accettata, EC02 per Rifiutata |
Obbligatorio |
|
|
Numero della fattura |
|
|
|
Anno della fattura |
|
|
|
Posizione della fattura nel file (1, 2 ecc.) |
|
|
|
Eventuale descrizione da inserire nell’esito |
|
|
|
ID del messaggio a cura del committente |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 127
{
"errorCode" : "000",
"errorDescription" : "Operazione effettuata",
"esitoFileName" : "IT01879020517_jtlk1_EC_001.xml"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Codice errore |
|
|
Descrizione errore |
|
|
Nome file assegnato da Aruba alla notifica di esito committente |
Errori
errorCode | errorDescription | Descrizione |
---|---|---|
000 |
Operazione effettuata |
Notifica di esito generata correttamente |
001 |
Fattura precedente a 15 giorni |
Non è possibile generare una notifica di esito per la fattura perchè quest’ultima è stata ricevuta da piu' di 15 giorni |
002 |
Fattura non FPA12 |
Non è possibile generare una notifica di esito per la fattura perchè il formato trasmissione di quest’ultima non è FPA12 |
003 |
Deleghe non trovate |
Utente con deleghe non valide |
004 |
Fattura non trovata o precedente a 30 giorni |
Non è possibile generare una notifica di esito per la fattura perchè non esiste o è precedente a 30 giorni |
999 |
Errore generico |
Non è possibile generare una notifica di esito per un errore generico, contattare l’assistenza |
10.2. Stato sendEsitoCommittente
GET base url altri metodi/services/invoice/in/sendEsitoCommittente/{filename}
HTTP request
GET /services/invoice/in/sendEsitoCommittente/IT01879020517_jtlk1_EC_001.xml HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Path parameters
Parametro | Descrizione |
---|---|
|
Nome file della notifica di esito committente |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 254
{
"filename" : "IT01879020517_jtlk1_EC_001.xml",
"sdiId" : 1263,
"esito" : "EC01",
"numero" : "1",
"anno" : 2024,
"posizione" : 1,
"descrizione" : "Fattura accettata",
"messageId" : "7865",
"status" : "OK",
"errorDescription" : null
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Nome file della notifica di esito committente |
|
|
Identificativo SdI (Sistema di Interscambio) della fattura ricevuta |
|
|
Esito committente: EC01 per Accettata, EC02 per Rifiutata |
|
|
Numero della fattura |
|
|
Anno della fattura |
|
|
Posizione della fattura nel file (1, 2 ecc.) |
|
|
Eventuale descrizione da inserire nell’esito |
|
|
ID del messaggio a cura del committente |
|
|
|
|
|
Eventuale descrizione dell’errore |
Stati
status | Descrizione |
---|---|
OK |
Elaborato correttamente |
In elaborazione |
In corso di elaborazione |
Errore Creazione |
Errore in creazione |
Errore SDI |
Errore nell’invio a SDI |
Errore Archiviazione |
Errore in archiviazione |
Errore Elaborazione |
Errore in elaborazione |
11. Ricerca Notifiche su Fatture Inviate
Metodi di ricerca notifiche di fatture inviate.
11.1. getNotifications
GET base url altri metodi/api/v2/invoices-out/notifications
Ricerca le notifiche di una fattura per id fattura o per filename della fattura (es. IT01879020517_abcde.xml.p7m).
HTTP request
GET /api/v2/invoices-out/notifications?filename=IT01879020517_jtlk1.xml.p7m HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Identificativo fattura |
Obbligatorio se filename non è specificato |
|
Nome file fattura |
Obbligatorio se id non è specificato |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 308
{
"count" : 1,
"notifications" : [ {
"date" : "2024-11-21T09:39:09.017Z",
"docType" : "RC",
"file" : "ZEdWemRBPT0=",
"filename" : "IT01879020517_33825_RC_001.xml",
"invoiceId" : "1",
"notificationDate" : "2024-11-21T09:39:09.018Z",
"number" : null,
"result" : null
} ]
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Numero notifiche associate alla fattura |
|
|
Notifiche associate alla fattura |
|
|
Data ricezione della notifica |
|
|
Tipo della notifica (RC, NS, …) |
|
|
File in formato Base64 |
|
|
Nome file della notifica (es. IT01879020517_abcde_RC_001.xml) |
|
|
Identificativo della fattura |
|
|
Data consegna della notifica |
|
|
Riferimento della fattura associata |
|
|
Esito della fattura: EC01: per Accettata, EC02 per Rifiutata) |
11.2. getNotificationDetail
GET base url altri metodi/api/v2/invoices-out/notifications/detail
Ricerca una notifica per nome del file (es IT01879020517_abcdef_RC_001.xml).
HTTP request
GET /api/v2/invoices-out/notifications/detail?filename=IT01879020517_33825_RC_001.xml HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Nome file notifica |
Obbligatorio |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 249
{
"date" : "2024-11-21T09:39:08.913Z",
"docType" : "RC",
"file" : "ZEdWemRBPT0=",
"filename" : "IT01879020517_33825_RC_001.xml",
"invoiceId" : "1",
"notificationDate" : "2024-11-21T09:39:08.915Z",
"number" : null,
"result" : "EC01"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Data ricezione della notifica |
|
|
Tipo della notifica (RC, NS, …) |
|
|
File in formato Base64 |
|
|
Nome file della notifica (es. IT01879020517_abcde_RC_001.xml) |
|
|
Identificativo della fattura |
|
|
Data consegna della notifica |
|
|
Riferimento della fattura associata |
|
|
Esito della fattura: EC01: per Accettata, EC02 per Rifiutata) |
12. Ricerca Notifiche su Fatture Ricevute
Metodi di ricerca notifiche di fatture ricevute.
12.1. getNotifications
GET base url altri metodi/api/v2/invoices-in/notifications
Ricerca le notifiche di una fattura per id fattura o per filename della fattura (es. IT01879020517_abcde.xml.p7m).
HTTP request
GET /api/v2/invoices-in/notifications?filename=IT01879020517_jtlk1.xml.p7m HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Identificativo fattura |
Obbligatorio se filename non è specificato |
|
Nome file fattura |
Obbligatorio se id non è specificato |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 310
{
"count" : 1,
"notifications" : [ {
"date" : "2024-11-21T09:39:05.987Z",
"docType" : "NS",
"file" : "ZEdWemRBPT0=",
"filename" : "IT01879020517_33822_RC_001.xml",
"invoiceId" : "2",
"notificationDate" : "2024-11-21T09:39:05.987Z",
"number" : null,
"result" : "EC01"
} ]
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Numero notifiche associate alla fattura |
|
|
Notifiche associate alla fattura |
|
|
Data ricezione della notifica |
|
|
Tipo della notifica (RC, NS, …) |
|
|
File in formato Base64 |
|
|
Nome file della notifica (es. IT01879020517_abcde_RC_001.xml) |
|
|
Identificativo della fattura |
|
|
Data consegna della notifica |
|
|
Riferimento della fattura associata |
|
|
Esito della fattura: EC01: per Accettata, EC02 per Rifiutata) |
12.2. getNotificationDetail
GET base url altri metodi/api/v2/invoices-in/notifications/detail
Ricerca una notifica per nome del file (es IT01879020517_abcdef_RC_001.xml).
HTTP request
GET /api/v2/invoices-in/notifications/detail?filename=IT01879020517_33825_RC_001.xml HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
Request parameters
Parametro | Descrizione | Vincoli |
---|---|---|
|
Nome file notifica |
Obbligatorio |
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 249
{
"date" : "2024-11-21T09:39:05.987Z",
"docType" : "NS",
"file" : "ZEdWemRBPT0=",
"filename" : "IT01879020517_33825_RC_001.xml",
"invoiceId" : "5",
"notificationDate" : "2024-11-21T09:39:05.987Z",
"number" : null,
"result" : "EC01"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Data ricezione della notifica |
|
|
Tipo della notifica (RC, NS, …) |
|
|
File in formato Base64 |
|
|
Nome file della notifica (es. IT01879020517_abcde_RC_001.xml) |
|
|
Identificativo della fattura |
|
|
Data consegna della notifica |
|
|
Riferimento della fattura associata |
|
|
Esito della fattura: EC01: per Accettata, EC02 per Rifiutata) |
13. Specifica callback
In aggiunta ai metodi di ricerca in modalità POP, descritti nei capitoli precedenti (Ricerca Fatture Inviate, Ricerca Notifiche su Fatture Inviate, Ricerca Fatture Ricevute e Ricerca Notifiche su Fatture Ricevute), il sistema di Fatturazione Elettronica Aruba permette di inviare agli utenti in modalità PUSH, le fatture e le notifiche ricevute, nonché gli aggiornamenti relativi allo stato delle fatture inviate.
Gli utenti interessati dovranno esporre un Web Service che implementi i metodi descritti nei paragrafi seguenti e dovranno accreditarsi. Gli utenti Premium e i loro cedenti potranno accreditarsi autonomamente mediante la sezione "Configurazione" del pannello web. Per maggiori informazioni è possibile visionare la guida relativa all’account Premium. Le utenze connesse in delega ad account Premium, che hanno a questa concesso i permessi "Web Service Ciclo Attivo" e "Web Service Ciclo Passivo", riceveranno le callback agli endpoint specificati dall’utenza Premium delegata.
L’endpoint esposto dall’utente dovrà utilizzare per la comunicazione la porta |
Per gli utenti che necessitano configurare firewall, le callback vengono inviate dagli IP riportati di seguito:
|
La sicurezza delle chiamate sarà assicurata tramite una api-key statica da passare tramite header Authorization. L’utente può scegliere l’api-key durante la fase di accreditamento.
Nome | Descrizione |
---|---|
Authorization |
API-KEY statica. Viene scelta dall’utente durante la fase di accreditamento |
Retry: Nel caso in cui una callback non venga recapitata correttamente verranno effettuati 10 tentativi ad intervalli di 3 ore. |
13.1. createInvoice (POST)
Il metodo ha lo scopo di comunicare all’utente una nuova fattura ricevuta.
Il metodo dovrà accettare i seguenti parametri in formato application/json con encoding UTF-8.
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Nome utente |
Obbligatorio |
|
|
Codice paese (es. IT per Italia ) |
Obbligatorio |
|
|
Partita IVA |
Obbligatorio |
|
|
Codice fiscale |
Obbligatorio |
|
|
Identificativo SDI |
Obbligatorio |
|
|
Nome file fattura |
Obbligatorio |
|
|
Stringa xml della fattura in base64 |
Obbligatorio |
|
|
Nome file notifica metadati (MT) |
Obbligatorio |
|
|
Stringa xml della notifica metadati (MT) in base64 |
Obbligatorio |
Il metodo dovrà ritornare i seguenti codici HTTP, la risposta dovrà essere in formato application/json con encoding UTF-8.
Codice | Descrizione |
---|---|
200 |
Operazione effettuata con successo |
400 |
Parametri di input mancanti o non validi |
500 |
Errore interno |
13.2. createNotification (POST)
Il metodo ha lo scopo di comunicare all’utente una nuova notifica per una fattura esistente inviata o ricevuta.
|
Il metodo dovrà accettare i seguenti parametri in formato application/json con encoding UTF-8.
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Nome utente |
Obbligatorio |
|
|
Codice paese (es. IT per Italia) |
Obbligatorio |
|
|
Partita IVA |
Obbligatorio |
|
|
Codice fiscale |
Obbligatorio |
|
|
OUT per fatture inviate, IN per fatture ricevute |
Obbligatorio |
|
|
Tipo notifica, per i possibili valori si veda la colonna Tipo Notifica SDI della tabella Stati delle fatture |
Obbligatorio |
|
|
Identificativo SDI |
Obbligatorio |
|
|
Nome file notifica |
Obbligatorio |
|
|
Stringa xml della notifica in base64 |
Obbligatorio |
|
|
Data consegna della notifica in formato ISO 8601 (es. 2022-09-15T15:37:15.840+02:00) |
Obbligatorio |
Il metodo dovrà ritornare i seguenti codici HTTP, la risposta dovrà essere in formato application/json con encoding UTF-8.
Codice | Descrizione |
---|---|
200 |
Operazione effettuata con successo |
400 |
Parametri di input mancanti o non validi |
500 |
Errore interno |
13.3. updateInvoiceStatus (POST)
Il metodo ha lo scopo di comunicare all’utente aggiornamenti relativi allo stato delle fatture inviate. Gli stati che vengono comunicati sono Inviata o Errore Elaborazione, gli altri stati (Stati delle fatture), che fanno riferimento a una notifica SDI, vengono comunicati mediante il metodo createNotification (POST).
Il metodo dovrà accettare i seguenti parametri in formato application/json con encoding UTF-8.
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Nome utente |
Obbligatorio |
|
|
Codice paese (es. IT per Italia) |
Obbligatorio |
|
|
Partita IVA |
Obbligatorio |
|
|
Codice fiscale |
Obbligatorio |
|
|
Nome file fattura |
Obbligatorio |
|
|
Identificativo SDI, presente nel caso in cui la fattura sia stata inviata a SDI, altrimenti null |
Obbligatorio |
|
|
Stato della fattura, può essere Inviata oppure Errore Elaborazione |
Obbligatorio |
|
|
Descrizione errore, può essere uno dei messaggi elencati in Controlli Asincroni |
Obbligatorio nel caso in cui |
|
|
Data di aggiornamento in formato ISO 8601 (es. 2022-09-15T15:37:15.840+02:00) |
Obbligatorio |
Il metodo dovrà ritornare i seguenti codici HTTP, la risposta dovrà essere in formato application/json con encoding UTF-8.
Codice | Descrizione |
---|---|
200 |
Operazione effettuata con successo |
400 |
Parametri di input mancanti o non validi |
500 |
Errore interno |
13.4. updateUsage (POST)
Il metodo ha lo scopo di comunicare all’utente aggiornamenti relativi allo spazio di conservazione utilizzato.
Il metodo dovrà accettare i seguenti parametri in formato application/json con encoding UTF-8.
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Nome utente |
Obbligatorio |
|
|
Spazio di conservazione acquistato espresso in kilobyte |
Obbligatorio |
|
|
Spazio di conservazione utilizzato espresso in kilobyte |
Obbligatorio |
Il metodo dovrà ritornare i seguenti codici HTTP, la risposta dovrà essere in formato application/json con encoding UTF-8.
Codice | Descrizione |
---|---|
200 |
Operazione effettuata con successo |
400 |
Parametri di input mancanti o non validi |
500 |
Errore interno |
14. Simulazione Sistema di Interscambio in ambiente Demo
Nel solo ambiente di Demo è possibile riprodurre l’operatività del Sistema di Interscambio simulando la ricezione di una fattura o simulando una notifica di un fattura trasmessa.
14.1. Simulazione fattura ricevuta
Questo metodo permette di simulare la ricezione di una fattura specificando la partita IVA del cessionario/committente. Viene generata una fattura a partire da un modello selezionato a caso, in cui vengono inseriti i dati del cessionario/committente specificati nel request body. Il servizio restituisce il nome file della fattura generata.
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
HTTP request
POST /services/sdisimulator/invoiceIn HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Content-Type: application/json;charset=UTF-8
{
"countryReceiver" : "IT",
"vatcodeReceiver" : "01879020517",
"fiscalcodeReceiver" : null
}
Request fields
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Codice paese (es. IT per Italia) del cessionario committente |
Obbligatorio |
|
|
Partita IVA del cessionario committente |
Obbligatorio |
|
|
Codice fiscale del cessionario committente |
Non obbligatorio, se specificato sarà presente nella fattura |
HTTP response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 147
{
"countryReceiver" : "IT",
"vatcodeReceiver" : "01879020517",
"fiscalcodeReceiver" : null,
"invoiceFileName" : "IT81228079456_7i8tk.xml"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Codice paese (es. IT per Italia) del cessionario committente |
|
|
Partita IVA del cessionario committente |
|
|
Nome file della fattura generata |
|
|
Codice fiscale del cessionario committente |
14.2. Simulazione notifica fattura trasmessa
Questo metodo permette di simulare una notifica per una fattura trasmessa.
A partire da un modello selezionato a caso, viene generata una notifica del tipo specificato tramite notificationType
che viene associata alla fattura specificata tramite invoiceFileName
. I tipi di notifica che è possibile specificare
sono elencati nella colonna Tipo Notifica SDI riportata nella tabella degli Stati delle fatture .
Per simulare una notifica di esito "Accettata" è necessario specificare |
Request headers
Nome | Descrizione |
---|---|
|
Access token ottenuto da signin |
HTTP request
POST /services/sdisimulator/notificationOut HTTP/1.1
Accept: application/json
Authorization: Bearer NLOGDVXLVaF3tzmnVPkTwpkuh7dG0i09uSCcog3u+rE=
Content-Type: application/json;charset=UTF-8
{
"invoiceFileName" : "IT01879020517_aBcDe.xml.p7m",
"notificationType" : "RC"
}
Request fields
Campo | Tipo | Descrizione | Vincoli |
---|---|---|---|
|
|
Nome file fattura a cui si intende associare la notifica |
Obbligatorio |
|
|
Tipo notifica |
Obbligatorio |
HTTP response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 144
{
"invoiceFileName" : "IT01879020517_aBcDe.xml.p7m",
"notificationFileName" : "ITIT01879020517_aBcDe_175.xml",
"notificationType" : "RC"
}
Response fields
Campo | Tipo | Descrizione |
---|---|---|
|
|
Nome file della notifica |
|
|
Nome file della fattura a cui è stata associate la notifica |
|
|
Tipo notifica |
Changelog
Changed
Seconda versione
Comunicazioni finanziarie
-
Sostituito CreateTransmissionRequest con CreateTransmissionRequest (v2).
-
Sostituito GetTransmissionInfoRequest con GetTransmissionInfoRequest (v2).
Fatture Inviate
-
Sostituito findByUsername con findInvoices.
-
Rimpiazzati gli endpoint getByFilename, getByInvoiceId e getByIdSdi con getInvoiceDetail.
-
Sostituito getZipByFilename con getInvoiceZip.
-
Sostituito pdd con getInvoicePdd
Fatture Ricevute
-
Sostituito findByUsername con findInvoices.
-
Rimpiazzati gli endpoint getByFilename, getByInvoiceId, getByIdSdi e getInvoiceWithUnsignedFile con getInvoiceDetail.
-
Sostituito getZipByFilename con getInvoiceZip.
-
Sostituito pdd con getInvoicePdd
Notifiche su fatture inviate
-
Sostituito getByFilename con getNotificationDetail.
-
Sostituito getByInvoiceId e getByInvoiceFilename con getNotifications.
Notifiche su fatture ricevute
-
Sostituito getByFilename con getNotificationDetail.
-
Sostituito getByInvoiceId e getByInvoiceFilename con getNotifications.