Get a signed URL to upload MED evidence

Step 1 of 3. Returns a short-lived signed `PUT` URL; the file goes straight from you to storage, never through this API's body. The file does **not** reach the settlement bank or the regulator — neither accepts attachments. It exists to travel with your defense to the team that conducts the dispute. Then `PUT` the bytes to `uploadUrl` with the same `Content-Type` you declared (no authentication header of ours — the signature already authorizes it), and register the file with `evidence/add`. Limits per dispute: 5 MB per file, 6 MB total, 10 files, and only `application/pdf`, `image/jpeg`, `image/png`, `image/webp`, `text/plain` and `text/csv`. Uploads are refused once the dispute has been answered.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

accountIdstringRequired
Account identifier.
idstringRequired

MED dispute identifier as returned by GET /v1/accounts/{accountId}/pix/med.

Headers

X-Tenant-IdstringRequired
Tenant context used for authorization and routing.
Idempotency-KeystringOptional

Optional client-generated idempotency token (recommended for safe retries).

Request

This endpoint expects an object.
filenamestringRequired
contentTypeenumRequired
sizeByteslongRequired
Size in bytes. Max 5 MB per file, 6 MB per dispute.

Response

Signed URL issued.
medIdstring
evidenceIdstring
keystring

Storage key. Send it back in evidence/add.

uploadUrlstring

Signed PUT URL. Use no authentication header of ours on it.

methodenum
contentTypestring

Send exactly this Content-Type on the PUT.

expiresIninteger
Seconds until the signature expires.
notestringOptional
Present when the security scan pipeline is active.

Errors

400
Bad Request Error
404
Not Found Error
409
Conflict Error
413
Content Too Large Error
422
Unprocessable Entity Error
503
Service Unavailable Error