This project is not covered by Drupal’s security advisory policy.
A lightweight Stripe ↔ Drupal bridge for memberships and payments. It auto-syncs customers, subscriptions, and one-time purchases to Drupal users, assigns roles based on status and product tier, and provides self-service billing plus admin tools — all configurable, no code required.
- Webhook sync for subscriptions, invoices, checkout sessions, and payment intents
- Auto-link Stripe ↔ Drupal users (Checkout UID; smart email fallbacks)
- Auto-provisions the required user fields on install (no manual field setup)
- Configurable role automation: Active / Past-due / Inactive
- Per-product role assignment via a
drupal_rolemetadata key on the Stripe Price or Product — map Gold, Silver, Diamond tiers to different Drupal roles - Managed-roles set with single-active-role or allow-multiple behavior
- Map user fields: customer_id, subscription_id, status, expires, checkout_mode
- Supports subscriptions and one-time access (via
access_days; optional invoice) - Duplicate-subscription guard: none / same product / any
- Checkout launcher (accepts
prod_*orprice_*), success/cancel pages - Stripe Billing Portal links (self-service & admin)
- Membership status block (active / expiring-soon with renew link / join CTA), configurable reminder window
- Admin user search page — find users by Stripe Customer ID, Subscription ID, status, and more
- “Re-sync from Stripe” button on user profiles and the search page
- Dedicated permission to gate visibility of the Stripe user fields
- Keep Stripe API keys in settings.php (out of the database) — with an in-app setup guide and override detection
- Daily reconciliation (cron + queue) with “Run now” option
Project information
- Project categories: E-commerce
- Ecosystem: Stripe
1 site reports using this module
- Created by tanvirahmad on , updated
This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
1.0.0-alpha8
released 20 July 2026
Works with Drupal: ^10 || ^11
Wire up webhook event processing, stop stale-data downgrades in the daily sync, and add dry-run/abort-threshold safety to manual runs.
Install:
