rules

package
v0.0.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2025 License: BSD-3-Clause Imports: 0 Imported by: 0

Documentation

Overview

Package rules contains EN 16931 business rule definitions.

Rules are auto-generated from official schematron specifications. See cmd/genrules/README.md for generation instructions.

Index

Constants

This section is empty.

Variables

View Source
var (
	// BR34-40: These rules are not in the EN 16931 schematron but validate
	// that allowance and charge amounts are non-negative.
	BR34 = Rule{
		Code:        "BR-34",
		Fields:      []string{"BT-92"},
		Description: `Document level allowance amount (BT-92) must not be negative.`,
	}
	BR35 = Rule{
		Code:        "BR-35",
		Fields:      []string{"BT-93"},
		Description: `Document level allowance base amount (BT-93) must not be negative.`,
	}
	BR39 = Rule{
		Code:        "BR-39",
		Fields:      []string{"BT-99"},
		Description: `Document level charge amount (BT-99) must not be negative.`,
	}
	BR40 = Rule{
		Code:        "BR-40",
		Fields:      []string{"BT-100"},
		Description: `Document level charge base amount (BT-100) must not be negative.`,
	}

	// UNEXPECTED_TAX_CURRENCY: Validates that TaxTotalAmount elements use only
	// the invoice currency (BT-5) and optionally the accounting currency (BT-6).
	// EN 16931 only defines BT-110 and BT-111, no additional currencies are allowed.
	UNEXPECTED_TAX_CURRENCY = Rule{
		Code:        "UNEXPECTED-TAX-CURRENCY",
		Fields:      []string{"BT-110", "BT-111"},
		Description: `TaxTotalAmount with unexpected currency (expected invoice currency BT-5 or accounting currency BT-6).`,
	}
)
View Source
var (
	BR1 = Rule{
		Code:        "BR-01",
		Fields:      []string{"BT-24"},
		Description: `An Invoice shall have a Specification identifier (BT-24).`,
	}
	BR2 = Rule{
		Code:        "BR-02",
		Fields:      []string{"BT-1"},
		Description: `An Invoice shall have an Invoice number (BT-1).`,
	}
	BR3 = Rule{
		Code:        "BR-03",
		Fields:      []string{"BT-2"},
		Description: `An Invoice shall have an Invoice issue date (BT-2).`,
	}
	BR4 = Rule{
		Code:        "BR-04",
		Fields:      []string{"BT-3"},
		Description: `An Invoice shall have an Invoice type code (BT-3).`,
	}
	BR5 = Rule{
		Code:        "BR-05",
		Fields:      []string{"BT-5"},
		Description: `An Invoice shall have an Invoice currency code (BT-5).`,
	}
	BR6 = Rule{
		Code:        "BR-06",
		Fields:      []string{"BT-27"},
		Description: `An Invoice shall contain the Seller name (BT-27).`,
	}
	BR7 = Rule{
		Code:        "BR-07",
		Fields:      []string{"BT-44"},
		Description: `An Invoice shall contain the Buyer name (BT-44).`,
	}
	BR8 = Rule{
		Code:        "BR-08",
		Fields:      []string{"BG-5"},
		Description: `An Invoice shall contain the Seller postal address (BG-5).`,
	}
	BR9 = Rule{
		Code:        "BR-09",
		Fields:      []string{"BG-5", "BT-40"},
		Description: `The Seller postal address (BG-5) shall contain a Seller country code (BT-40).`,
	}
	BR10 = Rule{
		Code:        "BR-10",
		Fields:      []string{"BG-8"},
		Description: `An Invoice shall contain the Buyer postal address (BG-8).`,
	}
	BR11 = Rule{
		Code:        "BR-11",
		Fields:      []string{"BT-55"},
		Description: `The Buyer postal address shall contain a Buyer country code (BT-55).`,
	}
	BR12 = Rule{
		Code:        "BR-12",
		Fields:      []string{"BT-106"},
		Description: `An Invoice shall have the Sum of Invoice line net amount (BT-106).`,
	}
	BR13 = Rule{
		Code:        "BR-13",
		Fields:      []string{"BT-109"},
		Description: `An Invoice shall have the Invoice total amount without VAT (BT-109).`,
	}
	BR14 = Rule{
		Code:        "BR-14",
		Fields:      []string{"BT-112"},
		Description: `An Invoice shall have the Invoice total amount with VAT (BT-112).`,
	}
	BR15 = Rule{
		Code:        "BR-15",
		Fields:      []string{"BT-115"},
		Description: `An Invoice shall have the Amount due for payment (BT-115).`,
	}
	BR16 = Rule{
		Code:        "BR-16",
		Fields:      []string{"BG-25"},
		Description: `An Invoice shall have at least one Invoice line (BG-25).`,
	}
	BR17 = Rule{
		Code:        "BR-17",
		Fields:      []string{"BG-10", "BG-4", "BT-59"},
		Description: `The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).`,
	}
	BR18 = Rule{
		Code:        "BR-18",
		Fields:      []string{"BG-11", "BG-4", "BT-62"},
		Description: `The Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).`,
	}
	BR19 = Rule{
		Code:        "BR-19",
		Fields:      []string{"BG-11", "BG-12", "BG-4"},
		Description: `The Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).`,
	}
	BR20 = Rule{
		Code:        "BR-20",
		Fields:      []string{"BG-11", "BG-12", "BG-4", "BT-69"},
		Description: `The Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).`,
	}
	BR21 = Rule{
		Code:        "BR-21",
		Fields:      []string{"BG-25", "BT-126"},
		Description: `Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).`,
	}
	BR22 = Rule{
		Code:        "BR-22",
		Fields:      []string{"BG-25", "BT-129"},
		Description: `Each Invoice line (BG-25) shall have an Invoiced quantity (BT-129).`,
	}
	BR23 = Rule{
		Code:        "BR-23",
		Fields:      []string{"BG-25", "BT-130"},
		Description: `An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).`,
	}
	BR24 = Rule{
		Code:        "BR-24",
		Fields:      []string{"BG-25", "BT-131"},
		Description: `Each Invoice line (BG-25) shall have an Invoice line net amount (BT-131).`,
	}
	BR25 = Rule{
		Code:        "BR-25",
		Fields:      []string{"BG-25", "BT-153"},
		Description: `Each Invoice line (BG-25) shall contain the Item name (BT-153).`,
	}
	BR26 = Rule{
		Code:        "BR-26",
		Fields:      []string{"BG-25", "BT-146"},
		Description: `Each Invoice line (BG-25) shall contain the Item net price (BT-146).`,
	}
	BR27 = Rule{
		Code:        "BR-27",
		Fields:      []string{"BT-146"},
		Description: `The Item net price (BT-146) shall NOT be negative.`,
	}
	BR28 = Rule{
		Code:        "BR-28",
		Fields:      []string{"BT-148"},
		Description: `The Item gross price (BT-148) shall NOT be negative.`,
	}
	BR29 = Rule{
		Code:        "BR-29",
		Fields:      []string{"BT-73", "BT-74"},
		Description: `If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).`,
	}
	BR30 = Rule{
		Code:        "BR-30",
		Fields:      []string{"BT-134", "BT-135"},
		Description: `If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).`,
	}
	BR31 = Rule{
		Code:        "BR-31",
		Fields:      []string{"BG-20", "BT-92"},
		Description: `Each Document level allowance (BG-20) shall have a Document level allowance amount (BT-92).`,
	}
	BR32 = Rule{
		Code:        "BR-32",
		Fields:      []string{"BG-20", "BT-95"},
		Description: `Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).`,
	}
	BR33 = Rule{
		Code:        "BR-33",
		Fields:      []string{"BG-20", "BT-97", "BT-98"},
		Description: `Each Document level allowance (BG-20) shall have a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98).`,
	}
	BR36 = Rule{
		Code:        "BR-36",
		Fields:      []string{"BG-21", "BT-99"},
		Description: `Each Document level charge (BG-21) shall have a Document level charge amount (BT-99).`,
	}
	BR37 = Rule{
		Code:        "BR-37",
		Fields:      []string{"BG-21", "BT-102"},
		Description: `Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).`,
	}
	BR38 = Rule{
		Code:        "BR-38",
		Fields:      []string{"BG-21", "BT-104", "BT-105"},
		Description: `Each Document level charge (BG-21) shall have a Document level charge reason (BT-104) or a Document level charge reason code (BT-105).`,
	}
	BR41 = Rule{
		Code:        "BR-41",
		Fields:      []string{"BG-27", "BT-136"},
		Description: `Each Invoice line allowance (BG-27) shall have an Invoice line allowance amount (BT-136).`,
	}
	BR42 = Rule{
		Code:        "BR-42",
		Fields:      []string{"BG-27", "BT-139", "BT-140"},
		Description: `Each Invoice line allowance (BG-27) shall have an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140).`,
	}
	BR43 = Rule{
		Code:        "BR-43",
		Fields:      []string{"BG-28", "BT-141"},
		Description: `Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).`,
	}
	BR44 = Rule{
		Code:        "BR-44",
		Fields:      []string{"BG-28", "BT-144", "BT-145"},
		Description: `Each Invoice line charge (BG-28) shall have an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145).`,
	}
	BR45 = Rule{
		Code:        "BR-45",
		Fields:      []string{"BG-23", "BT-116"},
		Description: `Each VAT breakdown (BG-23) shall have a VAT category taxable amount (BT-116).`,
	}
	BR46 = Rule{
		Code:        "BR-46",
		Fields:      []string{"BG-23", "BT-117"},
		Description: `Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).`,
	}
	BR47 = Rule{
		Code:        "BR-47",
		Fields:      []string{"BG-23", "BT-118"},
		Description: `Each VAT breakdown (BG-23) shall be defined through a VAT category code (BT-118).`,
	}
	BR48 = Rule{
		Code:        "BR-48",
		Fields:      []string{"BG-23", "BT-119"},
		Description: `Each VAT breakdown (BG-23) shall have a VAT category rate (BT-119), except if the Invoice is not subject to VAT.`,
	}
	BR49 = Rule{
		Code:        "BR-49",
		Fields:      []string{"BG-16", "BT-81"},
		Description: `A Payment instruction (BG-16) shall specify the Payment means type code (BT-81).`,
	}
	BR50 = Rule{
		Code:        "BR-50",
		Fields:      []string{"BG-16", "BT-84"},
		Description: `A Payment account identifier (BT-84) shall be present if Credit transfer (BG-16) information is provided in the Invoice.`,
	}
	BR51 = Rule{
		Code:        "BR-51",
		Fields:      []string{"BT-97"},
		Description: `In accordance with card payments security standards an invoice should never include a full card primary account number (BT-97). At the moment PCI Security Standards Council has defined that the first 6 digits and last 4 digits are the maximum number of digits to be shown.`,
	}
	BR52 = Rule{
		Code:        "BR-52",
		Fields:      []string{"BG-24", "BT-122"},
		Description: `Each Additional supporting document (BG-24) shall contain a Supporting document reference (BT-122).`,
	}
	BR53 = Rule{
		Code:        "BR-53",
		Fields:      []string{"BT-111", "BT-6"},
		Description: `If the VAT accounting currency code (BT-6) is present, then the Invoice total VAT amount in accounting currency (BT-111) shall be provided.`,
	}
	BR54 = Rule{
		Code:        "BR-54",
		Fields:      []string{"BG-32", "BT-160", "BT-161"},
		Description: `Each Item attribute (BG-32) shall contain an Item attribute name (BT-160) and an Item attribute value (BT-161).`,
	}
	BR55 = Rule{
		Code:        "BR-55",
		Fields:      []string{"BG-3", "BT-25"},
		Description: `Each Preceding Invoice reference (BG-3) shall contain a Preceding Invoice reference (BT-25).`,
	}
	BR56 = Rule{
		Code:        "BR-56",
		Fields:      []string{"BG-11", "BT-63"},
		Description: `Each Seller tax representative party (BG-11) shall have a Seller tax representative VAT identifier (BT-63).`,
	}
	BR57 = Rule{
		Code:        "BR-57",
		Fields:      []string{"BG-15", "BT-80"},
		Description: `Each Deliver to address (BG-15) shall contain a Deliver to country code (BT-80).`,
	}
	BR61 = Rule{
		Code:        "BR-61",
		Fields:      []string{"BT-81", "BT-84"},
		Description: `If the Payment means type code (BT-81) means SEPA credit transfer, Local credit transfer or Non-SEPA international credit transfer, the Payment account identifier (BT-84) shall be present.`,
	}
	BR62 = Rule{
		Code:        "BR-62",
		Fields:      []string{"BT-34"},
		Description: `The Seller electronic address (BT-34) shall have a Scheme identifier.`,
	}
	BR63 = Rule{
		Code:        "BR-63",
		Fields:      []string{"BT-49"},
		Description: `The Buyer electronic address (BT-49) shall have a Scheme identifier.`,
	}
	BR64 = Rule{
		Code:        "BR-64",
		Fields:      []string{"BT-157"},
		Description: `The Item standard identifier (BT-157) shall have a Scheme identifier.`,
	}
	BR65 = Rule{
		Code:        "BR-65",
		Fields:      []string{"BT-158"},
		Description: `The Item classification identifier (BT-158) shall have a Scheme identifier.`,
	}
	BR66 = Rule{
		Code:        "BR-66",
		Fields:      []string{"BG-20", "BG-21"},
		Description: `Each Specified Trade Allowance Charge (BG-20)(BG-21) shall contain a Charge Indicator.`,
	}
	BRAE1 = Rule{
		Code:        "BR-AE-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Reverse charge" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "VAT reverse charge".`,
	}
	BRAE2 = Rule{
		Code:        "BR-AE-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-32", "BT-47", "BT-48", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).`,
	}
	BRAE3 = Rule{
		Code:        "BR-AE-03",
		Fields:      []string{"BG-20", "BT-31", "BT-32", "BT-47", "BT-48", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).`,
	}
	BRAE4 = Rule{
		Code:        "BR-AE-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-32", "BT-47", "BT-48", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) and/or the Buyer legal registration identifier (BT-47).`,
	}
	BRAE5 = Rule{
		Code:        "BR-AE-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Reverse charge" the Invoiced item VAT rate (BT-152) shall be 0 (zero).`,
	}
	BRAE6 = Rule{
		Code:        "BR-AE-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Reverse charge" the Document level allowance VAT rate (BT-96) shall be 0 (zero).`,
	}
	BRAE7 = Rule{
		Code:        "BR-AE-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Reverse charge" the Document level charge VAT rate (BT-103) shall be 0 (zero).`,
	}
	BRAE8 = Rule{
		Code:        "BR-AE-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-131", "BT-92", "BT-99"},
		Description: `In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Reverse charge".`,
	}
	BRAE9 = Rule{
		Code:        "BR-AE-09",
		Fields:      []string{"BG-23", "BT-117", "BT-118"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Reverse charge" shall be 0 (zero).`,
	}
	BRAE10 = Rule{
		Code:        "BR-AE-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).`,
	}
	BRAF1 = Rule{
		Code:        "BR-AF-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IGIC" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IGIC".`,
	}
	BRAF2 = Rule{
		Code:        "BR-AF-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRAF3 = Rule{
		Code:        "BR-AF-03",
		Fields:      []string{"BG-20", "BT-31", "BT-32", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRAF4 = Rule{
		Code:        "BR-AF-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRAF5 = Rule{
		Code:        "BR-AF-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IGIC" the invoiced item VAT rate (BT-152) shall be greater than 0 (zero).`,
	}
	BRAF6 = Rule{
		Code:        "BR-AF-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IGIC" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.`,
	}
	BRAF7 = Rule{
		Code:        "BR-AF-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IGIC" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.`,
	}
	BRAF8 = Rule{
		Code:        "BR-AF-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-119", "BT-131", "BT-92", "BT-99"},
		Description: `For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IGIC", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IGIC" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).`,
	}
	BRAF9 = Rule{
		Code:        "BR-AF-09",
		Fields:      []string{"BG-23", "BT-116", "BT-117", "BT-118", "BT-119"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IGIC" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).`,
	}
	BRAF10 = Rule{
		Code:        "BR-AF-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IGIC" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).`,
	}
	BRAG1 = Rule{
		Code:        "BR-AG-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "IPSI" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "IPSI".`,
	}
	BRAG2 = Rule{
		Code:        "BR-AG-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRAG3 = Rule{
		Code:        "BR-AG-03",
		Fields:      []string{"BG-20", "BT-31", "BT-32", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRAG4 = Rule{
		Code:        "BR-AG-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" shall contain the Seller VAT Identifier (BT-31), the Seller Tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRAG5 = Rule{
		Code:        "BR-AG-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "IPSI" the Invoiced item VAT rate (BT-152) shall be 0 (zero) or greater than zero.`,
	}
	BRAG6 = Rule{
		Code:        "BR-AG-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "IPSI" the Document level allowance VAT rate (BT-96) shall be 0 (zero) or greater than zero.`,
	}
	BRAG7 = Rule{
		Code:        "BR-AG-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "IPSI" the Document level charge VAT rate (BT-103) shall be 0 (zero) or greater than zero.`,
	}
	BRAG8 = Rule{
		Code:        "BR-AG-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-119", "BT-131", "BT-92", "BT-99"},
		Description: `For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "IPSI", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "IPSI" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).`,
	}
	BRAG9 = Rule{
		Code:        "BR-AG-09",
		Fields:      []string{"BG-23", "BT-116", "BT-117", "BT-118", "BT-119"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "IPSI" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).`,
	}
	BRAG10 = Rule{
		Code:        "BR-AG-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) "IPSI" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).`,
	}
	BRB1 = Rule{
		Code:        "BR-B-01",
		Fields:      nil,
		Description: `An Invoice where the VAT category code (BT-151, BT-95 or BT-102) is “Split payment” shall be a domestic Italian invoice.`,
	}
	BRB2 = Rule{
		Code:        "BR-B-02",
		Fields:      []string{"BG-20", "BG-21", "BG-25"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Split payment" shall not contain an invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is “Standard rated”.`,
	}
	BRCO3 = Rule{
		Code:        "BR-CO-03",
		Fields:      []string{"BT-7", "BT-8"},
		Description: `Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.`,
	}
	BRCO4 = Rule{
		Code:        "BR-CO-04",
		Fields:      []string{"BG-25", "BT-151"},
		Description: `Each Invoice line (BG-25) shall be categorized with an Invoiced item VAT category code (BT-151).`,
	}
	BRCO5 = Rule{
		Code:        "BR-CO-05",
		Fields:      []string{"BT-97", "BT-98"},
		Description: `Document level allowance reason code (BT-98) and Document level allowance reason (BT-97) shall indicate the same type of allowance.`,
	}
	BRCO6 = Rule{
		Code:        "BR-CO-06",
		Fields:      []string{"BT-104", "BT-105"},
		Description: `Document level charge reason code (BT-105) and Document level charge reason (BT-104) shall indicate the same type of charge.`,
	}
	BRCO7 = Rule{
		Code:        "BR-CO-07",
		Fields:      []string{"BT-139", "BT-140"},
		Description: `Invoice line allowance reason code (BT-140) and Invoice line allowance reason (BT-139) shall indicate the same type of allowance reason.`,
	}
	BRCO8 = Rule{
		Code:        "BR-CO-08",
		Fields:      []string{"BT-144", "BT-145"},
		Description: `Invoice line charge reason code (BT-145) and Invoice line charge reason (BT-144) shall indicate the same type of charge reason.`,
	}
	BRCO9 = Rule{
		Code:        "BR-CO-09",
		Fields:      []string{"BT-31", "BT-48", "BT-63"},
		Description: `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’.`,
	}
	BRCO10 = Rule{
		Code:        "BR-CO-10",
		Fields:      []string{"BT-106", "BT-131"},
		Description: `Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).`,
	}
	BRCO11 = Rule{
		Code:        "BR-CO-11",
		Fields:      []string{"BT-107", "BT-92"},
		Description: `Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92).`,
	}
	BRCO12 = Rule{
		Code:        "BR-CO-12",
		Fields:      []string{"BT-108", "BT-99"},
		Description: `Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).`,
	}
	BRCO13 = Rule{
		Code:        "BR-CO-13",
		Fields:      []string{"BT-107", "BT-108", "BT-109", "BT-131"},
		Description: `Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108).`,
	}
	BRCO14 = Rule{
		Code:        "BR-CO-14",
		Fields:      []string{"BT-110", "BT-117"},
		Description: `Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).`,
	}
	BRCO15 = Rule{
		Code:        "BR-CO-15",
		Fields:      []string{"BT-109", "BT-110", "BT-112"},
		Description: `Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).`,
	}
	BRCO16 = Rule{
		Code:        "BR-CO-16",
		Fields:      []string{"BT-112", "BT-113", "BT-114", "BT-115"},
		Description: `Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).`,
	}
	BRCO17 = Rule{
		Code:        "BR-CO-17",
		Fields:      []string{"BT-116", "BT-117", "BT-119"},
		Description: `VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.`,
	}
	BRCO18 = Rule{
		Code:        "BR-CO-18",
		Fields:      []string{"BG-23"},
		Description: `An Invoice shall at least have one VAT breakdown group (BG-23).`,
	}
	BRCO19 = Rule{
		Code:        "BR-CO-19",
		Fields:      []string{"BG-14", "BT-73", "BT-74"},
		Description: `If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both.`,
	}
	BRCO20 = Rule{
		Code:        "BR-CO-20",
		Fields:      []string{"BG-26", "BT-134", "BT-135"},
		Description: `If Invoice line period (BG-26) is used, the Invoice line period start date (BT-134) or the Invoice line period end date (BT-135) shall be filled, or both.`,
	}
	BRCO21 = Rule{
		Code:        "BR-CO-21",
		Fields:      []string{"BG-20", "BT-97", "BT-98"},
		Description: `Each Document level allowance (BG-20) shall contain a Document level allowance reason (BT-97) or a Document level allowance reason code (BT-98), or both.`,
	}
	BRCO22 = Rule{
		Code:        "BR-CO-22",
		Fields:      []string{"BG-21", "BT-104", "BT-105"},
		Description: `Each Document level charge (BG-21) shall contain a Document level charge reason (BT-104) or a Document level charge reason code (BT-105), or both.`,
	}
	BRCO23 = Rule{
		Code:        "BR-CO-23",
		Fields:      []string{"BG-27", "BT-139", "BT-140"},
		Description: `Each Invoice line allowance (BG-27) shall contain an Invoice line allowance reason (BT-139) or an Invoice line allowance reason code (BT-140), or both.`,
	}
	BRCO24 = Rule{
		Code:        "BR-CO-24",
		Fields:      []string{"BG-28", "BT-144", "BT-145"},
		Description: `Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.`,
	}
	BRCO25 = Rule{
		Code:        "BR-CO-25",
		Fields:      []string{"BT-115", "BT-20", "BT-9"},
		Description: `In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present.`,
	}
	BRCO26 = Rule{
		Code:        "BR-CO-26",
		Fields:      []string{"BT-29", "BT-30", "BT-31"},
		Description: `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.`,
	}
	BRCO27 = Rule{
		Code:        "BR-CO-27",
		Fields:      []string{"BT-84"},
		Description: `Either the IBAN or a Proprietary ID (BT-84) shall be used.`,
	}
	BRDEC1 = Rule{
		Code:        "BR-DEC-01",
		Fields:      []string{"BT-92"},
		Description: `The allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.`,
	}
	BRDEC2 = Rule{
		Code:        "BR-DEC-02",
		Fields:      []string{"BT-93"},
		Description: `The allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.`,
	}
	BRDEC5 = Rule{
		Code:        "BR-DEC-05",
		Fields:      []string{"BT-99"},
		Description: `The allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.`,
	}
	BRDEC6 = Rule{
		Code:        "BR-DEC-06",
		Fields:      []string{"BT-100"},
		Description: `The allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.`,
	}
	BRDEC9 = Rule{
		Code:        "BR-DEC-09",
		Fields:      []string{"BT-106"},
		Description: `The allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.`,
	}
	BRDEC10 = Rule{
		Code:        "BR-DEC-10",
		Fields:      []string{"BT-107"},
		Description: `The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.`,
	}
	BRDEC11 = Rule{
		Code:        "BR-DEC-11",
		Fields:      []string{"BT-108"},
		Description: `The allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.`,
	}
	BRDEC12 = Rule{
		Code:        "BR-DEC-12",
		Fields:      []string{"BT-109"},
		Description: `The allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.`,
	}
	BRDEC13 = Rule{
		Code:        "BR-DEC-13",
		Fields:      []string{"BT-110"},
		Description: `The allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.`,
	}
	BRDEC14 = Rule{
		Code:        "BR-DEC-14",
		Fields:      []string{"BT-112"},
		Description: `The allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.`,
	}
	BRDEC15 = Rule{
		Code:        "BR-DEC-15",
		Fields:      []string{"BT-111"},
		Description: `The allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.`,
	}
	BRDEC16 = Rule{
		Code:        "BR-DEC-16",
		Fields:      []string{"BT-113"},
		Description: `The allowed maximum number of decimals for the Paid amount (BT-113) is 2.`,
	}
	BRDEC17 = Rule{
		Code:        "BR-DEC-17",
		Fields:      []string{"BT-114"},
		Description: `The allowed maximum number of decimals for the Rounding amount (BT-114) is 2.`,
	}
	BRDEC18 = Rule{
		Code:        "BR-DEC-18",
		Fields:      []string{"BT-115"},
		Description: `The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.`,
	}
	BRDEC19 = Rule{
		Code:        "BR-DEC-19",
		Fields:      []string{"BT-116"},
		Description: `The allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.`,
	}
	BRDEC20 = Rule{
		Code:        "BR-DEC-20",
		Fields:      []string{"BT-117"},
		Description: `The allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.`,
	}
	BRDEC23 = Rule{
		Code:        "BR-DEC-23",
		Fields:      []string{"BT-131"},
		Description: `The allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.`,
	}
	BRDEC24 = Rule{
		Code:        "BR-DEC-24",
		Fields:      []string{"BT-136"},
		Description: `The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.`,
	}
	BRDEC25 = Rule{
		Code:        "BR-DEC-25",
		Fields:      []string{"BT-137"},
		Description: `The allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.`,
	}
	BRDEC27 = Rule{
		Code:        "BR-DEC-27",
		Fields:      []string{"BT-141"},
		Description: `The allowed maximum number of decimals for the Invoice line charge amount (BT-141) is 2.`,
	}
	BRDEC28 = Rule{
		Code:        "BR-DEC-28",
		Fields:      []string{"BT-142"},
		Description: `The allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.`,
	}
	BRE1 = Rule{
		Code:        "BR-E-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Exempt from VAT" shall contain exactly one VAT breakdown (BG-23) with the VAT category code (BT-118) equal to "Exempt from VAT".`,
	}
	BRE2 = Rule{
		Code:        "BR-E-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRE3 = Rule{
		Code:        "BR-E-03",
		Fields:      []string{"BG-20", "BT-31", "BT-32", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRE4 = Rule{
		Code:        "BR-E-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRE5 = Rule{
		Code:        "BR-E-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Exempt from VAT", the Invoiced item VAT rate (BT-152) shall be 0 (zero).`,
	}
	BRE6 = Rule{
		Code:        "BR-E-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Exempt from VAT", the Document level allowance VAT rate (BT-96) shall be 0 (zero).`,
	}
	BRE7 = Rule{
		Code:        "BR-E-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Exempt from VAT", the Document level charge VAT rate (BT-103) shall be 0 (zero).`,
	}
	BRE8 = Rule{
		Code:        "BR-E-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-131", "BT-92", "BT-99"},
		Description: `In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Exempt from VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Exempt from VAT".`,
	}
	BRE9 = Rule{
		Code:        "BR-E-09",
		Fields:      []string{"BG-23", "BT-117", "BT-118"},
		Description: `The VAT category tax amount (BT-117) In a VAT breakdown (BG-23) where the VAT category code (BT-118) equals "Exempt from VAT" shall equal 0 (zero).`,
	}
	BRE10 = Rule{
		Code:        "BR-E-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120).`,
	}
	BRG1 = Rule{
		Code:        "BR-G-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Export outside the EU" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Export outside the EU".`,
	}
	BRG2 = Rule{
		Code:        "BR-G-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRG3 = Rule{
		Code:        "BR-G-03",
		Fields:      []string{"BG-20", "BT-31", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRG4 = Rule{
		Code:        "BR-G-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRG5 = Rule{
		Code:        "BR-G-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Export outside the EU" the Invoiced item VAT rate (BT-152) shall be 0 (zero).`,
	}
	BRG6 = Rule{
		Code:        "BR-G-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Export outside the EU" the Document level allowance VAT rate (BT-96) shall be 0 (zero).`,
	}
	BRG7 = Rule{
		Code:        "BR-G-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Export outside the EU" the Document level charge VAT rate (BT-103) shall be 0 (zero).`,
	}
	BRG8 = Rule{
		Code:        "BR-G-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-131", "BT-92", "BT-99"},
		Description: `In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Export outside the EU".`,
	}
	BRG9 = Rule{
		Code:        "BR-G-09",
		Fields:      []string{"BG-23", "BT-117", "BT-118"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Export outside the EU" shall be 0 (zero).`,
	}
	BRG10 = Rule{
		Code:        "BR-G-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Export outside the EU" shall have a VAT exemption reason code (BT-121), meaning "Export outside the EU" or the VAT exemption reason text (BT-120) "Export outside the EU" (or the equivalent standard text in another language).`,
	}
	BRIC1 = Rule{
		Code:        "BR-IC-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Intra-community supply" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Intra-community supply".`,
	}
	BRIC2 = Rule{
		Code:        "BR-IC-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-48", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).`,
	}
	BRIC3 = Rule{
		Code:        "BR-IC-03",
		Fields:      []string{"BG-20", "BT-31", "BT-48", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).`,
	}
	BRIC4 = Rule{
		Code:        "BR-IC-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-48", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" shall contain the Seller VAT Identifier (BT-31) or the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48).`,
	}
	BRIC5 = Rule{
		Code:        "BR-IC-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Intracommunity supply" the Invoiced item VAT rate (BT-152) shall be 0 (zero).`,
	}
	BRIC6 = Rule{
		Code:        "BR-IC-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Intra-community supply" the Document level allowance VAT rate (BT-96) shall be 0 (zero).`,
	}
	BRIC7 = Rule{
		Code:        "BR-IC-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Intra-community supply" the Document level charge VAT rate (BT-103) shall be 0 (zero).`,
	}
	BRIC8 = Rule{
		Code:        "BR-IC-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-131", "BT-92", "BT-99"},
		Description: `In a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Intra-community supply".`,
	}
	BRIC9 = Rule{
		Code:        "BR-IC-09",
		Fields:      []string{"BG-23", "BT-117", "BT-118"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" shall be 0 (zero).`,
	}
	BRIC10 = Rule{
		Code:        "BR-IC-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with the VAT Category code (BT-118) "Intra-community supply" shall have a VAT exemption reason code (BT-121), meaning "Intra-community supply" or the VAT exemption reason text (BT-120) "Intra-community supply" (or the equivalent standard text in another language).`,
	}
	BRIC11 = Rule{
		Code:        "BR-IC-11",
		Fields:      []string{"BG-14", "BG-23", "BT-118", "BT-72"},
		Description: `In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Actual delivery date (BT-72) or the Invoicing period (BG-14) shall not be blank.`,
	}
	BRIC12 = Rule{
		Code:        "BR-IC-12",
		Fields:      []string{"BG-23", "BT-118", "BT-80"},
		Description: `In an Invoice with a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Intra-community supply" the Deliver to country code (BT-80) shall not be blank.`,
	}
	BRO1 = Rule{
		Code:        "BR-O-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".`,
	}
	BRO2 = Rule{
		Code:        "BR-O-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-48", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).`,
	}
	BRO3 = Rule{
		Code:        "BR-O-03",
		Fields:      []string{"BG-20", "BT-31", "BT-48", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).`,
	}
	BRO4 = Rule{
		Code:        "BR-O-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-48", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Not subject to VAT" shall not contain the Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) or the Buyer VAT identifier (BT-48).`,
	}
	BRO5 = Rule{
		Code:        "BR-O-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `An Invoice line (BG-25) where the VAT category code (BT-151) is "Not subject to VAT" shall not contain an Invoiced item VAT rate (BT-152).`,
	}
	BRO6 = Rule{
		Code:        "BR-O-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `A Document level allowance (BG-20) where VAT category code (BT-95) is "Not subject to VAT" shall not contain a Document level allowance VAT rate (BT-96).`,
	}
	BRO7 = Rule{
		Code:        "BR-O-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `A Document level charge (BG-21) where the VAT category code (BT-102) is "Not subject to VAT" shall not contain a Document level charge VAT rate (BT-103).`,
	}
	BRO8 = Rule{
		Code:        "BR-O-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-131", "BT-92", "BT-99"},
		Description: `In a VAT breakdown (BG-23) where the VAT category code (BT-118) is " Not subject to VAT" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Not subject to VAT".`,
	}
	BRO9 = Rule{
		Code:        "BR-O-09",
		Fields:      []string{"BG-23", "BT-117", "BT-118"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).`,
	}
	BRO10 = Rule{
		Code:        "BR-O-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) " Not subject to VAT" shall have a VAT exemption reason code (BT-121), meaning " Not subject to VAT" or a VAT exemption reason text (BT-120) " Not subject to VAT" (or the equivalent standard text in another language).`,
	}
	BRO11 = Rule{
		Code:        "BR-O-11",
		Fields:      []string{"BG-23", "BT-118"},
		Description: `An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain other VAT breakdown groups (BG-23).`,
	}
	BRO12 = Rule{
		Code:        "BR-O-12",
		Fields:      []string{"BG-23", "BG-25", "BT-118", "BT-151"},
		Description: `An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is not "Not subject to VAT".`,
	}
	BRO13 = Rule{
		Code:        "BR-O-13",
		Fields:      []string{"BG-20", "BG-23", "BT-118", "BT-95"},
		Description: `An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level allowances (BG-20) where Document level allowance VAT category code (BT-95) is not "Not subject to VAT".`,
	}
	BRO14 = Rule{
		Code:        "BR-O-14",
		Fields:      []string{"BG-21", "BG-23", "BT-102", "BT-118"},
		Description: `An Invoice that contains a VAT breakdown group (BG-23) with a VAT category code (BT-118) "Not subject to VAT" shall not contain Document level charges (BG-21) where Document level charge VAT category code (BT-102) is not "Not subject to VAT".`,
	}
	BRS1 = Rule{
		Code:        "BR-S-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Standard rated" shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with "Standard rated".`,
	}
	BRS2 = Rule{
		Code:        "BR-S-02",
		Fields:      []string{"BG-25", "BT-151", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRS3 = Rule{
		Code:        "BR-S-03",
		Fields:      []string{"BG-20", "BT-31", "BT-32", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRS4 = Rule{
		Code:        "BR-S-04",
		Fields:      []string{"BG-21", "BT-102", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRS5 = Rule{
		Code:        "BR-S-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Standard rated" the Invoiced item VAT rate (BT-152) shall be greater than zero.`,
	}
	BRS6 = Rule{
		Code:        "BR-S-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Standard rated" the Document level allowance VAT rate (BT-96) shall be greater than zero.`,
	}
	BRS7 = Rule{
		Code:        "BR-S-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Standard rated" the Document level charge VAT rate (BT-103) shall be greater than zero.`,
	}
	BRS8 = Rule{
		Code:        "BR-S-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-119", "BT-131", "BT-92", "BT-99"},
		Description: `For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is "Standard rated", the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is "Standard rated" and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).`,
	}
	BRS9 = Rule{
		Code:        "BR-S-09",
		Fields:      []string{"BG-23", "BT-116", "BT-117", "BT-118", "BT-119"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).`,
	}
	BRS10 = Rule{
		Code:        "BR-S-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Standard rate" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).`,
	}
	BRZ1 = Rule{
		Code:        "BR-Z-01",
		Fields:      []string{"BG-20", "BG-21", "BG-23", "BG-25", "BT-118"},
		Description: `An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Zero rated" shall contain in the VAT breakdown (BG-23) exactly one VAT category code (BT-118) equal with "Zero rated".`,
	}
	BRZ2 = Rule{
		Code:        "BR-Z-02",
		Fields:      []string{"BT-151", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains an Invoice line where the Invoiced item VAT category code (BT-151) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRZ3 = Rule{
		Code:        "BR-Z-03",
		Fields:      []string{"BG-20", "BT-31", "BT-32", "BT-63", "BT-95"},
		Description: `An Invoice that contains a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRZ4 = Rule{
		Code:        "BR-Z-04",
		Fields:      []string{"BT-102", "BT-31", "BT-32", "BT-63"},
		Description: `An Invoice that contains a Document level charge where the Document level charge VAT category code (BT-102) is "Zero rated" shall contain the Seller VAT Identifier (BT-31), the Seller tax registration identifier (BT-32) and/or the Seller tax representative VAT identifier (BT-63).`,
	}
	BRZ5 = Rule{
		Code:        "BR-Z-05",
		Fields:      []string{"BG-25", "BT-151", "BT-152"},
		Description: `In an Invoice line (BG-25) where the Invoiced item VAT category code (BT-151) is "Zero rated" the Invoiced item VAT rate (BT-152) shall be 0 (zero).`,
	}
	BRZ6 = Rule{
		Code:        "BR-Z-06",
		Fields:      []string{"BG-20", "BT-95", "BT-96"},
		Description: `In a Document level allowance (BG-20) where the Document level allowance VAT category code (BT-95) is "Zero rated" the Document level allowance VAT rate (BT-96) shall be 0 (zero).`,
	}
	BRZ7 = Rule{
		Code:        "BR-Z-07",
		Fields:      []string{"BG-21", "BT-102", "BT-103"},
		Description: `In a Document level charge (BG-21) where the Document level charge VAT category code (BT-102) is "Zero rated" the Document level charge VAT rate (BT-103) shall be 0 (zero).`,
	}
	BRZ8 = Rule{
		Code:        "BR-Z-08",
		Fields:      []string{"BG-23", "BT-116", "BT-118", "BT-131", "BT-92", "BT-99"},
		Description: `In a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amount (BT-131) minus the sum of Document level allowance amounts (BT-92) plus the sum of Document level charge amounts (BT-99) where the VAT category codes (BT-151, BT-95, BT-102) are "Zero rated".`,
	}
	BRZ9 = Rule{
		Code:        "BR-Z-09",
		Fields:      []string{"BG-23", "BT-117", "BT-118"},
		Description: `The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Zero rated" shall equal 0 (zero).`,
	}
	BRZ10 = Rule{
		Code:        "BR-Z-10",
		Fields:      []string{"BG-23", "BT-118", "BT-120", "BT-121"},
		Description: `A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Zero rated" shall not have a VAT exemption reason code (BT-121) or VAT exemption reason text (BT-120).`,
	}
)
View Source
var (
	DKR2 = Rule{
		Code:        "DK-R-002",
		Fields:      nil,
		Description: `Danish suppliers MUST provide legal entity.`,
	}
	DKR3 = Rule{
		Code:        "DK-R-003",
		Fields:      nil,
		Description: `If ItemClassification is provided from Danish suppliers, UNSPSC version 19.05.01 or 26.08.01 should be used`,
	}
	DKR4 = Rule{
		Code:        "DK-R-004",
		Fields:      nil,
		Description: `When specifying non-VAT Taxes for Danish customers, Danish suppliers MUST use the AllowanceChargeReasonCode="ZZZ" and MUST be specified in AllowanceChargeReason; Either as the 4-digit Tax category or must include a #, but the # is not allowed as first and last character`,
	}
	DKR5 = Rule{
		Code:        "DK-R-005",
		Fields:      nil,
		Description: `For Danish suppliers the following Payment means type codes are allowed: 1, 10, 31, 42, 48, 49, 50, 58, 59, 93 and 97`,
	}
	DKR6 = Rule{
		Code:        "DK-R-006",
		Fields:      nil,
		Description: `For Danish suppliers, bank account and registration account are mandatory if payment means is 31 or 42`,
	}
	DKR7 = Rule{
		Code:        "DK-R-007",
		Fields:      nil,
		Description: `For Danish suppliers DirectDebitMandateID and CreditorReferenceID are mandatory when payment means is 49`,
	}
	DKR8 = Rule{
		Code:        "DK-R-008",
		Fields:      nil,
		Description: `For Danish Suppliers PaymentReference is mandatory and MUST start with 01#, 04# or 15# (kortartkode), and PayeePartyCreditorFinancialAccount/IBANID (Giro kontonummer) is mandatory and must be 7 characters long, when payment means equals 50 (Giro)`,
	}
	DKR9 = Rule{
		Code:        "DK-R-009",
		Fields:      nil,
		Description: `For Danish Suppliers if the PaymentReference is prefixed with 04# or 015# the 16 digits instruction Id must be added to the PaymentReference eg. "04#1234567890123456" when Payment means equals 50 (Giro)`,
	}
	DKR10 = Rule{
		Code:        "DK-R-010",
		Fields:      nil,
		Description: `For Danish Suppliers the PaymentReference is mandatory and MUST start with 71#, 73# or 75# (kortartkode) and and PayeePartyCreditorFinancialAccount/IBANID (Kreditornummer) is mandatory and must be exactly 8 characters long, when Payment means equals 93 (FIK)`,
	}
	DKR11 = Rule{
		Code:        "DK-R-011",
		Fields:      nil,
		Description: `For Danish Suppliers if the PaymentReference is prefixed with 71# or 75# the 15-16 digits instruction Id must be added to the PaymentReference eg. "71#1234567890123456" when payment Method equals 93 (FIK)`,
	}
	DKR13 = Rule{
		Code:        "DK-R-013",
		Fields:      nil,
		Description: `For Danish Suppliers it is mandatory to use schemeID when GlobalID is used for SellerTradeParty or BuyerTradeParty`,
	}
	DKR14 = Rule{
		Code:        "DK-R-014",
		Fields:      nil,
		Description: `For Danish Suppliers it is mandatory to specify schemeID as "0184" when SpecifiedLegalOrganization is used for SellerTradeParty`,
	}
	DKR16 = Rule{
		Code:        "DK-R-016",
		Fields:      nil,
		Description: `For Danish Suppliers, a Credit note cannot have a negative total (DuePayableAmount)`,
	}
	ITR1 = Rule{
		Code:        "IT-R-001",
		Fields:      nil,
		Description: `[IT-R-001] BT-32 (Seller tax registration identifier) - For Italian suppliers BT-32 minimum length 11 and maximum length shall be 16. Per i fornitori italiani il BT-32 deve avere una lunghezza tra 11 e 16 caratteri`,
	}
	ITR2 = Rule{
		Code:        "IT-R-002",
		Fields:      nil,
		Description: `[IT-R-002] BT-35 (Seller address line 1) - Italian suppliers MUST provide the postal address line 1 - I fornitori italiani devono indicare l'indirizzo postale.`,
	}
	ITR3 = Rule{
		Code:        "IT-R-003",
		Fields:      nil,
		Description: `[IT-R-003] BT-37 (Seller city) - Italian suppliers MUST provide the postal address city - I fornitori italiani devono indicare la città di residenza.`,
	}
	ITR4 = Rule{
		Code:        "IT-R-004",
		Fields:      nil,
		Description: `[IT-R-004] BT-38 (Seller post code) - Italian suppliers MUST provide the postal address post code - I fornitori italiani devono indicare il CAP di residenza.`,
	}
	NLR1 = Rule{
		Code:        "NL-R-001",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, if the document is a creditnote, the document MUST contain an invoice reference (ram:ApplicableHeaderTradeSettlement/ram:InvoiceReferencedDocument/ram:IssuerAssignedID)`,
	}
	NLR2 = Rule{
		Code:        "NL-R-002",
		Fields:      nil,
		Description: `For suppliers in the Netherlands the supplier's address (ram:SellerTradeParty/ram:PostalTradeAddress) MUST contain street name (ram:LineOne), city (ram:CityName) and post code (ram:PostcodeCode)`,
	}
	NLR3 = Rule{
		Code:        "NL-R-003",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, the legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)`,
	}
	NLR4 = Rule{
		Code:        "NL-R-004",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, if the customer is in the Netherlands, the customer address (ram:BuyerTradeParty/ram:PostalTradeAddress) MUST contain street name (ram:LineOne), city (ram:CityName) and post code (ram:PostcodeCode)`,
	}
	NLR5 = Rule{
		Code:        "NL-R-005",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, if the customer is in the Netherlands, the customer's legal entity identifier MUST be either a KVK or OIN number (schemeID 0106 or 0190)`,
	}
	NLR6 = Rule{
		Code:        "NL-R-006",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, if the fiscal representative is in the Netherlands, the representative's address (ram:SellerTaxRepresentativeTradeParty/ram:PostalTradeAddress) MUST contain street name (ram:LineOne), city (ram:CityName) and post code (ram:PostcodeCode)`,
	}
	NLR7 = Rule{
		Code:        "NL-R-007",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, the supplier MUST provide a means of payment (ram:SpecifiedTradeSettlementPaymentMeans) if the payment is from customer to supplier`,
	}
	NLR8 = Rule{
		Code:        "NL-R-008",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, if the customer is in the Netherlands, the payment means code (ram:SpecifiedTradeSettlementPaymentMeans/ram:TypeCode) MUST be one of 30, 48, 49, 57, 58 or 59`,
	}
	NLR9 = Rule{
		Code:        "NL-R-009",
		Fields:      nil,
		Description: `For suppliers in the Netherlands, if an order line reference (ram:BuyerOrderReferencedDocument/ram:LineID) is used, there must be an order reference on the document level (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ram:BuyerOrderReferencedDocument/ram:IssuerAssignedID)`,
	}
	NOR1 = Rule{
		Code:        "NO-R-001",
		Fields:      nil,
		Description: `For Norwegian suppliers, a VAT number MUST be the country code prefix NO followed by a valid Norwegian organization number (nine numbers) followed by the letters MVA.`,
	}
	NOR2 = Rule{
		Code:        "NO-R-002",
		Fields:      nil,
		Description: `Most invoice issuers are required to append "Foretaksregisteret" to their invoice. "Dersom selger er aksjeselskap, allmennaksjeselskap eller filial av utenlandsk selskap skal også ordet «Foretaksregisteret» fremgå av salgsdokumentet, jf. foretaksregisterloven § 10-2."`,
	}
	PEPPOLCOMMONR40 = Rule{
		Code:        "PEPPOL-COMMON-R040",
		Fields:      nil,
		Description: `GLN must have a valid format according to GS1 rules.`,
	}
	PEPPOLCOMMONR41 = Rule{
		Code:        "PEPPOL-COMMON-R041",
		Fields:      nil,
		Description: `Norwegian organization number MUST be stated in the correct format.`,
	}
	PEPPOLCOMMONR42 = Rule{
		Code:        "PEPPOL-COMMON-R042",
		Fields:      nil,
		Description: `Danish organization number (CVR) MUST be stated in the correct format.`,
	}
	PEPPOLCOMMONR43 = Rule{
		Code:        "PEPPOL-COMMON-R043",
		Fields:      nil,
		Description: `Belgian enterprise number MUST be stated in the correct format.`,
	}
	PEPPOLCOMMONR44 = Rule{
		Code:        "PEPPOL-COMMON-R044",
		Fields:      nil,
		Description: `IPA Code (Codice Univoco Unità Organizzativa) must be stated in the correct format`,
	}
	PEPPOLCOMMONR45 = Rule{
		Code:        "PEPPOL-COMMON-R045",
		Fields:      nil,
		Description: `Tax Code (Codice Fiscale) must be stated in the correct format`,
	}
	PEPPOLCOMMONR46 = Rule{
		Code:        "PEPPOL-COMMON-R046",
		Fields:      nil,
		Description: `Tax Code (Codice Fiscale) must be stated in the correct format`,
	}
	PEPPOLCOMMONR47 = Rule{
		Code:        "PEPPOL-COMMON-R047",
		Fields:      nil,
		Description: `Italian VAT Code (Partita Iva) must be stated in the correct format`,
	}
	PEPPOLCOMMONR48 = Rule{
		Code:        "PEPPOL-COMMON-R048",
		Fields:      nil,
		Description: `Italian VAT Code (Partita Iva) must be stated in the correct format`,
	}
	PEPPOLCOMMONR49 = Rule{
		Code:        "PEPPOL-COMMON-R049",
		Fields:      nil,
		Description: `Swedish organization number MUST be stated in the correct format.`,
	}
	PEPPOLCOMMONR50 = Rule{
		Code:        "PEPPOL-COMMON-R050",
		Fields:      nil,
		Description: `Australian Business Number (ABN) MUST be stated in the correct format.`,
	}
	PEPPOLEN16931CL1 = Rule{
		Code:        "PEPPOL-EN16931-CL001",
		Fields:      nil,
		Description: `Mime code must be according to subset of IANA code list.`,
	}
	PEPPOLEN16931CL2 = Rule{
		Code:        "PEPPOL-EN16931-CL002",
		Fields:      nil,
		Description: `Reason code MUST be according to subset of UNCL 5189 D.16B.`,
	}
	PEPPOLEN16931CL3 = Rule{
		Code:        "PEPPOL-EN16931-CL003",
		Fields:      nil,
		Description: `Reason code MUST be according to UNCL 7161 D.16B.`,
	}
	PEPPOLEN16931CL7 = Rule{
		Code:        "PEPPOL-EN16931-CL007",
		Fields:      nil,
		Description: `Currency code must be according to ISO 4217:2005`,
	}
	PEPPOLEN16931CL8 = Rule{
		Code:        "PEPPOL-EN16931-CL008",
		Fields:      nil,
		Description: `Electronic address identifier scheme must be from the codelist "Electronic Address Identifier Scheme"`,
	}
	PEPPOLEN16931F1 = Rule{
		Code:        "PEPPOL-EN16931-F001",
		Fields:      nil,
		Description: `A date MUST be formatted YYYYMMDD.`,
	}
	PEPPOLEN16931P100 = Rule{
		Code:        "PEPPOL-EN16931-P0100",
		Fields:      nil,
		Description: `Invoice type code MUST be set according to the profile.`,
	}
	PEPPOLEN16931R1 = Rule{
		Code:        "PEPPOL-EN16931-R001",
		Fields:      nil,
		Description: `Business process MUST be provided.`,
	}
	PEPPOLEN16931R2 = Rule{
		Code:        "PEPPOL-EN16931-R002",
		Fields:      nil,
		Description: `No more than one note is allowed on document level.`,
	}
	PEPPOLEN16931R3 = Rule{
		Code:        "PEPPOL-EN16931-R003",
		Fields:      nil,
		Description: `A buyer reference or purchase order reference MUST be provided.`,
	}
	PEPPOLEN16931R4 = Rule{
		Code:        "PEPPOL-EN16931-R004",
		Fields:      nil,
		Description: `Specification identifier MUST have the value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0'.`,
	}
	PEPPOLEN16931R5 = Rule{
		Code:        "PEPPOL-EN16931-R005",
		Fields:      nil,
		Description: `VAT accounting currency code MUST be different from invoice currency code when provided.`,
	}
	PEPPOLEN16931R6 = Rule{
		Code:        "PEPPOL-EN16931-R006",
		Fields:      nil,
		Description: `Only one invoiced object is allowed on document level`,
	}
	PEPPOLEN16931R7 = Rule{
		Code:        "PEPPOL-EN16931-R007",
		Fields:      nil,
		Description: `Business process MUST be in the format 'urn:fdc:peppol.eu:2017:poacc:billing:NN:1.0' where NN indicates the process number.`,
	}
	PEPPOLEN16931R10 = Rule{
		Code:        "PEPPOL-EN16931-R010",
		Fields:      nil,
		Description: `Buyer electronic address MUST be provided`,
	}
	PEPPOLEN16931R20 = Rule{
		Code:        "PEPPOL-EN16931-R020",
		Fields:      nil,
		Description: `Seller electronic address MUST be provided`,
	}
	PEPPOLEN16931R40 = Rule{
		Code:        "PEPPOL-EN16931-R040",
		Fields:      nil,
		Description: `Allowance/charge amount must equal base amount * percentage/100 if base amount and percentage exists`,
	}
	PEPPOLEN16931R41 = Rule{
		Code:        "PEPPOL-EN16931-R041",
		Fields:      nil,
		Description: `Allowance/charge base amount MUST be provided when allowance/charge percentage is provided.`,
	}
	PEPPOLEN16931R42 = Rule{
		Code:        "PEPPOL-EN16931-R042",
		Fields:      nil,
		Description: `Allowance/charge percentage MUST be provided when allowance/charge base amount is provided.`,
	}
	PEPPOLEN16931R43 = Rule{
		Code:        "PEPPOL-EN16931-R043",
		Fields:      nil,
		Description: `Allowance/charge ChargeIndicator value MUST equal 'true' or 'false'`,
	}
	PEPPOLEN16931R53 = Rule{
		Code:        "PEPPOL-EN16931-R053",
		Fields:      nil,
		Description: `Only one tax total with tax subtotals MUST be provided.`,
	}
	PEPPOLEN16931R54 = Rule{
		Code:        "PEPPOL-EN16931-R054",
		Fields:      nil,
		Description: `Only one tax total without tax subtotals MUST be provided when tax currency code is provided.`,
	}
	PEPPOLEN16931R55 = Rule{
		Code:        "PEPPOL-EN16931-R055",
		Fields:      nil,
		Description: `Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign`,
	}
	PEPPOLEN16931R61 = Rule{
		Code:        "PEPPOL-EN16931-R061",
		Fields:      nil,
		Description: `Mandate reference MUST be provided for direct debit.`,
	}
	PEPPOLEN16931R80 = Rule{
		Code:        "PEPPOL-EN16931-R080",
		Fields:      nil,
		Description: `Only one project reference is allowed on document level`,
	}
	PEPPOLEN16931R100 = Rule{
		Code:        "PEPPOL-EN16931-R100",
		Fields:      nil,
		Description: `Only one invoiced object is allowed pr line`,
	}
	PEPPOLEN16931R101 = Rule{
		Code:        "PEPPOL-EN16931-R101",
		Fields:      nil,
		Description: `Element Document reference can only be used for Invoice line object`,
	}
	PEPPOLEN16931R110 = Rule{
		Code:        "PEPPOL-EN16931-R110",
		Fields:      nil,
		Description: `Start date of line period MUST be within invoice period.`,
	}
	PEPPOLEN16931R111 = Rule{
		Code:        "PEPPOL-EN16931-R111",
		Fields:      nil,
		Description: `End date of line period MUST be within invoice period.`,
	}
	PEPPOLEN16931R120 = Rule{
		Code:        "PEPPOL-EN16931-R120",
		Fields:      nil,
		Description: `Invoice line net amount MUST equal (Invoiced quantity * (Item net price/item price base quantity) + Sum of invoice line charge amount - sum of invoice line allowance amount`,
	}
	PEPPOLEN16931R121 = Rule{
		Code:        "PEPPOL-EN16931-R121",
		Fields:      nil,
		Description: `Base quantity MUST be a positive number above zero.`,
	}
	PEPPOLEN16931R130 = Rule{
		Code:        "PEPPOL-EN16931-R130",
		Fields:      nil,
		Description: `Unit code of price base quantity MUST be same as invoiced quantity.`,
	}
	SER1 = Rule{
		Code:        "SE-R-001",
		Fields:      nil,
		Description: `For Swedish suppliers, Swedish VAT-numbers must consist of 14 characters.`,
	}
	SER2 = Rule{
		Code:        "SE-R-002",
		Fields:      nil,
		Description: `For Swedish suppliers, the Swedish VAT-numbers must have the trailing 12 characters in numeric form`,
	}
	SER3 = Rule{
		Code:        "SE-R-003",
		Fields:      nil,
		Description: `Swedish organisation numbers should be numeric.`,
	}
	SER4 = Rule{
		Code:        "SE-R-004",
		Fields:      nil,
		Description: `Swedish organisation numbers consist of 10 characters.`,
	}
	SER5 = Rule{
		Code:        "SE-R-005",
		Fields:      nil,
		Description: `For Swedish suppliers, when using Seller tax registration identifier, 'Godkänd för F-skatt' must be stated`,
	}
	SER6 = Rule{
		Code:        "SE-R-006",
		Fields:      nil,
		Description: `For Swedish suppliers, only standard VAT rate of 6, 12 or 25 are used`,
	}
	SER7 = Rule{
		Code:        "SE-R-007",
		Fields:      nil,
		Description: `For Swedish suppliers using Plusgiro, the Account ID must be numeric`,
	}
	SER8 = Rule{
		Code:        "SE-R-008",
		Fields:      nil,
		Description: `For Swedish suppliers using Bankgiro, the Account ID must be numeric`,
	}
	SER9 = Rule{
		Code:        "SE-R-009",
		Fields:      nil,
		Description: `For Swedish suppliers using Bankgiro, the Account ID must have 7-8 characters`,
	}
	SER10 = Rule{
		Code:        "SE-R-010",
		Fields:      nil,
		Description: `For Swedish suppliers using Plusgiro, the Account ID must have 2-8 characters`,
	}
	SER11 = Rule{
		Code:        "SE-R-011",
		Fields:      nil,
		Description: `For Swedish suppliers using Swedish Bankgiro or Plusgiro, the proper way to indicate this is to use Code 30 for PaymentMeans and FinancialInstitutionBranch ID with code SE:BANKGIRO or SE:PLUSGIRO`,
	}
	SER12 = Rule{
		Code:        "SE-R-012",
		Fields:      nil,
		Description: `For domestic transactions between Swedish trading partners, credit transfer should be indicated by PaymentMeansCode=”30”`,
	}
	SER13 = Rule{
		Code:        "SE-R-013",
		Fields:      nil,
		Description: `The last digit of a Swedish organization number must be valid according to the Luhn algorithm.`,
	}
)
View Source
var (
	BRDE1 = Rule{
		Code:        "BR-DE-1",
		Fields:      []string{"BG-16"},
		Description: `Eine Rechnung (INVOICE) muss Angaben zu "PAYMENT INSTRUCTIONS" (BG-16) enthalten.`,
	}
	BRDE10 = Rule{
		Code:        "BR-DE-10",
		Fields:      []string{"BG-15", "BT-77"},
		Description: `Das Element "Deliver to city" (BT-77) muss übermittelt werden, wenn die Gruppe "DELIVER TO ADDRESS" (BG-15) übermittelt wird.`,
	}
	BRDE11 = Rule{
		Code:        "BR-DE-11",
		Fields:      []string{"BG-15", "BT-78"},
		Description: `Das Element "Deliver to post code" (BT-78) muss übermittelt werden, wenn die Gruppe "DELIVER TO ADDRESS" (BG-15) übermittelt wird.`,
	}
	BRDE14 = Rule{
		Code:        "BR-DE-14",
		Fields:      []string{"BT-119"},
		Description: `Das Element "VAT category rate" (BT-119) muss übermittelt werden.`,
	}
	BRDE15 = Rule{
		Code:        "BR-DE-15",
		Fields:      []string{"BT-10"},
		Description: `Das Element "Buyer reference" (BT-10) muss übermittelt werden.`,
	}
	BRDE16 = Rule{
		Code:        "BR-DE-16",
		Fields:      []string{"BG-11", "BT-31", "BT-32"},
		Description: `Wenn in einer Rechnung die Steuercodes S, Z, E, AE, K, G, L oder M verwendet werden, muss mindestens eines der Elemente "Seller VAT identifier" (BT-31), "Seller tax registration identifier" (BT-32) oder "SELLER TAX REPRESENTATIVE PARTY" (BG-11) übermittelt werden.`,
	}
	BRDE17 = Rule{
		Code:        "BR-DE-17",
		Fields:      []string{"BT-3"},
		Description: `Mit dem Element "Invoice type code" (BT-3) sollen ausschließlich folgende Codes aus der Codeliste UNTDID 1001 übermittelt werden: 326 (Partial invoice), 380 (Commercial invoice), 384 (Corrected invoice), 389 (Self-billed invoice) und 381 (Credit note),875 (Partial construction invoice), 876 (Partial final construction invoice), 877 (Final construction invoice).`,
	}
	BRDE18 = Rule{
		Code:        "BR-DE-18",
		Fields:      []string{"BT-20"},
		Description: `Skonto Zeilen in muessen diesem regulärem Ausdruck entsprechen: . Die Informationen zur Gewährung von Skonto müssen wie folgt im Element "Payment terms" (BT-20) übermittelt werden: Anzugeben ist im ersten Segment "SKONTO", im zweiten "TAGE=n", im dritten "PROZENT=n". Prozentzahlen sind ohne Vorzeichen sowie mit Punkt getrennt von zwei Nachkommastellen anzugeben. Liegt dem zu berechnenden Betrag nicht BT-115, "fälliger Betrag" zugrunde, sondern nur ein Teil des fälligen Betrags der Rechnung, ist der Grundwert zur Berechnung von Skonto als viertes Segment "BASISBETRAG=n" gemäß dem semantischen Datentypen Amount anzugeben. Jeder Eintrag beginnt mit einer #, die Segmente sind mit einer # getrennt und eine Zeile schließt mit einer # ab. Am Ende einer vollständigen Skontoangabe muss ein XML-konformer Zeilenumbruch folgen. Alle Angaben zur Gewährung von Skonto müssen in Großbuchstaben gemacht werden. Zusätzliches Whitespace (Leerzeichen, Tabulatoren oder Zeilenumbrüche) ist nicht zulässig. Andere Zeichen oder Texte als in den oberen Vorgaben genannt sind nicht zulässig.`,
	}
	BRDE19 = Rule{
		Code:        "BR-DE-19",
		Fields:      []string{"BT-81", "BT-84"},
		Description: `"Payment account identifier" (BT-84) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 58 SEPA als Zahlungsmittel gefordert wird.`,
	}
	BRDE2 = Rule{
		Code:        "BR-DE-2",
		Fields:      []string{"BG-6"},
		Description: `Die Gruppe "SELLER CONTACT" (BG-6) muss übermittelt werden.`,
	}
	BRDE20 = Rule{
		Code:        "BR-DE-20",
		Fields:      []string{"BT-81", "BT-91"},
		Description: `"Debited account identifier" (BT-91) soll eine korrekte IBAN enthalten, wenn in "Payment means type code" (BT-81) mit dem Code 59 SEPA als Zahlungsmittel gefordert wird.`,
	}
	BRDE21 = Rule{
		Code:        "BR-DE-21",
		Fields:      []string{"BT-24"},
		Description: `Das Element "Specification identifier" (BT-24) soll syntaktisch der Kennung des Standards XRechnung entsprechen.`,
	}
	BRDE22 = Rule{
		Code:        "BR-DE-22",
		Fields:      nil,
		Description: `Not all filename attributes of the embeddedDocumentBinaryObject elements are unique`,
	}
	BRDE23A = Rule{
		Code:        "BR-DE-23-a",
		Fields:      nil,
		Description: `Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), muss BG-17 "CREDIT TRANSFER" übermittelt werden.`,
	}
	BRDE23B = Rule{
		Code:        "BR-DE-23-b",
		Fields:      nil,
		Description: `Wenn BT-81 "Payment means type code" einen Schlüssel für Überweisungen enthält (30, 58), dürfen BG-18 und BG-19 nicht übermittelt werden.`,
	}
	BRDE24A = Rule{
		Code:        "BR-DE-24-a",
		Fields:      nil,
		Description: `Wenn BT-81 "Payment means type code" einen Schlüssel für Kartenzahlungen enthält (48, 54, 55), muss genau BG-18 "PAYMENT CARD INFORMATION" übermittelt werden.`,
	}
	BRDE24B = Rule{
		Code:        "BR-DE-24-b",
		Fields:      nil,
		Description: `Wenn BT-81 "Payment means type code" einen Schlüssel für Kartenzahlungen enthält (48, 54, 55), dürfen BG-17 und BG-19 nicht übermittelt werden.`,
	}
	BRDE25A = Rule{
		Code:        "BR-DE-25-a",
		Fields:      nil,
		Description: `Wenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), muss genau BG-19 "DIRECT DEBIT" übermittelt werden.`,
	}
	BRDE25B = Rule{
		Code:        "BR-DE-25-b",
		Fields:      nil,
		Description: `Wenn BT-81 "Payment means type code" einen Schlüssel für Lastschriften enthält (59), dürfen BG-17 und BG-18 nicht übermittelt werden.`,
	}
	BRDE26 = Rule{
		Code:        "BR-DE-26",
		Fields:      []string{"BT-3"},
		Description: `Wenn im Element Invoice type code (BT-3) der Code 384 (Corrected invoice) übergeben wird, soll PRECEDING INVOICE REFERENCE BG-3 mind. einmal vorhanden sein.`,
	}
	BRDE27 = Rule{
		Code:        "BR-DE-27",
		Fields:      nil,
		Description: `In BT-42 sollen mindestens drei Ziffern enthalten sein.`,
	}
	BRDE28 = Rule{
		Code:        "BR-DE-28",
		Fields:      nil,
		Description: `In BT-43 soll genau ein @-Zeichen enthalten sein, welches nicht von einem Leerzeichen, einem Punkt, aber mindestens zwei Zeichen auf beiden Seiten flankiert werden soll. Ein Punkt sollte nicht am Anfang oder am Ende stehen.`,
	}
	BRDE3 = Rule{
		Code:        "BR-DE-3",
		Fields:      []string{"BT-37"},
		Description: `Das Element "Seller city" (BT-37) muss übermittelt werden.`,
	}
	BRDE30 = Rule{
		Code:        "BR-DE-30",
		Fields:      nil,
		Description: `Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Bank assigned creditor identifier" BT-90 übermittelt werden.`,
	}
	BRDE31 = Rule{
		Code:        "BR-DE-31",
		Fields:      nil,
		Description: `Wenn "DIRECT DEBIT" BG-19 vorhanden ist, dann muss "Debited account identifier" BT-91 übermittelt werden.`,
	}
	BRDE4 = Rule{
		Code:        "BR-DE-4",
		Fields:      []string{"BT-38"},
		Description: `Das Element "Seller post code" (BT-38) muss übermittelt werden.`,
	}
	BRDE5 = Rule{
		Code:        "BR-DE-5",
		Fields:      []string{"BT-41"},
		Description: `Das Element "Seller contact point" (BT-41) muss übermittelt werden.`,
	}
	BRDE6 = Rule{
		Code:        "BR-DE-6",
		Fields:      []string{"BT-42"},
		Description: `Das Element "Seller contact telephone number" (BT-42) muss übermittelt werden.`,
	}
	BRDE7 = Rule{
		Code:        "BR-DE-7",
		Fields:      []string{"BT-43"},
		Description: `Das Element "Seller contact email address" (BT-43) muss übermittelt werden.`,
	}
	BRDE8 = Rule{
		Code:        "BR-DE-8",
		Fields:      []string{"BT-52"},
		Description: `Das Element "Buyer city" (BT-52) muss übermittelt werden.`,
	}
	BRDE9 = Rule{
		Code:        "BR-DE-9",
		Fields:      []string{"BT-53"},
		Description: `Das Element "Buyer post code" (BT-53) muss übermittelt werden.`,
	}
	BRDECVD1 = Rule{
		Code:        "BR-DE-CVD-01",
		Fields:      []string{"BT-12"},
		Description: `[BR-DE-CVD-01] Das Element "Contract reference" (BT-12) muss übermittelt werden.`,
	}
	BRDECVD2 = Rule{
		Code:        "BR-DE-CVD-02",
		Fields:      []string{"BT-17"},
		Description: `[BR-DE-CVD-02] Das Element "Tender or lot reference" (BT-17) muss übermittelt werden.`,
	}
	BRDECVD3 = Rule{
		Code:        "BR-DE-CVD-03",
		Fields:      []string{"BG-25", "BT-158", "BT-160"},
		Description: `[BR-DE-CVD-03] In einer Rechnung muss mindestens eine INVOICE LINE (BG-25) enthalten sein, in der der Scheme identifier von "Item classification identifier" (BT-158) den Wert 'CVD' und der "Item attribute name" (BT-160) den Wert 'cva' enthält.`,
	}
	BRDECVD4 = Rule{
		Code:        "BR-DE-CVD-04",
		Fields:      []string{"BT-158"},
		Description: `[BR-DE-CVD-04] Ein "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' muss einen Wert aus der Liste der zulässigen Fahrzeugkategorien enthalten.`,
	}
	BRDECVD5 = Rule{
		Code:        "BR-DE-CVD-05",
		Fields:      []string{"BG-32", "BT-160", "BT-161"},
		Description: `[BR-DE-CVD-05] Wenn innerhalb von ITEM ATTRIBUTES (BG-32) der "Item attribute name" (BT-160) den Wert 'cva' hat, muss der "Item attribute value" (BT-161) einen der zulässigen Werte enthalten.`,
	}
	BRDECVD6A = Rule{
		Code:        "BR-DE-CVD-06-a",
		Fields:      []string{"BT-158", "BT-160"},
		Description: `[BR-DE-CVD-06-a] Wenn der Scheme identifier von "Item classification identifier" (BT-158) mit dem Wert 'CVD' angegeben ist, muss in derselben Rechnungszeile genau ein "Item attribute name" (BT-160) mit dem Wert 'cva' vorhanden sein.`,
	}
	BRDECVD6B = Rule{
		Code:        "BR-DE-CVD-06-b",
		Fields:      []string{"BT-158", "BT-160"},
		Description: `[BR-DE-CVD-06-b] Wenn "Item attribute name" (BT-160) mit dem Wert 'cva' angegeben ist, muss in derselben Rechnungszeile genau ein "Item classification identifier" (BT-158) mit dem Scheme identifier 'CVD' vorhanden sein.`,
	}
	BRDETMP32 = Rule{
		Code:        "BR-DE-TMP-32",
		Fields:      nil,
		Description: `[BR-DE-TMP-32] Eine Rechnung sollte zur Angabe des Liefer-/Leistungsdatums entweder BT-72 "Actual delivery date", BG-14 "Invoicing period" oder in jeder Rechnungsposition BG-26 "Invoice line period" enthalten.`,
	}
	BRDEX1 = Rule{
		Code:        "BR-DEX-01",
		Fields:      []string{"BT-125"},
		Description: `Das Element "Attached Document" (BT-125) benutzt einen nicht zulässigen MIME-Code: . Im Falle einer Extension darf zusätzlich zu der Liste der mime codes (definiert in Abschnitt 8.2, "Binary Object") der MIME-Code application/xml genutzt werden.`,
	}
	BRDEX4 = Rule{
		Code:        "BR-DEX-04",
		Fields:      nil,
		Description: `Any scheme identifier in MUST be coded using one of the ISO 6523 ICD list.`,
	}
	BRDEX5 = Rule{
		Code:        "BR-DEX-05",
		Fields:      nil,
		Description: `Any scheme identifier in MUST be coded using one of the ISO 6523 ICD list.`,
	}
	BRDEX6 = Rule{
		Code:        "BR-DEX-06",
		Fields:      nil,
		Description: `Any scheme identifier in MUST be coded using one of the ISO 6523 ICD list.`,
	}
	BRDEX7 = Rule{
		Code:        "BR-DEX-07",
		Fields:      nil,
		Description: `Any scheme identifier for an Endpoint Identifier in MUST belong to the CEF EAS code list.`,
	}
	BRDEX8 = Rule{
		Code:        "BR-DEX-08",
		Fields:      nil,
		Description: `Any scheme identifier for a Delivery location identifier in MUST be coded using one of the ISO 6523 ICD list.`,
	}
	BRDEX15 = Rule{
		Code:        "BR-DEX-15",
		Fields:      nil,
		Description: `[BR-DEX-15] This CII file might use the concept of Sub Invoice Lines. However XRechnung does not support this.`,
	}
	BRTMP2 = Rule{
		Code:        "BR-TMP-2",
		Fields:      nil,
		Description: `BT-124 "External document location" muss eine absolute URL mit gültigem Schema enthalten.`,
	}
	BRTMP3 = Rule{
		Code:        "BR-TMP-3",
		Fields:      nil,
		Description: `If both elements to which BT-149 and BT-150 can be mapped are present, both must be equal.`,
	}
	BRTMPCVD1 = Rule{
		Code:        "BR-TMP-CVD-01",
		Fields:      []string{"BT-158"},
		Description: `[BR-TMP-CVD-01] Das Bildungsschema für "Item classification identifier" (BT-158) ist aus der Codeliste UNTDID 7143 zu wählen.`,
	}
)

Functions

This section is empty.

Types

type Rule

type Rule struct {
	Code        string   // EN 16931 rule code (e.g., "BR-01", "BR-S-08")
	Fields      []string // BT-/BG- identifiers from semantic model
	Description string   // Official specification requirement text
}

Rule represents a business rule from the EN 16931 specification. Each rule contains the official code, related field identifiers, and description.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL