Skip to main content

Refunds & Notifications ยท Article 6.8

Stripe-terugbetaling opnieuw proberen โ€” bij tijdelijke fouten

Een mislukte Stripe-terugbetaling kan doorgaans opnieuw worden geprobeerd โ€” de meeste fouten zijn tijdelijk (ratelimieten, korte Stripe-storingen, of de deposit-betaald-webhook die na de post-ondertekeningspipeline arriveerde). De knop Opnieuw proberen roept `_trigger_stripe_refund` opnieuw aan op de creditnota.

De terugbetalings-API van Stripe is betrouwbaar, maar het pad van "addendum ondertekend" naar "Stripe accepteert het terugbetalingsverzoek" heeft meerdere onderdelen. Drie veelvoorkomende oorzaken waardoor de oorspronkelijke _trigger_stripe_refund kan mislukken:

1. Webhook-race โ€” de webhook payment_intent.succeeded van de oorspronkelijke aanbetaling was nog niet aangekomen op het moment dat het addendum werd ondertekend; per [D-113] weigert de trigger te terugbetalen totdat de webhook de afschrijving bevestigt. Tegen de tijd dat de freelancer het opmerkt, is de webhook aangekomen; een nieuwe poging doorstaat de afschrijvingsbevestigingscontrole en gaat verder. 2. Tijdelijke Stripe-fout โ€” ratelimiet bereikt, korte storing, netwerkstoring. Opnieuw proberen lost dit gewoonlijk op. 3. Vรณรณr D-113 implementaties โ€” een ouder codepad dat bepaalde Stripe-afschrijvingsconfiguraties niet herkende. Opnieuw proberen op de nieuwe code vindt de PaymentIntent correct.

Step by step

  1. Merk een mislukte creditnota op.

    Terugbetalingsbanner toont "Terugbetaling mislukt: [reden]." met opties Opnieuw proberen en Als terugbetaald markeren.

  2. Lees eerst de faalreden.

    Sommige redenen zijn niet herstelbaar via opnieuw proberen: "charge_disputed" (de oorspronkelijke afschrijving heeft een openstaande betwisting โ€” terugbetalingen zijn geblokkeerd), "balance_insufficient" (uw Stripe-saldo is te laag), "card_account_closed" (de rekening van de kaarthouder is afgesloten). Opnieuw proberen helpt hier niet; zie artikel 8.10 voor de herstelpaden per faaltype.

  3. Klik op Stripe-terugbetaling opnieuw proberen.

    De server voert _trigger_stripe_refund opnieuw uit.

  4. Wacht ~2 seconden.

    Banner wordt bijgewerkt: geslaagd โ†’ "Terugbetaling in behandeling, verwacht binnen 3โ€“5 werkdagen"; mislukt โ†’ bijgewerkte faalreden (vaak een nieuwe foutcode als het onderliggende probleem anders is).

  5. Als het nog steeds mislukt, schakel over op handmatig.

    Klik op Als terugbetaald markeren (artikel 8.9) nadat u de terugbetaling buiten het systeem heeft uitgevoerd.

Why this works this way

Implementatie (CreditNoteRetryStripeRefundView in amendment_views.py:775):

1. Weiger opnieuw proberen als de staat geslaagd / handmatig / aangevraagd is. Retourneert 409 met details.status zodat de frontend de juiste fout kan tonen. Opnieuw proberen is alleen zinvol bij in behandeling of mislukt. 2. Wis verouderde foutmetadata. refund_failure_reason = "", opslaan. De nieuwe poging start schoon. 3. Roep `_trigger_stripe_refund(cn, cn.amount_gross)` opnieuw aan. De functie geeft nooit een uitzondering (ze vangt alle uitzonderingen op en registreert ze op de creditnotarij), dus het eindpunt voor opnieuw proberen retourneert altijd 200 met de resulterende staat. 4. Retourneer de opgeloste staat van de creditnota. De frontend werkt de banner / rij ter plaatse bij.

Wat de nieuwe poging niet doet: wijzigen welk Stripe-account, rekeninghouder of bedrag. Die zijn afgeleid van de creditnota + offerte + addendum + Connect-instellingen โ€” de nieuwe poging probeert alleen dezelfde actie opnieuw met gewiste foutstatus.

Troubleshooting

Keep reading

Stripe-terugbetaling opnieuw proberen โ€” bij tijdelijke fouten ยท Help ยท Clozo