ยง9 Step 3 โ Submission Authorisations
Captures the operator's explicit "I authorize Epoch to file
this DDS to TRACES on my behalf" acknowledgement before fm-api
fires the SOAP envelope to TRACES. Without an authorisation on file, the on-behalf-of
route (Submit DDS with mode: "submit")
refuses to file with a 422 PRE_SUBMISSION_BLOCKED response
whose details.blockers[] carries an authorization_missing
entry.
โถWhat gets recorded
Each successful POST appends a version.authorization_granted
row to the audit log
(Audit Log). The row captures:
- Who acknowledged โ the API-key holder's user id (when the key is member-level) and org id (always).
- When โ
occurred_attimestamp. - Which text version โ the
AUTHORIZATION_TEXTSkey the operator saw on screen (today:"v2"). The text-version is immutable on the row; revising the legal text bumps the current version without invalidating prior acknowledgements. - Who signed (optional) โ a human-readable
signeename (free-text, 1โ200 chars) for when the API key isn't the person actually clicking the checkbox.
โถScope
Per-version. Authorisation is recorded against the record's
current version (latest version_number). Cutting v_{n+1}
resets the requirement because the data has changed โ the
operator must re-acknowledge before the new version can be
submitted via mode: "submit".
โถMode behaviour
| Submit mode | Authorisation required? |
|---|---|
submit (on-behalf-of, Epoch files via SOAP) | Yes โ mode: "submit" is refused with 422 when no authorisation exists for the current version with the current text-version |
manual (operator filed externally via the EU portal) | No โ the operator is reporting an already-filed submission; Epoch isn't acting as authorised representative |
โถEndpoints
| Seq | Method | Path | Purpose |
|---|---|---|---|
| 1 | POST | /dds/:recordId/authorisations | Record an acknowledgement for the current version |
| 2 | GET | /dds/:recordId/authorisations | Per-record history (newest first) |
โถVisibility
Same rule as the rest of the DDSv2 surface:
dds_record.organization_id โ ctx.effectiveOrgIds. Cross-org
GETs and POSTs return 404.
Required scope:
ingestions:writefor POST,ingestions:readfor GET.