Ö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 visarpayment.failed-webhooken och betalningsobjektet:
error_code— en standardiserad felorsak från tabellen nedan.error_message— en lättläst förklaring.retry_attempt—0för den ursprungliga debiteringen,1eller högre för varje schemalagt prenumerationsförnyelsförsök.
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.| Avvisningstyp | Vad det betyder | Vad man ska göra | Exempel |
|---|---|---|---|
| Mjuk avvisning | Tillfä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 avvisning | Terminal — 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 |
Transaktionsmisslyckande Orsaker
Följande tabell listar varje felkod, dess avvisningstyp, om kunden kan lösa det, en beskrivning och den rekommenderade åtgärden.| Felkod | Typ | Användarfel | Beskrivning | Rekommenderad åtgärd |
|---|---|---|---|---|
AUTHENTICATION_FAILURE | Mjuk | Ja | Autentisering misslyckades under transaktionen | Be kunden försöka igen och slutföra 3DS-autentisering, eller använda ett annat kort |
AUTHENTICATION_REQUIRED | Mjuk | Ja | Ytterligare autentisering behövs för att slutföra transaktionen | Uppmana kunden att slutföra 3DS-autentisering. För prenumerationsförnyelser, be kunden att återvända och autentisera |
AUTHENTICATION_TIMEOUT | Mjuk | Ja | Autentiseringsprocessen gick ut på tid | Be kunden försöka igen och slutföra autentiseringen snabbt |
CARD_DECLINED | Mjuk | Nej | Kortet 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_ACTIVATED | Mjuk | Ja | Kortet har inte aktiverats av kortinnehavaren | Be kunden aktivera kortet hos sin bank och försöka igen |
CARD_VELOCITY_EXCEEDED | Mjuk | Ja | För många transaktioner har försöks på kort tid | Be kunden vänta och försöka igen senare, eller kontakta sin bank om begränsningar |
CUSTOMER_CANCELLED | Mjuk | Ja | Kunden avbröt transaktionen | Låt kunden starta om betalningen när de är redo |
DO_NOT_HONOR | Hård | Nej | Den utfärdande banken avslog uttryckligen transaktionen (ISO 8583 kod 05 — hedra inte); nätverk behandlar detta som terminal | Be kunden kontakta sin bank; försök inte med samma kort igen |
EXPIRED_CARD | Hård | Ja | Kortet har gått ut | Be kunden använda ett kort med giltigt utgångsdatum |
FRAUDULENT | Hård | Ja | Transaktionen flaggades som potentiellt bedräglig | Visa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort |
GENERIC_DECLINE | Mjuk | Nej | Transaktionen avvisades utan angiven anledning | Be kunden kontakta sin bank eller prova ett annat kort |
INCORRECT_CVC | Mjuk | Ja | Den angivna CVC-koden var felaktig | Be kunden ange korrekt CVC |
INCORRECT_NUMBER | Mjuk | Ja | Kortnumret var felaktigt angivet | Be kunden ange korrekt kortnummer |
INSUFFICIENT_FUNDS | Mjuk | Ja | Kontot har otillräckliga medel för att slutföra transaktionen | Be kunden använda en annan betalningsmetod eller försöka igen när medel är tillgängliga |
INVALID_ACCOUNT | Hård | Ja | De angivna kontouppgifterna är ogiltiga | Be kunden kontakta sin bank eller använda ett annat kort |
INVALID_AMOUNT | Mjuk | Ja | Transaktionsbeloppet är ogiltigt | Verifiera beloppet och eventuella inköpsgränser med kunden |
INVALID_CARD_NUMBER | Mjuk | Ja | Kortnummerformatet är ogiltigt | Be kunden ange ett giltigt kortnummer |
INVALID_CARD_OWNER | Mjuk | Ja | Kortinnehavarens information är ogiltig | Be kunden korrigera kortinnehavarnamnet |
INVALID_CVC | Mjuk | Ja | CVC-formatet är ogiltigt | Be kunden ange en giltig CVC |
INVALID_EXPIRY_YEAR | Mjuk | Ja | Kortets utgångsår är ogiltigt | Be kunden ange ett giltigt utgångsdatum |
INVALID_PIN | Mjuk | Ja | Den angivna PIN-koden är felaktig | Be kunden ange korrekt PIN-kod igen |
INVALID_REQUEST | Mjuk | Ja | Transaktionsförfrågan innehåller ogiltiga data | Kontrollera betalningsförfrågansfält och skicka in igen med giltiga data |
INVALID_UPI_ID | Mjuk | Ja | Det angivna UPI-ID:t är ogiltigt | Be kunden ange ett giltigt UPI-ID |
LIMIT_EXCEEDED | Mjuk | Ja | Transaktionen överskrider kort- eller kontogränsen | Be kunden kontakta sin bank om begränsningar, eller använda en annan metod |
LIVE_MODE_TEST_CARD | Hård | Ja | Ett testkort användes i live-läge | Använd ett riktigt kort — att försöka med testkortet igen kommer alltid att misslyckas i live-läge |
LOST_CARD | Hård | Ja | Kortet har rapporterats som förlorat | Visa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort |
MANDATE_INVALID | Mjuk | Ja | Betalningsmandatet är ogiltigt | Be kunden ställa in betalningsmandatet igen |
MANDATE_REQUIRED | Mjuk | Ja | Ett mandat krävs för denna transaktion | Ställ in ett mandat och be kunden auktorisera det innan debitering |
MANDATE_REQUIRED_SYSTEM | Hård | Nej | Systemet kräver ett mandat för denna typ av transaktion | Se till att mandatinställningsflödet slutförs innan debitering |
NETWORK_ERROR | Mjuk | Nej | Ett nätverksfel inträffade under transaktionen | Tillfälligt — försök betalningen igen efter en kort fördröjning |
NETWORK_TIMEOUT | Mjuk | Nej | Nätverksförfrågan gick ut på tid | Tillfälligt — försök betalningen igen efter en kort fördröjning |
ORDER_ALREADY_EXISTS | Mjuk | Nej | En 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_FAILED | Mjuk | Nej | Det gick inte att skapa beställningen för transaktionen | Tillfälligt/systemfel — försök betalningen igen; kontakta support om det kvarstår |
PAYMENT_METHOD_PROVIDER_DECLINED | Hård | Ja | Betalningsmetodsleverantören avvisade transaktionen | Be kunden kontakta sin leverantör eller använda en annan betalningsmetod |
PAYMENT_METHOD_UNSUPPORTED | Hård | Ja | Betalningsmetoden stöds inte för denna transaktion | Be kunden använda en stödd betalningsmetod |
PICKUP_CARD | Hård | Ja | Kortet har rapporterats som förlorat eller stulet och flaggats för upphämtning | Visa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort |
PROCESSING_ERROR | Mjuk | Nej | Ett fel inträffade vid behandlingen av transaktionen | Tillfälligt — försök betalningen igen; om det kvarstår, be kunden kontakta sin bank |
PROVIDER_UNSUPPORTED | Hård | Nej | Betalningsleverantören stöder inte denna typ av transaktion | Be kunden använda en annan betalningsmetod |
REENTER_TRANSACTION | Mjuk | Ja | Transaktionen behöver återinföras | Be kunden försöka betalningen igen |
REVOCATION_OF_AUTHORIZATION | Hård | Ja | Auktoriseringen för transaktionen återkallades | Be kunden använda en annan betalningsmetod |
STOLEN_CARD | Hård | Ja | Kortet har rapporterats som stulet | Visa kunden ett generiskt avvisningsmeddelande — avslöja inte orsaken. Be dem använda ett annat kort |
SUBSCRIPTION_NOT_ACTIVE | Hård | Nej | Prenumerationen ä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_ALLOWED | Hård | Ja | Transaktionen är inte tillåten för detta kort eller konto | Be kunden kontakta sin bank för att tillåta denna typ av transaktion, eller använd ett annat kort |
TRANSACTION_NOT_APPROVED | Hård | Ja | Transaktionen godkändes inte | Be kunden kontakta sin bank eller prova ett annat kort |
TRY_AGAIN_LATER | Mjuk | Nej | Transaktionen bör försöks igen senare | Tillfälligt — försök betalningen igen senare |
UNKNOWN_ERROR | Mjuk | Nej | Ett okänt fel inträffade | Fö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.Ett kort kan också nekas när den utfärdande bankens egen riskmotor flaggar kortinnehavaren som en högriskkund — oberoende av handlaren eller transaktionsdetaljerna. Dessa nekningar visas vanligtvis som generiska koder som
DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED, eller FRAUDULENT. I dessa fall delar inte banken den specifika anledningen, och varken Dodo Payments eller handlaren kan ändra beslutet. Be kunden kontakta sin bank för att lösa flaggan, eller använd ett annat kort eller betalningsmetod.Hantering av fel programmatiskt
Läserror_code från payment.failed webhook eller betalningsobjektet, mappa det till den rekommenderade åtgärden ovan, och bestäm om det ska försöka igen. För förnyelser av prenumerationer, mjuka avslag försökas om automatiskt — se Subscription Payment Retries.
För API-nivå och affärslogikfel (såsom PAYMENT_NOT_SUCCEEDED eller REFUND_WINDOW_EXPIRED) som inte är kortavslag, se Error Codes referensen.
Relaterad
Handle Payment Failures
Guide för att från början till slut upptäcka, visa och försöka igen underkända betalningar.
Error Codes
Fel koder för API och affärslogik för fel som inte är avslag.
Subscription Payment Retries
Automatiska försök som återhämtar mjuka avslag på prenumerationsförnyelser.
Subscription Dunning
E-postsekvenser som återhämtar hårda avslag genom att uppmana till en uppdatering av betalningsmetod.