curl --request GET \
--url https://api.retailreadyai.com/api/v1/chargebacks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.retailreadyai.com/api/v1/chargebacks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.retailreadyai.com/api/v1/chargebacks', 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.retailreadyai.com/api/v1/chargebacks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.retailreadyai.com/api/v1/chargebacks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.retailreadyai.com/api/v1/chargebacks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.retailreadyai.com/api/v1/chargebacks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "Chargebacks retrieved successfully",
"data": {
"items": [
{
"id": "9f2bc4e1-77a3-4c10-b0d2-1a5e9f3b8c31",
"chargeback_id": "CB-88213",
"po_number": "4500912233",
"matched_orders": [
{
"order_id": "7c4e1b90-2f8d-4a61-9c33-5b0e77d41a02",
"picksheet_code": "RR-8891"
}
],
"retailer_id": "3a1f9c22-6b4e-4f8a-9d17-2c5b8e0a79de",
"retailer": "Ulta",
"amount": 1250.5,
"amount_won_back": 400,
"retailer_chargeback_code": "COMP-104",
"category": "Damaged/Defective Item",
"description": "Cartons received with crushed corners",
"chargeback_date": "2026-06-14",
"uploaded_at": "2026-06-15T02:11:04Z",
"dispute_deadline": "2026-07-14",
"dispute_status": "Pending Review",
"is_expired": false,
"closed": false
}
],
"total_count": 1342,
"page": 1,
"page_size": 50
}
}{
"message": "Invalid date for start_date. Expected YYYY-MM-DD",
"error": {
"code": "INVALID_REQUEST"
}
}{
"message": "Unauthorized",
"error": {
"code": "UNAUTHORIZED"
}
}{
"message": "Retailer not found",
"error": {
"code": "NOT_FOUND"
}
}{
"message": "Error fetching chargebacks",
"error": {
"code": "INTERNAL_SERVER_ERROR"
}
}Get Chargebacks
Get a list of your chargebacks, newest first.
curl --request GET \
--url https://api.retailreadyai.com/api/v1/chargebacks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.retailreadyai.com/api/v1/chargebacks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.retailreadyai.com/api/v1/chargebacks', 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.retailreadyai.com/api/v1/chargebacks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.retailreadyai.com/api/v1/chargebacks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.retailreadyai.com/api/v1/chargebacks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.retailreadyai.com/api/v1/chargebacks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "Chargebacks retrieved successfully",
"data": {
"items": [
{
"id": "9f2bc4e1-77a3-4c10-b0d2-1a5e9f3b8c31",
"chargeback_id": "CB-88213",
"po_number": "4500912233",
"matched_orders": [
{
"order_id": "7c4e1b90-2f8d-4a61-9c33-5b0e77d41a02",
"picksheet_code": "RR-8891"
}
],
"retailer_id": "3a1f9c22-6b4e-4f8a-9d17-2c5b8e0a79de",
"retailer": "Ulta",
"amount": 1250.5,
"amount_won_back": 400,
"retailer_chargeback_code": "COMP-104",
"category": "Damaged/Defective Item",
"description": "Cartons received with crushed corners",
"chargeback_date": "2026-06-14",
"uploaded_at": "2026-06-15T02:11:04Z",
"dispute_deadline": "2026-07-14",
"dispute_status": "Pending Review",
"is_expired": false,
"closed": false
}
],
"total_count": 1342,
"page": 1,
"page_size": 50
}
}{
"message": "Invalid date for start_date. Expected YYYY-MM-DD",
"error": {
"code": "INVALID_REQUEST"
}
}{
"message": "Unauthorized",
"error": {
"code": "UNAUTHORIZED"
}
}{
"message": "Retailer not found",
"error": {
"code": "NOT_FOUND"
}
}{
"message": "Error fetching chargebacks",
"error": {
"code": "INTERNAL_SERVER_ERROR"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Page number (1-indexed). Defaults to 1.
x >= 1Number of items per page. Defaults to 50, and must be between 1 and 100.
1 <= x <= 100Filter by retailer. Must be a retailer your brand is or was associated with.
Filter by purchase order number. Matched exactly.
Filter by the retailer's chargeback number. Retailers assign these, so more than one chargeback can share a number.
Only chargebacks the retailer issued on or after this date (YYYY-MM-DD).
Only chargebacks the retailer issued on or before this date (YYYY-MM-DD).
Filter by dispute status. Comma-separate to match several, e.g. Won,Lost.
Won, Lost, Pending Review, Not Disputed, Ready to Dispute, Generating Proposal, Submitting, Submission Failed, Expired Filter to settled chargebacks (true) or ones still open (false).

