S.AM.4 Structuri comune (Structures)

Regula S.AM.4: ExchangeRate

În documentația oficială SAF-T publicată de ANAF, regula S.AM.4 stabilește ce trebuie să conțină elementul ExchangeRate din structurile comune (Structures) refolosite în mai multe secțiuni ale declarației informative D406. Validatorul DUKIntegrator aplică regula la fiecare depunere; pe această pagină găsești cerința oficială, citată ca atare, și eroarea tipică semnalată la validare.


Cum arată eroarea

Mesajul din raportul de validare are forma:

eroare atribut: : numar real eronat: '100,00'

Forma mesajului este capturată dintr-o rulare reală a DUKIntegrator și păstrată ca în raportul original, fără diacritice.

Cum rezolvi

Familia regulii: Format numeric și zecimale

Sumele și cantitățile se raportează ca numere zecimale cu punct, fără separator de mii, iar valorile monetare au cel mult două zecimale. Valorile negative primesc semnul minus ca prefix. O virgulă zecimală, un spațiu sau un simbol de monedă în valoare opresc validarea.

Caută valoarea exactă din XML. De multe ori programul formatează numerele așa cum le afișează pe ecran, cu virgulă, iar exportul preia formatul de afișare în locul valorii brute. La cursuri de schimb și la procente verifică și câte zecimale admite regula: nu toate câmpurile numerice au aceeași limită.

Corectează serializarea în modulul de export (punct zecimal, fără formatare de afișare) și regenerează fișierul. Nu înlocui virgulele cu punct global, într-un editor: atingi și textele descriptive și strici mai mult decât repari.

Cerința oficială

The exchange rate used. CurrencyAmount x ExchangeRate = Amount

Text citat din documentația oficială SAF-T (SchemaDefCod), în limba originală, fără parafrazare.

Detalii din documentația oficială

Cursul de schimb utilizat. CurrencyAmount x ExchangeRate = Sumă
Decimal value, decimal point delimited, max 4 digits after the decimal point
Valoare zecimală, delimitată prin PUNCT zecimal, max 4 cifre după punctul zecimal
The exchange rate used for determining in RON the taxable base of the tax is the exchange rate from the date of exigibility of the tax, as established in art. 135 of the Fiscal Code, regardless of the date on which the goods/ invoices/ services/ other financial documents are or will be received
Cursul de schimb utilizat pentru determinarea in RON a bazei impozabile a taxei este cursul din data exigibilitatii taxei, astfel cum este stabilit la art. 135 din Codul fiscal, indiferent de data la care sunt sau vor fi recepționate bunurile/ facturile/ serviciile/ alte documente financiare

Valori scurte din coloanele fișei oficiale (tip de dată, sursă, obligativitate, cardinalitate), în ordinea din documentație:

SAFexchangerateType ERP Optional Optional 0..1

Eroarea tipică la validare

La validare, DUKIntegrator semnalează această regulă atunci când elementul ExchangeRate lipsește acolo unde cerința îl face obligatoriu, este gol sau nu respectă formatul cerut. Eroarea apare într-una dintre structurile comune (Structures) ale fișierului D406, iar mesajul validatorului indică de regulă linia din XML, nu și regula încălcată — pe aceasta o ai citată mai sus. Compară valoarea raportată cu cerința oficială înainte de a redepune.

Reguli înrudite