# Factur-X / ZUGFeRD MINIMUM rules

> The rules of the Factur-X / ZUGFeRD MINIMUM profile: the few EN 16931 rules on the header data it carries (BR-*, BR-CO-*) and the profile's structure and code list rules (FX-SCH-A-*).

- Publisher: [FNFE-MPE and FeRD](https://fnfe-mpe.org/factur-x/)
- Version: Factur-X 1.09.2 / ZUGFeRD 2.5.2
- Syntax: CII
- Rules: 55 rules (55 fatal)
- Source: https://raw.githubusercontent.com/ZUGFeRD/mustangproject/6bf5ab9551e2bf5510c012b8b48708e32a8bded1/validator/src/main/resources/schematron/ZF_250/FACTUR-X_MINIMUM.sch

- MINIMUM is not EN 16931 compliant: a valid MINIMUM file is valid for its profile, not an EN 16931 invoice.
- Runs instead of the CEN EN 16931 rules: it holds the EN 16931 rules the profile has, with the same rule IDs (BR-01, BR-CO-10, …). Rule IDs that start with FX-SCH-A- check the profile's structure and code lists.
- The XML is first checked against the XSD of the same profile, which allows only the profile's elements.

## Schemas

- [Factur-X / ZUGFeRD MINIMUM](https://peppolvalidator.com/schemas/factur-x-minimum)

## Validate

Validate a Factur-X / ZUGFeRD invoice: https://peppolvalidator.com/factur-x-validator#validate

## Rules

- [BR-01](https://peppolvalidator.com/peppol-validation-errors/BR-01) (fatal): An Invoice shall have a Specification identifier (BT-24).
- [BR-02](https://peppolvalidator.com/peppol-validation-errors/BR-02) (fatal): An Invoice shall have an Invoice number (BT-1).
- [BR-03](https://peppolvalidator.com/peppol-validation-errors/BR-03) (fatal): An Invoice shall have an Invoice issue date (BT-2).
- [BR-04](https://peppolvalidator.com/peppol-validation-errors/BR-04) (fatal): An Invoice shall have an Invoice type code (BT-3).
- [BR-05](https://peppolvalidator.com/peppol-validation-errors/BR-05) (fatal): An Invoice shall have an Invoice currency code (BT-5).
- [BR-06](https://peppolvalidator.com/peppol-validation-errors/BR-06) (fatal): An Invoice shall contain the Seller name (BT-27).
- [BR-07](https://peppolvalidator.com/peppol-validation-errors/BR-07) (fatal): An Invoice shall contain the Buyer name (BT-44).
- [BR-08](https://peppolvalidator.com/peppol-validation-errors/BR-08) (fatal): An Invoice shall contain the Seller postal address (BG-5).
- [BR-09](https://peppolvalidator.com/peppol-validation-errors/BR-09) (fatal): The Seller postal address (BG-5) shall contain a Seller country code (BT-40).
- [BR-13](https://peppolvalidator.com/peppol-validation-errors/BR-13) (fatal): An Invoice shall have the Invoice total amount without VAT (BT-109).
- [BR-14](https://peppolvalidator.com/peppol-validation-errors/BR-14) (fatal): An Invoice shall have the Invoice total amount with VAT (BT-112).
- [BR-15](https://peppolvalidator.com/peppol-validation-errors/BR-15) (fatal): An Invoice shall have the Amount due for payment (BT-115).
- [BR-CO-09](https://peppolvalidator.com/peppol-validation-errors/BR-CO-09) (fatal): The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix ‘EL’.
- [BR-CO-26](https://peppolvalidator.com/peppol-validation-errors/BR-CO-26) (fatal): In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present.
- [BR-DEC-12](https://peppolvalidator.com/peppol-validation-errors/BR-DEC-12) (fatal): The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.
- [BR-DEC-13](https://peppolvalidator.com/peppol-validation-errors/BR-DEC-13) (fatal): The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.
- [BR-DEC-14](https://peppolvalidator.com/peppol-validation-errors/BR-DEC-14) (fatal): The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.
- [BR-DEC-18](https://peppolvalidator.com/peppol-validation-errors/BR-DEC-18) (fatal): The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.
- FX-SCH-A-000019 (fatal): Element 'ram:ID' must occur exactly 1 times.
- FX-SCH-A-000020 (fatal): Element 'ram:TypeCode' must occur exactly 1 times.
- FX-SCH-A-000021 (fatal): Attribute '@format' is required in this context.
- FX-SCH-A-000022 (fatal): Value of '@format' is not allowed.
- FX-SCH-A-000023 (fatal): Value of 'ram:TypeCode' is not allowed.
- FX-SCH-A-000024 (fatal): Element 'ram:BusinessProcessSpecifiedDocumentContextParameter' may occur at maximum 1 times.
- FX-SCH-A-000025 (fatal): Element 'ram:GuidelineSpecifiedDocumentContextParameter' must occur exactly 1 times.
- FX-SCH-A-000026 (fatal): Value of 'ram:ID' is not allowed.
- FX-SCH-A-000027 (fatal): Element 'ram:SellerTradeParty' must occur exactly 1 times.
- FX-SCH-A-000028 (fatal): Element 'ram:BuyerTradeParty' must occur exactly 1 times.
- FX-SCH-A-000029 (fatal): Element 'ram:IssuerAssignedID' must occur exactly 1 times.
- FX-SCH-A-000030 (fatal): Element 'ram:Name' must occur exactly 1 times.
- FX-SCH-A-000031 (fatal): Value of '@schemeID' is not allowed.
- FX-SCH-A-000032 (fatal): Element 'ram:PostalTradeAddress' must occur exactly 1 times.
- FX-SCH-A-000033 (fatal): Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="VA"]' may occur at maximum 1 times.
- FX-SCH-A-000034 (fatal): Element variant 'ram:SpecifiedTaxRegistration[ram:ID/@schemeID="FC"]' may occur at maximum 1 times.
- FX-SCH-A-000035 (fatal): Element 'ram:CountryID' must occur exactly 1 times.
- FX-SCH-A-000036 (fatal): Value of 'ram:CountryID' is not allowed.
- FX-SCH-A-000037 (fatal): Attribute '@schemeID' is required in this context.
- FX-SCH-A-000038 (fatal): Element 'ram:InvoiceCurrencyCode' must occur exactly 1 times.
- FX-SCH-A-000039 (fatal): Element 'ram:SpecifiedTradeSettlementHeaderMonetarySummation' must occur exactly 1 times.
- FX-SCH-A-000040 (fatal): Value of 'ram:InvoiceCurrencyCode' is not allowed.
- FX-SCH-A-000041 (fatal): Element 'ram:TaxBasisTotalAmount' must occur exactly 1 times.
- FX-SCH-A-000042 (fatal): Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:InvoiceCurrencyCode]' may occur at maximum 1 times.
- FX-SCH-A-000043 (fatal): Element 'ram:GrandTotalAmount' must occur exactly 1 times.
- FX-SCH-A-000044 (fatal): Element 'ram:DuePayableAmount' must occur exactly 1 times.
- FX-SCH-A-000045 (fatal): Value of '@currencyID' is not allowed.
- FX-SCH-A-000192 (fatal): Element variant 'ram:TaxTotalAmount[@currencyID=../../ram:TaxCurrencyCode]' may occur at maximum 1 times.
- FX-SCH-A-000406 (fatal): Element 'ram:ID' must occur exactly 1 times.
- FX-SCH-A-000407 (fatal): Element 'ram:ID' must occur exactly 1 times.
- FX-SCH-A-000408 (fatal): Element 'ram:ID' must occur exactly 1 times.
- FX-SCH-A-000409 (fatal): Element 'ram:Name' must occur exactly 1 times.
- FX-SCH-A-000410 (fatal): Value of '@schemeID' is not allowed.
- FX-SCH-A-000411 (fatal): Element 'ram:ID' must occur exactly 1 times.
- FX-SCH-A-000412 (fatal): Element 'ram:ID' must occur exactly 1 times.
- FX-SCH-A-000413 (fatal): Attribute '@schemeID' is required in this context.
- FX-SCH-A-000414 (fatal): Value of '@currencyID' is not allowed.
