What is the insufficient_funds error?
insufficient_funds is a decline code meaning the card issuer believes there isn't enough available balance to cover the transaction. Straightforward in theory โ but in practice this error frequently appears even when you're certain you have money in your account.
Why does this error appear when money is available?
Several common situations can cause this:
- Currency conversion. The merchant charges in USD while your card is in a different currency. Your bank converts the amount using its own exchange rate and adds a conversion fee, making the total higher than you expected.
- Authorization holds. Previous transactions may have placed temporary blocks on your funds. A failed payment attempt can leave a hold for 3โ5 days.
- Buffer authorization requests. Some merchants (hotels, car rentals) pre-authorize an amount larger than the actual charge to verify the card. Those funds are frozen.
- Daily spending limit reached. Your bank may have set a daily maximum. Even with a sufficient balance, the limit is exhausted.
- Ledger balance vs. available balance. Your banking app often shows the "ledger balance" (including pending transactions), not the funds actually available to spend.
- Credit limit exhausted. For credit cards, the displayed balance may look fine but the credit line is fully used.
How to fix the error
- Check available balance, not ledger balance. Look for "available balance" in your banking app โ that is the actual amount eligible for transactions.
- Account for conversion fees. Add 1โ3% to the payment amount (or check your bank's exact fee). Your available funds may fall just short after fees.
- Check for active holds. Look in your transaction history for pending authorizations that are locking part of your balance.
- Verify daily spending limits. Ask your bank whether you've hit your daily transaction cap.
- Top up with a buffer. Add slightly more than the payment amount to cover fees and exchange rate fluctuations.
- Use a card in the right currency. Marix virtual cards are denominated in USD โ no conversion and no unpredictable fees when paying US-based services.
FAQ
Why does my bank show a sufficient balance but the payment still fails? Because the "ledger balance" in your app includes pending transactions. The actually available amount can be lower. Look for an "available" or "available to spend" figure.
How long are authorization holds frozen? Unauthorized holds typically release within 3โ7 business days. Authorized holds (from hotels, for example) lift after the actual charge is captured or when the authorization window expires (usually 7โ30 days).
How does a Marix card help avoid this error? Marix cards are denominated in USD, so when paying US-based services you see exactly what will be charged โ no hidden conversion, no surprise bank fees.
Tired of unexpected declines caused by currency conversion and holds? Marix USD virtual cards make international payments predictable and fee-transparent.

