RuPay Insufficient Funds Test Card Numbers

RuPay · Insufficient Funds: insufficient_funds is one of the most common soft declines in production. MockCard returns the matching decline_code in last_payment_error and a payment_intent.payment_failed webhook.

RuPay is common in India-first stacks (Razorpay, domestic acquirers). Test RuPay-specific decline paths without waiting on gateway sandbox quotas.

When to use: Verify your UI shows a recoverable message, subscription retries backoff correctly, and you do not mark the order paid.

CI tip: Pair with do_not_honor and expired_card in a matrix test — gateways map codes differently.

Typical decline_code in webhook payloads: insufficient_funds.

visa

•••• •••• •••• ••••

Cardholder Name

CVV •••

Expires ••/••

Click card to flip

More RuPay scenarios

Same scenario, other networks

Need webhook race conditions or 3DS abandonment? See payment failure testing and the API docs. Compare plans on pricing.

API example

const res = await fetch("https://mockcard.io/api/v1/generate", {
  method:  "POST",
  headers: {
    "Content-Type": "application/json",
    "X-Api-Key":    process.env.MOCKCARD_API_KEY ?? "",
  },
  body: JSON.stringify({
    brand:    "visa",      // visa | mastercard | rupay | amex
    scenario: "success",  // success | insufficient_funds | 3ds_challenge …
  }),
});

const card = await res.json();
// { card_number, expiry_month, expiry_year, cvv, brand, scenario }
console.log(card.card_number, card.cvv);