Skip to content

docs: add merchant migrations design doc#12454

Closed
psincraian wants to merge 9 commits into
mainfrom
psincraian/elastic-greider-765c1a
Closed

docs: add merchant migrations design doc#12454
psincraian wants to merge 9 commits into
mainfrom
psincraian/elastic-greider-765c1a

Conversation

@psincraian

@psincraian psincraian commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an engineering design document (RFC) for migrating merchants to Polar from Stripe, Lemon Squeezy, and Paddle, and registers it in the handbook navigation.

The design it's generic, but for now it's more focused from Stripe to Polar.

Why

Gives the team a single, reviewable plan for merchant migrations before implementation starts.

Checklist

  • This PR addresses a single concern (one bug fix, one feature, one refactor)
  • The diff is reasonably sized and easy to review
  • New functionality is covered by tests
  • Linting and type checking pass (uv run task lint && uv run task lint_types)
  • No unrelated changes or drive-by fixes are included

Docs-only change (handbook). No server/ or clients/ code touched, so the backend/web lint and type-check steps don't apply.

🤖 Generated with Claude Code


Summary by cubic

Adds an engineering design doc for migrating merchants from Stripe, Lemon Squeezy, and Paddle to Polar with a guided process for catalog import, PAN Copy/Import, per-subscription cutover, and cleanup. Adds a testing and rollout plan.

  • Details
    • Stripe specifics: ACH/SEPA PaymentMethods copyable; Bacs/legacy SEPA sources not; billing period on the subscription item with a day-of-month anchor; one discount per subscription; store the source subscription id in user_metadata.
    • Wallets: Apple Pay cards copy via PAN Copy; Google Pay can’t be imported; Link-origin card PaymentMethods copy; copied cards keep customer ids but get new pm_… ids.
    • Cutover and rollout: cutover gated on PAN checklist completion and the org being in REVIEW or ACTIVE; subscriptions imported tax-inclusive and paused with migration_billing_paused; SEPA/ACH guidance aligned across the body and Appendix A; live-only testing plan added (start with a small PAN Copy on live, then a friendly merchant, behind a feature flag); page registered in the handbook navigation.

Written for commit 44b01ca. Summary will update on new commits.

Review in cubic

Engineering design document (RFC) for migrating merchants from Stripe, Lemon Squeezy, and Paddle to Polar, plus its handbook nav entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
orbit Ready Ready Preview, Comment Jun 18, 2026 9:09am
polar Ready Ready Preview, Comment Jun 18, 2026 9:09am
polar-sandbox Ready Ready Preview, Comment Jun 18, 2026 9:09am
polar-test Ready Ready Preview, Comment Jun 18, 2026 9:09am

Request Review

@mintlify

mintlify Bot commented Jun 17, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Handbook 🟢 Ready View Preview Jun 17, 2026, 5:00 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

… our integration

SEPA PaymentMethods and ACH are copyable (only Bacs / legacy SEPA sources aren't); subscription period now lives on the item (Basil API); anchor is day-of-month; single discount per sub; sub marker stored in user_metadata.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Propagate the SEPA/ACH-copyable correction into the body and Appendix A; reconcile the org-status gate (REVIEW or ACTIVE); describe the cleanup phase; consistent phase/owner wording; cross-reference the appendices and the precheck engine.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@psincraian

Copy link
Copy Markdown
Contributor Author

Superseded by #12502. This branch had a broken merge history (two independent merges of main left an invalid docs.json, which failed the Mintlify build). #12502 is a clean branch off main with the same doc content and a valid nav config.

@psincraian psincraian closed this Jun 18, 2026
@psincraian psincraian deleted the psincraian/elastic-greider-765c1a branch June 18, 2026 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant