Skip to content

agreements

People module · 5 operations

List agreement rows

GET/agreements

A contractor MSA, offer letter or crew agreement with token signing. A signed agreement cannot be revoked or unsigned. Returns a cursor page of agreement rows the caller may see. The default order is `created_at` ascending. Supports sparse fieldsets and the filter grammar.

Create an agreement

POST/agreements

A contractor MSA, offer letter or crew agreement with token signing. A signed agreement cannot be revoked or unsigned. Creates an agreement. Requires `Idempotency-Key`; a replay returns the original response. The organization is derived from the credential or the parent row, never from the body.

Get an agreement

GET/agreements/{id}

A contractor MSA, offer letter or crew agreement with token signing. A signed agreement cannot be revoked or unsigned. Returns one agreement with its `ETag`. A agreement the caller may not see returns 404.

Update an agreement

PATCH/agreements/{id}

A contractor MSA, offer letter or crew agreement with token signing. A signed agreement cannot be revoked or unsigned. Updates the fields sent; omitted fields are unchanged. Requires `If-Match` with the current `ETag`: a stale tag returns 412 and a missing tag returns 428.

Sign an agreement

POST/agreements/{id}/sign

The person the agreement names signs it with their typed name and the SHA-256 of the text they read. A signed agreement cannot be revoked or unsigned; a second signature, a changed text or an agreement that is not Sent is refused (422). Requires `Idempotency-Key`; a replay returns the original response. A rule that refuses the request returns 422 with `refusal` and `reason`.