[RISOLTO] Data Scadenza Pagamento

Buongiorno a tutti,
ho un problema con il campo DataScadenzaPagamento.
Se lo valorizzo e verifico il file con lo strumento di controllo della FatturaPA, ottengo sempre questo errore (codice 00200):
File non conforme al formato (nella descrizione del messaggio è riportata lâ¬"indicazione puntuale della non conformità ) - Invalid content was found starting with element ‘DataScadenzaPagamento’. One of ‘{CodUfficioPostale, CognomeQuietanzante, NomeQuietanzante, CFQuietanzante, TitoloQuietanzante, IstitutoFinanziario, IBAN, ABI, CAB, BIC, ScontoPagamentoAnticipato, DataLimitePagamentoAnticipato, PenalitaPagamentiRitardati, DataDecorrenzaPenale, CodicePagamento}’

Ho provato ad aggiungere alcune informazioni congruenti con la modalità di pagamento (bonifico), ovvero IstitutoFinanziario, IBAN, ABI, CAB, ma senza successo.
Continuo a ricevere lo stesso errore.

Cosa sbaglio?

Frammento del codice xml relativo al pagamento (dati modificati per privacy, ma corretti nel file originale):

<DatiPagamento>
    <CondizioniPagamento>TP02</CondizioniPagamento>
    <DettaglioPagamento>
        <ModalitaPagamento>MP05</ModalitaPagamento>
        <ImportoPagamento>1000.00</ImportoPagamento>
        <DataScadenzaPagamento>2019-01-31</DataScadenzaPagamento>
        <IstitutoFinanziario>UNICREDIT BANCA</IstitutoFinanziario>
        <IBAN>IT00X0000000000000000000000</IBAN>
        <ABI>00000</ABI>
        <CAB>00000</CAB>
    </DettaglioPagamento>
</DatiPagamento>

Hai invertito l’ordine degli elementi DataScadenzaPagamento e ImportoPagamento.

Grazie, era proprio un problema di ordinamento.
E dire che l’ho pure verificato e mi sembrava corretto… probabilmente ero troppo focalizzato sui presunti campi mancanti. :frowning_face:

Confermo quando detto fa vbato : tutti i TAG presenti nell’XML sono posizionali (o comunque buona parte di essi). Basta che ne invertiate uno ed il flusso sarà scartato.
A livello di standard non sta scritto da nessuna parte che i TAG di un file XML debbano essere posizionali ma ovviamente gli standard si rispettano solo quando fa comodo.
Presumo che il vantaggio, per chi deve effettuare il parsing, sia che le informazioni compaiono nell’ordine esatto in cui servono per i controlli di congruenza.
Tradotto: è teoricamente possibile fare il parsing leggendo riga per riga anziché caricare tutto il documento XML in memoria prima di iniziare i controlli (supposizione personale).

1 Mi Piace

Diciamo che a livello di definizione di uno schema XML (xsd) si possono fare entrambe le cose. Si può specificare che gli elementi di un gruppo debbano rispettare l’ordine specificato (xsd:sequence), oppure che possano stare in qualsiasi ordine (xsd:all).
Lo schema della fattura elettronica usa sempre xsd:sequence.

1 Mi Piace

Ci sta, in questo caso esiste un xsd al quale fare riferimento. Grazie per la puntualizzazione.