SaaS starter (Razorpay)
The base of a subscription SaaS billed in INR: a landing page with live pricing, self-serve sign-up, workspaces with owners, admins and members, email invitations, a sample Projects feature whose limits follow the plan, and Razorpay Subscriptions. Owners pick a plan and authorise UPI AutoPay or a card mandate on Razorpay's hosted page; Razorpay's signed webhook is the only thing that activates the plan, records each charge as an invoice, flags failed payments and drops a cancelled workspace back to Free. Owners cancel at the end of the period from the app. Admins see revenue, customers, invoices and every billing event. Works with Razorpay test keys.
Members sign up from the landing page and work in workspaces (owner, admin, member). Admins run the business.
What's inside
Landing page with live pricing in INR from the plan table. Workspaces with owners, admins and members; invitations by email. Projects as the sample feature, limited by the workspace's plan. Plans and billing page: subscribe on Razorpay, cancel at period end. Admin: revenue, plans, customers, accounts, invoices and the billing event log.
Tables
membername, email, job_title, avataradminname, emailworkspacename, owner_id, plan_id, websitemembershipworkspace_id, member_id, role, status, member_name, member_emailinvitationworkspace_id, email, role, status, invited_byplanname, description, price, currency, interval, razorpay_plan_id, project_limit, seat_limit, …subscriptionworkspace_id, plan_id, status, sync, current_period_end, cancel_at_period_end, razorpay_subscription_id, authorize_urlinvoiceworkspace_id, subscription_id, number, amount, currency, status, hosted_url, period_start, …projectworkspace_id, name, description, status, due_onbilling_eventtype, summary, workspace_id, event_id, received_at
Roles
memberMember, consumeradminAdmin, staff
Pages
/Home/workspacesWorkspaces (member)/workspaces/:idWorkspace (member)/projectsProjects (member)/peoplePeople (member)/billingPlans and billing (member)/revenueRevenue (admin)/plansPlans (admin)/all-workspacesCustomers (admin)/accountsAccounts (admin)/invoicesInvoices (admin)/billing-eventsBilling events (admin)- and 2 more
Components
WorkspaceBillingPlans for the workspace you administer, its subscription, upgrade and manage billing
Rules on every write
workspaceThe plan changes through billingmembershipThe owner stays the ownerinvitationNo seats leftsubscriptionA paid plan starts pending until Razorpay confirms it.subscriptionOnly Razorpay changes a subscription.projectYour plan's project limit is reached
How its workflows run
Each one is a server workflow in your project: it runs on its trigger, with retries, and its runs show in the builder's log.
- Set up a new workspace
When a row changes:
workspace created. Then: Look up member, then Update workspace, then Create membership. - Add or invite a teammate
When a row changes:
invitation created. Then: Look up workspace, then Update membership, then Create membership, then Send email. - Accept invitations when someone signs up
When a row changes:
member created. Then: Look up invitation, then Create membership, then Update invitation. - Show names on workspace memberships
When a row changes:
membership created. Then: Look up member, then Update membership. - Start a Razorpay subscription for a workspace plan
When the app calls it:
server function (member). Then: Look up member, then Call api.razorpay.com, then Create subscription. - Apply Razorpay's subscription events
When a webhook arrives:
webhook razorpay-billing-events. Then: Look up subscription, then Update subscription, then Create invoice, then Send email. - Cancel a Razorpay subscription at the end of the period
When the app calls it:
server function (member). Then: Look up subscription, then Call api.razorpay.com, then Update subscription. - Check a subscription with Razorpay (fallback)
When the app calls it:
server function (member, admin). Then: Look up subscription, then Call api.razorpay.com, then Update subscription. - Apply what Razorpay said about a subscription
When a row changes:
subscription updated, when sync is requested. Then: Update subscription, then Look up subscription. - Weekly billing summary for admins
On a schedule:
schedule weekly mon 08:00 over invoice. Then: Send email.
Set it up
It starts a new project, with its data, roles and sign-in ready.
- Start the project
Use the button above, or ask your coding agent with the Appbricx MCP server connected (quickstart).
- Connect what it calls
add the RAZORPAY_KEY_ID secret (project settings); add the RAZORPAY_KEY_SECRET secret (project settings); add the RAZORPAY_WEBHOOK_SECRET secret (project settings). A Razorpay account (test mode is fine) with Subscriptions enabled and a plan per paid tier; paste each plan_... id into the plan. A Razorpay webhook (Settings, Webhooks) at the URL get_contract lists for razorpay-billing-events, for the subscription.* events, with its secret in RAZORPAY_WEBHOOK_SECRET.
- Sign in as each role
The demo logins open each role's home. Change what you like in plain words or in the contract.
- Deploy
When dev looks right, deploy. Production gets a snapshot first, so you can roll back.
Use it with your coding agent
The agent creates the project, builds it and signs in as each role.
Start a new Appbricx project from the SaaS starter (Razorpay) template (slug "saas-starter-razorpay") with use_template. Call it "My SaaS starter (Razorpay)", then sign in as each role, verify it and tell me what to change first.{
"tool": "use_template",
"arguments": {
"slug": "saas-starter-razorpay",
"name": "My SaaS starter (Razorpay)"
}
}appbricx templates use saas-starter-razorpay --name "My SaaS starter (Razorpay)"Works with
The services this template calls. Each page lists every action and what connecting it takes.
Goes well with

Stripe subscriptions
Monthly or yearly plans paid through Stripe Checkout, with a billing page and Stripe's own billing settings.

One-off payments
Take a card payment for any record (a booking, an order, an invoice) through Stripe Checkout, confirmed by the server.

Razorpay payments
Take a payment in INR for any record (a booking, an order, an invoice) through a Razorpay Payment Link: UPI, cards, netbanking and wallets, confirmed by Razorpay's signed webhook.



