curl --request POST \
--url https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"evidenceIds": [
"df34e9c0-91d9-47fc-b1ab-d4622385233b",
"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f"
],
"providerEvidenceTypeCodes": [
"PROOF_OF_DELIVERY",
"INVOICE"
]
}
'import requests
url = "https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit"
payload = {
"evidenceIds": ["df34e9c0-91d9-47fc-b1ab-d4622385233b", "f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f"],
"providerEvidenceTypeCodes": ["PROOF_OF_DELIVERY", "INVOICE"]
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
evidenceIds: ['df34e9c0-91d9-47fc-b1ab-d4622385233b', 'f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f'],
providerEvidenceTypeCodes: ['PROOF_OF_DELIVERY', 'INVOICE']
})
};
fetch('https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'evidenceIds' => [
'df34e9c0-91d9-47fc-b1ab-d4622385233b',
'f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f'
],
'providerEvidenceTypeCodes' => [
'PROOF_OF_DELIVERY',
'INVOICE'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-idempotency-key: <x-idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit"
payload := strings.NewReader("{\n \"evidenceIds\": [\n \"df34e9c0-91d9-47fc-b1ab-d4622385233b\",\n \"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f\"\n ],\n \"providerEvidenceTypeCodes\": [\n \"PROOF_OF_DELIVERY\",\n \"INVOICE\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"evidenceIds\": [\n \"df34e9c0-91d9-47fc-b1ab-d4622385233b\",\n \"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f\"\n ],\n \"providerEvidenceTypeCodes\": [\n \"PROOF_OF_DELIVERY\",\n \"INVOICE\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"evidenceIds\": [\n \"df34e9c0-91d9-47fc-b1ab-d4622385233b\",\n \"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f\"\n ],\n \"providerEvidenceTypeCodes\": [\n \"PROOF_OF_DELIVERY\",\n \"INVOICE\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"evidences": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"displayTitle": "<string>",
"status": "Active",
"provenance": "Merchant",
"contentType": "<string>",
"contentLength": 123,
"payload": {},
"documentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"validFrom": "2023-11-07T05:31:56Z",
"changeNote": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"labels": [
"<string>"
]
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.malformed",
"detail": "The request has malformed syntax",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestmalformed"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.unauthorized",
"detail": "The request lacks necessary credentials to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestunauthorized"
}
]
}{
"errors": [
{
"id": "e7db22b3-914e-4975-928e-9edfb0885bea",
"code": "request.forbidden",
"detail": "The request credentials lack the required permissions to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestforbidden"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.not-found",
"detail": "The requested resource was not found",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestnot-found"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.rate-limit",
"detail": "Too many requests",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestrate-limit"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "internal",
"detail": "An internal error occurred",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#internal"
}
]
}Submit evidence files
Submit uploaded evidence files for a dispute with a provider evidence type code for each, locking them in and sending them as your response.
curl --request POST \
--url https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"evidenceIds": [
"df34e9c0-91d9-47fc-b1ab-d4622385233b",
"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f"
],
"providerEvidenceTypeCodes": [
"PROOF_OF_DELIVERY",
"INVOICE"
]
}
'import requests
url = "https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit"
payload = {
"evidenceIds": ["df34e9c0-91d9-47fc-b1ab-d4622385233b", "f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f"],
"providerEvidenceTypeCodes": ["PROOF_OF_DELIVERY", "INVOICE"]
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
evidenceIds: ['df34e9c0-91d9-47fc-b1ab-d4622385233b', 'f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f'],
providerEvidenceTypeCodes: ['PROOF_OF_DELIVERY', 'INVOICE']
})
};
fetch('https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'evidenceIds' => [
'df34e9c0-91d9-47fc-b1ab-d4622385233b',
'f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f'
],
'providerEvidenceTypeCodes' => [
'PROOF_OF_DELIVERY',
'INVOICE'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-idempotency-key: <x-idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit"
payload := strings.NewReader("{\n \"evidenceIds\": [\n \"df34e9c0-91d9-47fc-b1ab-d4622385233b\",\n \"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f\"\n ],\n \"providerEvidenceTypeCodes\": [\n \"PROOF_OF_DELIVERY\",\n \"INVOICE\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit")
.header("x-idempotency-key", "<x-idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"evidenceIds\": [\n \"df34e9c0-91d9-47fc-b1ab-d4622385233b\",\n \"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f\"\n ],\n \"providerEvidenceTypeCodes\": [\n \"PROOF_OF_DELIVERY\",\n \"INVOICE\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.staging.payrails.io/dispute/disputes/{disputeId}/evidences/submit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-idempotency-key"] = '<x-idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"evidenceIds\": [\n \"df34e9c0-91d9-47fc-b1ab-d4622385233b\",\n \"f1e9c0b8-5c3a-4d9e-8b2a-1a2b3c4d5e6f\"\n ],\n \"providerEvidenceTypeCodes\": [\n \"PROOF_OF_DELIVERY\",\n \"INVOICE\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"evidences": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"displayTitle": "<string>",
"status": "Active",
"provenance": "Merchant",
"contentType": "<string>",
"contentLength": 123,
"payload": {},
"documentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"validFrom": "2023-11-07T05:31:56Z",
"changeNote": "<string>",
"workspaceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"labels": [
"<string>"
]
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.malformed",
"detail": "The request has malformed syntax",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestmalformed"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.unauthorized",
"detail": "The request lacks necessary credentials to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestunauthorized"
}
]
}{
"errors": [
{
"id": "e7db22b3-914e-4975-928e-9edfb0885bea",
"code": "request.forbidden",
"detail": "The request credentials lack the required permissions to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestforbidden"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.not-found",
"detail": "The requested resource was not found",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestnot-found"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.rate-limit",
"detail": "Too many requests",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestrate-limit"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "internal",
"detail": "An internal error occurred",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#internal"
}
]
}Authorizations
You can use an OAuth2 JWT bearer token in the Authorization header of your API requests for supported endpoints: Authorization: Bearer <YOUR_JWT_HERE>.
These tokens are valid for 10 minutes and can be requested via the access token endpoint endpoint.
Headers
Idempotency key to be used. Sending again the same key would return the same result without re-executing the update.
Path Parameters
Identifier of the resource in Payrails.
Body
Response
Evidence submitted successfully.
Hide child attributes
Hide child attributes
Unique identifier of the Dispute in Payrails.
Date and time when the Dispute was created in Payrails.
Date and time when the Dispute was last updated in Payrails.
Display title of the evidence, usually the file name.
Status of the dispute evidence.
Active, Inactive, Unknown Provenance of the dispute evidence.
Merchant, Payrails, Unknown MIME type of the evidence content.
Size of the evidence content in bytes.
Inline JSON payload for inline-context evidences. Present only for evidences created from inlineContexts; omitted for file-backed evidence.
Evidence library document this evidence is a version of. Present only for evidence library versions.
Version number within the evidence library document. Present only for evidence library versions.
When this evidence library version starts to apply. Present only for evidence library versions.
What changed in this evidence library version. Present only for evidence library versions that have a change note.
Workspace ID that the Dispute belongs to.
Labels assigned to this evidence for the dispute, used to categorise the document during representment.