RuPay Do Not Honor Test Card Numbers

RuPay · Do Not Honor: do_not_honor is a generic issuer decline with no further detail. Many apps map it to a generic card error — test that you do not leak internal codes to end users.

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

When to use: Regression-test generic decline UX and support tooling that buckets unknown declines.

CI tip: Log decline_code from the webhook payload; MockCard mirrors Stripe-shaped error envelopes.

Typical decline_code in webhook payloads: do_not_honor.

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);