Naar de hoofdinhoud
Battery Compliance
Gratis starten
Menu

Ontwikkelaars

Koppel uw ERP- of productiesystemen: maak batterijpaspoorten aan en publiceer ze, lees en werk ze bij via een DPP-API die EN 18222 volgt, en ontvang gebeurtenissen via webhook. API-toegang is inbegrepen in elk abonnement, ook Free.

Twee API’s

  • API voor paspoortbeheer

    /openapi.json

    Voor het bedrijf dat de paspoorten bezit: modellen en exemplaren weergeven (met cursor, met updatedSince voor synchronisatie), exemplaren, reeksen en kopieën van modellen aanmaken, exemplaargegevens bijwerken, publiceren (één exemplaar of op de achtergrond) en QR-codes ophalen. Geauthenticeerd met een API-sleutel.

    Referentie: API voor paspoortbeheer
  • DPP-API (EN 18222)

    /openapi-dpp.json

    Life Cycle- en Fine Granular-API volgens EN 18222: paspoorten lezen op uw toegangsniveau, paspoort-ID’s zoeken op product-ID, gebeurtenissen (reparatie, gezondheidstoestand, status) vastleggen met een OAuth 2.0-toegangstoken. Openbare gegevens kunnen zonder token worden gelezen.

    Referentie: DPP-API (EN 18222)

Een paspoort lezen

Elk paspoortadres antwoordt met JSON wanneer u erom vraagt – voor openbare gegevens is geen sleutel nodig. De headers bevatten de versie, de SHA-256 en de Ed25519-handtekening ervan, zodat u kunt controleren wat u las aan de hand van onze openbare sleutels.

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 waarden zijn ingekort. Met een toegangstoken geeft hetzelfde adres de velden van uw toegangsniveau en noemt X-Passport-Access-Level het.

Hoe de API’s werken

Authenticatie

API-sleutels worden door de eigenaar van het bedrijf aangemaakt in Bedrijf → API-sleutels en één keer getoond. Stuur ze als Authorization: Bearer bcp_live_…. Scopes: items:read, items:write (leest ook), items:publish, qr:read.

OAuth 2.0-clients (client credentials) worden door de eigenaar van het bedrijf aangemaakt voor zijn partners, of door het platform voor autoriteiten en goedgekeurde derden. Haal een token op met POST /oauth/token (grant_type=client_credentials); het is 15 minuten geldig. Scopes: dpp:read, dpp:search, dpp:write.

Limieten en fouten

60 verzoeken per minuut per API-sleutel (headers X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) en 120 per minuut per OAuth-client of, zonder token, per adres. Boven de limiet: HTTP 429 met Retry-After.

De API voor paspoortbeheer beantwoordt fouten met een error-object met code, message en details; de DPP-API antwoordt met statusCode, payload en result met de statuscodes van EN 18222.

Updates van de DPP-API accepteren een Idempotency-Key-header: dezelfde sleutel met hetzelfde verzoek binnen 24 uur geeft het eerste antwoord terug en maakt geen tweede versie aan.

Openbare paspoorten

Elk paspoort heeft een permanent adres (GS1 Digital Link /01/{GTIN}/21/{serial} of /id/{operator}/{model}/{serial}). Met Accept: application/json of ?format=json geeft het de JSON van de nieuwste versie voor uw toegangsniveau; ?version=N een bepaalde versie; /versions de lijst.

Elke versie is ondertekend: X-Passport-SHA256 bevat de SHA-256 van de canonieke JSON volgens RFC 8785 van de volledige versie, X-Passport-Signature de Ed25519-handtekening over die hexadecimale reeks en X-Passport-Key-Id de sleutel waarmee is ondertekend. De openbare sleutels en het schema staan onder Machineleesbare beschrijvingen.

Webhooks

Voeg in plaats van te bevragen een eindpunt toe in Bedrijf → Webhooks. Gebeurtenissen – 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 – worden als JSON gePOST met de headers X-Webhook-Id, X-Webhook-Timestamp en X-Webhook-Signature = v1= + hexadecimale HMAC-SHA256 van timestamp.body met uw geheim. Antwoord met 2xx binnen 10 seconden; mislukte leveringen worden 24 uur lang opnieuw geprobeerd.

Machineleesbare beschrijvingen

Een API-sleutel aanvragen

Registreer uw bedrijf en maak dan een sleutel aan in Bedrijf → API-sleutels. Sleutels worden één keer getoond en alleen als hash opgeslagen.