Dezvoltatori
Două API-uri
API de gestionare a pașapoartelor
/openapi.jsonPentru societatea care deține pașapoartele: listați modele și exemplare (după cursor, cu updatedSince pentru sincronizare), creați exemplare, intervale și copii ale modelelor, actualizați datele exemplarelor, publicați (un exemplar sau în fundal) și obțineți coduri QR. Autentificare cu o cheie API.
Referință: API de gestionare a pașapoartelorAPI DPP (EN 18222)
/openapi-dpp.jsonAPI Life Cycle și Fine Granular conform EN 18222: citiți pașapoarte la nivelul dvs. de acces, căutați ID-uri de pașapoarte după ID-ul produsului, înregistrați evenimente (reparație, stare de sănătate, stare) cu un token de acces OAuth 2.0. Datele publice pot fi citite fără token.
Referință: API DPP (EN 18222)
Citiți un pașaport
Fiecare adresă de pașaport răspunde cu JSON atunci când îl solicitați – fără cheie pentru datele publice. Antetele conțin versiunea, SHA-256 al ei și semnătura Ed25519, astfel încât puteți verifica ce ați citit în raport cu cheile noastre publice.
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", … }, … }Cum funcționează API-urile
Autentificare
Cheile API sunt create de proprietarul societății în Company → API keys și sunt afișate o singură dată. Trimiteți-le ca Authorization: Bearer bcp_live_…. Domenii (scopes): items:read, items:write (include și citirea), items:publish, qr:read.
Clienții OAuth 2.0 (client credentials) sunt creați de proprietarul societății pentru partenerii săi sau de platformă pentru autorități și terți aprobați. Obțineți un token cu POST /oauth/token (grant_type=client_credentials); este valabil 15 minute. Domenii (scopes): dpp:read, dpp:search, dpp:write.
Limite și erori
60 de cereri pe minut pentru fiecare cheie API (antete X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) și 120 pe minut pentru fiecare client OAuth sau, fără token, pentru fiecare adresă. La depășirea limitei: HTTP 429 cu Retry-After.
API-ul de gestionare a pașapoartelor răspunde la erori cu un obiect error format din code, message și details; API-ul DPP răspunde cu statusCode, payload și result, cu codurile de stare din EN 18222.
Actualizările API DPP acceptă un antet Idempotency-Key: aceeași cheie cu aceeași cerere în 24 de ore returnează primul răspuns și nu creează o a doua versiune.
Pașapoarte publice
Fiecare pașaport are o adresă permanentă (GS1 Digital Link /01/{GTIN}/21/{serial} sau /id/{operator}/{model}/{serial}). Cu Accept: application/json sau ?format=json returnează JSON-ul ultimei versiuni pentru nivelul dvs. de acces; ?version=N o versiune dată; /versions lista.
Fiecare versiune este semnată: X-Passport-SHA256 conține SHA-256 al JSON-ului canonic RFC 8785 al versiunii complete, X-Passport-Signature semnătura sa Ed25519 asupra acelui șir hexazecimal, iar X-Passport-Key-Id cheia care a semnat-o. Cheile publice și schema sunt listate la Descrieri care pot fi citite automat.
Webhook-uri
În loc să interogați periodic, adăugați un punct final în Company → Webhooks. Evenimentele – 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 – sunt trimise prin POST ca JSON, cu antetele X-Webhook-Id, X-Webhook-Timestamp și X-Webhook-Signature = v1= + HMAC-SHA256 hexazecimal al timestamp.body cu secretul dvs. Răspundeți cu 2xx în 10 secunde; livrările eșuate sunt reîncercate timp de 24 de ore.
Descrieri care pot fi citite automat
- Chei publice de semnare (JWKS)/.well-known/batterycompliance-signing-key.json
- Schema JSON a pașaportului/schema/battery-passport/2.0.0
- OpenAPI 3.1 – API de gestionare a pașapoartelor/openapi.json
- OpenAPI 3.1 – API DPP/openapi-dpp.json
Obțineți o cheie API
Înregistrați-vă societatea, apoi creați o cheie în Company → API keys. Cheile sunt afișate o singură dată și stocate doar sub formă de hash.