Validations
Validations
Catalog of validation rules ordered by code.
60003 - ReportingPeriod year must not be later than current year
| Message | ReportingPeriod year must not be later than current year |
| XSD path | tDeclaration -> ReportingPeriod |
| Category | FO - Format |
| Severity | ER - Error |
What to check: The ReportingPeriod year must not be later than the current year.
60004 - Do not mix OECD1/OECD11 with OECD2/OECD3/OECD12/OECD13
| Message | Do not mix OECD1/OECD11 with OECD2/OECD3/OECD12/OECD13 |
| XSD path | Todas las secciones -> DocTypeIndic |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: You cannot mix new declarations with corrections in the same submission.
60008 - CorrDocRefId cannot reference itself
| Message | CorrDocRefId cannot reference itself |
| XSD path | CorrDocRefId |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: The CorrDocRefId does not match any existing DocRefId.
60010 - FilingInfo OECD3/OECD13 requires all sections with same DocTypeIndic
| Message | FilingInfo OECD3/OECD13 requires all sections with same DocTypeIndic |
| XSD path | FilingInfo + secciones -> DocTypeIndic |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If FilingInfo is deleted (OECD3), all other sections must be deleted too.
60011 - DocRefId only allows letters and numbers (no accents, ñ, spaces)
| Message | DocRefId only allows letters and numbers (no accents, ñ, spaces) |
| XSD path | DocSpec -> DocRefId |
| Category | FO - Format |
| Severity | ER - Error |
What to check: DocRefId format: [CountryCode][Year][UniqueID]. Alphanumeric only.
60015 - OECD2/OECD3/OECD12/OECD13 require CorrDocRefId
| Message | OECD2/OECD3/OECD12/OECD13 require CorrDocRefId |
| XSD path | DocTypeIndic + CorrDocRefId |
| Category | OB - Required |
| Severity | ER - Error |
What to check: OECD2/OECD3/OECD12/OECD13 require CorrDocRefId.
60016 - GeneralSection cannot be OECD1/OECD11 with FilingInfo OECD0/OECD10
| Message | GeneralSection cannot be OECD1/OECD11 with FilingInfo OECD0/OECD10 |
| XSD path | FilingInfo + GeneralSection -> DocTypeIndic |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If FilingInfo DocTypeIndic is OECD0, GeneralSection cannot be OECD1.
60017 - FilingInfo OECD1/OECD11 requires GeneralSection
| Message | FilingInfo OECD1/OECD11 requires GeneralSection |
| XSD path | FilingInfo + GeneralSection -> DocTypeIndic |
| Category | OB - Required |
| Severity | ER - Error |
What to check: If FilingInfo DocTypeIndic is OECD1, GeneralSection is required.
60020 - Period.Start must not be later than Period.End
| Message | Period.Start must not be later than Period.End |
| XSD path | FilingInfo -> Period |
| Category | FO - Format |
| Severity | ER - Error |
What to check: Period.Start must not be later than Period.End.
60021 - Period.End year must not be later than ReportingPeriod
| Message | Period.End year must not be later than ReportingPeriod |
| XSD path | Period + ReportingPeriod |
| Category | FO - Format |
| Severity | ER - Error |
What to check: Period.End year must not be later than the ReportingPeriod year.
60022 - FilingCE.TIN must match a UPE TIN
| Message | FilingCE.TIN must match a UPE TIN |
| XSD path | FilingCE.TIN + UPE.TIN |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If FilingCE role is GIR401, its TIN must match one of the UPE TINs.
60023 - FilingCE.ResCountryCode must match TransmittingCountry
| Message | FilingCE.ResCountryCode must match TransmittingCountry |
| XSD path | ResCountryCode + TransmittingCountry |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: FilingCE ResCountryCode must match TransmittingCountry.
60024 - SafeHarbour/ETRRange/SBIE/QDMTTut/GLoBETut require JurWithTaxingRights
| Message | SafeHarbour/ETRRange/SBIE/QDMTTut/GLoBETut require JurWithTaxingRights |
| XSD path | Summary -> JurWithTR / SafeHarbour / ETRRange / SBIE / QDMTTut / GLoBETut |
| Category | OB - Required |
| Severity | ER - Error |
What to check: If Summary has SafeHarbour/ETRRange/SBIE/QDMTTut/GLoBETut, JurWithTR is required.
60025 - ETRRate must be AdjustedCoveredTax/Total / NetGlobeIncome/Total
| Message | ETRRate must be AdjustedCoveredTax/Total / NetGlobeIncome/Total |
| XSD path | OverallComputation -> ETRRate |
| Category | CO - Semantic rule |
| Severity | WA - Warning |
What to check: ETRRate must equal AdjCovTax/NetGlobeInc. Warning only.
60026 - TopUpTax= (TopUpTaxPct×ExcessProfits)+AddTuT-QDMTT/Amount
| Message | TopUpTax= (TopUpTaxPct×ExcessProfits)+AddTuT-QDMTT/Amount |
| XSD path | OverallComputation -> TopUpTax |
| Category | CO - Semantic rule |
| Severity | WA - Warning |
What to check: TopUpTax must equal (Pct x ExcessProfits) + Additional - QDMTT. Warning only.
60027 - IIRTopUpTax must be TopUpTaxShare - IIROffSet
| Message | IIRTopUpTax must be TopUpTaxShare - IIROffSet |
| XSD path | IIR -> ParentEntity -> TopUpTax |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: IIRTopUpTax = TopUpTaxShare - IIROffSet.
60028 - AdjustedFANIL/Total must be FANIL + Sum(Additions) - Sum(Reductions)
| Message | AdjustedFANIL/Total must be FANIL + Sum(Additions) - Sum(Reductions) |
| XSD path | CEComputation -> AdjustedFANIL |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: Verify AdjustedFANIL, NetGlobeInc and AdjCoveredTax totals sum correctly.
70001 - TypeOfTIN=GIR3004 requires TIN=NOTIN
| Message | TypeOfTIN=GIR3004 requires TIN=NOTIN |
| XSD path | Cualquier TIN -> TypeOfTIN |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: If TypeOfTIN is GIR3004, TIN must be NOTIN, Unknown=TRUE, IssuedBy empty.
70002 - TIN=NOTIN requires TypeOfTIN=GIR3004
| Message | TIN=NOTIN requires TypeOfTIN=GIR3004 |
| XSD path | Cualquier TIN -> valor |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: If TIN is NOTIN, TypeOfTIN must be GIR3004, Unknown=TRUE, IssuedBy empty.
70003 - Unknown=True requires TIN=NOTIN
| Message | Unknown=True requires TIN=NOTIN |
| XSD path | Cualquier TIN -> unknown |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: If Unknown=TRUE, TIN must be NOTIN, TypeOfTIN=GIR3004, IssuedBy empty.
70005 - TypeOfTIN is required
| Message | TypeOfTIN is required |
| XSD path | Cualquier TIN -> atributos |
| Category | OB - Required |
| Severity | ER - Error |
What to check: Attributes issuedBy and TypeOfTIN must always be present, except GIR3003/GIR3004.
70006 - TypeOfTIN=GIR3004 not allowed in QIIR Exception TIN
| Message | TypeOfTIN=GIR3004 not allowed in QIIR Exception TIN |
| XSD path | UPE/CE -> ID -> TIN |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: UPE, CE, QIIR Exception cannot use GIR3004 or Unknown. A real TIN is required.
70010 - UPE ResCountryCode must be unique
| XSD path | UPE -> ResCountryCode |
| Status | Inherent to the relational model. No validation needed. |
Inherent: The OECD rule requires that no second ResCountryCode element exists within the same UPE ID. In our flat relational model (one scalar field per row), this is satisfied by construction: it is physically impossible for a single tUPE row to have two ResCountryCode values. No validation surface exists.
70011 - CE ResCountryCode must be unique
| XSD path | CE -> ResCountryCode |
| Status | Inherent to the relational model. No validation needed. |
Inherent: Same rule as 70010 but applied to CE. The XSD maxOccurs=1 cardinality is reflected in a single scalar field, impossible to duplicate at the row level.
70012 - UPEs in same jurisdiction must have same Rules (except GIR204)
| Message | UPEs in same jurisdiction must have same Rules (except GIR204) |
| XSD path | UPE/CE -> Rules |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: All entities in the same jurisdiction must have the same Rules (except GIR204).
70013 - GIR313 and GIR314 cannot coexist
| Message | GIR313 and GIR314 cannot coexist |
| XSD path | CE -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR313 and GIR314 cannot coexist in the same CE.
70014 - GIR307 and GIR308 cannot coexist
| Message | GIR307 and GIR308 cannot coexist |
| XSD path | CE -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR307 and GIR308 cannot coexist in the same CE.
70015 - GIR308 requires another CE with GIR307
| Message | GIR308 requires another CE with GIR307 |
| XSD path | CE -> GlobeStatus |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If a CE has GIR308, there must be another CE with GIR307. The validation searches all CEs in the same CorporateStructure, not just the current CE.
70016 - GIR307 also requires GIR309
| Message | GIR307 also requires GIR309 |
| XSD path | CE -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR307 also requires GIR309 in the same CE.
70017 - GIR308 also requires GIR309
| Message | GIR308 also requires GIR309 |
| XSD path | CE -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR308 also requires GIR309 in the same CE.
70018 - GIR305 and GIR306 cannot coexist
| Message | GIR305 and GIR306 cannot coexist |
| XSD path | CE -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR305 and GIR306 cannot coexist in the same CE.
70019 - GIR305 requires another CE with GIR306
| Message | GIR305 requires another CE with GIR306 |
| XSD path | CE -> GlobeStatus |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If there is a CE with GIR305, there must be another CE with GIR306. The validation searches all CEs in the same CorporateStructure, not just the current CE.
70020 - GIR316/GIR318 must not have another GlobeStatus
| Message | GIR316/GIR318 must not have another GlobeStatus |
| XSD path | CE -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR316/GIR318 must not have another GlobeStatus value.
70021 - GIR316/GIR318 require OwnershipChange
| Message | GIR316/GIR318 require OwnershipChange |
| XSD path | CE -> GlobeStatus + OwnershipChange |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: CE with GIR316/GIR318 requires OwnershipChange.
70022 - ChangeDate must not be earlier than Period.Start
| Message | ChangeDate must not be earlier than Period.Start |
| XSD path | OwnershipChange -> ChangeDate |
| Category | FO - Format |
| Severity | ER - Error |
What to check: ChangeDate must not be earlier than Period.Start.
70023 - ChangeDate must not be later than Period.End
| Message | ChangeDate must not be later than Period.End |
| XSD path | OwnershipChange -> ChangeDate |
| Category | FO - Format |
| Severity | ER - Error |
What to check: ChangeDate must not be later than Period.End.
70024 - GIR719 does not allow PreOwnership
| Message | GIR719 does not allow PreOwnership |
| XSD path | OwnershipChange -> PreGlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: If PreGlobeStatus is GIR719, PreOwnership must not be completed.
70026 - PE requires OwnershipPercentage=100%
| Message | PE requires OwnershipPercentage=100% |
| XSD path | CE -> Ownership |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: PE (GIR305) requires OwnershipPercentage=100%.
70027 - GIR318 requires OwnershipPercentage=0%
| Message | GIR318 requires OwnershipPercentage=0% |
| XSD path | CE -> Ownership |
| Category | FO - Format |
| Severity | ER - Error |
What to check: GIR318 requires OwnershipPercentage=0%, TIN=NOTIN, TypeOfTIN=GIR3004.
70029 - Ownership GIR801 TIN must match TIN de UPE
| Message | Ownership GIR801 TIN must match TIN de UPE |
| XSD path | Ownership.TIN + UPE.TIN |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: OwnershipType GIR801: TIN must match a UPE TIN.
70030 - Ownership GIR802/803/804 TIN must match a CE TIN in the group
| Message | Ownership GIR802/803/804 TIN not found in any CE of the group |
| XSD path | Ownership.TIN + CorporateStructure -> CE -> TIN (all CEs) |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: OwnershipType GIR802/803/804 indicates the owner is another CE. The TIN must exist in any CE of the group, not only the parent CE. Check that the TIN is declared in one of the CEs in the same CorporateStructure.
70031 - Ownership GIR305 TIN must match TIN of entity GIR306 (CE or UPE)
| Message | Ownership GIR305 TIN must match TIN de entidad GIR306 |
| XSD path | Ownership.TIN + CE/UPE with GIR306 -> TIN |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: PE (GIR305): Ownership TIN must match the TIN of the related GIR306 entity. Search includes both CEs and UPE/OtherUPE with GlobeStatus GIR306.
70032 - QIIR requires Rules with GIR201 or GIR202
| Message | QIIR requires Rules with GIR201 or GIR202 |
| XSD path | CE -> QIIR + Rules |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If QIIR data is present, Rules must contain GIR201 or GIR202.
70033 - QIIR Exception TIN does not match any CE TIN
| Message | QIIR Exception TIN does not match any CE TIN |
| XSD path | QIIR.Exception.TIN + CE.TIN |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: QIIR Exception TIN must match a CE TIN.
70034 - POPE_IPE=GIR902 requires Art2.1.3=True
| Message | POPE_IPE=GIR902 requires Art2.1.3=True |
| XSD path | CE -> QIIR -> ExceptionRule |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Art2.1.3 and Art2.1.5 are exclusive. Use Art2.1.3 with POPE_IPE=GIR902.
70035 - POPE_IPE=GIR901 requires Art2.1.5=True
| Message | POPE_IPE=GIR901 requires Art2.1.5=True |
| XSD path | CE -> QIIR -> ExceptionRule |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Art2.1.3 and Art2.1.5 are exclusive. Use Art2.1.5 with POPE_IPE=GIR901.
70036 - JurisdictionSection with SubGroup requires Summary
| Message | JurisdictionSection with SubGroup requires Summary |
| XSD path | JurisdictionSection + Summary -> JurisdictionName |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: If a JurisdictionSection has a SubGroup, a Summary must exist for the same jurisdiction.
70037 - SummarySubgroup TIN not found in JurWithTRSubgroup
| Message | SummarySubgroup TIN not found in JurWithTRSubgroup |
| XSD path | Summary.Subgroup.TIN + Jurisdiction.Subgroup.TIN |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: Subgroup TINs in Summary must match Subgroup TINs in JurisdictionSection.
70039 - SafeHarbour GIR1206 not valid if Period.End > 31/12/2026
| Message | SafeHarbour GIR1206 not valid if Period.End > 31/12/2026 |
| XSD path | Summary -> SafeHarbour + Period.End |
| Category | FO - Format |
| Severity | ER - Error |
What to check: SafeHarbour GIR1206 not valid if Period.End is after 31/12/2026.
70040 - SafeHarbour GIR1206 only valid in UPE jurisdiction
| Message | SafeHarbour GIR1206 only valid in UPE jurisdiction |
| XSD path | Summary -> JurisdictionName + UPE -> ResCountryCode |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: SafeHarbour GIR1206 is only valid in the UPE jurisdiction.
70042 - JurWithTR present requires ETRRange, SBIE, QDMTTut and GLoBETut
| Message | JurWithTR present requires ETRRange, SBIE, QDMTTut and GLoBETut |
| XSD path | Summary -> JurWithTR / ETRRange / SBIE / QDMTTut / GLoBETut |
| Category | OB - Required |
| Severity | ER - Error |
What to check: If JurWithTR present and SafeHarbour empty or GIR1206, ETRRange, SBIE, QDMTTut and GLoBETut are required.
70043 - SafeHarbour GIR1202 requires ETRRange, SBIE and QDMTTut
| Message | SafeHarbour GIR1202 requires ETRRange, SBIE and QDMTTut |
| XSD path | Summary -> SafeHarbour + ETRRange / SBIE / QDMTTut |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1202 requires ETRRange, SBIE and QDMTTut.
70044 - ETR requires ETRException or CEComputation
| Message | ETR requires ETRException or CEComputation |
| XSD path | JurisdictionSection -> ETR -> ETRStatus |
| Category | OB - Required |
| Severity | ER - Error |
What to check: ETRStatus must contain ETRException or CEComputation.
70046 - TransitionalCbCRSafeHarbour requires TypeofSubGroup GIR1607 or GIR1608
| Message | TransitionalCbCRSafeHarbour requires TypeofSubGroup GIR1607 or GIR1608 |
| XSD path | ETR -> ETRSubGroup -> TypeofSubGroup |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: TransitionalCbCRSafeHarbour requires Subgroup Type GIR1607 or GIR1608.
70047 - SafeHarbour GIR1203 requires TransitionalRevenue
| Message | SafeHarbour GIR1203 requires TransitionalRevenue |
| XSD path | ETR.ETRException + Summary.SafeHarbour |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1203 requires TransitionalRevenue.
70048 - SafeHarbour GIR1204 requires TransitionalIncomeTax
| Message | SafeHarbour GIR1204 requires TransitionalIncomeTax |
| XSD path | ETR.ETRException + Summary.SafeHarbour |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1204 requires TransitionalIncomeTax.
70049 - SafeHarbour GIR1206 requires UTPRSafeCITRate
| Message | SafeHarbour GIR1206 requires UTPRSafeCITRate |
| XSD path | ETR.ETRException + Summary.SafeHarbour |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1206 requires UTPRSafeCITRate.
70051 - SafeHarbour GIR1208 requires AggregateSimplified in Non-MaterialCE
| Message | SafeHarbour GIR1208 requires AggregateSimplified in Non-MaterialCE |
| XSD path | Summary.SafeHarbour + NonMaterialCE |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1208 requires AggregateSimplified in Non-MaterialCE.
70052 - SafeHarbour GIR1209 requires SubstanceExclusion
| Message | SafeHarbour GIR1209 requires SubstanceExclusion |
| XSD path | Summary.SafeHarbour + SubstanceExclusion |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1209 requires SubstanceExclusion.
70053 - SafeHarbour GIR1205 with Profit>0 requires SubstanceExclusion
| Message | SafeHarbour GIR1205 with Profit>0 requires SubstanceExclusion |
| XSD path | ETR + Overall.SubstanceExclusion |
| Category | OB - Required |
| Severity | ER - Error |
What to check: SafeHarbour GIR1205 with Profit>0 requires SubstanceExclusion.
70055 - QualOwnerIntentBalance is required in Art3.2.1.c
| Message | QualOwnerIntentBalance is required in Art3.2.1.c |
| XSD path | ETR -> Election -> Art3.2.1.c |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: Art3.2.1.c: OutstandingBalance = QualOwnerIntentBalance + Additions - Reductions.
70057 - AggregatedReporting TIN must match CE TIN
| Message | AggregatedReporting TIN must match CE TIN |
| XSD path | CEComp -> AggReporting |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: AggregatedReporting: TIN must match the CE TIN.
70058 - Art7.6 InvestmentEntityTIN cannot match CE TIN
| Message | Art7.6 InvestmentEntityTIN cannot match CE TIN |
| XSD path | CEComp -> Art7.6 |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: Art7.6: InvestmentEntityTIN cannot match the CE TIN.
70059 - AdjustmentItem not repeated within the same ETR
| XSD path | Overall/CE -> NetGlobeIncome -> AdjustmentItem |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Each AdjustmentItem in NetGlobeIncome must be unique within the same ETR. Applies to both Overall level (OverallComputation) and CE level (CEComputation), reusing the same code because OECD does not define an equivalent CE-level code.
70060 - GIR2025 requires InternationalShippingIncome
| Message | GIR2025 requires InternationalShippingIncome |
| XSD path | Overall -> NetGlobeIncome + IntShipping |
| Category | OB - Required |
| Severity | ER - Error |
What to check: AdjustmentItem GIR2025 requires InternationalShippingIncome.
70061 - Art4.6.1 election requires GIR2711 with negative Amount
| Message | Art4.6.1 election requires GIR2711 with negative Amount |
| XSD path | Overall + Election Art4.6.1 |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Art4.6.1 election requires GIR2711 with negative Amount.
70062 - GIR2720 requires AdjustedCoveredTax/Total not negative
| Message | GIR2720 requires AdjustedCoveredTax/Total not negative |
| XSD path | Overall -> AdjCoveredTax -> Total |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: GIR2720 requires AdjustedCoveredTax/Total non-negative.
70064 - DeferTaxAsset/Total must match sum of AmountAttributed
| Message | DeferTaxAsset/Total must match sum of AmountAttributed |
| XSD path | Overall -> PostFiling -> DeferTaxAsset |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: DeferTaxAsset/Total must match sum of AmountAttributed.
70065 - CoveredTaxRefund/Total must match sum of AmountAttributed
| Message | CoveredTaxRefund/Total must match sum of AmountAttributed |
| XSD path | Overall -> PostFiling -> CovTaxRefund |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: CovTaxRefund/Total must match sum of AmountAttributed.
70066 - Year is required in DeferTaxAsset/AmountAttributed
| Message | Year is required in DeferTaxAsset/AmountAttributed |
| XSD path | Overall -> PostFiling -> DeferTaxAsset -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: DeferTaxAsset/Year year must not be later than Period.Start.
70067 - DeferTaxAsset/Year duplicate in AmountAttributed
| Message | DeferTaxAsset/Year duplicate in AmountAttributed |
| XSD path | Overall -> PostFiling -> DeferTaxAsset -> Year |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: No duplicate years in DeferTaxAsset/AmountAttributed.
70068 - Year is required in CoveredTaxRefund/AmountAttributed
| Message | Year is required in CoveredTaxRefund/AmountAttributed |
| XSD path | Overall -> PostFiling -> CovTaxRefund -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: CovTaxRefund/Year year must not be later than Period.Start.
70069 - CoveredTaxRefund/Year duplicate in AmountAttributed
| Message | CoveredTaxRefund/Year duplicate in AmountAttributed |
| XSD path | Overall -> PostFiling -> CovTaxRefund -> Year |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: No duplicate years in CovTaxRefund/AmountAttributed.
70070 - Year is required in Recapture
| Message | Year is required in Recapture |
| XSD path | Overall -> DeemedDistTax -> Recapture -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: DeemedDistTax/Year must not be later than Period.End.
70071 - DeemedDistTax/Year cannot be 4 or more years before Period.End
| Message | DeemedDistTax/Year cannot be 4 or more years before Period.End |
| XSD path | Overall -> DeemedDistTax -> Recapture -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: DeemedDistTax/Year cannot be 4+ years before Period.End.
70072 - EndAmount must match StartAmount - TotalDDT
| Message | EndAmount must match StartAmount - TotalDDT |
| XSD path | Overall -> DeemedDistTax -> Recapture |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: EndAmount must equal StartAmount - TotalDDT.
70073 - EndAmount must not be negative
| Message | EndAmount must not be negative |
| XSD path | Overall -> DeemedDistTax -> EndAmount |
| Category | FO - Format |
| Severity | ER - Error |
What to check: EndAmount must not be negative.
70074 - TotalDDT must match sum of DDTYear-0..3
| Message | TotalDDT must match sum of DDTYear-0..3 |
| XSD path | Overall -> DeemedDistTax -> TotalDDT |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: TotalDDT = DDTYear0 + DDTYear1 + DDTYear2 + DDTYear3.
70075 - DDTYear must be 0 cuando RecaptureYear = Period.End
| Message | DDTYear must be 0 cuando RecaptureYear = Period.End |
| XSD path | Overall -> DeemedDistTax -> Recapture |
| Category | FO - Format |
| Severity | ER - Error |
What to check: If RecaptureYear = Period.End, all DDTYear values must be 0.
70076 - TransBlendCFC/Total must match Sum(AggAllocTax)
| Message | TransBlendCFC/Total must match Sum(AggAllocTax) |
| XSD path | Overall -> TransBlendCFC |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: TransBlendCFC/Total must match sum of AggAllocTax.
70077 - DeferTaxAdjustAmt/Total must be PreRecast + RecastLower - RecastHigher
| Message | DeferTaxAdjustAmt/Total must be PreRecast + RecastLower - RecastHigher |
| XSD path | Overall -> DeferTaxAdjustAmt |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: DeferTaxAdjustAmt/Total = PreRecast + RecastLower - RecastHigher.
70078 - BefRecastAdjust must be DefTaxAmt - DiffCarryValue + GLoBEValue
| Message | BefRecastAdjust must be DefTaxAmt - DiffCarryValue + GLoBEValue |
| XSD path | Overall -> DeferTaxAdjustAmt |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: BefRecastAdjust = DefTaxAmt - DiffCarryValue + GLoBEValue.
70079 - PreRecast must be BefRecastAdjust + TotalAdjust
| Message | PreRecast must be BefRecastAdjust + TotalAdjust |
| XSD path | Overall -> DeferTaxAdjustAmt |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: PreRecast = BefRecastAdjust + TotalAdjust.
70082 - Only one of AssetStart or AssetRecast may be non-zero
| Message | Only one of AssetStart or AssetRecast may be non-zero |
| XSD path | Overall -> Transition -> DeferredTaxAssets |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Only one of AssetStart or AssetRecast can be non-zero.
70083 - ExcessNeg/Remaining must be PriorYearBalance + GeneratedInRFY - UtilizedInRFY
| Message | ExcessNeg/Remaining must be PriorYearBalance + GeneratedInRFY - UtilizedInRFY |
| XSD path | Overall -> ExcessNegTaxExpense |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: ExcessNeg/Remaining = PriorYearBalance + GeneratedInRFY - UtilizedInRFY.
70084 - GIR2719 Amount must match ExcessNeg_GeneratedInRFY
| Message | GIR2719 Amount must match ExcessNeg_GeneratedInRFY |
| XSD path | Overall -> AdjCoveredTax + ExcessNeg |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: GIR2719: Amount must match ExcessNeg_GeneratedInRFY.
70085 - GIR2720 Amount must match ExcessNeg_UtilizedInRFY
| Message | GIR2720 Amount must match ExcessNeg_UtilizedInRFY |
| XSD path | Overall -> AdjCoveredTax + ExcessNeg |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: GIR2720: Amount must match ExcessNeg_UtilizedInRFY.
70086 - ExcessProfits must be Max(0, NetGlobeInc_Total - SubstanceExcl_Total)
| Message | ExcessProfits must be Max(0, NetGlobeInc_Total - SubstanceExcl_Total) |
| XSD path | Overall -> ExcessProfits |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: ExcessProfits = Max(0, NetGlobeInc_Total - SubstanceExcl_Total).
70087 - SubstanceExcl/Total must be PayrollCost×MarkUp + TangibleAsset×Markup
| Message | SubstanceExcl/Total must be PayrollCost×MarkUp + TangibleAsset×Markup |
| XSD path | Overall -> SubstanceExclusion |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: SubstanceExcl/Total = PayrollCost x MarkUp + TangibleAsset x Markup.
70088 - NetGlobeInc_Total negative requires AdditionalTopUpTax Art4.1.5
| Message | NetGlobeInc_Total negative requires AdditionalTopUpTax Art4.1.5 |
| XSD path | Overall + AdditionalTopUpTax -> Art4.1.5 |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: Negative NetGlobeInc_Total requires AdditionalTopUpTax Art4.1.5.
70089 - Art4.1.5 AdjustedCoveredTax must be negative
| Message | Art4.1.5 AdjustedCoveredTax must be negative |
| XSD path | AdditionalTopUpTax -> Art4.1.5 |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Art4.1.5: AdjustedCoveredTax must be negative.
70090 - Art4.1.5/GlobeLoss must match NetGlobeIncome/Total
| Message | Art4.1.5/GlobeLoss must match NetGlobeIncome/Total |
| XSD path | AdditionalTopUpTax -> GlobeLoss |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: Art4.1.5/GlobeLoss must match NetGlobeIncome/Total.
70091 - ExpectedAdjustedCoveredTax is required in Art4.1.5
| Message | ExpectedAdjustedCoveredTax is required in Art4.1.5 |
| XSD path | AdditionalTopUpTax -> Expected |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: ExpectedAdjustedCoveredTax = GlobeLoss x 15%.
70092 - AdditionalTopUpTax is required in Art4.1.5
| Message | AdditionalTopUpTax is required in Art4.1.5 |
| XSD path | AdditionalTopUpTax -> Total |
| Category | CO - Semantic rule |
| Severity | WA - Warning |
What to check: AdditionalTopUpTax = Max(0, Expected - AdjustedCoveredTax). Warning only.
70093 - Year is required in NONArt4.1.5
| Message | Year is required in NONArt4.1.5 |
| XSD path | NONArt4.1.5 -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: NONArt4.1.5/Year must not be later than Period.End.
70094 - GIR2605 requires NONArt4.1.5/Year at least 4 years before Period.End
| Message | GIR2605 requires NONArt4.1.5/Year at least 4 years before Period.End |
| XSD path | NONArt4.1.5 -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: GIR2605 requires NONArt4.1.5/Year at least 4 years before Period.End.
70095 - GIR2602 requires NONArt4.1.5/Year = 5th year before Period.End
| Message | GIR2602 requires NONArt4.1.5/Year = 5th year before Period.End |
| XSD path | NONArt4.1.5 -> Year |
| Category | FO - Format |
| Severity | ER - Error |
What to check: GIR2602 requires NONArt4.1.5/Year = 5th year before Period.End.
70096 - AdditionalTopUpTax is required in NONArt4.1.5
| Message | AdditionalTopUpTax is required in NONArt4.1.5 |
| XSD path | NONArt4.1.5 |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: AdditionalTopUpTax in NONArt4.1.5 = Recalculated - Previous.
70097 - InclusionRatio incorrect
| Message | InclusionRatio incorrect |
| XSD path | IIR -> ParentEntity -> InclusionRatio |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: InclusionRatio = (NetGlobeIncome - OtherOwnershipAllocation) / NetGlobeIncome.
70098 - TopUpTaxShare must be TopUpTax x InclusionRatio
| Message | TopUpTaxShare must be TopUpTax x InclusionRatio |
| XSD path | IIR -> ParentEntity -> TopUpTaxShare |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: TopUpTaxShare = TopUpTax x InclusionRatio.
70099 - Sum(UTPRTopUpTaxAttributed) must match Sum(TotalUTPRTopUpTax)
| Message | Sum(UTPRTopUpTaxAttributed) must match Sum(TotalUTPRTopUpTax) |
| XSD path | UTPRAttribution <-> UTPRCalculation |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: Sum of UTPRTopUpTaxAttributed must match TotalUTPRTopUpTax.
70100 - TotalUTPRTopUpTax > 0 requires UTPRAttribution
| Message | TotalUTPRTopUpTax > 0 requires UTPRAttribution |
| XSD path | Jurisdiction.UTPR + UTPRAttribution |
| Category | OB - Required |
| Severity | ER - Error |
What to check: If TotalUTPRTopUpTax > 0, UTPRAttribution is required.
70101 - UTPRTopUpTaxCarryForward requires Employees
| Message | UTPRTopUpTaxCarryForward requires Employees |
| XSD path | UTPRAttribution -> Employees |
| Category | OB - Required |
| Severity | ER - Error |
What to check: UTPRTopUpTaxCarryForward > 0 requires Employees.
70102 - UTPRTopUpTaxCarryForward requires TangibleAssetValue
| Message | UTPRTopUpTaxCarryForward requires TangibleAssetValue |
| XSD path | UTPRAttribution -> TangibleAssetValue |
| Category | OB - Required |
| Severity | ER - Error |
What to check: UTPRTopUpTaxCarryForward > 0 requires TangibleAssetValue.
70103 - UTPRPercentage must be 0% cuando UTPRTopUpTaxCarryForward > 0
| Message | UTPRPercentage must be 0% cuando UTPRTopUpTaxCarryForward > 0 |
| XSD path | UTPRAttribution -> UTPRPercentage |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: If CarryForward > 0, UTPRPercentage must be 0%.
70104 - UTPRTopUpTaxCarriedForward must not be negative
| Message | UTPRTopUpTaxCarriedForward must not be negative |
| XSD path | UTPRAttribution -> CarriedForward |
| Category | FO - Format |
| Severity | ER - Error |
What to check: UTPRTopUpTaxCarriedForward must not be negative.
70105 - UTPRTopUpTaxCarriedForward must be CarryForward + Attributed - AddCashTaxExpense
| Message | UTPRTopUpTaxCarriedForward must be CarryForward + Attributed - AddCashTaxExpense |
| XSD path | UTPRAttribution -> CarriedForward |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: UTPRTopUpTaxCarriedForward = CarryForward + Attributed - AddCashTaxExpense.
70106 - CrossBorderAdjustments/OtherTIN cannot match CE TIN
| Message | CrossBorderAdjustments/OtherTIN cannot match CE TIN |
| XSD path | CEComp -> CrossBorder -> OtherTIN |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: CrossBorderAdjustments: OtherTIN cannot match the CE TIN.
70107 - UPEAdjustments/Reductions/Exception does not allow CrossBorderAdjustments
| Message | UPEAdjustments/Reductions/Exception does not allow CrossBorderAdjustments |
| XSD path | CEComp -> UPEAdjustments |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: UPEAdjustments: if ReductionsException=TRUE, no CrossBorderAdjustments.
70109 - Basis GIR1907 requires IndResCountryCode in UPE Owner
| Message | Basis GIR1907 requires IndResCountryCode in UPE Owner |
| XSD path | CEComp -> UPEAdjustments -> Owner |
| Category | OB - Required |
| Severity | ER - Error |
What to check: Basis GIR1907 requires IndResCountryCode in UPE Owner.
70112 - Basis GIR1904 does not allow ExTypeOfEntity=GIR2805
| Message | Basis GIR1904 does not allow ExTypeOfEntity=GIR2805 |
| XSD path | CEComp -> UPEAdjustments -> Owner |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Basis GIR1904: ExTypeOfEntity cannot be GIR2805.
70113 - Basis GIR1909 does not allow ExTypeOfEntity=GIR2804
| Message | Basis GIR1909 does not allow ExTypeOfEntity=GIR2804 |
| XSD path | |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check:
70114 - Amounts in CE NetGlobeIncome must have opposite signs
| Message | Amounts in CE NetGlobeIncome must have opposite signs |
| XSD path | CEComp -> NetGlobeIncome -> Amount |
| Category | FO - Format |
| Severity | ER - Error |
What to check: If two Amounts in CE NetGlobeIncome, they must have opposite signs.
70116 - AdjustmentItem GIR2025 requires IntShippingIncome
| Message | AdjustmentItem GIR2025 requires IntShippingIncome |
| XSD path | CEComp -> NetGlobeIncome + IntShippingIncome |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: AdjustmentItem GIR2025 requires IntShippingIncome.
70117 - AdjustmentItem GIR2024 requires Art7.6 election
| Message | AdjustmentItem GIR2024 requires Art7.6 election |
| XSD path | CEComp + Art7.6 |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: AdjustmentItem GIR2024 requires Art7.6 election.
70118 - Amounts in CE AdjustedCoveredTax must have opposite signs
| Message | Amounts in CE AdjustedCoveredTax must have opposite signs |
| XSD path | CEComp -> AdjCoveredTax -> Amount |
| Category | FO - Format |
| Severity | ER - Error |
What to check: If two Amounts exist in CE AdjustedCoveredTax they must have opposite signs (same logic as 70114/70122).
70120 - CE DeferTaxAdjustAmt/Total must be DeferTaxExpense + ΣAmount + ΣRecastHigher + Σ
| Message | CE DeferTaxAdjustAmt/Total must be DeferTaxExpense + ΣAmount + ΣRecastHigher + ΣRecastLower |
| XSD path | CEComp -> DeferTaxAdjustAmt -> Total |
| Category | CA - Calculation |
| Severity | ER - Error |
What to check: DeferTaxAdjustAmt/Total = DeferTaxExpense + Sum(Amount) + Recast.
70122 - Amounts in CE DeferTaxAdjustAmt must have opposite signs
| Message | Amounts in CE DeferTaxAdjustAmt must have opposite signs |
| XSD path | CEComp -> DeferTaxAdjustAmt -> Amount |
| Category | FO - Format |
| Severity | ER - Error |
What to check: If two Amounts in CE DeferTaxAdjustAmt, opposite signs.
70123 - CE CrossAllocation/Additions must not be negative
| Message | CE CrossAllocation/Additions must not be negative |
| XSD path | CEComp -> CrossAllocation -> Additions |
| Category | FO - Format |
| Severity | ER - Error |
What to check: CrossAllocation: Additions must not be negative.
70124 - CE CrossAllocation/Reductions must not be positive
| Message | CE CrossAllocation/Reductions must not be positive |
| XSD path | CEComp -> CrossAllocation -> Reductions |
| Category | FO - Format |
| Severity | ER - Error |
What to check: CrossAllocation: Reductions must not be positive.
GVAL001 - CodigoPresentacion must be ES{AAAA}241{NIF9}{id} (uppercase letters and numbers
| Message | CodigoPresentacion must be ES{AAAA}241{NIF9}{id} (uppercase letters and numbers only) |
| XSD path | Declaration -> CodigoPresentacion |
| Category | FO - Format |
| Severity | ER - Error |
What to check: CodigoPresentacion: ES{AAAA}241{NIF}{id}. Uppercase letters and numbers only.
GVAL002 - Art5_3_1 (SBIE opt-out) incompatible with Safe Harbour requiring SBIE
| XSD path | ETR.Election Art5.3.1 + Summary.SafeHarbour |
| Category | ES - Structure |
| Severity | ER - Error |
What to check: The Art5.3.1 election (SBIE opt-out) is incompatible with Safe Harbours that require SBIE or SubstanceExclusion (GIR1205, GIR1207, GIR1208, GIR1209). If SBIE opt-out is active, these Safe Harbours cannot be applied.
GVAL003 - FYTriggerEvent is required in Art6.3.4
| Message | FYTriggerEvent is required in Art6.3.4 |
| XSD path | CEComp -> Art6.3.4 -> Inclusion |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Art6.3.4: FYTriggerEvent required. Only one of Inclusion_c_i or Inclusion_c_ii.
GVAL004 - ElectionYear is required in CurrencyElection
| Message | ElectionYear is required in CurrencyElection |
| XSD path | Overall -> QDMTT -> CurrencyElection |
| Category | OB - Required |
| Severity | ER - Error |
What to check: CurrencyElection: ElectionYear and Currency required.
GXSD001 - UPE requires at least 1 TIN
| Message | UPE requires at least 1 TIN |
| XSD path | UPE/CE -> ID -> TIN |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Every UPE and CE must have at least one TIN.
GXSD002 - OtherUPE requires at least 1 Rules
| Message | OtherUPE requires at least 1 Rules |
| XSD path | UPE/CE -> ID -> Rules |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Every UPE (except ExcludedUPE) and CE must have at least one Rules.
GXSD003 - UPE requires at least 1 GlobeStatus
| Message | UPE requires at least 1 GlobeStatus |
| XSD path | UPE/CE -> ID -> GlobeStatus |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Every UPE and CE must have at least one GlobeStatus.
GXSD004 - Summary requires at least 1 RecJurCode
| Message | Summary requires at least 1 RecJurCode |
| XSD path | Summary -> RecJurCode |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Each Summary must have at least one RecJurCode.
GXSD005 - Summary requires JurisdictionName
| Message | Summary requires JurisdictionName |
| XSD path | Summary -> JurisdictionName |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Each Summary must have a JurisdictionName.
GXSD006 - InitialIntActivity requires at least one OtherJurisdiction
| Message | InitialIntActivity requires at least one OtherJurisdiction |
| XSD path | JurisdictionSection -> InitialIntActivity -> OtherJurisdiction |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: If InitialIntActivity has data, at least one OtherJurisdiction is required.
GXSD007">GXSD007 - Maximum 5 ResCountryCode per same TangibleAssetValue
| XSD path | InitialIntActivity -> OtherJurisdiction -> ResCountryCode |
| Category | OB - Required |
| Severity | ER - Error |
What to check: XSD limits to 5 the number of countries (ResCountryCode) sharing the same TangibleAssetValue within OtherJurisdiction. Check there are no more than 5 entries with the same TAV.
GXSD007 - Maximum 5 ResCountryCode per same TangibleAssetValue
| XSD path | InitialIntActivity -> OtherJurisdiction -> ResCountryCode |
| Category | OB - Required |
| Severity | ER - Error |
What to check: XSD limits to 5 the number of countries (ResCountryCode) sharing the same TangibleAssetValue within OtherJurisdiction. Check there are no more than 5 entries with the same TAV.
GXSD008 - No more than 3 FinancialData records allowed (XSD maxOccurs=3)
| Message | No more than 3 FinancialData records allowed (XSD maxOccurs=3) |
| XSD path | ETRException -> DeminimisFinancialData |
| Category | CO - Semantic rule |
| Severity | ER - Error |
What to check: Maximum 3 FinancialData records per ETRException.
GCOH001 - ETR coherence: calculated vs manual values differ
| Message | Calculated ETR values differ from manual values |
| XSD path | JurisdictionSection -> ETR (ETRRate, TopUpTaxPercentage, TopUpTax) |
| Category | CO - Semantic rule |
| Severity | WA - Warning |
What to check: Manual ETRRate, TopUpTaxPercentage or TopUpTax values differ from CalcularETR results. Recalculate or confirm the manual values are intentional.