NEW AI agents now first-class: authorize · audit · revoke in one click — your agents submit cleanly, bots stay blocked. Read agent docs →
billing

Subscriptions via DODO Payments.

Plans upgrade an organization's quota. Billing runs through DODO Payments — start a hosted checkout, manage card/invoices in the portal, cancel at period end. These routes are session-authenticated (dashboard actions), not Bearer-token. Full schema in the API reference.

Plans

$ curl https://login.ollastack.com/api/billing/plans -H "Authorization: Bearer <token>"
{"provider":"dodo","enabled":true,"plans":[{"name":"solo","label":"Solo","quota":2000,"priceLabel":"$9 / month"}, ...]}

Subscribe

Returns a hosted checkout URL — redirect the user to it. On payment, a signed DODO webhook upgrades the org's plan.

$ curl -X POST https://login.ollastack.com/api/billing/dodo/subscribe \
     -H "Cookie: ollastack_session=…" -H "Content-Type: application/json" \
     -d '{ "plan": "solo", "orgId": "<orgId>" }'
{"success":true,"data":{"url":"https://checkout.dodopayments.com/session/…"}}

Manage / invoices

$ curl -X POST https://login.ollastack.com/api/billing/dodo/portal \
     -H "Cookie: ollastack_session=…" -H "Content-Type: application/json" \
     -d '{ "orgId": "<orgId>" }'
{"success":true,"data":{"link":"https://…"}}

Cancel

Cancels at period end — the paid plan stays active through the cycle you paid for, then drops to free.

$ curl -X POST https://login.ollastack.com/api/billing/dodo/cancel \
     -H "Cookie: ollastack_session=…" -H "Content-Type: application/json" \
     -d '{ "orgId": "<orgId>" }'