/api/v1/passports/{id}/mark-for-deletionМаркиране на паспорт за изтриване
**Първа от две стъпки.** Изтриването на паспорт става на две стъпки: първо го маркирате за изтриване тук, след това извиквате `DELETE /api/v1/passports/{id}` (непубликуван паспорт в статус `draft` или `in_review` може да се изтрие директно). Изтриването е меко (soft delete): нищо не се заличава, но паспортът изчезва от API и от всичко, което е публично достъпно. Сканирането на QR кода показва страница, че паспортът е прекратен, а машинночетимите формати връщат `410 Gone`.
Маркираният паспорт вече не може да се редактира, а маркирането на публикуван паспорт освобождава мястото му в плана. Може да се маркира паспорт с всеки статус освен архивиран; повторно маркиране връща `409 already_marked_for_deletion`. Изпраща webhook `passport.marked_for_deletion`.
**Паспортите на батерии изискват причина.** Според Регламента за батериите паспортът на батерията приключва едва след като батерията бъде рециклирана (чл. 77, параграф 8), затова заявката посочва защо приключва този паспорт: `recycled`, `never_placed` (батерията никога не е пускана на пазара) или `duplicate_or_error`. Без причина паспорт на батерия връща `400 reason_required`. За другите категории `reason` не е задължителен, но ако е подаден, трябва да е една от същите три стойности.
**Отказва се, докато по-нов паспорт сочи към него.** Докато по-нов паспорт на батерия с втори живот във вашия акаунт посочва този паспорт като свой предшественик, маркирането връща `409 has_live_successor`; първо изтрийте по-новия паспорт.
Изтриването през API изисква платен план: на Free маркирането връща `403 deletion_not_on_plan`. Брои се като едно v1 записване. Поддържа `Idempotency-Key`. `POST /api/v1/passports/by-serial/{serial}/mark-for-deletion` е by-serial алтернатива (приема `?gtin=` за разграничаване).
Параметри в пътя
- idзадължително
string (24 hex chars)
ID на паспорта.
Хедъри
- Authorizationзадължително
string
`Bearer <token>` — или `tp_` API ключ (Developer → API Keys; най-просто, за server-to-server), или OAuth 2.0 access token (Developer → OAuth Apps; за приложения, авторизирани от потребител, scoped и отзоваеми). Страницата Authentication съдържа пълния OAuth поток и списъка със scopes.
e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Idempotency-Key
string
UUID v4.
Полета в тялото
- reason
enum
`recycled`, `never_placed` или `duplicate_or_error`. Задължителен за паспорти на батерии, незадължителен за другите категории.
e.g. recycled
Заявка
curl -sS -X POST \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/mark-for-deletion \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 4f9c2a7e-1b3d-4c5e-8f60-7a8b9c0d1e2f" \
-d '{ "reason": "recycled" }'Отговор
{
"_id": "6650b2c3d4e5f6a7b8c9d0e1",
"status": "marked_for_deletion",
"markedForDeletionAt": "2026-11-01T10:00:00.000Z",
"markedForDeletionReason": "recycled"
}