Outcomes

Submit outcome evidence (internal producers)

POST
/v1/outcomes/evidence

Internal. Only a producer whose token (DECIONIS_DELIVERY_PRODUCERS_JSON) carries the matching outcomes capability (commerce or agentsafe) may submit; an organization key can never feed the meter. Up to 1,000 subjects per batch (decionis.outcomes.submission/1, contract packages/shared/contracts/OutcomeEvidence.v1.json), each a digest-only record of the decision, review, execution and financial result. Revisions are append-only: the same subject and revision with different content is 409 evidence_revision_conflict.

Authorization

ApiKeyAuth
AuthorizationBearer <token>

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

Request Body

application/json

version*string
producer*string

Value in

  • "commerce"
  • "agentsafe"
org_id*string
Formatuuid
evidence*array<>
Items1 <= items <= 1000

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/outcomes/evidence" \  -H "Content-Type: application/json" \  -d '{    "version": "decionis.outcomes.submission/1",    "producer": "commerce",    "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",    "evidence": [      {        "version": "decionis.outcomes.evidence/1",        "subject_digest": "string",        "revision": 1,        "platform": "string",        "connection_id": "d3547de1-d1f2-4344-b4c2-17169b7526f9",        "action_type": "string",        "occurred_at": "2019-08-24T14:15:22Z",        "amount": {          "currency": "string",          "scale": 0,          "amount_minor": 0        },        "coverage": "GOVERNED",        "decision": {          "decision_id": "string",          "dossier_id": "string",          "disposition": "PROCEED",          "mode": "SHADOW",          "decided_at": "2019-08-24T14:15:22Z",          "reason_codes": [            "string"          ]        },        "review": {          "case_id": "string",          "outcome": "RELEASED",          "confirmation": "CONFIRMED_PROBLEM",          "confirmed_by": "REVIEWER",          "reviewer": "DESK",          "decided_at": "2019-08-24T14:15:22Z",          "analyst_minutes": 0        },        "execution": {          "status": "COMMITTED",          "grant_id": "a3c1da8e-13c6-4cab-955b-2120b58c2982",          "receipt_sha256": "string",          "at": "2019-08-24T14:15:22Z"        },        "financial": {          "status": "SETTLED",          "amount": {            "currency": "string",            "scale": 0,            "amount_minor": 0          },          "at": "2019-08-24T14:15:22Z"        },        "exclusion_codes": [          "string"        ],        "source_sha256": "string"      }    ]  }'
{  "accepted": 0,  "duplicates": 0}