> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keyport.sbs/llms.txt
> Use this file to discover all available pages before exploring further.

# Billing

> Manage recurring subscriptions, customers, cancellations, and billing states from the KeyPort dashboard.

KeyPort billing centers on **recurring Dodo Payments subscriptions** and provider-backed invoice history.

When a customer completes checkout with a recurring price, KeyPort creates a subscription tied to that organization. The dashboard shows the subscription state, current period end, linked billing customer, and cancellation controls.

<Tip>
  For the full plan matrix, usage caps, and feature availability, see [Plans & Limits](/plans-and-limits).
</Tip>

## Plans

<AccordionGroup>
  <Accordion title="Free">
    Free is available at no cost and is best for early-stage projects.

    * Up to **10 products**
    * Up to **200 licenses**
    * **1 member** per organization
    * Up to **10,000 API calls/day** per product
  </Accordion>

  <Accordion title="Pro">
    Pro is billed as a recurring subscription starting at **\$7.99/month** and unlocks higher limits plus advanced features.

    * Up to **200 products**
    * Up to **5,000 licenses**
    * Up to **15 members**
    * Up to **100,000 API calls/day** per product
    * Version control, webhooks, custom responses, and org IP blacklist
  </Accordion>

  <Accordion title="Enterprise">
    Enterprise is a direct recurring monthly subscription at **\$19.99/month** with unlimited limits and support-oriented controls.

    * Unlimited products, licenses, members, and API caps
    * Signed validation responses
    * SLA-style support workflows
    * Provider-linked billing customer and subscription controls
  </Accordion>
</AccordionGroup>

## Subscription lifecycle

Subscriptions are created when a recurring checkout completes successfully.

* Billing runs on the selected recurring price interval
* Renewals are charged automatically
* Failed renewals can move the subscription into `past_due` or `failed`
* You can cancel at period end

## What the dashboard shows

Each organization billing page now highlights:

* Current plan and billing state
* Current subscription amount and interval
* Current billing period end
* Linked billing customer identity
* Provider subscription and customer IDs for support/debugging
* Cancel-at-period-end actions when allowed

## Billing states

| State               | Meaning                                                               |
| ------------------- | --------------------------------------------------------------------- |
| `active`            | Subscription is current and the organization is in good standing.     |
| `past_due`          | A renewal failed and billing needs attention.                         |
| `billing_suspended` | Service has been restricted because billing was not resolved in time. |
| `cancelled`         | Billing has been canceled or the organization was deleted.            |

<Warning>
  Deleting an organization immediately cancels its active billing linkage and clears stale subscription references so they do not leak into a newly created organization later.
</Warning>

## Canceling a subscription

From the billing page you can **cancel at period end** to keep the subscription active until the current paid period finishes.

If a subscription is already marked to end at period end, the dashboard reflects that state clearly so you do not accidentally duplicate the action.

## Billing customers

Every recurring subscription can be linked to a billing customer record. That record stores:

* email
* name
* phone
* provider customer ID
* metadata from checkout or follow-up updates

This is useful for support, reconciliation, and provider-side debugging.

## If a renewal fails

When a recurring renewal fails permanently:

* the subscription can move to `failed`
* any linked entitlement can expire
* a `subscription.payment_failed` webhook is sent
* your organization may eventually move into a restricted billing state if the issue is not resolved

## Related reference

* [Plans & Limits](/plans-and-limits)
