---
title: Проверка на готовността за регистъра
description: Проверка дали паспорт би преминал формалната проверка на EU DPP Registry — задължителни полета, формат и разрешим линк. Само батерии.
canonical: "https://www.tracepass.eu/bg/docs/passport-registry-readiness"
locale: bg
source: "https://www.tracepass.eu/bg/docs/passport-registry-readiness"
---

# Проверка на готовността за регистъра

> Проверка дали паспорт би преминал формалната проверка на EU DPP Registry — задължителни полета, формат и разрешим линк. Само батерии.

```http
GET /api/v1/passports/{id}/registry-readiness
```

Връща дали паспорт би преминал **формалната проверка за подаване на EU DPP Registry** — `{ ready, findings[] }`. Това е *механичната* проверка на регистъра преди подаване, различна от и допълваща същинската оценка `/compliance`: паспорт може да е готов за регистъра, но да не е същински съответстващ, и обратно. Извикайте я преди подаване към регистъра, за да откриете формалните пропуски рано.

Три формални проверки, всяка носена на стандартната finding форма с `REG-READY-*` `ruleId`. **`REG-READY-MANDATORY`**: всяко задължително поле, приложимо за този тип батерия, е налично и одобрено — с отчитане на приложимостта, така че поле, неприложимо за категорията на батерията (напр. state-of-certified-energy за батерия, различна от EV), не се брои за липсващо, а поле с `unknown` приложимост се появява като warning, не като блокиране. **`REG-READY-FORMAT`**: попълнените полета са добре формирани (типове, enums, patterns, граници). **`REG-READY-LINK`**: публичният линк на паспорта се разрешава — жива проверка; при непубликуван паспорт това е предупредителен warning, а не блокиране, тъй като preflight-ът е предназначен да се изпълнява преди публикуване.

`ready` е `true` само когато няма critical findings; warnings никога не блокират готовността. **Само паспорти на батерии** в тази версия — паспорт, различен от батерия, връща `ready: true` с единствен `REG-READY-SCOPE` warning, тъй като формалната проверка на регистъра за други категории все още не е моделирана. Само за четене; брои се като едно 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 на паспорта. |

## Examples

```bash
curl -sS \
  https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/registry-readiness \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"
```

```typescript
const res = await fetch(
  `https://app.tracepass.eu/api/v1/passports/${id}/registry-readiness`,
  { headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` } },
);
const result = await res.json();

if (!result.ready) {
  // Each critical finding names the formal gap that blocks registry submission.
  for (const f of result.findings.filter((x) => x.severity === "critical")) {
    console.log(`${f.ruleId}: ${f.target ?? ""} — ${f.why}`);
  }
}
```

```python
import os, requests
res = requests.get(
    f"https://app.tracepass.eu/api/v1/passports/{passport_id}/registry-readiness",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
)
res.raise_for_status()
result = res.json()
if not result["ready"]:
    for f in [x for x in result["findings"] if x["severity"] == "critical"]:
        print(f["ruleId"], f.get("target", ""), "—", f["why"])
```

## Responses

### 200 — not ready

```json
{
  "ready": false,
  "findings": [
    {
      "type": "missing_field",
      "severity": "critical",
      "target": "batteryUniqueIdentifier",
      "ruleId": "REG-READY-MANDATORY",
      "why": "A mandatory field that applies to this battery is missing.",
      "fix": "Provide batteryUniqueIdentifier before submitting to the registry."
    },
    {
      "type": "unverifiable_conditional",
      "severity": "warning",
      "target": "https://id.tracepass.eu/p/01/...",
      "ruleId": "REG-READY-LINK",
      "why": "This passport isn't published yet, so the registry link can't be checked live."
    }
  ]
}
```

### 200 — ready

```json
{
  "ready": true,
  "findings": []
}
```

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

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

## Related

- [Оценка за съответствие](https://www.tracepass.eu/bg/docs/passport-compliance.md)
- [Прочитане на паспорт](https://www.tracepass.eu/bg/docs/get-passport.md)
- [Обновяване на поле](https://www.tracepass.eu/bg/docs/update-field.md)
