/api/v1/passports/{id}/condition-flagsSet condition flags
Write one or more condition flags to a passport. The request body is Record<flagKey, boolean | null> — true or false sets the flag; null clears it. Only keys registered for the passport's category are accepted; unknown keys return 400 with a list of valid keys for that category.
Warning: approving a flag can make previously optional fields required. For battery passports, hasBMS: true gates the BMS-related Annex XIII 4(b) fields; rechargeable: true activates the charge-cycle and state-of-health fields under Art. 10(1); isStationaryBess: true activates the Annex VII Part A and B fields. If the passport is already published and those fields are empty, the next compliance check will raise conditional_missing critical findings — fix those fields before or immediately after setting the flag or the passport will fail republication.
v1 writes default to status: "approved" (trusted integration). Each flag change is written to the flag's internal audit trail with "via API key <prefix>". The full audit trail is visible in the dashboard but stripped from this response. Supports Idempotency-Key. An alternate addressing form exists at PATCH /api/v1/passports/by-serial/{serial}/condition-flags with the same body and response shapes. Counts as one v1 write against the daily cap.
Path parameters
- idrequired
string (24 hex chars)
Passport ID.
Headers
- Authorizationrequired
string
Bearer <token>— either atp_API key (Developer → API Keys; simplest, for server-to-server) or an OAuth 2.0 access token (Developer → OAuth Apps; for user-authorized apps, scoped + revocable). The Authentication page has the full OAuth flow and scope list.e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Idempotency-Key
string
Optional idempotency key (UUID v4 or any opaque string ≤ 64 chars). Same key + same body replays the cached response for 24 h; same key + different body returns 422.
Request
curl -sS -X PATCH \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/condition-flags \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"hasBMS": true, "rechargeable": true}'Response
{
"passportId": "6650b2c3d4e5f6a7b8c9d0e1",
"conditionProfile": {
"hasBMS": {
"value": true,
"status": "approved",
"source": "api:tp_abc123"
},
"rechargeable": {
"value": true,
"status": "approved",
"source": "api:tp_abc123"
}
},
"version": 4
}