TracePass
Паспорти

Проверка на съответствието на паспорт

Връща тристепенна оценка за съответствие за един паспорт — `compliant`, `compliant_with_warnings` или `incomplete` — заедно с findings, цитиращи регламента, така че интеграция може да направи анализ на пропуските на паспорт, да поправи цитираните пропуски и да извика отново за потвърждение. Тази верига четене → поправка → проверка е целта: отговорът казва на AI агента точно какво да зададе след това.

GET/api/v1/passports/{id}/compliance
Изтегли OpenAPI 3.1
GET/api/v1/passports/{id}/compliance

Проверка на съответствието на паспорт

Връща тристепенна оценка за съответствие за един паспорт — `compliant`, `compliant_with_warnings` или `incomplete` — заедно с findings, цитиращи регламента, така че интеграция може да направи анализ на пропуските на паспорт, да поправи цитираните пропуски и да извика отново за потвърждение. Тази верига четене → поправка → проверка е целта: отговорът казва на AI агента точно какво да зададе след това.

Findings идват от три нива. **Static**: задължителни template полета, които липсват или не са одобрени, и задължителни operatori, които не са зададени, са `critical`; стойности на полета, които нарушават формата на template (pattern / enum / граници) са `warning`. **Conditional**: правила по категория — обхватът на паспорта на батерията по Регламент (ЕС) 2023/1542 чл. 77, параграф 1 (`warning` до прилагането на задължението на 18 февруари 2027 г., `critical` след това), приложимостта на полетата за батерии, декларацията за експлоатационни показатели по Регламент (ЕС) 2024/3110 и съгласуваността на маркировката CE — плюс междусекторното правило, че продукт, пуснат на пазара на ЕС от производител извън ЕС, се нуждае от operator, установен в ЕС (Регламент (ЕС) 2019/1020 чл. 4).

**`byRegulation` групира същите findings по регламента, който ги е породил** — първо най-тежките — така че една REACH празнина да не се чете като „задължението за DPP не е изпълнено“, когато то е изпълнено изцяло. Извлича се от findings по-горе и никога не противоречи на `verdict` — обобщеният verdict остава меродавен за публикуване. Регламент, който липсва в масива, не е породил finding, което НЕ е същото като да е преминал успешно: появяват се само регламенти с findings. Findings без регламент се групират под `unattributed`, вместо да се изхвърлят.

**Прочетете `conditionalCoverage`.** Той е `evaluated`, когато conditional правилата са изпълнени за тази категория, или `static-only`, когато все още няма обвързващо conditional правило в сила (8 от 13-те категории днес). Когато е `static-only`, липсата на conditional findings НЕ означава, че категорията няма бъдещи изисквания — а само че все още няма правно обвързващи. Finding, маркиран `unverifiable_conditional`, означава, че правило се прилага, но данните, необходими за оценката му (напр. категория на батерията, SVHC съдържание), не са в паспорта — проверете го ръчно. Само за четене; брои се като едно v1 четене на паспорт спрямо дневния лимит.

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

  • 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

Заявка

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

Отговор

{
  "verdict": "incomplete",
  "category": "battery",
  "conditionalCoverage": "evaluated",
  "critical": [
    {
      "type": "conditional_missing",
      "severity": "critical",
      "target": "batteryUniqueIdentifier",
      "regulation": "(EU) 2023/1542",
      "article": "Art. 77(1)",
      "ruleId": "BAT-1",
      "why": "This is an in-scope battery (EV); a battery passport with its unique identifier is mandatory.",
      "fix": "Provide batteryUniqueIdentifier — the battery passport's unique identifier (GS1 Digital Link)."
    }
  ],
  "warnings": [],
  "checkedRules": ["static:required-fields", "static:required-parties", "static:format", "BAT-1", "BAT-APP", "BAT-VAL", "CE-1", "CC-1"],
  "completionPercentage": 72,
  "byRegulation": [
    {
      "regulation": "(EU) 2023/1542",
      "verdict": "incomplete",
      "critical": [
        {
          "type": "conditional_missing",
          "severity": "critical",
          "target": "batteryUniqueIdentifier",
          "regulation": "(EU) 2023/1542",
          "article": "Art. 77",
          "ruleId": "BAT-1",
          "why": "This is an in-scope battery (EV); a battery passport with its unique identifier is mandatory.",
          "fix": "Provide batteryUniqueIdentifier — the battery passport's unique identifier (GS1 Digital Link)."
        }
      ],
      "warnings": []
    }
  ]
}