Die elektronische Rechnungsstellung wird in Frankreich und in Europa zur Pflicht: eine Rechnung muss strukturierte, maschinenlesbare Daten tragen. Facturx bettet das Factur-X-XML (Norm EN 16931) automatisch in die PDF Ihrer Dolibarr-Rechnungen ein. Daraus werden hybride Dokumente, lesbar für den Menschen wie für die Maschine, bereit für Chorus Pro, für Ihre B2B-Kunden und für die zugelassenen Plattformen.
Konformität ohne Aufwand
- Das XML wird bei jeder Erzeugung, Freigabe oder Änderung einer Rechnung eingebettet, ohne Handgriff
- Das Modul greift nach der PDF-Erzeugung ein, unabhängig von der verwendeten Vorlage, auch bei nach PDF gewandelten ODT-Vorlagen
- Profile EN 16931 (Standard), EXTENDED (CTC-FR), XRECHNUNG 3 (Deutschland, experimentell) und MINIMUM
- Ausgabe des XML als eigene Datei oder als PDF mit Namenszusatz, wenn nichts eingebettet werden soll
- Zusammenfassen der verknüpften PDF (Aufträge, Lieferscheine) vor dem Einbetten
- Pflichtangaben der französischen Reform (BR-FR-05) und Rechnungsart (BT-23), ausgegeben je nach Land Ihres Unternehmens
Chorus Pro und öffentliche Auftraggeber
- Felder Servicecode (BT-10), Vertragsnummer (BT-12), Bestellnummer (BT-13) und Chorus-Kennung, auf Rechnungen wie auf Aufträgen
- Automatischer Hinweis bei Kunden der öffentlichen Hand, mit passendem Rechnungsrahmen
- SIREN aus der SIRET und Umsatzsteuer-Identifikationsnummer aus der SIREN abgeleitet, bei französischen Kunden
- Zahlender Dritter im Profil EXTENDED, wenn nicht der berechnete Kunde zahlt
Senden und empfangen über Ihre zugelassene Plattform
- OAuth-Anbindung an den Zugangspunkt SuperPDP, um Ihre freigegebenen Kundenrechnungen zu übermitteln
- Automatischer Abruf der Lieferantenrechnungen über einen geplanten Auftrag, standardmäßig abgeschaltet
- Lieferant und Nummer jeder empfangenen Rechnung schon vor dem Import sichtbar, Import gesperrt für eine bereits in Dolibarr erfasste Rechnung
- Suche der Peppol/Factur-X-Kennung (BT-49) Ihrer Kunden im offiziellen Verzeichnis
- Statusverfolgung jedes übermittelten Dokuments
Geprüfte Daten vor dem Versand
- Prüfung der Pflichtangaben (Umsatzsteuer, Adresse, SIREN/SIRET), bevor das XML entsteht
- Steuerbefreiungscodes (VATEX) und die EN-16931-Steuerkategorie für Positionen mit 0 % abgeleitet
- Gesetzliche Kennungen je Land: SIREN in Frankreich, BCE/KBO in Belgien, Handelsregister und Steuernummer in Deutschland
- Abweichende Rechnungsadresse und Lieferkontakt über die mit der Rechnung verknüpften Kontakte
- Abrechnungszeitraum aus den Anfangs- und Enddaten der Positionen berechnet
- Wiederkehrende Rechnungen, Teilrechnungen und negative Positionen werden unterstützt
Im Alltag
- Factur-X-Erzeugung für mehrere Rechnungen in einem Durchgang, mit ZIP-Ausgabe
- Gezieltes Abschalten auf einer Rechnung, die es nicht tragen soll
Voraussetzungen
- Dolibarr 18.0 oder höher, PHP 7.4 oder höher
- Oberfläche auf Französisch, Englisch, Deutsch, Spanisch, Italienisch, Niederländisch und brasilianischem Portugiesisch
- Die PHP-Erweiterungen GD und zlib
- Die Module Geschäftspartner und Rechnungen aktiviert
Probieren Sie es aus auf einem in weniger als 20 Sekunden installierten Dolibarr, mit fünf fiktiven Kunden und ihren fertigen Factur-X-Rechnungen: dolitry.fr/facturx
Alle Funktionen sind in der Dokumentation beschrieben: doc.cap-rel.fr/facturx
Was im Kauf enthalten ist
- Das Modul und der Zugang zu seinen Aktualisierungen für den auf dieser Seite genannten Zeitraum
- Fehlerbehebungen, auch zu den von Ihnen gemeldeten
- Eine E-Mail zu jeder neuen Version
Wer über neue Versionen automatisch Bescheid wissen möchte, zu diesem Modul wie zum Dolibarr-Umfeld überhaupt, abonniert dolinews.com: dort erscheinen unsere Versionsankündigungen.
Unterstützung
Die Unterstützung läuft über unser Supportformular, nicht über die Kommentare auf dieser Seite.
Unterstützung ist nicht kostenlos. Sie wünschen sich fachkundige Menschen als Gegenüber: dann ist es nur recht, dass diese Zeit bezahlt wird. Der angezeigte Preis deckt das Modul und seine Aktualisierungen ab. Er deckt weder die Installation noch die Einrichtung Ihres Dolibarr ab, auch nicht die Schulung Ihrer Teams, keine Sonderentwicklungen und keine Untersuchung einer Umgebung, die wir nicht betreiben.
Ein nachvollziehbarer Fehler im Modul wird kostenfrei behoben, das gehört zu den oben genannten Aktualisierungen.
Vor dem Kauf
- Prüfen Sie die oben auf dieser Seite genannten Dolibarr- und PHP-Versionen: darüber hinaus ist das Modul nicht getestet
- Module werden über Startseite > Einstellungen > Module > Externes Modul bereitstellen eingespielt, wofür Ihre Installation ein aktives Verzeichnis custom braucht
- Stützt sich ein Modul auf einen Onlinedienst, ist das Abonnement dieses Dienstes vom Kauf des Moduls getrennt und oben angegeben
Herausgeber
Modul entwickelt von CAP-REL, unter der Lizenz GPL-3.0-or-later. Dokumentation unter doc.cap-rel.fr.
Versionsverlauf
1.6.158 -- 2026-10-28
- new: AP import list shows supplier name and invoice number read from the XML
- new: AP import flags and blocks an invoice already in Dolibarr, with a link to it
- fix: the AP import card no longer answers "Access denied" when Multicompany is not used
- fix: a French seller without BT-34 configured is no longer filed as international by SuperPDP
- new: Dolibarr 24 support
- fix: activation stops and names the table when a module table could not be created
- new: complete German and Dutch translations, and a new Brazilian Portuguese one
- fix: access refusals and the "Success" import status no longer show as untranslated codes
- new: a demonstration data set shows each Factur-X case on test instances in one click
- fix: the seller GlobalID (BT-29) is no longer sent without its identification scheme
- fix: a German seller sends its Handelsregister-Nummer as BT-30, no longer its Steuernummer
- new: a German seller sends its Steuernummer as BT-32, enough when it has no USt-IdNr
1.6.156 -- 2026-10-05
- fix: the VAT exemption reason no longer repeats on each line, where DATEV rejects it
- fix: French legal mentions and the BT-23 billing mode now only go on a French seller invoice
- fix: an invoice issued in a foreign currency keeps that currency and its amounts in the XML
- fix: a summary invoice billed in a foreign currency keeps its amounts in that currency
- State the VAT in your accounting currency on a foreign-currency invoice (BT-6 and BT-111)
- Choose whether the French reform mentions apply, for an establishment outside France
- Send the unit of your invoice lines in the XML, hours no longer leave as pieces
- Have a unit you added yourself sent too, when its code is a UN/ECE Rec 20 one
- fix: the Chorus and XRechnung fields really come back on a reactivation
- fix: the setup page now names the extra fields Dolibarr hides instead of letting them vanish
- fix: a field forced visible by hand is tied again to the "Disable chorus support" setting
- fix: the ship-to identifier and the product summary group were out of reach of that repair
- fix: one extra field failing to be created no longer cancels every field declared after it
- fix: the activation now stops and says so when an extra field could not be created
- fix: the status of a document sent to the access point is stored again, its table was missing
- fix: two received invoices can no longer end up with the same reference
- fix: a malformed XML received from the network now names the line that breaks it
- fix: a failed merge of the attachments into the Factur-X PDF is reported, not only logged
- fix: the billing contact notice is translated instead of being shown in English
- fix: the OAuth2 callback url follows the installation, it was hardcoded under /custom/facturx
- fix: an unknown access point driver is refused instead of being included blindly
- fix: an import of a neighbour entity can no longer be read, edited, reset nor deleted
- fix: the PDF of a received invoice is no longer reachable through a public share link
- fix: a mass action on invoices now leaves out those of the entities you cannot see
- fix: writing a Peppol identifier from the search page needs the thirdparty write right
- fix: the routing migration no longer runs from a plain link, it needs the form of its page
- fix: the inline script of the about page carries a nonce, so a strict CSP stops blocking it
- new: the OAuth2 tokens and the client secret are stored encrypted instead of in clear text
- new: FACTURX_DISABLE_VERSION_CHECK turns off the version check made at every activation
- the leftover numbering and document model block is gone from the setup pages
1.6.152 -- 2026-09-23
- fix: the buyer order number is no longer written inside the invoice lines, where the CII schematron warns about it once per line (CII-SR-108); it is emitted at document level instead, as BT-13 when free, otherwise as a referenced document
- fix: title, subtotal and page break lines are left out of the XML again, whether they come from the ATM-Consulting subtotal module or from the Dolibarr core feature; they used to be emitted as 0 EUR positions and to open a VAT breakdown at rate 0, which made the invoice ask for an exemption code it did not need
1.6.150 -- 2026-09-17
- fix: the payer trade party field now really lists customers only, its object descriptor was written in the wrong form and the filter was dropped
- fix: the supplier import menu entry is no longer declared when the supplier invoice module is off, which filled dolibarr.log with "parent was not found"
- fix: the VAT exemption code and the customer PDP identifier are visible again on Dolibarr 23, whose stricter condition evaluation rejected the expression that showed them
- fix: the ship-to identifier and the product summary group no longer disappear along with the Chorus fields, a migration was tying them to the wrong setting
- fix: the Peppol identifier lookup popup opens again when Dolibarr is installed in a sub-directory of the site
1.6.146 -- 2026-09-03
- fix: a negative line is now a document allowance (BG-20) instead of a position with a negative price, which broke BR-27, BR-28 and BR-FR-DEC-03
- fix: the delivery country (BT-80) falls back to the buyer country when an exempt VAT category requires it (BR-IC-12)
- new: a 0% VAT line without an exemption code is now reported to the user, since the platform rejects the invoice for it (BR-IC-10)
1.6.144 -- 2026-09-03
1.6.142 -- 2026-09-01
- new "Summary" invoice document model
- new "Summary groups" dictionary and new "Summary group" extrafield on products
- the XML carries the same aggregated positions as the PDF
- new setup section for that model: fallback wordings for goods and services
- fix: the freshest stamped PDF is now sent to the access point
- fix: a PDF returned by the access point while the XML was requested is now stored under a .pdf name
- fix: no more empty PDF frame on the import card when the invoice was received as a bare XML
- fix: the "Download PDF" button of the import card now finds its file
- an invoice received without a readable PDF is no longer logged as an error
1.6.140 -- 2026-08-28
- better message for BR-FR-12 error
- add tests on missing customer routing data
1.6.138 -- 2026-08-25
- fix: no VAT number (BT-48) nor registration number (BT-47) warning anymore when the customer is a private individual
- compliance warning about the missing VAT number now explains how to declare a private individual
- new compliance warning when the buyer (BT-49, BR-FR-12) or the seller (BT-34, BR-FR-11) electronic address will be missing from the XML
- the buyer warning only asks for an email when the customer is a private individual
- a bare French SIREN or SIRET is now accepted in BT-34 and BT-49, the 0225 scheme code being added automatically
- clearer wording for the malformed electronic address warning, both orders being valid
1.6.136 -- 2026-08-24
- ship-to party (BG-13) now read from the delivery contact of the invoice
- new extrafield on contacts for the delivery location identifier (BT-71)
- delivery address no longer emitted without its country (BR-57)
- fix: seller electronic address (BT-34) no longer dropped when the seller contact block is disabled
- fix: no more empty URIUniversalCommunication element when neither identifier nor email is set
1.6.134 -- 2026-08-14
- new option (setup module) to auto detect chorus target
- better merge system: try first engine (with html links support) then the other in case of failure
1.6.132 -- 2026-08-05
- add race condition for chorus pro
1.6.130 -- 2026-08-04
- handle unit price less than 0.00 €
- add extrafields on facrec
1.6.128 -- 2026-08-04
- add migration tool and link for new community module
- better messages in case of bad data on thirdpart or invoice card
- add sender id field on setup even if pa/pdp is not set in that module
- update user doc
1.6.126 -- 2026-08-03
- fix price for .00+ decimals
1.6.124 -- 2026-07-17
- add module version in headers to be more accurate on support / end user help
1.6.122 -- 2026-07-15
1.6.120 -- 2026-06-29
- fix SuperPDP data exchange
- import files from SuperPDP
- search in directory
1.6.118 -- 2026-06-03
- fix payment data
- fix mass action xml build from rec invoices
- add vatex codes from peppol modul (same codes, shared dictionary)
- add more specific chorus code for full siret number, not only siren one
- stay php 7.4 compat (fpdi)
1.6.113 -- 2026-05-27
- drop computed expression on d4d_chorus_id extrafield
- add superpdp as first fallback ap in case of problem with community module
- (to be tested)
1.6.112 -- 2026-05-04
- update code (cleanup)
- better translations files for explicit BT-* fields
- add all tests into repository code
- better compliance files for online tests tools
- merge contribution from sven (see function _idprof)
- add credit notes
1.6.110 -- 2026-04-16
- better check for non company customers (B2C)
1.6.108 -- 2026-04-15
- better german translations for equivalent chorus fields
1.6.106 -- 2026-04-13
- better dolibarr 23 support
- add BT fields names (chorus/other support)
1.6.104 -- 2026-04-01
- fix extrafield compat dol22+
1.6.102 -- 2026-03-26
1.6.100 -- 2026-03-10
- fix links into pdf thanks to Gigarun ticket & fix suggest (other solution applied)
1.6.98 -- 2026-03-06
- Fix billing account tests and change error message with more precise informations
1.6.96 -- 2026-02-20
- New profile PROFILE_EXTENDED with thirdparty payer != buyer support, if that profile is active
- a new extrafield is displayed on invoices card
1.6.94 -- 2026-02-17
- Fix race condition on situation invoices
1.6.90 -- 2026-02-11
- Fix error on 1.6.88 version
1.6.88 -- 2026-02-03
- New system : IF all lines of invoice have the same date start / date end
- THEN thoses dates are used globally for invoice date start / date end
- into XML par of invoice
- And a new option is coming in setup for date start / date end of services globally for
- invoices in case of one or more lines have different date start / stop
1.6.86 -- 2026-01-27
- An other try to keep php 7.3 compat' mode
1.6.85 -- 2025-12-08
- Back php 7.3 mode for typed properties
1.6.82 -- 2025-12-02
- Use library constants for email type (contribution: Peter Kessen)
- Add buyer email only if mail was set for this buyer: sometimes there was no contact
- email set up for some customers. Adding the mail leads to validation errors (Peter again)
1.6.80 -- 2025-11-19
- add dolibarr > 20 support thanks to sven p.
- avoid facturx generation for uploaded files thanks to sven p. again :)
- code cleanup (warnings, php code quality)
1.6.78 -- 2025-07-07
- add unit price and fix discount negative lines
1.6.76 -- 2025-06-30
- add more actions (confirm_paiement and setnote_) where dolibarr rebuild pdf files
1.6.74 -- 2025-05-16
- chorus : do not put AdditionalReferencedDocument data into xml
1.6.72 -- 2025-04-24
- new setup option to force facturx call even if object type is not a ModelePDFFactures
- add a test agains hidden conf PDF_SECURITY_ENCRYPTION
1.6.70 -- 2025-04-18
- add a mapping system dolibarr <-> facturx for:
- NORMAL invoice like that module makes from the first time
- CORRECTION (to become for future "updates" of invoices ?)
- CREDITNOTE (please make some checks with "negative" invoices)
- PREPAYMENTINVOICE ("acompte")
- add a check for customer ref length (chorus limit is 50 chars)
- add document language to be the same as pdf part
- add billing periods lines
- fix a warninng message (undef array entry)
- note in case of invoices and prepayment invoice linked dolibarr add a negative line
- bug facturx point of view is to not have a negative line but a "partial paid" info
- at the end of the document and a "remain to pay" affected by that payment ... so
- facturx XML could be "different" than pdf part please have twice look at that and
- make me detailled bug reports in case of problem !
1.6.64 -- 2025-03-05
- fix file suffix stuck to _tmp.pdf instead of _facturx.pdf (in some race conditions)
- add a hidden config key : FACTURX_SUFFIX_CUSTOM then you could put what you want as file suffix name
- update payment terms translations (do not htmlencode)
- fix PayeePartyCreditorFinancialAccount/AccoutName (BT-85) should be OwnerName instead of Bank name
- fix negative lines as global discount and write some documentation about it
1.6.56 -- 2025-01-31
- fix code thanks to grandoc (undef array index)
1.6.54 -- 2025-01-31
- new add all paymentMean possibilities from Jan Bekemeier
- fix a french error on alert messages: siren is the only needed information thanks to Vincent Maury
1.6.52 -- 2025-01-21
- new profile PROFILE_XRECHNUNG_3 thanks to Sven again !
- new option in setup to choose the profile you want
- fix "FacturXDisabled" keyword displayed on invoices card, now that keyword is translated
1.6.50 -- 2025-01-15
- Internationalization of PaymentMean field (remove the
- french "Virement Bancaire") thanks to Jan Bekemeier
- Change source of informations for company phone / fax and email
- in case of contact linked to the invoice is not set, thanks to Sven Plohmer
- Use customer language or document language for xml products lines
1.6.46 -- 2024-12-12
- FIX discount on line less than 100%
- Remove Chorus warning when chorus is disabled
- Update translations
1.6.44 -- 2024-12-09
- NEW contribution from Sven Plohmer :
- Adding functionality to fetch customer order references, corresponding...
- Remove "note" in case of empty note field
- NEW contribution from Jan Bekemeier :
- New option in module setup "disables generation of DefinedTradeContact"
- Code cleanup, migrate from conf->global to getDolGlobalString function
Gekürzter Verlauf, nicht angezeigte Zwischenversionen: 40
Die erste Version dieses Moduls stammt vom 27.09.2021.
1.0.0
Das vollständige Änderungsprotokoll finden Sie auf der Seite "Über" des Moduls, sobald es installiert ist.