Disputes Overview

The dispute process involves the following parties:

  1. Cardholder: The owner of the card involved in a transaction.
  2. Merchant: The party who sold the goods or services that are under dispute.
  3. Card Issuer: The bank that issued the card to the cardholder.
  4. Acquirer: The bank tasked with acquiring payment on the merchant's behalf.
  5. Card Association: The card brands (Visa, Mastercard, and others) oversee the process.

Dispute lifecycle

RFI

A dispute can be created upon receiving an RFI (Request For Information), which is a preliminary step before a chargeback (no movement of funds).

It starts with Open status - RFI_OPEN. In response, the merchant can either refund the payment or upload evidence with clarifications about the purchase.

If the merchant refunds the payment, the status will be updated to Refunded, and the dispute will not be escalated into a chargeback.

If the merchant provided evidence, the status will be updated to RFI_UNDER_REVIEW.

If the evidence provided proves sufficient, depending on the Card Scheme rules, the status will be updated to RFI_CLOSED, which means the RFI has timed out and did not escalate into a chargeback.

Chargeback

In some cases, a chargeback will follow an RFI if it wasn’t resolved at the RFI stage. However, in most cases the dispute is created as a Chargeback right away with the status CHARGEBACK_OPEN, and skips the optional RFI stage. At this point, the funds are deducted from the merchant’s account, and the merchant can’t refund the money on their own.

Merchants have a timeframe of 14-40 days (the time frame is being detected by the card scheme) to submit evidence against the chargeback. If no actions are taken within this timeframe, the chargeback status is updated to LOST.

Uploading evidence changes the dispute status to CHARGEBACK_UNDER_REVIEW. The evidence will be reviewed by the card schemes. The timeframe varies depending on the card scheme, up to 80 days in some cases.

Once the review is complete, the chargeback status will be updated to WON or LOST, as decided by the card issuer.

Dispute statuses:

  • RFI_OPEN - expecting evidence from the client
  • RFI_UNDER_REVIEW
  • RFI_CLOSED - final status
  • CHARGEBACK_OPEN - expecting evidence from the client
  • CHARGEBACK_UNDER_REVIEW
  • WON - final status
  • LOST - final status

Responding to disputes using the API

Step 1: Find out when a dispute is opened

Register the Transaction Updated Webhook to receive a transaction object with all the disputes statuses. All the transaction's disputes and their current status will be returned under updatedEvent > currentEntity > disputes.

Step 2: Decide how to deal with the dispute (accept or submit evidence).

To accept the dispute, skip to step 4. To submit evidence, go to step 3.

Step 3: Respond to the dispute with evidence

To respond to the RFI/chargeback, you should upload evidence, associate it with the correct dispute and submit the evidence to the issuing bank.

To upload evidence:

  1. Call Generate Evidence Upload Url.
  2. Retrieve the upload_url and upload_token.
  3. Call the retrieved upload_url as an HTTP POST, and pass the upload_token as a path parameter.

For example:

Copy

Evidence Upload

  1. Retrieve the payload.id from the JSON response.
    For example:
Copy

payload.id should be passed as evidence.fileId below. (in this example, payload.id = "2411686768ca469dabd7cc64e52c502e")

Important: The evidence still needs to be associated with the relevant dispute after upload.

  1. Call Add Evidence to associate the evidence you uploaded with the relevant dispute. Pass the disputeId, transactionId, and accountId retrieved in step 1, and map the payload.id retrieved above to evidence.fileId.
  2. When all the evidence has been uploaded and associated with the dispute, call Submit Evidence to trigger the submission of the evidence to the issuing bank.

Step 4: Responding to a chargeback by accepting the dispute.

Accept the dispute by calling Accept Dispute - relevant only when the dispute status is CHARGEBACK_OPEN. This action moves the dispute status to LOST.

Did this help?