/api/v1/passports/{id}/place-on-marketInviare un passaporto della batteria all'API di un registro EN 18222
Invia un passaporto della batteria pubblicato a un registro che accetta la chiamata registerDPP della EN 18222, con l'accesso all'API del registro configurato per il vostro account (una chiave API o un bearer token), quindi la registrazione avviene con le vostre credenziali. Solo passaporti di batterie.
Non è la via per l'EU DPP Registry. Il registro della Commissione non accetta questa chiamata né queste credenziali: l'operatore economico si registra lì sul sito web del registro, con il proprio EU Login. Per quella via, ottenete l'indirizzo da incollare nel modulo del registro (POST /api/v1/passports/{id}/registry-upi) o un file di caricamento (POST /api/v1/registry/upload-file), poi annotate la risposta del registro (POST /api/v1/passports/{id}/registration).
Solo piani a pagamento (402 su Free): un passaporto Free scade dopo 30 giorni, e un passaporto registrato che smette di risolversi compromette la registrazione.
Asincrono. La chiamata verifica il passaporto, imposta placeOnMarketStatus su placing e risponde subito 202 con { passport, passportId, status: "placing", dppId }. La chiamata al registro segue in background, con nuovi tentativi automatici finché il registro non è raggiungibile. Leggete il passaporto per seguirne l'esito: placed significa che il registro lo ha accettato (placedOnMarketAt, e registrationId quando il registro ne ha restituito uno) e attiva il webhook passport.placed_on_market; rejected significa che il registro lo ha rifiutato o non era raggiungibile una volta esauriti i tentativi (registrationRejectedAt, registrationRejectionReason) e attiva passport.placement_rejected. Per riprovare, eliminate la causa e richiamate questo endpoint — un passaporto rifiutato può essere inviato di nuovo, e il nuovo tentativo cancella il rifiuto precedente. Se il passaporto non ha ancora un DPP ID, ne riceve uno, restituito come dppId.
I rifiuti rispondono 409 con un codice, verificati in quest'ordine: not_a_battery, not_published (solo un passaporto pubblicato può essere inviato), already_placed (in corso o già immesso), operator_id_missing (l'account non ha un identificativo dell'operatore economico; impostatelo nelle impostazioni dell'azienda), registry_not_configured (per l'account non è configurato alcun accesso all'API di un registro; un amministratore lo configura nella dashboard, in Settings → EN 18222 registry API), registry_host_not_allowed (TracePass non invia registrazioni all'indirizzo del registro configurato per l'account; verificate l'URL del registro in Settings → EN 18222 registry API) e registry_not_ready, il cui findings[] elenca i risultati della verifica di prontezza per il registro che lo impediscono (findingDetails[] riporta gli stessi risultati con la loro gravità, prima quelli bloccanti) — la verifica di prontezza per il registro li restituisce in forma strutturata.
Dopo l'immissione l'operatore è bloccato: una scrittura su una parte che cambierebbe un operatorIdentifier o un facilityIdentifier memorizzato risponde 409 operator_locked. Per correggerlo, contrassegnate il passaporto per l'eliminazione e createne uno nuovo. Nessun corpo della richiesta. Conta come una scrittura v1, e solo quando la chiamata è accettata. Rispetta Idempotency-Key.
Parametri di percorso
- idobbligatorio
string (24 hex chars)
ID di un passaporto 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.
Richiesta
curl -sS -X POST \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/place-on-market \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Idempotency-Key: 3f1c9a52-8b7e-4d6a-9f0e-2c4b6d8e0a13"Risposta
{
"passport": {
"_id": "6650b2c3d4e5f6a7b8c9d0e1",
"status": "published",
"placeOnMarketStatus": "placing"
},
"passportId": "6650b2c3d4e5f6a7b8c9d0e1",
"status": "placing",
"dppId": "https://id.tracepass.eu/dpp/7b1e4c2a-5f3d-4e8a-9c6b-2d1f0a3e5b7c"
}