Short answer
Log the amount you send. Stripe expects the smallest currency unit, such as cents, so 10.99 USD is 1099. If the number is 100 times too big, remove the second conversion. For JPY and other zero-decimal currencies, send the amount as is. If the amount is real, split it or use another payment method.
Rather not fix it yourself? Stripe Billing Fix and Setup handles it at a fixed price, agreed before work starts.
Why the amount is too large, and the fix
01
The amount was converted to cents twice
“The specified amount is greater than the maximum amount allowed. Use a lower amount and try again.” Stripe, Error codes (amount_too_large)
A price stored in cents, then multiplied by 100 again in the checkout code, is 100 times too big. Keep one place that converts, and pass integers. If you convert from decimals, round with Math.round(price * 100).
// price is stored in cents in the database const amount = product.priceCents; // 1099, not product.priceCents * 100 await stripe.paymentIntents.create({ amount, currency: 'usd' });02
A zero-decimal currency was sent as cents
“For the following zero-decimal currencies, the charge and the amount are the same, without requiring multiplication.” Stripe, Supported currencies (zero-decimal)
JPY, KRW and other zero-decimal currencies have no minor unit. Multiplying them by 100 makes the amount 100 times too big. Check the currency before converting. ISK is the exception: Stripe still wants it as a two-decimal value.
03
The payment method or card network has a lower limit
“Card networks can impose charge amount limits that are more restrictive than digit number, depending on currency and region.” Stripe, Supported currencies (Maximum charge amounts)
The maximum depends on the payment method. Most cards allow 12 digits, Cartes Bancaires 10, and American Express 9 in most currencies. JCB, Diners Club and Discover cards on Japanese Stripe accounts allow 8. Non-card methods allow 8 digits in most currencies, which is lower than cards.
04
The amount is real
“Some payment methods enforce their own per-currency maximums that can be more restrictive than these limits.” Stripe, Supported currencies (Maximum charge amounts)
For a large invoice, split it into instalments or take a deposit. Check the limit of the payment method you use: some methods set their own maximums that are lower than the digit limits.
Checked against the vendor’s docs on : Stripe docs: Error codes; Stripe docs: Supported currencies.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- $950Stripe Billing Fix and SetupSubscriptions, webhooks, customer portal and failed payments set up or fixed, tested in Stripe test mode.See scope and start
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.See scope and start
“Working with Simon makes everything run so smoothly and better than I could ask for it. Amazingly communicative, extremely knowledgeable of coding and the backend processes. I strongly recommend.”
Related: Stripe amount_too_small · Stripe invalid_integer · Stripe incorrect_zip · Stripe card_not_supported