# API reference

A small, deterministic API: propose, counter, accept — and read the record.

## POST /v1/negotiations

Open a negotiation against a template version with a connected counterparty.

## GET /v1/negotiations/{id}

Current state, sequence number and latest terms.

## POST /v1/negotiations/{id}/proposals

Propose or counter terms. Values are validated against the template schema and your policy rules.

## POST /v1/negotiations/{id}/accept

Accept the latest terms. Returns 202 held_at_gate when a threshold applies.

## GET /v1/negotiations/{id}/record

The ordered, attributed audit record; ?format=pdf for the evidence pack.

## GET /v1/templates

The template library with version streams.

## GET /v1/commitments/{id}

Gate status of a held commitment: reason, governor, window.

## POST /v1/webhooks

Subscribe to lifecycle events. Deliveries are HMAC-signed.

## Accepting above a threshold

```http
POST /v1/negotiations/neg_7f3a92/accept
→ 202 Accepted
{
  "status": "pending-approval",
  "commitment": "com_2091",
  "held_because": ["value_threshold", "irreversible"],
  "routed_to": "governor:r.osei",
  "window_closes": "2026-07-24T09:01:55Z",
  "sequence": 14
}
```
