---
title: "Sign an outcome agreement for Decionis (platform)"
method: POST
path: "/v1/outcomes/agreements/{agreementId}/signatures"
---

# Sign an outcome agreement for Decionis (platform)

`POST /v1/outcomes/agreements/{agreementId}/signatures`

## Request

- Base URL: `https://api.decionis.com`
- URL: `https://api.decionis.com/v1/outcomes/agreements/{agreementId}/signatures`
- Auth: HTTP bearer

Platform credential only. Signs the exact artifact digest with the dossier Ed25519 key (verifiable offline against /.well-known/decision-dossier-jwks.json), opens a Presence passkey request bound to the agreement for a customer signatory (OWNER, ADMIN or an Accounts signatory designation) and delivers the signing case in Business Central, Teams, Slack or the assistant. The customer co-signs there, through POST /v1/cases/{caseId}/decisions, never through this API. Without a signing key it answers 503 outcome_signing_unavailable.

## Request body

- OutcomeAgreementSignatureRequest
  - `party` 'DECIONIS', required
  - `artifact_sha256` string, required

## Response `201`

The agreement, AWAITING_CUSTOMER.

- OutcomeAgreementRecord
  - `artifact` object, required
    - `version` 'decionis.outcomes.agreement/1', required
    - `agreement_id` string, uuid, required
    - `org_id` string, uuid, required
    - `environment` 'sandbox' | 'production', required
    - `terms` object, required
      - `version` 'decionis.outcomes.agreement/1', required
      - `workflow` 'PAYMENT_SAFETY' | 'MARGIN_OVERSELL' | 'SUPPORT' | 'ENGINEERING', required
      - `primary_metric` 'CONFIRMED_PREVENTED_LOSS' | 'GOVERNED_VALUE', required
      - `scope` object, required
        - `platforms` string[], required
        - `action_types` string[], required
        - `connection_ids` string[], required
        - `policy` object, nullable, required
          - `policy_id` string, uuid, required
          - `revision_digest` string, required
      - `baseline` object, required
        - `method` 'SHADOW_COMPARISON' | 'MATCHED_COHORT' | 'BEFORE_AFTER', required
        - `from` string, required
        - `to` string, required
        - `description` string, required
      - `currency` object, required
        - `reporting` string, required
        - `reporting_scale` integer, required
        - `conversion` 'NONE' | 'FIXED_RATES', required
        - `rates` object[], required
          - `currency` string, required
          - `rate_micros` integer, required
        - `source` string, nullable, required
      - `deductions` object, required
        - `false_hold_minor` integer, required
        - `delay_hour_minor` integer, required
        - `analyst_minute_minor` integer, required
      - `confirmation` 'REVIEWER' | 'CUSTOMER', required
      - `exclusions` object[], required
        - `code` string, required
        - `description` string, required
      - `attribution_days` integer, required
      - `period` object, required
        - `cadence` 'MONTHLY', required
        - `close_after_days` integer, required
      - `commercial` object, required
        - `basis` 'NONE' | 'NET_BENEFIT_SHARE' | 'GOVERNED_VALUE_FEE', required
        - `rate_bps` integer, required
        - `floor_minor` integer, required
        - `cap_minor` integer, nullable, required
      - `effective_from` string, required
      - `effective_to` string, nullable, required
    - `supersedes` string, uuid, nullable, required
    - `created_at` string, date-time, required
  - `artifact_sha256` string, required
  - `canonicalization` 'RFC8785/JCS', required
  - `state` 'DRAFT' | 'AWAITING_CUSTOMER' | 'ACTIVE' | 'SUPERSEDED' | 'TERMINATED', required
  - `decionis_signature` object, nullable, required
    - `algorithm` 'Ed25519', required
    - `keyId` string, required
    - `value` string, required
  - `customer_signature` object, nullable, required
    - `user_id` string, uuid, required
    - `method` 'WEBAUTHN', required
    - `proof_reference` string, required
    - `proof_sha256` string, required
    - `signed_at` string, date-time, required
  - `public_jwks_path` '/.well-known/decision-dossier-jwks.json', required

## Other responses

- `400`: Structured API error
- `401`: Structured API error
- `404`: Structured API error
- `409`: Structured API error
- `503`: Structured API error

---

[API](https://skmtc.dev/decionis/apis/decionis-policy-evaluation-api.md) · [All operations](https://skmtc.dev/decionis/apis/decionis-policy-evaluation-api/llms.txt) · [OpenAPI document](https://skmtc.dev/decionis/apis/decionis-policy-evaluation-api/revisions/357f5e459d0c?raw)
