Invoice specification identifier

Error BR-01 EN 16931

An Invoice shall have a Specification identifier (BT-24).

Mandatory rule: As long as it is violated, the invoice is invalid and will be rejected by validators.
What is wrong

The invoice does not contain a non-empty specification identifier in rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID.

What the rule means

The specification identifier states which invoice specification the document was created for. It allows the invoice to be associated with its intended specification context.

Affected fields BT-24
Please add the invoice specification identifier

Your invoice is missing its specification identifier. You can set it through Profile or SpecificationIdentifier.

What to do
  1. Set a non-empty specification identifier for the invoice.
  2. Check the value through Profile or SpecificationIdentifier.
  3. Generate the invoice again and validate it once more.
What it looks like
✗ Triggers the message
<rsm:ExchangedDocumentContext>
  <ram:GuidelineSpecifiedDocumentContextParameter>
    <ram:ID/>
  </ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
✓ Correct
<rsm:ExchangedDocumentContext>
  <ram:GuidelineSpecifiedDocumentContextParameter>
    <ram:ID>urn:example:invoice-specification</ram:ID>
  </ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
Check in FactoorSharp
  • FacturXInvoice.Profile (BT-24)
  • FacturXInvoice.SpecificationIdentifier (BT-24)
  • SpecificationIdentifiers (BT-24)
Technical details

The test checks whether rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ram:ID is not equal to the empty string.

Where the rule applies

The rule applies to the invoice document context. It checks the ram:ID within ram:GuidelineSpecifiedDocumentContextParameter.

Context (rule/@context)
/rsm:CrossIndustryInvoice
Test expression (assert/@test)
(rsm:ExchangedDocumentContext/ram:GuidelineSpecifiedDocumentContextParameter/ ram:ID != '')