Demo of a Swiss tax service for AI agents: AI-drafted answers, sample quotes, nothing validated yet.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Ask a Swiss tax question for a business or freelancer. Demo: what comes back is a draft written by AI and validated by no professional; do not use it or pass it on. Fill every intake field you can (jurisdiction, category, entity_type, tax_residence, activity_code, revenue_band, vat_status, cross_border, period, already_filed): matching uses these fields only, never the question text. If all fields match an entry, you get the draft entry with its assumptions, sources and validity window. If any field differs, or no entry exists, you get a sample indicative price band and turnaround instead. To see how a review would be quoted, call `ask` again with `request_quotes: true`; the reply says how your principal can hear when the pilot opens, and `status` shows the sample quotes. Free: nothing is charged and nobody is contacted. Do not use for private matters or for countries other than Switzerland, and send no real personal data.
Intake fields (schema intake.ch-tax.v0). Fill every field you can. Matching uses these only.
Taxonomy path, as search_library returns it (e.g. tax.vat.mwst_registration).
Who is asking: agent (software acting for the principal) or human (a person using the operator's interface). Set by the operator's integration; defaults to the operator's declared default.
priority asks for a faster turnaround and may raise the quotes.
Language of the answer.
Longest acceptable turnaround, ISO 8601 duration (e.g. P5D).
Public demo: not needed; if sent, it is discarded unread. Send no real data.
Public demo: not needed; if sent, it is discarded unread. Send no real data.
Cap for this question, CHF, VAT excluded.
true after a library miss: asks the professionals for named quotes. Free; nothing is charged until commit.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Ask a Swiss tax question for a business or freelancer. Demo: what comes back is a draft written by AI and validated by no professional; do not use it or pass it on. Fill every intake field you can (jurisdiction, category, entity_type, tax_residence, activity_code, revenue_band, vat_status, cross_border, period, already_filed): matching uses these fields only, never the question text. If all fields match an entry, you get the draft entry with its assumptions, sources and validity window. If any field differs, or no entry exists, you get a sample indicative price band and turnaround instead. To see how a review would be quoted, call `ask` again with `request_quotes: true`; the reply says how your principal can hear when the pilot opens, and `status` shows the sample quotes. Free: nothing is charged and nobody is contacted. Do not use for private matters or for countries other than Switzerland, and send no real personal data.
| Argument | Type | Description |
|---|---|---|
| facts* | object | Intake fields (schema intake.ch-tax.v0). Fill every field you can. Matching uses these only. |
| source | string | Who is asking: agent (software acting for the principal) or human (a person using the operator's interface). Set by the operator's integration; defaults to the operator's declared default. |
| urgency | string | priority asks for a faster turnaround and may raise the quotes. |
| category* | string | Taxonomy path, as search_library returns it (e.g. tax.vat.mwst_registration). |
| language | string | Language of the answer. |
| max_wait | string | Longest acceptable turnaround, ISO 8601 duration (e.g. P5D). |
| question | string | Public demo: not needed; if sent, it is discarded unread. Send no real data. |
| principal | object | Public demo: not needed; if sent, it is discarded unread. Send no real data. |
| max_budget | object | Cap for this question, CHF, VAT excluded. |
| jurisdiction* | string | |
| request_quotes | boolean | true after a library miss: asks the professionals for named quotes. Free; nothing is charged until commit. |
{
"type": "object",
"required": [
"jurisdiction",
"category",
"facts"
],
"properties": {
"facts": {
"type": "object",
"properties": {
"canton": {
"type": "array",
"items": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH"
],
"type": "string"
},
"minItems": 1,
"description": "Canton of the business or residence; several only when the question compares candidate cantons.",
"uniqueItems": true
},
"period": {
"type": "integer",
"maximum": 2100,
"minimum": 2000,
"description": "Tax year the question is about."
},
"capital": {
"enum": [
"below_20k",
"20k-99k",
"100k+"
],
"type": "string",
"description": "Share capital, CHF: 20k (GmbH) and 100k (AG) minimums."
},
"currency": {
"enum": [
"CHF",
"EUR",
"USD",
"other"
],
"type": "string",
"description": "Currency of the loan or transaction."
},
"canton_to": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH"
],
"type": "string",
"description": "Canton moved to."
},
"days_late": {
"enum": [
"1-30_days",
"31-90_days",
"91-365_days",
"over_1_year"
],
"type": "string",
"description": "How late the filing or payment is."
},
"employees": {
"enum": [
"0",
"1-10",
"11-49",
"50-249",
"250+"
],
"type": "string",
"description": "Full-time posts on annual average. 1-10 includes 10: audit opting-out is allowed with not more than 10 (OR art. 727a Abs. 2)."
},
"move_date": {
"enum": [
"not_yet",
"this_year_first_half",
"this_year_second_half",
"previous_year",
"earlier"
],
"type": "string",
"description": "When the move between cantons happens."
},
"cost_types": {
"type": "array",
"items": {
"enum": [
"home_office",
"vehicle",
"phone",
"travel",
"training",
"equipment",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Kinds of business cost in question.",
"uniqueItems": true
},
"loss_years": {
"enum": [
"none",
"1-3",
"4-7",
"over_7"
],
"type": "string",
"description": "Years with losses: 7 is the carry-forward limit."
},
"sales_type": {
"type": "array",
"items": {
"enum": [
"goods",
"digital_services",
"other_services"
],
"type": "string"
},
"minItems": 1,
"description": "What is sold.",
"uniqueItems": true
},
"vat_method": {
"enum": [
"effective",
"net_tax_rate"
],
"type": "string",
"description": "VAT method: effective, or net tax rate (Saldosteuersatz)."
},
"vat_status": {
"type": "array",
"items": {
"enum": [
"not_registered",
"registered",
"registered_as_foreign_company"
],
"type": "string"
},
"minItems": 1,
"description": "MWST/TVA position.",
"uniqueItems": true
},
"amount_band": {
"enum": [
"0-1k",
"1k-10k",
"10k-100k",
"100k+"
],
"type": "string",
"description": "Amount concerned, CHF."
},
"asset_types": {
"type": "array",
"items": {
"enum": [
"vehicle",
"computer_equipment",
"shares_in_companies",
"real_estate",
"intellectual_property",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Kinds of asset in question.",
"uniqueItems": true
},
"canton_from": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH"
],
"type": "string",
"description": "Canton moved from."
},
"citizenship": {
"enum": [
"CH",
"EU_EFTA",
"third_country"
],
"type": "string",
"description": "Citizenship of the principal."
},
"client_type": {
"type": "array",
"items": {
"enum": [
"B2B",
"B2C"
],
"type": "string"
},
"minItems": 1,
"description": "Business clients, consumers, or both.",
"uniqueItems": true
},
"entity_type": {
"enum": [
"setting_up",
"self_employed",
"sole_proprietorship",
"partnership",
"gmbh",
"ag",
"branch_of_foreign_company",
"foreign_company"
],
"type": "string",
"description": "Legal form. self_employed = freelancer without a register entry; sole_proprietorship = Einzelunternehmen / entreprise individuelle."
},
"fixed_place": {
"type": "boolean",
"description": "Has a fixed place of business in Switzerland."
},
"home_office": {
"type": "boolean",
"description": "Works from a room in the home."
},
"income_type": {
"type": "array",
"items": {
"enum": [
"self_employment",
"business",
"employment",
"dividends",
"interest",
"rental",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Kinds of income in question.",
"uniqueItems": true
},
"permit_type": {
"enum": [
"swiss_citizen",
"C",
"B",
"L",
"G",
"none"
],
"type": "string",
"description": "Swiss residence or cross-border permit."
},
"profit_band": {
"enum": [
"loss",
"0-50k",
"50k-100k",
"100k-250k",
"250k+"
],
"type": "string",
"description": "Profit of the period, CHF."
},
"salary_band": {
"enum": [
"0-2300",
"2301-22679",
"22680-119999",
"120000+"
],
"type": "string",
"description": "Yearly salary of the employee from this employer, CHF. Up to 2,300: AHV exempt on request; from 22,680: BVG entry threshold; from 120,000: the tax-at-source edge (inclusive side to be confirmed by the Treuhänder, as for owner_salary_band)."
},
"vehicle_use": {
"enum": [
"none",
"mixed_use",
"exclusive_business_use"
],
"type": "string",
"description": "Use of a vehicle in the activity."
},
"arrival_date": {
"enum": [
"not_yet",
"this_year_first_half",
"this_year_second_half",
"previous_year",
"earlier"
],
"type": "string",
"description": "When the principal moved to Switzerland."
},
"client_count": {
"enum": [
"1",
"2-5",
"6+"
],
"type": "string",
"description": "Number of clients."
},
"jobs_created": {
"enum": [
"0",
"1-9",
"10-49",
"50+"
],
"type": "string",
"description": "Jobs the project creates."
},
"other_income": {
"type": "boolean",
"description": "The principal has other income to offset against."
},
"owners_count": {
"enum": [
"1",
"2-3",
"4+"
],
"type": "string",
"description": "Number of owners."
},
"revenue_band": {
"enum": [
"0-100k",
"100k-500k",
"500k-1M",
"1M+"
],
"type": "string",
"description": "Yearly revenue, worldwide where the question is about VAT registration, CHF. Each band includes its lower edge and excludes its upper edge: MWST and commercial-register duty from 100,000 (100,000 is in 100k-500k); simplified accounts below 500,000."
},
"service_type": {
"enum": [
"general_services",
"electronically_supplied",
"real_estate_related",
"events_and_admissions",
"transport",
"other"
],
"type": "string",
"description": "Kind of service, as the place-of-supply rules group them."
},
"accounts_type": {
"enum": [
"simplified",
"double_entry"
],
"type": "string",
"description": "Kind of bookkeeping."
},
"activity_code": {
"type": "string",
"pattern": "^\\d{2}(\\.\\d{1,2}){0,2}$",
"description": "NOGA 2008 code, digits with dots (e.g. 62.01.00)."
},
"prior_country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country of residence before the move (ISO alpha-2)."
},
"tax_residence": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country of tax residence (ISO alpha-2)."
},
"a1_certificate": {
"type": "boolean",
"description": "Holds an A1 certificate."
},
"client_country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country of the main foreign client (ISO alpha-2)."
},
"departure_date": {
"enum": [
"not_yet",
"this_year_first_half",
"this_year_second_half",
"previous_year",
"earlier"
],
"type": "string",
"description": "When the principal leaves Switzerland."
},
"loan_direction": {
"enum": [
"to_company",
"from_company"
],
"type": "string",
"description": "Shareholder lends to the company, or borrows from it."
},
"parent_country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country of the foreign parent company (ISO alpha-2)."
},
"planned_change": {
"enum": [
"none",
"cessation",
"conversion_to_gmbh"
],
"type": "string",
"description": "A planned change of the business."
},
"staff_location": {
"type": "array",
"items": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH"
],
"type": "string"
},
"minItems": 1,
"description": "Cantons where the staff work.",
"uniqueItems": true
},
"treaty_country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "The other country whose double-tax treaty with Switzerland is in question (ISO alpha-2)."
},
"business_assets": {
"type": "array",
"items": {
"enum": [
"none",
"equipment",
"vehicles",
"real_estate",
"shares",
"stock",
"receivables"
],
"type": "string"
},
"minItems": 1,
"description": "Business assets held.",
"uniqueItems": true
},
"client_location": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Where the clients are.",
"uniqueItems": true
},
"dependent_agent": {
"type": "boolean",
"description": "An agent in Switzerland habitually concludes contracts for the company."
},
"dividend_amount": {
"enum": [
"0-10k",
"10k-100k",
"100k+"
],
"type": "string",
"description": "Dividend, CHF."
},
"employment_rate": {
"enum": [
"0-49pct",
"50-79pct",
"80-100pct"
],
"type": "string",
"description": "Employment rate of the employee."
},
"fiscal_year_end": {
"enum": [
"jan",
"feb",
"mar",
"apr",
"may",
"jun",
"jul",
"aug",
"sep",
"oct",
"nov",
"dec"
],
"type": "string",
"description": "Month the business year ends."
},
"investment_band": {
"enum": [
"0-100k",
"100k-1M",
"1M+"
],
"type": "string",
"description": "Planned investment, CHF."
},
"revenue_band_ch": {
"enum": [
"0-100k",
"100k-500k",
"500k-1M",
"1M+"
],
"type": "string",
"description": "Revenue made in Switzerland, CHF. Each band includes its lower edge and excludes its upper edge."
},
"tax_paid_abroad": {
"type": "boolean",
"description": "Tax on the same income was paid abroad."
},
"dividend_planned": {
"type": "boolean",
"description": "A dividend is planned for the year."
},
"invoice_currency": {
"type": "array",
"items": {
"enum": [
"CHF",
"EUR",
"USD",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Currencies the invoices are issued in.",
"uniqueItems": true
},
"loan_amount_band": {
"enum": [
"0-100k",
"100k-1M",
"1M+"
],
"type": "string",
"description": "Loan, CHF."
},
"marketplace_used": {
"type": "boolean",
"description": "Sales go through an online marketplace."
},
"owners_residence": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Where the owners reside.",
"uniqueItems": true
},
"shareholder_type": {
"type": "array",
"items": {
"enum": [
"person",
"company"
],
"type": "string"
},
"minItems": 1,
"description": "Kinds of shareholder.",
"uniqueItems": true
},
"working_language": {
"enum": [
"de",
"fr",
"it",
"en",
"other"
],
"type": "string",
"description": "Language the principal works in."
},
"business_premises": {
"type": "boolean",
"description": "Has business premises."
},
"eu_b2c_sales_band": {
"enum": [
"0-10k_eur",
"10k_eur+"
],
"type": "string",
"description": "Distance sales to EU consumers, EUR: 10k is the EU OSS edge."
},
"obligation_missed": {
"enum": [
"tax_return",
"vat_return",
"vat_payment",
"ahv_contributions",
"withholding_tax",
"other"
],
"type": "string",
"description": "The filing or payment that was missed."
},
"owner_salary_band": {
"enum": [
"0-120k",
"120k+"
],
"type": "string",
"description": "Salary the owner-manager draws, CHF: ordinary assessment instead of tax at source from about 120,000. Whether 120,000 itself falls below or above the edge is to be confirmed by the Treuhänder."
},
"place_of_business": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH"
],
"type": "string",
"description": "Canton where the business is carried on."
},
"premises_location": {
"type": "array",
"items": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH"
],
"type": "string"
},
"minItems": 1,
"description": "Cantons where the business has premises.",
"uniqueItems": true
},
"residence_country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country of residence (ISO alpha-2), for cross-border workers."
},
"side_revenue_band": {
"enum": [
"0-2300",
"2301+"
],
"type": "string",
"description": "Yearly revenue of a side activity, CHF. Up to and including 2,300, AHV contributions only on request."
},
"supplier_location": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Where the suppliers are.",
"uniqueItems": true
},
"balance_sheet_band": {
"enum": [
"0-20M",
"20M+"
],
"type": "string",
"description": "Balance-sheet total, CHF."
},
"employee_residence": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Where the employees live.",
"uniqueItems": true
},
"founders_residence": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Where the founders reside.",
"uniqueItems": true
},
"input_vat_expected": {
"enum": [
"none",
"less_than_output_vat",
"more_than_output_vat"
],
"type": "string",
"description": "Input VAT expected against output VAT."
},
"activity_start_date": {
"enum": [
"not_started",
"within_30_days",
"1-12_months",
"1-3_years",
"3-5_years",
"5+_years"
],
"type": "string",
"description": "How long ago the activity started, counted back from the day of the ask."
},
"days_in_switzerland": {
"enum": [
"0-29",
"30-89",
"90+"
],
"type": "string",
"description": "Days present in Switzerland in the year. Residence by stay starts at 30 days or more with gainful activity, 90 or more without (DBG art. 3 Abs. 3)."
},
"functional_currency": {
"enum": [
"CHF",
"EUR",
"USD",
"other"
],
"type": "string",
"description": "Functional currency of the accounts."
},
"activity_description": {
"type": "string",
"maxLength": 200,
"description": "Short description of the activity, for the professionals only. Never matched."
},
"employee_permit_type": {
"type": "array",
"items": {
"enum": [
"swiss_citizen",
"C",
"B",
"L",
"G",
"none"
],
"type": "string"
},
"minItems": 1,
"description": "Permits of the employees.",
"uniqueItems": true
},
"seller_establishment": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string",
"description": "Where the seller is established."
},
"shareholders_consent": {
"type": "boolean",
"description": "All shareholders consent (audit opting-out)."
},
"shareholding_percent": {
"enum": [
"0-9",
"10-49",
"50-100"
],
"type": "string",
"description": "Holding of the shareholder, %: 10% is the partial-taxation edge for dividends."
},
"staff_in_switzerland": {
"enum": [
"0",
"1",
"2-5",
"6+"
],
"type": "string",
"description": "Staff working in Switzerland."
},
"countries_of_activity": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Zones where the principal works.",
"uniqueItems": true
},
"shareholder_residence": {
"type": "array",
"items": {
"enum": [
"CH",
"EU",
"EEA",
"UK",
"US",
"other"
],
"type": "string"
},
"minItems": 1,
"description": "Where the shareholders reside or are established.",
"uniqueItems": true
},
"consignment_value_band": {
"enum": [
"0-150_eur",
"150_eur+"
],
"type": "string",
"description": "Intrinsic value of a consignment into the EU, EUR. IOSS covers up to and including 150: 150 itself is in 0-150_eur."
},
"employment_income_band": {
"enum": [
"none",
"0-120k",
"120k+"
],
"type": "string",
"description": "Yearly employment income, CHF."
},
"existing_swiss_manager": {
"type": "boolean",
"description": "A manager resident in Switzerland already exists."
},
"worldwide_revenue_band": {
"enum": [
"0-100k",
"100k-500k",
"500k-1M",
"1M+"
],
"type": "string",
"description": "Worldwide revenue, CHF. Each band includes its lower edge and excludes its upper edge (MWST duty from 100,000)."
},
"activity_in_switzerland": {
"type": "array",
"items": {
"enum": [
"sales",
"services",
"production",
"support_only"
],
"type": "string"
},
"minItems": 1,
"description": "What the foreign company does in Switzerland.",
"uniqueItems": true
},
"remote_formation_needed": {
"type": "boolean",
"description": "The company must be formed without travelling to Switzerland."
},
"employees_resident_in_ch": {
"type": "boolean",
"description": "The employees live in Switzerland."
},
"marital_status_for_tariff": {
"enum": [
"single",
"married_or_registered_partnership",
"other"
],
"type": "string",
"description": "Marital status, for the tax-at-source tariff."
},
"staff_role_in_switzerland": {
"type": "array",
"items": {
"enum": [
"none",
"concludes_contracts",
"sales_support",
"technical",
"management"
],
"type": "string"
},
"minItems": 1,
"description": "What the staff in Switzerland do.",
"uniqueItems": true
},
"purchases_from_abroad_band": {
"enum": [
"0-10k",
"10k+"
],
"type": "string",
"description": "Services bought from abroad in the year, CHF. Acquisition tax (Bezugsteuer) for the non-registered above 10,000: 10,000 itself is in 0-10k."
},
"low_value_consignments_band": {
"enum": [
"0-100k",
"100k+"
],
"type": "string",
"description": "Yearly turnover from small consignments into Switzerland, CHF. Mail-order rule (Versandhandel) from 100,000: 100,000 itself is in 100k+."
},
"planned_sale_within_5_years": {
"type": "boolean",
"description": "A sale is planned within five years."
},
"place_of_effective_management": {
"enum": [
"AG",
"AI",
"AR",
"BE",
"BL",
"BS",
"FR",
"GE",
"GL",
"GR",
"JU",
"LU",
"NE",
"NW",
"OW",
"SG",
"SH",
"SO",
"SZ",
"TG",
"TI",
"UR",
"VD",
"VS",
"ZG",
"ZH",
"abroad"
],
"type": "string",
"description": "Canton (or abroad) where the company is effectively managed."
},
"share_of_activity_per_country": {
"enum": [
"under_25pct_in_residence_country",
"25pct_or_more_in_residence_country"
],
"type": "string",
"description": "Share of the activity in the country of residence (25% is the substantial-activity edge for A1)."
}
},
"description": "Intake fields (schema intake.ch-tax.v0). Fill every field you can. Matching uses these only.",
"additionalProperties": false
},
"source": {
"enum": [
"agent",
"human"
],
"type": "string",
"description": "Who is asking: agent (software acting for the principal) or human (a person using the operator's interface). Set by the operator's integration; defaults to the operator's declared default."
},
"urgency": {
"enum": [
"standard",
"priority"
],
"type": "string",
"default": "standard",
"description": "priority asks for a faster turnaround and may raise the quotes."
},
"category": {
"type": "string",
"pattern": "^[a-z]+(\\.[a-z0-9_]+)+$",
"description": "Taxonomy path, as search_library returns it (e.g. tax.vat.mwst_registration)."
},
"language": {
"enum": [
"de",
"fr",
"en"
],
"type": "string",
"default": "en",
"description": "Language of the answer."
},
"max_wait": {
"type": "string",
"maxLength": 40,
"description": "Longest acceptable turnaround, ISO 8601 duration (e.g. P5D)."
},
"question": {
"type": "string",
"maxLength": 500,
"description": "Public demo: not needed; if sent, it is discarded unread. Send no real data."
},
"principal": {
"type": "object",
"required": [
"ref",
"name",
"country",
"business_purpose"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 100,
"description": "Your own stable id for this principal. Not a name or an email."
},
"name": {
"type": "string",
"maxLength": 200,
"description": "Business name."
},
"country": {
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "Country of establishment, ISO alpha-2."
},
"setting_up": {
"type": "boolean",
"description": "true while the activity is being set up and has no number yet."
},
"vat_number": {
"type": "string",
"maxLength": 40,
"description": "VAT number, if the business has one."
},
"business_purpose": {
"type": "boolean",
"const": true,
"description": "Must be true: the request is for a trade, business or profession, including one being set up."
},
"registration_number": {
"type": "string",
"maxLength": 40,
"description": "Commercial-register or company number, if any."
}
},
"description": "Public demo: not needed; if sent, it is discarded unread. Send no real data.",
"additionalProperties": false
},
"max_budget": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"currency": {
"enum": [
"CHF"
],
"type": "string"
}
},
"description": "Cap for this question, CHF, VAT excluded.",
"additionalProperties": false
},
"jurisdiction": {
"enum": [
"CH"
],
"type": "string"
},
"request_quotes": {
"type": "boolean",
"default": false,
"description": "true after a library miss: asks the professionals for named quotes. Free; nothing is charged until commit."
}
},
"additionalProperties": false
}Commit to one of the sample quotes returned by `status`: chosen by your principal, or by a rule your principal set explicitly, never by position. Demo: this returns a sample ticket; nothing is ordered, nothing is charged and no professional is contacted. In the pilot this will be the only tool that commits money beyond the plan (the professional's quoted fee, paid to them in full, plus a vidit fee paid by the operator), and only within the budget and policy your principal set.
| Argument | Type | Description |
|---|---|---|
| choice* | string | The quote_id the principal chose, or "none". |
| chosen_by* | string | principal: a person at the principal chose. principal_rule: a rule the principal set or expressly accepted chose. |
| max_budget | object | Cap for this question, CHF, VAT excluded. |
| request_id* | string | The request_id returned by ask with request_quotes. |
| accepted_by | string | Public demo: not needed; if sent, it is discarded unread. Send no real data. |
| reuse_opt_in | boolean | The principal allows the professional to turn the review, stripped of identifying facts, into a library entry. Revocable. |
| principal_rule | object | Required with chosen_by principal_rule: which rule chose, who at the principal set or accepted it, and when. |
Browse the demo's draft Swiss tax entries before you ask. Free. Each entry was drafted by AI and has been validated by no professional; in the pilot, entries will be validated by a named Treuhänder before they are served. Returns, for each matching entry, the canonical question, its assumptions and the intake fields it matches on. The entry itself comes back only from `ask`, and only when your principal's fields match it. Use it to see which topics exist, or which facts decide an answer, before you collect them.
| Argument | Type | Description |
|---|---|---|
| keywords | string | Plain words; every word must appear in the entry's question or category. |
| language | string | |
| jurisdiction | string | |
| category_prefix | string | e.g. tax.vat |
{
"type": "object",
"properties": {
"keywords": {
"type": "string",
"maxLength": 100,
"description": "Plain words; every word must appear in the entry's question or category."
},
"language": {
"enum": [
"de",
"fr",
"en"
],
"type": "string"
},
"jurisdiction": {
"enum": [
"CH"
],
"type": "string",
"default": "CH"
},
"category_prefix": {
"type": "string",
"pattern": "^[a-z]+(\\.[a-z0-9_]+)*$",
"maxLength": 120,
"description": "e.g. tax.vat"
}
},
"additionalProperties": false
}Check a request for quotes or a ticket. Free. After `ask` with `request_quotes`, returns three sample quotes from sample professionals ("SAMPLE Professional 1" to "3"), side by side and in no ranked order, as the pilot will show real ones. Choose among quotes only by a rule your principal set explicitly; otherwise present them to your principal and wait; never choose by position. After `commit`, returns the sample ticket.
| Argument | Type | Description |
|---|---|---|
| id* | string | A request_id or a ticket_id. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 40,
"description": "A request_id or a ticket_id."
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"request_id",
"choice",
"chosen_by"
],
"properties": {
"choice": {
"type": "string",
"maxLength": 40,
"description": "The quote_id the principal chose, or \"none\"."
},
"chosen_by": {
"enum": [
"principal",
"principal_rule"
],
"type": "string",
"description": "principal: a person at the principal chose. principal_rule: a rule the principal set or expressly accepted chose."
},
"max_budget": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"currency": {
"enum": [
"CHF"
],
"type": "string"
}
},
"description": "Cap for this question, CHF, VAT excluded.",
"additionalProperties": false
},
"request_id": {
"type": "string",
"maxLength": 40,
"description": "The request_id returned by ask with request_quotes."
},
"accepted_by": {
"type": "string",
"maxLength": 120,
"description": "Public demo: not needed; if sent, it is discarded unread. Send no real data."
},
"reuse_opt_in": {
"type": "boolean",
"default": false,
"description": "The principal allows the professional to turn the review, stripped of identifying facts, into a library entry. Revocable."
},
"principal_rule": {
"type": "object",
"required": [
"rule",
"accepted_by",
"accepted_on"
],
"properties": {
"rule": {
"enum": [
"cheapest_within_budget",
"fastest_within_budget"
],
"type": "string"
},
"accepted_by": {
"type": "string",
"maxLength": 120
},
"accepted_on": {
"type": "string",
"format": "date"
}
},
"description": "Required with chosen_by principal_rule: which rule chose, who at the principal set or accepted it, and when.",
"additionalProperties": false
}
},
"additionalProperties": false
}