Utvecklare
Två API:er
API för passhantering
/openapi.jsonFör det företag som äger passen: lista modeller och poster (med markör, med updatedSince för synkronisering), skapa poster, intervall och kopior av modeller, uppdatera postens uppgifter, publicera (en post eller i bakgrunden) och hämta QR-koder. Autentiseras med en API-nyckel.
Referens: API för passhanteringDPP-API (EN 18222)
/openapi-dpp.jsonLife Cycle- och Fine Granular-API enligt EN 18222: läs pass på din åtkomstnivå, sök pass-ID:n via produkt-ID, registrera händelser (reparation, hälsotillstånd, status) med en OAuth 2.0-åtkomsttoken. Offentliga uppgifter kan läsas utan token.
Referens: DPP-API (EN 18222)
Läs ett pass
Varje passadress svarar med JSON när du ber om det – ingen nyckel behövs för offentliga uppgifter. Rubrikerna innehåller versionen, dess SHA-256 och Ed25519-signaturen, så att du kan kontrollera det du läser mot våra publika nycklar.
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å fungerar API:erna
Autentisering
API-nycklar skapas av företagets ägare under Company → API keys och visas en gång. Skicka dem som Authorization: Bearer bcp_live_…. Behörigheter: items:read, items:write (läser också), items:publish, qr:read.
OAuth 2.0-klienter (client credentials) skapas av företagets ägare för dess partner, eller av plattformen för myndigheter och godkända tredje parter. Hämta en token med POST /oauth/token (grant_type=client_credentials); den gäller i 15 minuter. Behörigheter: dpp:read, dpp:search, dpp:write.
Gränser och fel
60 förfrågningar per minut och API-nyckel (rubrikerna X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) och 120 per minut och OAuth-klient eller, utan token, per adress. Över gränsen: HTTP 429 med Retry-After.
API:et för passhantering svarar på fel med ett error-objekt med code, message och details; DPP-API:et svarar med statusCode, payload och result med EN 18222:s statuskoder.
Uppdateringar i DPP-API:et accepterar en Idempotency-Key-rubrik: samma nyckel med samma förfrågan inom 24 timmar returnerar det första svaret och skapar ingen andra version.
Offentliga pass
Varje pass har en permanent adress (GS1 Digital Link /01/{GTIN}/21/{serial} eller /id/{operator}/{model}/{serial}). Med Accept: application/json eller ?format=json returneras JSON för den senaste versionen på din åtkomstnivå; ?version=N en given version; /versions listan.
Varje version är signerad: X-Passport-SHA256 innehåller SHA-256 av den kanoniska JSON-formen enligt RFC 8785 för hela versionen, X-Passport-Signature dess Ed25519-signatur över den hexadecimala strängen och X-Passport-Key-Id den nyckel som signerade den. De publika nycklarna och schemat listas under Maskinläsbara beskrivningar.
Webhooks
I stället för att fråga om och om igen lägger du till en slutpunkt 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 – skickas med POST som JSON med rubrikerna X-Webhook-Id, X-Webhook-Timestamp och X-Webhook-Signature = v1= + hexadecimal HMAC-SHA256 av timestamp.body med din hemlighet. Svara med 2xx inom 10 sekunder; misslyckade leveranser försöks igen i 24 timmar.
Maskinläsbara beskrivningar
- Publika signeringsnycklar (JWKS)/.well-known/batterycompliance-signing-key.json
- JSON-schema för pass/schema/battery-passport/2.0.0
- OpenAPI 3.1 – API för passhantering/openapi.json
- OpenAPI 3.1 – DPP-API/openapi-dpp.json
Skaffa en API-nyckel
Registrera ditt företag och skapa sedan en nyckel under Company → API keys. Nycklar visas en gång och lagras bara som en hash.