/api/v1/passports/{id}/registrationAnnotare l'esito dell'EU DPP Registry per un passaporto della batteria
Annota ciò che l'operatore economico riporta dal sito web dell'EU DPP Registry per un passaporto della **batteria** pubblicato. TracePass annota la dichiarazione dell'operatore e non la verifica presso il registro. Il corpo ha una di due forme, scelta tramite `environment`.
**`environment: "production"`** — il passaporto è registrato nel registro di produzione. Imposta `placeOnMarketStatus: "placed"`, `registrationMode: "website"`, `placedOnMarketAt` e, se lo inviate, `registrationId` (l'identificativo di registrazione del registro, al massimo 200 caratteri). `placedOnMarketAt` è la data di immissione sul mercato nel formato `YYYY-MM-DD`: per impostazione predefinita oggi, non nel futuro e non prima della prima pubblicazione del passaporto. Le parti operatore e stabilimento vengono bloccate (una scrittura su una parte che cambierebbe un identificativo memorizzato risponde 409 `operator_locked`), la copia di riserva del passaporto viene messa in coda e si attiva il webhook `passport.placed_on_market`.
**`environment: "acceptance"`** — un test nell'ambiente di accettazione del registro: `result` è `passed` o `failed`, con il codice di errore del registro in `errorCode` in caso di esito negativo (al massimo 100 caratteri, ad es. `SEMANTIC_VALIDATION_UNAVAILABLE`). Un test non ha effetti giuridici e non cambia nulla nel passaporto tranne `registryAcceptanceTest`.
**Rifiuti:** `400` per un corpo che non supera la validazione o una data respinta (`invalid_date` se non è `YYYY-MM-DD`, `date_in_future`, `date_before_publication`, `registration_id_too_long`); `409` per `not_a_battery`, `not_published` o, per la produzione, `already_registered` (il passaporto è già immesso sul mercato o in corso di invio a un registro EN 18222). Un'annotazione errata si annulla con `DELETE /api/v1/passports/{id}/registration`.
**Solo piani a pagamento** (`402` su Free). Le chiamate OAuth devono agire per un amministratore o un proprietario. Restituisce il passaporto dopo l'annotazione. Conta come una scrittura v1, e solo quando la chiamata riesce. Rispetta `Idempotency-Key`.
Parametri di percorso
- idobbligatorio
string (24 hex chars)
ID di un passaporto della batteria pubblicato.
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
- Idempotency-Key
string
UUID v4.
Campi del corpo
- environmentobbligatorio
"production" | "acceptance"
Da quale ambiente del registro proviene l'esito. `acceptance` è un test senza effetti giuridici.
e.g. production
- placedOnMarketAt
string (YYYY-MM-DD)
Solo produzione. La data di immissione sul mercato. Predefinita: oggi; non nel futuro, non prima della prima pubblicazione del passaporto.
e.g. 2027-03-01
- registrationId
string (≤ 200 chars)
Solo produzione. L'identificativo di registrazione del registro, se lo avete.
e.g. URI-000-00-000
- result
"passed" | "failed"
Solo `acceptance`, e lì obbligatorio. L'esito del test.
e.g. failed
- errorCode
string (≤ 100 chars)
Solo `acceptance`. Il codice di errore del registro per un test non superato.
e.g. SEMANTIC_VALIDATION_UNAVAILABLE
Richiesta
curl -sS -X POST \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/registration \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 9e3b6c28-1f7a-4d52-b0e4-6a8c2d1f5b97" \
-d '{ "environment": "production", "placedOnMarketAt": "2027-03-01", "registrationId": "URI-000-00-000" }'Risposta
{
"passport": {
"_id": "6650b2c3d4e5f6a7b8c9d0e1",
"status": "published",
"placeOnMarketStatus": "placed",
"registrationMode": "website",
"placedOnMarketAt": "2027-03-01T00:00:00.000Z",
"registrationId": "URI-000-00-000",
"registryUpi": "https://id.tracepass.eu/01/04012345000016/21/A1B2C3",
"registrationPreparedAt": "2027-02-26T09:12:00.000Z",
"registrationPreparedVia": "form"
}
}