> ## 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.

# v1.112.0 (5 augusti 2026)

> Rabattkoder får beloppsrabatter, schemaläggning, regler för kundberättigande och alternativ per valuta, tillsammans med en ombyggd inbyggd webhooks-upplevelse med e-postaviseringar — samt Cash App Pay för prenumerationer, SEPA Direct Debit för engångsbetalningar i EUR, kundvänliga meddelanden om betalningsfel, payout webhooks, självbetjäning för byte av inloggnings-e-postadress, en inställning som låter kunder avsluta sina egna prenumerationer och ett valutafilter för listade betalningar.

## Nya funktioner

### 1. **Rabattkoder: Beloppsrabatter, schemaläggning och regler för berättigande**

Rabattkoder är inte längre begränsade till procentuella rabatter. En kod kan nu dra av ett fast belopp, börja gälla enligt ett schema, ha olika priser per valuta och begränsa vem som får använda den.

**Beloppsrabatter**

Ange `type` till `flat` för att dra av ett fast belopp i stället för en procentsats. Avdraget samlas för hela varukorgen i stället för att tillämpas per radartikel.

| Typ     | API-värde    | Beteende                                                                 |
| ------- | ------------ | ------------------------------------------------------------------------ |
| Procent | `percentage` | Minskar priset med en procentsats, med möjlighet till ett tak per valuta |
| Belopp  | `flat`       | Drar av ett fast belopp som samlas för hela varukorgen                   |

<Frame>
  <img src="https://mintcdn.com/dodopayments/Rh05LkBeJE32G3qq/images/discount-codes/discount-flat-discount-option.png?fit=max&auto=format&n=Rh05LkBeJE32G3qq&q=85&s=38ce7f39a1ccbd26c61718f685fc4e71" alt="Rabattkodsredigerare med typen Belopp vald, som visar ett fast avdrag på 500 INR" style={{ maxHeight: '500px', width: 'auto' }} width="3474" height="1968" data-path="images/discount-codes/discount-flat-discount-option.png" />
</Frame>

**Alternativ per valuta**

`currency_options` gör att en kod fungerar korrekt för alla valutor du säljer i. Varje post anger, för en enskild valuta, den maximala rabatten (själva avdraget för en beloppskod, ett tak för en procentkod) och det lägsta varukorgsvärdet. En beloppsrabatt kräver minst ett valutaalternativ med ett lösbart standardvärde; valutaalternativ är valfria för procentuella rabatter.

**Kundberättigande**

`customer_eligibility` styr vem som får använda en kod:

| Värde        | Vem får använda den                                   |
| ------------ | ----------------------------------------------------- |
| `any`        | Alla kunder. Detta är standardvärdet.                 |
| `first_time` | Kunder som inte har handlat av dig tidigare.          |
| `existing`   | Kunder som har handlat av dig tidigare.               |
| `specific`   | Endast kunder som du lägger till i kodens allow list. |

<Frame>
  <img src="https://mintcdn.com/dodopayments/Rh05LkBeJE32G3qq/images/discount-codes/discount-restriction.png?fit=max&auto=format&n=Rh05LkBeJE32G3qq&q=85&s=3c01240807a7ca2f13b33a9f4cf4ce43" alt="Rullgardinsmeny för kundberättigande som visar alternativen Alla, Förstagångskund, Befintlig och Specifik kund" style={{ maxHeight: '500px', width: 'auto' }} width="2832" height="830" data-path="images/discount-codes/discount-restriction.png" />
</Frame>

Hantera allow list från dashboarden eller med de nya endpoints: `GET /discounts/{discount_id}/customers` för att lista de kopplade kunderna, `POST /discounts/{discount_id}/customers` för att koppla dem och `DELETE /discounts/{discount_id}/customers/{customer_id}` för att koppla från en kund.

<Warning>
  En kod med `specific` börjar med **noll** berättigade kunder och avvisar alla användningsförsök tills du kopplar kunder till den.
</Warning>

**Schemaläggning och begränsningar per kund**

Ange `starts_at` för att schemalägga en kod för en framtida lansering — om du lämnar den tom förblir koden aktiv direkt, och den måste infalla strikt före `expires_at`. Använd `per_customer_usage_limit` för att begränsa hur ofta en enskild kund kan använda en kod, som en separat gräns som inte får överstiga den övergripande `usage_limit`.

<Info>
  Det lägsta varukorgsvärdet mäts alltid mot varukorgens ursprungliga priser, aldrig mot totalsumman under pågående stapling. Ordningen för stapling påverkar därför aldrig om ett minimum uppnås.
</Info>

Läs mer: [Rabatter](/features/discount-codes) | [Skapa rabatt](/api-reference/discounts/create-discount)

### 2. **En ombyggd webhooks-upplevelse**

Dashboardens webhooks-avsnitt har byggts om till en inbyggd upplevelse som ersätter den inbäddade portalen. Allt finns nu i dashboarden med enhetliga tabeller, filter och navigering, och fungerar korrekt på mobila enheter.

* **Endpoints** — skapa och redigera endpoints i ett sidofönster, välj händelsetyper från ett sökbart träd och se felprocenten för de senaste 24 timmarna med en blick.
* **Aktivitet och loggar** — följ leveransförsök över tid i diagrammet **Leveransaktivitet**, bläddra bland levererade meddelanden och öppna en sida med **meddelandedetaljer** för att granska payloaden och varje leveransförsök, inklusive dess svarskod och varaktighet. Varje försök kan återspelas därifrån.
* **Händelsekatalog** — bläddra bland alla händelsetyper som Dodo Payments skickar, med deras schema och en exempel-payload.
* **Endpointöversikt** — leveransstatistik för de senaste 24 timmarna, signeringshemligheten som kan visas eller roteras samt **Återuppspelningshistorik**.
* **Testning** — skicka en exempelhändelse till en endpoint för att verifiera din mottagare innan du går live.
* **Avancerat** — begränsa leveranshastigheten, hantera de anpassade headers som skickas med varje förfrågan till endpointen och redigera dess transformation.
* **Massåteruppspelning** — återställ misslyckade meddelanden på en endpoint, spela upp meddelanden som aldrig skickades eller spela upp ett filtrerat intervall.
* **E-postaviseringar** — en ny flik **Inställningar** där du kan ange adresser som ska få e-post när leveranser till en endpoint börjar misslyckas. Separera flera adresser med kommatecken och lämna fältet tomt för att stänga av aviseringar.

<Info>
  Detta är endast en ändring i dashboarden. Dina befintliga endpoints, signeringshemligheter, signaturverifiering, händelsenamn och payloads är oförändrade — inget integrationsarbete krävs.
</Info>

Läs mer: [Webhooks](/developer-resources/webhooks) | [Webhook-händelser](/developer-resources/webhooks/intents/webhook-events-guide)

### 3. **Cash App Pay för prenumerationer**

Cash App Pay kan nu användas för en återkommande prenumeration, inte bara för en engångsbetalning. Det är tillgängligt i amerikanska kassor som debiteras i USD, tillsammans med de befintliga kortalternativen.

Läs mer: [Digitala plånböcker](/features/payment-methods/digital-wallets)

### 4. **SEPA Direct Debit**

SEPA Direct Debit är nu tillgängligt i hela euroområdet och låter kunder betala direkt från sitt bankkonto i stället för med kort. Det erbjuds i kassor i EUR för engångsbetalningar.

<Warning>
  SEPA Direct Debit är inte omedelbart. Det tar **6 bankdagar** att bekräfta en betalning, så behandla inte auktorisering som slutlig betalning — genomför leveransen först när betalningen har nått statusen succeeded.
</Warning>

Läs mer: [Europeiska betalningsmetoder](/features/payment-methods/europe)

### 5. **Tydligare meddelanden om betalningsfel**

När en betalning misslyckas ser du och kunden nu specialskriven text i stället för rå proces­sortext. Varje fel hanteras genom en taxonomi med **46 enhetliga felkoder**, där varje kod är anpassad till två målgrupper:

* **Du** ser en rubrik och en rekommenderad åtgärd för betalningen, så att du vet om du ska be kunden försöka igen, kontakta sin bank eller använda ett annat kort. `error_message` på Payment-objektet innehåller nu denna text när `error_code` är en igenkänd enhetlig kod.
* **Din kund** ser en förklaring på ett enkelt språk på skärmen för misslyckade betalningar i kassan, i Customer Portal och i kravmejl — till exempel *"Din kortsäkerhetskod (CVC) verkar inte stämma. Ange den igen och försök på nytt."*

<Warning>
  Vid bedrägerikänsliga avvisningar — `FRAUDULENT`, `LOST_CARD`, `STOLEN_CARD` och `PICKUP_CARD` — ser kunden alltid ett generiskt meddelande, så att den verkliga orsaken aldrig avslöjas. Du ser fortfarande den verkliga orsaken, markerad med en varning om att den inte ska delas.
</Warning>

Läs mer: [Transaktionsfel](/api-reference/transaction-failures) | [Betalningar](/features/transactions/payments) | [Hämta betalningsdetaljer](/api-reference/payments/get-payments-1)

### 6. **Låt kunder avsluta sina egna prenumerationer**

**Tillåt avslut av prenumeration** är nu en fristående inställning under fliken **Prenumerationer** i dashboardinställningarna, och den tillämpas genom hela flödet. När du stänger av den inaktiverar Customer Portal avbrytknappen och API:t avvisar kundinitierade avslut med ett `403` — både omedelbart avslut och flödet "avsluta vid nästa faktureringsdatum". Tidigare dolde inställningen bara knappen, så en beslutsam kund kunde fortfarande avsluta via API:t.

Inställningen är **aktiverad som standard**. Dina egna avslut via merchant API och dashboard påverkas aldrig, och en kund kan alltid återkalla ett avslut som redan har schemalagts.

Läs mer: [Customer Portal](/features/customer-portal) | [Prenumerationer](/features/subscription)

### 7. **Payout webhooks**

Du får nu webhooks för dina egna utbetalningar, så att du kan stämma av dem i dina redovisningssystem utan att använda polling.

| Händelse             | Utlöses när                                                                                   |
| -------------------- | --------------------------------------------------------------------------------------------- |
| `payout.created`     | En utbetalning skapas, antingen genom den automatiska utbetalningscykeln eller utanför cykeln |
| `payout.in_progress` | Utbetalningens förfallodatum inträffar och behandlingen startar                               |
| `payout.on_hold`     | Utbetalningen pausas eller placeras under granskning                                          |
| `payout.success`     | Utbetalningen till ditt bankkonto genomförs                                                   |
| `payout.failed`      | Utbetalningen misslyckas och beloppet samt avgifterna krediteras tillbaka till din plånbok    |

<Note>
  `payout.created` skickades tidigare som `payout.not_initiated`. Om en befintlig endpoint filtrerar på `payout.not_initiated` uppdaterar du filtret till `payout.created` så att det fortsätter att matcha. Fältet `status` i payloaden rapporterar fortfarande `not_initiated` i detta skede.
</Note>

Läs mer: [Payout Webhooks](/developer-resources/webhooks/intents/payout) | [Utbetalningsprocessen](/features/payouts/payout-structure)

### 8. **Ändra din inloggnings-e-postadress från dashboarden**

Du kan nu ändra e-postadressen du loggar in med utan att kontakta supporten. Fliken Konto har gjorts om och innehåller ett nytt avsnitt för **Ändra e-postadress**, med knappen **Ändra e-postadress** som startar flödet.

Verifieringen sker i två steg: vi skickar en kod till din **nuvarande** adress för att bekräfta att det är du, och sedan en andra kod till din **nya** adress för att bekräfta att du har kontroll över den. När båda har verifierats:

* Loggar du fortsättningsvis in med den nya adressen. Den tidigare adressen slutar fungera för lösenord, magiska länkar och koder som skickas via e-post.
* Kopplas alla länkade identitetsleverantörer, till exempel Google eller GitHub-inloggning, bort och måste anslutas igen.
* Förblir ditt lösenord, dina företag, teamåtkomst och verifieringsstatus oförändrade.
* Skickas en avisering till din tidigare adress så att en oväntad ändring aldrig sker obemärkt.

Läs mer: [Mitt konto](/miscellaneous/accounts)

### 9. **Analys: Nya widgets och förbättringar**

Med utgångspunkt i ombyggnaden av Analytics v3 lägger den här versionen till nya visualiseringar och förbättrar de befintliga.

* **Intäkter per land visas nu på en helbreddskarta med färgskikt**, med den rangordnade landlistan bredvid, och kortet kan delas precis som resten.
* **Omritade trenddiagram** med hårkors vid hovring, en rullande datumetikett på x-axeln och en kompakt tooltip.
* **Nya förinställningar för datum** — **Senaste 30 dagarna** ersätter Senaste 4 veckorna och **Senaste 6 månaderna** läggs till i listan.
* **Dina filter sparas.** Förinställningen för datum och jämförelseläget sparas nu per företag och följer med dig mellan enheter i stället för att återställas till standardvärdena varje session.
* **De främsta kunderna identifieras med namn**, med e-postadress som reserv.
* Intäkter per land returnerar nu upp till de **150 främsta** länderna.

Läs mer: [Analys i dashboarden](/features/analytics-and-reporting)

## Förbättringar och buggfixar

### 10. **Filtrera betalningar efter valuta**

`GET /payments` accepterar nu en valfri **`currency`**-queryparameter, så att du kan lista endast betalningar som genomförts i en viss valuta — till exempel `GET /payments?currency=EUR`. Samma filter finns i tabellen Betalningar i dashboarden.

Läs mer: [Lista betalningar](/api-reference/payments/get-payments)

### 11. **Svarstiden för tvister förlängs till 10 dagar**

Du har nu **10 dagar** på dig att svara på en tvist efter att den skapats, jämfört med tidigare 4 dagar. Nedräkningen för tvisten i dashboarden och svarsfristen som returneras av API:t återspeglar båda det längre tidsfönstret.

Läs mer: [Tvister](/features/transactions/disputes)

### 12. **Tydligare formulär för utbetalningskonton**

Det är nu mindre tvetydigt att lägga till ett bankkonto för utbetalningar. Fältetiketter, beskrivningar och tooltips anpassas nu efter din företagstyp, så att kontoinnehavarens och förmånstagarens namn inte längre ser ut som dubbletter för enskilda näringsidkare. Om du väljer **Annat** som bank kan du skriva namnet fritt, den kinesiska inhemska bankkoden är märkt **CNAPS** och sidan för utbetalningar är synlig även i testläge, så att du kan nå dina länkade konton från båda lägena.

Läs mer: [Utbetalningsprocessen](/features/payouts/payout-structure)

### Övriga korrigeringar och förbättringar

* **Krediter vid planändringar återförs när en betalning misslyckas.** Proraterade krediter som utfärdats under en ändring av prenumerationsplan lämnas inte längre kvar om den resulterande betalningen inte genomförs.
* **Fakturor för betalda provperioder visar provperiodens debitering**, inte det vanliga återkommande priset.
* **Procentuella rabatter respekterar det lägsta varukorgsvärdet**, mätt mot baspriset i stället för totalsumman, och en timeout för rabattlås returnerar nu en särskild felkod i stället för en generell `503`.
* **Det går nu att ta bort en redan borttagen betalningsmetod** utan fel, vilket gör anropet säkert idempotent.
* **Valutan som används för Indiens mandatgräns har korrigerats** vid uppdatering av en prenumerations betalningsmetod.
* **Poster i kreditboken som överskrider de tillåtna gränserna** avvisas med ett typat `400` i stället för att misslyckas senare.
* **Pay-what-you-want-produkter stöder ett fast belopp** i delade kassalänkar, och entitlement-ID:n visas i panelen med entitlement-detaljer.
* Korrigeringar i Analytics: serier för livstidsvärde, tillägg inkluderade i MRR, ingen periodjämförelse för intervall som omfattar all tid, serier som slutar vid det aktuella intervallet samt tydligare etiketter för intervall och jämförelser.
* Mindre buggfixar och stabilitetsförbättringar på hela plattformen.
