Getting Started
Quickstart
Go from zero to your first evidence submission in under 10 minutes. This guide walks you through connecting Stripe, sending test events, generating a Bundle, and submitting evidence.
Prerequisites
- A Stripe account with Billing enabled
- A Node.js server (v18+) where you can install the SDK
- A RecurCite account — sign up free
1. Connect Stripe
Navigate to Dashboard → Settings → Stripe and click Connect Stripe Account. This initiates an OAuth flow — you'll authorize RecurCite to read disputes and submit evidence on your behalf.
Note
RecurCite uses Stripe Connect with read/write dispute scope only. We never access your customers' payment methods or billing data beyond what Stripe surfaces in the dispute object.
Once connected, RecurCite begins receiving charge.dispute.created and charge.dispute.updated webhooks automatically.
2. Install the SDK
npm install @recurcite/sdkThen initialize the client in your server code:
import { init } from "@recurcite/sdk";
const recurcite = init({
apiKey: process.env.RECURCITE_API_KEY!,
// Optional: enable HMAC signing for tamper-proof evidence
signingSecret: process.env.RECURCITE_SIGNING_SECRET,
});Get your API key from Dashboard → Developers. The key is shown once at creation — store it securely in your environment variables.
3. Send test events
Evidence events are timestamped records that prove your customer used your product, accepted your terms, or went through your cancellation flow. Send your first event:
await recurcite.track({
type: "terms.accepted",
payload: {
version: "2.0",
accepted_at: new Date().toISOString(),
},
stripe_refs: {
stripe_customer_id: "cus_abc123",
},
});Send a few more events to build a richer evidence profile:
// Track product usage
await recurcite.track({
type: "product.used",
payload: {
feature_key: "api_calls",
count: 150,
occurred_at: new Date().toISOString(),
},
stripe_refs: {
stripe_customer_id: "cus_abc123",
},
});
// Track a login
await recurcite.track({
type: "user.login",
payload: {
occurred_at: new Date().toISOString(),
ip: "203.0.113.42",
},
stripe_refs: {
stripe_customer_id: "cus_abc123",
},
});Tip
Always include stripe_refs.stripe_customer_id so RecurCite can automatically match events to disputes when they arrive.
4. Generate a Bundle
When a dispute arrives from Stripe, RecurCite automatically collects all matching evidence events for that customer. Go to Dashboard → Disputes and click on the dispute to see the evidence timeline.
Click Generate Bundle to assemble the evidence into a structured packet. The Bundle includes:
- Facts — extracted from your evidence events with citations
- Timeline — chronological view of all customer interactions
- Evidence Health score — 0–100 rating of evidence completeness
- PDF Packet — branded document ready for Stripe submission
5. Submit evidence
Review the generated Bundle and click Submit to Stripe. RecurCite uploads the PDF to Stripe's Files API, maps your evidence to Stripe's dispute evidence fields, and submits everything with an idempotency key.
Idempotency
Every submission uses a unique idempotency key. If you accidentally click submit twice, Stripe returns the existing result — no duplicate submissions.
Autopilot vs. Assist Mode
RecurCite offers two operating modes:
Assist Mode
You review each Bundle before submission. Ideal when you're getting started or want full control over every response.
Autopilot
RecurCite automatically generates and submits evidence as soon as a dispute arrives. Available on Pro and Scale plans.
Configure your mode in Dashboard → Autopilot.
Next steps
- SDK Installation — full API reference and advanced usage
- Event Reference — all event types and required fields
- Security & Data — understand what we store and how