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

Base URL:
https://invo.network
API Routes: /api/* and /auth/*
Payments: Real-money transactions.

Sandbox Environment (Testing)

Base URL:
https://sandbox.invo.network
API Routes: /sandbox/api/*
Payments: Test cards only — no real money moves.
Sandbox API call
// 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

Create your own test players
Register test accounts in the sandbox console
Use sandbox console to manage test balances
Example Test Data
Email: your-test@example.com
Create players via API or console

Test Card Numbers

Success
4242 4242 4242 4242
Always succeeds.
Generic decline
4000 0000 0000 0002
Always declines.
Insufficient funds
4000 0000 0000 9995
Card-issuer-side decline for insufficient funds.
3D Secure required
4000 0025 0000 3155
Triggers strong customer authentication challenge.
Bank account linking (sandbox)
Test bank-link credentials are surfaced in the developer console under Sandbox > Test Data.

SMS Testing

Test SMS verification flows without sending real SMS messages:

SMS Testing Configuration
// 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 testing

Testing 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 Switcher
// 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 } });