Checkrd

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/checkout

Auth: 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/portal

Auth: 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/status

Auth: 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 }
  }
}
FieldDescription
subscription_statusactive, past_due, canceling, canceled, or free.
paid_untilEnd of current billing period.
limitsPlan-tier resource limits.
usageCurrent usage against each limit.