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

# Going live

> What Stableyard enables for you, how staging differs from production, and the checklist before launch.

Production runs the same routes, bodies and states as staging. Three things change: what Stableyard has enabled for you, what you re-create, and which legs a real bank now runs.

| | Staging | Production |
| - | - | - |
| Base URL | `https://staging-api-v2.stableyard.fi` | `https://prod-api.stableyard.fi` |
| Networks | Test networks. Chain ids differ | Main networks |
| Fiat rails | Provider sandboxes, where one exists | Banking partners, with real money |
| On-ramp account issuance | Certified | Not yet proven |
| Payouts to a linked US bank | Certified | Not yet proven |
| Simulators or faucets | None | None |

## What Stableyard must enable

None of these is self-serve, in staging or in production. Each one has a check you can run yourself.

| What | Without it | Confirm it with |
| - | - | - |
| Your organization's KYB | No fiat for you or any account | `compliance.partnerKyb.status` is `approved` in `GET /v2/partners/config` |
| Identity & KYC | KYC sessions are refused | The `identity_kyc` entry in `modules` reports `available: true` |
| The on-ramp, with a US banking program | No on-ramp account can be issued | `GET /v2/accounts/{accountId}/onramp-bank-account-requirements` reports `available: true` |
| A linked-bank route for each country | No bank can be linked there | `GET /v2/accounts/{accountId}/bank-account-requirements` reports `available: true` |
| Each capability on your banking program | Activation is refused | A test `POST /v2/accounts/{accountId}/capability-activations` |
| Business verification | Business accounts cannot reach bank rails | A test activation with `business.legalName` |
| Partner-asserted email | You cannot skip Stableyard's email code | `capabilities.accounts.emailVerification.partnerAssertionAllowed` |
| External Bank Transfer | No one-time bank transfers to the Philippines or Vietnam | `capabilities.payments.methods.externalBank.available` |
| Client API | No client sessions for your frontend | `integrations.clientApi.enabled` |

Your partner fee is one rate on your organization, `partnerFeeBps`, set by Stableyard and returned under `fees`. There is no per-payment fee field. See [Assessing fees](/payments/assessing-fees).

## Nothing carries over

| Re-create in production | Why |
| - | - |
| Credentials | An app ID and secret belong to one environment |
| Accounts | A staging account does not exist in production. Keep your `externalUserId` mapping per environment |
| Verification | Each production account verifies its email, identity and capabilities again |
| On-ramp accounts and linked banks | They belong to accounts, so they are issued and linked again |
| Webhook endpoints and signing secrets | Registered per environment |
| Idempotency keys | Scoped to one app environment |

## What production adds

* **Real review.** Identity and capability decisions can sit in `requires_review` or `provider_review` while a person looks. Your screens need a waiting state.
* **Real banks.** A transfer into an on-ramp account arrives on the sender's bank's schedule, and a payout lands on the banking partner's.
* **Real first runs.** Some corridors cannot be rehearsed end to end outside production, so your first production transfer is also the first real test of that corridor.

<Warning>
  On-ramp account issuance and payouts to a linked US bank are certified on staging and not yet proven in production. Confirm with Stableyard that your production program is live before you point customers at either.
</Warning>

## The checklist

<Steps>
  <Step title="Read your configuration in production">
    `GET /v2/partners/config` with the production credential. Check KYB, products, email policy and fees again; nothing is inherited from staging.
  </Step>

  <Step title="Register production webhooks">
    Subscribe to `account.updated`, `kyc.updated`, `compliance.*`, `bank_funding.*` and `payment.*`. Verify every signature, and treat each event as a prompt to read the resource. See [Webhooks](/webhooks).
  </Step>

  <Step title="Create production accounts">
    Your first production call for each customer is a create, with a new `Idempotency-Key`.
  </Step>

  <Step title="Build the waiting and human states">
    `requires_review`, `provider_review`, `requires_intervention` and `contact_support` all mean a person acts. Decide who on your side tells the customer, and who contacts Stableyard.
  </Step>

  <Step title="Keep secrets out of logs">
    Never log or store hosted `nextAction.url` links, deposit instructions or full bank numbers. Mask them in your support tools.
  </Step>

  <Step title="Run one supervised transfer each way">
    One small bank transfer into an on-ramp account and one small payout to a linked bank you control, both reconciled from the resources, not from the responses you got at creation.
  </Step>
</Steps>

<Card title="Next: Webhooks" icon="bell" href="/webhooks">
  Events, delivery guarantees and signature verification.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.