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

# Permanence

> Why a code we issue never stops resolving, and how that is enforced rather than promised.

Every link shortener says it will keep your links alive. The useful question is
what would have to go wrong for that to stop being true.

## What we guarantee

A code we issue keeps resolving:

* after you change its destination
* after you archive it
* after your payment fails
* after you cancel
* after you stop being a customer entirely and never contact us again

## How it is enforced

Not by policy. By the absence of the data that would make it revocable.

Resolution reads one key-value record and returns a `302`. That record contains
the destination, a status, and two version numbers. **It contains no account id,
no plan, and no billing field.** The code that serves redirects does not import
the billing module, does not query the control-plane database on the normal path,
and has no way to ask whether you have paid — not because it declines to, but
because none of that is reachable from where it runs.

<Card title="The consequence" icon="shield-check">
  Someone would have to deliberately re-architect the redirect path to add a
  paywall to it. It cannot happen through a config change, an expired card, a
  billing bug, a failed webhook, or a database outage.
</Card>

The control-plane database being down does not break redirects. A billing
provider outage does not break redirects. A subscription that lapses does not
break redirects, because nothing on that path ever asked.

## What follows from it

Several parts of the API look odd until you see them as consequences of this.

**There is no delete.** `POST /api/links/{id}/archive` removes a link from your
dashboard and the code keeps working. There is no endpoint that stops a code
resolving, because a printed code that stops working is the failure this product
exists to prevent — and we cannot tell the difference between "I no longer need
this" and "I forgot it is on 5,000 placemats".

**Archiving does not refund your quota.** Every link is permanent, so an archived
link still costs us to serve, forever. If archiving freed the quota, create,
archive, repeat would be unlimited free permanent links. This holds on the
Starter plan too: archiving a link does not give the current billing cycle's
allowance back, because the link it archived still resolves.

**A custom domain cannot be removed while any link resolves on it** — archived
ones included. Removing it would break every printed code using that hostname.

**A cancelled account can still download artwork.** Re-downloading the EPS for a
code you printed in 2024 is not a feature you are paying for; it is a copy of
something you already own.

## The endowment

Serving a redirect costs almost nothing, but "almost nothing, forever" is still a
liability, and a promise with no funding behind it is a marketing line.

Five percent of every payment we take — subscriptions and one-time agent
purchases alike — is recorded against an endowment whose only job is to fund
resolution of codes belonging to people who have stopped paying us. Each payment
writes a ledger row at the moment it lands.

That is why an agent's one-time \$2 purchase owes the endowment exactly as a
subscription does: it creates precisely the obligation the endowment exists to
cover.
