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

# Going Live

> What to check before you move your integration to production.

You build and test against the development environment. Before you go live, work through this list, then contact [support@ndovu.co](mailto:support@ndovu.co) to move to production.

## Before you go live

**1. Keep your credentials safe**

Your client secret is in a secrets manager, never in source control or
client-side code. Your servers call the Partner API; your customers' apps
never do.

**2. Handle token expiry**

You reuse an access token until it expires (`limits.tokenLifetimeSeconds`
in your [configuration](https://docs.ndovu.co/configuration.md)), and get a new one on
`401 INVALID_PARTNER_TOKEN`. You don't authenticate on every request.

**3. Match your identity policy**

Read your [configuration](https://docs.ndovu.co/configuration.md) and send exactly what your
`identityPolicy` asks for. With `REFERENCED`, nothing you send carries
personal data and you upload no documents.

**4. Use stable customer IDs**

Each `externalUserId` is your permanent ID for one customer. You never
reuse one for a different person.

**5. Retry safely**

You retry customer creation after timeouts and `5xx` errors, relying on
[idempotent create](https://docs.ndovu.co/onboarding-customers.md#retrying-safely), and back off on
`429`.

**6. Never invest twice by accident**

You generate an `Idempotency-Key` for each intended investment, save it
with your order before calling us, and resend the same key on timeouts and
`5xx` errors. You use a new key only for a new investment, or to retry
after a Payment `FAILED`. See [Retrying](https://docs.ndovu.co/investing.md#retrying).

**7. Show the payment reference**

For bank transfers, you show your customer the `bankDetails` and the
`reference`, and make clear the reference must be in the transfer's memo.

**8. Follow status without flooding**

You [check status](https://docs.ndovu.co/checking-status.md) at sensible intervals and stop once a
Payment or Transaction reaches a final status.

**9. Test the money flow**

In development, you can't move real money or simulate a payment. Invest
for a test customer, then ask [support@ndovu.co](mailto:support@ndovu.co)
with the payment `reference` to complete (or fail) it, and to invest it,
so you can see every status.

**10. Handle every error code**

You branch on `code`, not `message`, for every code in [Errors](https://docs.ndovu.co/errors.md),
and you show your users something sensible for each.

**11. Record your KYC**

You send the real date you completed KYC as `kycVerification.verifiedOn`,
and your own case ID as `kycVerification.reference`, so either side can
trace a customer back to your due diligence.

**12. Don't store document links**

You fetch the customer again for fresh document `url`s instead of storing
them; they expire after 5 minutes.

## Moving to production

Production has its own base URL and its own credentials, which we send you when you're ready. Nothing created in development carries over, so onboard production customers fresh.

After switching, call [your configuration](https://docs.ndovu.co/configuration.md) once to confirm `environment`, `status: ACTIVE` and your policies are what you expect.


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