---
title: "Add seats to an existing subscription"
method: POST
path: "/subscriptions/checkout/add-sessions"
tags: ["Subscriptions"]
---

# Add seats to an existing subscription

`POST /subscriptions/checkout/add-sessions`

## Request

- Base URL: `https://api.atako.ai`
- URL: `https://api.atako.ai/subscriptions/checkout/add-sessions`
- Auth: HTTP bearer

Company-admin only. If a reduction is currently scheduled (AF-57), it is released first (`pendingReductionCanceled: true` in the response) before the increase is applied. The seats are granted only once the prorated invoice is paid: when the payment needs an extra step (3DS) or fails, `pendingPayment: true`, `activeAgentsPurchased` is unchanged and `invoiceUrl` is where to pay; the seats land when Stripe confirms the payment.

## Request body

- object
  - `additionalSessions` integer, required

## Response `200`

- object
  - `invoiceUrl` string, nullable
  - `activeAgentsPurchased` integer: The live seat count — unchanged while `pendingPayment` is true.
  - `pendingActiveAgentsPurchased` integer: Only when `pendingPayment` is true: the seat count once the invoice is paid.
  - `pendingPayment` boolean
  - `pendingReductionCanceled` boolean

## Other responses

- `400`: additionalSessions must be a positive integer / Subscription is canceled
- `401`: Missing, malformed, or invalid bearer token / API key, or revoked session (SESSION_REVOKED).
- `403`: The caller does not have the required role/permission.
- `404`: No company / No active subscription
- `409`: SUBSCRIPTION_CANCEL_SCHEDULED — a cancellation is scheduled (`cancelAt`); reactivate the subscription first.
- `500`: Stripe subscription has no line items

---

[API](https://skmtc.dev/atako/apis/atako-api.md) · [All operations](https://skmtc.dev/atako/apis/atako-api/llms.txt) · [OpenAPI document](https://skmtc.dev/atako/apis/atako-api/revisions/aa555c56fbd7?raw)
