Update channels, rules and quiet hours
const url = 'https://api.flotera.com/api/v1/notifications/settings';const options = { method: 'PUT', headers: { cookie: '__Host-erm_session=<__Host-erm_session>', 'Content-Type': 'application/json' }, body: '{"rules":{"additionalProperty":{"telegram":true,"email":true}},"quiet_hours":{"enabled":true,"from":"example","to":"example"},"channels":{"telegram":{"status":"connected"},"email":{"status":"connected","address":"hello@example.com"}}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.flotera.com/api/v1/notifications/settings \ --header 'Content-Type: application/json' \ --cookie __Host-erm_session=<__Host-erm_session> \ --data '{ "rules": { "additionalProperty": { "telegram": true, "email": true } }, "quiet_hours": { "enabled": true, "from": "example", "to": "example" }, "channels": { "telegram": { "status": "connected" }, "email": { "status": "connected", "address": "hello@example.com" } } }'Partial update semantics: only provided rules/channels/quiet-hours
fields change. Email rules are accepted only for events listed in
crit_event_keys (422 otherwise). Setting a channel status to
connected resumes a paused-but-linked channel; the first connection
goes through the dedicated link/verification flow.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Idempotency key, 1–128 ASCII, unique per (tenant_id, operation, key) for at least 24 hours. Retrying with the same body replays the stored response; a different body returns 409 idempotency_conflict.
Optimistic concurrency guard on the resource version; mismatched tag returns 412.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
object
object
object
object
Becomes connected only after the verification flow completes.
Responses
Section titled “Responses”Updated settings.
object
object
object
Masked recipient (telegram username / partially hidden email); never the raw PII beyond what the owner entered.
RFC 3339 UTC with microsecond precision, or null.
object
Masked recipient (telegram username / partially hidden email); never the raw PII beyond what the owner entered.
RFC 3339 UTC with microsecond precision, or null.
Matrix keyed by event category (rental/temp/error/offline/price/maint/balance/payment/weekly).
object
object
object
Local time HH:MM in the account timezone.
Local time HH:MM in the account timezone.
Email is allowed only for these categories; critical deliveries ignore quiet hours.
Monotonic resource version used for ETag/If-Match.
Example
{ "channels": { "telegram": { "kind": "telegram", "status": "connected" }, "email": { "kind": "telegram", "status": "connected" } }}Missing/invalid credentials (code=unauthorized).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Authenticated but not permitted. code=forbidden — role/scope mismatch; code=feature_not_entitled — the plan does not include the capability; code=account_frozen — the account is frozen and this operation is declared x-ermeon-frozen: deny. The three are deliberately distinct: only the last one is fixed by a top-up (13 §5.6).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}State conflict (code=conflict, idempotency_conflict, offline_queue_full or online_queue_full).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}If-Match entity tag does not match the current version.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Request failed validation (code=validation_failed), with per-field errors.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}