Publish-readiness report (the integration wedge)
GET/api/v1/products/:id/gate
Required scope: dpp:gate:read. Runs the SAME publish gate the operator
UI uses and returns the structured gap list — each gap carries a
resolver (erp | operator-ui | verifier | support) so the integrator
knows which gaps it can close via the API vs which need a human.
New in v1 (2026-08-01, additive): gap kind
registry_registration_missing (resolver operator-ui). Emitted only
for battery categories in EU DPP scope, only from 18 February 2027
(Battery Regulation Art. 77 binding date), and only while the product
has no production-environment registration in the EU DPP Registry.
Pre-2027 this kind never appears, so no integration change is needed
today. kind is an open string by contract: treat unknown kinds as
unresolvable-by-ERP and surface them to a human.
Request
Responses
- 200
- 403
- 404
- 503
Gate result
403 — missing scope (FORBIDDEN_SCOPE) or module (FORBIDDEN_MODULE).
404 — not found OR owned by another tenant (NOT_FOUND; IDOR-safe).
503 — the API is not enabled on this environment (FEATURE_DISABLED).