Come sono stati generati gli XML della cartella AUTOFATTURE_2026-07: date, autofatture negative (storni) e distinzione tra nuova modifica e fallback.
Tutte le 49 autofatture negative reali (AFN / storni) referenziano correttamente l'autofattura originale nel formato AF/AAAA/MM/NNNN. Nessuna usa il fallback (che avrebbe messo il codice della fattura Airbnb e generato un alert Sentry). Un solo XML negativo non è uno storno ma una nota di credito Airbnb gestita dal flusso standard.
Due dimensioni indipendenti, spesso confuse tra loro.
| A · Documento collegato DatiFattureCollegate/IdDocumento |
Cosa scriviamo come riferimento nello storno: l'autofattura originale (nuova modifica, es. AF/2026/06/0005) oppure il numero della fattura Airbnb (fallback, es. 85007534IT5804914). |
| B · Data del documento DatiGeneraliDocumento/Data |
Da dove arriva la data. A seconda dei dati disponibili può venire dalla fattura Airbnb/CSV, dalla data delle email, dalla data di prenotazione o dalla data di emissione. È il punto in cui potremmo non avere tutti i dati. |
La fonte della data cambia in base al tipo di documento e ai dati che abbiamo. Questa è la parte da tenere d'occhio in fase di verifica.
_reference_date_for_communication()La data è la prima disponibile in questa scala di priorità (righe 21-50):
È esattamente il caso «a volte usiamo quella del CSV/fattura, a volte la data delle mail»: se la fattura Airbnb (o il CSV) è stata acquisita si usa la sua data; altrimenti si ripiega sulla data dell'email, poi sulla prenotazione, poi sull'emissione.
Qui la logica è diversa e dipende dal fatto che si trovi la comunicazione originale da stornare (_build_afn_context, righe 154-184):
| Caso | IdDocumento (collegata) | Data (documento & collegata) |
|---|---|---|
| AFN · precedente TROVATA nuova modifica |
AF/AAAA/MM/NNNN (dall'autofattura originale) |
Data di emissione dell'autofattura originale stornata localtime(originale.emission_date) |
| AFN · precedente NON trovata fallback + alert Sentry |
numero fattura Airbnb (es. 85007534IT5804914) |
Cascata _reference_date_for_communication() sulla comunicazione stessa (come le AF) |
Punto da verificare insieme. Per gli storni «nuova modifica» la data della collegata è la data di emissione dell'autofattura originale, non la data di competenza (fattura/email) con cui era stata emessa. In tutti i 49 file la Data del documento coincide con la Data della collegata (sono lo stesso valore), quindi sono internamente coerenti; ma per confermare che sia la data "giusta" serve confrontarla con l'autofattura originale a DB. Questo è il caso in cui «potremmo non avere tutti i dati necessari» dall'XML da solo.
Tutti i 50 XML con importo totale negativo. Colonna «Meccanismo» = come è stata costruita la collegata; «Data doc = coll» = coerenza tra data del documento e data della fattura collegata.
| ID | Numero | Tipo | Tot. € | Collegata (IdDocumento) | Data doc | Data coll. | = | Meccanismo |
|---|---|---|---|---|---|---|---|---|
| 06955 | AFN/2026/07/0001 | AFN · storno | -407.66 | AF/2026/06/0005 | 2026-06-04 | 2026-06-04 | ✓ | ✓ nuova modifica |
| 06962 | AFN/2026/07/0002 | AFN · storno | -98.91 | AF/2026/06/0021 | 2026-06-04 | 2026-06-04 | ✓ | ✓ nuova modifica |
| 07038 | AFN/2026/07/0001 | AFN · storno | -244.62 | AF/2026/06/0009 | 2026-06-01 | 2026-06-01 | ✓ | ✓ nuova modifica |
| 07055 | AFN/2026/07/0002 | AFN · storno | -377.64 | AF/2026/06/0008 | 2026-06-01 | 2026-06-01 | ✓ | ✓ nuova modifica |
| 07058 | AFN/2026/07/0001 | AFN · storno | -341.00 | AF/2026/06/0005 | 2026-06-02 | 2026-06-02 | ✓ | ✓ nuova modifica |
| 07077 | AFN/2026/07/0001 | AFN · storno | -90.77 | AF/2026/05/0010 | 2026-05-01 | 2026-05-01 | ✓ | ✓ nuova modifica |
| 07096 | AFN/2026/07/0001 | AFN · storno | -193.26 | AF/2026/03/0013 | 2026-03-02 | 2026-03-02 | ✓ | ✓ nuova modifica |
| 07116 | AFN/2026/07/0002 | AFN · storno | -473.13 | AF/2026/05/0005 | 2026-05-05 | 2026-05-05 | ✓ | ✓ nuova modifica |
| 07186 | AFN/2026/07/0001 | AFN · storno | -94.70 | AF/2026/06/0160 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07187 | AFN/2026/07/0002 | AFN · storno | -145.91 | AF/2026/06/0137 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07190 | AFN/2026/07/0003 | AFN · storno | -146.94 | AF/2026/06/0076 | 2026-06-08 | 2026-06-08 | ✓ | ✓ nuova modifica |
| 07207 | AFN/2026/07/0004 | AFN · storno | -240.40 | AF/2026/06/0194 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07230 | AFN/2026/07/0005 | AFN · storno | -292.73 | AF/2026/06/0232 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07240 | AFN/2026/07/0006 | AFN · storno | -167.10 | AF/2026/06/0310 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07242 | AFN/2026/07/0007 | AFN · storno | -107.20 | AF/2026/06/0086 | 2026-06-08 | 2026-06-08 | ✓ | ✓ nuova modifica |
| 07259 | AFN/2026/07/0008 | AFN · storno | -432.31 | AF/2026/06/0043 | 2026-06-08 | 2026-06-08 | ✓ | ✓ nuova modifica |
| 07268 | AFN/2026/07/0009 | AFN · storno | -108.92 | AF/2026/05/0080 | 2026-05-05 | 2026-05-05 | ✓ | ✓ nuova modifica |
| 07276 | AFN/2026/07/0010 | AFN · storno | -192.32 | AF/2026/05/0067 | 2026-05-05 | 2026-05-05 | ✓ | ✓ nuova modifica |
| 07297 | AFN/2026/07/0001 | AFN · storno | -150.34 | AF/2026/06/0012 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07298 | AFN/2026/07/0002 | AFN · storno | -329.79 | AF/2026/06/0004 | 2026-06-01 | 2026-06-01 | ✓ | ✓ nuova modifica |
| 07402 | AFN/2026/07/0001 | AFN · storno | -92.66 | AF/2026/05/0001 | 2026-05-04 | 2026-05-04 | ✓ | ✓ nuova modifica |
| 07403 | AFN/2026/07/0002 | AFN · storno | -167.92 | AF/2026/03/0008 | 2026-03-03 | 2026-03-03 | ✓ | ✓ nuova modifica |
| 07465 | AFN/2026/07/0001 | AFN · storno | -119.13 | AF/2026/01/0017 | 2026-01-12 | 2026-01-12 | ✓ | ✓ nuova modifica |
| 07466 | AFN/2026/07/0002 | AFN · storno | -79.31 | AF/2026/06/0044 | 2026-06-08 | 2026-06-08 | ✓ | ✓ nuova modifica |
| 07481 | AFN/2026/07/0003 | AFN · storno | -150.62 | AF/2026/06/0177 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07482 | AF/2026/07/0072 | AF · nota di credito | -150.62 | 58458179IT3819155CN1 | 2026-06-13 | 2026-06-13 | ✓ | flusso AF standard |
| 07495 | AFN/2026/07/0004 | AFN · storno | -53.52 | AF/2026/06/0276 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07514 | AFN/2026/07/0005 | AFN · storno | -157.15 | AF/2026/02/0119 | 2026-02-10 | 2026-02-10 | ✓ | ✓ nuova modifica |
| 07539 | AFN/2026/07/0006 | AFN · storno | -193.25 | AF/2026/01/0116 | 2026-01-12 | 2026-01-12 | ✓ | ✓ nuova modifica |
| 07555 | AFN/2026/07/0007 | AFN · storno | -48.98 | AF/2026/06/0318 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07558 | AFN/2026/07/0008 | AFN · storno | -47.19 | AF/2026/06/0061 | 2026-06-08 | 2026-06-08 | ✓ | ✓ nuova modifica |
| 07613 | AFN/2026/07/0009 | AFN · storno | -156.99 | AF/2026/06/0003 | 2026-06-08 | 2026-06-08 | ✓ | ✓ nuova modifica |
| 07635 | AFN/2026/07/0010 | AFN · storno | -164.69 | AF/2026/06/0336 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07636 | AFN/2026/07/0011 | AFN · storno | -188.66 | AF/2026/06/0179 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07637 | AFN/2026/07/0012 | AFN · storno | -43.94 | AF/2026/05/0069 | 2026-05-20 | 2026-05-20 | ✓ | ✓ nuova modifica |
| 07638 | AFN/2026/07/0013 | AFN · storno | -31.74 | AF/2026/06/0333 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07639 | AFN/2026/07/0014 | AFN · storno | -57.17 | AF/2026/06/0261 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07641 | AFN/2026/07/0015 | AFN · storno | -32.28 | AF/2026/06/0356 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07671 | AFN/2026/07/0001 | AFN · storno | -57.68 | AF/2026/04/0003 | 2026-04-09 | 2026-04-09 | ✓ | ✓ nuova modifica |
| 07672 | AFN/2026/07/0002 | AFN · storno | -47.09 | AF/2026/05/0049 | 2026-05-11 | 2026-05-11 | ✓ | ✓ nuova modifica |
| 07673 | AFN/2026/07/0003 | AFN · storno | -47.47 | AF/2026/06/0111 | 2026-06-11 | 2026-06-11 | ✓ | ✓ nuova modifica |
| 07676 | AFN/2026/07/0004 | AFN · storno | -60.51 | AF/2026/06/0110 | 2026-06-11 | 2026-06-11 | ✓ | ✓ nuova modifica |
| 07681 | AFN/2026/07/0005 | AFN · storno | -52.57 | AF/2026/06/0017 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
| 07687 | AFN/2026/07/0006 | AFN · storno | -145.61 | AF/2026/06/0141 | 2026-06-11 | 2026-06-11 | ✓ | ✓ nuova modifica |
| 07692 | AFN/2026/07/0007 | AFN · storno | -32.53 | AF/2026/06/0083 | 2026-06-11 | 2026-06-11 | ✓ | ✓ nuova modifica |
| 07702 | AFN/2026/07/0008 | AFN · storno | -59.76 | AF/2026/05/0102 | 2026-05-11 | 2026-05-11 | ✓ | ✓ nuova modifica |
| 07703 | AFN/2026/07/0009 | AFN · storno | -39.71 | AF/2026/06/0086 | 2026-06-11 | 2026-06-11 | ✓ | ✓ nuova modifica |
| 07709 | AFN/2026/07/0010 | AFN · storno | -49.74 | AF/2026/05/0009 | 2026-05-11 | 2026-05-11 | ✓ | ✓ nuova modifica |
| 07711 | AFN/2026/07/0011 | AFN · storno | -63.16 | AF/2026/05/0045 | 2026-05-11 | 2026-05-11 | ✓ | ✓ nuova modifica |
| 07712 | AFN/2026/07/0012 | AFN · storno | -63.16 | AF/2026/06/0055 | 2026-06-10 | 2026-06-10 | ✓ | ✓ nuova modifica |
Le date non sono tutte di luglio: con la nuova logica la Data segue la competenza della prenotazione/fattura originale, non il mese di emissione. La massa è giugno 2026, con code su mesi precedenti (prenotazioni vecchie lavorate ora).
L'unico XML negativo che non è uno storno.
Ha numero AF/2026/07/0072 (prefisso AF, non AFN) e importo −150,62 €. È negativo perché la fattura Airbnb sottostante è una nota di credito: AIUC-58458179-IT-3819155-CN-1 (il suffisso CN-1 = Credit Note). Passa quindi dal flusso AF standard — che referenzia sempre il numero fattura Airbnb — ed è corretto: non è un fallback dello storno, è proprio un'altra fattispecie.
<DatiFattureCollegate><IdDocumento>. Se è AF/AAAA/MM/NNNN → nuova modifica ✓. Se è un codice tipo 85007534IT5804914 → fallback (da controllare, e a DB dovrebbe esserci un alert Sentry).DatiGeneraliDocumento/Data deve essere uguale a DatiFattureCollegate/Data. Nella tabella sopra è la colonna «=».AF/AAAA/MM/NNNN indicata nella collegata e verifica che la data usata (emissione dell'originale) sia quella attesa.Riferimenti codice. backend/console/utils/self_invoices.py → _reference_date_for_communication() (date AF, cascata), create_block_dati_fatture_collegate() (collegata + ramo fallback), _build_afn_context() (logica storni).
Report generato automaticamente dall'analisi dei 764 XML · Autofatturiamo