/api/v1/passports/{id}/registrationUndo a mistaken EU DPP Registry record
Clears a result recorded with `POST /api/v1/passports/{id}/registration`; the required `environment` query parameter says which one. This changes nothing in the EU DPP Registry itself: it corrects what TracePass holds for the passport. The undo is recorded.
**`environment=acceptance`** removes the recorded acceptance test (`registryAcceptanceTest`).
**`environment=production`** returns the passport to prepared: `placeOnMarketStatus`, `placedOnMarketAt`, `registrationId` and `registrationMode` are cleared, the frozen address (`registryUpi`) and the preparation stay, and the operator parties unlock. Only a record with `registrationMode: "website"` can be undone, never a registration an EN 18222 registry confirmed.
With no record of that kind to undo, the call answers **409** `nothing_to_undo`. **Paid plans only** (`402` on Free). OAuth callers must act for an admin or owner. Returns the passport after the undo. Counts as one v1 write.
Path parameters
- idrequired
string (24 hex chars)
Passport ID.
Query parameters
- environmentrequired
"production" | "acceptance"
Which recorded result to undo.
e.g. production
Headers
- Authorizationrequired
string
`Bearer <token>` — either a `tp_` API key (Developer → API Keys; simplest, for server-to-server) or an OAuth 2.0 access token (Developer → OAuth Apps; for user-authorized apps, scoped + revocable). The Authentication page has the full OAuth flow and scope list.
e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
Request
curl -sS -X DELETE \
"https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/registration?environment=production" \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"Response
{
"passport": {
"_id": "6650b2c3d4e5f6a7b8c9d0e1",
"status": "published",
"registryUpi": "https://id.tracepass.eu/01/04012345000016/21/A1B2C3",
"registrationPreparedAt": "2027-02-26T09:12:00.000Z",
"registrationPreparedVia": "form"
}
}