Registry entry
India Company Incorporation — One Person Company (SPICe+ Part A & Part B, Form INC-32)
Reserve a company name and incorporate a One Person Company (OPC) in India through the integrated SPICe+ (Simplified Proforma for Incorporating Company Electronically Plus) web form on the MCA21 portal, administered by the Ministry of Corporate Affairs (MCA) under the Companies Act, 2013 and the Companies (Incorporation) Rules, 2014. SPICe+ combines what were previously separate filings — name reservation (Part A), incorporation with allotment of Corporate Identification Number (CIN) and Director Identification Number (DIN) (Part B, Form INC-32), and PAN/TAN allotment — into a single form; it is the closest Indian analogue to a single-founder LLC formation, which is why this document is the GB counterpart-style scoped reference: a sole individual forming an OPC having equity share capital, who is the company's only subscriber to the Memorandum of Association and only director, is an Indian citizen resident in India, does not yet hold a Director Identification Number (the common case for a first-time founder — SPICe+ itself allots the DIN), and nominates one other Indian-citizen-resident individual under Section 3 of the Companies Act, 2013 as required for every OPC. Private (non-OPC) companies, Public companies, Producer companies, Section 8 (not-for-profit) companies, Nidhi companies, Part I LLP-to-company conversions, companies not having share capital, multiple share classes, non-individual/foreign subscribers, more than one company director, and the AGILE-PRO-S linked web form (GSTIN, EPFO, ESIC, PTEC/PTRC, Shops & Establishment registration, and bank account opening) are all out of scope — see VERIFICATION.md. Does not submit the application; the live MCA21 portal (mca.gov.in) is always authoritative.
Registry entry
in/mca/company-incorporation-spice-plus
GovSchema spec v0.3
Machine access
- Schema document
registry/in/mca/company-incorporation-spice-plus/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/in/mca/company-incorporation-spice-plus/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
124 fields across 8 steps, read from the published schema.json — names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Name reservation (SPICe+ Part A)
-
proposedName1string requiredProposed name for the One Person Company. Must include the suffix '(OPC) Private Limited' (e.g. 'ABC (OPC) Private Limited'). No abbreviation 'PVT'/'PVT.'/'(P)' is allowed, and 'LTD'/'LTD.'/'ltd'/'ltd.' is not allowed. Non-ASCII characters are not permitted.
length: 1–75 -
proposedName2string optionalAn optional second proposed name, used if the first choice is rejected on the resemblance/undesirability check. Same naming rules as proposedName1 apply.
length: 0–75 -
nicCode1string requiredFive-digit National Industrial Classification 2008 code identifying the company's primary industrial activity, selected via CRC's NIC search window. Up to three NIC codes may be selected in total; this one is the primary Industrial Classification the user is prompted to designate.
pattern -
nicCode2string optionalIndustry sub-class (NIC 2008 code) — additional (optional)
pattern -
nicCode3string optionalIndustry sub-class (NIC 2008 code) — additional (optional)
pattern
Structure of the company and capital
-
aoaEntrenchedboolean requiredWhether the Articles of Association contain entrenchment provisions (Section 5, Companies Act 2013) requiring a higher threshold than a special resolution to amend certain articles.
-
entrenchmentArticleCountinteger optionalMust be greater than zero and less than or equal to 88 for a Private OPC.
range: 1–88 -
hasShareCapitalboolean requiredThis document models only the 'having share capital' branch (the common case for an OPC formed to carry on business with equity ownership). 'Not having share capital' (a company limited by guarantee) is out of scope — see VERIFICATION.md.
enum: true -
equityShareClassDescriptionstring optionalLabel for the single class of equity shares modelled by this document (e.g. 'Equity'). Scoped to one class; multiple share classes are out of scope.
length: 1–100 -
authorizedEquitySharesinteger optionalValue entered must be greater than zero. Total authorized share capital is computed by the system as authorizedEquityShares × nominalValuePerEquityShare and is not itself collected as a separate input.
range: 1–∞ -
subscribedEquitySharesinteger optionalMust be greater than zero and cannot exceed authorizedEquityShares. Equals the sole subscriber's shareholding for an OPC.
range: 1–∞ -
nominalValuePerEquitySharenumber optionalMust be the same value for both the authorized-capital and subscribed-capital columns.
range: 0.01–∞
Address of the company
-
correspondenceAddressLine1string requiredCorrespondence address — Line 1
length: 1–200classification: pii -
correspondenceAddressLine2string optionalCorrespondence address — Line 2
length: 0–200classification: pii -
correspondenceAddressPinCodestring requiredCorrespondence address — Pin code
patternclassification: pii -
correspondenceAddressAreaLocalitystring requiredCorrespondence address — Area/Locality
length: 1–100classification: pii -
correspondenceAddressCitystring requiredCorrespondence address — City
length: 1–100classification: pii -
correspondenceAddressDistrictstring requiredCorrespondence address — District
length: 1–100classification: pii -
correspondenceAddressStatestring requiredCorrespondence address — State/UT
length: 1–100classification: pii -
companyPhoneNumberstring optionalCompany phone number (with STD code)
length: 0–20 -
companyMobileNumberstring requiredVerified on the live portal by a one-time password sent to this number; the OTP itself is a runtime verification step, not applicant-supplied form data, so it is not modelled as a separate field.
pattern -
companyEmailstring requiredVerified on the live portal by a one-time password sent to this address; the OTP itself is a runtime verification step, not applicant-supplied form data, so it is not modelled as a separate field.
length: 0–254 -
addressIsRegisteredOfficeboolean requiredThis document models only the common 'Yes' case (the correspondence address given above doubles as the registered office from day one). 'No' (a distinct registered office collected separately) is out of scope — see VERIFICATION.md.
enum: true -
registeredOfficeLongitudenumber optionalMust correspond to the pin code given in the correspondence/registered address.
range: -180–180 -
registeredOfficeLatitudenumber optionalMust correspond to the pin code given in the correspondence/registered address.
range: -90–90 -
registrarOfCompaniesOfficestring requiredName of the office of the Registrar of Companies in which the proposed company is to be registered
length: 1–200
Sole subscriber-cum-director particulars
-
founderFirstNamestring requiredSole subscriber-cum-director — first name
length: 1–100classification: pii -
founderMiddleNamestring optionalSole subscriber-cum-director — middle name
length: 0–100classification: pii -
founderSurnamestring requiredSole subscriber-cum-director — surname
length: 1–100classification: pii -
founderFatherFirstNamestring requiredSole subscriber-cum-director — father's first name
length: 1–100classification: pii -
founderFatherMiddleNamestring optionalSole subscriber-cum-director — father's middle name
length: 0–100classification: pii -
founderFatherSurnamestring requiredSole subscriber-cum-director — father's surname
length: 1–100classification: pii -
founderGenderenum requiredSole subscriber-cum-director — gender
enum: male | female | transgenderclassification: pii -
founderDateOfBirthdate requiredSole subscriber-cum-director — date of birth
classification: sensitive-pii -
founderNationalityenum requiredAn OPC's sole subscriber-cum-director and its nominee must both be Indian citizens resident in India (Companies (Incorporation) Rules, 2014, Rule 3), so this document restricts the enum to 'india'.
enum: india -
founderPlaceOfBirthstring requiredSole subscriber-cum-director — place of birth
length: 1–200classification: pii -
founderOccupationTypeenum requiredSole subscriber-cum-director — occupation type
enum: 7 values -
founderAreaOfOccupationenum requiredSole subscriber-cum-director — area of occupation
enum: it | others -
founderAreaOfOccupationOtherDescriptionstring optionalSole subscriber-cum-director — area of occupation, if 'Others'
length: 1–200 -
founderEducationalQualificationenum requiredSole subscriber-cum-director — educational qualification
enum: masters | others -
founderEducationalQualificationOtherDescriptionstring optionalSole subscriber-cum-director — educational qualification, if 'Others'
length: 1–200 -
founderPanstring requiredSole subscriber-cum-director — Income-tax PAN
patternlength: 0–10classification: sensitive-pii -
founderMobileNumberstring requiredVerified on the live portal by a one-time password; the OTP itself is a runtime verification step, not modelled as a separate field.
pattern -
founderEmailstring requiredVerified on the live portal by a one-time password; the OTP itself is a runtime verification step, not modelled as a separate field.
length: 0–254 -
founderPermanentAddressLine1string requiredSole subscriber-cum-director — permanent address, Line 1
length: 1–200classification: pii -
founderPermanentAddressLine2string optionalSole subscriber-cum-director — permanent address, Line 2
length: 0–200classification: pii -
founderPermanentAddressPinCodestring requiredSole subscriber-cum-director — permanent address, Pin code
patternclassification: pii -
founderPermanentAddressAreaLocalitystring requiredSole subscriber-cum-director — permanent address, Area/Locality
length: 1–100classification: pii -
founderPermanentAddressCitystring requiredSole subscriber-cum-director — permanent address, City
length: 1–100classification: pii -
founderPermanentAddressDistrictstring optionalSole subscriber-cum-director — permanent address, District
length: 0–100classification: pii -
founderPermanentAddressStatestring requiredSole subscriber-cum-director — permanent address, State/UT
length: 1–100classification: pii -
founderPermanentAddressPhonestring optionalSole subscriber-cum-director — permanent address, phone (with STD/ISD code)
length: 0–20 -
founderPresentAddressSameAsPermanentboolean requiredThis document models only the common 'Yes' case. 'No' (a distinct present address collected separately) is out of scope — see VERIFICATION.md.
enum: true -
founderDurationOfStayYearsinteger requiredSole subscriber-cum-director — duration of stay at present address, years
range: 0–∞ -
founderDurationOfStayMonthsinteger requiredSole subscriber-cum-director — duration of stay at present address, months
range: 0–11 -
founderIdentityProofTypeenum requiredSole subscriber-cum-director — identity proof document
enum: voters_identity_card | passport | driving_license | aadhaar -
founderIdentityProofNumberstring requiredSole subscriber-cum-director — identity proof document number
length: 1–30classification: sensitive-pii -
founderResidentialProofTypeenum requiredSole subscriber-cum-director — residential proof document
enum: voters_identity_card | passport | driving_license | aadhaar -
founderResidentialProofNumberstring requiredSole subscriber-cum-director — residential proof document number
length: 1–30classification: sensitive-pii -
founderCitizenOfIndiaboolean requiredMust be true: OPC eligibility (Companies (Incorporation) Rules, 2014, Rule 3) is restricted to a natural person who is an Indian citizen.
enum: true -
founderResidentInIndiaboolean requiredMust be true: OPC eligibility (Rule 3) is restricted to a natural person resident in India (stayed in India for a period of not less than 120 days during the immediately preceding financial year).
enum: true -
founderDesignationenum requiredSole subscriber-cum-director — designation
enum: director | managing_director | whole_time_director | nominee_director -
founderCategoryenum requiredSole subscriber-cum-director — category
enum: promoter | professional | independent | nominee -
founderBoardRoleenum optionalSole subscriber-cum-director — board role
enum: chairman | executive_director | non_executive_director
OPC nomination
-
nomineeFirstNamestring requiredNominee — first name
length: 1–100classification: pii -
nomineeMiddleNamestring optionalNominee — middle name
length: 0–100classification: pii -
nomineeSurnamestring requiredNominee — surname
length: 1–100classification: pii -
nomineeFatherFirstNamestring requiredNominee — father's first name
length: 1–100classification: pii -
nomineeFatherMiddleNamestring optionalNominee — father's middle name
length: 0–100classification: pii -
nomineeFatherSurnamestring requiredNominee — father's surname
length: 1–100classification: pii -
nomineeGenderenum requiredNominee — gender
enum: male | female | transgenderclassification: pii -
nomineeDateOfBirthdate requiredNominee — date of birth
classification: sensitive-pii -
nomineeNationalityenum requiredAn OPC's sole subscriber-cum-director and its nominee must both be Indian citizens resident in India (Companies (Incorporation) Rules, 2014, Rule 3), so this document restricts the enum to 'india'.
enum: india -
nomineePlaceOfBirthstring requiredNominee — place of birth
length: 1–200classification: pii -
nomineeOccupationTypeenum requiredNominee — occupation type
enum: 7 values -
nomineeAreaOfOccupationenum requiredNominee — area of occupation
enum: it | others -
nomineeAreaOfOccupationOtherDescriptionstring optionalNominee — area of occupation, if 'Others'
length: 1–200 -
nomineeEducationalQualificationenum requiredNominee — educational qualification
enum: masters | others -
nomineeEducationalQualificationOtherDescriptionstring optionalNominee — educational qualification, if 'Others'
length: 1–200 -
nomineePanstring requiredNominee — Income-tax PAN
patternlength: 0–10classification: sensitive-pii -
nomineeMobileNumberstring requiredVerified on the live portal by a one-time password; the OTP itself is a runtime verification step, not modelled as a separate field.
pattern -
nomineeEmailstring requiredVerified on the live portal by a one-time password; the OTP itself is a runtime verification step, not modelled as a separate field.
length: 0–254 -
nomineePermanentAddressLine1string requiredNominee — permanent address, Line 1
length: 1–200classification: pii -
nomineePermanentAddressLine2string optionalNominee — permanent address, Line 2
length: 0–200classification: pii -
nomineePermanentAddressPinCodestring requiredNominee — permanent address, Pin code
patternclassification: pii -
nomineePermanentAddressAreaLocalitystring requiredNominee — permanent address, Area/Locality
length: 1–100classification: pii -
nomineePermanentAddressCitystring requiredNominee — permanent address, City
length: 1–100classification: pii -
nomineePermanentAddressDistrictstring optionalNominee — permanent address, District
length: 0–100classification: pii -
nomineePermanentAddressStatestring requiredNominee — permanent address, State/UT
length: 1–100classification: pii -
nomineePermanentAddressPhonestring optionalNominee — permanent address, phone (with STD/ISD code)
length: 0–20 -
nomineePresentAddressSameAsPermanentboolean requiredThis document models only the common 'Yes' case. 'No' (a distinct present address collected separately) is out of scope — see VERIFICATION.md.
enum: true -
nomineeDurationOfStayYearsinteger requiredNominee — duration of stay at present address, years
range: 0–∞ -
nomineeDurationOfStayMonthsinteger requiredNominee — duration of stay at present address, months
range: 0–11 -
nomineeIdentityProofTypeenum requiredNominee — identity proof document
enum: voters_identity_card | passport | driving_license | aadhaar -
nomineeIdentityProofNumberstring requiredNominee — identity proof document number
length: 1–30classification: sensitive-pii -
nomineeResidentialProofTypeenum requiredNominee — residential proof document
enum: voters_identity_card | passport | driving_license | aadhaar -
nomineeResidentialProofNumberstring requiredNominee — residential proof document number
length: 1–30classification: sensitive-pii -
nomineeConsentAndDeclarationboolean requiredCombines the nominee's consent to become a member of the company on the subscriber's death/incapacity with their declaration of Indian citizenship/residency, absence of prior conviction or disqualification under company/LLP law in the last five years, that they are not already a nominee in any other OPC, and that they will comply with Rule 3(3)'s eligibility criteria within the prescribed period. Modelled as one combined field per this registry's convention for a single-signature declaration block (cf. in/eci/voter-registration's declarationAndConsent).
-
nomineeDigitallySignedboolean requiredNominee — to be digitally signed by nominee
Stamp duty
-
stampDutyStatestring requiredState or union territory in respect of which stamp duty is paid or to be paid
length: 1–100 -
stampDutyPaidElectronicallyenum requiredWhether stamp duty is to be paid electronically through MCA21 system
enum: yes | no | not_applicable -
stampDutyTotalAmountPaidnumber optionalManual (non-MCA21-electronic) stamp duty payment on the SPICe+/MOA/AOA documents, evidenced by physical stamp papers/franking/challan.
range: 0–∞ -
stampDutyModeOfPaymentenum optionalMode of payment of stamp duty already paid
enum: manual | electronic -
stampDutyVendorNamestring optionalName of vendor/treasury/authority who collected/embossed the stamp duty
length: 1–200 -
stampDutyPurchaseDatedate optionalDate of purchase of stamps/stamp paper or payment of stamp duty
PAN and TAN allotment
-
panAreaCodestring requiredJurisdictional codes for the PAN allotted through this integrated SPICe+ filing, based on the registered office address.
length: 1–20 -
panAoTypestring requiredPAN jurisdiction — AO type
length: 1–20 -
panRangeCodestring requiredPAN jurisdiction — Range code
length: 1–20 -
panAoNumberstring requiredPAN jurisdiction — AO number
length: 1–20 -
tanAreaCodestring requiredTAN jurisdiction — Area code
length: 1–20 -
tanAoTypestring requiredTAN jurisdiction — AO type
length: 1–20 -
tanRangeCodestring requiredTAN jurisdiction — Range code
length: 1–20 -
tanAoNumberstring requiredTAN jurisdiction — AO number
length: 1–20 -
sourceOfIncomeenum requiredSource of Income
enum: business_or_profession | capital_gains | house_property | other_source | no_income -
businessProfessionCodestring optionalBusiness/Profession code
length: 1–20
Declaration and professional certification
-
nameAndRegistrationDeclarationboolean requiredCombines the director's declaration that the proposed name was checked against the MCA/LLP register and registered trademarks and complies with the Emblems and Names (Prevention of Improper Use) Act, 1950 and is not offensive; that all Companies Act 2013 requirements relating to DIN allotment and company registration have been complied with; that the company will not commence business until required sectoral-regulator approvals (RBI, SEBI, etc.) are obtained; and that the registered office is capable of receiving communications at the address given at §4A. Modelled as one combined field per this registry's convention for a single-signature declaration block.
-
directorDisqualificationDeclarationboolean requiredDeclares the proposed director(s) are not restrained/disqualified/removed under Companies Act 2013 ss.164/169, not a proclaimed offender, and not already allotted a DIN under s.154.
-
borderingCountryNationalSecurityClearanceboolean requiredIf true, security clearance from the Ministry of Home Affairs must be attached (see the borderingCountrySecurityClearanceDocument entry in documents[]). founderNationality is restricted to 'india' in this document, so this declares 'No' for the sole scoped scenario; retained as a field because it is a printed, always-asked declaration on the form regardless of the subscriber's own nationality.
-
directorDigitalSignatureboolean requiredTo be digitally signed by director
-
professionalCertificationCategoryenum requiredCertifying professional — category
enum: company_secretary | chartered_accountant | cost_accountant | advocate -
professionalMembershipCategoryenum optionalNot applicable to an Advocate signatory.
enum: associate | fellow -
professionalMembershipOrCertificateNumberstring requiredMembership number for a chartered accountant/cost accountant in whole-time practice, or certificate of practice number for a company secretary in whole-time practice.
length: 1–30 -
professionalPanstring requiredCertifying professional — Income-tax PAN
patternlength: 0–10classification: sensitive-pii -
professionalDigitalSignatureboolean requiredCertifying professional — digitally signed
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-03
draft, not verified, because no live walkthrough of the MCA21 portal wizard was performed — see "What was not done" below. This schema is sourced from the MCA's own downloadable instruction kits plus a very recent Wayback Machine capture of the live Adaptive Form HTML itself.
Sources examined
- Document
(id, version):in/mca/company-incorporation-spice-plus/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Ministry of Corporate Affairs, Government of India (MCA21 portal), under the Companies Act, 2013 and the Companies (Incorporation) Rules, 2014.
- Direct access attempts to
mca.gov.inall failed with HTTP 403 (curl,WebFetch, and a headless Playwright pass with a realistic desktop user agent all returned Akamai'sAccess Deniededge page,errors.edgesuite.net). This is an IP/ASN-level WAF block, not a JavaScript bot-challenge — the same class of permanent block previously hit atnzta.govt.nzandi-kfz.de(seegov474-dmv-business-formation- vertical-and-xfa-extractionin prior-cycle notes) — so a real browser from this environment's egress does not defeat it. https://web.archive.org/web/20230331084143/https://www.mca.gov.in/content/dam/mca-aem-forms/instructionkits/Instruction%20Kit_SPICe+Part%20A.pdf— "Instruction Kit for webform SPICe+ Part A (Name Reservation)" (11 pages). Retrieved viacurlagainst the Wayback Machine mirror (HTTP 200, 499,364 bytes), text-extracted with a scratch npm install ofpdfjs-dist(legacy build). Supplies the name-reservation field-level instructions (proposed name rules, NIC-code search, fee schedule) referenced byproposedName1/proposedName2/nicCode1..3.https://web.archive.org/web/20230714092841/https://www.mca.gov.in/content/dam/mca-aem-forms/instructionkits/Instruction%20Kit_SPICe%20+%20Part%20B.pdf— "Instruction Kit for Form No. SPICe+ Part B" (19 pages). Retrieved and decoded the same way (HTTP 200, 439,593 bytes). Supplies the numbered field-level validation rules quoted in severaldescriptions (e.g.entrenchmentArticleCount's 88-article cap for a Private OPC, the authorized/subscribed-capital comparison rule, OPC eligibility criteria under Rule 3, DIN-count caps).https://web.archive.org/web/20260109225642/https://www.mca.gov.in/content/forms/af/mca-aem-forms/spice-part-b/spice-plus-part-b.html— a Wayback Machine snapshot of the live SPICe+ Part B Adaptive Form HTML itself, captured 2026-01-09 (six months before this review), retrieved viacurl(HTTP 200, 5,730,099 bytes as served byweb.archive.org). Unlike the two instruction kits (which only narrate "fields that require detailed instructions," per their own stated scope), this capture's rendered DOM text contains the complete field-by-field structure of the actual portal form: every section heading, numbered sub-section (1(a), 3A(i), 4A/4B/4C, 5, 6A/6B/6C, 7A/7B/7C/7D, 8A/8B, 9A/9B, 10, 11, 12, 13), every printed field label, every dropdown's enumerated options, and every mandatory-field asterisk. This is this document's primary field-level source — every field name, label, enum option, andsourceRefin this schema is drawn from this capture's text (a Python regex-stripped rendering of the archived HTML's visible DOM text, saved to a scratch file and read section-by-section; no client-side JSON/AEM guide metadata was present in the archived capture, only the server-rendered text nodes).- Web search confirmed OPC eligibility (Section 3, Companies Act 2013; Rule 3, Companies (Incorporation) Rules, 2014 — natural person, Indian citizen, resident in India, one nominee required) and the AGILE-PRO-S linked-form scope (GSTIN/EPFO/ESIC/PTEC-PTRC/Shops & Establishment/bank account) cited in this schema's top-level
descriptionand "Out of scope" section below — used only to state those rules in prose, not as a field-level source.
What was not done — the one honest gap
No live walkthrough of the MCA21 portal's SPICe+ wizard was performed. mca.gov.in returned HTTP 403 (Akamai WAF) for every access path attempted in this environment — direct curl, WebFetch, and a headless Playwright browser session with a realistic desktop Chrome user agent. This is consistent with prior-cycle findings for the same domain (GOV-887: "MCA21 (mca.gov.in) 403-blocks direct WebFetch/curl, the same class of block hit at nzta.govt.nz/i-kfz.de"). Because the block operates at the IP/ASN level rather than via a JavaScript challenge, a real browser did not change the outcome — this rules out the ie/irishimmigration-style bot-check-defeat technique for this particular source.
A future review with different network egress, or MCA account credentials for an authenticated session, should drive the live wizard directly to confirm on-screen field ordering, client-side validation masks, and whether the OTP-verification steps noted in this schema's field descriptions (companyMobileNumber, companyEmail, and each person's mobile/email) match the modelled fields exactly.
Test run performed
Phase 4 of this cycle's research brief calls for a test run with valid mock data. Since the live wizard could not be reached, this was performed as a structural test: a scratch Node script (/tmp/spice-test/mocktest.mjs, not checked into the registry) implements the GSP-0013 condition grammar (equals/in/all/any/not) and resolves visibleWhen/requiredWhen against three independent mock OPC incorporations:
- A retail-trading OPC with a single founder and nominee, e-stamp duty paid electronically through MCA21, and a Company Secretary as the certifying professional.
- The same OPC but with an entrenched AOA (
entrenchmentArticleCountgated field), manually-paid (non-electronic) stamp duty (four conditionally-required fields), and an Advocate as the certifying professional (exercisingprofessionalMembershipCategory'srequiredWhen— not required for an Advocate). - The same OPC with
sourceOfIncomeset tono_income(sobusinessProfessionCodeis correctly not required) and both optional second/third NIC codes and a second proposed name supplied.
All three scenarios: (a) supply every field that is required given its resolved visibility, (b) pass each field's own validation (pattern/enum/min-max), and (c) contain no reference to a field name absent from fields[] across every visibleWhen, requiredWhen, documents[] requiredWhen, and steps[].fields entry. All three passed on the first run; no schema defect was found by this test.
The schema also validates against both the zero-dependency structural checker (tools/validate.mjs) and the full JSON Schema draft 2020-12 meta-schema via ajv (tools/validate-ajv.mjs).
Modelling decisions
- Scoped to a One Person Company (OPC), not a Private/Public/Producer/ Section 8/Nidhi company or a Part I LLP-to-company conversion. SPICe+ is one generic web form spanning every Indian company type; modelling every branch in one document would require enumerating each type's distinct subscriber/capital/nomination rules. OPC is chosen as the closest Indian analogue to a single-founder LLC formation — the same scoping instinct
gb/companies-house/company-incorporation-in01used picking "the common case where one person is the sole director, the sole initial shareholder/subscriber" for GB's IN01. An OPC's structural minimum (one individual subscriber-cum-director, one mandatory nominee, one share class) also keeps the subscriber/director particulars in §§6–7 to a single block (§7B) instead of the form's repeating non-individual/multiple- subscriber tables. typeOfCompanyis not modelled as a field. The live form's dropdown offers Private (OPC)/Private/Public/Producer/Part I Others/etc., but since this document's scope is fixed to OPC, the dropdown's other branches would never be exercised — same precedent asgb/companies-house/company- incorporation-in01, which likewise omits a "type of company" field because its scope is fixed to private-limited-by-shares.- Founder modelled as "not having valid DIN" (§7B), not "having valid DIN" (§7A). A first-time solo founder incorporating their first company does not yet hold a Director Identification Number — SPICe+ itself is how DIN gets allotted (Companies Act 2013 s.7 read with s.153/154). The "having DIN" branch (§7A) is the case of someone who already directs another company and is out of scope.
founderNationality/nomineeNationalityenums restricted to["india"], andfounderCitizenOfIndia/founderResidentInIndiafixed totrueviavalidation.enum: [true]. Rule 3, Companies (Incorporation) Rules, 2014 restricts OPC eligibility (as subscriber or nominee) to a natural person who is an Indian citizen resident in India. Rather than model these as free enums that could accept a value this document's scope can't otherwise support (a non-Indian OPC subscriber is not legally possible), the constraint is encoded directly invalidation, following this registry's convention of usingenum: [true]/enum: [<value>]to pin a field to its only legally-possible value for the documented scope (see alsohasShareCapital,addressIsRegisteredOffice, and each person'sPresentAddressSameAsPermanentbelow).hasShareCapital,addressIsRegisteredOffice, and each person'sPresentAddressSameAsPermanentare real printed form fields, pinned to their common-case value (true) viavalidation.enum: [true], rather than omitted. UnliketypeOfCompany(a branch-selector this document's scope makes moot), these three are genuine yes/no questions every OPC filer answers, and thefalsebranch in each case leads to real, additional on-screen fields (a company limited by guarantee's member-count table at §3B; a registered office distinct from the correspondence address; a present address distinct from the permanent one) that this version does not model. Pinning the field withvalidation.enum: [true]keeps the question itself faithful to the source form while making the scope boundary machine-checkable rather than only prose-documented.- Preference share capital (§3A(ii)) not modelled. Optional and rare for a newly-incorporated OPC (which typically issues only equity shares); omitted along with the "not having share capital"/§3B member-count branch.
- Entrenchment sub-table (Sr. No./Article number/description, under §1(b)) not modelled beyond the boolean gate and article count. A rare edge case (custom AOA entrenchment clauses) whose repeating-row detail would add a disproportionate number of fields for a first version; the gating boolean and numeric cap are kept since they are simple, always- visible-on-the-form fields.
- Duration-of-stay-less-than-one-year → previous-residence-address branch (§7B(i), §8B) not modelled. An edge case (a founder or nominee who moved within the last year);
DurationOfStayYears/Monthsare collected, but the conditional previous-address sub-block is out of scope for this version. - PAN/TAN jurisdiction codes (
panAreaCode/AoType/RangeCode/AoNumberand their TAN counterparts) modelled as free-form strings, not enums. These are official area/AO/range codes assigned by the Income Tax Department based on the registered office's jurisdiction (a large, address-dependent lookup table not published in either instruction kit or captured in the Adaptive Form snapshot), so no closed enum could be sourced faithfully; left as validated strings per this registry's practice of not inventing enum values the source does not publish. - Multi-paragraph declaration blocks (§12 "Declaration", §13 "Declaration and Certification by Professional") each combined into one or two boolean fields (
nameAndRegistrationDeclaration,directorDisqualificationDeclaration), rather than one field per sentence, since each block is attached to a single digital signature on the live form — the same discipline used forin/eci/voter-registration'sdeclarationAndConsentandnz/dia/passport-renewal-adult's combined declaration fields. - OTP verification (mobile/email, throughout §§4A, 7B, 8B) not modelled as separate fields. The OTP itself is a live-session runtime verification step performed against the value already collected in the mobile/email field, not a further piece of applicant-supplied data — documented in each affected field's
descriptioninstead. borderingCountryNationalSecurityClearanceretained even though this document'sfounderNationalityis pinned toindia. This declaration is a printed, always-asked yes/no on the live form regardless of the signing director's own nationality (it exists to cover cases where a different proposed director is a bordering-country national), so it remains a real field; itstruebranch requires theborderingCountrySecurityClearanceDocumentattachment (documents[],requiredWhen).- Comb/derived/system-computed amounts omitted.
Total classified/ unclassified authorized share capital(§3A) and the §9B(i) auto-computed stamp-duty-payable table are system-calculated from other collected values (number of shares × nominal value; authorized capital → fee schedule) rather than independently applicant-supplied, so — consistent with how this registry omits purely derived/prefilled fields elsewhere — they are not modelled; only the inputs that drive those computations are. - AGILE-PRO-S, eMoA/eAoA, INC-9, and URC-1 linked web forms not modelled. SPICe+ Part B's submission enables access to these as separate linked forms (GSTIN/EPFO/ESIC/PTEC-PTRC/Shops & Establishment registration and bank-account opening via AGILE-PRO-S; electronic MOA/AOA; declaration-in-lieu-of-affidavit via INC-9; Part I company conversion via URC-1) — each is its own webform with its own field set, out of scope for this version. Per Annexure A of the SPICe+ Part B instruction kit, e-MoA/ e-AoA is used automatically (not a manual attachment) whenever total subscribers ≤ 7, which is always true for an OPC's single subscriber, so
documents[]omits a manual MOA/AOA attachment entry for this scope.
Out of scope
- Private (non-OPC), Public, Producer, Section 8, and Nidhi companies, and Part I LLP-to-company conversions — each has distinct subscriber- count minimums, capital-structure rules, and/or additional licensing fields (e.g. Section 8's license application) not modelled here.
- Non-individual (corporate) subscribers and multiple individual subscribers/directors (SPICe+ Part B §§6A, 6B, 6C, 7A, 7C, 7D) — an OPC has exactly one subscriber-cum-director by definition, so this document models only §7B.
- Companies not having share capital (§3B) and preference share capital (§3A(ii)).
- A registered office address distinct from the correspondence address, and a present address distinct from the permanent address for the founder or nominee — both pinned to their common-case
truevalue (see Modelling decisions). - AGILE-PRO-S, eMoA/eAoA, INC-9, and URC-1 linked forms (GSTIN, EPFO, ESIC, PTEC/PTRC, Shops & Establishment registration, bank account opening) — separate webforms with their own field sets; a natural candidate for a future GovSchema document once SPICe+ Part B itself is promoted past
draft. - Foreign Exchange Management Act (FEMA) non-debt-instruments declarations (printed throughout §§6–7 for subscribers subscribing to shares) — not applicable given
founderNationality/nomineeNationalityare pinned toindia. - Resubmission flow (a rejected/
Resubmission RequiredSRN resubmitted with corrections) — this document models only the initial-submission data shape.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-03 (6 months). Re-check whether mca.gov.in is reachable from a different network egress or via an authenticated MCA account session, and attempt a live walkthrough of the SPICe+ Part A + Part B wizard; if successful, promote status to verified and confirm the Adaptive Form snapshot used here has not since changed field structure.
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 Ministry of Corporate Affairs, Government of India (MCA21 portal), under the Companies Act, 2013 or any government. The authoritative source is always the live government form and its official instructions.