Registry entry
Dominican Republic DGII Formulario IR-2 — Declaración Jurada Anual del Impuesto Sobre la Renta de Sociedades (Annual Corporate Income Tax Return)
The Dirección General de Impuestos Internos' (DGII) official Formulario IR-2, the annual sworn corporate income tax return filed by legal entities (Sociedades de Responsabilidad Limitada, Sociedades Anónimas, Empresas Individuales de Responsabilidad Limitada, and similar) under the Dominican Republic's Código Tributario (Ley 11-92). The official distribution is a single multi-sheet Excel workbook (Tax Year/Versión 2018 edition, `.xls`, legacy OLE2/BIFF8 format with an embedded VBA macro project that hides/shows sector-specific annex sheets) containing 17 worksheets in total. This document opens the Dominican Republic as a new jurisdiction (Taxes, 1 of 6 verticals) and is scoped to the core `IR-2` worksheet alone — the return itself — covering: the identification block (Datos Generales de la Sociedad: type of return, economic-sector selection, whether the filer holds investments in other companies, RNC, corporate/trade name, contact details, activity start date, and the fiscal-year/period being declared); every one of the return's own 35 numbered income-determination and settlement lines (Casillas A, B, and 1 through 33, spanning section II 'Determinación de la Renta Neta Imponible o Pérdida Fiscal' and the 'Liquidación' section); and the verification/declaration block (Section IV, the sworn declarant statement) plus the optional third-party filing-authorization block (Section V). Out of scope for this version, disclosed rather than silently omitted: the return's own 16 supporting Anexos, each a distinct worksheet with its own large, structurally-different layout — Anexo D, D-1, and D-2 ('Datos Informativos' / inflation-adjustment basis computations), Anexo A-1/A-2/A-3 ('Balance General' — Manufactura/Comercio/Agropecuaria/Hoteles y Afines, Bancos y Financieras, and Compañías de Seguros variants respectively), Anexo B-1/B-2/B-3/B-4 ('Estado de Resultados', the same four sector variants), Anexo E ('Datos Complementarios' — prior-year losses and advance-payment income), Anexo G ('Ajustes Fiscales'), Anexo H-1/H-2 ('Identificación del Beneficiario Final y Actualización de Datos' — ultimate-beneficial-owner and company-data-update disclosure, mandatory per DGII's instructivo on every filing but a structurally distinct and substantial annex), Anexo J ('Datos Informativos' — invoice/comprobante-fiscal summary from Formatos 606/607), and the standalone 'Formulario para la Liquidación del Impuesto a los Activos' (asset-tax settlement, sheet 'Activo') — a related but separate tax computation, not the income-tax return itself. Many of the IR-2 worksheet's own headline lines are themselves live Excel formulas that pull their value from one of these out-of-scope annexes (or from a sector-conditional lookup driven by the workbook's own 'SECTOR_ECONOMICO' named cell); this document models each such line as a single reported headline figure (matching what the return itself displays), with its field-level `description` disclosing whether the source workbook computes it automatically from an out-of-scope annex or accepts it as direct taxpayer entry, a distinction independently confirmed line-by-line both from the workbook's own formula/blank-cell structure and from the DGII's own companion instructivo document's per-line prose ('Esta casilla se completa automáticamente' for computed lines, 'Colocar en esta casilla...' for direct-entry lines). This document describes the form only; it does not submit anything on the filer's behalf, and does not imply endorsement by the Dominican Republic or the Dirección General de Impuestos Internos. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of the Dominican Republic.
Registry entry
do/dgii/annual-corporate-income-tax-return-ir-2
Authoritative source DGII Formulario IR-2 (Versión 2018), worksheet 'IR-2' — "Declaración Jurada Anual del Impuesto Sobre la Renta de Sociedades"
Machine access
- Schema document
registry/do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
53 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Fields
-
tipoDeclaracionstring requiredThe kind of return being filed. The workbook's own named cell (`TIPODECLARACION`, cell H8) is a plain, unvalidated entry cell — no enum could be independently confirmed from this legacy `.xls` workbook's own structure (its BIFF8 data-validation records are not exposed by the tooling available in this environment), so no `enum` is imposed here; DGII's standard filing convention (also used across its other Formularios) is typically "ORIGINAL" for a first-time filing or "RECTIFICATIVA" for an amended one.
-
sectorEconomicoenum requiredThe filer's economic sector, selected via the workbook's own macro-driven picker (a VBA UserForm bound to a button captioned "Seleccionar Sector Económico"), which writes an internal token (`Sector1`..`Sector5`) into the named cell `SECTOR_ECONOMICO` (S3) and drives which sector-specific Balance General/Estado de Resultados annex pair the return's own formulas pull from. The five values quoted here are the human-readable labels printed on the form itself (cells AM1:AM5), each mapped 1:1 to an internal `SectorN` token (AN1:AN5) that this document does not itself surface.
enum: Manufactura, Comercio, Agropecuaria | Hoteles y Afines | Bancos y Financieras | Compañías de Seguros | Instituciones Electricas -
inversionesEnOtrasCompaniasenum optionalWhether the filer holds equity investments in other companies (relevant to the return's own Casilla 4, dividends earned from such investments). The workbook's own named cell (`INVERSIONES`, S8) is a plain, unvalidated entry cell; "SI"/"NO" is DGII's standard convention for this style of yes/no checkbox elsewhere on its forms, not a constraint confirmed from this workbook's own (inaccessible) BIFF8 validation records.
enum: SI | NO -
rncstring requiredThe filer's Registro Nacional del Contribuyente (RNC), DGII's taxpayer-identification number for legal entities. No length/pattern constraint is imposed: this workbook's own cell-level validation rules (if any) are not accessible via the BIFF8 tooling available in this environment.
-
razonSocialstring requiredThe filer's registered legal (corporate) name.
-
nombreComercialstring optionalThe filer's trade name, if it operates publicly under a name other than its registered Razón Social.
-
telefonoDeContactostring optionalThe filer's contact telephone number.
-
correoElectronicostring optionalThe filer's contact email address.
pattern -
inicioDeActividaddate optionalThe date the filer's economic activity began.
-
fiscalYearstring requiredThe fiscal year this return covers.
-
ejercicioComercialDeldate requiredStart date of the fiscal (commercial) period this return covers. DGII's four published fiscal-closing dates are 31 December, 31 March, 30 June, or 30 September.
-
ejercicioComercialAldate requiredEnd (closing) date of the fiscal period this return covers.
-
ingresosnumber optionalCasilla A — total income accrued during the fiscal year. The workbook's own cell (AB18) is a live formula pulling the 'Total de Ingresos' figure from the filer's sector-specific Estado de Resultados annex (out of scope for this version), not a directly-entered value.
range: 0–∞ -
ingresosBrutosSujetosAnticiposnumber optionalCasilla B — gross income subject to advance-payment (anticipo) obligations for the following fiscal year. The workbook's own cell (AB19) is a live formula pulling Casilla 22 of the out-of-scope Anexo E.
range: 0–∞ -
beneficioPerdidaNetaAntesImpuestonumber optionalCasilla 1 — net profit or loss before tax for the fiscal year (may be negative — a loss). The workbook's own cell (AB20) is a live formula pulling Casilla 14 of the out-of-scope Anexo B (Estado de Resultados).
-
ajustesPositivosnumber optionalCasilla 2 — total positive fiscal adjustments for the fiscal year. The workbook's own cell (U21) is a live formula (a named range `AJUSTESPOSITIVOS_ANEXOG`) pulling Casilla 1 of the out-of-scope Anexo G (Ajustes Fiscales).
range: 0–∞ -
exencionLeyIncentivosnumber optionalCasilla 3 — the amount exempted under an incentive law the filer is registered under and authorized for by DGII. The workbook's own cell (U22) carries no formula and is left blank in the template — a directly taxpayer-entered figure.
range: 0–∞ -
dividendosGanadosOtrasCompaniasnumber optionalCasilla 4 — dividends received from the distribution of profits by other companies in which the filer holds equity investments. DGII's own instructivo describes this line with direct-entry phrasing ("Colocar en esta casilla..."), but the workbook's own cell (U23) carries a live sector-conditional formula pulling from the filer's sector-specific out-of-scope Anexo B — a disclosed inconsistency between the instructivo's prose and the workbook's own structure, not resolved either way by this document.
range: 0–∞ -
ajustesNegativosnumber optionalCasilla 5 — total negative fiscal adjustments for the fiscal year, reported as a positive magnitude (subtracted by Casilla 6's own formula). The workbook's own cell (U24) is a live formula (a named range `AJUSTESNEGATIVOS_ANEXOG`) pulling Casilla 2 of the out-of-scope Anexo G.
range: 0–∞ -
totalAjustesFiscalesnumber optionalCasilla 6 — net total fiscal adjustments (Casillas 2-3-4-5; may be negative). The workbook's own cell (AB25) is a live formula: `+U21-U22-U23-U24`.
-
rentaNetaImponibleAntesPerdidanumber optionalCasilla 7 — taxable net income (or fiscal loss — the section's own header reads "Determinación de la Renta Neta Imponible O Pérdida Fiscal") before applying prior-year losses or Ley 392-07 relief. The workbook's own cell (AB26) is a live formula: `+AB20+AB25` (Casilla 1 plus Casilla 6).
-
perdidasAnosAnterioresCompensadasnumber optionalCasilla 8 — prior-year fiscal losses carried forward and offset in the current period. The workbook's own cell (AB27) is a live formula (a named range `TotalColumnaK_E`) pulling the total of column (k) of the out-of-scope Anexo E.
range: 0–∞ -
rentaNetaImponibleDespuesPerdidanumber optionalCasilla 9 — taxable net income after offsetting prior-year losses, before Ley 392-07 relief (may be negative). The workbook's own cell (AB28) is a live formula: `AB26-AB27` (Casilla 7 minus Casilla 8).
-
deduccionPorInversionnumber optionalCasilla 10 — the amount deducted when the filer is registered under Ley No. 392-07 (Competitividad e Innovación Industrial). The workbook's own cell (AB29) carries no formula and is left blank in the template — a directly taxpayer-entered figure.
range: 0–∞ -
rentaNetaImponibleFinalnumber optionalCasilla 11 — final taxable net income the 27% tax rate is applied to (Casilla 12 only applies the rate when this figure is positive; the workbook's own formula for Casilla 12 explicitly guards against a negative or zero value here). The workbook's own cell (AB30) is a live formula: `AB28-AB29` (Casilla 9 minus Casilla 10).
-
impuestoLiquidadonumber optionalCasilla 12 — the settled tax liability, 27% of Casilla 11 (or zero, if Casilla 11 is not positive). The workbook's own cell (AB31) is a live formula: `IF(AB30>0,(AB30)*0.27,0)`.
range: 0–∞ -
anticiposPagadosnumber optionalCasilla 13 — total advance (anticipo) tax payments made during the fiscal year. Directly taxpayer-entered (the workbook's own cell, T32, carries no formula and is left blank in the template).
range: 0–∞ -
retencionesEntidadesEstadonumber optionalCasilla 14 — withholdings from sales of goods or services rendered to State entities (per Formato de Envío 623). Directly taxpayer-entered (cell T33 is blank in the template).
range: 0–∞ -
creditoPorInversionnumber optionalCasilla 15 — investment tax credit under Article 34 of Ley No. 108-10 (the Cinema/Film law). Directly taxpayer-entered (cell T34 is blank in the template).
range: 0–∞ -
creditoEnergiaRenovablenumber optionalCasilla 16 — renewable-energy investment tax credit approved by DGII under Ley 57-07. Directly taxpayer-entered (cell T35 is blank in the template).
range: 0–∞ -
creditoRetencionesInteresBancarionumber optionalCasilla 17 — tax credit for withholdings on bank interest. Directly taxpayer-entered (cell T36 is blank in the template).
range: 0–∞ -
creditoRetencionesGananciaCapitalnumber optionalCasilla 18 — tax credit equal to 1% of capital gains, per Article I of Norma 07-1. Directly taxpayer-entered (cell T37 is blank in the template).
range: 0–∞ -
creditoImpuestosExteriornumber optionalCasilla 19 — tax credit for taxes paid abroad. Directly taxpayer-entered (cell T38 is blank in the template).
range: 0–∞ -
creditoFiscalnumber optionalCasilla 20 — tax credit under Article 39 of Ley 108-10 and Ley No. 253-12. Directly taxpayer-entered (cell T39 is blank in the template).
range: 0–∞ -
compensacionesAutorizadasOtrosPagosnumber optionalCasilla 21 — credits from compensations authorized by DGII and other prior payments. Directly taxpayer-entered (cell T40 is blank in the template).
range: 0–∞ -
saldoFavorEjercicioAnteriorNoCompensadonumber optionalCasilla 22 — uncompensated credit balance carried forward from the prior fiscal year. Directly taxpayer-entered (cell T41 is blank in the template).
range: 0–∞ -
diferenciaAPagarnumber optionalCasilla 23 — the net amount owed (Casillas 12-13-14-15-16-17-18-19-20-21-22, only when the result is positive). The workbook's own cell (AB42) is a live formula clamping to zero when the result would be negative.
range: 0–∞ -
saldoAFavornumber optionalCasilla 24 — the credit balance in the filer's favor (the same 12-through-22 subtraction chain as Casilla 23, only when the result is negative; reported here as a positive magnitude). The workbook's own cell (AB43) is a live formula clamping to zero otherwise.
range: 0–∞ -
moraPorDeclaracionTardianumber optionalCasilla 25 — the surcharge for a late return: 10% of Casilla 23 for the first month or fraction thereof, plus 4% per additional month or fraction thereof (Art. 252, Código Tributario). The workbook's own cell (AB48/T44 area) is a live formula multiplying Casilla 23 by a separately, manually-applied percentage rate cell (not itself a distinctly labeled casilla).
range: 0–∞ -
moraEnPagosAnticiposnumber optionalCasilla 26 — the surcharge on unpaid monthly anticipo installments, computed on the same 10%/4% basis as Casilla 25. Directly taxpayer-entered (cell T45 is blank in the template).
range: 0–∞ -
totalRecargosnumber optionalCasilla 27 — total surcharges (Casillas 25+26). The workbook's own cell (AB46) is a live formula: `T44+T45`.
range: 0–∞ -
sancionesnumber optionalCasilla 28 — penalties for a tax infraction sanctioned by DGII. Directly taxpayer-entered (cell AB47 is blank in the template).
range: 0–∞ -
interesIndemnizatorioDeclaracionTardianumber optionalCasilla 29 — compensatory interest for a late return, an accumulating 1.10% per month or fraction thereof applied to Casilla 23 (Art. 27, Código Tributario). The workbook's own cell (AB48) is a live formula multiplying Casilla 23 by a separately, manually-applied percentage rate cell (not itself a distinctly labeled casilla).
range: 0–∞ -
interesIndemnizatorioAnticiposnumber optionalCasilla 30 — compensatory interest on unpaid monthly anticipo installments, computed on the same 1.10%-per-month basis as Casilla 29. Directly taxpayer-entered (cell AB49 is blank in the template).
range: 0–∞ -
totalAPagarnumber optionalCasilla 31 — total amount due (Casillas 23+27+28+29+30). The workbook's own cell (AB50) is a live formula clamping to zero if the sum would be negative.
range: 0–∞ -
saldoACompensarActivoAnticiponumber optionalCasilla 32 — credit balance to be applied against the Impuesto a los Activos (asset tax) or future anticipos. Directly taxpayer-entered (cell AB51 is blank in the template).
range: 0–∞ -
nuevoSaldoAFavornumber optionalCasilla 33 — new credit balance in the filer's favor (Casillas 24-27-29-30, only when the result is negative; reported here as a positive magnitude — if positive, it instead represents an additional amount to pay). The workbook's own cell (AB52) is a live formula.
range: 0–∞ -
declarantNamestring requiredName of the person making the sworn verification declaration on the filer's behalf.
-
declarantCapacitystring requiredThe declarant's title/capacity at the filer (e.g. Presidente, Gerente General, Apoderado). Open text — no fixed enum is printed on or confirmed from the source for this blank.
-
declarationDatedate requiredDate the declarant signs the sworn declaration.
-
representativeLastNamestring optionalLast name(s) of the third party the filer authorizes to represent it before DGII in presenting and processing this return, if any. Only applicable when the optional Section V authorization is used.
-
representativeFirstNamestring optionalFirst name(s) of the authorized representative, if any.
-
representativeCedulastring optionalNational identity document (cédula) number of the authorized representative, if any.
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-15
Why this schema and why now (GOV-3114)
This candidate was pre-scouted during the GOV-3101 "GovSchema Standard Research" cycle, independently re-verified live during GOV-3109, and delegated as the standalone child issue GOV-3114 with pre-verified sourcing (URL, HTTP status, browser-User-Agent gotcha, and a binary-string-scan-derived worksheet inventory). This cycle picked up GOV-3114 directly and re-verified the source from scratch rather than trusting the prior notes as-is, per this registry's standing convention. The Dominican Republic is not yet in the registry; this document opens it as the 60th jurisdiction, via Taxes (1 of 6 verticals).
Sources examined
- Document
(id, version):do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Dirección General de Impuestos Internos (DGII).
- Primary source:
- Direct
.zip: https://dgii.gov.do/herramientas/formularios/formularioDeclaraciones/ISR/Personas%20Jur%C3%ADdicas/IR-2-2018.zip — re-fetched independently this cycle viacurlwith a browser User-Agent (the bare domain returns HTTP 403 without one — UA-sniffing, not a hard WAF, exactly as the prior scouting note described): HTTP 200, size 2,345,919 bytes, sha256cec819bb8606c26a7ed601af2d95b3c83d8371cd0d8202ff06e1295270c2bea3. - The archive contains two files, both examined:
IR-2-2018.xls— the workbook itself. Size 1,316,864 bytes, sha256ca20e12669358be12065746cee069533872ac0211b784676dcd8715de4ed06a2.Instructivo-IR-2-y-ANEXOS.pdf— DGII's own 68-page line-by-line instructions booklet for the IR-2 form and all its Anexos. Size 2,349,460 bytes, sha2564c175b2b0b986c6344355d9b875c5ecd5f596d15d13640141744d3ced2c0eb9d. Used as a second, independent source to cross-check the workbook's own structure — not relied on alone.
- The
.xlsis legacy Office (OLE2/BIFF8), confirmed by the prior scouting note and independently re-confirmed this cycle. Nounzip/pip/openpyxlis available in this environment;python3's built-inzipfilemodule extracted the archive. The BIFF8 workbook itself was parsed with the npm packagexlsx(SheetJS), installed standalone in a scratch directory for this task (not added as a repository dependency) — it directly exposes sheet names, cell values, cell formulas, merged-cell ranges, embedded shape/TextBox objects, and the raw bytes of the embedded VBA project.
- Direct
Structure independently re-confirmed
- 17 worksheets, confirmed via
wb.SheetNames:D-2,D-1,D,A-1,A-2,A-3,B-1,B-2,B-3,B-4,E,H-1,H-2,G,J,IR-2(this document's scope), andActivo— cross-checked against each worksheet's own printed title row (e.g.A-1's row 2 prints "ANEXO A-1" / "BALANCE GENERAL";B-1's prints "ANEXO B-1" / "ESTADO DE RESULTADOS"). This is a larger worksheet inventory than the prior scouting note's own preliminary list (which only named the annex categories — Estado de Resultado, Balance General, Ajustes Fiscales, Datos Informativos/Complementarios — not the full per-sector sheet count), and all of it is corroborated a second, independent way: the embedded VBA project's raw bytes (extracted via SheetJS'sbookVBAoption) literally contain the strings"Balance General (anexo A1)","Balance General (anexo A2)","Balance General (anexo A3)","Estado de Resultado (anexo B1)"through"...(anexo B4)","Ajustes Fiscales (anexo G)","Datos Complementarios (anexo E)", and"Datos Informativos (anexo D)"/"...(anexo D1)"/"...(anexo J)"— the macro's own comment/label text for a "hide annex sheets that don't match the selected sector" routine (OCULTAR HOJAS DE ANEXOS QUE NO CORRESPONDEN), bound to aSECTOR ECONÓMICOpicker UserForm. - The workbook's named ranges (via
wb.Workbook.Names) independently confirmed the identification-block cell wiring:TIPODECLARACION→IR-2cellH8,INVERSIONES→S8,SECTOR_ECONOMICO→S3, andSector1..Sector5→AN1:AN5(internal tokens), with their human-readable labels inAM1:AM5("Manufactura, Comercio, Agropecuaria","Hoteles y Afines","Bancos y Financieras","Compañías de Seguros","Instituciones Electricas").
Scope decisions
The workbook is a 17-worksheet composite — larger even than Pakistan's own 9-worksheet FBR "Manual Return" workbook (GOV-3104/GOV-3109), the closest precedent for this task. Modeling every worksheet in one version is well beyond a single cycle's ability to transcribe and independently cross-check with confidence. This v1.0.0 is scoped to the IR-2 worksheet alone — the return itself:
- Identification block modeled in full (Datos Generales de la Sociedad): Tipo de Declaración, Sector Económico, Inversiones en Otras Compañías, RNC, Razón Social, Nombre Comercial, Teléfono de Contacto, Correo Electrónico, Inicio de la Actividad, Año Fiscal, and the fiscal period (Ejercicio Comercial Del/Al).
- All 35 numbered lines of the return itself modeled (Casillas A, B, and 1 through 33 — section II "Determinación de la Renta Neta Imponible o Pérdida Fiscal" and the "Liquidación" section), each as a single reported number. This differs from the Pakistan precedent's approach of excluding a computed subtotal (Sr. 1, Property income) — here, every one of IR-2's own lines is modeled, because the task's own framing ("core IR-2 form/annex... not every ancillary worksheet") scopes at the worksheet level, not the line level, and because — unlike Pakistan's Property sub-item breakdown, which genuinely had no parent line on the in-scope worksheet at all — every one of these 35 lines is a real, numbered line printed on the IR-2 return itself.
- Each of those 35 lines' own field-level
descriptiondiscloses whether the workbook computes it automatically from an out-of-scope Anexo, or accepts it as direct taxpayer entry — confirmed two independent ways, not asserted from one source alone:- The workbook's own cell formulas: a cell carrying a live formula (e.g.
AB18'sIF(SECTOR_ECONOMICO=Sector1,Casilla4_B1,...)) is auto-computed; a cell with no formula and no value in the blank template (e.g.U22,T32..T41) is a direct-entry field. - DGII's own 68-page instructivo booklet's identical per-line prose: "Esta casilla se completa automáticamente" (this box completes itself automatically) for computed lines, versus "Colocar en esta casilla..." (enter in this box...) for direct-entry lines — independently extracted via
pdfjs-distpage-by-page text extraction (pages 56-60 of the PDF cover Casillas A through 33 line-by-line) and matched against the workbook's own formula/blank-cell status for every one of the 35 lines. - One genuine disagreement between the two sources was found and disclosed, not silently resolved: Casilla 4 ("Dividendos Ganados en Otras Compañías"). The instructivo's prose ("Colocar en esta casilla el monto de los dividendos recibido...") reads as a direct-entry instruction, but the workbook's own cell
U23carries a live sector-conditional formula (IF(SECTOR_ECONOMICO=Sector1,Casilla23_B1, IF(SECTOR_ECONOMICO=Sector2,Casilla23_B4,...))) pulling from the filer's sector-specific, out-of-scope Anexo B. This is disclosed verbatim in the field's owndescriptioninschema.json, not silently corrected either way.
- The workbook's own cell formulas: a cell carrying a live formula (e.g.
minimum: 0was applied selectively, not uniformly — a deliberate, disclosed judgment call based on each line's own section header and formula behavior, not a blanket assumption that tax-return amounts are always non-negative. Casillas 1, 6, 7, 9, and 11 (Beneficio/Pérdida Neta, Total Ajustes Fiscales, and the "Renta Neta Imponible ... o Pérdida Fiscal" chain — the section's own header explicitly allows a loss) carry nominimum, since a genuine net loss produces a negative value the workbook itself does not clamp. Every other numbered line — revenue totals, credits, withholdings, penalties, interest, and the settlement lines whose own formulas already clamp to zero or a positive magnitude (e.g. Casilla 23'sIF(...>0,...,0)guard) — carriesminimum: 0.- No field-level
pattern/enumin this document is claimed to originate from the workbook's own cell-level validation rules, unlike the Pakistan.xlsx(OOXML) precedent, which derived its CNIC pattern directly from the source's owndataValidationsXML block. This legacy.xls(BIFF8) workbook's ownDV(data-validation) records are not exposed by the SheetJS tooling available in this environment — a real tooling-capability gap between the two binary formats, disclosed here rather than glossed over.sectorEconomico's enum is derived from the workbook's own printed labels (AM1:AM5) and its ownSECTOR_ECONOMICOnamed-cell/macro wiring — a genuine structural fact, not a validation rule — buttipoDeclaracion(free text; no confirmed ORIGINAL/ RECTIFICATIVA enum in this workbook or its VBA project's raw strings) andinversionesEnOtrasCompanias(modeled as a "SI"/"NO" enum by DGII's standard convention, not confirmed from this workbook's own validation rules) are both disclosed as such in their owndescriptions. - RNC has no
patternfor the same reason (no accessible BIFF8DVrecord), rather than fabricating a digit-count regex from general knowledge of DGII's RNC format not itself confirmed against this specific source. - The verification/declaration paragraph (Section IV, "Juramento del Declarante") is modeled as a
documents[]attestationentry, quoted verbatim from the workbook's own floating TextBox object (extracted via SheetJS's!objectsarray, which is more precise than the plain cell-by-cell CSV dump — it captured the paragraph's exact wording including "por la presente afirmo bajo juramento..."). Its blanks — declarant name and capacity — are modeled asdeclarantNameanddeclarantCapacity(open text; no fixed enum, unlike Pakistan's binary Self/Representative choice, since IR-2's "en calidad de" blank is for an open-ended corporate officer title). - Section V ("Autorización de Representación"), the optional third-party filing-authorization block, is modeled as a second, optional
documents[]attestationentry plus three optional fields (representativeLastName,representativeFirstName,representativeCedula) — its own floating TextBox text was likewise extracted verbatim. - Out of scope for this version, disclosed here rather than silently omitted: all 16 supporting Anexos, each a distinct worksheet with its own large, structurally different layout — Anexo D, D-1, D-2 ("Datos Informativos" / inflation-adjustment basis computations — DGII's own instructivo devotes 11 pages, pages 4-14, to D-2 alone); Anexo A-1/A-2/ A-3 ("Balance General", three sector variants); Anexo B-1/B-2/B-3/B-4 ("Estado de Resultados", four sector variants); Anexo E ("Datos Complementarios" — prior-year losses and advance-payment income); Anexo G ("Ajustes Fiscales" — the detailed 1.1-1.17/2.1-2.4 line items that Casillas 2 and 5 of IR-2 themselves total); Anexo H-1/H-2 ("Identificación del Beneficiario Final y Actualización de Datos" — the ultimate-beneficial-owner and company-data-update disclosure; DGII's own instructivo (page 3) states this Anexo pair is mandatory on every filing, a materially important omission disclosed explicitly, not glossed over, and a strong companion-schema candidate for a future cycle); Anexo J ("Datos Informativos" — invoice/comprobante-fiscal summary aggregated from the filer's twelve Formato 606/607 submissions); and the standalone "Formulario para la Liquidación del Impuesto a los Activos" (asset-tax settlement, worksheet
Activo) — a related but legally and structurally separate tax, not the income-tax return itself (it does, however, pull Casilla 12 of IR-2 as a credit against its own settlement, confirmed via the instructivo's page 66). - The "Para Uso de la DGII" internal box (fecha de presentación, fecha límite, prórroga, liquidador) is excluded — DGII/administrative metadata, not taxpayer-supplied data, mirroring this registry's established convention of excluding agency-internal-use boxes.
Conformance fixtures (Phase 3)
6 fixtures committed under conformance/do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0/: 2 valid scenarios plus 4 mutation-control fixtures, each derived from one of the valid fixtures by a single targeted mutation. All 6 were run against a from-scratch, ephemeral field-by-field conformance checker (derived directly from this schema's own fields[]/documents[], not committed to the repo) before being finalized:
valid-manufacturing-profit-with-anticipos.json(Manufactura/Comercio/ Agropecuaria sector, a net profit, positive and negative adjustments, a settled tax liability partly offset by anticipos and bank-interest withholding credits) — 0 errors.valid-services-net-loss-via-representative.json(Hoteles y Afines sector, a net loss carried through with no tax due, filed with an authorized third-party representative) — 0 errors.mutation-control-missing-required-field.json(dropsrazonSocial) — exactly 1 error.mutation-control-invalid-enum-sector-economico.json(setssectorEconomicoto"Zona Franca", not in the enum) — exactly 1 error.mutation-control-negative-amount.json(setsimpuestoLiquidadoto a negative value, violatingminimum: 0) — exactly 1 error.mutation-control-invalid-email-pattern.json(setscorreoElectronicoto"not-an-email") — exactly 1 error.
Structural validation
node tools/validate.mjs registry/do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0/schema.json— ok.node tools/validate-ajv.mjs registry/do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0/schema.json(ajv 2020-12 againstspec/v0.3) — ok.- Full-registry re-run after adding this document:
node tools/validate.mjs→ 470/470;node tools/validate-ajv.mjs→ 470/470. node tools/verify-sources.mjs registry/do/dgii/annual-corporate-income-tax-return-ir-2/1.0.0— 1 directory, 3 URLs checked, 0 warnings, 0 failures.npm run build-indexre-run intools/govschema-client/to regenerateregistry-index.jsonwith this document included (470 entries).
Maturity
structural-reference: the source workbook's own printed IR-2 structure — identification block, all 35 numbered income-determination/settlement lines, and the verification/authorization declarations — is fully transcribed from the genuine, currently-served official Versión 2018 edition (a macro-enabled Excel workbook, not a government online-filing system), cross- checked against DGII's own companion instructivo booklet, but no live filing through DGII's own Oficina Virtual e-filing channel was attempted, and the 16 supporting Anexos this return itself depends on for several of its own headline figures are not yet modeled. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Dominican Republic or the Dirección General de Impuestos Internos.
View the raw record (VERIFICATION.md)
Version history
-
1.0.0draftlatestthis pagehas verification recordschema.json
Independent and non-affiliated
GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Dirección General de Impuestos Internos or any government. The authoritative source is always the live government form and its official instructions.