Sign an outcome agreement for Decionis (platform)
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.
Authorization
ApiKeyAuth An organization API key. Its scopes decide what it may call;
decision:shadow is the narrowest: SHADOW evaluations through
POST /v1/authority/grants or its alias
POST /v1/authority/enforce-and-bind only (DECISION_SHADOW_MODE_DENIED
in any other mode; DECISION_SHADOW_FIELD_DENIED for a body carrying
context.decionis_policy, evidence or escalation), with no
integration dispatch. A key whose only scope is decision:shadow
(an AgentSafe hosted gateway's) reaches exactly those two,
POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm
and POST /v1/hosted-gateway/keys/revoke-self; every other route
answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED.
decision:enforce is an enforced hosted gateway's key: evaluations
in SHADOW or ENFORCEMENT through POST /v1/authority/grants or its
alias (400 DECISION_ENFORCE_FIELD_DENIED for a body carrying
context.decionis_policy; it never holds policy:write), and the
grants and managed escalations they bind. A key whose scopes are
decision:enforce (with or without decision:shadow) reaches exactly
POST /v1/authority/enforce-and-bind, POST /v1/authority/grants,
GET /v1/authority/grants/{grant_id},
POST /v1/authority/grants/{grant_id}/claims,
POST /v1/authority/grants/{grant_id}/receipts,
POST /v1/authority/grants/{grant_id}/reconciliations,
POST /v1/execution/verify-token, POST /v1/execution/claim-token,
POST /v1/execution/consume-token, POST /v1/execution/finalize-token,
GET /v1/authority/escalations/{escalation_id},
DELETE /v1/authority/escalations/{escalation_id},
POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm
and POST /v1/hosted-gateway/keys/revoke-self, each id a UUID; every
other route answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED.
In: header
Path Parameters
uuidRequest Body
application/json
^[a-f0-9]{64}$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/outcomes/agreements/497f6eca-6276-4993-bfeb-53cbbbba6f08/signatures" \ -H "Content-Type: application/json" \ -d '{ "party": "DECIONIS", "artifact_sha256": "string" }'{ "artifact": { "version": "decionis.outcomes.agreement/1", "agreement_id": "67dd069b-637c-4b8e-8d92-17a313d06fb8", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "environment": "sandbox", "terms": { "version": "decionis.outcomes.agreement/1", "workflow": "PAYMENT_SAFETY", "primary_metric": "CONFIRMED_PREVENTED_LOSS", "scope": { "platforms": [ "string" ], "action_types": [ "string" ], "connection_ids": [ "9093a418-aa3e-41a3-ae26-08ea1b46e535" ], "policy": { "policy_id": "ee9b03e0-6495-427a-85a5-34444d24ae04", "revision_digest": "string" } }, "baseline": { "method": "SHADOW_COMPARISON", "from": "string", "to": "string", "description": "string" }, "currency": { "reporting": "string", "reporting_scale": 0, "conversion": "NONE", "rates": [ { "currency": "string", "rate_micros": 1 } ], "source": "string" }, "deductions": { "false_hold_minor": 0, "delay_hour_minor": 0, "analyst_minute_minor": 0 }, "confirmation": "REVIEWER", "exclusions": [ { "code": "string", "description": "string" } ], "attribution_days": 1, "period": { "cadence": "MONTHLY", "close_after_days": 0 }, "commercial": { "basis": "NONE", "rate_bps": 0, "floor_minor": 0, "cap_minor": 0 }, "effective_from": "string", "effective_to": "string" }, "supersedes": "09391fa8-b623-4dc7-8d11-2a46489536bf", "created_at": "2019-08-24T14:15:22Z" }, "artifact_sha256": "string", "canonicalization": "RFC8785/JCS", "state": "DRAFT", "decionis_signature": { "algorithm": "Ed25519", "keyId": "string", "value": "string" }, "customer_signature": { "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "method": "WEBAUTHN", "proof_reference": "string", "proof_sha256": "string", "signed_at": "2019-08-24T14:15:22Z" }, "public_jwks_path": "/.well-known/decision-dossier-jwks.json"}Read an outcome agreement GET
Organization API key with decision:read and role VIEWER or higher. Returns the agreement, its state and both signatures; an agreement of another organization is not found.
Close a month into a signed outcome statement (platform) POST
Platform credential only; the worker closes due months daily. Refuses a period whose close-out days have not passed (409 outcome_period_open). Classifies the latest evidence revision of every subject with the agreement's calculator: PREVENTED only when a person confirmed the problem and the action was never paid; held-unconfirmed amounts are exposure, shadow estimates are never summed with realized results, and changes to earlier months are appended as corrections. Net benefit is null when any currency is unconverted. Signs the statement (decionis.outcomes.statement/1) or labels it unsigned, and sends finance and auditor recipients an informational card (email only notifies). Closing a closed month returns the statement signed the first time (200).

