Skip to content
Developers

Boring APIs. In the best way.

Consistent REST contracts, idempotent writes, signed webhooks and a sandbox that behaves like production. Read the docs, pull a key and make your first call before anyone asks you for a purchase order.

POSTQuickstart
# 1. Get your sandbox key from the dashboard
export RUPEECO_KEY="rpc_test_..."

# 2. Make your first call
curl https://api.rupeeco.in/v1/verify/pan \
  -H "Authorization: Bearer $RUPEECO_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "pan": "ABCDE1234F", "consent": "Y" }'

# 3. Listen for events
curl https://api.rupeeco.in/v1/webhooks \
  -H "Authorization: Bearer $RUPEECO_KEY" \
  -d '{ "url": "https://yourapp.com/hooks/rupeeco",
        "events": ["payment.captured", "verification.completed"] }'
API design principles

Predictable behaviour, documented edge cases

The parts of an API you only appreciate at 2am during an incident.

One key, every suite

A single scoped API key authenticates against all eight suites. Rotate without redeploying.

Idempotency built in

Send an Idempotency-Key header on any write and retry safely — duplicate charges are impossible.

Signed webhooks

HMAC-SHA256 signatures, exactly-once delivery, automatic retry with exponential backoff and a replay API.

Predictable errors

Stable machine-readable error codes with a human message and a docs link on every failure.

Versioned contracts

Pin an API version per key. Breaking changes ship behind a new version, never inside one.

Sandbox parity

The sandbox mirrors production behaviour, including simulated failures, timeouts and settlement cycles.

SDKs

Install and start calling

Typed clients with retries, idempotency and webhook verification already handled.

  • Node.jsnpm install @rupeeco/node
  • Pythonpip install rupeeco
  • Javaimplementation 'in.rupeeco:rupeeco-java:1.0.0'
  • PHPcomposer require rupeeco/rupeeco-php
  • Gogo get github.com/rupeeco/rupeeco-go
  • Rubygem install rupeeco
Webhooks

Verify before you trust

Every event carries an HMAC-SHA256 signature and a timestamp. Reject anything that fails verification or arrives outside your tolerance window.

// Verify a Rupeeco webhook signature (Node.js)
import crypto from "node:crypto";

export function verify(rawBody, signature, secret) {
  const expected = crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}

Sandbox access

  • Test keys with no volume commitment
  • Simulated failures, timeouts and settlement cycles
  • Reset your sandbox ledger any time
  • Same request and response shapes as production

Need keys today? Email support@rupeeco.in with your company name and the suites you want to test.

Request sandbox access
Try first. Subscribe later.

Start with sandbox keys. Talk commercials when you are ready.

Test the full API surface before you sign anything. When you are ready to go live, we price on the volume you actually process.

1

Map your flows

A solutions engineer walks through your money-in, money-out and verification requirements and proposes the shortest path live.

2

Test in sandbox

Pull keys, replay real-world scenarios and validate webhooks against a sandbox that mirrors production behaviour.

3

Go live and scale

Switch to production keys, turn on routing rules, and add new suites from the marketplace whenever you need them.