SettingsSwitch a account feature on or off

Switch a account feature on or off

Turns one account-wide feature flag on or off (internal client only).

ACCOUNT-WIDE CONFIGURATION WRITE. A feature is an on/off switch that changes TimeLog's behaviour for every user of the account. Examples: CurrencyMatrix (whether amounts are converted through the currency matrix, Settings service), UniqueCustomerNumber (customer-number uniqueness on customer create / update, CRM), ContractTypeIsRequired (contract creates, ProjectManagement), MandatoryComment (registration / absence comments, TimeRegistration and Salary), InvoiceMultilingual / OIOXML (customer invoice settings, CRM), MultiLegalEntities / Departments (user create rules, Organization), BillableOnTime (registration billable flag, TimeRegistration), AllocationDates (allocation dates, ProjectManagement). Only callable with a JWT issued to the OAuth client 'uitestmobile'. Setting a feature to its current value does nothing and still returns 200. A real change is validated, written, and then triggers the feature's side effects — some of which rewrite account data (see behaviour).

Use it to:

  • Internal UI / test automation (client 'uitestmobile') switching features on a test account

Not for:

  • Integrations: the operation rejects every other OAuth client (400).
  • Changing a typed account setting (number, date, enum) → PUT /v1/setting

Behaviour:

  • Idempotent.
  • Safe to retry.
  • Duplicates: Same value again = no write, no events, 200.
  • Side effect: Feature-specific pre / post actions, e.g.: StopwatchTimeTracking (pre-change handling of running timers); SalaryAccounts / approval features; SalaryGroups / SalarySpecification (may switch further features and change the system salary group's salary type); AllocationDates OFF (rewrites the dates of EVERY allocation to its task's dates — not reversible by switching back); CopyWeek (menus); NewResourcePlanner ON (publishes the Resource Planner onboarding event).
  • Side effect: Dependent settings / templates updated, e.g. export types (Pdf / Xml / MSExcel / MSWord / TextFile), invoice print-template recipient fields (CustomerSalutation / Initials / ProfessionalTitle1-2), password rules (AdvancedPasswordSecurity), project sub-contract features.
  • Side effect: Post actions run TWICE per call — e.g. the onboarding event is published twice.

See also: PUT /v1/setting

Not yet documented: behaviour → consistency; behaviour → side effects; examples (success).

curl -X PUT "https://app3.timelog.com/your-account/api/v1/feature" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "ID": 123,
  "Value": true
}'
"null"
PUT
/v1/feature
PUT
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.
Content-Typestring
Required

The media type of the request body

Options: application/json
IDinteger
Required

The feature to change, as a FeatureIdentifier member (integer in REST v1, e.g. 426 = CurrencyMatrix, 352 = UniqueCustomerNumber, 213 = AllocationDates). The enum has several hundred members; there is no REST v1 operation that lists them with their current values. - omitted — Binds to 0 = InvoiceDefaultValue_UseProjectContactForInvoiceContact — no model validation catches it. > Not yet documented: values → lookup op. > Not yet documented: values.

Format: int32
Valueboolean
Required

true = switch the feature on, false = switch it off. - omitted — false — an omitted Value switches the feature OFF. - equal to the current value — No write, no validation, no events; 200.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).

The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.

Not yet documented: how to obtain a token.

Not yet documented: token lifetime.

Body

application/json
IDinteger
Required

The feature to change, as a FeatureIdentifier member (integer in REST v1, e.g. 426 = CurrencyMatrix, 352 = UniqueCustomerNumber, 213 = AllocationDates). The enum has several hundred members; there is no REST v1 operation that lists them with their current values.

  • omitted — Binds to 0 = InvoiceDefaultValue_UseProjectContactForInvoiceContact — no model validation catches it.

Not yet documented: values → lookup op.

Not yet documented: values.

Valueboolean
Required

true = switch the feature on, false = switch it off.

  • omitted — false — an omitted Value switches the feature OFF.

  • equal to the current value — No write, no validation, no events; 200.

Responses

Success without content: HTTP 200 with the literal JSON body null. Literal JSON null — also when the value was already set (no-op).