RuPay Success Test Card Numbers

RuPay · Success: Approved charges are the baseline every payment suite needs. This scenario returns a succeeded payment_intent and fires payment_intent.succeeded to your webhook_url when configured.

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

When to use: Use after deploys to confirm order fulfilment, inventory decrement, and email receipts still run when status is succeeded.

CI tip: Assert webhook type payment_intent.succeeded and that your idempotency key handles duplicate delivery if simulate_race is enabled on Pro.

Webhook event: payment_intent.succeeded with signed X-MockCard-Signature header.

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