---
title: "Draft an outcome agreement"
method: POST
path: "/v1/outcomes/agreements"
---

# Draft an outcome agreement

`POST /v1/outcomes/agreements`

## Request

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

Organization API key with decision:write and role ADMIN or higher; the organization comes from the key. Drafts the agreed outcome meter (decionis.outcomes.agreement/1): workflow, primary metric, scope, baseline, currency and conversion, deductions, who confirms a problem, exclusions, attribution window, monthly close and commercial basis. The agreement becomes ACTIVE only after Decionis signs it with the dossier key and a customer signatory co-signs with a passkey in the delivered case. 503 outcomes_disabled while `DECIONIS_OUTCOMES_ENABLED` is not 1.

## Request body

- OutcomeAgreementCreate
  - `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

## Response `201`

The DRAFT agreement.

- 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
- `403`: 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)
