EUDR Due Diligence Statement (DDS)
A Due Diligence Statement is a submitted audit record β the
artifact filed with EU TRACES. This /dds namespace now exposes a
single action: submitting a record (the bridge that moves it from
working draft to filed DDS).
Reading records β both working drafts and submitted statements β moved
to the unified Audit Trail surface at
/regulations/eudr/audit-trail:
- List records at
GET /audit-trail; add?status=submittedfor the filed-only view that used to live atGET /dds.unaccounted_plot_countis opt-in on the list β pass?include=unaccounted_plot_countto compute it (it is expensive on large orgs and omitted by default). - Get a single record at
GET /audit-trail/:recordId(Get Audit Record Summary); itslifecycle_statustells you whether it's been filed.
You build and refine an audit record under Audit Trail, then
submit it here, at which point it becomes a DDS and shows up in
GET /audit-trail?status=submitted.
build & refine file read back
βββββββββββββββ ββββ βββββββββ
/audit-trail/* ββsubmitβββΆ POST /dds/:id/submit βββΆ GET /audit-trail?status=submitted
GET /audit-trail/:id
βΆEndpoints
| Method | Path | Description |
|---|---|---|
| POST | /dds/:recordId/submit | File the record's current version with TRACES (sync manual or async submit) |
| POST | /dds/lookup | Look up a DDS by internal reference (own filing) or reference/verification numbers (third party) |
The retired
GET /ddsandGET /dds/:recordIdreads are nowGET /audit-trail?status=submittedandGET /audit-trail/:recordId.
βΆReading back what TRACES holds
Submitting is one direction; Lookup DDS and the Audit Trail Get Traces Overview / Get Traces Statement endpoints are the other β a live read-through to what TRACES itself says about a filing, rather than only what fm-api last stored.
βΆMulti-org
Visibility is a single rule: dds_record.organization_id β ctx.effectiveOrgIds. Records produced under one org are invisible to
another and return 404.
βΆErrors
| Status | Code | When |
|---|---|---|
| 401 | UNAUTHORIZED | Missing/invalid API key |
| 404 | NOT_FOUND | recordId isn't visible to the caller |
Required scope: submission is documented on Submit DDS.
/dds/lookuprequireseudr:verify, noteudr:readβ see Lookup DDS.