/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 APItp_(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"
}
}