Inquiry About Appropriate unitCode for Area Measurement in ZATCA Invoicing

@Ankit_Tiwari , @eCloud , @advancesystem
I am implementing ZATCA-compliant XML invoicing and need clarification on the appropriate value for the unitCode attribute in the <cbc:InvoicedQuantity> tag when the unit of measurement is area in square meters (height in meters multiplied by width in meters).

Example:

<cbc:InvoicedQuantity unitCode="?">4.000000</cbc:InvoicedQuantity>
  • What is the correct unitCode for area measurement in square meters as per the
    UN/ECE Recommendation standard codes used by ZATCA?
  • Would “M2” or " M²" (representing square meters) be the appropriate code, or is there another standard value for such cases?

image
can i use MTK as unit code?

Please confirm or provide guidance on the correct usage for compliance.

@arjun_tech24

I don’t know, I don’t want to think too much.

Just try, if it matches the invoice created by the user on their ERP and the eInvoice passes Zatca validation, then it is correct.

<xsl:if test="exists(cbc:InvoicedQuantity/@unitCode) and string-length(cbc:InvoicedQuantity/@unitCode) &gt; 127">
                  <svrl:failed-assert xmlns:svrl="http://purl.oclc.org/dsdl/svrl" location="{schxslt:location(.)}" flag="warning" id="BR-KSA-F-06-C18">
                     <xsl:attribute name="test">exists(cac:InvoiceLine/cbc:InvoicedQuantity/@unitCode) and string-length(cac:InvoiceLine/cbc:InvoicedQuantity/@unitCode) &gt; 127</xsl:attribute>
                     <svrl:text>[BR-KSA-F-06-C18] - Field character limits for Invoiced quantity unit of measure field (BT-130) have not been met. The maximum limit is 127 characters.</svrl:text>
                     <svrl:message-code>BR-KSA-F-06-C18</svrl:message-code>
                     <svrl:message-category>Business rules - integrity constraints (BR)</svrl:message-category>
                  </svrl:failed-assert>
               </xsl:if>

Quantity unit of measure is string with a maximum length of 127 characters.

1 Like

Thank you @eCloud.
I use MTK as Unit Code, which I got from UN/ECE Recommendation, and it does not throw any errors or warnings in the API.