Pairings

Answer a pending phase-change request — the other half of the mutual-consent handshake on POST /api/pairings/update_phase. Confirm applies the proposed phase to the pairing; dismiss leaves it where it is and notifies the requester; cancel withdraws the request before it is answered. Ownership is enforced against the request row: only the COUNTERPARTY can confirm or dismiss, only the REQUESTER can cancel — a phase decision is never anonymous, so session_id is required. A replay finds no pending request and changes nothing (409), and neither confirm nor dismiss can be applied twice. An unanswered request expires on its own (default TTL 14 days, CONSENT_REQUEST_TTL_DAYS): it is swept lazily on every read/write path that touches it, so the lock can never outlive its window even if no page is ever opened; the requester is notified that their proposal lapsed, and answering it afterwards returns 409 with reason expired.

post/api/pairings/phase-request

Request

  • Base URL: https://www.capepartners.fr
  • URL: https://www.capepartners.fr/api/pairings/phase-request
  • Auth: none declared

Request body

pair_idstring
request_idinteger
decision'confirm' | 'dismiss' | 'cancel' required
session_idstring required

Workspace session UUID of the answering party (required).

Response

OK

okboolean
decision'confirm' | 'dismiss' | 'cancel'
status'confirmed' | 'dismissed' | 'cancelled' | 'expired'
pair_idstring
phasestring

The pairing phase after the decision (unchanged for dismiss/cancel/expired).

reason'expired' | 'already_resolved' | 'null' nullable

'expired' when the request lapsed unanswered instead of being decided.

Changes

No recorded changes to this operation across all 1 revision of this API.