Ö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.Hantera Fel Programmeringsmässigt
Läserror_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.