# Billing API
LaunchSuite provides a comprehensive billing system integrated with Stripe. You can manage subscriptions, track usage, and handle invoices programmatically or via the dashboard.
## Data Model
Billing data is stored locally in the `subscriptions` table for performance, while Stripe remains the source of truth for payments.
### Subscription Object
| Field | Type | Description |
| :--- | :--- | :--- |
| `id` | ID | Unique internal ID |
| `teamId` | ID | The team this subscription belongs to |
| `status` | Enum | `active`, `past_due`, `canceled`, `trialing` |
| `plan` | Enum | `free`, `pro`, `enterprise` |
| `currentPeriodEnd` | Date | When the current billing cycle ends |
## Webhooks
We listen to **Stripe webhooks** to keep local data in sync:
* `customer.subscription.created`
* `customer.subscription.updated`
* `customer.subscription.deleted`
* `invoice.payment_succeeded`
* `invoice.payment_failed`
## Usage Quotas
Limits are enforced based on the team's plan.
| Plan | API Calls | Seats |
| :--- | :--- | :--- |
| **Free** | 1,000 / mo | 1 User |
| **Pro** | 100,000 / mo | 5 Users |
| **Enterprise** | **Unlimited** | **Unlimited** |
> **Pro Tip**: You can query current usage via the API:
```http
GET /v1/teams/{team_id}/usage
```
## Plans Comparison
| Feature | Free | Pro | Enterprise |
| :--- | :--- | :--- | :--- |
| **Price** | $0 | $29/mo | Custom |
| **Support** | Community | Priority | SLA |
| **Analytics** | Basic | Advanced | Custom |