DACH Supplier Check: VAT (VIES), Company Identity & Insolvency
Pricing
from $20.00 / 1,000 kyb packet delivereds
DACH Supplier Check: VAT (VIES), Company Identity & Insolvency
Check German, Austrian and Swiss suppliers from their website: legal name and address from the Impressum, a live EU VIES VAT number check and a German insolvency notice flag, in one row per supplier. For vendor onboarding and AP checks. No API key.
Pricing
from $20.00 / 1,000 kyb packet delivereds
Rating
0.0
(0)
Developer
Daniel Witney
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Security
Limited permissionsShare
DACH Supplier KYB: VIES VAT Check, Impressum & Insolvency
Supplier verification and vendor onboarding for German / Austrian / Swiss suppliers. Give a supplier's website and get one JSON KYB packet: the legal identity from its statutory Impressum, a live official VIES VAT check of the VAT ID found, and an official Insolvenzbekanntmachungen open-insolvency flag — plus typed mismatch events such as VAT_INVALID_OR_MISMATCH and INSOLVENCY_OPEN. Public HTTP only, no API key. Not a Northdata clone, not a certified Handelsregister extract, not a credit score.
Quick start (no key): put your suppliers' website domains in the input → set Source mode = live → Start. The first live run already returns one packet per supplier; schedule it to re-check. Clicking Start with the defaults runs a free health check only (the default domains are placeholders).
Who this is for
- Procurement and vendor-onboarding teams verifying new DE / AT / CH suppliers before pay-on-terms.
- Fraud-prevention and AP teams checking that a supplier's VAT ID is valid and matches the legal name before paying.
- KYB analysts who want Impressum × VIES × insolvency in one row instead of three manual lookups.
Typical workflow
- List supplier websites or bare domains (e.g.
supplier.de). - Run with
sourceMode: "live"(no key); optionally setviesRequesterVat(your EU VAT ID) to get a VIES consultation identifier as evidence. - Review packets where
mismatch_eventsis non-empty (VAT_INVALID_OR_MISMATCH,INSOLVENCY_OPEN,HRB_PARSE_UNVERIFIED) before approving the vendor. - Schedule it to re-check your supplier base; unchanged packets are deduplicated and not re-charged.
First run vs later runs
No baseline step: the first live run returns a packet for each supplier it can verify. Later runs re-check and only deliver (and charge) a new packet when the result changes.
Run it live now (no API key)
{"supplierUrls": ["https://www.your-supplier.de","partner.at"],"sourceMode": "live","maxRunSeconds": 120,"requestPaceMs": 500}
Example output (SAMPLE)
SAMPLE — illustrative values in the real output shape;
example-supplier.de/Example Maschinenbau GmbH/DE000000000are placeholders, not a real supplier or a real VIES response.
{"event_type": "KYB_PACKET","event_subtype": "VERIFIED","supplier_domain": "example-supplier.de","country_hint": "DE","legal_name": "Example Maschinenbau GmbH","legal_form": "GmbH","register_court": "Amtsgericht Example","register_id": "HRB 00000","vat_id": "DE000000000","impressum_url": "https://example-supplier.de/impressum","vies_status": "VALID","vies_valid": true,"insolvency_status": "CLEAR","insolvency_hit_count": 0,"mismatch_events": [],"verified": true,"summary": "KYB packet for example-supplier.de: vies=VALID insolvency=CLEAR verified=true","event_uid": "<md5>","billable": true}
What you get per $0.02 event: one verified KYB packet for one supplier (one dataset row like the sample above). Unverified results (Impressum miss, VIES or gazette unavailable) are not delivered or charged (they are counted in the RUN_STATUS row); duplicates and health rows are never charged.
Honest title: batch / scheduled KYB packet over public HTTP. Not a certified Handelsregister extract, not Creditreform, not real-time gazette push.
Value proposition
- Cross-source join: first-party Impressum × EU VIES × official German insolvency gazette.
- Mismatch events:
VAT_INVALID_OR_MISMATCH,VIES_UNAVAILABLE,INSOLVENCY_OPEN,HRB_PARSE_UNVERIFIED(and incomplete helpers). - Official / public HTTP only. No paid Northdata / Creditreform / Handelsregister API.
- Pay only for unique verified KYB packets. Impressum miss, VIES outage, and fixture health ≈ $0 product charges.
- Durable KVS checkpoint +
event_uiddedupe.
PRODUCTION USE (required for real KYB)
Store default ≠ product. Schema defaults use
sourceMode=fixtureso Apify Store daily auto-tests leave a non-empty health dataset without calling supplier sites, VIES, or the gazette. That fixture path only writes a non-billableRUN_STATUS/FIXTURE_HEALTHrow. It is not supplier verification.
For production KYB you must:
- Set
sourceMode=live - Provide
supplierUrls(domains or URLs) - Use fair-use
requestPaceMs(default 500) - Optionally set
viesRequesterVat(your EU VAT) to obtain a VIES consultation / request identifier
Official references:
- VIES VAT validation
- Insolvenzbekanntmachungen (UI:
neu.insolvenzbekanntmachungen.de) - Statutory Impressum obligations on the supplier’s own website (TMG / DDV / local equivalents) — first-party pages only
Data limitations (read before buying)
- Not a Northdata / Creditreform substitute. No paid register API; HRB fields are parsed from Impressum text (best-effort) and may be incomplete →
HRB_PARSE_UNVERIFIED. - VIES can be temporarily unavailable; those runs do not charge as verified packets (
VIES_UNAVAILABLE→ retry). - Swiss (CH) VAT is outside EU VIES; packets may still verify with
vies_status=SKIPPEDwhen Impressum + insolvency succeed. - Insolvency search is the official public UI (fair-use). Name collisions, portal challenges, or rate limits →
INSOLVENCY_CHECK_UNAVAILABLE(not charged as verified). Austrian/Swiss insolvency gazettes are not fully covered by the German portal. - Impressum HTML varies widely; email/phone/GF parsing is best-effort.
- Fair-use pacing applies; large batches need longer
maxRunSecondsor chunked runs. - We cite the supplier site, the European Commission (VIES), and Justizportal Insolvenzbekanntmachungen as data origins. This Actor is not affiliated with or endorsed by them.
Apify Store daily auto-test / default input
| Field | Default |
|---|---|
supplierUrls | ["example-maschine.de","risk-supplier.at"] |
sourceMode | fixture |
emitFixtureDemoEvents | false |
maxRunSeconds | 55 |
maxEvents | 500 |
On that path the Actor SUCCEEDS quickly, pushes exactly one RUN_STATUS / FIXTURE_HEALTH row (billable: false), and does not charge kyb-packet-delivered.
Input (summary)
| Field | Notes |
|---|---|
supplierUrls | Domains or URLs (required) |
sourceMode | fixture (default) or live |
emitFixtureDemoEvents | Default false |
insolvencyLookbackDays | Default 3650 |
viesRequesterVat | Optional EU VAT for consultation id |
maxRunSeconds / maxEvents | Budgets |
resumeFromCheckpoint | Default true |
requestPaceMs | Fair-use delay (default 500) |
Production example
{"supplierUrls": ["https://supplier.de", "partner.at"],"sourceMode": "live","maxRunSeconds": 120,"requestPaceMs": 500,"resumeFromCheckpoint": true}
Output
KYB packets (billable under PPE when verified)
Typed rows include: supplier_domain, legal_name, vat_id, vies_status, insolvency_status, mismatch_events, verified, evidence, event_uid, billable: true.
RUN_STATUS (never billed)
Every successful run pushes one health row (FIXTURE_HEALTH | MONITOR_IDLE | CATCHUP_COMPLETE | HEALTH_OK).
Pricing
Pay-per-event: kyb-packet-delivered at $0.02 per delivered unique verified KYB packet ($20 / 1,000). Single tier (see docs/monetization.md and ADR 0010). Health / incomplete / duplicate / fixture rows are never charged.
Local development
cd actors/dach-supplier-kyb-packetnpm installnpm testnpm run build# Store-safe fixture health:apify run -p# Demo typed packets locally:# set input emitFixtureDemoEvents=true (still sourceMode=fixture)
Attribution
Impressum text originates from the supplier’s own website. VAT validity originates from the European Commission VIES service. Insolvency flags originate from Insolvenzbekanntmachungen (Justizportal). Not an official product of those bodies.