# Going live

A final pass before you put your service in front of paying agents.

## Launch checklist

- **Key exchange is signed and complete.** `POST /zeroclick/api-key` verifies
  the signature with a constant-time comparison, rejects stale timestamps,
  and is idempotent. `DELETE` actually revokes the key.
- **Every paid path reports usage.** Each billable action either returns an
  `X-ZeroClick-Usage` header or lands in an async batch, and no action is
  reported through both.
- **The 402 contract is honored.** Paid actions check the buyer's allowance
  first, exhausted requests return `402` with the right
  `X-ZeroClick-Reason`, and a 402 leaves no side effects so the retry after
  `/extend` is safe.
- **Plans read well to a buyer.** Names, descriptions, prices, and included
  usage at `https://{service-slug}.pay.zeroclick.io/plans` make sense to an
  agent choosing a plan with no prior context.
- **Spend caps are set.** Pay-as-you-go and overage plans have a cap, and
  your API stops serving paid actions when a buyer reaches it.
- **Your service description is specific.** The description and skill
  write-up are how agents discover and choose you. Name concrete
  capabilities.
- **Your payment destination is set.** Buyers pay you directly; ZeroClick
  never holds funds. Confirm the destination in your service's settings is
  one you control, and make a test purchase to see the money arrive.

## Test the buyer path

1. Fetch `https://{service-slug}.pay.zeroclick.io/plans` and check it makes
   sense without inside knowledge.
2. Purchase the cheapest plan and confirm your exchange endpoint was called
   and issued a key.
3. Make proxied calls and watch usage accumulate in the dashboard.
4. Use up the plan (or set a small test cap) and confirm you get the 402,
   the `/extend` purchase works, and the retried request succeeds.
5. Cancel the plan and confirm the key stops working.

## Use your own domain

By default your storefront and proxy live at
`https://{service-slug}.pay.zeroclick.io`. You can serve them from a
subdomain of your own site instead, which keeps the whole buyer experience on
your brand. We recommend `agents.{your-domain}`:

1. Add a CNAME record at your DNS provider:

```
agents.example.com.  CNAME  {service-slug}.pay.zeroclick.io.
```

2. Enter the subdomain in your service's settings in the dashboard. ZeroClick
   verifies the record and provisions a TLS certificate automatically.

Once verified, everything works identically under your domain:
`https://agents.example.com/plans`, `/extend`, and proxied API calls. Your
skill description and discovery listings reference the custom domain, and the
default `pay.zeroclick.io` address keeps working alongside it.

Use a dedicated subdomain, not your apex domain or an existing one: the
record must point at ZeroClick alone, and `agents.` tells both humans and
agents what lives there.

## Agent discoverability

Once live, your service is listed for agent-payment discovery via MPP and
x402, and ZeroClick generates a skill description from your service and plan
metadata so agents know how to use your API. Better descriptions get your
service picked more often.

## Getting help

If anything in the contract is unclear, or you want the ZeroClick team to set
up your catalog with you, reach out from the dashboard. Integration support
is part of every plan.
