Add-ons
Top up your plan without changing tiers. Add-ons stack on your plan’s limits and are billed monthly alongside your subscription.
What’s available
| Add-on | Adds | Price |
|---|---|---|
| Extra dynamic QR codes | +10 dynamic QR codes per unit | $5 / mo each |
| Extra team seat | +1 workspace seat per unit | $9 / mo each |
| Extra branded domain | +1 custom branded domain per unit | $10 / mo each |
Scans stay unlimited on every paid plan, so an “extra dynamic QR” pack only raises the number of dynamic codes you can hold, never a scan ceiling.
Buying or changing add-ons
- Go to Settings > Billing.
- Scroll to the Add-ons card (it appears once you have an active subscription).
- Use the + / − steppers to set how many of each add-on you want (or click Remove next to an add-on you hold), then click Save changes.
- Confirm the change. What happens next depends on your payment method:
- Most cards: your saved card is charged a prorated amount for the rest of the current billing cycle; the full amount applies from your next cycle.
- Mandate-based payment methods (for example cards or UPI in India): recurring mandates fix their maximum charge when they’re created, so a higher recurring total needs a fresh authorization. You’re redirected to a secure checkout for your plan plus the new add-ons. Your new subscription starts immediately, and the unused time on your old billing cycle is automatically refunded to your original payment method.
While the payment provider confirms the charge, the Add-ons card shows the change as processing. Your new limits apply as soon as the charge settles; if it fails, your current add-ons stay unchanged and you are not left in a broken state.
Removing add-ons
Click Remove next to the add-on (or step its quantity to 0) and save. Removals apply a prorated credit for the unused time immediately, and the lower total renews from your next cycle. Removals never require a redirect: they reduce your bill, so no new payment authorization is needed.
You can’t remove capacity you’re using. If an add-on’s extra dynamic QRs, seats, or domains are occupied (for example 105 active dynamic QRs on a plan whose base limit is 100), the Remove button is disabled and the card tells you how much usage to free up first. Delete or reduce the resources, then remove the add-on.
How limits stack
Add-ons add to your plan’s base cap. For example, on Growth (100 dynamic QR codes) with two “extra 10 dynamic QR” packs, your effective limit is 120. You’ll see the stacked limit on the usage card and when creating QR codes.
Add-ons and plan changes
Add-ons ride your subscription. If you change plans, add-ons that still make sense on the new plan carry over and continue to stack on its base caps. If you cancel, the add-ons end with the subscription.
When you upgrade to a plan that already includes what an add-on was providing (for example, moving to Business, whose dynamic QR codes are unlimited, while holding an “extra dynamic QR” pack), we automatically remove that add-on from your bill as part of the upgrade. You’ll see exactly what was removed in the confirmation. Add-ons that still extend a finite limit on the new plan are kept; you can remove them yourself any time.
When you downgrade, we check your usage against the new plan’s base cap plus your add-ons. If you’re still over (for example, more dynamic QRs than base + packs allow), we’ll ask you to reduce usage before the downgrade completes.
Who can manage add-ons
Buying or changing add-ons charges the workspace’s payment method, so it requires a workspace admin or owner role and a recent identity check (your authenticator code if two-factor is enabled; otherwise your password, or a Google confirmation for Google sign-in accounts).
API
You can also manage add-ons programmatically. See the API reference for
GET /api/payment/addons (list the catalogue + your current quantities) and
POST /api/payment/addons (set quantities). When a fresh payment authorization is required the
endpoint returns { "redirectUrl": "..." } instead of applying the change in place; send
success-url and error-url headers to control where the checkout returns.