ProofPass für Entwickler
Drei Wege, alle nur lesend: die API v1 mit Schlüssel ab Paket Start für Shop und ERP, der öffentliche MCP-Server unter https://www.proofpass.eu/mcp für KI-Assistenten wie Claude oder ChatGPT, und ein iframe oder Script für jede Website. Jeder liefert nur die aktuellen Fassungen, die auch auf der öffentlichen Herstellerseite stehen.
Stand:
Überblick
| Weg | Für | Zugang |
|---|---|---|
| API v1 | Shop, ERP, Plugins | Bearer-Schlüssel, ab Paket Start |
| MCP-Server | KI-Assistenten | Öffentlich, ohne Konto |
| iframe / Script | Jede Website | Jedes Paket |
| QR / GS1 Digital Link | Etikett, Verpackung | Jedes Produkt |
Nichts davon schreibt. Hochladen und Abnehmer bleiben im Dashboard, damit Archiv und Zustellnachweis nie umgangen werden.
API v1
Basis-URL https://www.proofpass.eu/api/v1. Den Schlüssel legst du im Dashboard unter „Einbinden → API-Schlüssel“ an. Er erscheint genau einmal; wir speichern nur einen SHA-256-Hash. Format: pbt_live_ und 32 Zeichen. Höchstens zehn aktive Schlüssel je Hersteller, ab Paket Start.
Authorization: Bearer pbt_live_…Endpunkte
| Anfrage | Antwort |
|---|---|
| GET /manufacturer | Name, Kurzname, Seiten-URL, Logo, Kontakt |
| GET /products?q=&category=&page=1&limit=50 | { items, page, limit, total }; q sucht in Name, Artikelnummer, GTIN und Stichwörtern (alle Wörter), category ist die ID oder der Name, limit bis 200 |
| GET /products/{key} | Ein Produkt; key = ID, art:<nummer> oder gtin:<ziffern> |
curl -H "Authorization: Bearer pbt_live_…" "https://www.proofpass.eu/api/v1/products?q=silikon&limit=20"{
"id": 11,
"name": "Silikon Neutral transparent",
"slug": "silikon-neutral-transparent",
"articleNumber": "SN-310",
"gtin": "9006543210017",
"ufi": "N1Q0-30DW-K00N-4VKE",
"category": "Silikone",
"description": null,
"url": "https://www.proofpass.eu/hersteller/<firma>/silikon-neutral-transparent",
"qr": {
"shortUrl": "https://www.proofpass.eu/q/<code>",
"png": "https://www.proofpass.eu/api/qr/<code>.png",
"svg": "https://www.proofpass.eu/api/qr/<code>.svg"
},
"documents": [
{ "type": "sdb", "typeLabel": "Sicherheitsdatenblatt", "language": "de", "version": "4.1",
"revisionDate": "2026-01-12", "url": "https://www.proofpass.eu/pdf/<datei>.pdf", "size": 182334 }
],
"safety": null,
"updatedAt": "2026-10-31T18:00:00.000Z"
}- documents enthält nur aktuelle Fassungen; version und revisionDate können null sein.
- safety ist null, wenn keine Angaben zur Produktsicherheit gepflegt sind; recall enthält eine aktive Rückrufanzeige.
- Ausgeblendete Produkte stehen nicht in der Liste und antworten mit 404.
- Seiten-URLs und QR-Links ändern sich nie; PDF-URLs wechseln mit jeder neuen Fassung, darum immer über die API oder die Produktseite verlinken.
Fehler
| Status | Antwort | Bedeutung |
|---|---|---|
| 401 | {"error":"unauthorized"} | Schlüssel fehlt, ist falsch oder widerrufen |
| 403 | {"error":"plan"} | Paket ohne API (Schlüssel bleiben und gelten nach einem Upgrade wieder) |
| 403 | {"error":"paused"} | Hersteller pausiert |
| 404 | {"error":"not_found"} | Produkt unbekannt |
| 429 | {"error":"rate_limited"} | Zu viele Anfragen, siehe Retry-After |
| 500 | {"error":"server_error"} | Fehler bei uns, noch einmal versuchen |
Grenzen und Caching
- 120 Anfragen pro Minute je Schlüssel, gleitendes Fenster im Arbeitsspeicher je Serverinstanz: eine Bremse gegen Endlosschleifen, kein hartes Kontingent. Falsche Schlüssel werden zusätzlich je Adresse begrenzt (30 pro Minute).
- ETag, Cache-Control: private, max-age=300 und Vary: Authorization. If-None-Match wird mit 304 beantwortet. Zwischenspeichern: 5 bis 15 Minuten.
- CORS erlaubt GET von jeder Herkunft, gedacht für Server-zu-Server-Aufrufe und Tests. Den Schlüssel nie in Browser-Code legen.
- Neue Felder kommen ohne Versionswechsel dazu; unbekannte Felder ignorieren. Was sich ändert oder wegfällt, kommt in /api/v2, v1 läuft mindestens zwölf Monate weiter.
MCP-Server für KI-Assistenten
Adresse https://www.proofpass.eu/mcp. Model Context Protocol über Streamable HTTP, zustandslos, JSON-Antworten, nur lesend, ohne Konto und ohne Anmeldung. Er liefert Produkte geprüfter Hersteller und die aktuelle Fassung ihrer Dokumente, dieselben Daten wie die öffentlichen Herstellerseiten. Höchstens 60 Aufrufe pro Minute je Adresse.
https://www.proofpass.eu/mcpClaude
- Customize > Connectors öffnen (Team und Enterprise: ein Owner unter Organization settings > Connectors).
- + Add, dann Add custom connector.
- Name ProofPass, URL https://www.proofpass.eu/mcp, dann Continue.
- Unter Authentication No sign in wählen, dann Add.
- Im Chat: + unten links, Connectors, ProofPass einschalten.
Claude-Hilfe: Custom Connectors (englisch)
ChatGPT
Mit eingeschaltetem Entwicklermodus (Settings → Apps → Advanced → Developer mode; in Business und Enterprise entscheiden die Administratoren) eine App mit der Adresse oben als URL und Authentifizierung „keine“ anlegen. Pakete und Menünamen bestimmt OpenAI: aktuelle Anleitung prüfen.
OpenAI: Developer mode (englisch)
Microsoft Copilot Studio
Den Server einem Agenten als Model-Context-Protocol-Werkzeug hinzufügen: Server-URL wie oben, Transport Streamable HTTP, keine Authentifizierung. Die aktuellen Schritte stehen in der Anleitung von Microsoft.
Microsoft Learn: vorhandenen MCP-Server hinzufügen (englisch)
Cursor und VS Code
Clients mit Konfigurationsdatei nehmen den Eintrag unten (Cursor: mcp.json unter mcpServers). VS Code erwartet denselben Eintrag unter servers in .vscode/mcp.json.
{
"mcpServers": {
"proofpass": {
"type": "http",
"url": "https://www.proofpass.eu/mcp"
}
}
}{
"servers": {
"proofpass": {
"type": "http",
"url": "https://www.proofpass.eu/mcp"
}
}
}Cursor: MCP (englisch)VS Code: MCP-Server (englisch)
Werkzeuge
| Werkzeug | Was es tut |
|---|---|
| search_products | Öffentliche Produkte geprüfter Hersteller nach Name, Artikelnummer, GTIN oder UFI. |
| get_current_document | Aktuelle Fassung eines Dokuments (SDB, TDB, Leistungserklärung …) mit PDF-URL, Version, Stand und SHA-256. |
| verify_document | Ist diese PDF (SHA-256 oder ProofPass-URL) veröffentlicht und noch die aktuelle Fassung? |
| list_manufacturer_documents | Produkte eines Herstellers mit ihren aktuellen Dokumenten, 25 je Seite. |
Jedes Werkzeug nimmt language ("de" oder "en") für die Sprache der Antwort. get_current_document nimmt product (ID, QR-Code, GTIN, "hersteller/produkt" oder die URL der Produktseite), type (sdb, tdb, dop, doc, ppwr, manual, epd, cert, other; auch SDS, TDS, DoP, DoC) und optional document_language. verify_document nimmt eine SHA-256-Prüfsumme oder eine PDF-URL von ProofPass. Jede Antwort endet mit einer Quellenzeile und diesem Hinweis: Ein Dokument hier bereitzustellen ist keine Übermittlung nach Art. 31 REACH; der Lieferant bleibt verpflichtet, es seinen Abnehmern zu übermitteln.
{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "get_current_document",
"arguments": { "product": "9006543210017", "type": "SDS", "language": "en" } }
}{
"product": { "id": 11, "name": "Silikon Neutral transparent", "manufacturer": "…", "url": "https://www.proofpass.eu/hersteller/<firma>/<produkt>" },
"document": {
"title": "Safety data sheet Silikon Neutral transparent",
"type": "sdb", "language": "de", "version": "4.1",
"revisionDate": "2026-01-12", "publishedAt": "2026-01-13T08:00:00.000Z",
"productUrl": "https://www.proofpass.eu/hersteller/<firma>/<produkt>",
"pdfUrl": "https://www.proofpass.eu/pdf/<datei>.pdf",
"sha256": "…", "superseded": false
},
"otherLanguages": [{ "language": "en", "pdfUrl": "https://www.proofpass.eu/pdf/<datei>.pdf" }],
"source": "Source: ProofPass (…), data as published by the manufacturer, retrieved 2026-11-05.",
"notice": "Note: providing a document here is not a delivery under Art. 31 REACH. …"
}Gezählt wird je Tag: Werkzeug, Assistent (aus dem User-Agent), zurückgegebener Hersteller und Produkt, Erfolg. Nie Fragen, Suchbegriffe oder Antworten. Hersteller sehen die Zahlen als „KI-Abrufe“ in ihrer Statistik. Server-Card: https://www.proofpass.eu/.well-known/mcp/server-card.json.
Einbetten in eine Website
Zwei Schnipsel mit dem Kurznamen des Herstellers; das Dashboard („Einbinden“) zeigt sie fertig zum Kopieren. Beide zeigen die Datenblatt-Suche mit den Produkten, eine neue Fassung steht nach wenigen Minuten drin.
<iframe src="https://www.proofpass.eu/einbetten/<kurzname>/de" title="Datenblätter" style="width:100%;min-height:720px;border:0" loading="lazy"></iframe><script src="https://www.proofpass.eu/einbetten/<kurzname>/widget.js" data-lang="en" data-height="900" async></script>- iframe: Die Sprache steht am Ende der Adresse (/de, /pl …); mindestens 720 Pixel Höhe mitgeben.
- Script: data-lang legt die Sprache fest, sonst gilt lang der Seite, dann der Browser, dann die Sprache des Herstellers; data-height legt die Höhe fest (Standard 720).
- In den Paketen Basis und Start setzt das Script den Link „Bereitgestellt über ProofPass“ in deine Seite; Pro und Business ohne.
- Keine Cookies, keine Fremdanbieter im Rahmen.
QR-Codes und GS1 Digital Link
| Adresse | Tut |
|---|---|
| https://www.proofpass.eu/q/<code> | Kurzlink des QR-Codes: sieben Zeichen, ändert sich nie, führt (302) zur Produktseite und zählt den Scan |
| https://www.proofpass.eu/01/<gtin> | GS1 Digital Link: GTIN mit 8 bis 14 Ziffern; /10/<charge> und /21/<seriennummer> werden angenommen und übergangen, Dokumente gelten je Produkt |
| https://www.proofpass.eu/api/qr/<code>.svg | QR-Code als SVG für den Druck (auch .png) |
Ab Paket Business kann der gedruckte QR-Code die GTIN als GS1 Digital Link tragen; die Adresse selbst funktioniert für jedes Produkt mit GTIN.
Plugin für WordPress und WooCommerce
Mit dem kostenlosen Plugin zeigst du deine Datenblätter auf jeder WordPress-Website: als Shortcode, als Block und in WooCommerce als eigenen Tab auf der Produktseite. Es nutzt die offizielle Einbettung von ProofPass und funktioniert in jedem Paket, auch in Basis. Mit einem API-Schlüssel (ab Paket Start) listet der Produkt-Tab die aktuellen Dokumente direkt im Design deines Shops auf.
proofpass-wordpress.zip herunterladen (Version 1.0.0)
Voraussetzungen: WordPress 6.2 oder neuer, PHP 7.4 oder neuer. WooCommerce ist optional. Lizenz GPL-2.0-or-later.
Installation
- Lade proofpass-wordpress.zip herunter.
- In WordPress unter Plugins → Installieren → Plugin hochladen die ZIP-Datei wählen, installieren, aktivieren.
- Unter Einstellungen → ProofPass deinen Hersteller eintragen: deine Adresse https://www.proofpass.eu/hersteller/deine-firma oder nur deine-firma.
- Optional den API-Schlüssel einfügen (Dashboard → Einbinden → API-Schlüssel) und „Verbindung testen“ klicken.
Einstellungen
| Einstellung | Bedeutung |
|---|---|
| Hersteller | Kurzname aus deiner ProofPass-Adresse. Pflicht für Shortcode und Block. |
| API-Schlüssel (optional) | Beginnt mit pbt_live_. Liegt nur auf deinem Server, erscheint nie im HTML. Alternativ define( 'PROOFPASS_API_KEY', '…' ); in der wp-config.php. |
| Darstellung | Rahmen (iframe) oder Script (widget.js). Das Script wählt die Sprache der Seite selbst. |
| Standardsprache | Sprache der Website oder eine der 15 Sprachen. Gibt es die Sprache bei ProofPass nicht, erscheint die Sprache deiner Herstellerseite. |
| Höhe in Pixeln | Höhe des ganzen Portals (Standard 720). Ein einzelnes Produkt nutzt 320. |
| Produkt-Tab | Tab in WooCommerce an oder aus; Tab ausblenden, wenn ProofPass für das Produkt nichts hat. |
| Meta-Schlüssel der GTIN | Nur nötig, wenn deine GTIN in einem eigenen Feld steht. |
| Zwischenspeicher | 1 bis 48 Stunden, Standard 6. |
| ProofPass-Adresse | Leer lassen. Nur für ein Testsystem. |
„Verbindung testen“ fragt ProofPass einmal nach dem Hersteller hinter dem Schlüssel und trägt den Kurznamen ein, wenn das Feld leer ist. Ohne Schlüssel prüft der Test, ob deine Einbettung erreichbar ist.
Shortcode
[proofpass]
[proofpass product="art:SN-310"]
[proofpass product="9006543210017" lang="en"]
[proofpass product="silikon-neutral-transparent" height="400" mode="script"]| Attribut | Werte |
|---|---|
| product | leer = alle Produkte mit Suche; sonst Produkt-Slug, QR-Kurzcode, art: plus Artikelnummer oder GTIN (8, 12, 13 oder 14 Ziffern, auch gtin:…) |
| lang | de, en, fr, it, nl, pl, cs, sk, hu, sl, hr, ro, es, da, sv |
| height | Höhe in Pixeln |
| mode | iframe oder script; ohne Angabe gilt die Einstellung |
Findet ProofPass das Produkt nicht, zeigt der Rahmen die ganze Suche. Der Link „Bereitgestellt über ProofPass“ gehört in den Paketen Basis und Start zur Einbettung; das Plugin ändert daran nichts. Ab Pro entfällt er.
Block
Im Block-Editor fügst du den Block „ProofPass Datenblätter“ ein. In der Seitenleiste stellst du Produkt, Sprache, Höhe und Darstellung ein, wie beim Shortcode. Im Editor siehst du eine Zusammenfassung, die Dokumente erscheinen auf der veröffentlichten Seite.
WooCommerce
Jede Produktseite bekommt den Tab „Sicherheitsdatenblätter & Herstellerangaben“. Das Plugin sucht das passende Produkt in dieser Reihenfolge, der erste Treffer gilt:
- das Feld „ProofPass-Produkt“ im Produkt (Reiter Lagerbestand, neben der Artikelnummer), wenn du es ausfüllst,
- die GTIN: das WooCommerce-Feld „GTIN, UPC, EAN oder ISBN“ (ab WooCommerce 9.2), die Felder verbreiteter GTIN-Plugins oder dein eigener Meta-Schlüssel,
- die Artikelnummer (SKU) als art:<SKU>.
Mit API-Schlüssel zeigt der Tab eine Tabelle der aktuellen Dokumente (Art, Sprache, Stand, Version, PDF), Hersteller und verantwortliche Person, die Sicherheitsinformationen in der Sprache der Website und einen aktiven Rückruf deutlich oben. Ohne Schlüssel zeigt der Tab das Produkt in der Einbettung. Hat ProofPass für ein Produkt nichts, blendet das Plugin den Tab aus (abschaltbar).
Zwischenspeicher
Das Plugin fragt die Schnittstelle nur vom Server aus und speichert die Antwort (Standard 6 Stunden). Ein Produktaufruf löst also höchstens einmal je Produkt und Zeitraum eine Anfrage aus. Speichern des Produkts leert seinen Eintrag, „Zwischenspeicher leeren“ in den Einstellungen alle. Ist ProofPass nicht erreichbar, bleibt die letzte Antwort sichtbar und das Plugin pausiert die Anfragen einige Minuten. Die Einbettung (Shortcode, Block) ist immer aktuell.
Häufige Fragen
Brauche ich ein bezahltes Paket? Nein. Shortcode, Block und der Tab mit Einbettung laufen in jedem Paket. Die Dokumentliste im Shop-Design braucht die Schnittstelle, ab Paket Start.
Setzt das Plugin Cookies? Nein, und die Einbettung auch nicht. Nenne ProofPass in deiner Datenschutzerklärung als eingebetteten Inhalt: Der Browser deiner Besucher lädt Rahmen, Script und PDFs von www.proofpass.eu.
Sieht jemand meinen API-Schlüssel? Nein. Er bleibt auf deinem Server, steht nicht im HTML und geht nicht an den Browser.
Ein neues Datenblatt erscheint nicht im Tab. Die Liste ist bis zu 6 Stunden zwischengespeichert. Speichere das Produkt oder leere den Zwischenspeicher.
Funktioniert es mit Varianten? Das Plugin nutzt GTIN und Artikelnummer des Hauptprodukts. Für eine abweichende Zuordnung trägst du das ProofPass-Produkt im Feld „ProofPass-Produkt“ ein.
Fehlerbehebung
| Meldung oder Verhalten | Ursache und Abhilfe |
|---|---|
| Hinweis „Trag deinen Hersteller … ein“ (nur für Redakteure sichtbar) | Kurzname fehlt unter Einstellungen → ProofPass. |
| „ProofPass kennt den Hersteller … nicht“ | Kurzname falsch geschrieben. Kopiere die Adresse deiner Herstellerseite. |
| „ProofPass akzeptiert den API-Schlüssel nicht“ | Schlüssel widerrufen oder unvollständig kopiert. Neuen Schlüssel im Dashboard erzeugen. |
| „Die API gehört nicht zu deinem ProofPass-Paket“ | Paket Basis. Die Einbettung läuft weiter; für die Liste auf Start wechseln. |
| Tab fehlt | Kein Treffer für GTIN und Artikelnummer. Feld „ProofPass-Produkt“ ausfüllen oder „Tab ausblenden“ abschalten. |
| Rahmen leer oder abgeschnitten | Höhe erhöhen (height) oder Darstellung „Script“ wählen. Sicherheits-Plugins, die iframes blockieren, für www.proofpass.eu freigeben. |
| Script erscheint nicht | Optimierungs-Plugins, die Scripts verschieben oder bündeln, nehmen widget.js mit. Für proofpass.eu ausnehmen oder „Rahmen (iframe)“ wählen. |