---
title: "Submit Endpoint"
method: POST
path: "/api/setup-with-us/submit"
tags: ["setup-with-us"]
---

# Submit Endpoint

`POST /api/setup-with-us/submit`

## Request

- Base URL: `https://api.taxcompass.it` (the document declares no server; this is the origin it was published from)
- URL: `https://api.taxcompass.it/api/setup-with-us/submit`
- Auth: none declared

## Request body

- SetupSubmitRequest: ``POST /submit`` body — the intake plus the verdicts already gathered. Verdicts come from prior ``/validate-document`` calls; the server does NOT re-validate on submit (the files are gone — that's the validate-don't-retain consequence). What it *does* do is check that each verdict is one it issued: ``document_tokens`` carries, under the same key, the signed token that came back with the verdict, and a verdict without a valid one is refused (#598).
  - `intake` SetupIntake, required: Everything we'd need to actually register the business for someone. Most fields are optional + length-capped: the intake is progressive and the whole object is persisted verbatim into JSONB, so the caps are the only thing standing between a tampered client and an unbounded row.
    - `locale` 'en' | 'pl' | 'it' | 'de' | 'fr' | 'es'
    - `email` string, required
    - `full_legal_name` string, nullable
    - `date_of_birth` string, nullable
    - `place_of_birth` string, nullable
    - `nationality` string, nullable
    - `codice_fiscale` string, nullable
    - `current_residency` string, nullable
    - `target_setup` 'moving_to_italy' | 'staying_abroad' | 'already_in_italy', nullable
    - `passport_country` string, nullable
    - `foreign_address` string, nullable
    - `italian_address` string, nullable
    - `residence_permit_type` string, nullable
    - `residence_permit_number` string, nullable
    - `residence_permit_expiry` string, nullable
    - `business_type` 'professionista' | 'artigiano' | 'commerciante', nullable
    - `activity_description` string, nullable
    - `regulated_profession` boolean, nullable
    - `professional_order` string, nullable
    - `ateco_code` string, nullable
    - `expected_annual_revenue_eur` number, nullable
    - `existing_business` string, nullable
    - `regime_intent` 'forfettario' | 'ordinario' | 'let_expert_decide', nullable
    - `impatriate_eligibility` boolean, nullable
    - `iban_intent` 'have_italian' | 'will_open' | 'use_foreign', nullable
    - `pec_intent` string, nullable
    - `spid_status` 'have' | 'need_help' | 'not_sure', nullable
    - `notes` string, nullable
    - `consent_accepted` boolean
  - `document_verdicts` object
  - `document_tokens` object
  - `source` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/taxcompass/apis/taxcompass-api.md) · [All operations](https://skmtc.dev/taxcompass/apis/taxcompass-api/llms.txt) · [OpenAPI document](https://skmtc.dev/taxcompass/apis/taxcompass-api/revisions/fef5fc6a9b91?raw)
