Scheme identifier is missing from the seller electronic address

Error BR-62 EN 16931

The Seller electronic address (BT-34) shall have a Scheme identifier.

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

If ram:SellerTradeParty contains an electronic address through ram:URIUniversalCommunication, its ram:URIID is missing a non-empty schemeID attribute. The seller electronic address identifier (BT-34) is therefore incomplete.

What the rule means

The scheme identifier indicates which scheme is used to interpret the seller’s electronic address.

Affected fields BT-34
Please add the scheme identifier to the seller electronic address

The scheme identifier is missing from the seller’s electronic address. Add it to the associated ram:URIID.

What to do
  1. Add a non-empty schemeID attribute to the ram:URIID of the seller address.
  2. Check the value of ElectronicAddressSchemeID or the call to SetSellerElectronicAddress(...).
  3. Generate the invoice again and validate it once more.
What it looks like
✗ Triggers the message
<ram:SellerTradeParty>
  <ram:URIUniversalCommunication>
    <ram:URIID schemeID="">adresse</ram:URIID>
  </ram:URIUniversalCommunication>
</ram:SellerTradeParty>
✓ Correct
<ram:SellerTradeParty>
  <ram:URIUniversalCommunication>
    <ram:URIID schemeID="EM">adresse</ram:URIID>
  </ram:URIUniversalCommunication>
</ram:SellerTradeParty>
Check in FactoorSharp
  • ElectronicAddress.ElectronicAddressSchemeID (SellerTradeParty: BT-34)
  • FacturXInvoice.SellerElectronicAddress (BT-34)
  • FacturXInvoice.SetSellerElectronicAddress(address, electronicAddressSchemeID) (BT-34)
  • Party.ElectronicAddress (SellerTradeParty: BT-34)
Good to know

The rule is also satisfied if no ram:URIUniversalCommunication is present for the seller.

Technical details

The test passes if the normalized schemeID attribute of the first ram:URIID is non-empty, or if no ram:URIUniversalCommunication exists for the seller.

Where the rule applies

The rule applies to the first ram:URIUniversalCommunication inside ram:SellerTradeParty and the schemeID attribute of its ram:URIID.

Context (rule/@context)
/rsm:CrossIndustryInvoice
Test expression (assert/@test)
normalize-space(rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ ram:SellerTradeParty/ram:URIUniversalCommunication[1]/ram:URIID/@schemeID) != '' or not (rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeAgreement/ ram:SellerTradeParty/ram:URIUniversalCommunication)