---
title: Задаване на флагове за условна класификация
description: Задаване или изчистване на флагове за условна класификация. Одобряването на флаг може да направи полета задължителни и да блокира публикуването.
canonical: "https://www.tracepass.eu/bg/docs/set-condition-flags"
locale: bg
source: "https://www.tracepass.eu/bg/docs/set-condition-flags"
---

# Задаване на флагове за условна класификация

> Задаване или изчистване на флагове за условна класификация. Одобряването на флаг може да направи полета задължителни и да блокира публикуването.

```http
PATCH /api/v1/passports/{id}/condition-flags
```

Записва един или повече condition flags към паспорт. Тялото на заявката е `Record<flagKey, boolean | null>` — `true` или `false` задава флага; `null` го изчиства. Само ключове, регистрирани за категорията на паспорта, се приемат; непознати ключове връщат 400 с допустимите ключове за тази категория.

**Предупреждение: одобряването на флаг може да направи досега незадължителни полета задължителни.** За паспорти на батерии, `hasBMS: true` активира полетата по BMS от Приложение XIII 4(б); `rechargeable: true` активира полетата за заряд/разряд и state-of-health по чл. 10, пар. 1; `isStationaryBess: true` активира полетата от Приложение VII, части A и B. Ако паспортът вече е публикуван и тези полета са празни, следващата проверка за съответствие ще повдигне критични findings `conditional_missing` — **попълнете тези полета преди или веднага след задаването на флага**, иначе паспортът няма да може да бъде препубликуван.

v1 записи са по подразбиране `status: "approved"` (доверена интеграция). Всяка промяна на флаг се записва в одитния журнал на флага с `"via API key <prefix>"`. Пълният одитен журнал е видим в таблото за управление, но е отстранен от този отговор. Поддържа `Idempotency-Key`. Алтернативна форма на адресиране е налична на `PATCH /api/v1/passports/by-serial/{serial}/condition-flags` с еднакви форми на тяло и отговор. Брои се като едно v1 записване спрямо дневния лимит.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — или `tp_` API ключ (Developer → API Keys; най-просто, за server-to-server), или OAuth 2.0 access token (Developer → OAuth Apps; за приложения, авторизирани от потребител, scoped и отзоваеми). Страницата Authentication съдържа пълния OAuth поток и списъка със scopes. |
| `id` | path | ObjectId | yes | ID на паспорта. |
| `Idempotency-Key` | header | string | no | Незадължителен ключ за идемпотентност (UUID v4 или произволен непрозрачен низ ≤ 64 символа). Същият ключ + същото тяло преизпълнява кеширания отговор за 24 ч. |

## Examples

```bash
curl -sS -X PATCH \
  https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/condition-flags \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"hasBMS": true, "rechargeable": true}'
```

```typescript
const res = await fetch(
  `https://app.tracepass.eu/api/v1/passports/${id}/condition-flags`,
  {
    method: "PATCH",
    headers: {
      Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}`,
      "Content-Type": "application/json",
      "Idempotency-Key": crypto.randomUUID(),
    },
    body: JSON.stringify({ hasBMS: true, rechargeable: true }),
  },
);
const { conditionProfile, version } = await res.json();
console.log("Updated profile:", conditionProfile, "version:", version);
```

```python
import os, uuid, requests
res = requests.patch(
    f"https://app.tracepass.eu/api/v1/passports/{passport_id}/condition-flags",
    headers={
        "Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={"hasBMS": True, "rechargeable": True},
)
res.raise_for_status()
data = res.json()
print("version:", data["version"])
for flag, info in data["conditionProfile"].items():
    print(flag, "→", info["value"], f"({info['status']})")
```

## Responses

### 200 — Флаговете са актуализирани

```json
{
  "passportId": "6650b2c3d4e5f6a7b8c9d0e1",
  "conditionProfile": {
    "hasBMS": {
      "value": true,
      "status": "approved",
      "source": "api:tp_abc123"
    },
    "rechargeable": {
      "value": true,
      "status": "approved",
      "source": "api:tp_abc123"
    }
  },
  "version": 4
}
```

### 400 — Непознат ключ на флаг

```json
{
  "error": "Unknown condition flag keys",
  "details": "Keys not registered for category \"battery\": unknownFlag"
}
```

### 402 — Изисква се плащане

```json
{ "error": "Active subscription required" }
```

### 404 — Не е намерен

```json
{ "error": "Passport not found" }
```

## Related

- [Прочитане на флагове](https://www.tracepass.eu/bg/docs/get-condition-flags.md)
- [Проверка на съответствие](https://www.tracepass.eu/bg/docs/passport-compliance.md)
