Relationship Intelligence

They accepted records that the other party accepted this promise. The promise stays open.

post/v1/relationships/{relationshipId}/commitments/{commitmentId}/transitions

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /v1/relationships/{relationshipId}/commitments/{commitmentId}/transitions
  • Auth: HTTP bearer

Path parameters

relationshipIdstring uuid required

Relationship id.

Example:9c8dfa9b-a7b2-46ea-982c-622a914c00e5
commitmentIdstring uuid required

Commitment id.

Example:8b8dfa9b-a7b2-46ea-982c-622a914c00e5

Request body

actionstring

Replacement action for renegotiation.

blockerstring

Blocker detail.

dueAtstring date-time

Replacement due date.

evidenceRefsstring[]

Evidence references. An omitted list is stored as this transition.

idempotencyKeystring required

Stable source event id.

kind'internally_confirmed' | 'offered' | 'accepted' | 'disputed' | 'blocked' | 'unblocked' | 'corrected' | 'due_date_changed' | 'renegotiated' | 'fulfilled' | 'missed' | 'waived' | 'cancelled' | 'superseded' required

Event kind.

reasonstring

Optional reason.

Example request

{
  "action": "Send revised packet.",
  "blocker": "Waiting on legal.",
  "dueAt": "2026-08-07T17:00:00Z",
  "evidenceRefs": [
    "user-transition:commitment-queue:accepted:8b8dfa9b-a7b2-46ea-982c-622a914c00e5:v3"
  ],
  "idempotencyKey": "commitment-queue:accepted:8b8dfa9b-a7b2-46ea-982c-622a914c00e5:v3",
  "kind": "accepted",
  "reason": "Reviewed from the Commitment Queue (accepted)."
}

Response

The promise is accepted and still open.

acceptance'candidate' | 'internally_confirmed' | 'offered' | 'accepted' | 'disputed'

Acceptance state.

beneficiaryParticipantRefstring

Promise beneficiary.

blockerstring

Current blocker.

completedAtstring date-time nullable

Completion time.

confidencenumber required

Extraction confidence.

counterpartyParticipantRefstring

Promise counterparty.

currentEventVersioninteger

Current transition version.

direction'promised_by_me' | 'promised_by_them' | 'mutual' required

Who owes the commitment.

dueAtstring date-time nullable

Due time.

duePhrasestring

Due condition as stated.

dueTimezonestring

Timezone used to resolve the due date.

idstring uuid required

Stable UUID primary key.

ownerParticipantRefstring

Promise owner.

sourcePhrasestring

Exact source phrase.

status'open' | 'fulfilled' | 'missed' | 'waived' | 'cancelled' | 'superseded' required

Lifecycle/status slug. Subscription rows use billing states; background task runs use queued/running/succeeded/failed/stopped.

textstring required

Commitment text.

userConfirmedboolean required

Whether a human confirmed it.

Example response

{
  "acceptance": "internally_confirmed",
  "beneficiaryParticipantRef": "customer:acme",
  "blocker": "Waiting on security review.",
  "completedAt": "2026-07-22T17:00:00Z",
  "confidence": 0.94,
  "counterpartyParticipantRef": "jordan@example.com",
  "currentEventVersion": 3,
  "direction": "promised_by_me",
  "dueAt": "2026-07-22T17:00:00Z",
  "duePhrase": "by Friday",
  "dueTimezone": "America/Los_Angeles",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "ownerParticipantRef": "alex@example.com",
  "sourcePhrase": "I will send it by Friday.",
  "status": "active",
  "text": "Send the security packet."
}

Changes

    • breaking

      removed the success response with the status

    • info

      added the success response with the status