Skip to main content
GET
/
disputes
/
{dispute_id}
JavaScript
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});

const getDispute = await client.disputes.retrieve('dispute_id');

console.log(getDispute.brand_id);
import os
from dodopayments import DodoPayments

client = DodoPayments(
bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted
)
get_dispute = client.disputes.retrieve(
"dispute_id",
)
print(get_dispute.brand_id)
package main

import (
"context"
"fmt"

"github.com/dodopayments/dodopayments-go"
"github.com/dodopayments/dodopayments-go/option"
)

func main() {
client := dodopayments.NewClient(
option.WithBearerToken("My Bearer Token"),
)
getDispute, err := client.Disputes.Get(context.TODO(), "dispute_id")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", getDispute.BrandID)
}
package com.dodopayments.api.example;

import com.dodopayments.api.client.DodoPaymentsClient;
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;
import com.dodopayments.api.models.disputes.DisputeRetrieveParams;
import com.dodopayments.api.models.disputes.GetDispute;

public final class Main {
private Main() {}

public static void main(String[] args) {
DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();

GetDispute getDispute = client.disputes().retrieve("dispute_id");
}
}
package com.dodopayments.api.example

import com.dodopayments.api.client.DodoPaymentsClient
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient
import com.dodopayments.api.models.disputes.DisputeRetrieveParams
import com.dodopayments.api.models.disputes.GetDispute

fun main() {
val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()

val getDispute: GetDispute = client.disputes().retrieve("dispute_id")
}
require "dodopayments"

dodo_payments = Dodopayments::Client.new(
bearer_token: "My Bearer Token",
environment: "test_mode" # defaults to "live_mode"
)

get_dispute = dodo_payments.disputes.retrieve("dispute_id")

puts(get_dispute)
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Dodopayments\Client;
use Dodopayments\Core\Exceptions\APIException;

$client = new Client(
bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
environment: 'test_mode',
);

try {
$getDispute = $client->disputes->retrieve('dispute_id');

var_dump($getDispute);
} catch (APIException $e) {
echo $e->getMessage();
}
using System;
using DodoPayments.Client;
using DodoPayments.Client.Models.Disputes;

DodoPaymentsClient client = new();

DisputeRetrieveParams parameters = new() { DisputeID = "dispute_id" };

var getDispute = await client.Disputes.Retrieve(parameters);

Console.WriteLine(getDispute);
use dodopayments::Client;

#[tokio::main]
async fn main() -> dodopayments::Result<()> {
let client = Client::from_env()?;
let dispute_id = "dispute_id";
let result = client
.disputes()
.retrieve()
.dispute_id(dispute_id)
.await?;
println!("{result:?}");
Ok(())
}
curl --request GET \
--url https://test.dodopayments.com/disputes/{dispute_id} \
--header 'Authorization: Bearer <token>'
{
  "amount": "<string>",
  "brand_id": "<string>",
  "business_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "currency": "<string>",
  "customer": {
    "customer_id": "<string>",
    "email": "<string>",
    "name": "<string>",
    "metadata": {},
    "phone_number": "<string>"
  },
  "dispute_id": "<string>",
  "payment_id": "<string>",
  "is_resolved_by_rdr": true,
  "reason": "<string>",
  "remarks": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

dispute_id
string
required

Dispute Id

Response

amount
string
required

The amount involved in the dispute, represented as a string to accommodate precision.

brand_id
string
required

Brand id this dispute belongs to

business_id
string
required

The unique identifier of the business involved in the dispute.

created_at
string<date-time>
required

The timestamp of when the dispute was created, in UTC.

currency
string
required

The currency of the disputed amount, represented as an ISO 4217 currency code.

customer
object
required

The customer who filed the dispute

dispute_id
string
required

The unique identifier of the dispute.

dispute_stage
enum<string>
required

The current stage of the dispute process.

Available options:
pre_dispute,
dispute,
pre_arbitration
dispute_status
enum<string>
required

The current status of the dispute.

Available options:
dispute_opened,
dispute_expired,
dispute_accepted,
dispute_cancelled,
dispute_challenged,
dispute_won,
dispute_lost
payment_id
string
required

The unique identifier of the payment associated with the dispute.

payment_provider
enum<string>
required

Which processor handled the underlying payment. stripe / adyen for BYOP routes (the merchant's own payment connector); dodo for everything Dodo processed itself.

Available options:
stripe,
adyen,
dodo
is_resolved_by_rdr
boolean | null

Whether the dispute was resolved by Rapid Dispute Resolution

reason
string | null

Reason for the dispute

remarks
string | null

Remarks

Last modified on March 25, 2026