curl --request POST \
--url https://api.synctera.com/v1/disputes/{dispute_id}/actions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"supporting_doc_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}
'import requests
url = "https://api.synctera.com/v1/disputes/{dispute_id}/actions"
payload = {
"message": "<string>",
"supporting_doc_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({message: '<string>', supporting_doc_id: '7d943c51-e4ff-4e57-9558-08cab6b963c7'})
};
fetch('https://api.synctera.com/v1/disputes/{dispute_id}/actions', 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.synctera.com/v1/disputes/{dispute_id}/actions",
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([
'message' => '<string>',
'supporting_doc_id' => '7d943c51-e4ff-4e57-9558-08cab6b963c7'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.synctera.com/v1/disputes/{dispute_id}/actions"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"supporting_doc_id\": \"7d943c51-e4ff-4e57-9558-08cab6b963c7\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.synctera.com/v1/disputes/{dispute_id}/actions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"supporting_doc_id\": \"7d943c51-e4ff-4e57-9558-08cab6b963c7\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.synctera.com/v1/disputes/{dispute_id}/actions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": \"<string>\",\n \"supporting_doc_id\": \"7d943c51-e4ff-4e57-9558-08cab6b963c7\"\n}"
response = http.request(request)
puts response.read_body{
"action": "ACH_RETURN",
"creation_time": "2010-05-06T12:23:34.321Z",
"id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
"payment_rail": "ACH",
"status": "ACCEPTED",
"tenant": "abcdef_ghijkl",
"message": "<string>",
"reason_code": "DUPLICATE_TRANSACTION",
"return_code": "R05",
"supporting_doc_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}Create a dispute action
Create an action on a disputed transaction
curl --request POST \
--url https://api.synctera.com/v1/disputes/{dispute_id}/actions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"supporting_doc_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}
'import requests
url = "https://api.synctera.com/v1/disputes/{dispute_id}/actions"
payload = {
"message": "<string>",
"supporting_doc_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({message: '<string>', supporting_doc_id: '7d943c51-e4ff-4e57-9558-08cab6b963c7'})
};
fetch('https://api.synctera.com/v1/disputes/{dispute_id}/actions', 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.synctera.com/v1/disputes/{dispute_id}/actions",
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([
'message' => '<string>',
'supporting_doc_id' => '7d943c51-e4ff-4e57-9558-08cab6b963c7'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.synctera.com/v1/disputes/{dispute_id}/actions"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"supporting_doc_id\": \"7d943c51-e4ff-4e57-9558-08cab6b963c7\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.synctera.com/v1/disputes/{dispute_id}/actions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"supporting_doc_id\": \"7d943c51-e4ff-4e57-9558-08cab6b963c7\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.synctera.com/v1/disputes/{dispute_id}/actions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": \"<string>\",\n \"supporting_doc_id\": \"7d943c51-e4ff-4e57-9558-08cab6b963c7\"\n}"
response = http.request(request)
puts response.read_body{
"action": "ACH_RETURN",
"creation_time": "2010-05-06T12:23:34.321Z",
"id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
"payment_rail": "ACH",
"status": "ACCEPTED",
"tenant": "abcdef_ghijkl",
"message": "<string>",
"reason_code": "DUPLICATE_TRANSACTION",
"return_code": "R05",
"supporting_doc_id": "7d943c51-e4ff-4e57-9558-08cab6b963c7"
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}{
"code": "BAD_REQUEST_BODY",
"detail": "Missing required fields: first_name, dob",
"status": 400
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
An idempotency key is an arbitrary unique value generated by client to detect subsequent retries of the same request. It is recommended that a UUID or a similar random identifier be used as an idempotency key. A different key must be used for each request, unless it is a retry.
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Path Parameters
The unique identifier of the dispute
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Body
Details of the dispute action
- ACH Action
- Card Action
- External Card Action
Create an action against a disputed ACH transaction
ACH_RETURN, STOP_PAYMENT A short string representing the payment rail of the dispute.
ACH, CARD, EXTERNAL_CARD ACCEPT, CREATE, MORE_INFO_REQUIRED, REJECT Message text related to ACH dispute action
- Max length for debit transactions is 38 characters
100| Reason Code | Description |
|---|---|
| UNAUTHORIZED_TRANSACTION | A party claims that a transaction was not authorized by the account holder |
| INCORRECT_TRANSACTION_AMOUNT | The amount of the ACH transaction does not match the agreed-upon or expected amount. |
| DUPLICATE_TRANSACTION | The same transaction is processed more than once, leading to duplicate charges. |
| MISTIMED_WITHDRAWAL | The timing of the transaction is not in accordance with the agreed-upon schedule, leading to a dispute. |
| TRANSACTION_NOT_RECOGNIZED | The account holder does not recognize the transaction, possibly due to a mistake or fraudulent activity |
DUPLICATE_TRANSACTION, INCORRECT_TRANSACTION_AMOUNT, MISTIMED_WITHDRAWAL, TRANSACTION_NOT_RECOGNIZED, UNAUTHORIZED_TRANSACTION This field is required for dispute action ACH_RETURN. Upon successful dispute resolution this return code will be used when sending the outgoing return.
R05, R07, R10, R29, R34, R51 The unique identifier of the supporting document
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Response
Successfully created dispute action
- ACH Action
- External Card Action
- Card Action
Response for an ACH dispute action.
ACH_RETURN, STOP_PAYMENT The date and time the resource was created.
"2010-05-06T12:23:34.321Z"
The unique identifier of the dispute action
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
A short string representing the payment rail of the dispute.
ACH, CARD, EXTERNAL_CARD | Status | Description |
|---|---|
| SUBMITTED | The action has been submitted |
| ACCEPTED | The action has been accepted |
| REJECTED | The action has been rejected |
| MORE_INFO_REQUIRED | The action contains a directive that more information is required |
ACCEPTED, MORE_INFO_REQUIRED, REJECTED, SUBMITTED The id of the tenant containing the resource.
"abcdef_ghijkl"
Message text related to card dispute action
100| Reason Code | Description |
|---|---|
| UNAUTHORIZED_TRANSACTION | A party claims that a transaction was not authorized by the account holder |
| INCORRECT_TRANSACTION_AMOUNT | The amount of the ACH transaction does not match the agreed-upon or expected amount. |
| DUPLICATE_TRANSACTION | The same transaction is processed more than once, leading to duplicate charges. |
| MISTIMED_WITHDRAWAL | The timing of the transaction is not in accordance with the agreed-upon schedule, leading to a dispute. |
| TRANSACTION_NOT_RECOGNIZED | The account holder does not recognize the transaction, possibly due to a mistake or fraudulent activity |
DUPLICATE_TRANSACTION, INCORRECT_TRANSACTION_AMOUNT, MISTIMED_WITHDRAWAL, TRANSACTION_NOT_RECOGNIZED, UNAUTHORIZED_TRANSACTION This field is required for dispute action ACH_RETURN. Upon successful dispute resolution this return code will be used when sending the outgoing return.
R05, R07, R10, R29, R34, R51 The unique identifier of the supporting document
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Was this page helpful?

