TracePass
Паспорти

Маркиране на паспорт за изтриване

Първа от две стъпки. Изтриването на паспорт става на две стъпки: първо го маркирате за изтриване тук, след това извиквате DELETE /api/v1/passports/{id} (непубликуван паспорт в статус draft или in_review може да се изтрие директно). Изтриването е меко (soft delete): нищо не се заличава, но паспортът изчезва от API и от всичко, което е публично достъпно. Сканирането на QR кода показва страница, че паспортът е прекратен, а машинночетимите формати връщат 410 Gone.

POST/api/v1/passports/{id}/mark-for-deletion
Изтегли OpenAPI 3.1
POST/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= за разграничаване).

never_placed се отказва за пуснат на пазара паспорт. Паспорт, регистриран като пуснат на пазара, връща 409 reason_contradicts_placement при тази причина. recycled и duplicate_or_error остават достъпни.

Параметри в пътя

  • 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"
}