Provide the delivery country for an intra-community supply

Error BR-IC-12 EN 16931

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.

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

For a category K VAT breakdown, the country entry CountryID is missing from the delivery address of ShipToTradeParty. The delivery country BT-80 must not be blank.

What the rule means

The delivery country identifies the country of the delivery address. This information is required when the VAT breakdown is marked as an intra-community supply.

Affected fields BG-23 BT-118 BT-80
Please add the delivery country for the intra-community supply

No country is entered in the delivery address, although the VAT breakdown indicates an intra-community supply. Add the country to the delivery address.

What to do
  1. Add CountryID under ShipToTradeParty/PostalTradeAddress.
  2. Check the value of the Country property for ShipToTradeParty.
  3. Generate the invoice again and validate it.
What it looks like
✗ Triggers the message
<ram:ShipToTradeParty>
  <ram:PostalTradeAddress/>
</ram:ShipToTradeParty>
✓ Correct
<ram:ShipToTradeParty>
  <ram:PostalTradeAddress>
    <ram:CountryID>DE</ram:CountryID>
  </ram:PostalTradeAddress>
</ram:ShipToTradeParty>
Check in FactoorSharp
  • Party.Country (ShipToTradeParty: BT-80)
  • TaxCategoryCodes (BT-118)
  • FacturXInvoice.AddApplicableTradeTax(basisAmount, percent, taxAmount, typeCode, categoryCode, allowanceChargeBasisAmount, exemptionReasonCode, exemptionReason, lineTotalBasisAmount) (BG-23)
  • FacturXInvoice.AnyApplicableTradeTaxes() (BG-23)
  • FacturXInvoice.GetApplicableTradeTaxes() (BG-23)
Technical details

For CategoryCode K, the test checks whether CountryID is present under ShipToTradeParty/PostalTradeAddress.

Where the rule applies

The rule applies to a VAT breakdown ApplicableTradeTax with CategoryCode K and checks the country in the delivery address at ShipToTradeParty/PostalTradeAddress.

Context (rule/@context)
//rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ ram:CategoryCode[.= 'K']
Test expression (assert/@test)
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeDelivery/ ram:ShipToTradeParty/ram:PostalTradeAddress/ram:CountryID