Issue with evidence submission via the API

# Bug report: `disputeEvidenceUpdate(submitEvidence: true)` is a no-op — cannot submit dispute evidence via the public Admin GraphQL API

## Summary

Using the public Admin GraphQL API, calling `disputeEvidenceUpdate` with `input.submitEvidence: true`

returns **success with no `userErrors`**, but the evidence is **not submitted**: the response’s

`disputeEvidence.submitted` stays `false`, and the dispute remains `NEEDS_RESPONSE` with

`evidenceSentOn: null`. Evidence *fields/files* update fine — only the **submit** is ignored.

Submitting the same evidence via the Shopify **admin UI (“Submit now”)** works immediately.

## Environment

- Shop: `craftgin.myshopify.com`

- API version: `2026-07` (also reproduced on 2025-01, 2025-04, 2025-07, 2025-10, 2026-01, 2026-04)

- Auth: custom app / Admin API access token with scopes

`write_shopify_payments_dispute_evidences`, `read_shopify_payments_dispute_evidences`

- Dispute: `gid://shopify/ShopifyPaymentsDispute/10866294964` (evidence `…/ShopifyPaymentsDisputeEvidence/10864328884`)

## Steps to reproduce

1. Attach a file via REST `POST /admin/api/2026-07/shopify_payments/disputes/10866294964/dispute_file_uploads.json`

(`document_type: uncategorized_file`) — succeeds, file is attached.

2. Call the GraphQL mutation below.

### Request

```graphql

mutation DisputeEvidenceUpdate($id: ID!, $input: ShopifyPaymentsDisputeEvidenceUpdateInput!) {

disputeEvidenceUpdate(id: $id, input: $input) {

disputeEvidence { id submitted }

userErrors { field message }

}

}

```

```json

{

“id”: “gid://shopify/ShopifyPaymentsDisputeEvidence/10864328884”,

“input”: { “uncategorizedText”: “Please see attached evidence.”, “submitEvidence”: true }

}

```

### Actual response

```json

{

“disputeEvidenceUpdate”: {

“disputeEvidence”: { “id”: “gid://shopify/ShopifyPaymentsDisputeEvidence/10864328884”, “submitted”: false },

“userErrors”: []

}

}

```

After the call, `dispute.status` = `NEEDS_RESPONSE`, `dispute.evidenceSentOn` = `null`.

### Expected

`disputeEvidence.submitted: true`, dispute transitions to `UNDER_REVIEW`, `evidenceSentOn` set —

i.e. the same result as clicking “Submit now” in the admin.

## Notes / what we’ve verified

- Schema introspection of the live public schema: the ONLY dispute mutation is `disputeEvidenceUpdate`,

and the ONLY submit-related input field is `submitEvidence: Boolean`. There is no `submittedByMerchant`

or `submit` field on `ShopifyPaymentsDisputeEvidenceUpdateInput`.

- The admin UI “Submit now” succeeds and uses an internal operation

(`DisputeEvidenceUpdateMutation`) whose input carries `submittedByMerchant: true` — that field is

not present on the public input type.

- Reproduced across all supported API versions and on both a clean `needs_response` dispute and one

with fully-populated evidence.

## Questions

1. Is `submitEvidence: true` intended to submit dispute evidence via the public Admin API for

app / custom-app tokens? If so, why does it silently no-op (no `userErrors`)?

2. If a specific scope or account permission is required to submit, which one — and should the API

return a `userError` when it’s missing instead of silently ignoring `submitEvidence`?

3. Is there any supported public-API path to submit dispute evidence, or is submission only

available via the admin UI / due-date auto-submit?

Hey @Doron_Lapidus - thanks for reaching out. I saw you reached out in the thread here, so I’m just going to close this duplicate topic. And reach out to you in the other thread there. Speak with you there soon!