Udviklere
To API’er
API til pasadministration
/openapi.jsonTil 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 pasadministrationDPP-API (EN 18222)
/openapi-dpp.jsonLife 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", … }, … }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
- Offentlige signaturnøgler (JWKS)/.well-known/batterycompliance-signing-key.json
- JSON-skema for pas/schema/battery-passport/2.0.0
- OpenAPI 3.1 – API til pasadministration/openapi.json
- OpenAPI 3.1 – DPP-API/openapi-dpp.json
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.