# Respond to chargebacks on store orders

> Follow the disputes that shoppers' banks open on store orders, then send the bank evidence or accept the dispute before its deadline.

Source: https://www.coritan.com/docs/organizations/commerce/disputes/

In the dashboard:

- /dashboard/organizations/…/commerce/disputes: https://www.coritan.com/dashboard/organizations

**Disputes** lists the chargebacks and inquiries that shoppers' banks open on store payments. In a *chargeback*, the shopper asks their bank to take back what they paid, and Coritan takes the amount from your balance while the bank decides. An *inquiry* is a bank asking about a payment before it takes the money back. Answer each one before its deadline: send evidence that the order was genuine and reached the shopper, or accept the dispute and let the shopper keep the money.

## Before you begin

- You need the Billing role or higher to open **Disputes**, and to send evidence or accept a dispute.
- Coritan builds the evidence from the order and from the store's settings. Set the **Refund policy**, **Shipping policy** and **Return window** under [Returns and policies](/docs/organizations/commerce/settings/#returns-and-policies), and the **Terms of sale** under [Checkout](/docs/organizations/commerce/settings/#checkout), so that the evidence can quote them.
- Banks usually ask for tracking and delivery. Add the tracking number when you ship, and mark the parcel delivered, as [Ship a parcel you pack](/docs/organizations/commerce/orders/#ship-a-parcel-you-pack) describes.

## What a dispute does to the balance and the order

When a chargeback opens:

- Coritan takes the disputed amount from your balance at once, with the dispute fee when there is one. Both come off your next payout, and the ledger lists them as **Chargeback**, as [Read the ledger](/docs/organizations/commerce/payouts/#read-the-ledger) shows.
- The order is held for review, unless part of it has shipped, it is cancelled or it is held already. Nothing ships until you release it, as [Release a held order](/docs/organizations/commerce/orders/#release-a-held-order) describes.
- If you win, the amount comes back to the balance, and the fee too when the payment provider returns it. Losing or accepting the dispute keeps both taken.

An inquiry takes no money, though it still holds the order. You cannot accept an inquiry: answer it with evidence, or refund the order. If the bank turns it into a chargeback, Coritan takes the money then.

## Find a dispute

1. In the [dashboard](https://www.coritan.com/dashboard/organizations), open the organization, then **Commerce**, then **Disputes**.
2. Choose **All**, **Needs a response**, **Under review**, **Won**, **Lost**, **Accepted** or **Closed**. **Needs a response** shows how many disputes are waiting for you.
3. Select a dispute to open its page.

Each row shows the **Dispute** with the shopper's reason and the payment provider, its **Order**, its **Status**, the **Amount** and the date it was **Opened**. **Inquiry** marks an inquiry. A dispute that needs a response gives its deadline under its status, highlighted as the deadline nears, and **Deadline passed** once it has gone. Under the amount, an inquiry says **Nothing taken yet**, and a won dispute says **Returned to the balance**.

| Status | What it means |
| --- | --- |
| Needs a response | The bank is waiting for your evidence until the deadline. |
| Under review | The bank is deciding, usually because you sent evidence. Nothing more can be sent. |
| Won | The bank decided for the store. |
| Lost | The bank decided for the shopper. |
| Accepted | You accepted the dispute, and the shopper keeps the money. |
| Closed | The payment provider closed it without a decision, such as an inquiry that went no further. |

## Read a dispute

The header shows the amount, the shopper's reason, the payment provider and when the dispute opened. The alert under it says what the dispute needs and by when.

**Details** gives the **Amount**, the **Dispute fee**, the **Kind** (**Chargeback** or **Inquiry**), the **Reason**, the **Provider** and its **Reference**, the **Order**, and the date to **Respond by**. **Open ledger entries** opens the order's entries in the ledger. **History** lists what the payment provider said about the dispute and what it did to the balance, newest first.

The reason decides which fields the evidence form shows first:

| Reason | What the bank reads first |
| --- | --- |
| **Not received** | The **Shipping address**, **Carrier**, **Tracking numbers** and **Shipping date**. |
| **Not as described** or **Refund not processed** | **Refund policy, and how the shopper saw it**, and **Why no refund was given**. |
| **Fraudulent**, **Not authorised** or **Unrecognised charge** | The **IP address at purchase**, the **Billing address** and **Shipping address**, the **Tracking numbers** and the **Account activity**. |
| **Duplicate charge** | **The other charge**, and **Why the charges are not duplicates**. |
| **Subscription cancelled** | **Cancellation policy, and how the shopper saw it**, and **Why the subscription was not cancelled**. |

Every dispute also shows the shopper's **Name** and **Email address**, **What was sold** and the **Summary for the bank**.

## Send evidence

1. On the dispute's page, read the **Evidence** card. Coritan fills it from the order and the store's settings, and keeps it up to date with them until you change a field. A field filled this way says **From the order**.
2. If **Banks usually ask for more** appears, add what it names in the fields, or as a link: a tracking number, a delivery, the shopper accepting the store's terms, a refund policy or the shopper's IP address.
3. Correct or add to the fields. The link under them shows the fields the form hides. Once saved, a field you changed says **You changed this**, and **Use the order's text** puts the order's text back.
4. Under **Links**, enter the address of a document the bank can open in **Add a link**, such as a delivery confirmation or your conversation with the shopper, then select **Add link**. A dispute takes up to 20 links, each starting with `https://` or `http://`.
5. Select **Save evidence** to keep your work for later, or **Discard changes** to drop it.
6. Select **Send evidence…**, which reads **Save and send…** while you have unsaved changes. Then select **Send evidence** to confirm, or **Keep editing** to go back.

> [!WARNING]
> A bank takes one submission. Once you send the evidence, nothing can be added or changed.

The payment provider sends the evidence to the shopper's bank, with the links after the **Summary for the bank**. PayPal sends it as one note. The dispute moves to Under review, and the card becomes **Evidence sent**, with what was sent, when and by whom.

## Accept a dispute

Accept a chargeback when you have no evidence, or when the shopper is right. It ends the dispute without waiting for the bank.

1. On the dispute's page, select **Accept dispute…**.
2. For a PayPal dispute, you can write a **Note to PayPal**, which PayPal passes on with the answer.
3. Type the amount the dialog shows, such as `49.00`, then select **Accept dispute**. **Go back** closes the dialog.

The dispute moves to Accepted and closes as lost. The shopper keeps the money, which stays taken from the balance with the dispute fee, and no evidence is sent.

> [!CAUTION]
> Accepting a dispute cannot be undone.

## Result

- Evidence you sent moves the dispute to Under review, and it closes as Won or Lost when the bank decides.
- A won dispute puts the amount back in the balance, and its row says **Returned to the balance**.
- A lost or accepted dispute keeps the amount and the fee taken from the balance.

## Troubleshooting

**Disputes** says it is for owners, admins and billing
: Your role is below Billing. Ask an owner to change it.

The evidence form is missing
: The dispute no longer waits for evidence: the evidence was sent, the deadline passed or the dispute closed. The card shows what was sent, or why nothing was.

**Send evidence…** cannot be selected
: No field holds any text and there are no links, the fields and links come to more than 150,000 characters, or the payment account is not connected. Under the form, a count shows when the evidence is too long.

An alert says **The deadline has passed**
: The bank decides on what it has. You can still accept a chargeback.

An alert says **The payment account is not connected**
: The evidence cannot be sent from here. Answer in the payment provider's own dashboard before the deadline, or select **Open a ticket**.

An alert says **Could not send the evidence** or **Could not accept the dispute**
: The payment provider refused, and the alert quotes its answer. Nothing was sent or accepted, so you can try again.

The button reads **Record evidence…**
: The payment provider takes evidence only in its own dashboard. Recording keeps the evidence here as final, and you then send it in the provider's dashboard before the deadline. Until the provider moves the dispute on, the row says **Evidence recorded, not sent**.

**Accept dispute…** is missing
: The dispute is an inquiry, or it no longer needs a response.

The order is held for review
: A new dispute holds its order until you release it. Release it once you have checked the order, as [Release a held order](/docs/organizations/commerce/orders/#release-a-held-order) describes.

## Related

- [Track your store's balance and payouts](/docs/organizations/commerce/payouts/)
- [Fulfil, refund and cancel store orders](/docs/organizations/commerce/orders/)
- [Change your store's settings](/docs/organizations/commerce/settings/)
- [Follow payment disputes](/docs/organizations/billing/disputes/)

## With the API

`GET https://api.coritan.com/api/v1/orgs/{org_slug}/commerce/disputes` lists the disputes, filtered by `status`, and `GET /commerce/disputes/{dispute_id}` answers one with its evidence. `PUT /commerce/disputes/{dispute_id}/evidence` changes the fields and links, `POST /commerce/disputes/{dispute_id}/submit` sends the evidence and `POST /commerce/disputes/{dispute_id}/accept` accepts the dispute. The last two take an `Idempotency-Key` header, so a retry cannot answer twice. [Answer disputes on store orders](/docs/organizations/storefront/commerce-disputes/) has the details.

```bash
curl "https://api.coritan.com/api/v1/orgs/acme/commerce/disputes?status=needs_response" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```
