---
title: "Upload an evidence file to a dispute"
method: POST
path: "/v1/disputes/{disputeId}/evidence/upload"
tags: ["Exception"]
---

# Upload an evidence file to a dispute

`POST /v1/disputes/{disputeId}/evidence/upload`

## Request

- Base URL: `https://identity.sandbox.lerian.net`
- URL: `https://identity.sandbox.lerian.net/v1/disputes/{disputeId}/evidence/upload`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lerian/apis/identity-plugin/docs/v1/disputes/:disputeId/evidence/upload/post.ts> (a function with typed inputs; its response is checked against the schema)

Streams an evidence file (pdf, png, jpeg, or csv) to tenant-scoped object storage and records the resulting object key on the dispute as a new evidence item. The comment arrives as a query parameter and the file bytes as the request body. The tenant is resolved from the JWT and the dispute from the path — never from the body. Fails closed (503) when object storage is not configured; rejects oversize bodies (413) and unsupported content types (415).

## Path parameters

- `disputeId` string, uuid, required: Dispute ID (UUID)

## Query parameters

- `comment` string: Comment describing the uploaded evidence

## Headers

- `Content-Type` string: Evidence media type: application/pdf, image/png, image/jpeg, or text/csv

## Request body `application/octet-stream`

- string, binary

## Response `201`

Created

- DisputeResponse: Dispute details
  - `category` 'BANK_FEE_ERROR' | 'UNRECOGNIZED_CHARGE' | 'DUPLICATE_TRANSACTION' | 'OTHER': Category of the dispute
  - `createdAt` string: Creation timestamp in RFC3339 format
  - `description` string: Description of the dispute
  - `evidence` EvidenceResponse[]: Evidence submitted for this dispute
    - `comment` string: Comment describing the evidence
    - `disputeId` string: Dispute ID this evidence belongs to
    - `fileUrl` string: URL to evidence file
    - `id` string: Unique identifier for the evidence
    - `submittedAt` string: When the evidence was submitted in RFC3339 format
    - `submittedBy` string: User who submitted the evidence
  - `exceptionId` string: Exception ID this dispute is for
  - `id` string: Unique identifier for the dispute
  - `openedBy` string: User who opened the dispute
  - `reopenReason` string: Reason for reopening if reopened
  - `resolution` string: Resolution description when closed
  - `state` 'DRAFT' | 'OPEN' | 'PENDING_EVIDENCE' | 'WON' | 'LOST': Current state
  - `updatedAt` string: Last update timestamp in RFC3339 format

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/lerian/apis/identity-plugin.md) - [All operations](https://skmtc.dev/lerian/apis/identity-plugin/llms.txt) - [OpenAPI document](https://skmtc.dev/lerian/apis/identity-plugin/revisions/25daba385532?raw)
