DK-R-009
For Danish Suppliers if the PaymentReference is prefixed with 04# or 015# the 16 digits instruction Id must be added to the PaymentReference eg. "04#1234567890123456" when Payment means equals 50 (Giro)
What does this rule mean?
The Danish payment reference is not in the form required for this payment means.
Danish giro/card payment means (50, 93) encode the card type code as a prefix of the payment reference (e.g. 01#, 04#, 15#, 71#, 73#, 75#) and require an account identifier of fixed length alongside.
Official rule message (standard)
For Danish Suppliers if the PaymentReference is prefixed with 04# or 015# the 16 digits instruction Id must be added to the PaymentReference eg. "04#1234567890123456" when Payment means equals 50 (Giro)
Where the rule applies
Syntax: CII · UBL
The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.
UBL
ubl-invoice:Invoice[$DKSupplierCountry = 'DK' and $DKCustomerCountry = 'DK']/cac:PaymentMeans
CII
rsm:CrossIndustryInvoice[$DKSupplierCountry = 'DK' and $DKCustomerCountry = 'DK']/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:SpecifiedTradeSettlementPaymentMeans
Technical test
The rule passes when this Schematron expression holds true:
not((ram:TypeCode = '50')
and ((substring(../ram:PaymentReference, 0, 4) = '04#')
or (substring(../ram:PaymentReference, 0, 4) = '15#'))
and not(string-length(../ram:PaymentReference) = 19)
)How to fix it
A missing or incorrect business entry only you can supply. Add or correct it, then re-check.
Set the right prefix and digit sequence in the payment reference, and check the length of the account identifier.
Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.
Check an e-invoice here
Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.