---
title: "Submit outcome evidence (internal producers)"
method: POST
path: "/v1/outcomes/evidence"
---

# Submit outcome evidence (internal producers)

`POST /v1/outcomes/evidence`

## Request

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

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.

## Request body

- OutcomeEvidenceSubmission
  - `version` 'decionis.outcomes.submission/1', required
  - `producer` 'commerce' | 'agentsafe', required
  - `org_id` string, uuid, required
  - `evidence` object[], required
    - `version` 'decionis.outcomes.evidence/1', required
    - `subject_digest` string, required
    - `revision` integer, required
    - `platform` string, required
    - `connection_id` string, uuid, nullable, required
    - `action_type` string, required
    - `occurred_at` string, date-time, required
    - `amount` object, required
      - `currency` string, required
      - `scale` integer, required
      - `amount_minor` integer, required
    - `coverage` 'GOVERNED' | 'UNGOVERNED' | 'OBSERVED', required
    - `decision` object, nullable, required
      - `decision_id` string, nullable, required
      - `dossier_id` string, nullable, required
      - `disposition` 'PROCEED' | 'HOLD' | 'BLOCK', required
      - `mode` 'SHADOW' | 'PARALLEL' | 'ENFORCEMENT', required
      - `decided_at` string, date-time, required
      - `reason_codes` string[], required
    - `review` object, nullable, required
      - `case_id` string, required
      - `outcome` 'RELEASED' | 'REJECTED', required
      - `confirmation` 'CONFIRMED_PROBLEM' | 'LEGITIMATE' | 'UNCONFIRMED', required
      - `confirmed_by` 'REVIEWER' | 'CUSTOMER', nullable, required
      - `reviewer` 'DESK' | 'CUSTOMER', required
      - `decided_at` string, date-time, required
      - `analyst_minutes` integer, nullable, required
    - `execution` object, nullable, required
      - `status` 'COMMITTED' | 'FAILED' | 'NOT_EXECUTED' | 'UNKNOWN', required
      - `grant_id` string, uuid, nullable, required
      - `receipt_sha256` string, nullable, required
      - `at` string, date-time, required
    - `financial` object, nullable, required
      - `status` 'SETTLED' | 'REVERSED' | 'PENDING' | 'UNKNOWN', required
      - `amount` object, required
        - `currency` string, required
        - `scale` integer, required
        - `amount_minor` integer, required
      - `at` string, date-time, required
    - `exclusion_codes` string[], required
    - `source_sha256` string, required

## Response `200`

Accepted and duplicate counts.

- object
  - `accepted` integer, required
  - `duplicates` integer, required

## Other responses

- `400`: Structured API error
- `401`: Structured API error
- `403`: 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)
