DACH Supplier Check: VAT (VIES), Company Identity & Insolvency avatar

DACH Supplier Check: VAT (VIES), Company Identity & Insolvency

Pricing

from $20.00 / 1,000 kyb packet delivereds

Go to Apify Store
DACH Supplier Check: VAT (VIES), Company Identity & Insolvency

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

Daniel Witney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

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

  1. List supplier websites or bare domains (e.g. supplier.de).
  2. Run with sourceMode: "live" (no key); optionally set viesRequesterVat (your EU VAT ID) to get a VIES consultation identifier as evidence.
  3. Review packets where mismatch_events is non-empty (VAT_INVALID_OR_MISMATCH, INSOLVENCY_OPEN, HRB_PARSE_UNVERIFIED) before approving the vendor.
  4. 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 / DE000000000 are 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_uid dedupe.

PRODUCTION USE (required for real KYB)

Store default ≠ product. Schema defaults use sourceMode=fixture so 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-billable RUN_STATUS / FIXTURE_HEALTH row. It is not supplier verification.

For production KYB you must:

  1. Set sourceMode = live
  2. Provide supplierUrls (domains or URLs)
  3. Use fair-use requestPaceMs (default 500)
  4. Optionally set viesRequesterVat (your EU VAT) to obtain a VIES consultation / request identifier

Official references:

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=SKIPPED when 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 maxRunSeconds or 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

FieldDefault
supplierUrls["example-maschine.de","risk-supplier.at"]
sourceModefixture
emitFixtureDemoEventsfalse
maxRunSeconds55
maxEvents500

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)

FieldNotes
supplierUrlsDomains or URLs (required)
sourceModefixture (default) or live
emitFixtureDemoEventsDefault false
insolvencyLookbackDaysDefault 3650
viesRequesterVatOptional EU VAT for consultation id
maxRunSeconds / maxEventsBudgets
resumeFromCheckpointDefault true
requestPaceMsFair-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-packet
npm install
npm test
npm 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.