Why an invoice below Stripe's minimum charge stays pending
Last updated: June 30, 2026
When an invoice total is positive but falls below Stripe's minimum charge amount (typically $0.50 USD, though the threshold varies by currency), Lago attempts the payment and Stripe rejects it with an amount_too_small error. The invoice payment status is set to pending and stays there until you resolve it manually. This is expected behavior, not a billing error: Stripe will not process a charge under its minimum, and Lago does not pre-emptively skip the attempt.
Invoices with a $0 total are handled differently. They are marked as succeeded automatically without contacting Stripe at all, so the minimum-charge threshold never comes into play.
Why you don't get a failure notification
When Stripe rejects a payment for being too small, Lago suppresses the error webhook, so no invoice.payment_failure notification is sent. The invoice simply appears stuck in pending with no alert. The only way to catch these proactively is to monitor for pending invoices with small amounts.
How to resolve a stuck invoice
For an invoice already sitting in pending, you have three options:
Mark it as paid manually if the amount is negligible and you want to close it out without collecting payment.
Void it and let the amount be picked up in a later billing cycle, adjusting your charge minimums going forward so the total clears Stripe's threshold.
Leave it pending, since it remains collectable and will retry if the payment method or amount situation changes.
This article reflects guidance drawn from customer case resolutions. It is not officially supported documentation and may not apply to all situations.