Hoppa till huvudinnehåll

Översikt

Dodo Payments returnerar en detaljerad felorsak när ett betalningsförsök misslyckas. Dessa orsaker standardiseras över betalningsmetoder och leverantörer, så du kan implementera konsekvent hantering i din applikation. När en betalning misslyckas visar payment.failed-webhooken och betalningsobjektet:
  • error_code — en standardiserad felorsak från tabellen nedan.
  • error_message — en lättläst förklaring.
  • retry_attempt0 för den ursprungliga debiteringen, 1 eller högre för varje schemalagt prenumerationsförnyelsförsök.
Genom att förstå dessa felorsaker kan du ge kunder tydlig feedback, bestämma om ett nytt försök är värt det, och återfå mer intäkter.

Handle Payment Failures

En steg-för-steg-utvecklarguide för att läsa dessa koder från webbhooks och API:er, visa dem för kunder, och bestämma när ett nytt försök bör göras.

Mjuk vs. Hård Avvisning

Varje felkod faller i en av två kategorier. Denna åtskillnad avgör om du ska försöka med samma betalningsmetod igen eller be kunden om en ny.
AvvisningstypVad det betyderVad man ska göraExempel
Mjuk avvisningTillfällig eller rättbar — samma kort kan lyckas vid ett senare försök eller när kunden rättar sina uppgifter.Tryggt att försöka igen (efter en fördröjning eller när kunden har rättat sina uppgifter).INSUFFICIENT_FUNDS, GENERIC_DECLINE, CARD_VELOCITY_EXCEEDED, PROCESSING_ERROR, NETWORK_ERROR, NETWORK_TIMEOUT, TRY_AGAIN_LATER
Hård avvisningTerminal — att försöka med samma kort igen förändrar inte resultatet.Gör inte ett nytt försök med samma kort. Be kunden använda en annan betalningsmetod eller kontakta sin bank.STOLEN_CARD, LOST_CARD, PICKUP_CARD, DO_NOT_HONOR, FRAUDULENT, INVALID_ACCOUNT
För prenumerationsförnyelser tillämpar Dodo Payments denna åtskillnad automatiskt: mjuka avvisningar försöks om på nytt av Prenumerationsbetalningsförsök, medan hårda avvisningar avslutar försökskedjan omedelbart och hanteras bäst med Prenumerationshantering.
Avslöja aldrig den verkliga orsaken till STOLEN_CARD, LOST_CARD, PICKUP_CARD, eller FRAUDULENT för kunden. Att visa dessa kan tipsa en bedräglig aktör. Visa alltid kunden ett generiskt avslagsmeddelande (till exempel, “Ditt kort avvisades. Vänligen kontakta din bank eller använd ett annat kort.”) och logga bara den specifika koden internt.

Transaktionsmisslyckande Orsaker

Följande tabell listar varje felkod, dess avvisningstyp, om kunden kan lösa det, en beskrivning och den rekommenderade åtgärden.
FelkodTypAnvändarfelBeskrivningRekommenderad åtgärd
AUTHENTICATION_FAILUREMjukJaAutentisering misslyckades under transaktionenBe kunden försöka igen och slutföra 3DS-autentisering, eller använda ett annat kort
AUTHENTICATION_REQUIREDMjukJaYtterligare autentisering behövs för att slutföra transaktionenUppmana kunden att slutföra 3DS-autentisering. För prenumerationsförnyelser, be kunden att återvända och autentisera
AUTHENTICATION_TIMEOUTMjukJaAutentiseringsprocessen gick ut på tidBe kunden försöka igen och slutföra autentiseringen snabbt
CARD_DECLINEDMjukNejKortet avvisades av den utfärdande banken utan en specifik anledning (generisk avvisning)Be kunden försöka igen, kontakta sin bank, eller använda ett annat kort
CARD_NOT_ACTIVATEDMjukJaKortet har inte aktiverats av kortinnehavarenBe kunden aktivera kortet hos sin bank och försöka igen
CARD_VELOCITY_EXCEEDEDMjukJaFör många transaktioner har försöks på kort tidBe kunden vänta och försöka igen senare, eller kontakta sin bank om begränsningar
CUSTOMER_CANCELLEDMjukJaKunden avbröt transaktionenLåt kunden starta om betalningen när de är redo
DO_NOT_HONORHårdNejDen utfärdande banken avslog uttryckligen transaktionen (ISO 8583 kod 05 — hedra inte); nätverk behandlar detta som terminalBe kunden kontakta sin bank; försök inte med samma kort igen
EXPIRED_CARDHårdJaKortet har gått utBe kunden använda ett kort med giltigt utgångsdatum
FRAUDULENTHårdJaTransaktionen flaggades som potentiellt bedrägligVisa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort
GENERIC_DECLINEMjukNejTransaktionen avvisades utan angiven anledningBe kunden kontakta sin bank eller prova ett annat kort
INCORRECT_CVCMjukJaDen angivna CVC-koden var felaktigBe kunden ange korrekt CVC
INCORRECT_NUMBERMjukJaKortnumret var felaktigt angivetBe kunden ange korrekt kortnummer
INSUFFICIENT_FUNDSMjukJaKontot har otillräckliga medel för att slutföra transaktionenBe kunden använda en annan betalningsmetod eller försöka igen när medel är tillgängliga
INVALID_ACCOUNTHårdJaDe angivna kontouppgifterna är ogiltigaBe kunden kontakta sin bank eller använda ett annat kort
INVALID_AMOUNTMjukJaTransaktionsbeloppet är ogiltigtVerifiera beloppet och eventuella inköpsgränser med kunden
INVALID_CARD_NUMBERMjukJaKortnummerformatet är ogiltigtBe kunden ange ett giltigt kortnummer
INVALID_CARD_OWNERMjukJaKortinnehavarens information är ogiltigBe kunden korrigera kortinnehavarnamnet
INVALID_CVCMjukJaCVC-formatet är ogiltigtBe kunden ange en giltig CVC
INVALID_EXPIRY_YEARMjukJaKortets utgångsår är ogiltigtBe kunden ange ett giltigt utgångsdatum
INVALID_PINMjukJaDen angivna PIN-koden är felaktigBe kunden ange korrekt PIN-kod igen
INVALID_REQUESTMjukJaTransaktionsförfrågan innehåller ogiltiga dataKontrollera betalningsförfrågansfält och skicka in igen med giltiga data
INVALID_UPI_IDMjukJaDet angivna UPI-ID:t är ogiltigtBe kunden ange ett giltigt UPI-ID
LIMIT_EXCEEDEDMjukJaTransaktionen överskrider kort- eller kontogränsenBe kunden kontakta sin bank om begränsningar, eller använda en annan metod
LIVE_MODE_TEST_CARDHårdJaEtt testkort användes i live-lägeAnvänd ett riktigt kort — att försöka med testkortet igen kommer alltid att misslyckas i live-läge
LOST_CARDHårdJaKortet har rapporterats som förloratVisa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort
MANDATE_INVALIDMjukJaBetalningsmandatet är ogiltigtBe kunden ställa in betalningsmandatet igen
MANDATE_REQUIREDMjukJaEtt mandat krävs för denna transaktionStäll in ett mandat och be kunden auktorisera det innan debitering
MANDATE_REQUIRED_SYSTEMHårdNejSystemet kräver ett mandat för denna typ av transaktionSe till att mandatinställningsflödet slutförs innan debitering
NETWORK_ERRORMjukNejEtt nätverksfel inträffade under transaktionenTillfälligt — försök betalningen igen efter en kort fördröjning
NETWORK_TIMEOUTMjukNejNätverksförfrågan gick ut på tidTillfälligt — försök betalningen igen efter en kort fördröjning
ORDER_ALREADY_EXISTSMjukNejEn beställning finns redan för denna transaktion (dubbel beställningsskapande)Kontrollera statusen för den befintliga beställningen innan försök igen; kontakta support om det kvarstår
ORDER_CREATION_FAILEDMjukNejDet gick inte att skapa beställningen för transaktionenTillfälligt/systemfel — försök betalningen igen; kontakta support om det kvarstår
PAYMENT_METHOD_PROVIDER_DECLINEDHårdJaBetalningsmetodsleverantören avvisade transaktionenBe kunden kontakta sin leverantör eller använda en annan betalningsmetod
PAYMENT_METHOD_UNSUPPORTEDHårdJaBetalningsmetoden stöds inte för denna transaktionBe kunden använda en stödd betalningsmetod
PICKUP_CARDHårdJaKortet har rapporterats som förlorat eller stulet och flaggats för upphämtningVisa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort
PROCESSING_ERRORMjukNejEtt fel inträffade vid behandlingen av transaktionenTillfälligt — försök betalningen igen; om det kvarstår, be kunden kontakta sin bank
PROVIDER_UNSUPPORTEDHårdNejBetalningsleverantören stöder inte denna typ av transaktionBe kunden använda en annan betalningsmetod
REENTER_TRANSACTIONMjukJaTransaktionen behöver återinförasBe kunden försöka betalningen igen
REVOCATION_OF_AUTHORIZATIONHårdJaAuktoriseringen för transaktionen återkalladesBe kunden använda en annan betalningsmetod
STOLEN_CARDHårdJaKortet har rapporterats som stuletVisa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort
SUBSCRIPTION_NOT_ACTIVEHårdNejPrenumerationen är inte aktiv, så den återkommande debiteringen kunde inte behandlasÅteraktivera prenumerationen (till exempel genom att uppdatera betalningsmetoden) innan ett nytt försök görs
TRANSACTION_NOT_ALLOWEDHårdJaTransaktionen är inte tillåten för detta kort eller kontoBe kunden kontakta sin bank för att tillåta denna typ av transaktion, eller använd ett annat kort
TRANSACTION_NOT_APPROVEDHårdJaTransaktionen godkändes inteBe kunden kontakta sin bank eller prova ett annat kort
TRY_AGAIN_LATERMjukNejTransaktionen bör försöks igen senareTillfälligt — försök betalningen igen senare
UNKNOWN_ERRORMjukNejEtt okänt fel inträffadeFörsök betalningen igen; om det kvarstår, kontakta support
Användarfel indikerar om betalningsavvisning kan lösas av kunden. När Yes kan kunden vidta åtgärder för att lösa problemet (till exempel genom att ange korrekta kortuppgifter). När No beror avvisningen på systemnivåproblem eller bankbegränsningar som kunden inte kan lösa direkt.

Hantera Fel Programmeringsmässigt

Läs error_code från payment.failed-webhooken eller betalningsobjektet, mappa det till den rekommenderade åtgärden ovan och bestäm om ett nytt försök ska göras. För prenumerationsförnyelser görs mjuka avvisningar automatiskt om — se Prenumerationsbetalningsförsök. För API-nivå och affärslogikfel (såsom PAYMENT_NOT_SUCCEEDED eller REFUND_WINDOW_EXPIRED) som inte är kortavvisningar, se referensen Fel Koder.

Relaterade

Handle Payment Failures

Slut-till-slut-guide till att upptäcka, visa och försöka igen med misslyckade betalningar.

Error Codes

API och affärslogik felkoder för icke-avvisningsfel.

Subscription Payment Retries

Automatiska försök som återhämtar mjuka avvisningar vid prenumerationsförnyelser.

Subscription Dunning

E-post sekvenser som återhämtar hårda avvisningar genom att uppmana till en betalningsmetodsuppdatering.

Support

För ytterligare hjälp med transaktionsfel eller integrationsproblem, vänligen kontakta vårt supportteam på support@dodopayments.com.
Senast ändrad 18 juni 2026