TracePass
Паспорти

Записване на резултата от EU DPP Registry за паспорт на батерия

Записва това, което икономическият оператор съобщава от уебсайта на EU DPP Registry, за един публикуван паспорт на батерия. TracePass записва изявлението на оператора и не го проверява в регистъра. Тялото има една от две форми според environment.

POST/api/v1/passports/{id}/registration
Изтегли OpenAPI 3.1
POST/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"
  }
}