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

# Go live

> Move your integration from the sandbox to production.

When your integration works in the [sandbox](/testing), move it to
production. Production moves real money. Change your integration with care.
Test each step.

## Change the addresses

Production has its own dashboard and its own API base URL. Change both.

| Surface   | Sandbox                            | Production                 |
| :-------- | :--------------------------------- | :------------------------- |
| Dashboard | `https://hermes.sandbox.jenzy.com` | `https://hermes.jenzy.com` |
| API       | `https://api.sandbox.jenzy.com/v1` | `https://api.jenzy.com/v1` |

In your code, change the API base URL from `api.sandbox.jenzy.com` to
`api.jenzy.com`. Keep the `/v1` path and every route the same.

## Go-live checklist

The sandbox and production are separate environments. They do not share keys,
balances, webhooks, or settings. You must set up each item again in
production.

<Steps>
  <Step title="Get a production API key">
    Sign in to the production dashboard at `https://hermes.jenzy.com`. Your
    production account is separate from your sandbox account, so Jenzy ops
    must activate it one time. Then open **Integration → API keys** and
    select **Create key**. Your sandbox key does not operate in production.
    Store the new key in your secrets manager. See
    [Authentication](/authentication).
  </Step>

  <Step title="Fund your balance with a real pay-in">
    Production has no Top up desk. To fund your balance, send MWK to your
    org's account number. The portal shows the number, under
    **Integration → Account number**. When the money arrives, Hermes credits your balance and sends
    a `collection.settled` webhook. See [Pay-ins](/pay-ins).
  </Step>

  <Step title="Register your webhooks again">
    Webhook endpoints are per environment. Register your production endpoint
    in the production dashboard. Then verify the signature with your
    production signing secret. See [Webhooks](/webhooks).
  </Step>

  <Step title="Set your IP allowlist again">
    The IP allowlist is per environment. If you use one, add your production
    server IPs in the production dashboard. See
    [Authentication](/authentication).
  </Step>
</Steps>

## Before your first live payout

Do a final check in production, with small amounts:

<Steps>
  <Step title="Check your key">
    Send `GET /ping` to `api.jenzy.com`. Confirm the response shows your org
    and `"status": "live"`.
  </Step>

  <Step title="Send one small payout">
    Create one small payout to a destination that you control. Confirm the
    result by webhook or by `GET /payouts/{id}`.
  </Step>
</Steps>

<Warning>
  In production, every payout moves real money. There is no test number, and
  there is no undo. Do your first live payouts with your Jenzy contact.
</Warning>
