Izstrādātājiem
Divi API
Pasu pārvaldības API
/openapi.jsonUzņēmumam, kam pieder pases: modeļu un vienību saraksts (pēc kursora, ar updatedSince sinhronizācijai), vienību, diapazonu un modeļu kopiju izveide, vienības datu atjaunināšana, publicēšana (viena vienība vai fonā) un QR kodu iegūšana. Autentificēšana ar API atslēgu.
Atsauce: Pasu pārvaldības APIDPP API (EN 18222)
/openapi-dpp.jsonLife Cycle un Fine Granular API atbilstoši EN 18222: lasiet pases savā piekļuves līmenī, meklējiet pases ID pēc produkta ID, reģistrējiet notikumus (remonts, veselības stāvoklis, statuss) ar OAuth 2.0 piekļuves pilnvaru. Publiskos datus var lasīt bez pilnvaras.
Atsauce: DPP API (EN 18222)
Pases lasīšana
Katras pases adrese atbild ar JSON, kad to pieprasāt, – publiskajiem datiem atslēga nav vajadzīga. Galvenēs ir versija, tās SHA-256 un Ed25519 paraksts, tāpēc varat pārbaudīt izlasīto pret mūsu publiskajām atslēgām.
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", … }, … }Kā darbojas API
Autentificēšana
API atslēgas izveido uzņēmuma īpašnieks sadaļā Uzņēmums → API atslēgas, un tās tiek parādītas vienu reizi. Sūtiet tās kā Authorization: Bearer bcp_live_…. Tvērumi: items:read, items:write (arī lasa), items:publish, qr:read.
OAuth 2.0 klientus (client credentials) saviem partneriem izveido uzņēmuma īpašnieks, bet iestādēm un apstiprinātām trešajām personām – platforma. Pilnvaru iegūst ar POST /oauth/token (grant_type=client_credentials); tā ir derīga 15 minūtes. Tvērumi: dpp:read, dpp:search, dpp:write.
Limiti un kļūdas
60 pieprasījumi minūtē katrai API atslēgai (galvenes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) un 120 minūtē katram OAuth klientam vai, bez pilnvaras, katrai adresei. Pārsniedzot limitu: HTTP 429 ar Retry-After.
Pasu pārvaldības API kļūdas atgriež kā error objektu ar code, message un details; DPP API atbild ar statusCode, payload un result ar EN 18222 statusa kodiem.
DPP API atjauninājumi pieņem galveni Idempotency-Key: tā pati atslēga ar to pašu pieprasījumu 24 stundu laikā atgriež pirmo atbildi un neveido otru versiju.
Publiskās pases
Katrai pasei ir pastāvīga adrese (GS1 Digital Link /01/{GTIN}/21/{serial} vai /id/{operator}/{model}/{serial}). Ar Accept: application/json vai ?format=json tā atgriež jaunākās versijas JSON jūsu piekļuves līmenim; ?version=N – konkrētu versiju; /versions – sarakstu.
Katra versija ir parakstīta: X-Passport-SHA256 satur pilnās versijas RFC 8785 kanoniskā JSON SHA-256, X-Passport-Signature – tās Ed25519 parakstu pār šo heksadecimālo virkni un X-Passport-Key-Id – atslēgu, kas parakstīja. Publiskās atslēgas un shēma ir uzskaitītas sadaļā Mašīnlasāmi apraksti.
Tīmekļa āķi
Atkārtotas vaicāšanas vietā pievienojiet galapunktu sadaļā Uzņēmums → Tīmekļa āķi. Notikumi – 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 – tiek nosūtīti ar POST kā JSON ar galvenēm X-Webhook-Id, X-Webhook-Timestamp un X-Webhook-Signature = v1= + heksadecimālais HMAC-SHA256 no timestamp.body ar jūsu noslēpumu. Atbildiet 2xx 10 sekunžu laikā; neizdevušies piegādes mēģinājumi tiek atkārtoti 24 stundas.
Mašīnlasāmi apraksti
- Publiskās parakstīšanas atslēgas (JWKS)/.well-known/batterycompliance-signing-key.json
- Pases JSON shēma/schema/battery-passport/2.0.0
- OpenAPI 3.1 – pasu pārvaldības API/openapi.json
- OpenAPI 3.1 – DPP API/openapi-dpp.json
Iegūt API atslēgu
Reģistrējiet savu uzņēmumu, tad izveidojiet atslēgu sadaļā Uzņēmums → API atslēgas. Atslēgas tiek parādītas vienu reizi un glabātas tikai kā jaucējkods.