# Go-live checklist

This checklist is used to confirm your Nexus integration is production-ready before launch.

<PersistentChecklist />

## Environment & keys

* [ ] Sandbox integration is fully tested end-to-end
* [ ] Production API keys have been created
* [ ] Keys are stored securely as environment variables (not in source control)
* [ ] Client only uses public key
* [ ] Server only uses private key
* [ ] Base URL updated to `https://api.nexus.gg/v1` for production

## Creator code validation

* [ ] Valid codes display correctly in the client
* [ ] Invalid codes display correctly in the client
* [ ] A validated code is cached/stored for later use at checkout
* [ ] Code is re-validated if the user edits it before purchase

## Tracking a creator purchase (attribution)

* [ ] Attribution POST is sent from backend after a confirmed purchase
* [ ] `transactionId` is unique and stable (receipt/order id)
* [ ] `subtotal` sent in correct units for that currency
* [ ] `currency` matches the actual sale currency
* [ ] A test attribution succeeds with `200 OK` in sandbox
* [ ] `playerId` sent on every attribution, pseudonymized if your own id is PII

## Metrics (recommended)

* [ ] `skuId` provided when applicable
* [ ] `joinDate` sent when available
* [ ] `conversion.lastPurchaseDate` sent when available
* [ ] `conversion.totalSpendToDate` object sent when available

Metrics are optional for the API but required for full analytics and reporting.

## Multi-currency & UI behavior

* [ ] At least one non-USD zero-decimal currency has been tested (JPY / KRW / etc)
* [ ] `subtotal` formatting verified for each tested currency
* [ ] UI handles "no code" and "invalid code" states correctly
* [ ] UI preserves a validated code through the checkout flow

## Production readiness

* [ ] Environment switched from sandbox to production
* [ ] A real or "live test" transaction was attributed successfully
* [ ] Attribution appears in the Nexus Dashboard
* [ ] Logs exist for validation failures and attribution failures
* [ ] Team knows how to rotate keys if needed

<LinkCard title="Track a purchase" description="Send the attribution POST after a confirmed purchase." href="/start-integrating/track-a-purchase/" />
