Gå til hovedindholdet
Battery Compliance
Kom i gang gratis
Menu

Udviklere

Forbind jeres ERP- eller produktionssystemer: opret og udgiv batteripas, læs og opdatér dem via en DPP-API, der følger EN 18222, og modtag hændelser via webhook. API-adgang er inkluderet i alle planer, også Free.

To API’er

  • API til pasadministration

    /openapi.json

    Til den virksomhed, der ejer passene: oplist modeller og eksemplarer (med cursor og updatedSince til synkronisering), opret eksemplarer, intervaller og kopier af modeller, opdatér eksemplardata, udgiv (ét eksemplar eller i baggrunden) og hent QR-koder. Godkendes med en API-nøgle.

    Reference: API til pasadministration
  • DPP-API (EN 18222)

    /openapi-dpp.json

    Life Cycle og Fine Granular API efter EN 18222: læs pas på dit adgangsniveau, søg efter pas-id’er ud fra produkt-id, registrér hændelser (reparation, sundhedstilstand, status) med et OAuth 2.0-adgangstoken. Offentlige data kan læses uden token.

    Reference: DPP-API (EN 18222)

Læs et pas

Hver pasadresse svarer med JSON, når I beder om det – ingen nøgle nødvendig til offentlige data. Headerne indeholder versionen, dens SHA-256 og Ed25519-signaturen, så I kan kontrollere det, I læser, mod vores offentlige nøgler.

curl -i -H "Accept: application/json" \https://batterycompliance.eu/id/BG123456789/EBIKE-48V/SN0001 HTTP/1.1 200 OKContent-Type: application/json; charset=utf-8X-Passport-Version: 3X-Passport-Access-Level: publicX-Passport-SHA256: bd4c49c7b04ac463…81146b938X-Passport-Signature: Tw0bRkvf+s3IS1MQ…MPZ7Dg==X-Passport-Key-Id: batterycompliance-2026-09-25Link: </schema/battery-passport/2.0.0>; rel="describedby" { "dppHeader": { "dppStatus": { "dppStatusValue": "active" }, … },  "identifiersAndProductData": { "batterySerialNumber": "SN0001", … }, … }
Lange værdier er forkortet. Med et adgangstoken returnerer den samme adresse felterne for dit adgangsniveau, og X-Passport-Access-Level angiver det.

Sådan fungerer API’erne

Godkendelse

API-nøgler oprettes af virksomhedens ejer under Company → API keys og vises kun én gang. Send dem som Authorization: Bearer bcp_live_…. Scopes: items:read, items:write (læser også), items:publish, qr:read.

OAuth 2.0-klienter (client credentials) oprettes af virksomhedens ejer til dens partnere eller af platformen til myndigheder og godkendte tredjeparter. Hent et token med POST /oauth/token (grant_type=client_credentials); det er gyldigt i 15 minutter. Scopes: dpp:read, dpp:search, dpp:write.

Grænser og fejl

60 forespørgsler i minuttet pr. API-nøgle (headerne X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) og 120 i minuttet pr. OAuth-klient eller, uden token, pr. adresse. Over grænsen: HTTP 429 med Retry-After.

API’et til pasadministration besvarer fejl med et error-objekt med code, message og details; DPP-API’et svarer med statusCode, payload og result med statuskoderne fra EN 18222.

Opdateringer via DPP-API’et accepterer en Idempotency-Key-header: den samme nøgle med den samme forespørgsel inden for 24 timer returnerer det første svar og opretter ikke en anden version.

Offentlige pas

Hvert pas har en permanent adresse (GS1 Digital Link /01/{GTIN}/21/{serial} eller /id/{operator}/{model}/{serial}). Med Accept: application/json eller ?format=json returnerer den JSON for den seneste version på dit adgangsniveau; ?version=N en given version; /versions listen.

Hver version er signeret: X-Passport-SHA256 indeholder SHA-256 af den kanoniske RFC 8785-JSON for hele versionen, X-Passport-Signature dens Ed25519-signatur over denne hex-streng og X-Passport-Key-Id den nøgle, der signerede den. De offentlige nøgler og skemaet er opført under Maskinlæsbare beskrivelser.

Webhooks

I stedet for løbende hentning tilføjer I et endepunkt under Company → Webhooks. Hændelser – passport.published, publish_job.finished, item.lifecycle_recorded, access_request.created, passport.transferred, label_template.issued, dossier.ready, import_batch.assigned, import_batch.confirmed, import_batch.rejected – sendes med POST som JSON med headerne X-Webhook-Id, X-Webhook-Timestamp og X-Webhook-Signature = v1= + hex HMAC-SHA256 af timestamp.body med jeres hemmelighed. Svar 2xx inden for 10 sekunder; mislykkede leveringer forsøges igen i 24 timer.

Maskinlæsbare beskrivelser

Få en API-nøgle

Registrér jeres virksomhed, og opret derefter en nøgle under Company → API keys. Nøgler vises kun én gang og gemmes kun som en hashværdi.