Swiss VAT (MWST/TVA) & UID Validator – Official Register
Pricing
from $3.00 / 1,000 register records
Swiss VAT (MWST/TVA) & UID Validator – Official Register
Bulk-validate Swiss UID and VAT numbers (CHE-xxx.xxx.xxx MWST/TVA/IVA) against the official federal UID register, the source VIES does not cover. Returns VAT status, company name, legal form, address, commercial-register number and LEI. Name search included.
Pricing
from $3.00 / 1,000 register records
Rating
0.0
(0)
Developer
Jordan Banchonpanith
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Swiss VAT Number Validation API – UID Register Bulk Check (MWST / TVA / IVA)
Swiss VAT (MWST/TVA) & UID Validator checks Swiss UID and VAT numbers (CHE-123.456.789 MWST / TVA / IVA) in bulk against the official Swiss federal UID register of the Federal Statistical Office (BFS). Use it as a Swiss VAT number validation API from your code, a scheduled bulk check for your supplier list, or a one-off clean-up of a CRM export.
The EU's VIES service does not cover Switzerland, so EU VAT checkers cannot confirm a Swiss number. This Actor queries the Swiss register directly.
What you get for each Swiss UID or VAT number
- Format and check digit validation (offline, instant, cheap)
- whether the company exists and is active in the UID register
- whether it is VAT-registered, and the VAT number to print on invoices (for VAT-group members, that is the group's number, not their own UID)
- official name (plus DE/FR/IT/EN translations), legal form, registered address, canton
- commercial-register number (CH-…), entry status, and LEI when the register has one
- optional company name search: find a company's UID and VAT number from its name, with a relevance rating
How to validate Swiss VAT numbers in bulk
- Paste your numbers into Identifiers, in any format:
CHE-105.829.940,CHE105829940MWST,che 105 829 940 tva,105.829.940. - Optionally add Company names to look up their UID/VAT number.
- Run. Each number becomes one row in the dataset. Export to CSV, Excel or JSON, or call the Actor through the Apify API.
{"identifiers": ["CHE-105.829.940 MWST", "CHE105909036", "CHE-105.829.941"],"companyNames": ["Swisscom AG"],"maxResultsPerName": 1}
| Field | Description |
|---|---|
identifiers | UID or VAT numbers in any format (max 10,000 per run) |
companyNames | Optional name search (max 2,000), returning up to maxResultsPerName (1–30, default 5) |
searchMode | Auto (default), Normal, or Fuzzy |
includeInactive | Include deleted entities in name-search results (default false) |
includeSoleProprietorNames | Un-redact sole-proprietor names (default false; enable only with a legitimate purpose) |
requestIntervalMs | Delay between register calls, minimum 3,000 ms (the register's limit) |
Swiss VAT groups: which number is valid?
Some Swiss companies belong to a VAT group and do not have their own VAT number. Example from a real run: Nestlé AG (CHE-105.909.036) is a VAT-group member, so CHE-105.909.036 MWST is not a valid VAT number; the group's number CHE-116.281.710 MWST is. The output shows this with vat.vatNumberIsOwnUid, vat.isVatGroupMember and vat.vatGroupHeadUid, so you can print the right number on invoices.
Output example (one row per identifier or name match)
Taken from a real run on 2026-11-05. The Output tab has an "Overview" table; every field is described in the dataset schema.
{"inputType": "identifier", "input": "CHE105909036", "uidFormatValid": true,"uid": "CHE-105.909.036", "found": true, "isActive": true, "uidRegisterStatus": "active","name": "Nestlé AG", "legalFormCode": "0106", "legalForm": "Corporation (Aktiengesellschaft / SA)","address": { "street": "Zugerstrasse", "houseNumber": "8", "zip": "6330", "town": "Cham", "canton": "ZG", "country": "CH" },"commercialRegister": { "status": "registered", "entryStatus": "active", "registerNumber": "CH17030010013" },"vat": { "registered": true, "active": true, "vatUid": "CHE-116.281.710", "vatNumberIsOwnUid": false,"isVatGroupMember": true, "vatGroupHeadUid": "CHE-116.281.710", "vatNumberDE": "CHE-116.281.710 MWST" },"otherEntries": [{ "name": "Nestlé S.A.", "town": "Vevey", "canton": "VD", "isActive": true }],"checkedAt": "2026-11-05T01:17:29.160Z", "source": "https://www.uid-wse.admin.ch/V5.0/PublicServices.svc"}
- Not in the register →
found: false. - Wrong check digit →
uidFormatValid: falsewith aformatError(no register call). - Register or network failure after retries →
erroris set, and you are not charged for that row.
Pricing (pay per event)
| Event | Price |
|---|---|
| Register record (one identifier looked up, or one name-search match / no-match row) | $0.003 ($3 per 1,000) |
| Format-only check (invalid check digit, no register call) | $0.0005 |
| Actor start | $0.001 |
Duplicates in one run are looked up and charged once. Set a "max charge per run" and the Actor stops cleanly when it is reached.
Data source, privacy and limits
- Official source only: the public SOAP web service of the federal UID register (
uid-wse.admin.ch). No scraping, no login, no API key needed. - Sole proprietorships (legal form 0101) carry a person's name, so their name and street are redacted by default; VAT status, town and canton are still returned. The Actor never searches by person name or social-security number.
- The public service allows 20 requests per minute. The Actor throttles to about 19/min and retries rate-limit errors with backoff: expect about 1,100 register lookups per hour. Invalid numbers and duplicates are instant.
- Name search returns at most 30 matches per name (register limit).
- Data is as current as the UID register (updated daily by the BFS). This is not legal or tax advice.
- Codes are mapped per eCH-0097 and eCH-0108 v5; raw codes (
legalFormCode,uidRegisterStatusCode) are included too.
Use cases
- Supplier onboarding and KYB checks for Swiss vendors
- Checking a customer's Swiss VAT number before zero-rated or reverse-charge invoicing
- Cleaning CRM / ERP master data (UID, legal form, canton)
- Scheduled re-checks to catch de-registrations (use an Apify schedule)
FAQ
Can I check a Swiss VAT number with VIES? No. VIES covers EU member states only. Switzerland publishes VAT status in its own UID register, which this Actor queries.
Is a UID the same as a Swiss VAT number? Usually the VAT number is the UID followed by MWST, TVA or IVA. VAT-group members are the exception (see above).
Can I call it as an API? Yes. Use the Apify API "run Actor synchronously and get dataset items" endpoint with the input above, or one of the Apify API clients.
En français : vérifier un numéro TVA / IDE suisse
Cet Actor vérifie en masse des numéros IDE et TVA suisses (CHE-123.456.789 TVA) dans le registre IDE officiel de l'Office fédéral de la statistique : format et chiffre de contrôle, entreprise active ou radiée, assujettissement à la TVA, numéro de TVA correct en cas de groupe TVA, raison sociale, forme juridique, adresse et canton. VIES ne couvre pas la Suisse. Prix : 0,003 $ par numéro vérifié.
Maintenance & support
This Actor is maintained by an AI agent on behalf of its owner. Report problems in the Actor's Issues tab; confirmed issues are fixed within 14 days. Source data © Swiss Federal Statistical Office (BFS), UID register public web service. Not affiliated with the BFS.
Ready-to-run example tasks
- Validate Swiss VAT numbers in bulk (MWST/TVA/IVA)
- Find a Swiss company's UID and VAT number by name
- Check Swiss VAT group membership and invoice VAT number
More Actors from the same maintainer
- France Price per m² by Address – Batch DVF Comps: median €/m² of real recorded sales around French addresses
- France Company Health Check by SIREN – BODACC Batch: insolvency, strike-off and late-accounts signals for French companies
- Google Sheets Import/Export – Service Account: send these results to a Google Sheet without OAuth expiry