POSTlive

Record one party-agent consent assertion and artifact hash

Records which role-bound partner credential made the assertion and the supplied artifact reference and hash. The credential role must match the submitted party. This endpoint does not verify an underlying principal signature, email delivery, or artifact availability. Each side is a separate idempotent call.

/api/v2/authorizations/consentsregisterPartyConsentV2

Authentication and authority

Send one of the allowed bearer credential roles. Alternatives are OR; credentials named within one alternative are AND.

claimantAgentBearer

Credential bound to the claimant_agent role. Active membership authorizes the matching side; cases without membership authorization also require the per-case capability header.

respondentAgentBearer

Credential bound to the respondent_agent role. Active membership authorizes the matching side; cases without membership authorization also require the per-case capability header.

Parameters

NameLocationRequirementSchema
Idempotency-KeyheaderRequired{"type":"string","minLength":8,"maxLength":200}

Request body

Required request body.

application/json

{
  "$ref": "#/components/schemas/ConsentArtifactRegistration",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "party",
    "principalId",
    "counterpartyId",
    "transactionId",
    "scope",
    "rulesVersion",
    "termsVersion",
    "termsHash",
    "artifactRef",
    "artifactHash",
    "method",
    "acceptedAt"
  ],
  "properties": {
    "party": {
      "type": "string",
      "enum": [
        "claimant",
        "respondent"
      ]
    },
    "principalId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "counterpartyId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "transactionId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "scope": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "rulesVersion": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "example": "1.0",
      "x-current-rules-version": true
    },
    "termsVersion": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "termsHash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "artifactRef": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "artifactHash": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "method": {
      "type": "string",
      "enum": [
        "signed_doc",
        "email_attest"
      ]
    },
    "acceptedAt": {
      "type": "string",
      "format": "date-time",
      "example": "2026-08-18T00:00:00.000Z"
    },
    "expiresAt": {
      "type": "string",
      "format": "date-time",
      "example": "2026-12-01T00:00:00.000Z"
    }
  }
}

Responses

201

The authenticated party-agent consent assertion was recorded.

application/json

{
  "$ref": "#/components/schemas/ConsentArtifactRegistrationEnvelope",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ConsentArtifactRegistrationResult",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "consentArtifactId",
        "party",
        "principalId",
        "counterpartyId",
        "transactionId",
        "scope",
        "rulesVersion",
        "termsVersion",
        "acceptedAt",
        "expiresAt",
        "registeredBy"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "partner-consent-artifact-v2"
        },
        "consentArtifactId": {
          "type": "string"
        },
        "party": {
          "type": "string",
          "enum": [
            "claimant",
            "respondent"
          ]
        },
        "principalId": {
          "type": "string"
        },
        "counterpartyId": {
          "type": "string"
        },
        "transactionId": {
          "type": "string"
        },
        "scope": {
          "type": "string"
        },
        "rulesVersion": {
          "type": "string"
        },
        "termsVersion": {
          "type": "string"
        },
        "acceptedAt": {
          "type": "string",
          "format": "date-time"
        },
        "expiresAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "registeredBy": {
          "$ref": "#/components/schemas/AuthorizationRegistrationProvenance",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "schemaVersion",
            "credentialPublicId",
            "role",
            "requestHash",
            "registeredAt"
          ],
          "properties": {
            "schemaVersion": {
              "type": "string",
              "const": "partner-authorization-registration-v2"
            },
            "credentialPublicId": {
              "type": "string"
            },
            "role": {
              "type": "string",
              "enum": [
                "claimant_agent",
                "respondent_agent"
              ]
            },
            "requestHash": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "registeredAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    },
    "requestId": {
      "type": "string"
    }
  }
}
default

RFC 9457 style problem response.

application/problem+json

{
  "$ref": "#/components/schemas/Problem",
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "requestId"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "code": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    },
    "requestId": {
      "type": "string"
    }
  }
}

Example response

Successful response

{
  "data": {
    "schemaVersion": "partner-consent-artifact-v2",
    "consentArtifactId": "consent_test_123",
    "party": "claimant",
    "principalId": "principal_test_123",
    "counterpartyId": "counterpartyId_test",
    "transactionId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "scope": "scope_test",
    "rulesVersion": "rulesVersion_test",
    "termsVersion": "termsVersion_test",
    "acceptedAt": "2026-08-09T12:00:00.000Z",
    "expiresAt": null,
    "registeredBy": {
      "schemaVersion": "partner-authorization-registration-v2",
      "credentialPublicId": "credentialPublicId_test",
      "role": "claimant_agent",
      "requestHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "registeredAt": "2026-08-09T12:00:00.000Z"
    }
  },
  "requestId": "requestId_test"
}

Usage notes

  • Responses reflect the current authoritative resource state.
  • Send a unique Idempotency-Key. An exact retry returns the stored result; reusing the key with a different request fails.
  • The request is accepted only when its credential, authority, case state, and resource preconditions are satisfied.