Översikt
När en begäran misslyckas returnerar Dodo Payments API en HTTP-statuskod och en JSON-body som anger felet. Använd den här sidan för att hitta orsaken till ett fel och hur det kan lösas. Varje felsvar innehåller:- En HTTP-statuskod som anger felets allmänna kategori.
- En
codesom identifierar det exakta felet, till exempelUNSUPPORTED_COUNTRY. - En
messagesom förklarar felet på ett lättförståeligt språk.messagekan varanull, till exempel vid interna serverfel.
code, inte på message. Flera koder returnerar mer än ett meddelande beroende på orsaken.
Använd dessa felkoder för att:
- Felsöka integrationsproblem.
- Hantera fel korrekt i applikationen.
- Visa meningsfull återkoppling till kunderna.
- Hålla betalningshanteringen tillförlitlig.
Det här är API- och affärslogikfel. För orsaker till kortnekningar som returneras för en misslyckad betalning (till exempel
INSUFFICIENT_FUNDS eller CARD_DECLINED), se referensen Transaction Failures i stället.Standardfelkoder för API
API:et använder följande HTTP-statuskoder för fel:Format för felsvar
En felsvars-body innehåller två fält,code och message:
Referens för felkoder
Felkoderna nedan är grupperade efter det område i API:et som de gäller. Varje post anger villkoret som utlöser felet och meddelandet som API:et returnerar. Platshållare som{id} representerar värden som API:et fyller i.
Autentisering och konto
-
UNAUTHORIZED- Utlösare: Begäran saknar en API-nyckel eller innehåller en ogiltig nyckel (HTTP 401), eller så saknar API-nyckeln den roll som åtgärden kräver (HTTP 403)
- Meddelande: Du har inte behörighet att utföra den här åtgärden
-
MERCHANT_NOT_LIVE- Utlösare: En begäran i live-läge för ett företag som inte har aktiverat livebetalningar (HTTP 403). Detta gäller ett företag som endast har använt testläge samt ett företag vars livebetalningar ännu inte är aktiverade eftersom verifieringen inte är slutförd. Begäranden i testläge påverkas inte.
- Meddelande: Livebetalningar är inte aktiverade för handlaren
-
BUSINESS_ARCHIVED- Utlösare: En kundinriktad begäran för ett arkiverat företag (HTTP 403). Detta gäller checkout, betalningslänkar, storefront, Customer Portal och aktivering av licensnycklar.
- Meddelande: Det här företaget är arkiverat och tar inte längre emot begäranden
Betalningar och checkout
-
CHECKOUT_SESSION_CONSUMED- Utlösare: Checkout-sessionen har redan genererat en betalning (HTTP 403). Skapa en ny checkout-session i stället.
- Meddelande: En betalning med den angivna checkout-sessionen har redan genererats.
-
MANUAL_RETRY_ALREADY_PAID- Utlösare: Manuellt återförsök av en förnyelsefaktura där en betalning redan har lyckats. Om den skickas igen debiteras kunden två gånger.
- Meddelande: En betalning för den här fakturan har redan lyckats
-
MANUAL_RETRY_HARD_DECLINE- Utlösare: Manuellt återförsök när det senaste felet på fakturan är en definitiv nekning eller saknar klassificerad felkod. En ny debitering på samma kort kan inte lyckas, så uppdatera betalningsmetoden i stället.
- Meddelande: Det senaste felet på den här fakturan är en definitiv nekning, så ett återförsök kan inte lyckas (eller) Det senaste felet på den här fakturan kan inte klassificeras och kan därför inte återförsökas
-
MANUAL_RETRY_IN_FLIGHT- Utlösare: Manuellt återförsök medan en betalning på fakturan är
processingeller ännu inte har någon registrerad status. Vänta på resultatet av betalningen i stället för att skicka den igen. - Meddelande: En betalning på den här fakturan pågår fortfarande
- Utlösare: Manuellt återförsök medan en betalning på fakturan är
-
MANUAL_RETRY_LIMIT_REACHED- Utlösare: Manuellt återförsök efter att alla tre försök för fakturan har använts, eller innan väntetiden har löpt ut (HTTP 429). Det andra försöket väntar 1 timme efter det första och det tredje väntar 3 timmar efter det andra. Body:n innehåller endast
codeochmessage. Läsretry_available_atfrånGET /payments/{payment_id}/retryför att se när nästa försök tillåts. - Meddelande: Alla manuella återförsök för den här fakturan är använda (eller) Återförsök nu är ännu inte tillgängligt för den här fakturan
- Utlösare: Manuellt återförsök efter att alla tre försök för fakturan har använts, eller innan väntetiden har löpt ut (HTTP 429). Det andra försöket väntar 1 timme efter det första och det tredje väntar 3 timmar efter det andra. Body:n innehåller endast
-
NO_ELIGIBLE_PAYMENT_METHODS- Utlösare: Ingen betalningsmetod finns kvar för betalningen efter filtrering (HTTP 422)
- Meddelande: Inga behöriga betalningsmetoder hittades
-
PAYMENT_NOT_PERMITTED- Utlösare: En checkout- eller betalningsbegäran från en kund på handlarens blocklista (HTTP 403). Koden och meddelandet anger medvetet ingen orsak.
- Meddelande: Den här betalningen kan inte behandlas.
-
PAYMENT_NOT_RETRYABLE- Utlösare: Manuellt återförsök av en betalning som inte omfattas av manuella återförsök. Betalningen saknar faktura, fakturan är inte en öppen förnyelse av en prenumeration, ingen betalning på fakturan har ännu misslyckats, prenumerationen har ingen konfigurerad återkommande debitering (till exempel en on-demand-prenumeration), eller så finns kunden på blocklistan.
- Meddelande: Varierar beroende på orsaken, till exempel: Endast betalningar för förnyelse av prenumerationer kan återförsökas
-
PAYMENT_NOT_SUCCEEDED- Utlösare: Ett försök att återbetala eller behandla en betalning som inte har lyckats
- Meddelande: Den angivna betalningen har inte lyckats
-
PREVIOUS_PAYMENT_PENDING- Utlösare: Ett försök att skapa en debitering medan den föregående betalningen har ett icke-slutgiltigt tillstånd. Returneras även för ett manuellt återförsök när den senaste betalningen på fakturan varken är
failedeller pågående, till exempelrequires_customer_actionellercancelled. - Meddelande: Kan inte skapa en ny debitering eftersom den föregående betalningen ännu inte är slutförd (eller) Den senaste betalningen på den här fakturan har inte misslyckats
- Utlösare: Ett försök att skapa en debitering medan den föregående betalningen har ett icke-slutgiltigt tillstånd. Returneras även för ett manuellt återförsök när den senaste betalningen på fakturan varken är
-
UNSUCCESSFUL_PAYMENT_ID- Utlösare: Betalnings-ID:t hänvisar till en betalning som inte har lyckats
- Meddelande: Payment ID har en status som visar att betalningen misslyckades.
Connectors och BYOP
Dessa fel gäller betalningsconnectors som ägs av handlaren (Bring Your Own Processor, eller BYOP).-
BYOP_CONNECTOR_DISABLED- Utlösare: Betalningsmetoden för en prenumeration som dirigeras via en inaktiverad BYOP-connector uppdateras. Dodo Payments använder inte sina egna connectors som reserv, så aktivera connectorn igen först.
- Meddelande: Prenumerationen dirigeras via handlarens egen BYOP-connector, som för närvarande är inaktiverad
-
BYOP_CUSTOM_INVOICE_ADDRESS_MISSING- Utlösare: En betalning som dirigeras via handlarens connector (BYOP) saknar en anpassad fakturaadress
- Meddelande: En anpassad BYOP-fakturaadress krävs när en betalning dirigeras via handlarens connector
-
CONNECTOR_LABEL_ALREADY_EXISTS- Utlösare: En connector skapas med en etikett som redan finns
- Meddelande: En connector med den här etiketten finns redan. Välj en annan etikett.
Återbetalningar
-
EXISTING_REFUND_REQUEST_PROCESSING- Utlösare: En tidigare begäran om återbetalning behandlas fortfarande
- Meddelande: En begäran om återbetalning med statusen “Pending” behandlas fortfarande
-
LINE_ITEM_FULLY_REFUNDED- Utlösare: Ett försök att återbetala en radartikel som redan är helt återbetald
- Meddelande: Radartikeln
{id}är helt återbetald och kan inte återbetalas ytterligare.
-
LINE_ITEM_NOT_FOUND- Utlösare: Artikel-ID:t ingår inte i den refererade betalningen
- Meddelande: Radartikeln
{id}hittades inte i betalningen
-
LINE_ITEM_PRORATED- Utlösare: En återbetalning eller uppdatering försöktes för en proportionellt beräknad radartikel
- Meddelande: Radartikeln
{id}kan inte återbetalas eftersom den är proportionellt beräknad
-
LINE_ITEM_REFUND_AMOUNT_TOO_HIGH- Utlösare: Återbetalningsbeloppet inklusive skatt är högre än det betalda beloppet
- Meddelande: Det begärda återbetalningsbeloppet inklusive skatt för radartikeln
{id}är{amount}, vilket överstiger det betalda beloppet{amount}
-
LINE_ITEM_REFUND_AMOUNT_TOO_LOW- Utlösare: Återbetalningsbeloppet ligger under minimigränsen
- Meddelande: Det begärda återbetalningsbeloppet för radartikeln
{id}är{amount}, vilket är för lågt
-
NOTHING_TO_REFUND- Utlösare: Inget återbetalningsbart belopp återstår eftersom alla positiva radartiklar redan är helt återbetalda
- Meddelande: Inget återbetalningsbart belopp återstår. Alla positiva radartiklar har återbetalats helt.
-
PARTIAL_REFUND_NOT_ALLOWED- Utlösare: En partiell återbetalning försöktes med en betalningsmetod som endast stöder fullständiga återbetalningar
- Meddelande: Partiella återbetalningar tillåts inte för den här betalningsmetoden
-
PAYMENT_ALREADY_REFUNDED- Utlösare: En dubblettåterbetalning
- Meddelande: Den här betalningen har redan återbetalats
-
PAYMENT_HAS_BEEN_REFUNDED- Utlösare: Betalningen har återbetalats helt
- Meddelande: Payment ID har återbetalats helt.
-
REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT- Utlösare: Det totala återbetalningsbeloppet är högre än det betalda beloppet
- Meddelande: Det beräknade återbetalningsbeloppet är större än det betalda beloppet
-
REFUND_WINDOW_EXPIRED- Utlösare: Återbetalningen begärs utanför det tillåtna återbetalningsfönstret
- Meddelande: Återbetalningar kan inte initieras
{days}dagar efter att betalningen skapades. Kontakta support@dodopayments.com.
-
ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED- Utlösare: Ett försök att återbetala en betalning med beloppet noll
- Meddelande: Kan inte återbetala en betalning med ett valutabelopp på noll
Prenumerationer och tillägg
-
ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED- Utlösare: Ett försök att lägga till tillägg i en prenumeration med användningsbaserad debitering
- Meddelande: Tillägg i prenumerationer stöds inte för användningsbaserad debitering
-
ADDONS_NOT_ALLOWED_FOR_ON_DEMAND- Utlösare: Ett försök att lägga till tillägg i en on-demand-prenumeration
- Meddelande: Tillägg tillåts inte 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 företaget har inaktiverat åtgärden
- Meddelande: Avbrytande av schemalagd planändring är inaktiverat för Customer Portal.
-
CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Utlösare: Ett försök att debitera en prenumeration som är schemalagd för avslut
- Meddelande: Prenumerationen är schemalagd för avslut
-
CUSTOMER_HAS_EXISTING_SUBSCRIPTION- Utlösare: En prenumeration skapas för en kund som redan har en, när företaget inte tillåter flera prenumerationer per kund
- Meddelande: Kunden
{id}har redan en prenumeration. Ändra företagsinställningarna för att tillåta flera prenumerationer per kund
-
DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL- Utlösare: Prorateringsläget
do_not_billanvänds i en planändring i Customer Portal - Meddelande: Prorateringsläget do_not_bill tillåts inte i Customer Portal
- Utlösare: Prorateringsläget
-
DUPLICATE_ADDON_IDS_IN_REQUEST- Utlösare: Samma
addon_idförekommer mer än en gång i begäran - Meddelande: Dubbletter av addon-ID:n tillåts inte
- Utlösare: Samma
-
INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED- Utlösare: En planändring på en inaktiv prenumeration
- Meddelande: Det går inte att ändra planer för inaktiva prenumerationer
-
INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE- Utlösare: Ett annat prorateringsläge än
full_immediatelyanvänds medeffective_at: next_billing_date - Meddelande: Endast prorateringsläget full_immediately tillåts med effective_at: next_billing_date
- Utlösare: Ett annat prorateringsläge än
-
MISSING_ADDON_IDS- Utlösare: Listan med
addon_idär tom eller innehåller okända ID:n - Meddelande: Ett eller flera produkt-ID:n finns inte:
{id}
- Utlösare: Listan med
-
ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED- Utlösare: En planändring på en on-demand-prenumeration
- Meddelande: Det går inte att ändra planer för on-demand-prenumerationer
-
ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED- Utlösare: Ett försök att använda en on-demand-prenumeration med användningsbaserad debitering
- Meddelande: On-demand-prenumerationer stöds inte för användningsbaserad debitering
-
ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND- Utlösare: En engångsprodukt läggs till i en on-demand-prenumeration
- Meddelande: Engångsprodukter tillåts inte för on-demand-prenumerationer
-
PENDING_PLAN_CHANGE_EXISTS- Utlösare: En ny planändring begärs medan en tidigare fortfarande väntar på betalning
- Meddelande: En väntande planändring finns redan för den här prenumerationen. Vänta tills den aktuella betalningen är slutförd.
-
PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Utlösare: En planändring via Customer Portal medan företaget har inaktiverat den
- Meddelande: Planändring för prenumeration via Customer Portal är inaktiverad.
-
PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Utlösare: En planändring på en prenumeration som är schemalagd för avslut
- Meddelande: Prenumerationen är schemalagd för avslut
-
SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Utlösare: En planändring schemaläggs via Customer Portal medan företaget har inaktiverat detta
- Meddelande: Schemaläggning av planändringar är inaktiverad för det här företaget.
-
SCHEDULED_PLAN_CHANGE_EXISTS- Utlösare: En schemalagd planändring skapas när en redan finns
- Meddelande: En schemalagd planändring finns redan för den här prenumerationen. Avbryt den befintliga schemalagda ändringen innan du skapar en ny.
-
SCHEDULED_PLAN_CHANGE_NOT_FOUND- Utlösare: En schemalagd planändring som inte finns refereras till eller avbryts
- Meddelande: Ingen schemalagd planändring hittades för den här prenumerationen.
-
SUBSCRIPTION_EXPIRED- Utlösare: En prenumeration debiteras efter dess
expires_at-datum - Meddelande: Prenumerationen har löpt ut och nya debiteringar kan inte skapas
- Utlösare: En prenumeration debiteras efter dess
-
SUBSCRIPTION_HAS_NO_PAYMENT_METHOD- Utlösare: Manuellt återförsök av en prenumeration som saknar en sparad betalningsmetod för off-session-debitering
- Meddelande: Den här prenumerationen saknar en sparad betalningsmetod att debitera
-
SUBSCRIPTION_INACTIVE- Utlösare: Prenumerationens status är inte
active - Meddelande: Prenumerationen är inte aktiv (eller) Den här prenumerationen är inte live, så ett avslut kan inte schemaläggas
- Utlösare: Prenumerationens status är inte
-
SUBSCRIPTION_NOT_ON_DEMAND- Utlösare: En on-demand-åtgärd på en prenumeration som debiteras med ett fast intervall
- Meddelande: Prenumerationen är redan inte on-demand
-
SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED- Utlösare: Antalet återförsök av prenumerationsbetalningen överskred det maximala antalet försök
- Meddelande: Den maximala återförsöksgränsen på 10 försök överskreds för den här prenumerationen
Kunder och blocklista
-
CUSTOMER_ALREADY_BLOCKED- Utlösare: En kund blockeras trots att kunden redan finns på blocklistan och inte har några aktiva prenumerationer kvar att avsluta (HTTP 409)
- Meddelande: Den här kunden finns redan på blocklistan
-
PORTAL_ACTION_NOT_PERMITTED- Utlösare: En blockerad kund anropar en skrivåtgärd i Customer Portal: avsluta, pausa, återuppta, ändra plan eller uppdatera betalningsmetod (HTTP 403). Läsåtgärder förblir öppna. Koden och meddelandet anger medvetet ingen orsak.
- Meddelande: Den här åtgärden är inte tillgänglig.
Produkter, varukorg och varumärken
-
BRAND_ALREADY_ARCHIVED- Utlösare: Ett varumärke som redan är arkiverat arkiveras
- Meddelande: Varumärket är redan arkiverat
-
BRAND_ARCHIVED- Utlösare: Ett arkiverat varumärke uppdateras, skickas in för verifiering eller kopplas till en ny produkt, produktkollektion eller prenumeration
- Meddelande: Varumärket är arkiverat (eller) Varumärket är arkiverat och kan inte uppdateras (eller) Varumärket är arkiverat och kan inte skickas in för verifiering
-
BRAND_ARCHIVE_TARGET_REQUIRED- Utlösare: Ett varumärke arkiveras medan det fortfarande innehåller produkter, aktiva prenumerationer eller produktkollektioner utan ett
move_products_to-mål - Meddelande: Varumärket har
{count}produkt(er). Ange move_products_to till ett målvarumärke för att märka om dem. Meddelandet nämner i stället aktiva prenumerationer eller produktkollektioner när dessa hindrar arkiveringen.
- Utlösare: Ett varumärke arkiveras medan det fortfarande innehåller produkter, aktiva prenumerationer eller produktkollektioner utan ett
-
BRAND_MISMATCH- Utlösare: Varukorgens artiklar tillhör olika varumärken
- Meddelande: Alla artiklar i produktvarukorgen måste tillhöra samma varumärke
-
BRAND_NOT_ENABLED- Utlösare: Varumärket är inaktiverat eller inte aktivt
- Meddelande: Det angivna varumärket är inte aktiverat
-
BRAND_SUBMISSION_NOT_ENABLED- Utlösare: Funktionen för att skicka in varumärkesverifiering igen är inte aktiverad
- Meddelande:
Brand verificatin resubmission is not enabled(stavat exakt som API:et returnerar det)
-
CANNOT_ARCHIVE_PRIMARY_BRAND- Utlösare: Det primära varumärket arkiveras; dess varumärkes-ID är företags-ID:t
- Meddelande: Det primära varumärket kan inte arkiveras
-
FILE_IN_USE- Utlösare: En digital produktfil tas bort trots att aktiva åtkomstbeviljanden fortfarande hänvisar till den
- Meddelande: Den digitala filen refereras av aktiva åtkomstbeviljanden
-
INVALID_BRAND_ARCHIVE_TARGET- Utlösare:
move_products_toanger varumärket som arkiveras, ett arkiverat varumärke eller ett varumärke som tillhör ett annat företag - Meddelande: move_products_to måste vara ett icke-arkiverat varumärke i det här företaget (eller) move_products_to kan inte vara det varumärke som arkiveras
- Utlösare:
-
INVALID_SUGGESTED_PRICE- Utlösare: Ett föreslaget pris för Pay What You Want är lägre än minimipriset
- Meddelande: Föreslaget pris kan inte vara lägre än minimipriset. Vid Pay What You Want betraktas priset som det lägsta accepterade beloppet
-
LOCALIZED_PRICE_ALREADY_EXISTS- Utlösare: Ett lokaliserat pris finns redan för den här produkten och det här landet eller den här valutan
- Meddelande: Ett lokaliserat pris för den här produkten och det här landet/den här valutan finns redan
-
LOCALIZED_PRICE_DUPLICATES_BASE- Utlösare: Det lokaliserade priset duplicerar produktens basvaluta eller basland
- Meddelande: Det lokaliserade priset duplicerar produktens basvaluta eller basland
-
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
- Utlösare: Formen på det lokaliserade priset matchar inte produktens
-
MISSING_PRODUCT_INFORMATION- Utlösare: Produkten finns, men obligatorisk information saknas
- Meddelande: Produkten
{id}finns, men annan obligatorisk information saknas eller är ogiltig
-
PAY_AS_YOU_WANT_AMOUNT_REQUIRED- Utlösare: Beloppet saknas för en Pay What You Want-produkt
- Meddelande: Belopp är obligatoriskt för en pay-as-you-want-produkt
-
PRODUCT_CART_EMTPY- Utlösare: En tom produktvarukorg skickas
- Meddelande: product_cart är tom (felkoden stavas medvetet
EMTPYför att matcha det exakta värdet som API:et returnerar)
-
PRODUCT_COLLECTION_IS_DELETED- Utlösare: En produktkollektion som har tagits bort används
- Meddelande: Inget meddelande
-
PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS- Utlösare: Den sista produkten, eller den sista gruppen med produkter, tas bort från en kollektion
- Meddelande: Den sista produkten i en kollektion kan inte tas bort. Arkivera kollektionen i stället. (eller) Den sista gruppen med produkter kan inte tas bort. Arkivera kollektionen i stället.
-
PRODUCT_IS_DELETED- Utlösare: Produkten har tagits bort
- Meddelande: Inget meddelande
-
PRODUCT_PRICING_MODE_REQUIRED- Utlösare: Lokaliserade priser läggs till innan produktens
pricing_modehar angetts - Meddelande: Produktens pricing_mode måste anges innan lokaliserade priser läggs till
- Utlösare: Lokaliserade priser läggs till innan produktens
-
SLUG_ALREADY_TAKEN- Utlösare: Den begärda produktslugen eller korta URL:en används redan
- Meddelande: Sluggen används redan
-
UNABLE_TO_EDIT_PRIMARY_BRAND- Utlösare: Ett försök att uppdatera det primära varumärket via det vanliga varumärkes-API:et
- Meddelande: Det primära varumärket kan inte uppdateras via den här API-slutpunkten.
Rabatter
-
DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION- Utlösare: En rabatt tillämpas igen efter att den redan har använts på den här prenumerationen
- Meddelande: Den här rabatten har redan använts på den här prenumerationen
-
DISCOUNT_CODE_ALREADY_EXISTS- Utlösare: En rabattkod skapas trots att den redan finns
- Meddelande: Rabattkoden finns redan
-
DISCOUNT_CODE_EXPIRED- Utlösare: Rabattkoden har passerat sitt
expires_at-datum - Meddelande: Rabattkoden har löpt ut
- Utlösare: Rabattkoden har passerat sitt
-
DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED- Utlösare: Rabattkoden används efter att dess
usage_limithar nåtts - Meddelande: Användningsgränsen kan inte vara lägre än times_used (eller) Rabattkoden har nått användningsgränsen
- Obs: Slutgiltigt. Koden är förbrukad, så försök inte igen.
- Utlösare: Rabattkoden används efter att dess
-
DISCOUNT_CONCURRENT_REDEMPTION- Utlösare: En annan inlösen av samma kod höll låset för användningsgränsen för länge (HTTP 503)
- Meddelande: Rabatten löses in samtidigt; försök igen
- Obs: Tillfälligt. Koden kan fortfarande ha kapacitet, så begäran kan tryggt försöka igen. Visa inte kunden att koden är förbrukad.
-
DISCOUNT_CURRENCY_OPTION_INVALID- Utlösare: Ogiltig
currency_optionsvid skapande eller uppdatering - Meddelande: En fast rabatt kräver minst ett valutaalternativ med ett lösligt standardvärde (eller) Dubbletter av valutaalternativ tillåts inte (eller) Endast ett valutaalternativ får markeras som standard
- Utlösare: Ogiltig
-
DISCOUNT_CUSTOMER_NOT_ELIGIBLE- Utlösare: Kunden uppfyller inte
customer_eligibilityför koden (first_time,existingeller finns inte på tillåtelselistan för enspecific-kod) - Meddelande: Kunden är inte berättigad till den här rabattkoden
- Utlösare: Kunden uppfyller inte
-
DISCOUNT_MINIMUM_SUBTOTAL_NOT_MET- Utlösare: Varukorgens delsumma ligger under
minimum_subtotalsom har konfigurerats för checkout-valutan - Meddelande: Varukorgens delsumma ligger under rabattens minsta erforderliga delsumma
- Utlösare: Varukorgens delsumma ligger under
-
DISCOUNT_NOT_YET_ACTIVE- Utlösare: Koden används innan dess
starts_at-datum - Meddelande: Rabattkoden är ännu inte aktiv (starts_at ligger i framtiden)
- Utlösare: Koden används innan dess
-
DISCOUNT_PER_CUSTOMER_USAGE_LIMIT_EXCEEDED- Utlösare: Kunden har redan löst in koden
per_customer_usage_limitgånger - Meddelande: Gränsen för användning per kund har överskridits för den här rabattkoden
- Utlösare: Kunden har redan löst in koden
-
DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT- Utlösare: En planändring till en produkt som den befintliga rabatten inte gäller för
- Meddelande: Rabatten gäller inte för den nya planens produkt
-
DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND- Utlösare: Koden tillämpas på en on-demand-prenumeration
- Meddelande: Rabattkupongen är inte tillgänglig för on-demand-prenumerationer
-
DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT- Utlösare: Koden tillämpas på produkter som den inte omfattar
- Meddelande: Rabattkupongen är inte tillgänglig för den här produkten
-
INVALID_DISCOUNT_CODE- Utlösare: Koden finns inte eller gäller inte för någon produkt i varukorgen
- Meddelande: Ogiltig rabattkod (eller) Rabattkoden kan inte tillämpas på någon produkt i varukorgen
-
INVALID_PERCENTAGE- Utlösare: Procentandelen är högre än 100 % (10 000 baspunkter)
- Meddelande: Procentbeloppet kan inte överstiga 10 000 (eller) Rabattkodens belopp kan inte överstiga 100 %
-
UNSUPPORTED_DISCOUNT_TYPE- Utlösare: En rabattyp som inte stöds.
percentageochflatstöds båda; rabatter med belopp per enhet stöds inte. - Meddelande: Endast procentuella och fasta rabattkoder stöds (eller) För närvarande stöds endast procentuella rabattkoder
- Utlösare: En rabattyp som inte stöds.
Licensnycklar
-
ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT- Utlösare: Den nya aktiveringsgränsen för en licensnyckel är lägre än det aktuella antalet instanser
- Meddelande: Den nya aktiveringsgränsen kan inte vara lägre än det aktuella antalet instanser
-
INACTIVE_LICENSE_KEY- Utlösare: Licensnyckelns status är inte
active - Meddelande: Licensnyckeln är inte aktiv
- Utlösare: Licensnyckelns status är inte
-
LICENSE_KEY_LIMIT_REACHED- Utlösare: Antalet aktiveringar har nått aktiveringsgränsen
- Meddelande: Licensnyckelns aktiveringsgräns har nåtts
-
LICENSE_KEY_NOT_FOUND- Utlösare: Instans-ID:t eller licensnyckel-ID:t är ogiltigt
- Meddelande: Licensnyckelinstansen hittades inte eller tillhör inte den här licensnyckeln
-
NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS- Utlösare: Ett försök att ange ett förfallodatum för en prenumerationsbaserad licensnyckel
- Meddelande: Det går inte att ange ett förfallodatum för en prenumerationsbaserad licensnyckel
Användningsbaserad debitering och mätare
-
DUPLICATE_METER_IDS_IN_REQUEST- Utlösare: Samma mätar-ID förekommer mer än en gång i begäran
- Meddelande: Dubbletter av mätar-ID:n tillåts inte
-
INVALID_QUANTITY- Utlösare: En annan kvantitet än 1 för en produkt med användningsbaserad prissättning
- Meddelande: Endast kvantiteten 1 tillåts för produkter med användningsbaserat pris
-
METER_IS_DELETED- Utlösare: Ett försök att använda en borttagen mätare
- Meddelande: Mätaren har redan tagits bort
-
MISSING_METER_IDS- Utlösare: Listan med mätar-ID:n är tom eller innehåller ogiltiga ID:n
- Meddelande: Ett eller flera mätar-ID:n finns inte:
{id}
Kreditbaserad debitering
-
CREDIT_ENTITLEMENT_IS_DELETED- Utlösare: En borttagen kreditberättighet används
- Meddelande: Kreditberättigheten har redan tagits bort
-
CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS- Utlösare: En kreditberättighet skapas med ett namn som redan finns
- Meddelande: En kreditberättighet med det här namnet finns redan
-
OVERAGE_LIMIT_EXCEEDED- Utlösare: Ett användnings- eller kreditavdrag skulle överskrida den konfigurerade övertrasseringsgränsen
- Meddelande: Övertrasseringsgränsen har överskridits
Plånbok
-
INSUFFICIENT_WALLET_FUNDS- Utlösare: Plånbokens saldo är lägre än debiteringsbeloppet
- Meddelande: Otillräckliga medel i plånboken
-
NEGATIVE_BALANCE_ADJUSTMENT- Utlösare: Ett försök att göra plånbokens saldo negativt
- Meddelande: Plånbokens saldo får inte göras negativt
Valuta, skatt och region
-
EXCHANGE_RATE_NOT_FOUND- Utlösare: Ingen växelkurs finns för valutaparet
- Meddelande: Växelkurs hittades inte för konvertering från
{currency}till{currency}
-
INVALID_TAX_ID- Utlösare: VAT, GST eller TIN kunde inte valideras
- Meddelande: Skatte-ID:t är ogiltigt
-
REQUEST_AMOUNT_BELOW_MINIMUM- Utlösare: Beloppet är lägre än det minimum som angetts för produkten
- Meddelande: Beloppet kan inte vara lägre än det minimibelopp som angetts för produkten
-
TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT- Utlösare: Varukorgens sammanlagda totalsumma är lägre än minimibeloppet som krävs för att behandla en betalning
- Meddelande: Ett minimibelopp på
{display_str}krävs för att behandla betalningen
-
UNSUPPORTED_BILLING_CURRENCY- Utlösare: Den begärda debiteringsvalutan stöds inte för den här prenumerationen
- Meddelande: Debitering i annan valuta än USD stöds inte för prenumerationer
-
UNSUPPORTED_COUNTRY- Utlösare: Landet stöds inte
- Meddelande: Landet
{country_name}stöds för närvarande inte
-
UNSUPPORTED_CURRENCY- Utlösare: Produktens eller tilläggets valuta är inte en valuta som Dodo Payments kan debitera i. Baspriser kan anges i valfri debiteringsbar valuta, så detta fel betyder vanligtvis att valutakoden är ogiltig eller inte stöds.
- Meddelande: Valutan stöds inte för närvarande (eller) För närvarande stöds endast produkter i USD och INR (eller) För närvarande stöds endast USD och INR för tilläggspriser (eller) billing_currency kan endast begäras som USD eller INR (eller) Valutan stöds inte (eller) Oväntad valuta för indiska kortprenumerationer
-
UNSUPPORTED_TAX_CATEGORY- Utlösare: Skattekategorin är inte ett av de värden som stöds
- Meddelande: Kategorin
{category}stöds för närvarande inte
Validering och begäranden
-
DUPLICATE_LINE_ITEMS_IN_REQUEST- Utlösare: Samma
item_idförekommer mer än en gång iitems[] - Meddelande: Dubbletter av item_ids har angetts i items-arrayen
- Utlösare: Samma
-
INVALID_QUERY_PARAMS- Utlösare: Frågeparametrar som utesluter varandra eller är felaktigt formaterade
- Meddelande: Query-parametrar får endast innehålla antingen time_frame eller (start, end) (eller) Intervallets start får inte ligga efter dess slut
-
INVALID_REQUEST_BODY- Utlösare: Felaktigt formaterad JSON eller en schemaöverträdelse
- Meddelande: Begärans body är ogiltig. Kontrollera begärans headers och objekt.
-
INVALID_REQUEST_PARAMETERS- Utlösare: Parametervärden som är giltiga till formatet men inte till betydelsen, till exempel ett datum i det förflutna
- Meddelande: Kan inte ändra next_billing_date till en tidpunkt i det förflutna
-
MAXIMUM_KEYS_REACHED- Utlösare: Metadata eller anpassade fält överskrider 50 nyckel-värde-par
- Meddelande: Överskrider 50 nyckel-värde-par
Allmänt och system
-
INTEGER_CONVERSION_FAILURE- Utlösare: En konvertering på serversidan mellan ett heltal och en sträng eller decimal misslyckas, till exempel när en varukorgs totalsumma är för stor att behandla
- Meddelande: Heltalskonverteringen misslyckades (eller) Varukorgens totalsumma är för stor att behandla. Minska kvantiteten eller välj en annan debiteringsvaluta.
-
INTERNAL_SERVER_ERROR- Utlösare: Ett oväntat serverfel. Logga begärans uppgifter på din sida.
- Meddelande: Inget offentligt meddelande (generiskt 500,
messageär vanligtvisnull)
-
NOT_FOUND- Utlösare: Generiskt 404 för en resurs som saknas
- Meddelande: Artikeln hittades inte (eller ett mer specifikt meddelande som anger vad som saknas)
-
TOO_MANY_REQUESTS- Utlösare: En hastighetsgräns överskreds (HTTP 429)
- Meddelande: Inget meddelande
-
UNSUPPORTED_ACTION- Utlösare: En åtgärd som resurstypen inte stöder
- Meddelande: Det går inte att ändra planer för användningsbaserade prenumerationer
Bästa praxis
Följ dessa rutiner när du hanterar API-fel:- Hantera varje felsvar i applikationen och basera logiken på
codei stället förmessage. - Logga HTTP-statusen,
codeochmessageför varje misslyckad begäran. - Visa slutanvändare ett meddelande som är skrivet för dem i stället för den råa API-
message. - Försök endast igen vid tillfälliga fel, till exempel svar med
429och5xxellerDISCOUNT_CONCURRENT_REDEMPTION, efter en fördröjning. - Kontakta supporten för fel som du inte kan lösa.