Naar hoofdinhoud
Portugal SAF-T (PT) File Checks

Portugal SAF-T (PT) File Checks inrichten in Odoo, uitgelegd met een case

Om Portugal SAF-T (PT) File Checks in gebruik te nemen moet je drie dingen begrijpen: het ATCUD-configuratieformulier dat je vanuit Invoicing aanmaakt, de velden die elk record aan een bedrijf en een schema koppelen, en de statussen in elke lijst, zoals Draft, Generated, Validated, Validation Failed en Submitted bij het genereren van bestanden. We lopen het hier door met een verzonnen bedrijf, van de eerste dag tot het einde van de eerste week.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 4 november 2026

In het kort

Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 20.0 · in de bronnen onderaan
Leestijd
5 min

Distribuições Ribeira, de rode draad van de case

Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.

Distribuições Ribeira is een verzonnen bedrijf dat in Portugal factureert vanuit Odoo 18 en een tweede bedrijf in dezelfde database heeft. Marta, hoofd administratie, moet Portugal SAF-T (PT) File Checks klaarzetten. De case bevat geen bedragen: het gaat erom welke schermen ze opent, welke velden ze bekijkt en welke statussen ze tegenkomt.

De module staat in Odoo Apps voor 17.0, 18.0, 19.0 en 20.0, dus Marta kiest de pagina voor haar versie. Hij kost € 9 per Odoo-versie, eenmalig en excl. btw, voor alle vier de versies, en omdat er een lokale dienst van FlexigoTech Cloud bij hoort komt er een abonnement bij van € 29 per maand of € 290 per jaar excl. btw (Pro: € 58 per maand of € 580 per jaar).

Dag één: het ATCUD-configuratieformulier

Als Marta vanuit Invoicing een nieuwe ATCUD-configuratie aanmaakt, ziet ze een formulier met secties: bedrijfsgegevens, ATCUD, e-mail en meldingen, en upload. Alleen de endpoint-URL is ingevuld; de rest is leeg.

Nieuw ATCUD-configuratieformulier in Facturatie met secties voor bedrijfsgegevens, ATCUD, e-mail en meldingen en upload
Een net aangemaakte ATCUD-configuratie zonder gegevens: alleen de endpoint-URL staat erin en de onderkant van het scherm valt weg.

Marta loopt het formulier sectie voor sectie door, van boven naar beneden, ook het deel dat niet op het scherm past. Dat de endpoint-URL er al staat zegt niets over de rest, dus ze beschouwt de configuratie pas als compleet als ze alles heeft nagekeken.

De velden die Marta nauwkeurig bekijkt

Voordat ze iets genereert, loopt Marta de velden van de module na die voor haar van belang zijn. Dit zijn de velden die ze herkent:

  • company_id: komt in meerdere modellen van de module voor als relatie met res.company. Met twee bedrijven in dezelfde database controleert Marta bij welk bedrijf elk record hoort.
  • schema_url, met het label SAF-T Schema URL: volgens de veldomschrijving de URL waarvandaan het XSD-schema van de Portugese SAF-T wordt opgehaald.
  • export_file_csv: een bijlage (ir.attachment) omschreven als Exported CSV format.
  • transaction_count, met het label Transaction Count: het aantal transacties in de SAF-T.
  • name, met het label Request ID.
  • submission_id: relatie met saft.submission, omschreven als Related SAF-T submission if applicable.

Marta kent deze velden geen andere functie toe dan wat hun naam of omschrijving zegt. Wil je weten hoe ze intern samenhangen, lees dan hoe de module onder de motorkap werkt.

De statussen die een record kan hebben

Op dag twee leert Marta de statuswaarden die de module definieert. Het zijn vier aparte sets, en je kunt ze beter niet door elkaar halen:

  • Veld state met Draft, Exported en Submitted.
  • Veld status met Draft, Processing, Approved en Denied.
  • Veld state met Draft, Generated, Validated, Validation Failed en Submitted. Deze zie je in de lijst Generate SAF-T Files.
  • Veld state met Draft, Validated, Submitted, Accepted, Rejected, ATCUD Unreachable en Error.

Uit deze lijst noteert Marta de waarden die ze elke dag in de gaten wil houden: Validation Failed, Denied, Rejected, ATCUD Unreachable en Error. Ze gaat bij geen ervan uit van een oorzaak; verschijnt er een, dan zoekt ze de exacte tekst op in de gids met foutmeldingen van de module.

De eerste week: wat ze elke ochtend controleert

Met de configuratie klaar opent Marta de eerste week elke ochtend dezelfde schermen in dezelfde volgorde. Haar ronde ziet er zo uit:

Rondgang door de lijsten Annual SAF-T Statistics, SAF-T Error Logs en Generate SAF-T Files in Facturatie
De jaarlijkse SAF-T-statistieken met bedrijf, jaar, documenten, waarde en status; de foutlogs met datum, type, ernst, melding en het vakje opgelost niet aangevinkt; en het genereren van bestanden met perioden in Draft, Generated, Validated, Validation Failed en Submitted, met bestandsgrootte en transacties op nul.
  • In Invoicing › Annual SAF-T Statistics bekijkt ze de kolommen Company, Year, Total Documents, Total Value en State, en controleert ze of elke regel bij het verwachte bedrijf hoort.
  • In SAF-T Error Logs leest ze datum, fouttype, ernst en melding van elk record, en let ze op welke het vakje opgelost nog niet aangevinkt hebben.
  • In Generate SAF-T Files controleert ze de status van elke periode, van begin tot eind, samen met bestandsgrootte en transacties.

In haar database, met twee bedrijven, kijkt Marta eerst naar de kolom Company. Dezelfde lijst heeft een knop New en een zoekbalk:

Lijst met jaarlijkse SAF-T-statistieken met regels per bedrijf, jaar, totaal documenten, totale waarde en status, met knop New en zoekbalk
Dezelfde lijst met jaarstatistieken, met vijf regels in de status Borrador of Exportado.

Wat de case van Ribeira leert

  • Het nieuwe ATCUD-formulier is bijna leeg, alleen met de endpoint-URL: loop het sectie voor sectie door, ook het deel dat niet op het scherm past, voordat je het als compleet beschouwt.
  • company_id zit in meerdere modellen. Heb je meer dan één bedrijf, controleer dan eerst het bedrijf van elk record.
  • Er zijn vier verschillende sets statussen. Leer in welke lijst je welke ziet en welke je wilt bewaken.
  • De drie lijsten uit de ronde (jaarstatistieken, foutlogs en bestandsgeneratie) vormen Marta's routine in haar eerste week.

Hoe FlexigoTech je helpt

FlexigoTech implementeert Odoo 17, 18, 19 en 20 en bouwt connectoren en integraties op maat, dus we kunnen de ATCUD-configuratie en je bedrijven samen met je inrichten. Koop je de module via de pagina op flexigotech.com, dan zit de module voor nieuwe Odoo-versies bij het abonnement inbegrepen; in de Odoo App Store koop je daarentegen elke versie daar (pagina in Odoo Apps). Zonder abonnement, of als de dienst is opgeschort, stopt wat het abonnement levert, en je gegevens blijven in je Odoo. Twijfel je nog of het bij je past, lees dan eerst wat het dekt en wat je nodig hebt voordat je het installeert.

Lees verder

Hoe Portugal SAF-T (PT) File Checks in Odoo werkt, van binnenuit bekekenWelke menu's Portugal SAF-T (PT) File Checks toevoegt aan Facturatie, welke modellen erachter zitten, welke statussen je ziet en wat een externe dienst gebruikt.Foutmeldingen van Portugal SAF-T (PT) File Checks: wanneer elke melding verschijnt en wat je doetElke foutmelding van Portugal SAF-T (PT) File Checks letterlijk: wanneer hij verschijnt, wat hij betekent en wat je in Odoo doet, van generatie tot ATCUD.Portugal SAF-T (PT) File Checks: wat het dekt, wat je vooraf nodig hebt en welke Odoo-versieWat Portugal SAF-T (PT) File Checks volgens de README dekt, wat je vooraf nodig hebt (NIF, ATCUD, e-mail) en voor welke Odoo-versies het er is.
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen

Bronnen