Quick Start
Get your first subscription up and running in around fifteen minutes. This guide walks you through creating a product, adding a plan, completing a checkout, performing an entitlement check, and wiring the same flow into your application code. All you need is a Salable account — if you don't have one yet, sign up here.
Part 1 — Dashboard configuration
1. Create a Product
A Product on Salable contains your pricing models in plans and feature access in entitlements.
- Click on the Products tab on the sidebar to navigate to the Products page.
- Provide a name for your Product in the Product Name field (e.g. "My SaaS Product")
- Click the Create Product button.
2. Create a Plan
Plans allow you to define a pricing model and any entitlements your users should be able to access once they have subscribed.
- In the Products list view, click the Edit Product button (pencil icon) on your Product.
- Provide a name for your Plan and click the Create Plan button.
3. Create an Entitlement
Entitlements grant access to features (e.g. export_pdf, generate_images) in your Product. When a user subscribes to a Plan, they receive these Entitlements.
- Locate the Select Entitlements form field.
- Enter "entitlement_one" for your Entitlement name.
- Click the (+) button to create and add the Entitlement to your Plan.
Note Clicking
+stages the Entitlement in the form but does not persist it to the Plan until you click Save Plan in the next step.
4. Create a Line Item
Line Items are the components that make up your Plan's pricing model. Each pricing type (e.g. Per seat) has its own structure. For this guide, we will create a Flat Rate Line Item that charges a fixed fee each billing cycle.
- Click the Add Line Item button to pull up the Line Item form.
- Provide a name in the Line Item Name field (e.g. "Monthly Subscription Fee"). This name appears on Stripe invoices, so use clear, customer-facing language. Leave the Interval Type set to Recurring and the Price Type set to Flat Rate.
- Set up a price: set the currency to USD and the unit amount to $4.99. Leave the interval set to "Month" and Interval Count set to one.
- Click the Save Plan button.
5. Generate a Checkout Link
We have a Product, a Plan with an Entitlement and a flat rate Line Item. Now, let's purchase a Subscription.
- Scroll below the Plan form and click "Checkout Plan".
You will see two fields: Owner and Grantee's ID. The Owner is the ID of the tenant (the organisation or account) that holds the subscription in your application. The Grantee is the ID of the entity that will receive access to features. Read more about Access control.
- Enter
company_acmefor the Owner field anduser_janefor the Grantee's ID field. - Click Quick Checkout; you will be redirected to the Stripe checkout page.
Note Salable also supports Cart functionality; this enables a customer to build up a cart of any plan from any product in your business, giving you no restriction on what you can sell to a customer in one checkout.
6. Complete Stripe Checkout
On Stripe's checkout page, enter the following test payment details:
- Email Address:
someone@example.com - Card number:
4242 4242 4242 4242 - Expiry: Any future date
- CVC: Any 3 digits
- Postal code/Zip code: Any code
Note The actual fields may vary depending on your region.
Click Subscribe to complete the checkout.
7. Verify Your Subscription
After successfully checking out, Stripe will redirect you to the Subscriptions page in the dashboard. You should see your newly created Subscription with the Active status.
Click on the Subscription to view the Owner, the associated Plan, and a list of Invoices, including a draft of the next Invoice.
8. Check Entitlement Access
Perform an Entitlement Check to confirm your Grantee has access.
- Navigate to the Entitlement Check tab.
- In the Grantee's ID field, enter the same grantee ID you used in step 5.
- Click "Check Grantee".
You should see a response like the following:
{
"type": "object",
"data": {
"entitlements": [
{
"value": "entitlement_one",
"type": "entitlement",
"expiryDate": "2026-01-02T17:28:41.000Z"
}
],
"signature": "3045022054188fb22b12a9e8565beda67a9859a7e3eb23e31f806a1dccf7b551267e46b9022100b29021c7b579e36a63d6b1b6c1e2be55c64a285a15223119ab1b17f88410047b"
}
}Your Grantee has access to the Entitlement you created.
Note The entitlement check also offers an owner field. This is to scope the entitlement check for a grantee to a specific tenant like an organisation. Useful if your system allows users to belong to multiple organisations, as the user switches organisation their level of access updates automatically to the organisation they are currently acting as.
Part 2 — Application integration
With a working subscription flow confirmed in the dashboard, the next step is to drive it from your application code.
Get Your API Keys
In your sidebar, click API Keys. You will see two types:
- Publishable Key: Safe to use in frontend code.
- Secret Key: Must be kept secure on your backend.
Click the copy button and store them in your .env. Test Mode and Live Mode have separate keys.
Warning Never expose your Secret Key publicly.
Generate a Checkout Link
Call the POST /api/checkout endpoint from your backend to create a Stripe checkout session and redirect the user.
import { Salable } from '@salable/sdk';
const salable = new Salable('secret-api-key');
const { data } = await salable.api.checkout.post({
planId: 'YOUR_PLAN_ID',
owner: 'company_acme',
grantee: 'user_jane',
interval: 'month',
intervalCount: 1,
currency: 'USD',
successUrl: 'https://your-app.com/success',
cancelUrl: 'https://your-app.com/cancel'
});
// Redirect user to data.urlCheck Entitlements in Your Application
Gate features by checking whether the current user holds the required Entitlement.
import { Salable } from '@salable/sdk';
const salable = new Salable('secret-api-key');
const { data } = await salable.api.entitlements.check.get({
queryParameters: {
granteeId: 'user_123'
}
});
const granteeHasEntitlement = data.entitlements.some(e => e.value === 'entitlement_one');
if (granteeHasEntitlement) {
// Allow the user to perform the action in your system.
}Tip Setting up Entitlements allows you to create tailored plans for your customers' requirements. Copy any existing Plan, adjust its Entitlements and cost based on agreed terms, and they immediately get the exact feature set without any code change. For a deeper dive, see Understanding Entitlements.
Next Steps — Choose Your Pricing Model
The guide above uses flat-rate billing as a simple starting point. Each pricing model has a dedicated quick start covering checkout, entitlement checks, and any model-specific operations like recording usage or managing team seats.
- Flat-Rate Billing Fixed recurring fee. The simplest model: one price, charged every billing cycle.
- Per-Seat Billing Charge based on the number of users. Salable handles seat management and keeps entitlements in sync as team members join or leave.
- Usage-Based Billing Charge based on consumption. Record usage against a meter and Salable handles the rest.
- Hybrid Pricing Combine flat-rate, per-seat, and metered line items on a single subscription. The most powerful model.
- Token Billing Pre-paid consumable credits. Customers purchase a token balance and draw it down as they use your product.
For more detail on the underlying concepts, review core concepts.