# Casino Partner Integration Checklist ## Sandbox - Receive operator id, API secret, callback URL allowlist, and sandbox launch credentials. - Review `docs/casino-demo-package.md` for the current staging URL, iframe launch examples, docs package links, wallet callback contract, and sandbox test evidence list. - Review `docs/sandbox-pilot-offer.md` for the sandbox-only disclaimer, currency profile scope, Cloudflare/domain stage, acceptance criteria, and hard gates before real-money production. - Complete `docs/sandbox-integration-guide.md` against the local provider sandbox. - Run `docs/postman_collection.json` from top to bottom using only the published docs. - Save evidence for one settled round, one identical idempotent retry, one idempotency conflict, and one rolled-back failed round. - Implement signed callback endpoints for validate session, balance, debit, credit, and rollback. - Confirm idempotency keys return the original response on repeat requests. - Confirm insufficient balance returns a stable error without changing balance. ## Game Launch - Generate signed launch URL or launch token. - Include operator id, game type, player session reference, issued timestamp, and signature. - Open the game client in an iframe or new tab. - When the player changes casino currency, create a new launch token for the matching operator-currency profile and send `ROUGE_REELS_SWITCH_CURRENCY` to the iframe. - Confirm the iframe replies with `ROUGE_REELS_SWITCH_CURRENCY_RESULT` and shows the new casino-provided balance, currency, limits, and stake step. ## Wallet - Treat casino wallet as the only source of truth. - Choose one active currency for each operator profile, such as `USD` or `uBTC`. - Send all provider-facing balances and money movements in the configured operator/session currency. - Create separate operator-currency profiles when the casino wants multiple playable currencies. - Keep FX conversion inside the casino platform before calling Rouge Reels. - Never let the game client directly modify balance. - Use backend-to-backend wallet calls only. - Confirm the game client displays the casino-provided balance after session validation and after bet settlement. - Confirm debits happen before result generation and credits happen only after a winning result. - Confirm rollback refunds a successful debit when settlement fails. - Reconcile provider records against casino records. ## Audit Evidence - Capture the `roundId` for a settled round and confirm `/api/bets/{roundId}` returns fairness proof, casino transaction references, and callback audit. - Capture the `roundId` for a rolled-back round and confirm the dispute packet includes the debit and rollback callback audit. - Confirm `/api/reconciliation` contains the matching debit, credit, and rollback rows. - Confirm the operator dashboard shows the same round trail support would use for a casino dispute. ## Go-Live - Verify enabled games, currency-specific min/max bets, max payout, stake step, and wallet callback behavior. - Confirm production uses Postgres/Supabase storage, real operator secrets, and HTTPS callback URLs. - Confirm `GET /health` returns `status: "ok"` with `currency: "multi"` and the expected `supportedCurrencies`. - Review fairness docs and seed reveal process. - Run duplicate request, timeout, rollback, and failed credit tests. - Confirm support teams can search a round id and see the full dispute trail. - Complete legal, certification, and jurisdiction review where required.