Retrieve Rapid Dispute Resolutions via API

Learn…

Learn how to use the Rapid Dispute Resolution (RDR) API to retrieve and manage data about pre-dispute events initiated through Visa’s Verifi platform. RDR helps reduce chargebacks by allowing merchants to auto-accept liability and automatically refund the cardholder.

You can retrieve RDR data:

  • By ARN or original transaction unique ID
  • As a full list of RDR events per transaction
  • For a date range (paginated)

What is Rapid Dispute Resolution?

Rapid Dispute Resolution (RDR) is Visa’s pre-dispute program, now fully integrated into VROL and mandatory for issuers before a chargeback can be raised. Merchants can enroll via Verifi and define auto-liability acceptance rules. If an RDR match occurs and liability is accepted, the cardholder is refunded and the funds are withdrawn from the acquirer account.

Retrieve a single Rapid Dispute Resolution

You can retrieve a single RDR by providing either:

  • The ARN (Acquirer Reference Number), or
  • The original_transaction_unique_id

Request parameters

Parameter Required Format Description
arn Yes* string (255) Acquirer Reference Number of the chargeback
original_transaction_unique_id Yes* string (255) Unique ID of the original transaction
*At least one of the two parameters must be provided.

Request example

<rapid_dispute_resolution_request>
  <arn>74537604221431003881865</arn>
</rapid_dispute_resolution_request>

Retrieve all RDR events for a transaction

To retrieve all RDR events related to a single transaction (e.g. RDR, RDR reversal, RDR transfers), use the list element.

Request example

<rapid_dispute_resolution_request>
  <original_transaction_unique_id>53b1f5eacc9e4d3a3afebb4e993fe962</original_transaction_unique_id>
  <mode>list</mode>
</rapid_dispute_resolution_request>

Retrieve Rapid Dispute Resolutions by date range

Use this method to retrieve all RDR events posted within a specified date range. The results are paginated (up to 100 entries per page).

Request parameters

Parameter Required Format Description
start_date Yes yyyy-mm-dd Start of the requested date range
end_date No yyyy-mm-dd End of the requested date range
import_date No yyyy-mm-dd Optional filter by RDR import date
page No integer Page number (default: 1)
per_page No integer Results per page (default: 100)
externally_processed No string Filter by processing source: genesis, external, or all
processing_type No string Filter by channel: card_present, card_not_present, or all

Request example

<rapid_dispute_resolution_request>
  <start_date>2025-05-01</start_date>
  <end_date>2025-05-31</end_date>
  <processing_type>card_not_present</processing_type>
  <page>1</page>
</rapid_dispute_resolution_request>

XML response example

<rapid_dispute_resolution_response>
  <type>RDR Pre-dispute</type>
  <post_date>2025-05-12</post_date>
  <reason_code>4855</reason_code>
  <reason_description>Non-receipt of merchandise</reason_description>
  <rdr_amount>300.00</rdr_amount>
  <rdr_currency>EUR</rdr_currency>
  <card_number>554960******5069</card_number>
  <arn>74537604221431003881865</arn>
  <card_brand>master</card_brand>
  <customer_email>john_doe@example.com</customer_email>
  <customer_phone>3598851248512</customer_phone>
  <transaction_type>sale3d</transaction_type>
  <original_transaction_unique_id>f9634ec5e7db…</original_transaction_unique_id>
  <original_transaction_amount>200.00</original_transaction_amount>
  <original_transaction_currency>EUR</original_transaction_currency>
  <original_transaction_merchant_transaction_id>12345</original_transaction_merchant_transaction_id>
</rapid_dispute_resolution_response>

Response parameters

Parameter Format Description
type string RDR event type (e.g. RDR Pre-dispute)
post_date string Date the RDR event was posted
reason_code string RDR reason code
reason_description string Description of the reason code
rdr_amount float Disputed amount as reported by issuer
rdr_currency string (3) Currency of the disputed amount (ISO 4217)
card_number string Masked card number
arn string Acquirer Reference Number
card_brand string Card scheme (Visa, Mastercard)
customer_email string Email address of the cardholder
customer_phone integer Phone number of the cardholder
transaction_type string Transaction type (e.g. sale3d)
original_transaction_unique_id string Unique ID of the original transaction
original_transaction_amount string Amount of the original transaction
original_transaction_currency string Currency of the original transaction
original_transaction_merchant_transaction_id string Merchant reference ID

RDR event types

Type Description
RDR Pre-dispute Initial RDR before a chargeback is raised
RDR Pre-dispute Reversal Issuer reverses a previously accepted RDR
RDR Transfer to Payment Account Retail Funds transferred from merchant account to issuer (Omnipay)
RDR Transfer to Merchant Hold Account Funds withdrawn from merchant hold account
RDR Transfer to Write-off Acq Acquirer assumes loss for the RDR
RDR Transfer to Write-off SP Service Provider assumes loss for the RDR

Error response

If no RDR is found for the given ARN or unique ID, the API returns the following:

<rapid_dispute_resolution_response>
  <status>error</status>
  <code>471</code>
  <message>Rapid Dispute Resolution not found!</message>
  <technical_message>Rapid Dispute Resolution by the given criteria cannot be found!</technical_message>
</rapid_dispute_resolution_response>