Payee name required

Error BR-17 EN 16931

The Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4).

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

PayeeTradeParty/Name is missing. The test requires it when the payee's name, ID, and SpecifiedLegalOrganization/ID each differ from the corresponding seller details.

What the rule means

When the payee and seller differ in the details being compared, the payee must be identified by name.

Affected fields BT-59 BG-10 BG-4
Please add the name of the different payee

The payee differs from the seller in the details being checked, but the payee's name is missing. Add the payee's name.

What to do
  1. Add the name in PayeeTradeParty using Party.Name.
  2. Check that the payee's name, ID, and SpecifiedLegalOrganization/ID do not match the seller's details.
  3. Regenerate the invoice and validate it again.
What it looks like
✗ Triggers the message
<ram:PayeeTradeParty>
  <ram:ID>PAYEE-2</ram:ID>
  <ram:SpecifiedLegalOrganization>
    <ram:ID>LEGAL-2</ram:ID>
  </ram:SpecifiedLegalOrganization>
</ram:PayeeTradeParty>
<ram:SellerTradeParty>
  <ram:Name>Seller One</ram:Name>
  <ram:ID>SELLER-1</ram:ID>
  <ram:SpecifiedLegalOrganization>
    <ram:ID>LEGAL-1</ram:ID>
  </ram:SpecifiedLegalOrganization>
</ram:SellerTradeParty>
✓ Correct
<ram:PayeeTradeParty>
  <ram:Name>Payee Two</ram:Name>
  <ram:ID>PAYEE-2</ram:ID>
  <ram:SpecifiedLegalOrganization>
    <ram:ID>LEGAL-2</ram:ID>
  </ram:SpecifiedLegalOrganization>
</ram:PayeeTradeParty>
<ram:SellerTradeParty>
  <ram:Name>Seller One</ram:Name>
  <ram:ID>SELLER-1</ram:ID>
  <ram:SpecifiedLegalOrganization>
    <ram:ID>LEGAL-1</ram:ID>
  </ram:SpecifiedLegalOrganization>
</ram:SellerTradeParty>
Check in FactoorSharp
  • FacturXInvoice.SetSeller(name, postcode, city, street, street2, country, id, globalID, legalOrganization, description, countrySubdivisonName, addressLine3) (BG-4)
  • FacturXInvoice.Seller (BG-4)
  • Party.Name (PayeeTradeParty: BT-59)
Technical details

The test requires PayeeTradeParty/Name and also checks that its Name, ID, and SpecifiedLegalOrganization/ID do not match the corresponding seller values.

Where the rule applies

The rule applies within PayeeTradeParty. It compares the payee with SellerTradeParty using Name, ID, and SpecifiedLegalOrganization/ID.

Context (rule/@context)
//ram:PayeeTradeParty
Test expression (assert/@test)
(ram:Name) and ( not(ram:Name = ../ram:SellerTradeParty/ram:Name) and not(ram:ID = ../ram:SellerTradeParty/ram:ID) and not(ram:SpecifiedLegalOrganization/ram:ID = ../ram:SellerTradeParty/ ram:SpecifiedLegalOrganization/ram:ID) )