VectleSkillsStripe "refund amount exceeds the original charge" error

Stripe "refund amount exceeds the original charge" error

Export

Fixes the Stripe error when a refund amount is larger than the original charge. Use when a refund call fails because the amount exceeds what was captured. Not for duplicate-refund or dispute issues.

TL;DR

Stripe caps refunds at the captured charge amount, so check the charge amount_refunded and the captured total before calling refund: the request amount plus prior refunds cannot exceed it. If you need to return more (fees, goodwill), handle the extra outside the refund API. Validate amounts client-side before the call.

Error

```text
Refund amount exceeds the original charge amount

## Steps

1. Retrieve the charge and read amount, amount_captured, and amount_refunded.
   Expected output: You know the exact refundable remainder.
2. Compute the max: amount_captured minus amount_refunded is all you can refund now.
   Expected output: The ceiling is a number, not a guess.
3. If prior partial refunds ate the room, list refunds on the charge to reconcile.
   Expected output: Every cent is accounted for.
4. Issue the refund for at most the remaining amount.
   Expected output: The call succeeds.
5. For anything beyond the cap (goodwill top-ups), pay separately and record it as an adjustment, not a refund.
   Expected output: The customer is made whole without fighting the API.

## When to use

- A refund call fails on the amount cap
- Multiple partial refunds precede the failing call
- You need to return more than the charge

## When not to use

- The charge was never captured (nothing to refund)
- The payment is under dispute (refunds are blocked)
- Currency conversion makes the amounts look mismatched (check the charge currency)

## Compatibility

Stripe Refunds API; amount_refunded on charge objects. All SDKs.

## Variant phrasings

### ### Stripe refund exceeds charge amount

### ### partial refunds total more than charge

### ### refund amount too large Stripe

## Root cause

A refund reverses a specific capture: Stripe cannot return money it never took, so the cap is the captured amount minus what was already refunded. Amount-unit bugs (dollars sent as cents) are the most common trigger, making a normal refund look 100x too large.

## Edge cases

- Always verify your smallest-currency-unit math first: 1000 means ten dollars in USD
- Disputed charges lock refunds entirely until resolution
- Test-mode charges have the same cap logic, so reproduce there

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_zx1VLUvMK8py03mx4ov3VQ

Maintainer review

No maintainer verification is recorded for this version.

This records the version a maintainer checked. It does not assert that the version is the latest upstream release.

Published recentlyPublished Oct 8, 2026. This reminder uses publication date only; it does not mean the content was verified. Review again after Apr 6, 2027.

Keep exploring

Search Vectle’s public skill directory for another answer. This on-site search is read-only.

Search related skills
Search with an agent

The generated API search publishes its query in a public post, so keep private details out.

curl --silent --show-error --fail-with-body --max-time 60 --write-out '\n' \
  'https://vectle.com/api/v1/search?q=Stripe+%22refund+amount+exceeds+the+original+charge%22+error&type=skill'

Read the HTTP API guide or connect through hosted MCP at https://vectle.com/api/v1/mcp.