batterypass
Produkt
So funktioniert es Funktionen Vergleich
Lösungen
Speicher (BESS) Leichte Verkehrsmittel Industriebatterien Elektrofahrzeuge Zulieferer
Compliance
Compliance-Überblick EU-Batterieverordnung Pflicht-Check Sicherheit und Datenschutz
Ressourcen
Alle Beiträge Woher die Daten kommen Welche Daten der Pass braucht QR-Code auf der Batterie Wer ist verantwortlich? Glossar Entwickler und API Betriebszustand Änderungen am Produkt
Batterypass
Preise Über uns
Anmelden Kostenlos starten
Entwickler

Batteriepass-Daten an Ihre Systeme anbinden.

REST-API, CSV-Import und -Export, feste Pass-Adressen und alle Datenfelder. Mit einem Testschlüssel probieren Sie alles aus, ohne Daten zu ändern.

50.000Pässe je Datei
38Datenfelder in der App
3Formate: CSV, SVG, PNG

Überblick

Vier Objekte und vier Wege für den Datenaustausch. Für den Einstieg reicht eine CSV-Datei, für den Dauerbetrieb gibt es die REST-API.

  1. FirmaIhr Konto mit Nutzern und Paket
  2. ModellStammdaten, einmal je Batteriemodell
  3. PassEine Batterie mit Seriennummer und eigener Adresse
  4. EreignisReparatur, Umnutzung oder Abfall
WegWofürStand
CSV-ImportSeriennummern aus ERP, MES oder Excel übernehmenVerfügbar
CSV-ExportPass-IDs und Adressen zurück in Ihre Systeme holenVerfügbar
Pass-Adresse und QR-CodeEigene Etiketten erzeugen oder Pässe verlinkenVerfügbar
REST-APIModelle und Pässe automatisch anlegen, ohne Upload von HandVerfügbar

CSV-Import

Verfügbar

Der übliche Weg aus dem ERP: Liste exportieren und bei einem Modell hochladen. Für jede neue Seriennummer entsteht ein Pass.

export.csv
Material;Serialnummer;Fertigungsdatum;Charge;Werk;Status
BX-48V;SN-0001;01.03.2027;L2027-03;Essen;frei
BX-48V;SN-0002;01.03.2027;L2027-03;Essen;frei
BX-48V;SN-0003;02.03.2027;L2027-03;Essen;frei
RegelVorgabe
ZeichensatzUTF-8 mit oder ohne BOM. Windows-1252 wird erkannt und umgewandelt.
TrennzeichenSemikolon, Komma oder Tabulator. Maßgeblich ist die erste Zeile.
GrößeHöchstens 8 MB und 50.000 Zeilen je Datei.
AufbauEine Batterie je Zeile, keine Zeilenumbrüche innerhalb eines Feldes.
KopfzeileFreiwillig. Mit Kopfzeile dürfen die Spalten beliebig stehen, weitere Spalten werden ignoriert. Ohne Kopfzeile gilt die Reihenfolge der Tabelle unten.
SpalteFeldErkannte SpaltennamenPflichtRegel
1Seriennummerseriennummer, serialnummer, serial, serial number, serialnumber, serial no, sn, serien-nr, seriennr, sernrJaHöchstens 120 Zeichen: Buchstaben, Ziffern, Leerzeichen und - _ . / :
2Herstelldatumherstelldatum, produktionsdatum, fertigungsdatum, manufacturing date, production date, date, datumFreiwillig2027-03-01, 01.03.2027, 1.3.2027, 01/03/2027, 1/3/2027 oder 2027/03/01
3Chargecharge, chargennummer, batch, lot, losFreiwilligHöchstens 120 Zeichen
4Herstellortherstellort, produktionsort, werk, place, plant, manufacturing placeFreiwilligHöchstens 190 Zeichen

Was beim Hochladen passiert

  • Zuerst erscheint eine Vorschau, gespeichert wird noch nichts.
  • Fehlerhafte Zeilen werden mit Zeilennummer gemeldet und übersprungen.
  • Doppelte Seriennummern in der Datei und bereits vorhandene Nummern dieses Modells werden übersprungen.
  • Erst nach Ihrer Bestätigung entstehen die Pässe, in einem einzigen Vorgang. Der Import steht im Audit-Trail.

Datei prüfen

Verfügbar

Prüfen Sie einen Export, bevor Sie sich anmelden. Es gelten dieselben Regeln wie beim Import in der App.

Die Prüfung läuft nur in Ihrem Browser, die Datei wird nicht hochgeladen. Ob eine Nummer im Modell schon existiert, sieht erst die Vorschau in der App.

CSV-Export

Verfügbar

Bei jedem Modell lässt sich die Liste aller Pässe herunterladen, im Format UTF-8 mit BOM und mit Semikolon getrennt. So kommen Pass-IDs und Adressen zurück in ERP, MES oder Etikettendruck. Der Download setzt eine Anmeldung voraus.

paesse_BX-48V.csv
Seriennummer;Pass-ID;Pass-URL;Herstelldatum;Charge;Herstellort;Status
SN-0001;7KM2XQ9RTA;https://app.batterypass2027.eu/p/7KM2XQ9RTA;2027-03-01;L2027-03;Essen;Original

Pass-Adresse und QR-Code

Verfügbar

Jeder Pass hat eine feste Adresse. Mehr braucht ein QR-Code, ein Link aus dem Handbuch oder ein Eintrag im ERP nicht.

URL
https://app.batterypass2027.eu/p/{PASS-ID}
https://app.batterypass2027.eu/p/{PASS-ID}?lang=en
  • Die Pass-ID hat 10 Zeichen und meidet verwechselbare Zeichen wie 0, O, 1, I und L.
  • Der QR-Code enthält nur diese Adresse. Ändern sich die Daten, bleibt er gültig.
  • In der App gibt es den Code je Pass als SVG und PNG sowie Etikettenbögen zum Drucken.
  • Die Pass-Seite zeigt ohne Anmeldung nur die öffentlichen Angaben. Suchmaschinen sollen sie nicht aufnehmen.
  • Mit hinterlegter GTIN gibt es zusätzlich einen GS1 Digital Link.

Eigene Etiketten aus dem Export erzeugen

etiketten.py
# pip install "qrcode[pil]"
import csv
import qrcode

with open("paesse_BX-48V.csv", encoding="utf-8-sig", newline="") as f:
    for row in csv.DictReader(f, delimiter=";"):
        qrcode.make(row["Pass-URL"]).save(f'{row["Pass-ID"]}.png')

Datenfelder

Verfügbar

Diese 38 Felder gibt es heute in der App, in vereinfachter Form nach Anhang XIII. Sie werden im Formular des Modells gepflegt. Die Kategorien sind lmt, industrie, ev, sli und geraet.

Allgemeine Angaben6
FeldTechnischer NameTypSichtbar fürPflicht
Hersteller (Name)manufacturer_nametextÖffentlichAlle Pass-Kategorien
Hersteller (Anschrift)manufacturer_addresstextÖffentlichAlle Pass-Kategorien
Kontakt (E-Mail oder Website)manufacturer_contacttextÖffentlichAlle Pass-Kategorien
Herstellungsort (Standard)manufacturing_placetextÖffentlichAlle Pass-Kategorien
Gewichtweight_kgnumber · kgÖffentlichAlle Pass-Kategorien
Gewährleistung / GarantiewarrantytextÖffentlichFreiwillig
Materialien & Stoffe6
FeldTechnischer NameTypSichtbar fürPflicht
BatteriechemiechemistrytextÖffentlichAlle Pass-Kategorien
Gefährliche Stoffehazardous_substancestextÖffentlichAlle Pass-Kategorien
Kritische Rohstoffecritical_raw_materialstextÖffentlichAlle Pass-Kategorien
Zusammensetzung Kathodecomposition_cathodetextBerechtigtes InteresseAlle Pass-Kategorien
Zusammensetzung Anodecomposition_anodetextBerechtigtes InteresseAlle Pass-Kategorien
Zusammensetzung Elektrolytcomposition_electrolytetextBerechtigtes InteresseAlle Pass-Kategorien
Leistung & Haltbarkeit11
FeldTechnischer NameTypSichtbar fürPflicht
Nennkapazitätrated_capacity_ahnumber · AhÖffentlichAlle Pass-Kategorien
Nennspannungnominal_voltage_vnumber · VÖffentlichAlle Pass-Kategorien
Minimale Spannungmin_voltage_vnumber · VÖffentlichAlle Pass-Kategorien
Maximale Spannungmax_voltage_vnumber · VÖffentlichAlle Pass-Kategorien
Nennenergierated_energy_kwhnumber · kWhÖffentlichAlle Pass-Kategorien
Leistung (ursprünglich)rated_power_wnumber · WÖffentlichindustrie, ev
Erwartete Lebensdauerexpected_lifetime_cyclesnumber · ZyklenÖffentlichAlle Pass-Kategorien
Temperaturbereich vontemp_min_cnumber · °CÖffentlichAlle Pass-Kategorien
Temperaturbereich bistemp_max_cnumber · °CÖffentlichAlle Pass-Kategorien
Energieeffizienz (Round Trip)round_trip_efficiency_pctnumber · %Öffentlichindustrie, ev
Innenwiderstandinternal_resistance_mohmnumber · mΩÖffentlichFreiwillig
CO₂ & Rezyklat6
FeldTechnischer NameTypSichtbar fürPflicht
CO₂-Fußabdruckcarbon_footprintnumber · kg CO₂e/kWhÖffentlichPflicht greift später
Rezyklatanteil Kobaltrecycled_cobalt_pctnumber · %ÖffentlichPflicht greift später
Rezyklatanteil Lithiumrecycled_lithium_pctnumber · %ÖffentlichPflicht greift später
Rezyklatanteil Nickelrecycled_nickel_pctnumber · %ÖffentlichPflicht greift später
Rezyklatanteil Bleirecycled_lead_pctnumber · %ÖffentlichPflicht greift später
Anteil erneuerbarer Inhalterenewable_content_pctnumber · %ÖffentlichFreiwillig
Konformität & Kennzeichnung4
FeldTechnischer NameTypSichtbar fürPflicht
EU-Konformitätserklärung (Link)doc_urlurlÖffentlichAlle Pass-Kategorien
Kennzeichnung & Symbolelabels_symbolstextÖffentlichAlle Pass-Kategorien
Bericht Sorgfaltspflichten (Link)due_diligence_urlurlÖffentlichPflicht greift später
Rückgabe & Entsorgungend_of_life_infotextÖffentlichAlle Pass-Kategorien
Demontage, Reparatur & Ersatzteile4
FeldTechnischer NameTypSichtbar fürPflicht
Demontage-Anleitungdismantling_infotextBerechtigtes InteresseAlle Pass-Kategorien
Teilenummern der Komponentenpart_numberstextBerechtigtes InteresseAlle Pass-Kategorien
Bezugsquelle Ersatzteilespare_parts_contacttextBerechtigtes InteresseAlle Pass-Kategorien
Sicherheitsmaßnahmensafety_measurestextBerechtigtes InteresseAlle Pass-Kategorien
Prüfberichte1
FeldTechnischer NameTypSichtbar fürPflicht
Prüfberichte (Links oder Referenzen)test_reportstextBehörden und PrüfstellenAlle Pass-Kategorien

REST-API

Verfügbar

Legen Sie Modelle und Pässe direkt aus ERP, MES oder BMS an und melden Sie Ereignisse. JSON über HTTPS, Anmeldung per Schlüssel. Basisadresse: https://app.batterypass2027.eu/api/v1

In drei Schritten starten

  1. Melden Sie sich als Administrator an und öffnen Sie Einstellungen, dann API-Schlüssel.
  2. Erstellen Sie einen Testschlüssel. Er wird nur einmal angezeigt, bewahren Sie ihn wie ein Passwort auf.
  3. Prüfen Sie die Verbindung mit GET /me. Antwortet die API, stimmen Schlüssel und Netzwerkweg.
cURL
export BATTERYPASS_KEY="bp_test_..."

curl -s https://app.batterypass2027.eu/api/v1/me \
  -H "Authorization: Bearer $BATTERYPASS_KEY"

Ein Schlüssel, eine Firma

Der Schlüssel legt fest, welche Daten erreichbar sind. Sie erzeugen ihn in der App, er wird nur einmal angezeigt.

Testschlüssel speichern nichts

Ein Testschlüssel prüft jede Anfrage wie im Echtbetrieb, ändert aber keine Daten und verbraucht kein Kontingent.

Sicher wiederholen

Mit demselben Idempotency-Key entsteht auch nach einem Abbruch kein zweiter Datensatz. Die Belegnummer aus dem ERP eignet sich dafür gut.

Pässe werden nicht gelöscht

Die API kennt kein DELETE für Pässe. Das Lebensende einer Batterie wird als Ereignis gemeldet.

Testschlüssel antworten mit Status 200 und dry_run: true. Sie lesen echte Daten, ändern aber nichts.

Endpunkte

MethodePfadWofür
GET/meVerbindungstest: Firma, Paket, Rechte und freies Kontingent
GET/fieldsFeldkatalog mit Pflicht je Kategorie
GET/modelsModelle auflisten, auch nach Modellkennung
POST/modelsModell anlegen
GET/models/{id}Ein Modell mit Daten und fehlenden Pflichtfeldern lesen
PATCH/models/{id}Stammdaten ändern
GET/passportsPässe auflisten, auch nach Seriennummer oder Änderungsdatum
POST/passports/batchBis zu 1.000 Pässe in einem Aufruf anlegen
GET/passports/{id}Einen Pass mit Adresse und Status lesen
GET/passports/{id}/eventsEreignisse eines Passes lesen
POST/passports/{id}/eventsEreignis melden, zum Beispiel Reparatur oder Abfall
POST/models/validateEntwurf prüfen, nichts speichern
POST/passportsEinen Pass anlegen
PATCH/passports/{id}Datum, Charge oder Ort ändern
GET/passports/{id}/componentsKomponenten lesen
POST/passports/{id}/componentsKomponente einbauen
PATCH/passports/{id}/components/{cid}Komponente ändern oder ausbauen
POST/passports/{id}/components/{cid}/replaceKomponente tauschen
GET/passports/{id}/telemetryMessreihe lesen
POST/passports/{id}/telemetryMessungen melden
GET/certificatesNachweise auflisten
GET/certificates/{id}Nachweis mit Download-Link
GET/suppliersLieferanten auflisten
GET/supplier-requestsDatenanfragen auflisten
POST/supplier-requestsLieferanten anfragen
GET/supplier-requests/{id}Anfrage mit gelieferten Werten lesen
POST/supplier-requests/{id}/acceptGelieferte Werte ins Modell übernehmen
GET/auditAudit-Trail lesen

Beispiel: Pässe aus dem ERP anlegen

curl -X POST https://app.batterypass2027.eu/api/v1/passports/batch \
  -H "Authorization: Bearer $BATTERYPASS_KEY" \
  -H "Idempotency-Key: erp-4711" \
  -H "Content-Type: application/json" \
  -d '{
  "model_code": "BX-48V",
  "on_conflict": "skip",
  "items": [
    { "serial": "SN-0001", "manufactured_at": "2027-03-01", "batch": "L2027-03" },
    { "serial": "SN-0002", "manufactured_at": "2027-03-01", "batch": "L2027-03" }
  ]
}'

Antwort

201 Created
HTTP/1.1 201 Created
X-Request-Id: req_4f7a91c2d03e8b56

{
  "created": 1,
  "skipped": 1,
  "skipped_serials": ["SN-0002"],
  "items": [
    {
      "id": "7KM2XQ9RTA",
      "serial": "SN-0001",
      "status": "original",
      "url": "https://app.batterypass2027.eu/p/7KM2XQ9RTA"
    }
  ]
}

Fehler

422
HTTP/1.1 422 Unprocessable Entity

{
  "error": {
    "code": "invalid_serial",
    "message": "Serial number is missing or contains invalid characters.",
    "field": "items[3].serial",
    "request_id": "req_a03c5e17b92d4f68"
  }
}
HTTPCodeBedeutung
400invalid_requestAnfrage ist kein gültiges JSON oder enthält unbekannte Felder
401unauthorizedSchlüssel fehlt oder ist ungültig
403insufficient_scopeDem Schlüssel fehlt das nötige Recht
403plan_requiredLive-Schlüssel brauchen das Paket Pro oder Enterprise
403email_not_verifiedDie E-Mail-Adresse der Firma ist noch nicht bestätigt
403quota_exceededDas Kontingent des Pakets ist ausgeschöpft
404not_foundObjekt gibt es nicht oder es gehört einer anderen Firma
409duplicate_serialSeriennummer existiert bereits in diesem Modell (bei on_conflict: fail)
409duplicate_modelDie Modellkennung ist schon vergeben
409idempotency_conflictDer Idempotency-Key wurde für eine andere Anfrage benutzt
413payload_too_largeDie Anfrage ist größer als 2 MB
422invalid_serialEine Seriennummer ist ungültig, das Feld steht in der Antwort. Es wird nichts gespeichert.
422invalid_dateEin Datum entspricht nicht dem Format JJJJ-MM-TT
422out_of_rangeEin Messwert liegt außerhalb des erlaubten Bereichs
422invalid_gtinDie GTIN hat eine falsche Länge oder Prüfziffer
422validation_failedEin anderer Wert verletzt die Regeln
429rate_limitedZu viele Anfragen, nach Retry-After erneut senden
500internal_errorFehler bei uns. Mit demselben Idempotency-Key sicher wiederholbar.

Grenzen

Anfragen je Minute und SchlüsselLive 300, Test 60
Pässe je Aufruf1.000
Größe einer Anfrage2 MB
Einträge je Listenseite100, höchstens 500
Aktive Schlüssel je Firma10
Live-SchlüsselPro und Enterprise. Testschlüssel gibt es in jedem Paket.

Planen Sie mehr als 100.000 Pässe im Jahr? Stimmen Sie das bitte vorab mit uns ab.

Berechtigungen

Jeder Schlüssel bekommt nur die Rechte, die das System braucht. Fehlt eines, antwortet die API mit 403 und insufficient_scope. In der App wählen Sie eine Vorlage: Alle Rechte, ERP, BMS oder Nur lesen.

RechtErlaubt
models:readModelle lesen und Entwürfe prüfen
models:writeModelle anlegen und ändern
passports:readPässe, Ereignisse und Komponenten lesen
passports:writePässe anlegen und ändern, Ereignisse melden, Komponenten einbauen und tauschen
telemetry:read telemetry:writeMesswerte lesen und melden
certificates:readNachweise lesen und herunterladen
suppliers:read suppliers:writeLieferanten und Datenanfragen lesen, Anfragen senden und übernehmen
audit:readAudit-Trail lesen

Anfragen und Antworten

Listen kommen seitenweise mit data, has_more und next_cursor. Den Wert von next_cursor geben Sie als cursor mit. Unbekannte Felder werden abgelehnt, damit Tippfehler sofort auffallen. Bei PATCH bleibt ein fehlendes Feld unverändert, null leert es.

KopfzeileBedeutung
Idempotency-KeyWiederholung ohne zweiten Datensatz, 7 Tage gültig. Gut geeignet ist die Belegnummer aus dem ERP.
X-Batterypass-Dry-Run: trueAuch ein Live-Schlüssel prüft diese Anfrage nur und speichert nichts.
X-Request-IdKennung des Aufrufs, auch in Fehlern und im Protokoll der App
X-RateLimit-Limit X-RateLimit-RemainingKontingent der laufenden Minute
Idempotent-Replayedtrue, wenn eine gespeicherte Antwort wiederholt wurde

SDK und API-Konsole

Verfügbar

Zwei schlanke Clients ohne Abhängigkeiten: Sie wiederholen Anfragen sicher, blättern selbst durch Listen und teilen große Mengen in Aufrufe zu je 1.000 Pässen. Beide sind einzelne Dateien zum Kopieren in Ihr Projekt. Die API-Konsole finden Sie in der App unter Einstellungen, API-Schlüssel.

from batterypass import Batterypass

bp = Batterypass("bp_test_...")
print(bp.me()["organization"]["plan"])

items = [{"serial": f"SN-{i:06}"} for i in range(5000)]
print(bp.create_passports_all("BX-48V", items))

for passport in bp.list_all("/passports", model_code="BX-48V"):
    print(passport["serial"], passport["url"])

Komponenten

Verfügbar

Halten Sie fest, welche Module, Zellen oder BMS in einer Batterie verbaut sind. Eine Seriennummer kann je Pass nur einmal gleichzeitig verbaut sein. Beim Tausch bleibt das alte Teil mit Ausbaudatum erhalten.

cURL
curl -X POST https://app.batterypass2027.eu/api/v1/passports/7KM2XQ9RTA/components \
  -H "Authorization: Bearer $BATTERYPASS_KEY" -H "Content-Type: application/json" \
  -d '{"kind": "module", "label": "Modul 1", "serial": "M-0001", "supplier": "Zellwerk GmbH"}'

curl -X POST https://app.batterypass2027.eu/api/v1/passports/7KM2XQ9RTA/components/12/replace \
  -H "Authorization: Bearer $BATTERYPASS_KEY" -H "Content-Type: application/json" \
  -d '{"serial": "M-0002", "note": "Modul nach Defekt getauscht"}'

Erlaubte Arten sind pack, rack, module, cell, bms und other.

Messwerte

Verfügbar

Melden Sie Daten aus dem BMS, einzeln oder bis zu 1.000 Messungen mit items. Lesen lässt sich die Reihe mit since und until. Messwerte gibt es ab dem Paket Pro. Sie erscheinen in der App, nicht auf der öffentlichen Pass-Seite.

cURL
curl -X POST https://app.batterypass2027.eu/api/v1/passports/7KM2XQ9RTA/telemetry \
  -H "Authorization: Bearer $BATTERYPASS_KEY" -H "Content-Type: application/json" \
  -d '{"recorded_at": "2027-03-01T10:00:00Z", "soh_pct": 94.5, "cycle_count": 120}'
FeldBereich
recorded_atISO 8601
soh_pct0–100
soc_pct0–100
capacity_kwh≥ 0
remaining_capacity_ah≥ 0
internal_resistance_mohm≥ 0
cycle_count≥ 0, integer
temp_min_c temp_max_c≥ −273
energy_throughput_kwh≥ 0
negative_eventdeep_discharge, overheat, accident
notemax. 500

Nachweise

Verfügbar

Prüfberichte, Konformitätserklärungen und ähnliche Dokumente laden Sie in der App beim Modell hoch: PDF, PNG oder JPG bis 10 MB. Über die API lesen Sie die Liste und holen einen Download-Link, der 15 Minuten gilt. Jede Datei hat eine SHA-256-Prüfsumme.

cURL
curl -s "https://app.batterypass2027.eu/api/v1/certificates?model_code=BX-48V" -H "Authorization: Bearer $BATTERYPASS_KEY"
curl -s https://app.batterypass2027.eu/api/v1/certificates/42 -H "Authorization: Bearer $BATTERYPASS_KEY"

Lieferanten und Datenanfragen

Verfügbar

Fragen Sie Werte bei Zulieferern an. Sie erhalten eine E-Mail mit einem 30 Tage gültigen Link und tragen nur die angefragten Felder ein, ohne Konto. Gelieferte Werte landen erst nach Ihrer Freigabe im Modell. Verfügbar ab dem Paket Starter, höchstens 20 Anfragen pro Stunde.

cURL
curl -X POST https://app.batterypass2027.eu/api/v1/supplier-requests \
  -H "Authorization: Bearer $BATTERYPASS_KEY" -H "Content-Type: application/json" \
  -d '{"model_code": "BX-48V", "supplier_name": "Zellwerk GmbH", "supplier_email": "daten@zellwerk.example",
       "fields": ["chemistry", "composition_cathode"], "message": "Bitte bis Monatsende"}'

curl -s "https://app.batterypass2027.eu/api/v1/supplier-requests?status=submitted" -H "Authorization: Bearer $BATTERYPASS_KEY"
curl -X POST https://app.batterypass2027.eu/api/v1/supplier-requests/7/accept -H "Authorization: Bearer $BATTERYPASS_KEY"

GS1 Digital Link

Verfügbar

Hinterlegen Sie beim Modell eine GTIN mit gültiger Prüfziffer. Dann führt die GS1-Adresse aus GTIN und Seriennummer auf die Pass-Seite und steht in der API als gs1_link. Ihre QR-Codes enthalten weiter die feste Pass-Adresse, Sie können aber eigene Codes aus dem GS1-Link erzeugen. Die GTIN selbst erhalten Sie von GS1.

URL
https://app.batterypass2027.eu/01/{GTIN}/21/{SERIENNUMMER}
https://app.batterypass2027.eu/01/04012345678901/21/SN-0001

Audit-Trail

Verfügbar

GET /audit liefert alle protokollierten Änderungen der Firma, seitenweise und optional ab einem Zeitpunkt mit since. Änderungen über die API tragen den Namen des Schlüssels. In der App sehen Administratoren außerdem die letzten Aufrufe je Schlüssel.

Versionen

Die Hauptversion steht im Pfad. Innerhalb von v1 kommen nur Felder und Endpunkte hinzu. Geplant, aber noch nicht vorhanden: Webhooks, ein Zugang für Behörden und Recycler sowie eine nachprüfbare Änderungskette.

VersionDatumÄnderung
1.1.02026-11-06Komponenten, Messwerte, Nachweise, Lieferanten, Audit, Einzelpass, GS1, feine Rechte, Dry-Run-Kopfzeile, OpenAPI und Health-Endpunkt
1.0.02026-11-06Modelle, Pässe, Ereignisse, Schlüssel, Testmodus, Idempotenz

Häufige Fragen

Kurze Antworten für die Anbindung.

Wie teste ich, ohne echte Pässe zu erzeugen?

Mit einem Testschlüssel. Er prüft alles wie im Echtbetrieb und speichert nichts.

Was tun bei einem Timeout?

Dieselbe Anfrage mit demselben Idempotency-Key erneut senden. Es entsteht kein zweiter Datensatz.

Wie finde ich den Pass zu einer Seriennummer?

Mit GET /passports?serial=… und bei Bedarf model_code.

Kann ich Pässe über die API löschen?

Nein. Das Lebensende melden Sie als Ereignis mit dem Status waste.

Wie viele Pässe sind möglich?

1.000 je Aufruf, 300 Aufrufe je Minute. Grenzen setzen außerdem Ihr Paket und unser Hosting. Planen Sie mehr als 100.000 Pässe im Jahr, stimmen Sie das bitte vorab mit uns ab.

Probieren Sie den Import mit Ihrer Datei.

Der Pilot ist kostenlos und reicht für ein Modell und 25 Pässe im Jahr.