Obligations

Update an Obligation

Changed on

Update an existing obligation. The path id identifies the obligation to update.

name, obligationTypeKey, addProperties, and removeProperties can be updated on any obligation. status, dueDate, assigneeUserId, and description can be changed only on instances (occurrences of a source obligation) and are rejected on source obligations; to edit an instance, include its sourceObligationId in the body so the path id is treated as an instance. dueDate cannot be changed on recurring instances. At least one updatable field must be supplied.

OAuth Scope required: public.obligations.updateObligations

patch/obligations/{id}

Request

  • Base URL
    https://ironcladapp.com/public/api/v1
  • URL
    https://ironcladapp.com/public/api/v1/obligations/{id}
  • Auth
    API key in header Authorization and OAuth 2
    Authorization code: https://ironcladapp.com/oauth/authorize
    Client credentials
    Token URL: https://ironcladapp.com/oauth/token scopes: public.obligations.updateObligations

Path parameters

idstring required

The ID or Ironclad ID of the Obligation to update.

Headers

x-as-user-emailstring
Example:jane.doe@test.com

Denotes the actor of the request. When used, the API will take into account this user's permissions and access. This or x-as-user-id is required when the associated token was produced from the Client Credentials grant or with legacy bearer tokens on select endpoints. A token produced from the Authorization Code grant (which is already scoped to a user) may also use this header to act as a different user in the same company, provided the token carries the identity.users.impersonate scope and the token's own user has been granted the API User Impersonation permission. A request that sends this header without both never acts as the named user; depending on the company's configuration it either proceeds as the token's own user or is rejected with a 403. More information about permissions.

x-as-user-idstring
Example:5f0375c4cdc1927a3c5edcd3

Denotes the actor of the request. When used, the API will take into account this user's permissions and access. This or x-as-user-email is required when the associated token was produced from the Client Credentials grant or with legacy bearer tokens on select endpoints. A token produced from the Authorization Code grant (which is already scoped to a user) may also use this header to act as a different user in the same company, provided the token carries the identity.users.impersonate scope and the token's own user has been granted the API User Impersonation permission. A request that sends this header without both never acts as the named user; depending on the company's configuration it either proceeds as the token's own user or is rejected with a 403. More information about permissions.

Request body

sourceObligationIdstring

Set to the instance's source obligation ID to indicate that the path id refers to a triggered instance, so its instance fields (status, dueDate, assigneeUserId, description) can be updated. Omit it to update a source obligation. Requires triggered obligations to be enabled for your account.

namestring

The name of the obligation

addPropertiesobject

A key:value map of values to set for the obligation's existing properties. This assigns values to properties already defined on the obligation's type; it cannot create new obligation properties (a schema-level change made in Ironclad, not through this API). More details on the properties can be found in the Obligation Properties article.

removePropertiesstring[]

A list of property keys to remove from the obligation. More details on the properties can be found in the Obligation Properties article.

obligationTypeKeystring[]

The key of the obligation type to be added to the obligation. Only one obligation type can be added or updated per obligation, currently. More info on obligation types can be found in the Obligation Types article.

statusstring

The status of the obligation instance. Mutable only on instances (obligations that have a source obligation) and rejected on source obligations; include sourceObligationId to target an instance. Valid values are the obligation's instance statuses; the set available depends on the obligation's type and cadence.

dueDatestring

The due date (yyyy-MM-dd). Mutable only on instances and rejected on source obligations; include sourceObligationId to target an instance. Not editable on recurring instances.

assigneeUserIdstring

The ID of the user assigned to the obligation. Mutable only on instances and rejected on source obligations; include sourceObligationId to target an instance.

descriptionstring

Human-readable description of the obligation. Mutable only on instances and rejected on source obligations; include sourceObligationId to target an instance.

Example request

{
  "removeProperties": [
    "userFacingObligations_description"
  ]
}

Response

200

idstring required

The unique identifier of the obligation

ironcladIdstring required

Readable Ironclad ID of the obligation

namestring required

The name of the obligation

propertiesRecordProperties required

The record properties associated with the record

lastUpdatedstring

The last updated date of the obligation

namedTypeIdsstring[]

The unique identifiers of the types associated with the obligation. These IDs are tied with the Named Type of obligations, like 'Breach Notice', 'Compliance' and so on.

parentReadableIdstring

The parent readable id of the obligation

parentRecordNamestring

The parent record name of the obligation

isActiveboolean

Whether the user-facing obligation is active. Occurrences inherit their source obligation's active state. Read-only and present when the obligation lifecycle feature is enabled.

status'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'WAIVED' | 'CANCELLED' | 'COMPLIANT' | 'NON_COMPLIANT'

The status of the obligation.

descriptionstring

Human-readable description of the obligation.

dueDatestring

The due date of the obligation (yyyy-MM-dd).

assigneeUserIdstring

The ID of the user assigned to the obligation.

completedAtstring date-time

The ISO 8601 timestamp at which the obligation entered the COMPLETED status. Present only while the obligation is COMPLETED.

sourceObligationIdstring uuid

The ID of the source obligation.

sourceRelationshipType'RECURRING' | 'TRIGGERED'

How the source obligation is related. RECURRING for obligations created by a recurring trigger, TRIGGERED for obligations created by a condition. Only present on obligations with a source (has a sourceObligationId).

triggerSource'API' | 'MANUAL'

The originating source of a triggered obligation. API when created through the public API, MANUAL when created in-product. Only present on obligations with a sourceRelationshipType of TRIGGERED.

obligationType'SOURCE' | 'OCCURRENCE'

Distinguishes a source obligation from an occurrence. SOURCE obligations carry a cadence; OCCURRENCE obligations carry a sourceObligationId and sourceRelationshipType. Read-only.

cadence'ONE_TIME' | 'RECURRING' | 'TRIGGERED' | 'PERPETUAL'

The recurrence cadence of a source obligation. Only present on SOURCE obligations. Read-only; not accepted on create or update.

Example response

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "ironcladId": "OB-1",
  "name": "Obligation XYZ",
  "lastUpdated": "2021-01-01T00:00:00Z",
  "namedTypeIds": [
    "eda20988-6b99-404b-99dc-866b84b63883"
  ],
  "parentReadableId": "IC-1",
  "parentRecordName": "Parent Record",
  "isActive": true,
  "status": "IN_PROGRESS",
  "description": "Deliver the signed SLA report to the counterparty.",
  "dueDate": "2026-08-01",
  "assigneeUserId": "5f9b1b3b1c9d440000a1b2c3",
  "completedAt": "2026-07-15T12:00:00.000Z",
  "sourceObligationId": "123e4567-e89b-12d3-a456-426614174000",
  "sourceRelationshipType": "TRIGGERED",
  "triggerSource": "API",
  "obligationType": "SOURCE",
  "cadence": "RECURRING"
}

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status