@fin.cx/einvoice 10.0.1 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist_ts/00_commitinfo_data.js +1 -1
  2. package/dist_ts/einvoice.d.ts +2 -0
  3. package/dist_ts/einvoice.js +7 -13
  4. package/dist_ts/formats/cii/cii.decoder.d.ts +11 -3
  5. package/dist_ts/formats/cii/cii.decoder.js +27 -8
  6. package/dist_ts/formats/cii/cii.encoder.d.ts +12 -0
  7. package/dist_ts/formats/cii/cii.encoder.js +36 -1
  8. package/dist_ts/formats/cii/cii.types.js +2 -1
  9. package/dist_ts/formats/cii/facturx/facturx.encoder.js +12 -8
  10. package/dist_ts/formats/cii/zugferd/zugferd.encoder.js +12 -8
  11. package/dist_ts/formats/semantic/semantic.adapter.d.ts +0 -4
  12. package/dist_ts/formats/semantic/semantic.adapter.js +7 -18
  13. package/dist_ts/formats/ubl/generic/ubl.encoder.d.ts +6 -1
  14. package/dist_ts/formats/ubl/generic/ubl.encoder.js +40 -8
  15. package/dist_ts/formats/ubl/ubl.decoder.d.ts +11 -0
  16. package/dist_ts/formats/ubl/ubl.decoder.js +30 -1
  17. package/dist_ts/formats/ubl/xrechnung/xrechnung.decoder.js +3 -3
  18. package/dist_ts/formats/utils/delivery.address.d.ts +18 -0
  19. package/dist_ts/formats/utils/delivery.address.js +30 -0
  20. package/dist_ts/formats/utils/document.totals.d.ts +5 -4
  21. package/dist_ts/formats/utils/document.totals.js +24 -8
  22. package/dist_ts/formats/utils/stated.values.js +4 -2
  23. package/dist_ts/formats/utils/vat.category.d.ts +146 -55
  24. package/dist_ts/formats/utils/vat.category.js +357 -69
  25. package/dist_ts/formats/validation/vat-categories.validator.d.ts +14 -15
  26. package/dist_ts/formats/validation/vat-categories.validator.js +123 -85
  27. package/package.json +3 -3
  28. package/readme.md +55 -19
  29. package/ts/00_commitinfo_data.ts +1 -1
  30. package/ts/einvoice.ts +8 -14
  31. package/ts/formats/cii/cii.decoder.ts +28 -7
  32. package/ts/formats/cii/cii.encoder.ts +36 -0
  33. package/ts/formats/cii/cii.types.ts +1 -0
  34. package/ts/formats/cii/facturx/facturx.encoder.ts +12 -7
  35. package/ts/formats/cii/zugferd/zugferd.encoder.ts +12 -7
  36. package/ts/formats/semantic/semantic.adapter.ts +6 -15
  37. package/ts/formats/ubl/generic/ubl.encoder.ts +40 -7
  38. package/ts/formats/ubl/ubl.decoder.ts +31 -0
  39. package/ts/formats/ubl/xrechnung/xrechnung.decoder.ts +2 -2
  40. package/ts/formats/utils/delivery.address.ts +36 -0
  41. package/ts/formats/utils/document.totals.ts +38 -11
  42. package/ts/formats/utils/stated.values.ts +4 -1
  43. package/ts/formats/utils/vat.category.ts +426 -95
  44. package/ts/formats/validation/vat-categories.validator.ts +169 -88
@@ -2,7 +2,7 @@ import { Decimal } from './decimal.js';
2
2
  import { DecimalCurrencyCalculator } from './currency.calculator.decimal.js';
3
3
  import { toPlainDecimalString } from './number.text.js';
4
4
  import { EInvoiceFormatError } from '../../errors.js';
5
- import { getVatCategory, getVatExemption } from './vat.category.js';
5
+ import { getDefaultVatExemption, getItemVatCategory, getItemVatExemption, mergeVatExemption, } from './vat.category.js';
6
6
  /**
7
7
  * The item amounts of a document that are no finite number. The totals cannot
8
8
  * be computed while there is one: the encoders and the total getters refuse
@@ -37,6 +37,13 @@ export const getTotalsSkippedResult = (invalid, source) => ({
37
37
  .join(', ')}`,
38
38
  field: invalid.map((entry) => `items[${entry.index}].${entry.field}`).join(', '),
39
39
  });
40
+ /**
41
+ * The VAT categories whose tax amount (BT-117) is the taxable amount × rate:
42
+ * standard rated (BR-S-09), IGIC (BR-AF-09) and IPSI (BR-AG-09). Every other
43
+ * category states the tax 0 (BR-Z-09, BR-E-09, BR-AE-09, BR-IC-09, BR-G-09,
44
+ * BR-O-09).
45
+ */
46
+ const TAXED_CATEGORIES = ['S', 'L', 'M'];
40
47
  /** The most decimals an amount may have in EN 16931 (BR-DEC-09 to BR-DEC-23) */
41
48
  export const EN16931_MAX_AMOUNT_DECIMALS = 2;
42
49
  /**
@@ -54,14 +61,14 @@ export const getDocumentCalculator = (currency) => new DecimalCurrencyCalculator
54
61
  * rounded; the sum of line net amounts (BT-106) is their sum (BR-CO-10);
55
62
  * each VAT category taxable amount (BT-116) is the sum of the line net amounts
56
63
  * of that category and rate, and its tax amount (BT-117) is BT-116 × rate / 100
57
- * rounded (BR-CO-17), 0 for reverse charge (BR-AE-09); the total VAT (BT-110) is the sum of the category tax amounts
64
+ * rounded (BR-CO-17), 0 for the categories whose rate is 0 or that state no tax
65
+ * (BR-Z-09, BR-E-09, BR-AE-09, BR-IC-09, BR-G-09, BR-O-09); the total VAT (BT-110) is the sum of the category tax amounts
58
66
  * (BR-CO-14); the total with VAT (BT-112) is BT-109 + BT-110 (BR-CO-15).
59
67
  * @param accountingDoc The document
60
68
  */
61
69
  export const computeDocumentTotals = (accountingDoc) => {
62
70
  const calculator = getDocumentCalculator(accountingDoc.currency);
63
71
  const minorUnits = calculator.getCurrencyInfo().minorUnits;
64
- const category = getVatCategory(accountingDoc);
65
72
  const lineNetAmounts = [];
66
73
  const lineVatCategories = [];
67
74
  const taxableByGroup = new Map();
@@ -75,21 +82,30 @@ export const computeDocumentTotals = (accountingDoc) => {
75
82
  // product of the written values, at their full precision
76
83
  const lineNet = calculator.calculateLineNet(toPlainDecimalString(item.unitQuantity), toPlainDecimalString(item.unitNetPrice));
77
84
  lineNetAmounts.push(lineNet);
85
+ const category = getItemVatCategory(accountingDoc, item);
78
86
  lineVatCategories.push(category);
79
87
  // grouped by VAT category and rate: the same rate under two categories is two groups
80
88
  const key = `${category}|${item.vatPercentage}`;
81
- const group = taxableByGroup.get(key) ?? { category, rate: item.vatPercentage, taxable: Decimal.ZERO };
89
+ const group = taxableByGroup.get(key) ?? { category, rate: item.vatPercentage, taxable: Decimal.ZERO, exemptions: [] };
82
90
  group.taxable = group.taxable.add(lineNet);
91
+ const exemption = getItemVatExemption(item);
92
+ if (exemption) {
93
+ group.exemptions.push(exemption);
94
+ }
83
95
  taxableByGroup.set(key, group);
84
96
  }
85
97
  const vatGroups = [...taxableByGroup.values()].map((group) => {
86
- const exemption = getVatExemption(group.category, accountingDoc.language);
98
+ // the reason the items state; items of one breakdown that state different ones are refused
99
+ // on export and reported by the validators (findVatCategoryViolations)
100
+ const exemption = mergeVatExemption(group.exemptions[0], getDefaultVatExemption(group.category, accountingDoc.language));
87
101
  return {
88
102
  category: group.category,
89
103
  rate: group.rate,
90
104
  taxableAmount: calculator.round(group.taxable),
91
- // reverse charge states no tax: the recipient owes it (BR-AE-09)
92
- taxAmount: group.category === 'AE' ? calculator.round(Decimal.ZERO) : calculator.calculateVAT(group.taxable, group.rate),
105
+ // only a taxed category states tax; reverse charge states none, the recipient owes it (BR-AE-09)
106
+ taxAmount: TAXED_CATEGORIES.includes(group.category)
107
+ ? calculator.calculateVAT(group.taxable, group.rate)
108
+ : calculator.round(Decimal.ZERO),
93
109
  ...(exemption ? { exemption } : {}),
94
110
  };
95
111
  });
@@ -107,4 +123,4 @@ export const computeDocumentTotals = (accountingDoc) => {
107
123
  grandTotal,
108
124
  };
109
125
  };
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQudG90YWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvZm9ybWF0cy91dGlscy9kb2N1bWVudC50b3RhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBNkMsTUFBTSxtQkFBbUIsQ0FBQztBQVMvRzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQTBDLEVBQXdCLEVBQUU7SUFDekcsTUFBTSxPQUFPLEdBQXlCLEVBQUUsQ0FBQztJQUN6QyxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNwRCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxlQUFlLENBQVUsRUFBRSxDQUFDO1lBQy9FLE1BQU0sS0FBSyxHQUFZLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENB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
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQudG90YWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdHMvZm9ybWF0cy91dGlscy9kb2N1bWVudC50b3RhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBR2xCLE1BQU0sbUJBQW1CLENBQUM7QUFTM0I7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUEwQyxFQUF3QixFQUFFO0lBQ3pHLE1BQU0sT0FBTyxHQUF5QixFQUFFLENBQUM7SUFDekMsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDcEQsS0FBSyxNQUFNLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFVLEVBQUUsQ0FBQztZQUMvRSxNQUFNLEtBQUssR0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lB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
@@ -405,7 +405,9 @@ export const findEnvelopeDifferences = (values, totals, paidAmount) => {
405
405
  }
406
406
  });
407
407
  values.vatBreakdown.forEach((group, index) => {
408
- const computed = totals.vatGroups.find((candidate) => candidate.category === group.categoryCode && group.rate !== undefined && decimal(candidate.rate).equals(decimal(group.rate)));
408
+ // a breakdown not subject to VAT (O) may state no rate; the envelope's has the rate 0
409
+ const computed = totals.vatGroups.find((candidate) => candidate.category === group.categoryCode &&
410
+ (group.rate === undefined ? group.categoryCode === 'O' : decimal(candidate.rate).equals(decimal(group.rate))));
409
411
  if (!computed) {
410
412
  differs('BG-23', `vatBreakdown[${index}]`, `${group.categoryCode ?? '?'} ${group.rate ?? ''}`.trim(), 'no breakdown of that category and rate');
411
413
  return;
@@ -415,4 +417,4 @@ export const findEnvelopeDifferences = (values, totals, paidAmount) => {
415
417
  });
416
418
  return findings;
417
419
  };
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVkLnZhbHVlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2Zvcm1hdHMvdXRpbHMvc3RhdGVkLnZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUXhELDREQUE0RDtBQUM1RCxNQUFNLG1CQUFtQixHQUEyQjtJQUNsRCxPQUFPLEVBQUUsaUNBQWlDO0lBQzFDLE9BQU8sRUFBRSxzQ0FBc0M7SUFDL0MsT0FBTyxFQUFFLHFDQUFxQztJQUM5QyxPQUFPLEVBQUUsbUNBQW1DO0lBQzVDLE9BQU8sRUFBRSw4QkFBOEI7SUFDdkMsUUFBUSxFQUFFLG1DQUFtQztJQUM3QyxRQUFRLEVBQUUsa0NBQWtDO0lBQzVDLFFBQVEsRUFBRSxnQ0FBZ0M7SUFDMUMsUUFBUSxFQUFFLGdDQUFnQztJQUMxQyxRQUFRLEVBQUUscUNBQXFDO0lBQy9DLFFBQVEsRUFBRSxrQ0FBa0M7SUFDNUMsUUFBUSxFQUFFLGtDQUFrQztJQUM1QyxRQUFRLEVBQUUsMEJBQTBCO0lBQ3BDLFFBQVEsRUFBRSxpREFBaUQ7SUFDM0QsUUFBUSxFQUFFLCtCQUErQjtJQUN6QyxRQUFRLEVBQUUsYUFBYTtJQUN2QixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLFFBQVEsRUFBRSx3QkFBd0I7SUFDbEMsUUFBUSxFQUFFLDZCQUE2QjtJQUN2QyxRQUFRLEVBQUUseUJBQXlCO0lBQ25DLFFBQVEsRUFBRSxtQkFBbUI7SUFDN0IsUUFBUSxFQUFFLHlCQUF5QjtJQUNuQyxRQUFR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
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGVkLnZhbHVlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3RzL2Zvcm1hdHMvdXRpbHMvc3RhdGVkLnZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBUXhELDREQUE0RDtBQUM1RCxNQUFNLG1CQUFtQixHQUEyQjtJQUNsRCxPQUFPLEVBQUUsaUNBQWlDO0lBQzFDLE9BQU8sRUFBRSxzQ0FBc0M7SUFDL0MsT0FBTyxFQUFFLHFDQUFxQztJQUM5QyxPQUFPLEVBQUUsbUNBQW1DO0lBQzVDLE9BQU8sRUFBRSw4QkFBOEI7SUFDdkMsUUFBUSxFQUFFLG1DQUFtQztJQUM3QyxRQUFRLEVBQUUsa0NBQWtDO0lBQzVDLFFBQVEsRUFBRSxnQ0FBZ0M7SUFDMUMsUUFBUSxFQUFFLGdDQUFnQztJQUMxQyxRQUFRLEVBQUUscUNBQXFDO0lBQy9DLFFBQVEsRUFBRSxrQ0FBa0M7SUFDNUMsUUFBUSxFQUFFLGtDQUFrQztJQUM1QyxRQUFRLEVBQUUsMEJBQTBCO0lBQ3BDLFFBQVEsRUFBRSxpREFBaUQ7SUFDM0QsUUFBUSxFQUFFLCtCQUErQjtJQUN6QyxRQUFRLEVBQUUsYUFBYTtJQUN2QixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLFFBQVEsRUFBRSx3QkFBd0I7SUFDbEMsUUFBUSxFQUFFLDZCQUE2QjtJQUN2QyxRQUFRLEVBQUUseUJBQXlCO0lBQ25DLFFBQVEsRUFBRSxtQkFBbUI7SUFDN0IsUUFBUSxFQUFFLHlCQUF5QjtJQUNuQyxRQUFR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
@@ -1,83 +1,174 @@
1
1
  import type { TAccountingDoc } from '../../interfaces/common.js';
2
+ import type { finance } from '@tsclass/tsclass';
3
+ type TAccountingDocItem = finance.TAccountingDocItem;
4
+ import type { IEInvoiceStatedValues } from '../../interfaces/stated.values.js';
2
5
  /**
3
- * The VAT category codes (UNTDID 5305, EN 16931 BT-118/BT-151) the encoders
4
- * write: standard rated, or reverse charge. The envelope states reverse charge
5
- * for the whole document (`reverseCharge`); an item carries no category of its
6
- * own, so a document cannot mix reverse charge lines with standard rated ones.
6
+ * The VAT category codes (UNTDID 5305, EN 16931 BT-118/BT-151) an item can
7
+ * state (`TAccountingDocItem.vatCategory`): standard rated (S), zero rated (Z),
8
+ * exempt (E), reverse charge (AE), intra-community supply (K), export outside
9
+ * the EU (G), not subject to VAT (O), IGIC (L) and IPSI (M).
10
+ */
11
+ export type TVatCategoryCode = finance.TVatCategory;
12
+ /** Every VAT category code EN 16931 allows, in the order of `TVatCategoryCode` */
13
+ export declare const VAT_CATEGORY_CODES: readonly TVatCategoryCode[];
14
+ /**
15
+ * Whether a value is a VAT category code EN 16931 allows
16
+ * @param value The value
17
+ */
18
+ export declare const isVatCategoryCode: (value: unknown) => value is TVatCategoryCode;
19
+ /**
20
+ * The categories whose VAT breakdown states an exemption reason, as a code
21
+ * (BT-121) or a text (BT-120): exempt (BR-E-10), reverse charge (BR-AE-10),
22
+ * intra-community supply (BR-IC-10), export (BR-G-10) and not subject to VAT
23
+ * (BR-O-10). The others state none (BR-S-10, BR-Z-10, BR-AF-10, BR-AG-10).
24
+ */
25
+ export declare const VAT_CATEGORIES_WITH_EXEMPTION: readonly TVatCategoryCode[];
26
+ /**
27
+ * The VAT exemption reason code (BT-121) and text (BT-120) a VAT breakdown
28
+ * states; at least one of them
7
29
  */
8
- export type TVatCategoryCode = 'S' | 'AE';
9
- /** The VAT exemption reason (BT-121 code, BT-120 text) a VAT category states */
10
30
  export interface IVatExemption {
11
- code: string;
12
- reason: string;
31
+ code?: string;
32
+ reason?: string;
13
33
  }
14
34
  /**
15
- * The VAT category of every line of a document: reverse charge (`AE`) when the
16
- * document states it, standard rated (`S`) otherwise.
35
+ * The CEF VATEX code list, as the CEN/TC 434 EN 16931 validation artefacts
36
+ * 1.3.16 check a VAT exemption reason code (BT-121) against it (BR-CL-22,
37
+ * compared in upper case)
38
+ */
39
+ export declare const VATEX_CODES: ReadonlySet<string>;
40
+ /**
41
+ * Whether a VAT exemption reason code is on the CEF VATEX code list (BR-CL-22)
42
+ * @param code The code
43
+ */
44
+ export declare const isVatexCode: (code: string) => boolean;
45
+ /**
46
+ * The VAT category of an item: the one it states (`vatCategory`, BT-151), else
47
+ * reverse charge (AE) when the document states `reverseCharge`, standard rated
48
+ * (S) otherwise.
17
49
  * @param accountingDoc The document
50
+ * @param item The item
18
51
  */
19
- export declare const getVatCategory: (accountingDoc: {
52
+ export declare const getItemVatCategory: (accountingDoc: {
20
53
  reverseCharge?: boolean;
21
- }) => TVatCategoryCode;
54
+ }, item: Pick<TAccountingDocItem, "vatCategory">) => TVatCategoryCode;
22
55
  /**
23
- * The exemption reason a reverse charge VAT breakdown states (BR-AE-10): the
24
- * code `VATEX-EU-AE` and the wording the law prescribes, "Steuerschuldnerschaft
25
- * des Leistungsempfängers" (§ 14a Abs. 1 and 5 UStG). A document in another
26
- * language may use the wording of Article 226 Nr. 11a of the VAT Directive in
27
- * that language, "Reverse charge" in English (Abschnitt 14a.1 Abs. 6 Satz 2
28
- * UStAE). Other categories state none.
56
+ * The exemption reason an item states: its VATEX code (BT-121) and its text
57
+ * (BT-120), each trimmed; undefined when it states neither
58
+ * @param item The item
59
+ */
60
+ export declare const getItemVatExemption: (item: Pick<TAccountingDocItem, "vatExemptionReason" | "vatExemptionReasonCode">) => IVatExemption | undefined;
61
+ /**
62
+ * The exemption reason a VAT breakdown of a category states when none of its
63
+ * items states one.
64
+ * - Reverse charge (AE): the code `VATEX-EU-AE` and the wording the law
65
+ * prescribes, "Steuerschuldnerschaft des Leistungsempfängers" (§ 14a Abs. 1
66
+ * and 5 UStG). A document in another language may use the wording of
67
+ * Article 226 Nr. 11a of the VAT Directive in that language, "Reverse charge"
68
+ * in English (Abschnitt 14a.1 Abs. 6 Satz 2 UStAE).
69
+ * - Intra-community supply (K), export outside the EU (G) and not subject to
70
+ * VAT (O): the VATEX code that means the category, `VATEX-EU-IC`,
71
+ * `VATEX-EU-G` and `VATEX-EU-O`, which BR-IC-10, BR-G-10 and BR-O-10 accept.
72
+ * - Exempt (E): none. The reason depends on the exemption applied, which only
73
+ * the issuer knows; a document with an exempt item that states none is
74
+ * refused (BR-E-10).
29
75
  * @param category The VAT category
30
76
  * @param language The document language
31
77
  */
32
- export declare const getVatExemption: (category: TVatCategoryCode, language: string | undefined) => IVatExemption | undefined;
78
+ export declare const getDefaultVatExemption: (category: TVatCategoryCode, language: string | undefined) => IVatExemption | undefined;
79
+ /**
80
+ * The exemption reason a VAT breakdown states: the code and the text its items
81
+ * state, each completed by the category's default where they state none
82
+ * (`getDefaultVatExemption`); undefined when there is neither
83
+ * @param stated The exemption the items state
84
+ * @param categoryDefault The category's default
85
+ */
86
+ export declare const mergeVatExemption: (stated: IVatExemption | undefined, categoryDefault: IVatExemption | undefined) => IVatExemption | undefined;
33
87
  /**
34
88
  * Whether a VAT rate is a number not greater than zero; a rate that is no
35
89
  * number is refused as such (`findInvalidItemAmounts`), not as BR-S-05
36
90
  * @param rate The rate
37
91
  */
38
92
  export declare const isRateNotAboveZero: (rate: unknown) => boolean;
39
- /** A line written as standard rated (S) whose VAT rate is not greater than zero */
40
- export interface IStandardRatedLineWithoutRate {
93
+ /**
94
+ * The refusal or finding for a standard rated line whose VAT rate is not
95
+ * greater than zero (BR-S-05)
96
+ * @param line The line index and its rate
97
+ * @param statedCategory Whether the item states the category S itself
98
+ */
99
+ export declare const standardRatedLineWithoutRateMessage: (line: {
41
100
  index: number;
42
101
  vatPercentage: number;
102
+ }, statedCategory?: boolean) => string;
103
+ /** One rule a VAT category finding names */
104
+ export interface IVatCategoryViolation {
105
+ /** the EN 16931 rule ID, or the package's own code for a check no official rule states */
106
+ ruleId: string;
107
+ /** what is wrong, with the field */
108
+ message: string;
109
+ /** the envelope field concerned */
110
+ field: string;
43
111
  }
112
+ /** The package's own check: the items of one VAT breakdown state different exemption reasons */
113
+ export declare const VAT_EXEMPTION_DIFFERS = "EINVOICE-VAT-EXEMPTION-DIFFERS";
44
114
  /**
45
- * The first line of a document that is not reverse charge whose VAT rate is not
46
- * greater than zero. The encoders write every such line as standard rated (S),
47
- * and EN 16931 BR-S-05 asks a standard rated line for a rate greater than zero;
48
- * the category the line has (zero rated Z, exempt E, intra-community supply K,
49
- * export G, not subject to VAT O) cannot be stated until an item carries a VAT
50
- * category of its own.
51
- * @param items The document's items
115
+ * Every rule of EN 16931 on the VAT categories of a document's items that the
116
+ * envelope can break, in item order and then per document; an empty list when
117
+ * the document can be written. Amounts that are no number are not checked
118
+ * here (`findInvalidItemAmounts`).
119
+ * - The rate each category allows (BR-S-05, BR-Z-05, BR-E-05, BR-AE-05,
120
+ * BR-IC-05, BR-G-05, BR-O-05, BR-AF-05, BR-AG-05).
121
+ * - The exemption reason: stated for E, AE, K, G and O (a default for AE, K,
122
+ * G and O, `getDefaultVatExemption`), not stated for S, Z, L and M (the
123
+ * BR-x-10 rules); a code on the VATEX list (BR-CL-22); one reason per VAT
124
+ * breakdown, as a breakdown states one (`EINVOICE-VAT-EXEMPTION-DIFFERS`).
125
+ * - The parties' identifiers: for Z, E, L and M the seller VAT identifier
126
+ * (BT-31) or tax registration identifier (BT-32) (BR-Z-02, BR-E-02,
127
+ * BR-AF-02, BR-AG-02); for AE that and the buyer VAT identifier (BT-48) or
128
+ * legal registration identifier (BT-47) (BR-AE-02); for K the seller and the
129
+ * buyer VAT identifier (BR-IC-02); for G the seller VAT identifier
130
+ * (BR-G-02); for O neither VAT identifier (BR-O-02). The rules also accept
131
+ * a seller tax representative (BT-63), which the envelope cannot state.
132
+ * - An intra-community supply states the delivery date (BT-72) or the
133
+ * invoicing period (BG-14) (BR-IC-11) and the deliver to country (BT-80,
134
+ * `metadata.deliveryAddress.countryCode`) (BR-IC-12).
135
+ * - A document not subject to VAT has no item of another category (BR-O-11,
136
+ * BR-O-12).
137
+ * The rule for a standard rated item holds whether it states S or is S
138
+ * because it states no category, so an item at the rate 0 outside reverse
139
+ * charge that states no category breaks BR-S-05. Whether a document in
140
+ * reverse charge meets § 14a Abs. 1 UStG (both VAT identification numbers for
141
+ * a supply in another member state) cannot be told from the envelope, which
142
+ * has no place of supply; the issuing application enforces it.
143
+ * @param accountingDoc The document
52
144
  */
53
- export declare const findStandardRatedLineWithoutRate: (items: TAccountingDoc["items"] | undefined) => IStandardRatedLineWithoutRate | undefined;
145
+ export declare const findVatCategoryViolations: (accountingDoc: Pick<TAccountingDoc, "items" | "from" | "to" | "deliveryDate" | "periodOfPerformance"> & {
146
+ reverseCharge?: boolean;
147
+ language?: string;
148
+ metadata?: {
149
+ deliveryAddress?: {
150
+ countryCode?: string;
151
+ };
152
+ };
153
+ }, syntax?: "ubl" | "cii") => IVatCategoryViolation[];
54
154
  /**
55
- * The refusal or finding for such a line
56
- * @param line The line
155
+ * Refuses a document whose items cannot be written with a valid VAT category
156
+ * (`findVatCategoryViolations`), naming the first rule it breaks; no value is
157
+ * put in place of a missing one.
158
+ * @param accountingDoc The document
159
+ * @param targetFormat The syntax being written
57
160
  */
58
- export declare const standardRatedLineWithoutRateMessage: (line: IStandardRatedLineWithoutRate) => string;
161
+ export declare const assertVatCategoryWritable: (accountingDoc: TAccountingDoc, targetFormat: "ubl" | "cii") => void;
59
162
  /**
60
- * Refuses a document whose lines cannot be written with a valid VAT category,
61
- * naming the rule: a line outside reverse charge whose rate is not greater than
62
- * zero (BR-S-05), and a reverse charge document that lacks what EN 16931
63
- * requires of one; no value is put in place of a missing one.
64
- * - BR-AE-05: every line of a reverse charge document has the VAT rate 0; the
65
- * recipient owes the tax, and the invoice states none (§ 14a Abs. 5 Satz 2
66
- * UStG; a stated amount would be owed under § 14c Abs. 1 UStG).
67
- * - BR-AE-02: the seller states a VAT identifier (BT-31) or a tax
68
- * registration identifier (BT-32, `registrationDetails.taxNumber`, the
69
- * Steuernummer, which § 14 Abs. 4 Satz 1 Nr. 2 UStG allows instead), and the
70
- * buyer a VAT identifier (BT-48) or a legal registration identifier (BT-47).
71
- * The rule also accepts a tax representative's VAT identifier (BT-63) for
72
- * the seller; the envelope cannot state one, so a seller with neither BT-31
73
- * nor BT-32 is refused.
74
- * The envelope has no place of supply, so whether a document is one for a
75
- * supply in another member state, whose invoice states the VAT identification
76
- * numbers of both parties (§ 14a Abs. 1 Satz 3 UStG), cannot be told here: a
77
- * domestic § 13b supply to a buyer based in another member state is taxed in
78
- * Germany and may state a tax number. Only what BR-AE-02 requires is checked;
79
- * the issuing application enforces § 14a Abs. 1.
80
- * @param accountingDoc The document
81
- * @param targetFormat The format being written
163
+ * Gives the items of a decoded document the VAT category their lines state
164
+ * (BT-151) and the exemption reason (BT-120) and code (BT-121) of the VAT
165
+ * breakdown they belong to: the one of their category and rate, or of their
166
+ * category for an item not subject to VAT, which states no rate. A line that
167
+ * states no category, or a code EN 16931 does not allow, keeps none; the item
168
+ * is then read as AE or S (`getItemVatCategory`) and the code list rules
169
+ * report the code.
170
+ * @param items The decoded items, in line order
171
+ * @param statedValues What the document states; undefined for a ZUGFeRD 1.0 document
82
172
  */
83
- export declare const assertVatCategoryWritable: (accountingDoc: TAccountingDoc, targetFormat: string) => void;
173
+ export declare const applyStatedVatCategories: (items: TAccountingDocItem[], statedValues: IEInvoiceStatedValues | undefined) => void;
174
+ export {};