Create Agreement Signature

POST /agreements/{agreement_ref}/signatures

Attempts to create the actor's agreement signature and returns either the created signature or a verification challenge.


Conventions

Authentication

All endpoints require a Bearer token. Pass it in the Authorization header as Bearer <token>. Tokens are issued from the API settings page in your workspace.

Base URL

All paths are relative to https://api.allsign.app. The spec includes full paths; strip the base when constructing requests.

Versioning

The current version is 0.1.0. Breaking changes are documented in the Changelog and announced before taking effect.

Specification

The API follows OpenAPI Specification 3.x. All documentation on this page is generated directly from the spec.


Example

Bash
curl "https://api.allsign.app/agreements/{agreement_ref}/signatures" \
-X POST \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
--data-raw '{}'

Request

Request Path
agreement_ref

Public agreement reference.

stringrequired
Request Body
{
  "legal_affirmed": true
}
legal_affirmed

booleanoptional

Responses

200 OK

Agreement signing result.

{
  "data": {
    "agreement": {
      "description": "",
      "executed_at": "2026-01-01T00:00:00Z",
      "intent": "",
      "name": "",
      "priority": "",
      "rejected_at": "2026-01-01T00:00:00Z",
      "rejected_reason": "",
      "ref": "00000000-0000-4000-8000-000000000000",
      "requires_2fa": true,
      "requires_rcp": true,
      "sections": [
        {
          "description": "",
          "name": "",
          "position": "",
          "ref": "00000000-0000-4000-8000-000000000000",
          "terms": [
            {
              "description": "",
              "has_review_history": true,
              "locked": true,
              "name": "",
              "negotiable": true,
              "pending_counter_proposal": true,
              "position": "",
              "priority": "",
              "ref": "00000000-0000-4000-8000-000000000000"
            }
          ]
        }
      ],
      "status": "",
      "terms": [
        {
          "description": "",
          "has_review_history": true,
          "locked": true,
          "name": "",
          "negotiable": true,
          "pending_counter_proposal": true,
          "position": "",
          "priority": "",
          "ref": "00000000-0000-4000-8000-000000000000"
        }
      ]
    }
  }
}
data

objectrequired
data.agreement

Canonical agreement resource.

objectrequired
data.agreement.description

stringnullrequired
data.agreement.executed_at

string,null (date-time)required
data.agreement.intent

stringrequired
data.agreement.name

stringrequired
data.agreement.priority

stringrequired
data.agreement.rejected_at

string,null (date-time)required
data.agreement.rejected_reason

stringnullrequired
data.agreement.ref

Public stable resource reference.

string (uuid)required
data.agreement.requires_2fa

booleanrequired
data.agreement.requires_rcp

booleanrequired
data.agreement.sections

object[]required
data.agreement.sections[].description

stringnullrequired
data.agreement.sections[].name

stringrequired
data.agreement.sections[].position

integernullrequired
data.agreement.sections[].ref

Public stable resource reference.

string (uuid)required
data.agreement.sections[].terms

object[]required
data.agreement.sections[].terms[].description

stringnullrequired
data.agreement.sections[].terms[].has_review_history

booleanrequired
data.agreement.sections[].terms[].locked

booleanrequired
data.agreement.sections[].terms[].name

stringrequired
data.agreement.sections[].terms[].negotiable

booleanrequired
data.agreement.sections[].terms[].pending_counter_proposal

booleanrequired
data.agreement.sections[].terms[].position

integernullrequired
data.agreement.sections[].terms[].priority

stringrequired
data.agreement.sections[].terms[].ref

Public stable resource reference.

string (uuid)required
data.agreement.status

stringrequired
data.agreement.terms

object[]required
data.signature

Canonical agreement signature record.

objectoptional
data.signature.created_at

string (date-time)required
data.signature.ref

Public stable resource reference.

string (uuid)required
data.signature.requires_2fa

booleanrequired
data.verification

Signature or signing authentication verification challenge.

objectoptional
data.verification.channel

stringnullrequired
data.verification.expires_at

string,null (date-time)required
data.verification.ref

Public stable resource reference.

string (uuid)required
201 Created

Agreement signing result.

{
  "data": {
    "agreement": {
      "description": "",
      "executed_at": "2026-01-01T00:00:00Z",
      "intent": "",
      "name": "",
      "priority": "",
      "rejected_at": "2026-01-01T00:00:00Z",
      "rejected_reason": "",
      "ref": "00000000-0000-4000-8000-000000000000",
      "requires_2fa": true,
      "requires_rcp": true,
      "sections": [
        {
          "description": "",
          "name": "",
          "position": "",
          "ref": "00000000-0000-4000-8000-000000000000",
          "terms": [
            {
              "description": "",
              "has_review_history": true,
              "locked": true,
              "name": "",
              "negotiable": true,
              "pending_counter_proposal": true,
              "position": "",
              "priority": "",
              "ref": "00000000-0000-4000-8000-000000000000"
            }
          ]
        }
      ],
      "status": "",
      "terms": [
        {
          "description": "",
          "has_review_history": true,
          "locked": true,
          "name": "",
          "negotiable": true,
          "pending_counter_proposal": true,
          "position": "",
          "priority": "",
          "ref": "00000000-0000-4000-8000-000000000000"
        }
      ]
    }
  }
}
data

objectrequired
data.agreement

Canonical agreement resource.

objectrequired
data.agreement.description

stringnullrequired
data.agreement.executed_at

string,null (date-time)required
data.agreement.intent

stringrequired
data.agreement.name

stringrequired
data.agreement.priority

stringrequired
data.agreement.rejected_at

string,null (date-time)required
data.agreement.rejected_reason

stringnullrequired
data.agreement.ref

Public stable resource reference.

string (uuid)required
data.agreement.requires_2fa

booleanrequired
data.agreement.requires_rcp

booleanrequired
data.agreement.sections

object[]required
data.agreement.sections[].description

stringnullrequired
data.agreement.sections[].name

stringrequired
data.agreement.sections[].position

integernullrequired
data.agreement.sections[].ref

Public stable resource reference.

string (uuid)required
data.agreement.sections[].terms

object[]required
data.agreement.sections[].terms[].description

stringnullrequired
data.agreement.sections[].terms[].has_review_history

booleanrequired
data.agreement.sections[].terms[].locked

booleanrequired
data.agreement.sections[].terms[].name

stringrequired
data.agreement.sections[].terms[].negotiable

booleanrequired
data.agreement.sections[].terms[].pending_counter_proposal

booleanrequired
data.agreement.sections[].terms[].position

integernullrequired
data.agreement.sections[].terms[].priority

stringrequired
data.agreement.sections[].terms[].ref

Public stable resource reference.

string (uuid)required
data.agreement.status

stringrequired
data.agreement.terms

object[]required
data.signature

Canonical agreement signature record.

objectoptional
data.signature.created_at

string (date-time)required
data.signature.ref

Public stable resource reference.

string (uuid)required
data.signature.requires_2fa

booleanrequired
data.verification

Signature or signing authentication verification challenge.

objectoptional
data.verification.channel

stringnullrequired
data.verification.expires_at

string,null (date-time)required
data.verification.ref

Public stable resource reference.

string (uuid)required
202 Response

Agreement signing result.

{
  "data": {
    "agreement": {
      "description": "",
      "executed_at": "2026-01-01T00:00:00Z",
      "intent": "",
      "name": "",
      "priority": "",
      "rejected_at": "2026-01-01T00:00:00Z",
      "rejected_reason": "",
      "ref": "00000000-0000-4000-8000-000000000000",
      "requires_2fa": true,
      "requires_rcp": true,
      "sections": [
        {
          "description": "",
          "name": "",
          "position": "",
          "ref": "00000000-0000-4000-8000-000000000000",
          "terms": [
            {
              "description": "",
              "has_review_history": true,
              "locked": true,
              "name": "",
              "negotiable": true,
              "pending_counter_proposal": true,
              "position": "",
              "priority": "",
              "ref": "00000000-0000-4000-8000-000000000000"
            }
          ]
        }
      ],
      "status": "",
      "terms": [
        {
          "description": "",
          "has_review_history": true,
          "locked": true,
          "name": "",
          "negotiable": true,
          "pending_counter_proposal": true,
          "position": "",
          "priority": "",
          "ref": "00000000-0000-4000-8000-000000000000"
        }
      ]
    }
  }
}
data

objectrequired
data.agreement

Canonical agreement resource.

objectrequired
data.agreement.description

stringnullrequired
data.agreement.executed_at

string,null (date-time)required
data.agreement.intent

stringrequired
data.agreement.name

stringrequired
data.agreement.priority

stringrequired
data.agreement.rejected_at

string,null (date-time)required
data.agreement.rejected_reason

stringnullrequired
data.agreement.ref

Public stable resource reference.

string (uuid)required
data.agreement.requires_2fa

booleanrequired
data.agreement.requires_rcp

booleanrequired
data.agreement.sections

object[]required
data.agreement.sections[].description

stringnullrequired
data.agreement.sections[].name

stringrequired
data.agreement.sections[].position

integernullrequired
data.agreement.sections[].ref

Public stable resource reference.

string (uuid)required
data.agreement.sections[].terms

object[]required
data.agreement.sections[].terms[].description

stringnullrequired
data.agreement.sections[].terms[].has_review_history

booleanrequired
data.agreement.sections[].terms[].locked

booleanrequired
data.agreement.sections[].terms[].name

stringrequired
data.agreement.sections[].terms[].negotiable

booleanrequired
data.agreement.sections[].terms[].pending_counter_proposal

booleanrequired
data.agreement.sections[].terms[].position

integernullrequired
data.agreement.sections[].terms[].priority

stringrequired
data.agreement.sections[].terms[].ref

Public stable resource reference.

string (uuid)required
data.agreement.status

stringrequired
data.agreement.terms

object[]required
data.signature

Canonical agreement signature record.

objectoptional
data.signature.created_at

string (date-time)required
data.signature.ref

Public stable resource reference.

string (uuid)required
data.signature.requires_2fa

booleanrequired
data.verification

Signature or signing authentication verification challenge.

objectoptional
data.verification.channel

stringnullrequired
data.verification.expires_at

string,null (date-time)required
data.verification.ref

Public stable resource reference.

string (uuid)required
400 Bad Request

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
401 Unauthorized

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
404 Not Found

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
422 Unprocessable Entity

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional

© 2026 AllSign. All rights reserved.