VeriFactu: fatturazione elettronica
Pool-Control genera record di fatturazione conformi a VeriFactu: impronta digitale SHA-256 concatenata, XML SOAP e codice QR nel PDF.
Cosa viene implementato
| Funzione | Stato |
|---|---|
| Impronta digitale e concatenamento all'emissione della fattura | Disponibile |
| XML VeriFactu (bozza SOAP) | Disponibile |
| QR di convalida in PDF | Disponibile |
| Download XML dal dettaglio fattura | Disponibile |
| Rettifiche (credito R1) con riferimento alla fattura originale | Disponibile |
| Immutabilità: non modificare le fatture emesse | Disponibile |
| Certificato aziendale (.pfx) | Impostazioni → Azienda → Certificato VeriFactu |
| Invio ad AEAT pre-produzione | Certificato di inquilino +ALLOW_AEAT_SEND=confirmsul server |
| Firma XAdES | In attesa (produzione approvata) |
| Produzione AEAT reale | Bloccato (ALLOW_PROD+XAdES) |
Flusso normale
- Crea o genera una bozza di fattura.
- Esamina i dati e premi Emetti: numero, impronta digitale e XML vengono assegnati.
- La fattura non può essere modificata (solo rettificata con accredito).
- Scarica PDF (con QR) o XML.
- Facoltativo: Inviare AEAT (PRE) dai dettagli (solo se il server ha un certificato dell'emittente obbligato).
Requisiti per la spedizione AEAT
- Carica il certificato .pfx/.p12 dell'emittente obbligato in Impostazioni azienda (il NIF del certificato deve corrispondere al NIF dell'azienda).
- Nome azienda = nome nel censimento AEAT (deve corrispondere al certificato).
- NIF del produttore del software configurato in SuperAdmin → VeriFactu (diverso dal NIF del locatario).
- Ambiente predefinito di pre-produzione (
verifactuProduction = false). - Nello sviluppo locale è possibile utilizzare
VERIFACTU_CERT_PATH(non nella produzione Render). - Quando carichi il certificato in Impostazioni: vieni informato sulla crittografia AES-256-GCM, sullo scopo AEAT e sulla possibilità di cancellazione; dettagli in política de privacidad e Impostazioni aziendali.
Matrice di test automatica
| Suite | Ciò che è valido |
|---|---|
verifactu-hash.test.ts | Impronta F1/F2/R1 |
verifactu-xml.test.ts | Destinatario XML, concatenamento |
verifactu-aeat-response.test.ts | Parser corretto/errato |
verifactu-compliance.test.ts | Regole legali API (immutabilità, acquisti senza VF) |
pnpm test:verifactu-xsd | Esempi XML (struttura/XSD se xmllint) |
RUN_AEAT_INTEGRATION=1 | Spedizione PRE effettiva (opzionale, senza CI) |
Conti di prova interni
| Conto | Sottodominio | Utilizzo |
|---|---|---|
| Demo pubblica | AquaDemo | Tester — dati fittizi (demo CIF) |
| Laboratorio VF | vf-lab | VeriFactu esegue test con dati reali degli sviluppatori — non la demo pubblica |
Accesso al laboratorio (seme):admin@vf-lab.test/password123Comando per ricreare i dati di laboratorio dinamici:
cd packages/server && pnpm seed:vf-lab -- --resetAcquisti e VeriFactu
Le fatture fornitore, le ricevute, i pagamenti al fornitore e gli annullamenti/accrediti di acquisto nell'ERP sono non inviati ad AEAT come registrazione VeriFactu.
| Documento | VeriFactu di Pool-Control? | Motivo |
|---|---|---|
| fattura di vendita (cliente) | Sì: hash, XML, QR, invio PRE | Tu sei l'emittente obbligatorio |
| Credito/rettifica vendita (R1) | Sì | Rettifica una fattura che hai emesso |
| fattura fornitore (acquisto) | No | È registrato dal tuo provider; pubblichi solo la ricevuta |
| Pagamento o annullamento dell'acquisto | No | Non è un record di registrazione della tua fatturazione emessa |
Se il tuo fornitore è obbligato a VeriFactu, lui invia l'XML al Tesoro; Pool-Control non sostituisce tale spedizione.
Registrazione legale vs audit interno
| Strato | Ciò che mantiene | Dove vederlo |
|---|---|---|
| Registrazione VeriFactu (emittente obbligatorio) | Impronta digitale SHA-256, concatenamento, XML SOAP, stato AEAT | Fattura emessa: campi tecnici + download XML |
| Audit aziendale | Chi ha rilasciato, tentativi di modifica bloccati, invii AEAT PRE | Impostazioni → Controllo (SETTINGS_VIEW_LOGS) |
Azioni di audit rilevanti:INVOICE_ISSUED,VERIFACTU_EDIT_BLOCKED,VERIFACTU_AEAT_SEND.
Registro esportabile (CSV/XML in blocco per ispezione) è in sospeso; Oggi la scheda tecnica è presente in ogni fattura emessa.
Ambiente PRE fino alla registrazione ufficiale nel censimento
Fino a quando la società non viene registrata e il censimento AEAT corrisponde al certificato e al nome della società:
- Utilizza solo la pre-produzione (
verifactuProduction = false, ospiteprewww1). - Spedizioni solo con
ALLOW_AEAT_SEND=confirme supervisione. - Convalida nell'inquilino
vf-lab(non demo pubblica di AquaDemo). - Non attivare la produzione AEAT o
ALLOW_PRODnel rendering.
Quando la registrazione ufficiale è pronta: certificato dell'inquilino nelle Impostazioni, Corretto test PRE dall'app, quindi approvazione (XAdES) prima della produzione.
Correggi ≠ cancella
Le fatture emesse non possono essere cancellate. Per correggere: utilizzare Rettifica → credito (R1) e, se applicabile, nuova fattura.