Sandbox Testing
The Invo Sandbox environment provides a safe testing space to integrate and validate your game's currency operations without affecting real player data or processing actual payments. Perfect for development, testing, and QA workflows.
Safe Testing Environment
Test all API operations without risk to production data or real financial transactions.
Isolated Data
Completely separate sandbox data that won't interfere with your production environment.
Realistic Simulation
Full API functionality with simulated payments, SMS verification, and transfer operations.
Instant Setup
Get started immediately with pre-configured test data and sample API keys.
Full Feature Parity
All production features available in sandbox for comprehensive testing coverage.
Test Scenarios
Built-in error scenarios and edge cases to validate your error handling logic.
Sandbox Environment
The INVO Network sandbox environment uses a separate base URL and requires the /sandbox prefix for all API routes. Test with fake payments, SMS, and crypto without real money.
Production Environment
https://invo.network/api/* and /auth/*Sandbox Environment (Testing)
https://sandbox.invo.network/sandbox/api/*// Sandbox API call — same single-header auth as production
const SDK_KEY = process.env.INVO_SDK_KEY; // ivsdk_<sandbox_key>
const r = await fetch(
'https://sandbox.invo.network/sandbox/api/player-balances/player/by-email/test@example.com',
{ headers: { 'X-Game-Secret-Key': SDK_KEY } }
);
console.log(await r.json());Sandbox vs Production: what changes
- • Path prefix. Sandbox is
/sandbox/api/...; production is/api/.... - • SDK key. Different key per environment — sandbox keys do not work against production and vice versa.
- • Database. Fully isolated; sandbox players, balances, and transactions live in their own database.
- • Card processing. Sandbox accepts test cards only — no real money moves regardless of amount.
- • SMS verification. Sandbox sends through a test channel; verification codes are surfaced in the response and the developer console for QA convenience.
Test Data & Scenarios
The sandbox comes pre-loaded with test data to help you get started quickly:
Test Players
Test Card Numbers
SMS Testing
Test SMS verification flows without sending real SMS messages:
// SMS verification in sandbox uses test mode
// Use any phone number format for testing - no real SMS is sent
// Example: Initiate transfer with test phone number
{
"from_player_email": "player@example.com",
"to_player_email": "player@example.com",
"from_game_secret": "your_game_secret",
"to_game_secret": "target_game_secret",
"amount": "50.00",
"phone_number": "+1234567890" // Any valid format works in sandbox
}
// Verification codes in sandbox are displayed in the API response
// or available in the sandbox console for testingTesting Checklist
Use this checklist to ensure comprehensive testing of your integration:
Basic Operations
Error Scenarios
Ready for Production?
Once you've thoroughly tested your integration in sandbox, switch to production:
- • Update base URL:
https://invo.network - • Remove /sandbox prefix: Use
/api/*instead of/sandbox/api/* - • Use production credentials: Get your production game_secret from console.invo.network
- • Environment detection: Implement logic to switch between environments
- • Test with real cards. Real money will be charged in production.
// Environment configuration
const INVO = {
production: {
baseURL: 'https://invo.network',
apiRoute: '/api'
},
sandbox: {
baseURL: 'https://sandbox.invo.network',
apiRoute: '/sandbox/api'
}
};
const env = process.env.NODE_ENV === 'production' ? 'production' : 'sandbox';
const cfg = INVO[env];
const SDK_KEY = process.env.INVO_SDK_KEY; // matching key for the env
// Read a player's balance
const url = `${cfg.baseURL}${cfg.apiRoute}/player-balances/player/by-email/${encodeURIComponent('test@example.com')}`;
const r = await fetch(url, { headers: { 'X-Game-Secret-Key': SDK_KEY } });