Developers · Reference

Developer FAQ

Answers to the questions integrators ask most: sandboxes, identifiers, limits, partial failures, webhooks, data residency and leaving.

Version
v1.0.0
Base URL
https://dppapi-production.up.railway.app/v1
Format
JSON · OpenAPI 3.1
FeedbackLast updated

Cet article n'est pas encore disponible en français ; il est affiché ci-dessous en anglais.

Is there a sandbox?
Yes, without a separate environment: a test key runs against your real organisation and dry-runs every write — fully validated, nothing stored. A live key can dry-run a single request with X-DPP-Dry-Run: true.
Which plan do I need for the API?
None in particular: API access — keys, /v1 and webhooks — is included on every plan. What a call may do follows the plan: publishing needs a paid plan, supplier requests need Growth. See pricing.
Can I use my own battery identifiers?
Yes, when you are moving from another provider and the codes are already printed: send uniqueIdentifier with POST /items. Otherwise we mint one (C- + 11 characters) — short enough for the 50-character registry limit, unambiguous on a label.
One passport per battery — even for 100,000 cells a day?
Yes; Article 77(1) requires one per physical battery (for the categories in scope). POST /items/batch creates up to 1,000 per request and POST /passports/publish publishes up to 1,000; at 600 requests a minute that is far beyond any line rate.
What happens if a batch fails halfway?
Creating batteries is all-or-nothing: a batch is created in one transaction. Publishing and fleet operations are per row and answer 207 with a reason per failed row. Use an idempotency key so a retry never doubles a batch.
Why was my publish refused with 422?
The publish gate: the battery needs a place of manufacture, and its model must be complete for its category. blockers names each problem; `GET /models/{id}/completeness` lists the missing fields.
Can I delete a passport over the API?
No. Passports must stay available for ten years, so the API never deletes — see why there is no DELETE. Record recycling, change status, or delete in the app, where deletions are audited.
How do I keep my systems in sync?
Subscribe to webhooks for immediacy and run an incremental sync with updated_since as the safety net.
Who sees the data I send?
Each data point has an Annex XIII access tier. The public resolver serves only PUBLIC data; restricted tiers stay on the server. Your own key sees everything of your organisation.
Do webhooks arrive in order, exactly once?
Neither is guaranteed: deliveries are at least once and may arrive out of order. Deduplicate on the event id, and order by created_at where it matters.
Can I call the API from a browser or mobile app?
Technically yes — /v1 allows any origin — but do not: a key is an organisation-wide secret. Call it from a server you control.
How do I leave, and what happens to the QR codes?
Download everything with `GET /export/archive`. The identifiers never change; redirecting the printed address to a new provider is arranged between providers, and we accept identifiers issued elsewhere for the same reason.
Is there an SDK?
A TypeScript SDK, @collecta/dpp-sdk, is coming soon to npm. Meanwhile every endpoint has samples in seven languages, and the OpenAPI document generates clients for many more.
Is this legal advice?
No. The docs describe how the software maps the regulation; responsibility for the content of a passport stays with the economic operator.

Préférences en matière de cookies

Vous choisissez les cookies utilisés. Vous pouvez modifier votre choix à tout moment via « Paramètres des cookies » en bas de page. Politique de confidentialité

Nécessaires

Toujours actifs

Indispensables au fonctionnement du site : votre thème clair/sombre et ce choix de cookies sont enregistrés dans votre navigateur. Ils ne servent pas à vous suivre.

Analyse

Google Analytics 4 mesure l’utilisation des pages au moyen de statistiques, ce qui nous aide à améliorer le site. Si vous acceptez, il dépose des cookies et mesure votre visite en détail. Si vous refusez, il ne dépose aucun cookie, mais Google peut tout de même recevoir des données techniques, comme la page consultée, le type de navigateur et l’adresse IP.

_ga, _ga_* · jusqu’à 2 ans · Google