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

# Felkoder

> Referens för Dodo Payments API och affärslogiska felkoder, grupperade efter kategori, med utlösare, meddelanden och hur man löser dem.

## Översikt

Dodo Payments API använder standard HTTP-statuskoder och anpassade felkoder för att indikera framgång eller misslyckande av API-förfrågningar. När ett fel inträffar returnerar API:et en lämplig HTTP-statuskod och ett JSON-svar som innehåller detaljerad information om felet.

Varje felrespons inkluderar:

* En HTTP-statuskod som indikerar den allmänna kategorin av felet
* En specifik felkod som identifierar den exakta naturen av felet
* Ett mänskligt läsbart felmeddelande som förklarar vad som gick fel
* Ytterligare detaljer om felet när det är tillämpligt

Att förstå dessa felkoder och deras betydelser är avgörande för:

* Felsökning av integrationsproblem
* Implementering av korrekt felhantering i din applikation
* Att ge meningsfull feedback till slutanvändare
* Att upprätthålla ett robust betalningsbehandlingssystem

<Note>
  Dessa är **API och affärslogiska** fel. För **kortavsändningsorsaker** som returneras vid ett misslyckat betalning (som `INSUFFICIENT_FUNDS` eller `CARD_DECLINED`), se istället referensen [Transaktionsfel](/api-reference/transaction-failures).
</Note>

## Standard API Felkoder

| HTTP Status | Namn                  | Beskrivning                                                       |
| ----------- | --------------------- | ----------------------------------------------------------------- |
| **400**     | Bad Request           | Begäran var felaktig eller innehöll ogiltiga parametrar           |
| **401**     | Unauthorized          | Autentiseringen misslyckades eller API-nyckeln är ogiltig         |
| **403**     | Forbidden             | API-nyckeln har inte behörighet att komma åt den begärda resursen |
| **404**     | Not Found             | Den begärda resursen finns inte                                   |
| **405**     | Method Not Allowed    | HTTP-metoden stöds inte för denna slutpunkt                       |
| **409**     | Conflict              | Begäran är i konflikt med resursens aktuella tillstånd            |
| **422**     | Unprocessable Entity  | Begäran var välformulerad men innehöll semantiska fel             |
| **429**     | Too Many Requests     | Hastighetsgräns överskriden                                       |
| **500**     | Internal Server Error | Ett oväntat fel uppstod på våra servrar                           |
| **502**     | Bad Gateway           | Servern fick ett ogiltigt svar från en uppströms server           |
| **503**     | Service Unavailable   | Tjänsten är tillfälligt otillgänglig                              |
| **504**     | Gateway Timeout       | Servern tog för lång tid att vänta på ett uppströms svar          |

## Felresponsformat

När ett fel inträffar returnerar API:et ett JSON-svar med följande struktur:

```json theme={null}
{
  "code": "UNSUPPORTED_COUNTRY",
  "message": "Country AI currently not supported"
}
```

## Felkodsreferens

Felkoderna nedan är grupperade efter området av API de relaterar till. Varje post listar villkoret som utlöser det och meddelandet API returnerar.

### Autentisering & Konto

* `UNAUTHORIZED`
  * **Utlösare:** Ingen API-nyckel eller ogiltig token / räckvidd
  * **Meddelande:** Du är inte auktoriserad att utföra denna åtgärd

* `MERCHANT_NOT_LIVE`
  * **Utlösare:** Verksamheten är fortfarande i test/sandlådeläge
  * **Meddelande:** Handlaren är inte live

### Betalningar & Kassa

* `CHECKOUT_SESSION_CONSUMED`
  * **Utlösare:** Kassasession har redan genererat en betalning
  * **Meddelande:** Kassasession har redan använts

* `NO_ELIGIBLE_PAYMENT_METHODS`
  * **Utlösare:** Efter filtrering finns inget kvar
  * **Meddelande:** Inga berättigade betalningsmetoder hittades

* `PAYMENT_NOT_SUCCEEDED`
  * **Utlösare:** Försök återbetala/behandla misslyckad betalning
  * **Meddelande:** Den angivna betalningen har inte lyckats

* `PREVIOUS_PAYMENT_PENDING`
  * **Utlösare:** Försök skapa avgift medan föregående är i icke-terminalt tillstånd
  * **Meddelande:** Kan inte skapa ny avgift eftersom föregående betalning inte är framgångsrik än

* `UNSUCCESSFUL_PAYMENT_ID`
  * **Utlösare:** Betalnings-ID refererar till misslyckad betalning
  * **Meddelande:** Betalnings-ID har en misslyckad status.

### Koppel & BYOP

Dessa fel är relaterade till handlareägda betalningskopplingar (Ta med din egen processor).

* `BYOP_CONNECTOR_DISABLED`
  * **Utlösare:** Uppdaterar en betalningsmetod på en prenumeration som dirigeras genom en inaktiverad BYOP-koppling
  * **Meddelande:** Prenumerationen dirigeras genom handlarens egen (BYOP) koppling som för närvarande är inaktiverad

* `BYOP_CUSTOM_INVOICE_ADDRESS_MISSING`
  * **Utlösare:** En handlardirigerad (BYOP) betalning saknar den nödvändiga anpassade faktureringsadressen
  * **Meddelande:** BYOP anpassad faktureringsadress krävs när en betalning styrs genom handlarens koppling

* `CONNECTOR_LABEL_ALREADY_EXISTS`
  * **Utlösare:** Skapar en koppling med en etikett som redan finns
  * **Meddelande:** En koppling med denna etikett finns redan. Vänligen välj en annan etikett.

### Återbetalningar

* `EXISTING_REFUND_REQUEST_PROCESSING`
  * **Trigger:** Tidigare återbetalningsbegäran behandlas fortfarande
  * **Message:** En återbetalningsbegäran med status "Pending" behandlas fortfarande

* `LINE_ITEM_FULLY_REFUNDED`
  * **Utlösare:** Försök att återbetala redan helt återbetalt radobjekt
  * **Meddelande:** Radobjekt {id} har redan återbetalats helt och kan inte återbetalas ytterligare.

* `LINE_ITEM_NOT_FOUND`
  * **Utlösare:** Artikel-ID är inte en del av den refererade betalningen
  * **Meddelande:** Radobjekt {id} hittas inte i betalning

* `LINE_ITEM_PRORATED`
  * **Utlösare:** Återbetalning eller uppdatering försökt på en proratad rad
  * **Meddelande:** Radobjekt {id} kan inte återbetalas eftersom det är proratad

* `LINE_ITEM_REFUND_AMOUNT_TOO_HIGH`
  * **Utlösare:** Återbetalningsbelopp > betalt belopp (inkl. moms)
  * **Meddelande:** Radobjekt {id} angivet återbetalningsbelopp inklusive moms är {amount} vilket är över det betalda beloppet {amount}

* `LINE_ITEM_REFUND_AMOUNT_TOO_LOW`
  * **Utlösare:** Återbetalningsbelopp under minimigränsen
  * **Meddelande:** Radobjekt {id} begärt återbetalningsbelopp är {amount} vilket är för lågt

* `NOTHING_TO_REFUND`
  * **Utlösare:** Inga återbetalningsbara belopp återstår; alla positiva radobjekt har redan återbetalats helt
  * **Meddelande:** Inget återbetalningsbart belopp återstår. Alla positiva radobjekt har redan återbetalats helt.

* `PARTIAL_REFUND_NOT_ALLOWED`
  * **Utlösare:** Delvis återbetalning försökte på en betalningsmetod som endast stöder fulla återbetalningar
  * **Meddelande:** Delvisa återbetalningar är inte tillåtna för denna betalningsmetod

* `PAYMENT_ALREADY_REFUNDED`
  * **Utlösare:** Dubblett återbetalning
  * **Meddelande:** Denna betalning har redan återbetalats

* `PAYMENT_HAS_BEEN_REFUNDED`
  * **Utlösare:** Betalning har återbetalats helt
  * **Meddelande:** Betalnings-ID har återbetalats helt.

* `REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT`
  * **Utlösare:** Aggregat återbetalningsbelopp > betalt belopp
  * **Meddelande:** Det beräknade återbetalningsbeloppet är större än det betalda beloppet

* `REFUND_WINDOW_EXPIRED`
  * **Utlösare:** Utanför tillåtet återbetalningsfönster
  * **Meddelande:** Återbetalningar kan inte initieras {days} dagar efter betalningsskapelse. Kontakta [support@dodopayments.com](mailto:support@dodopayments.com).

* `ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED`
  * **Utlösare:** Försök återbetala noll-belopps-betalning
  * **Meddelande:** Kan inte återbetala en betalning med noll valuta belopp

### Prenumerationer & Tillägg

* `ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED`
  * **Utlösare:** Försök att lägga till tillägg till användningsbaserade faktureringsprenumerationer
  * **Meddelande:** Tillägg i Prenumerationer stöds inte för användningsbaserad fakturering

* `ADDONS_NOT_ALLOWED_FOR_ON_DEMAND`
  * **Utlösare:** Försök att lägga till tillägg till on-demand-prenumerationer
  * **Meddelande:** Tillägg är inte tillåtna för on demand-prenumerationer

* `CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED`
  * **Utlösare:** Customer Portal försöker avbryta en schemalagd planändring medan verksamheten har inaktiverat den åtgärden
  * **Meddelande:** Avbrytande av schemalagd planändring är inaktiverad för kundportalen.

* `CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION`
  * **Utlösare:** Försök att debitera prenumeration som är schemalagd för uppsägning
  * **Meddelande:** Prenumeration schemalagd för uppsägning

* `CUSTOMER_HAS_EXISTING_SUBSCRIPTION`
  * **Utlösare:** Skapar en prenumeration för en kund som redan har en, när flera prenumerationer per kund inte är tillåtna
  * **Meddelande:** Kund {id} har en befintlig prenumeration. För att tillåta flera prenumerationer per kund, ändra företagsinställningar

* `DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL`
  * **Utlösare:** `do_not_bill` proration mode använd i en Customer Portal planändring
  * **Meddelande:** do\_not\_bill proration mode är inte tillåten i kundportalen

* `DUPLICATE_ADDON_IDS_IN_REQUEST`
  * **Utlösare:** Samma `addon_id` visas mer än en gång i begäran
  * **Meddelande:** Dubblett tilläggs-ID är inte tillåtna

* `INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED`
  * **Utlösare:** Planändring på inaktiv prenumeration
  * **Meddelande:** Ändra plan är inte stöd för inaktiva prenumerationer

* `INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE`
  * **Utlösare:** En annan proration mode än `full_immediately` användes med `effective_at: next_billing_date`
  * **Meddelande:** Endast full\_immediately proration mode är tillåtet med effective\_at: next\_billing\_date

* `MISSING_ADDON_IDS`
  * **Utlösare:** `addon_id` lista tom eller okända ID
  * **Meddelande:** En eller flera produkt-ID existerar inte: {id}

* `ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED`
  * **Utlösare:** Planskifte inte tillåtet för on-demand
  * **Meddelande:** Ändra plan stöds inte för on demand-prenumerationer

* `ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED`
  * **Utlösare:** Försök att använda on-demand med användningsbaserad fakturering
  * **Meddelande:** On Demand-prenumerationer stöds inte för användningsbaserad fakturering

* `ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND`
  * **Utlösare:** Engångsprodukt tillagd till en on-demand-prenumeration
  * **Meddelande:** Engångsprodukter är inte tillåtna för on demand-prenumerationer

* `PENDING_PLAN_CHANGE_EXISTS`
  * **Utlösare:** Ny planändring begärd medan en tidigare väntar på betalning
  * **Meddelande:** En väntande planändring finns redan för denna prenumeration. Var god vänta tills den nuvarande betalningen är klar.

* `PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED`
  * **Utlösare:** Planändring via Customer Portal medan verksamheten har inaktiverat den
  * **Meddelande:** Prenumerationsplanändring för kundportalen är inaktiverad.

* `PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION`
  * **Utlösare:** Planändring försökt på prenumeration schemalagd för uppsägning
  * **Meddelande:** Prenumeration schemalagd för uppsägning

* `SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED`
  * **Utlösare:** Schemaläggning av planändring via Customer Portal medan verksamheten har inaktiverat den
  * **Meddelande:** Schemaläggning av planändringar är inaktiverad för denna verksamhet.

* `SCHEDULED_PLAN_CHANGE_EXISTS`
  * **Utlösare:** Skapar en schemalagd planändring när en redan existerar
  * **Meddelande:** En schemalagd planändring existerar redan för denna prenumeration. Vänligen avbryt den befintliga schemalagda ändringen innan du skapar en ny.

* `SCHEDULED_PLAN_CHANGE_NOT_FOUND`
  * **Utlösare:** Refererar eller avbryter en schemalagd planändring som inte existerar
  * **Meddelande:** Ingen schemalagd planändring hittades för denna prenumeration.

* `SUBSCRIPTION_EXPIRED`
  * **Utlösare:** Fakturera förbi `ends_at`
  * **Meddelande:** Prenumeration löpte ut kan inte skapa nya avgifter

* `SUBSCRIPTION_INACTIVE`
  * **Utlösare:** Status ≠ `ACTIVE`
  * **Meddelande:** Prenumerationen är inte aktiv

* `SUBSCRIPTION_NOT_ON_DEMAND`
  * **Utlösare:** Förväntar on-demand men fick fast intervall
  * **Meddelande:** Prenumerationen är redan inte on demand

* `SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED`
  * **Utlösare:** Prenumerationsbetalningsförsök översteg maximalt antal försök
  * **Meddelande:** Högsta gräns för 10 försök överskriden för denna prenumeration

### Produkter, Kundvagn & Varumärken

* `BRAND_MISMATCH`
  * **Utlösare:** Kundvagnens produkter tillhör olika varumärken
  * **Meddelande:** Alla artiklar i produktkundvagnen bör tillhöra samma varumärke

* `BRAND_NOT_ENABLED`
  * **Utlösare:** Varumärket är inaktiverat eller inte aktivt
  * **Meddelande:** Varumärket som anges är inte aktiverat

* `BRAND_SUBMISSION_NOT_ENABLED`
  * **Utlösare:** Varumärkesverifieringsominsändningsfunktionen inte aktiverad
  * **Meddelande:** Varumärkesverifieringsominsändning är inte aktiverad

* `FILE_IN_USE`
  * **Utlösare:** Tar bort en digital produktfil som fortfarande refereras av aktiva rättighetsbeviljanden (skicka `?force=true` för att åsidosätta)
  * **Meddelande:** Digital fil refereras av aktiva beviljanden

* `INVALID_SUGGESTED_PRICE`
  * **Utlösare:** PWYW-pris \< minimipris
  * **Meddelande:** Föreslaget pris kan inte vara lägre än minimipriset. Vid pay what you want, betraktas priset som det minsta accepterade beloppet

* `LOCALIZED_PRICE_ALREADY_EXISTS`
  * **Utlösare:** Ett lokaliserat pris finns redan för denna produkt och land/valuta
  * **Meddelande:** Ett lokaliserat pris för denna produkt och land/valuta finns redan

* `LOCALIZED_PRICE_DUPLICATES_BASE`
  * **Utlösare:** Lokaliserat pris duplicerar produktens basvaluta/land
  * **Meddelande:** Lokaliserat pris duplicerar produktens basvaluta/land

* `LOCALIZED_PRICE_SHAPE_MISMATCH`
  * **Utlösare:** Formen på det lokaliserade priset matchar inte produktens `pricing_mode`
  * **Meddelande:** Formen på det lokaliserade priset matchar inte produktens pricing\_mode

* `MISSING_PRODUCT_INFORMATION`
  * **Utlösare:** Produkten finns men obligatorisk information saknas
  * **Meddelande:** Produkt {id} existerar men annan obligatorisk information saknas eller är ogiltig

* `PAY_AS_YOU_WANT_AMOUNT_REQUIRED`
  * **Utlösare:** Pris saknas för PWYW-produkt
  * **Meddelande:** Belopp är obligatoriskt för pay as you want-produkt

* `PRODUCT_CART_EMTPY`
  * **Utlösare:** Tom produktkorg inlämnad
  * **Meddelande:** produkt\_kundvagn är tom (felkoden är avsiktligt stavad `EMTPY` för att matcha det exakta värdet som API:n returnerar)

* `PRODUCT_COLLECTION_IS_DELETED`
  * **Utlösare:** Användning av en produktkollektion som har tagits bort
  * **Meddelande:** *Inget meddelande*

* `PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS`
  * **Utlösare:** Tar bort den sista produkten (eller sista gruppen med produkter) från en kollektion
  * **Meddelande:** Kan inte ta bort den sista produkten i en kollektion. Arkivera kollektionen istället.

* `PRODUCT_IS_DELETED`
  * **Utlösare:** Produkt mjukraderad
  * **Meddelande:** *Inga meddelanden*

* `PRODUCT_PRICING_MODE_REQUIRED`
  * **Utlösare:** Lägger till lokaliserade priser innan produktens `pricing_mode` är satt
  * **Meddelande:** Produkt pricing\_mode måste ställas in innan lokaliserade priser läggs till

* `SLUG_ALREADY_TAKEN`
  * **Utlösare:** Det begärda produkt slug / korta URL är redan i användning
  * **Meddelande:** Slug är redan upptaget

* `UNABLE_TO_EDIT_PRIMARY_BRAND`
  * **Utlösare:** Försök att uppdatera primärt varumärke via vanlig API
  * **Meddelande:** Primärt varumärke kan inte uppdateras via denna API-slutpunkt.

### Rabatter

* `DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION`
  * **Utlösare:** Åter-tillämpa en rabatt som redan har använts för denna prenumeration
  * **Meddelande:** Denna rabatt har redan använts på denna prenumeration

* `DISCOUNT_CODE_ALREADY_EXISTS`
  * **Utlösare:** Dubblett av rabattkod skapad
  * **Meddelande:** Rabattkod finns redan

* `DISCOUNT_CODE_EXPIRED`
  * **Utlösare:** Rabattkod förbi dess `expires_at` datum
  * **Meddelande:** Rabattkod har gått ut

* `DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED`
  * **Utlösare:** Rabatt återanvändes efter `usage_limit` nåddes
  * **Meddelande:** Användningsgräns kan inte vara mindre än times\_used / Rabattkod träffade användningsgränsen

* `DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT`
  * **Utlösare:** Planändring till en produkt som den befintliga rabatten inte gäller för
  * **Meddelande:** Rabatt inte tillämplig för den nya planens produkt

* `DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND`
  * **Utlösare:** Kod tillämpad på on-demand-prenumeration
  * **Meddelande:** Rabattkupong inte tillgänglig för on demand-prenumerationer

* `DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT`
  * **Utlösare:** Kod tillämpad på orelaterade produkter
  * **Meddelande:** Rabattkupong inte tillgänglig för denna produkt

* `INVALID_DISCOUNT_CODE`
  * **Utlösare:** Kod existerar inte / inte tillämplig
  * **Meddelande:** Ogiltig Rabattkod / Rabattkod kan inte tillämpas på någon produkt i kundvagnen

* `INVALID_PERCENTAGE`
  * **Utlösare:** Procentbelopp > 100% (eller 10,000 baspunkter)
  * **Meddelande:** Procentbeloppet kan inte vara mer än 10000 / Rabattkodens belopp kan inte vara mer än 100%

* `UNSUPPORTED_DISCOUNT_TYPE`
  * **Utlösare:** Fast-beloppsrabatter, etc., inte ännu live
  * **Meddelande:** Endast procentuella rabattkoder stöds för närvarande

### Licensnycklar

* `ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT`
  * **Utlösare:** Aktiveringar av licensnyckel: ny gräns \< befintligt instanceantal
  * **Meddelande:** Ny aktiveringsgräns kan inte vara mindre än det nuvarande instansantalet

* `INACTIVE_LICENSE_KEY`
  * **Utlösare:** Nyckelstatus ≠ `ACTIVE`
  * **Meddelande:** Licensnyckeln är inte aktiv

* `LICENSE_KEY_LIMIT_REACHED`
  * **Utlösare:** Aktiveringar = gräns
  * **Meddelande:** Aktiveringsgräns för licensnyckel nådd

* `LICENSE_KEY_NOT_FOUND`
  * **Utlösare:** Instans-ID eller nyckel-ID ogiltig
  * **Meddelande:** Instans av licensnyckel hittas inte eller tillhör inte denna licensnyckel

* `NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS`
  * **Utlösare:** Försök att ställa in utgång på sub-baserad nyckel
  * **Meddelande:** Kan inte ställa in utgångsdatum för prenumerationsbaserad licensnyckel

### Användningsbaserad Fakturering & Mätare

* `DUPLICATE_METER_IDS_IN_REQUEST`
  * **Utlösare:** Samma mätar-ID visas flera gånger i begäran
  * **Meddelande:** Dubbletter av mätar-ID är inte tillåtna

* `INVALID_QUANTITY`
  * **Utlösare:** Ogiltig kvantitet specificerad för användningsbaserat pris
  * **Meddelande:** Endast 1 kvantitet är tillåten i användningsbaserade prisprodukter

* `METER_IS_DELETED`
  * **Utlösare:** Försök att använda borttagen mätare
  * **Meddelande:** Mätaren har redan tagits bort

* `MISSING_METER_IDS`
  * **Utlösare:** Mätar-ID lista tom eller innehåller ogiltiga ID
  * **Meddelande:** Ett eller flera mätar-ID existerar inte: {id}

### Kreditbaserad Fakturering

* `CREDIT_ENTITLEMENT_IS_DELETED`
  * **Utlösare:** Användning av en kredit som har tagits bort
  * **Meddelande:** Krediten har redan tagits bort

* `CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS`
  * **Utlösare:** Skapar en kredit med ett namn som redan finns
  * **Meddelande:** En kredit med detta namn finns redan

* `OVERAGE_LIMIT_EXCEEDED`
  * **Utlösare:** En användning eller kreditering skulle överstiga den konfigurerade gränsen
  * **Meddelande:** Gräns för överförbrukning överskriden

### Plånbok

* `INSUFFICIENT_WALLET_FUNDS`
  * **Utlösare:** Plånbokens balans \< debetbelopp
  * **Meddelande:** Otillräckliga medel i plånboken

* `NEGATIVE_BALANCE_ADJUSTMENT`
  * **Utlösare:** Försök att göra plånbokens balans negativ
  * **Meddelande:** Plånbokens balans får inte göras negativ

### Valuta, Skatt & Region

* `EXCHANGE_RATE_NOT_FOUND`
  * **Utlösare:** Ingen FX-kurs för `from → to` valutapar
  * **Meddelande:** Växelkurs hittades inte för att konvertera från Valuta till Valuta

* `INVALID_TAX_ID`
  * **Utlösare:** MOMS/GST/TIN-misslyckad validering
  * **Meddelande:** Skattemärke är ogiltigt

* `REQUEST_AMOUNT_BELOW_MINIMUM`
  * **Utlösare:** Belopp \< produktminimi
  * **Meddelande:** Beloppet kan inte vara mindre än det specificerade minimibeloppet för produkten

* `TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT`
  * **Utlösare:** Kombinerat totalbelopp för kundvagnen \< gateway minimum
  * **Meddelande:** Minimum belopp {display_str} krävs för att behandla betalningen

* `UNSUPPORTED_BILLING_CURRENCY`
  * **Utlösare:** Prenumerationer begränsade till USD
  * **Meddelande:** Icke USD-faktureringsvaluta stöds inte för prenumerationer

* `UNSUPPORTED_COUNTRY`
  * **Utlösare:** Geografi stöds ännu inte
  * **Meddelande:** Land {country_name} stöds för närvarande inte

* `UNSUPPORTED_CURRENCY`
  * **Utlösare:** Produkt eller tilläggsvaluta ogiltig
  * **Meddelande:** Valutan stöds för närvarande inte / Endast USD och INR-produkter stöds för närvarande / Endast USD och INR stöds för tilläggspris / Kan endast begära USD eller INR för fakturering\_valuta / Valuta stöds ej / Oväntad valuta för indiska kortprenumerationer

* `UNSUPPORTED_TAX_CATEGORY`
  * **Utlösare:** Skattekategori-sträng ej i uppräknade värden
  * **Meddelande:** Kategori {category} stöds för närvarande inte

### Validering & Begäranden

* `DUPLICATE_LINE_ITEMS_IN_REQUEST`
  * **Utlösare:** Samma `item_id` visas två gånger i `items[]`
  * **Meddelande:** Dubbletter av item\_ids angivna i items array

* `INVALID_QUERY_PARAMS`
  * **Utlösare:** Ömsesidigt uteslutande / felaktigt formulerade frågeparametrar
  * **Meddelande:** Frågeparametrarna bör bara innehålla antingen time\_frame eller (start, end)

* `INVALID_REQUEST_BODY`
  * **Utlösare:** Felaktig JSON eller schemaöverträdelse
  * **Meddelande:** Din begäran är ogiltig. Kontrollera dina begärande headers och objekt.

* `INVALID_REQUEST_PARAMETERS`
  * **Utlösare:** Semantik fel (t.ex. datum i det förflutna)
  * **Meddelande:** Kan inte ändra next\_billing\_date till tidigare tid

* `MAXIMUM_KEYS_REACHED`
  * **Utlösare:** Metadata / anpassade fält översteg 50 par
  * **Meddelande:** Överstiger 50 nyckel-värde par

### Allmänt & System

* `INTEGER_CONVERSION_FAILURE`
  * **Utlösare:** Alla heltal ↔ sträng/decimalomvandling som misslyckas server-side
  * **Meddelande:** Fel på heltalskonvertering

* `INTERNAL_SERVER_ERROR`
  * **Utlösare:** Ohämtade undantag; du bör logga detaljer server-side
  * **Meddelande:** *Inget offentligt meddelande (generiskt 500)*

* `NOT_FOUND`
  * **Utlösare:** Generic 404 för vilken som helst saknad resurs
  * **Meddelande:** Artikel hittades inte *(eller mer specifikt)*

* `TOO_MANY_REQUESTS`
  * **Utlösare:** 429 hastighetsgräns
  * **Meddelande:** *Inga meddelanden*

* `UNSUPPORTED_ACTION`
  * **Utlösare:** Åtgärd som inte stöds för resurstyp
  * **Meddelande:** Ändra planer för användningsbaserade prenumerationer stöds inte

## Bästa Praxis

1. Hantera alltid fel elegant i din applikation
2. Implementera korrekt felhantering
3. Använd lämpliga felmeddelanden för slutanvändare
4. Implementera omförsökslogik för övergående fel
5. Kontakta support för olösta problem

## Support

För ytterligare hjälp med felkoder eller integrationsfrågor, kontakta vårt supportteam på [support@dodopayments.com](mailto:support@dodopayments.com).
