Billing
Manage subscriptions, checkout, and billing status via Stripe.
Billing
Billing is powered by Stripe. The API provides endpoints to create checkout sessions, access the billing portal, and query subscription status.
Create Checkout Session
POST /v1/billing/checkoutAuth: JWT (admin+)
Creates a Stripe Checkout session for upgrading to a paid plan.
bash
curl -X POST https://api.checkrd.io/v1/billing/checkout \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
{ "url": "https://checkout.stripe.com/c/pay_..." }Redirect the user to the returned URL to complete checkout.
Create Billing Portal Session
POST /v1/billing/portalAuth: JWT (admin+)
Creates a Stripe Billing Portal session for managing existing subscriptions, payment methods, and invoices.
bash
curl -X POST https://api.checkrd.io/v1/billing/portal \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
{ "url": "https://billing.stripe.com/p/session/..." }Get Billing Status
GET /v1/billing/statusAuth: JWT (viewer+)
Returns the organization's current plan, subscription status, limits, and usage.
bash
curl https://api.checkrd.io/v1/billing/status \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Response 200 OK
json
{
"plan_tier": "team",
"subscription_status": "active",
"has_stripe_customer": true,
"paid_until": "2026-05-10T00:00:00Z",
"trial_ends_at": null,
"limits": {
"agents": 50,
"api_keys": 20,
"members": 20,
"events_per_month": 1000000
},
"usage": {
"agents": { "used": 12, "limit": 50 },
"api_keys": { "used": 3, "limit": 20 },
"members": { "used": 5, "limit": 20 },
"events_this_month": { "used": 234500, "limit": 1000000 }
}
}| Field | Description |
|---|---|
subscription_status | active, past_due, canceling, canceled, or free. |
paid_until | End of current billing period. |
limits | Plan-tier resource limits. |
usage | Current usage against each limit. |