TracePass
Passaporti

Verificare la conformità del passaporto

Restituisce un verdetto di conformità a tre livelli per un passaporto — `compliant`, `compliant_with_warnings` o `incomplete` — insieme a findings che citano il regolamento, così un'integrazione può verificare le lacune di un passaporto, correggere le lacune indicate e richiamare per confermare. Quella catena leggere → correggere → verificare è lo scopo: la risposta indica all'agente IA esattamente cosa impostare in seguito.

GET/api/v1/passports/{id}/compliance
Scarica OpenAPI 3.1
GET/api/v1/passports/{id}/compliance

Verificare la conformità del passaporto

Restituisce un verdetto di conformità a tre livelli per un passaporto — `compliant`, `compliant_with_warnings` o `incomplete` — insieme a findings che citano il regolamento, così un'integrazione può verificare le lacune di un passaporto, correggere le lacune indicate e richiamare per confermare. Quella catena leggere → correggere → verificare è lo scopo: la risposta indica all'agente IA esattamente cosa impostare in seguito.

I findings provengono da tre livelli. **Static**: i campi obbligatori del template mancanti o non approvati, e gli operatori economici obbligatori non impostati, sono `critical`; i valori dei campi che violano il formato del template (pattern / enum / limiti) sono `warning`. **Conditional**: regole per categoria — l'ambito del passaporto della batteria ai sensi del Regolamento (UE) 2023/1542 art. 77, paragrafo 1 (`warning` finché l'obbligo non si applica il 18 febbraio 2027, `critical` da allora), l'applicabilità dei campi della batteria, la dichiarazione di prestazione ai sensi del Regolamento (UE) 2024/3110 e la coerenza della marcatura CE — più la regola trasversale secondo cui un prodotto immesso sul mercato UE da un fabbricante extra-UE necessita di un operatore stabilito nell'UE (Regolamento (UE) 2019/1020 art. 4).

**`byRegulation` raggruppa gli stessi findings per il regolamento che li ha generati**, i più gravi per primi, così una singola lacuna REACH non si legge come «l'obbligo DPP non è soddisfatto» quando invece lo è pienamente. È derivato dai findings sopra e non contraddice mai `verdict` — il verdict aggregato resta autorevole per la pubblicazione. Un regolamento assente dall'array non ha generato alcun finding, il che NON equivale ad averlo superato: compaiono solo i regolamenti con findings. I findings privi di regolamento sono raggruppati sotto `unattributed` anziché essere scartati.

**Leggete `conditionalCoverage`.** È `evaluated` quando le regole conditional sono state eseguite per questa categoria, o `static-only` quando nessuna regola conditional vincolante è ancora in vigore (oggi 8 delle 13 categorie). Quando è `static-only`, l'assenza di findings conditional NON significa che la categoria non avrà requisiti futuri — solo che nessuno è ancora giuridicamente vincolante. Un finding con tag `unverifiable_conditional` significa che una regola si applica ma i dati necessari per valutarla (es. categoria della batteria, contenuto SVHC) non sono sul passaporto — verificatelo manualmente. Sola lettura; conta come una lettura di passaporto v1 rispetto al limite giornaliero.

Parametri di percorso

  • idobbligatorio

    string (24 hex chars)

    ID del passaporto.

Header

  • Authorizationobbligatorio

    string

    `Bearer <token>` — una chiave API `tp_` (Developer → API Keys; più semplice, per server-to-server) oppure un access token OAuth 2.0 (Developer → OAuth Apps; per app autorizzate dall'utente, scoped e revocabili). La pagina Authentication contiene il flusso OAuth completo e l'elenco degli scopes.

    e.g. Bearer tp_REDACTED_xxxxxxxxxxxx

Richiesta

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

Risposta

{
  "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": []
    }
  ]
}