Products and Purchases
Products let you sell ongoing access, such as a membership, a course subscription or a premium tier of your app, and bill for it automatically. When someone buys a product, Qik records a purchase receipt, gives them the access passes attached to the product, and charges their saved card each billing period through your Stripe gateway.
Products, purchases and saved payment methods are an optional feature and may need to be enabled for your organisation. If the Products and Purchases/Subscriptions panels don't appear under Payments, contact support. To take one-off payments for registrations, use a paid form instead. See Payment Basics.
Key concepts
| Record | What it is |
|---|---|
| Product | Something you sell: its price, currency, billing schedule, and the access passes buyers receive. |
| Purchase Receipt | The link between one user and one product after they buy it. While it's active, the user holds the product's access passes. It also tracks the next payment date and whether the subscription is renewing or cancelling. |
| Purchase Invoice | One bill for one period of a purchase, with its period dates, amount, and whether it's Paid or Unpaid. Each invoice links to the transactions that tried to pay it. |
| Payment Method | A card a user has saved with your Stripe gateway so renewals can be charged without them present. Qik stores a reference to the card held by Stripe, never the card number. |
Purchases belong to a user (a login), not just a profile, because the access passes they grant are applied when that user signs in.
Where to find them
Open Payments in the dashboard sidebar:
- Products ("Your product library") — browse and create products.
- Purchases/Subscriptions ("Receipts of customers who have purchased your products") — browse purchase receipts and purchase invoices.
- Payment Methods ("Saved cards and payment methods for your customers").
- Payment Gateways — your Stripe integration. See Connecting Stripe.
Creating a product
- Go to Payments → Products and create a new product in the right scopes.
- Give it a title, for example Gold Membership.
- Set the Payment Type. For products sold through Qik's built-in purchase flow, choose Subscription (see the note below).
- Choose the Currency and enter the Amount charged each period. The minimum charge is 1.00.
- Under Payment, set how often it bills: Every 1 Month, or 12 Months, 1 Year, and so on.
- Under Product Access Passes, choose the access passes buyers should receive, for example a Members Area pass that opens member-only content in your app. See Managing Users and Access Passes.
- Save.
Note: Qik's built-in purchase flow sets up every purchase as a recurring purchase billed on the product's Payment schedule. Always give products sold this way the Subscription payment type and a schedule, even if you expect people to cancel after the first period.
How a purchase works
- The user saves a card. Signed in to your app or website, the user adds a payment method through Stripe's secure card form. The new payment method is Pending until Stripe confirms it, then becomes Active.
- The user buys the product. Qik creates an active purchase receipt for that user and product, in test or live mode to match the card. The receipt takes the product's scopes, or the gateway's scopes if the product has none.
- Access is granted. The next time the user's session loads, they hold the product's access passes on top of any others they have.
- The first invoice is charged. The receipt's Next Payment Date starts at the time of purchase, so shortly after purchase Qik creates the first purchase invoice for the coming period and charges the user's saved card.
- Renewals repeat. Each time the Next Payment Date passes, Qik moves it forward by one billing period, creates an invoice for that period and charges the card. If the payment succeeds, the invoice is marked Paid. If it fails, it stays Unpaid, and the failed transaction is linked to it.
Each charge appears as an ordinary transaction under Payments → View all transactions, and can be refunded from there. See Transactions and Refunds.
Managing subscriptions
Open a purchase receipt to see the product, the user, the payment method, the amount, the Next Payment Date and the Subscription Context:
| Subscription Context | What happens |
|---|---|
| Active - Renewing | The default. The user keeps access, and the purchase renews at each Next Payment Date. |
| Active - Cancelling | The user keeps access until the Next Payment Date. At that point, instead of renewing, the purchase becomes Inactive - Cancelled and the access passes are removed. |
| Inactive - Cancelled | The purchase is deactivated straight away. No further charges are made and the access passes are removed. |
To cancel at the end of the paid period, set Active - Cancelling. To cut off access now, for example after a chargeback, set Inactive - Cancelled. To also return money, refund the relevant transaction separately.
When a renewal payment fails
A failed renewal leaves that period's invoice Unpaid. Qik doesn't retry the invoice, email the user, or deactivate the purchase on its own, so the user keeps their access passes. Check Purchase Invoices regularly for unpaid invoices (filter Payment Status to Unpaid). Then follow up with the user, or cancel the purchase receipt if they shouldn't keep access.
Saved payment methods
Each saved card shows its Status (Active, Pending, Deactivated or Error), its Mode (live or sandbox), the gateway it was saved with, and the user it belongs to. Renewals are only charged to Active payment methods.
If a user has more than one active payment method, Qik charges renewals to one of their active methods. That may not be the card used when they first purchased. To be certain which card is charged, keep only one active payment method per user, and deactivate old ones. In particular, don't leave a test card and a live card active on the same user.
Test mode
Purchases, invoices and payment methods each have a Mode of Live or Sandbox. A sandbox purchase is made with a card saved using your Stripe test keys and is charged in test mode, so no real money moves. Use test mode while building your purchase pages, then switch your app to live. Sandbox purchases still grant their access passes while active, so cancel test purchases when you've finished testing.
For builders: the purchase API
The purchase flow is driven by your own app or website, using the signed-in user's session. The main endpoints are:
| Request | Purpose |
|---|---|
GET /payment/:integrationID/method/setup | Starts saving a card. Returns a Stripe setup intent (use its client secret with Stripe Elements), the publishable key, and the new payment method's id. Add ?sandbox=true for test mode. |
POST /payment/:integrationID/method/confirm | After Stripe confirms the setup in the browser, send { "method": "<payment method id>" } (and "sandbox": true in test mode) to activate the saved card. |
GET /payment/methods | Lists the signed-in user's active saved payment methods (?sandbox=true for test ones). |
POST /payment/:integrationID/buy | Buys a product: { "product": "<product id>", "method": "<payment method id>", "sandbox": false }. If method is left out, one of the user's active methods for that gateway is used. Returns the new purchase receipt. |
GET /payment/purchases | Lists the signed-in user's active purchases, including the next payment date and subscription context. |
These requests need a signed-in user, not an anonymous visitor, because the card and the purchase belong to that user.
Permissions
- Staff access to Products, Purchase Receipts, Purchase Invoices and Payment Methods is set with the matching permissions in their roles, within scopes. See Roles and Permissions.
- Anyone who can edit a product's Product Access Passes decides what buyers can access. Treat that permission as carefully as the right to assign access passes directly.
- Users don't need any special permission to buy. They only need to be signed in and have an active saved card.
Tips
- To end access for everyone who bought a product, cancel their purchase receipts (set Inactive - Cancelled) rather than editing the product's access passes, which would also change what future buyers receive.
- Keep product prices in step with what your website shows. The amount charged at each renewal is the amount saved on the purchase receipt when it was bought, not the product's current price.