Registry entry

Switzerland (St. Gallen) Sole Proprietorship Commercial Register New-Registration Application — Anmeldung Neueintragung Einzelunternehmen

The Amt für Handelsregister und Notariate des Kantons St.Gallen's (Office for the Commercial Register and Notarial Affairs of the Canton of St. Gallen) paper application for registering a new sole proprietorship (Einzelunternehmen) in the cantonal commercial register (Handelsregister). Opens Switzerland's Business Formation vertical: the federal EasyGov.swiss one-stop-shop wizard is a confirmed dead end (login-gated on its very first screen, no unauthenticated field-level equivalent), so — following this registry's established precedent of modelling a jurisdiction's own published unauthenticated fallback when the primary online channel is authentication-gated — this schema instead models one of several structurally similar cantonal commercial-registry AcroForm PDFs (Graubünden, Aargau, Lucerne, and Appenzell Ausserrhoden all publish close siblings of the same form). St. Gallen's own version was selected after directly comparing all five for field richness and self-documenting field names: it carries the most AcroForm widgets (50, versus 32-47 for the others) with the clearest field-name/label correspondence (e.g. `Firma`, `Sitz politische Gemeinde`, `Rechtsdomizil`), rather than the terser, less self-documenting names used by some siblings (e.g. Appenzell Ausserrhoden's `Feld1`/`zb1_zb`). This schema models the form's own three-page applicant-facing content in full: the firm name and registered-office block (including the conditional c/o-address for businesses without their own premises at the registered seat), the business-purpose description, the owner's personal details, an optional additional co-signatory with their signing-authority type, the optional UID/VAT-number declaration, the identity-document-copy checklist for each named signatory, the optional register-extract order, and the non-public contact/submitter block used when the person handling the filing (e.g. the owner personally, or a fiduciary/notary acting for them) needs to be reached. It does not model the form's own page-10 wet-ink signature requirement (signatures must be publicly authenticated in person by the Office, a notary, or a municipal administration under presentation of a valid identity document — not an applicant-entered field) or the cover instruction to mail the original by post. Filing this registration is a citizen/business action performed directly with the Amt für Handelsregister und Notariate; this schema does not file the registration itself, and the live source (sg.ch) is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Swiss Confederation, the Canton of St. Gallen, or its Amt für Handelsregister und Notariate.

Registry entry

ch/sg/handelsregisteramt/anmeldung-neueintragung-einzelunternehmen

Jurisdiction
Switzerland · St. Gallen (subnational)
Version
1.0.0
Verification
draft

Authoritative source "Anmeldung Neueintragung Einzelunternehmen" — a 3-page fillable AcroForm PDF published unauthenticated by the Amt für Handelsregister und Notariate des Kantons St.Gallen.

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

33 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

  • companyName string required

    The proposed name (Firma) of the sole proprietorship. The sole proprietor's family name must be included in the firm name, per the form's own instruction directly beneath this field.

    length: 0–200classification: pii
  • registeredOfficeMunicipality string required

    The political municipality (Gemeinde) that is the registered office (Sitz) of the business.

    length: 0–150
  • registeredOfficeStreetAndNumber string required

    The street name and house number of the business's legal domicile (Rechtsdomizil) at its registered office. A post-office box alone is not accepted as a legal domicile, per the form's own instruction.

    length: 0–200classification: pii
  • registeredOfficePostalCodeAndCity string required

    The postal code and locality (PLZ, Ort) of the business's legal domicile.

    length: 0–100
  • domicileType enum required

    Whether the business's legal domicile is held via a third-party domicile holder (c/o) or via its own premises (eigene Räumlichkeiten, e.g. owned or rented). If the business has no own legal domicile at the stated registered office, a c/o domicile holder must be named and must submit a declaration granting the domicile — see the `domicileHolderDeclaration` document below.

    enum: C_O | OWN_PREMISES
  • domicileHolderAddress string optional

    The name and address of the domicile holder (Domizilhalter/in) granting the business a legal domicile (c/o-Adresse) at the registered office, when the business has no legal domicile of its own there.

    length: 0–300classification: pii
  • businessPurpose string required

    A brief, generally understandable description of the business's activity (kurze, allgemeinverständliche Umschreibung der Geschäftstätigkeit), written across up to 8 ruled lines on the form.

    length: 0–720
  • ownerFamilyName string required

    The family name of the sole proprietor (Geschäftsinhaber/in).

    length: 0–150classification: pii
  • ownerGivenNames string required

    The given name(s) of the sole proprietor.

    length: 0–150classification: pii
  • ownerHometownOrNationality string required

    For a Swiss citizen, the sole proprietor's place of origin (Heimatort — the commune of citizenship, distinct from place of birth or residence); for a foreign national, their nationality (Staatsangehörigkeit).

    length: 0–150classification: pii
  • ownerResidenceAddress string required

    The sole proprietor's residential address.

    length: 0–300classification: pii
  • signatureAuthorityType enum required

    The signing-authority arrangement for the business: sole signature by the owner alone (Einzelunterschrift), joint signature by two persons (Kollektivunterschrift zu zweien), sole procuration (Einzelprokura), or joint procuration by two persons (Kollektivprokura zu zweien). A joint arrangement requires naming an additional co-signatory below.

    enum: SOLE_SIGNATURE | JOINT_SIGNATURE_BY_TWO | SOLE_PROCURATION | JOINT_PROCURATION_BY_TWO
  • additionalSignatoryFamilyName string optional

    The family name of the additional person with signing authority (Weitere Zeichnungsberechtigte), required when the signature arrangement is a joint one.

    length: 0–150classification: pii
  • additionalSignatoryGivenNames string optional

    The given name(s) of the additional co-signatory.

    length: 0–150classification: pii
  • additionalSignatoryHometownOrNationality string optional

    The additional co-signatory's place of origin (Heimatort) if a Swiss citizen, or nationality (Staatsangehörigkeit) if a foreign national.

    length: 0–150classification: pii
  • additionalSignatoryResidenceAddress string optional

    The additional co-signatory's residential address.

    length: 0–300classification: pii
  • hasUidNumber boolean required

    Whether the business already has a Swiss Business Identification Number (UID) or VAT number.

  • uidNumber string optional

    The business's existing UID/VAT number, entered after the form's own pre-printed "CHE-" prefix (e.g. the digits of CHE-123.456.789).

    pattern
  • ownerIdentityDocumentHolderName string required

    The name of the sole proprietor whose valid identity-document copy (passport, ID card, or foreign national's residence permit) is attached, confirmed by the adjacent checkbox in the Beilagen (attachments) section.

    length: 0–200classification: pii
  • additionalSignatoryIdentityDocumentHolderName string optional

    The name of the additional co-signatory whose valid identity-document copy is attached, when a joint signing arrangement names a second signatory.

    length: 0–200classification: pii
  • submitterFamilyName string required

    The family name of the contact person handling this filing (Kontaktangaben, marked "nicht öffentlich" — not published in the register). Typically the sole proprietor personally, or a fiduciary/notary/third party filing on their behalf.

    length: 0–150classification: pii
  • submitterGivenNames string required

    The given name(s) of the filing contact person.

    length: 0–150classification: pii
  • submitterHometownOrNationality string optional

    The filing contact person's place of origin (Heimatort) or nationality (Staatsangehörigkeit).

    length: 0–150classification: pii
  • submitterResidenceAddress string optional

    The filing contact person's residential address.

    length: 0–300classification: pii
  • submitterPhoneWork string optional

    The filing contact person's work telephone number (Telefon Geschäft).

    length: 0–30classification: pii
  • submitterPhonePrivate string optional

    The filing contact person's private/home telephone number (Telefon Privat).

    length: 0–30classification: pii
  • submitterPhoneMobile string optional

    The filing contact person's mobile telephone number.

    length: 0–30classification: pii
  • submitterEmail string optional

    The filing contact person's e-mail address.

    patternclassification: pii
  • preferredContactViaWorkPhone boolean optional

    Whether the work telephone number is the best way to reach the filing contact person. This and the three following options are independent checkboxes on the source form (not a mutually exclusive group), so more than one may genuinely be selected.

  • preferredContactViaPrivatePhone boolean optional

    Whether the private telephone number is the best way to reach the filing contact person.

  • preferredContactViaMobile boolean optional

    Whether the mobile number is the best way to reach the filing contact person.

  • preferredContactViaEmail boolean optional

    Whether e-mail is the best way to reach the filing contact person.

  • additionalRemarks string optional

    Any further remarks for the Office for the Commercial Register and Notarial Affairs, written across up to 4 ruled lines on the form.

    length: 0–360

Verification record

Candidate selection

GOV-3288 ("GovSchema Standard Research", 2026-07-16) scouted Switzerland's Business Formation vertical (Switzerland was at 4/6: Passport, DMV, Taxes, National ID modelled; Business Formation and Visa open) and left it as a disclosed, ready-to-author backlog candidate (GOV-3293), which this cycle (GOV-3298) picked up and completed.

The federal one-stop-shop wizard (EasyGov.swiss) is a confirmed dead end — its very first screen requires an account login, with no unauthenticated field-level content visible before authentication. Switzerland's 26 cantons each run their own commercial register (Handelsregisteramt), and several publish a structurally similar AcroForm PDF for registering a new sole proprietorship (Einzelunternehmen). Five candidates were fetched and widget-counted this cycle before picking one to author against:

| Canton | Source | Pages | AcroForm widgets | Field-name style | | --- | --- | --- | --- | --- | | St. Gallen (SG) | sg.ch | 3 | 50 | Self-documenting (Firma, Sitz politische Gemeinde, Rechtsdomizil, Zweck 18, HeimatortStaatsangehörigkeit 1, …) | | Graubünden (GR) | gr.ch | 2 | 39 | Self-documenting but terser (2 pages instead of 3, no separate non-public contact block) | | Aargau (AG) | ag.ch | 3 | 47 | Self-documenting, closely parallels SG | | Lucerne (LU) | lu.ch | 3 | 32 | Self-documenting, fewer signatory/contact fields | | Appenzell Ausserrhoden (AR) | ar.ch | 3 | 47 | Terse/opaque (Feld1, Feld3, zb1_zb, fusg1) — harder to independently corroborate field meaning from the name alone |

St. Gallen's form was selected as the authoring source: the richest widget count, the clearest one-to-one correspondence between AcroForm field names and their printed labels, and a distinct third "Kontaktangaben (nicht öffentlich)" contact/submitter block the thinner siblings lack. All five are genuine, live, unauthenticated PDFs — no login/CAPTCHA/WAF gate on any of them — so this is a "pick the richest of several equally-open candidates" decision, not a case of ruling out weaker candidates as dead ends. The other four remain viable candidates for a future companion-schema cycle (e.g. modelling one as a distinct sibling the way this registry already does for CH-ZH's Steuererklärung companion schedules), left as disclosed, unauthored backlog rather than pursued further this cycle.

Switzerland's Visa vertical was also re-screened this cycle: sem.admin.ch's national-visa AcroForm PDF was fetched and its field sequence compared against de/auswaertiges-amt/national-visa-application, already modelled in this registry. It is a field-for-field match — the same EU-harmonized Schengen long-stay-visa questionnaire this registry has already found and declined to re-author for Czechia, Portugal, Poland, and Slovakia (see CATALOG.md's "Confirmed dead ends" section). Not authored; recorded there as a fresh confirmation for Switzerland.

Source

  • URL: https://www.sg.ch/content/dam/sgch/recht/handelsregister-notariate/einzelunternehmen/Anmeldung%20Neueintragung.pdf
  • Fetched fresh this session with two independent plain HTTP GETs (no login/session/cookie): HTTP 200, 206,104 bytes both times, genuine %PDF header, identical sha256 8f643f455e075e22ba76f9cb209a23f38395326b86150f9d9baab7fdbdc0a433 on both fetches — confirms a stable, non-dynamically-varied source.
  • The document carries no printed form number/edition code; it is the Amt für Handelsregister und Notariate's current live download, cited by its own on-page filename/title.

Extraction technique

pdfjs-dist v3.11.174 (legacy/build/pdf.js) was used two ways, from a disposable script against the downloaded PDF:

  1. page.getAnnotations() per page — enumerated every /Widget annotation's fieldName, fieldType (Tx text vs. Btn button), rect (page coordinates), and for buttons, radioButton/checkBox/ buttonValue/exportValue. 50 widgets across 3 pages: 36 text fields, 8 radio-button options across 3 mutually-exclusive groups (Gruppe1 — c/o vs. own premises, 2 options; Gruppe2 — signature authority type, 4 options; Gruppe3 — has-UID-number yes/no, 2 options), and 6 independent (non-grouped) checkboxes (2 identity-document confirmation checkboxes in the Beilagen section, 4 "best reached via" contact-method checkboxes on page 3).
  2. page.getTextContent() per page — recovered every section heading and the surrounding instructional prose (e.g. the c/o-domicile declaration requirement, the "cross out if not desired" register-extract order instruction, the public-notarization signature requirement), used to write accurate field descriptions and to confirm which page content is applicant-entered vs. purely instructional/non-field.

All 50 widgets are accounted for in schema.json's fields[]/documents[] — none were dropped silently. The mapping:

| Widget(s) | Modelled as | | --- | --- | | Firma, Sitz politische Gemeinde, Rechtsdomizil, PLZ Ort | companyName, registeredOfficeMunicipality, registeredOfficeStreetAndNumber, registeredOfficePostalCodeAndCity | | Gruppe1 (2 radio options) | domicileType (enum) | | c/o-Adresse text field | domicileHolderAddress (requiredWhen domicileType == C_O) | | Zweck 1Zweck 8 | businessPurpose (single field, 8 ruled lines folded into one maxLength: 720 string — these are one continuous purpose statement, not 8 distinct repeating entries) | | Personalien...1/2, HeimatortStaatsangehörigkeit 1/2 | ownerFamilyName, ownerGivenNames, ownerHometownOrNationality, ownerResidenceAddress | | Weitere Zeichnungsberechtigte, undefined_2, HeimatortStaatsangehörigkeit 1_2/2_2 | additionalSignatory* (all four, requiredWhen signatureAuthorityType in [JOINT_SIGNATURE_BY_TWO, JOINT_PROCURATION_BY_TWO]) | | Gruppe2 (4 radio options) | signatureAuthorityType (enum) | | Gruppe3 (2 radio options) | hasUidNumber (boolean) | | UID text field | uidNumber (requiredWhen hasUidNumber == true) | | Kopie eines gültigen Ausweises...1/Kontrollkästchen2 | ownerIdentityDocumentHolderName field + ownerIdentityDocumentCopy document | | Kopie eines gültigen Ausweises...2/Kontrollkästchen3 | additionalSignatoryIdentityDocumentHolderName field + additionalSignatoryIdentityDocumentCopy document (both requiredWhen the joint-signature condition) | | Page-1 c/o declaration instruction (no widget of its own) | domicileHolderDeclaration document (requiredWhen domicileType == C_O) | | Section 8 pre-checked register-extract order (no widget of its own) | registerExtractOrder document, category: payment, amount: {CHF, 40} | | 1, 2, HeimatortStaatsangehörigkeit 1_3/2_3, Telefon G, P, M, EMail | submitterFamilyName, submitterGivenNames, submitterHometownOrNationality, submitterResidenceAddress, submitterPhoneWork, submitterPhonePrivate, submitterPhoneMobile, submitterEmail | | Kontrollkästchen47 | preferredContactViaWorkPhone/PrivatePhone/Mobile/Email (4 independent booleans, not a single enum — confirmed via getAnnotations() that these are 4 separate, ungrouped Btn/checkBox widgets rather than one radioButton group, so the source genuinely allows multiple simultaneous selections) | | 1_2, 2_2, 3, 4 | additionalRemarks (single field, 4 ruled lines folded into one maxLength: 360 string, same pattern as businessPurpose) |

Disclosed judgment calls

  • businessPurpose and additionalRemarks are modelled as single fields, not arrays. The spec's field.type enum (string, number, integer, boolean, date, enum, file, object) has no array/repeating type; each set of ruled lines is genuinely one continuous piece of prose on the source form (a purpose statement, or free-text remarks), not a bounded set of independently-labeled repeating rows like this registry's other "up to N rows" tables (e.g. no/skatteetaten/skattemelding-for-forhandsfastsetting's wages/pension tables). A single string with a maxLength sized to the ruled-line count is the correct model here.
  • The two "Kopie eines gültigen Ausweises" name text fields are modelled as data fields (ownerIdentityDocumentHolderName, additionalSignatoryIdentityDocumentHolderName) paired with corresponding documents[] entries, rather than folded entirely into the document requirement. The source form genuinely asks for both a checkbox (confirming the copy is attached) and a name (whose copy it is) — both are applicant-entered content and are kept as distinct concerns per GSP-0014's fields/documents split.
  • The register-extract order (registerExtractOrder) is modelled as a documents[] entry with category: payment, not a boolean fields[] entry, since it carries a genuine amount (CHF 40) and is pre-selected by default on the source form (opt-out via crossing it out, per the form's own instruction) — this follows the same category: payment pattern used elsewhere in this registry rather than inventing a new boolean-with-amount shape.
  • The wet-ink signature and public-notarization requirement (Section 10, "Unterschriften") are not modelled as fields — signatures must be authenticated in person by the Amt für Handelsregister und Notariate, a notary, or a municipal administration under presentation of a valid identity document. This is a physical-attestation process step, not applicant-entered data, consistent with this registry's established precedent for wet-ink signature sections elsewhere.
  • ownerHometownOrNationality/additionalSignatoryHometownOrNationality/ submitterHometownOrNationality each model a single combined Heimatort-or-Staatsangehörigkeit concept (place of origin for Swiss citizens, nationality for foreign nationals) as one free-text field, matching the single AcroForm widget backing each — the source form does not split this into two separate inputs.
  • No steps[] — this is a flat multi-page paper form, not a live multi-step wizard, consistent with this registry's other flat-PDF schemas (e.g. the NO Skattemelding sibling).

Validation

  • node tools/validate.mjs — see CI/commit log for the exact before/after totals.
  • node tools/validate-ajv.mjs — same.
  • node tools/verify-sources.mjs --base origin/main — confirms the single cited source URL is live and unauthenticated.
  • Conformance fixtures under conformance/ch/sg/handelsregisteramt/anmeldung-neueintragung-einzelunternehmen/1.0.0/: 2 valid fixtures (sole-signature-no-UID, and joint-signature-with-UID covering every requiredWhen branch) plus mutation-control fixtures each raising exactly one error.

GovSchema is independent and is not affiliated with, endorsed by, or operated by the Swiss Confederation, the Canton of St. Gallen, or its Amt für Handelsregister und Notariate. This schema does not file the registration itself; the live source (sg.ch) is always authoritative.

View the raw record (VERIFICATION.md)

Version history

  • 1.0.0 draft latest this page has verification record schema.json

Independent and non-affiliated

GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Amt für Handelsregister und Notariate des Kantons St.Gallen (Office for the Commercial Register and Notarial Affairs of the Canton of St. Gallen) or any government. The authoritative source is always the live government form and its official instructions.