> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tvist

> Den nyttolast som skickas till din webhook-endpoint när en tvist skapas eller uppdateras, och hur man hanterar varje händelse i tvistens livscykel.

<Info>
  Som din [Merchant of Record](/features/mor-introduction), hanterar Dodo Payments tvist- och återdebiteringsprocessen med kortnätverken å dina vägnar. Dessa webhooks håller dina system synkroniserade när en tvist går igenom sin livscykel så att du kan återkalla åtkomst, samla bevis och stämma av dina register.
</Info>

## Dispute Webhook Events

En tvist avger en händelse i varje steg av dess livscykel:

| Händelse             | Utlöses när                                       | Vad det vanligtvis betyder             |
| -------------------- | ------------------------------------------------- | -------------------------------------- |
| `dispute.opened`     | En kortinnehavare öppnar en tvist på en betalning | Pengar hålls; förbered att svara       |
| `dispute.challenged` | Bevis har lämnats in för att bestrida tvisten     | Tvisten granskas av nätverket          |
| `dispute.accepted`   | Tvisten accepterades (inte bestridd)              | Pengarna återförs till kortinnehavaren |
| `dispute.cancelled`  | Tvisten drogs tillbaka eller avbröts              | Ingen ytterligare åtgärd behövs        |
| `dispute.expired`    | Svarsperioden passerade utan resolution           | Avgörs vanligtvis mot dig              |
| `dispute.won`        | Tvisten löstes till din fördel                    | Pengarna behålls                       |
| `dispute.lost`       | Tvisten löstes till kortinnehavarens fördel       | Pengarna återförs till kortinnehavaren |

<Note>
  Tvister som automatiskt löses genom [Visa Rapid Dispute Resolution (RDR)](/features/transactions/disputes#visa-rapid-dispute-resolution-rdr) visas som `dispute.lost` med `is_resolved_by_rdr: true`. Detta är förväntat — återbetalningen utfärdades automatiskt för att förhindra en formell återdebitering.
</Note>

## Hantering av tvist-händelser

När `dispute.opened` utlöstes, spärras det bestridda beloppet omedelbart. Använd händelsen för att uppdatera dina register och, om du avser att bestrida den, samla in bevis i dashboarden.

```javascript Handling dispute events expandable theme={null}
app.post('/webhooks/dodo', async (req, res) => {
  const event = req.body;

  switch (event.type) {
    case 'dispute.opened': {
      const dispute = event.data;
      // Record the dispute and consider revoking access while it is open
      await recordDispute(dispute.dispute_id, dispute.payment_id, dispute.amount);
      // Gather and submit evidence from the Dodo Payments dashboard (within 4 days)
      break;
    }
    case 'dispute.won': {
      // Funds retained — restore normal state in your records
      await markDisputeResolved(event.data.dispute_id, 'won');
      break;
    }
    case 'dispute.lost': {
      // Funds returned to the cardholder — reconcile and keep access revoked
      await markDisputeResolved(event.data.dispute_id, 'lost');
      break;
    }
  }

  res.json({ received: true });
});
```

<Tip>
  Verifiera alltid webhook-signaturen innan du behandlar — se [Webhooks guide](/developer-resources/webhooks) för installation. Hanteraren ovan utelämnar verifiering för korthetens skull.
</Tip>

<Warning>
  Du har **4 dagar** på dig att svara på en tvist efter att den skapats. Se [Dispute Response Best Practices](/features/transactions/disputes#dispute-response-best-practices) för de bevis som ska samlas in och hur man formaterar dem.
</Warning>

## Tviststatus och steg

Tvistobjektet rapporterar sin utveckling genom två fält:

| Fält             | Värden                                                                                                                            |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `dispute_status` | `dispute_opened`, `dispute_expired`, `dispute_accepted`, `dispute_cancelled`, `dispute_challenged`, `dispute_won`, `dispute_lost` |
| `dispute_stage`  | `pre_dispute`, `dispute`, `pre_arbitration`                                                                                       |

## Relaterat

<CardGroup cols={2}>
  <Card title="Managing Disputes" icon="gavel" href="/features/transactions/disputes">
    Hur man svarar på tvister, skickar in bevis och hur RDR skyddar din tvisthastighet.
  </Card>

  <Card title="Handle Payment Failures" icon="screwdriver-wrench" href="/developer-resources/handle-payment-failures">
    Upptäck och återställ misslyckade betalningar innan de blir tvister.
  </Card>
</CardGroup>

## Webhook Payload Schema
