SEO Title: Day 9: Fix Missing UBLVersionID and CustomizationID in IRB XML #ublheaders #irbvalidation
Focus Keyphrase: IRB UBLVersionID error
Meta Description: Resolve IRB validation errors caused by missing UBLVersionID or CustomizationID in your UBL XML invoice. Include the correct version and profile for MyInvois.
IRBM Header Error: Missing UBLVersionID or CustomizationID
If these tags are missing from the top of your invoice XML, IRBM may silently reject your submission or return a schema error.
Expected Header Tags
IRBM requires the following to be placed at the top of the <Invoice>
block:
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>MYINV1.0</cbc:CustomizationID>
<cbc:ProfileID>IRBM</cbc:ProfileID>
What These Mean
- UBLVersionID: Must be “2.1”
- CustomizationID: Must be “MYINV1.0” (IRBM-specific)
- ProfileID: Must be “IRBM” (defines jurisdiction)
Laravel Fix
Add these before other invoice children in your generator:
$invoice->appendChild($doc->createElementNS($cbc, 'cbc:UBLVersionID', '2.1'));
$invoice->appendChild($doc->createElementNS($cbc, 'cbc:CustomizationID', 'MYINV1.0'));
$invoice->appendChild($doc->createElementNS($cbc, 'cbc:ProfileID', 'IRBM'));
Common Mistakes
- ❌ Skipping these fields assuming they are optional
- ❌ Using “UBL2.1” instead of just “2.1”
- ❌ Misplacing these after invoice line blocks
Debug Tip
Open your final XML and confirm these tags appear before any invoice number, date, or party information. If you’re unsure, validate your structure with any online UBL validator or compare to IRBM’s sample XMLs.
Coming Up in Final Day (Day 10)
We’ll handle IRBM’s rejection due to **invalid or expired client certificate**, and show how to test, renew, and debug your cert and private key.
Tags: #UBLHeader #IRBIntegration #UBLValidation #MyInvoisXML #LaravelUBL