Skip to content

Record an external lifecycle signal.

POST
/api/admin/field-mapping/lifecycle-signals
Code sample: Shell / cURL
curl --request POST \
--url https://auth.example.com/api/admin/field-mapping/lifecycle-signals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "sourceType": "scim", "sourceId": "workday", "sourceEventId": "evt_123", "signalType": "scim_active_false", "targetType": "account", "targetId": "account_123" }'

Records an authoritative lifecycle signal from an external source and evaluates the resulting account, membership, entitlement, or permission decision. Duplicate source events are handled idempotently. An account suspension returns success only after the canonical account result is confirmed. Its first accepted target and observation time remain fixed across retries. A conflicting replay, changed account placement, a newer lifecycle change, or an older event without sufficient execution evidence returns 409; the event is retained without reapplying a new suspension. Confirmed completed events remain idempotent after later lifecycle changes. Cached HTTP responses also require stored completion evidence; missing evidence returns 409 without reapplying the suspension. Storage failures or an unconfirmed result return 500. Account targets use the internal account ID; optional accountId and subjectId must match the canonical account and primary subject. Session logout delivery follows the existing best-effort suspension behavior.

Idempotency-Key
string

Idempotency key for state-changing operations that support replay protection.

Media type application/json
object
sourceType
required
string
sourceId
required
string
sourceEventId
required
string
sourceTimestamp

For an account suspension, a nonnegative safe integer Unix timestamp in milliseconds.

integer | null
bindingVersion
string | null
signalType
required
string
Allowed values: scim_active_false scim_group_removed csv_diff_removed claim_disappeared
subjectId
string | null
accountId
string | null
targetType
required
string
Allowed values: account group_membership entitlement permission
targetId
required
string
payloadRef
string | null
ownership
object | null
key
additional properties
Example
{
"sourceType": "scim",
"sourceId": "workday",
"sourceEventId": "evt_123",
"signalType": "scim_active_false",
"targetType": "account",
"targetId": "account_123"
}

Lifecycle signal processing response.

Media type application/json
object
result
required
object
signalEventId
required
string
decision
required
string
reasonCodes
required
Array<string>
idempotent
boolean
key
additional properties
key
additional properties
Example generated
{
"result": {
"signalEventId": "example",
"decision": "example",
"reasonCodes": [
"example"
],
"idempotent": true
}
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}

Error response.

Media type application/json
object
error
string
message
string
error_description
string
key
additional properties
Example generated
{
"error": "example",
"message": "example",
"error_description": "example"
}