> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.runledger.co/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.runledger.co/_mcp/server.

# Cut over to live

> **Note**
>
> Step 7, the last step of the [going-live runbook](/going-live/production-ready).

## Cut over

| When                             | What                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A week or two before             | Live keys and live configuration work before the review, and live takes payments after the going-live checklist passes and Runledger has reviewed your account. An Admin asks for the review once every other row is done. Run your setup scripts against live: credit types, outcome definitions and plans. If an agent wrote them, have it propose them with `propose_live_config` and approve the diff yourself. Make a test payment through each payment provider in the sandbox, which the checklist needs. Connecting a provider in live, which a person does at the provider and an Admin confirms in the dashboard, isn't open yet. Register the live webhook endpoint. Put restricted live keys (`rl_rk_live_...`) in your secret store. |
| Before the boundary              | Create live customers. Send card customers a `payment_method` checkout page.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| At the boundary                  | Create the subscriptions: a subscription starts when it is created, and a `start_at` in the future is refused. Switch production to the live key and turn enforcement on. Send events dated from the boundary to Runledger, and earlier ones to your old system. End the old subscriptions. Move opening prepaid balances once the old system has closed its books.                                                                                                                                                                                                                                                                                                                                                                               |
| Through the first period         | Watch the signals below, and read each draft invoice before it finalizes at `finalizes_at`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Once the first invoices are paid | Switch your old billing off. Keep its records for credits on charges from before the boundary.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

Until the first Runledger invoices finalize, you can roll back: cancel the Runledger subscriptions with `immediately: true`, [export](/api-reference/exports/create) what was recorded, and turn your old billing back on.

### Watch the first period

| Watch                                                                    | Why                                                                                                                                                                                                          |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `4xx` errors in the [request logs](/api-reference/request-logs/list)     | A request or key problem that a retry won't fix                                                                                                                                                              |
| `track()` warnings                                                       | Event names, references or plans that don't match                                                                                                                                                            |
| Checks that failed open                                                  | How often your agents ran without a check                                                                                                                                                                    |
| `hold.expired`                                                           | Work that may not have been tracked                                                                                                                                                                          |
| `reconciliation.breaks_found`                                            | Runledger and a provider disagree about a payment                                                                                                                                                            |
| The [top-up chargeback report](/api-reference/reports/topup-chargebacks) | The chargeback rate and credits at risk, per provider, against the threshold you set                                                                                                                         |
| Reversal and dispute rates                                               | Each outcome definition reports [its rates for the last 30 days](/concepts/outcome-settlement#for-your-finance-team). A jump can mean a change in your agent, or a rule that fires more often than you meant |

## Next steps

* [Webhooks](/api-reference/handle-webhooks) covers verifying and handling every event.
* [Access, actors and audit](/api-reference/access-and-audit) covers the keys and scopes your live servers use.
* [Idempotency and errors](/reference/idempotency-and-errors) lists every error code and which are safe to retry.
* [Backtest and run a shadow period](/going-live/backtest-and-shadow) comes before the cutover.