Billing API
Quazzar Space uses Stripe for payment processing. This reference covers how to list plans, initiate checkout, access the customer portal, and retrieve invoices.
Base URL
https://app.quazzar.spaceAll billing endpoints require an Authorization: Bearer <token> header. See the Authentication guide.
Subscription Plans
List Available Plans
GET /billing/public/plans
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://app.quazzar.space/billing/public/plansResponse (200 OK):
{
"plans": [
{
"id": "plan-uuid-free",
"name": "Free",
"slug": "free",
"monthly_price": 0,
"annual_price": 0,
"limits": {
"max_projects": 1,
"max_environments_per_project": 1,
"max_services": 3,
"max_users": 3
},
"features": ["crud_basic"]
},
{
"id": "plan-uuid-starter",
"name": "Starter",
"slug": "starter",
"monthly_price": 29.00,
"annual_price": 290.00,
"limits": {
"max_projects": 3,
"max_environments_per_project": 2,
"max_services": 10,
"max_users": 10
},
"features": ["crud_basic", "crud_pro", "api_access", "impex"]
},
{
"id": "plan-uuid-team",
"name": "Team",
"slug": "team",
"monthly_price": 79.00,
"annual_price": 790.00,
"limits": {
"max_projects": 10,
"max_environments_per_project": 5,
"max_services": 50,
"max_users": 50
},
"features": [
"crud_basic", "crud_pro", "crud_api",
"multi_cloud", "aws_integration", "gcp_integration", "azure_integration",
"monitoring", "scheduler_ansible", "service_map"
]
}
]
}Plan Tiers and Pricing
| Plan | Monthly | Annual | Projects | Envs/Project | Services | Users |
|---|---|---|---|---|---|---|
| Free | $0 | — | 1 | 1 | 3 | 3 |
| Starter | $29 | $290 | 3 | 2 | 10 | 10 |
| Team | $79 | $790 | 10 | 5 | 50 | 50 |
| Business | $199 | $1,990 | Unlimited | 10 | Unlimited | Unlimited |
| Enterprise | $499 | $4,990 | Unlimited | Unlimited | Unlimited | Unlimited |
| Enterprise+ | Custom | Custom | Unlimited | Unlimited | Unlimited | Unlimited |
Annual billing provides approximately a 17% discount (2 months free).
Checkout
Initiate a new subscription checkout session via Stripe.
POST /billing/public/checkout
curl -X POST https://app.quazzar.space/billing/public/checkout \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"plan_id": "plan-uuid-team",
"billing_period": "monthly",
"success_url": "https://app.quazzar.space/billing/success",
"cancel_url": "https://app.quazzar.space/billing/cancel"
}'Response (200 OK):
{
"checkout_url": "https://checkout.stripe.com/c/pay/cs_live_...",
"session_id": "cs_live_..."
}Redirect the user to checkout_url to complete payment on Stripe’s hosted checkout page.
Billing Periods:
| Period | Description |
|---|---|
monthly | Charged monthly at the plan’s monthly price |
annual | Charged annually at the plan’s annual price (~17% discount) |
Customer Portal
Redirect the user to Stripe’s customer portal where they can manage payment methods, view invoices, and update their subscription.
GET /billing/public/portal
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://app.quazzar.space/billing/public/portalResponse (200 OK):
{
"portal_url": "https://billing.stripe.com/p/session/..."
}Invoices
List Invoices
GET /billing/public/invoices
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://app.quazzar.space/billing/public/invoices?page=1&status=paid"Query Parameters:
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Items per page (default: 20) |
status | string | Filter by status: paid, pending, overdue |
Response (200 OK):
{
"items": [
{
"id": "inv-uuid-1",
"amount": 79.00,
"currency": "usd",
"status": "paid",
"period_start": "2026-02-01T00:00:00Z",
"period_end": "2026-03-01T00:00:00Z",
"paid_at": "2026-02-01T00:05:00Z",
"pdf_url": "https://pay.stripe.com/invoice/..."
}
],
"total": 12,
"page": 1,
"per_page": 20
}Current Subscription
Get Active Subscription
GET /billing/public/subscription
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://app.quazzar.space/billing/public/subscriptionResponse (200 OK):
{
"id": "sub-uuid",
"plan": {
"id": "plan-uuid-team",
"name": "Team",
"monthly_price": 79.00
},
"billing_period": "monthly",
"status": "active",
"current_period_start": "2026-03-01T00:00:00Z",
"current_period_end": "2026-04-01T00:00:00Z",
"cancel_at_period_end": false,
"usage": {
"projects": { "used": 4, "limit": 10 },
"services": { "used": 28, "limit": 50 },
"users": { "used": 12, "limit": 50 }
}
}Cancel Subscription
POST /billing/public/subscription/cancel
curl -X POST https://app.quazzar.space/billing/public/subscription/cancel \
-H "Authorization: Bearer YOUR_TOKEN"Cancels the subscription at the end of the current billing period. You retain full access until then.
Response (200 OK):
{
"message": "Subscription will be cancelled at the end of the current billing period",
"cancel_at": "2026-04-01T00:00:00Z"
}Feature Access
Your subscription plan determines which platform features are available. Check your current features:
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://app.quazzar.space/features/meResponse (200 OK):
{
"features": [
"crud_basic",
"crud_pro",
"multi_cloud",
"aws_integration",
"gcp_integration",
"monitoring",
"scheduler_ansible",
"service_map"
]
}If you attempt to use a feature not included in your plan, the API returns 403 Forbidden with a message indicating the required plan tier.
Enterprise and Custom Plans
For Enterprise and Enterprise+ plans with custom pricing, volume discounts, or add-on features, contact the Quazzar sales team at [email protected]. Enterprise plans include:
- Unlimited resources across all dimensions
- SSO/SAML and SCIM provisioning
- Custom SLA agreements
- Dedicated support channels
- On-premise deployment options (Enterprise+)
Next Steps
- Authentication — Token management
- Projects API — Create projects within your subscription limits
- Services API — Manage services and infrastructure