/api/v1/passports/{id}/registrationЗаписване на резултата от EU DPP Registry за паспорт на батерия
Записва това, което икономическият оператор съобщава от уебсайта на EU DPP Registry, за един публикуван паспорт на батерия. TracePass записва изявлението на оператора и не го проверява в регистъра. Тялото има една от две форми според environment.
environment: "production" — паспортът е регистриран в производствения регистър. Задава placeOnMarketStatus: "placed", registrationMode: "website", placedOnMarketAt и, ако го изпратите, registrationId (идентификаторът на регистрацията в регистъра, най-много 200 знака). placedOnMarketAt е датата на пускане на пазара във формат YYYY-MM-DD: по подразбиране днешната, не в бъдещето и не преди първото публикуване на паспорта. Страните на оператора и съоръжението се заключват (запис на страна, който би променил съхранен идентификатор, връща 409 operator_locked), резервното копие на паспорта се поставя на опашка и се изпраща webhook passport.placed_on_market.
environment: "acceptance" — тест в приемната среда на регистъра: result е passed или failed, като при неуспех се добавя кодът за грешка на регистъра в errorCode (най-много 100 знака, напр. SEMANTIC_VALIDATION_UNAVAILABLE). Тестът няма правно действие и не променя в паспорта нищо освен registryAcceptanceTest.
Откази: 400 при тяло, което не минава валидиране, или при отхвърлена дата (invalid_date, когато не е YYYY-MM-DD, date_in_future, date_before_publication, registration_id_too_long); 409 при not_a_battery, not_published или, за производствената среда, already_registered (паспортът вече е пуснат на пазара или е в процес на изпращане към регистър по EN 18222). Погрешен запис се отменя с DELETE /api/v1/passports/{id}/registration.
Само за платени планове (402 при Free). OAuth извикванията трябва да са от името на администратор или собственик. Връща паспорта след записа. Брои се като едно v1 записване, и то само когато извикването е успешно. Поддържа Idempotency-Key.
Параметри в пътя
- 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
- Idempotency-Key
string
UUID v4.
Полета в тялото
- environmentзадължително
"production" | "acceptance"
От коя среда на регистъра е резултатът.
acceptanceе тест без правно действие.e.g. production
- placedOnMarketAt
string (YYYY-MM-DD)
Само за производствената среда. Датата на пускане на пазара. По подразбиране днешната; не в бъдещето и не преди първото публикуване на паспорта.
e.g. 2027-03-01
- registrationId
string (≤ 200 chars)
Само за производствената среда. Идентификаторът на регистрацията в регистъра, ако го имате.
e.g. URI-000-00-000
- result
"passed" | "failed"
Само за
acceptanceи там е задължително. Резултатът от теста.e.g. failed
- errorCode
string (≤ 100 chars)
Само за
acceptance. Кодът за грешка на регистъра при неуспешен тест.e.g. SEMANTIC_VALIDATION_UNAVAILABLE
Заявка
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" }'Отговор
{
"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"
}
}