Upload evidence file | Moov Documentation
Upload evidence file
Uploads a file as evidence for a dispute.
Read our disputes guide to learn more.
To access this endpoint using an access token
you'll need to specify the /accounts/{accountID}/transfers.write scope.
Endpoint
POST /accounts/{accountID}/disputes/{disputeID}/evidence-file
Ask
curl -X POST "https://api.moov.io/accounts/{accountID}/disputes/{disputeID}/evidence-file" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.04.00" \
-F "file=@/path/to/file" \
-F "evidenceType=receipt"
Ask
mc, _ := moov.NewClient()
var accountID string
var disputeID string
file, _ := os.Open("path/to/test.pdf")
mc.UploadEvidenceFile(ctx, accountID, disputeID, moov.EvidenceType_CoverLetter, "test.pdf", file, "application/pdf")
Ask
import { Moov } from "@moovio/sdk";
import { openAsBlob } from "node:fs";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.disputes.uploadEvidenceFile({
accountID: "c09fd2f8-75fb-4ed9-be03-f8565d3ddc67",
disputeID: "ad27f84d-00b1-4db0-8cf5-be001d71251d",
createEvidenceFileMultiPart: {
file: await openAsBlob("example.file"),
evidenceType: "cancelation-policy",
},
});
console.log(result);
}
run();
Ask
declare(strict_types=1);
require 'vendor/autoload.php';
use Moov"}
```php
MoovPhp;
use Moov"}
```php
MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$createEvidenceFileMultiPart = new Components\CreateEvidenceFileMultiPart(
file: new Components\File(
fileName: 'example.file',
content: file_get_contents('example.file');,
),
evidenceType: Components\EvidenceType::CancelationPolicy,
);
$response = $sdk->disputes->uploadEvidenceFile(
accountID: 'fbed9e03-f856-45d3-8ddc-67dad27f84d0',
disputeID: 'b1db0cf5-be00-41d7-a125-1d2d283c2a62',
createEvidenceFileMultiPart: $createEvidenceFileMultiPart
);
if ($response->evidenceUploadResponse !== null) {
// handle response
}
Ask
package hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.*;
import io.moov.sdk.models.errors.FileUploadValidationError;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.operations.UploadDisputeEvidenceFileResponse;
import io.moov.sdk.utils.Utils;
import java.io.FileInputStream;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GenericError, FileUploadValidationError, Exception {
Moov sdk = Moov.builder()
.security(Security.builder()
.username("")
.password("")
.build())
.build();
UploadDisputeEvidenceFileResponse res = sdk.disputes().uploadEvidenceFile()
.accountID("fbed9e03-f856-45d3-8ddc-67dad27f84d0")
.disputeID("b1db0cf5-be00-41d7-a125-1d2d283c2a62")
.createEvidenceFileMultiPart(CreateEvidenceFileMultiPart.builder()
.file(File.builder()
.fileName("example.file")
.content(Utils.readBytesAndClose(new FileInputStream("example.file")))
.build())
.evidenceType(EvidenceType.CANCELATION_POLICY)
.build())
.call();
}
}
Ask
from moovio_sdk import Moov
from moovio_sdk.models import components
with Moov(
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.disputes.upload_evidence_file(account_id="c09fd2f8-75fb-4ed9-be03-f8565d3ddc67", dispute_id="ad27f84d-00b1-4db0-8cf5-be001d71251d", file={
"file_name": "example.file",
"content": open("example.file", "rb"),
}, evidence_type=components.EvidenceType.CANCELATION_POLICY)
# Handle response
print(res)
Ask
require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
security: Models::Components::Security.new(
username: '',
password: ''
)
)
res = s.disputes.upload_evidence_file(account_id: 'c09fd2f8-75fb-4ed9-be03-f8565d3ddc67', dispute_id: 'ad27f84d-00b1-4db0-8cf5-be001d71251d', create_evidence_file_multi_part: Models::Components::CreateEvidenceFileMultiPart.new(
file: Models::Components::CreateEvidenceFileMultiPartFile.new(
file_name: 'example.file',
content: File.binread('example.file')
),
evidence_type: Models::Components::EvidenceType::CANCELATION_POLICY
))
unless res.evidence_upload_response.nil?
# handle response
end
Ask
using Moov.Sdk;
using Moov.Sdk.Models.Components;
var sdk = new MoovClient(security: new Security() {
Username = "",
Password = "",
});
var res = await sdk.Disputes.UploadEvidenceFileAsync(
accountID: "c09fd2f8-75fb-4ed9-be03-f8565d3ddc67",
disputeID: "ad27f84d-00b1-4db0-8cf5-be001d71251d",
body: new CreateEvidenceFileMultiPart() {
File = new CreateEvidenceFileMultiPartFile() {
FileName = "example.file",
Content = System.IO.File.ReadAllBytes("example.file"),
},
EvidenceType = EvidenceType.CancelationPolicy,
}
);
// handle response
Successful Response
Example
{
"evidenceID": "string",
"disputeID": "string",
"filename": "string",
"mimeType": "string",
"size": 0,
"evidenceType": "receipt",
"createdOn": "2019-08-24T14:15:22Z"
}
Response headers
A unique identifier used to trace requests.
Error Responses
Invalid syntax
Example
{
"error": "string"
}
Missing or expired authentication
Response headers
A unique identifier used to trace requests.
User not authorized
Response headers
A unique identifier used to trace requests.
Resource not found
Response headers
A unique identifier used to trace requests.
Conflict with the current state
Example
{
"error": "string"
}
Validation errors
Example
{
"evidenceType": "string",
"file": {
"filename": "string",
"mimeType": "string"
}
}
Rate limiting
Response headers
A unique identifier used to trace requests.
Unexpected errors
Response headers
A unique identifier used to trace requests.
Downstream service errors
Response headers
A unique identifier used to trace requests.
API Versioning
Set this header to v2026.04.00 to use the API described in this specification. When omitted, the server defaults to v2024.01.00, which may not match the behavior documented here.
Evidence Types
Possible values:
receiptproof-of-deliverycancelation-policyterms-of-servicecustomer-communicationgeneric-evidencecover-letterother
The file to upload as evidence. Valid types are [jpeg, tiff, pdf] with a limit of 4MB per file.
Content-Type headers
The Content-Type header for this form part must be one of the following:
image/jpegimage/tiffapplication/pdf
Notes
Details of a successfully uploaded evidence file.
- The date and time the evidence was uploaded.
- The ID of the dispute the evidence is associated with.
- The ID of the evidence.
- The name of the evidence file.
- The MIME type of the evidence file.
- The size of the evidence file.