Quick Start

Get a working integration with INVO Network in about 30 minutes. Follow these four steps.

๐Ÿงช Build against Sandbox first

Always start in Sandbox at dev.console.invo.network. Sandbox uses test payment cards โ€” no real money moves. Once your integration is solid, switch to console.invo.network for production.

1

Register Your Game

Create a developer account and register a sandbox game.

2

Copy Your SDK Key

Format ivsdk_<random>. Used as X-Game-Secret-Key on every API call.

3

Make Your First Call

A read against player balance to confirm your key works.

4

Go Live

Re-register on production and swap your key + base URL.

Step 1: Register Your Game

Choose your environment and complete the game registration wizard:

๐Ÿงช Sandbox

dev.console.invo.network

Test cards, no real money.

๐Ÿš€ Production

console.invo.network

Live games, real-money transactions.

The wizard collects:

  1. 1.Game Information: game icon, cover image, name, platforms.
  2. 2.SDK Key: auto-generated. Format ivsdk_<random>. Server-side use only.
  3. 3.Currency setup: branded currency name, symbol, transfer policy (allowed destinations).
  4. 4.Payout setup (optional): link a bank account so you can withdraw your developer revenue later.

Step 2: Make Your First API Call

Authentication is a single header: X-Game-Secret-Key. No login flow, no token refresh, no cookies. Send the header from your game backend (server-side only).

Read a player balance (Sandbox)

// Sandbox base URL: https://sandbox.invo.network/sandbox
const SDK_KEY = process.env.INVO_SDK_KEY; // ivsdk_<random>

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 } }
);

if (r.status === 404) {
  // Player has never interacted with your game yet โ€” that's fine.
  // The player auto-creates the first time they hit a writing endpoint
  // (purchase-currency, purchase-item, claim-transfer, etc.).
  console.log('No player record yet.');
} else {
  console.log(await r.json());
}

Sandbox vs Production base URLs

// Sandbox โ€” test cards, no real money
const SANDBOX_BASE = 'https://sandbox.invo.network/sandbox';

// Production โ€” live transactions
const PROD_BASE = 'https://invo.network';

// All endpoints share the same path suffix:
//   <BASE>/api/player-balances/player/by-email/<email>
//   <BASE>/api/item-purchases/purchase-item
//   <BASE>/api/transfers/initiate-transfer
//   etc.

Expected response (existing player)

{
  "player": {
    "player_id": 12345,
    "player_name": "Test Player",
    "player_email": "test@example.com",
    "identity_id": "f3a1b8c0d4e5..."
  },
  "balances": [
    {
      "currency_id": 1,
      "currency_name": "Gold Coins",
      "available_balance": "1000.00",
      "reserved_balance": "0.00",
      "total_balance": "1000.00"
    }
  ],
  "summary": {
    "total_value": "1000.00",
    "currency_count": 1,
    "has_funds": true
  },
  "last_updated": "2024-12-09T12:34:56Z"
}

Step 3: Explore Core Features

Once that first call works, build out from here:

๐Ÿ’ฐ Currency Purchases

Players buy your branded currency with real money via hosted checkout.

View Currency Purchase API โ†’

๐Ÿ›’ Item Purchases

Players spend their balance on items inside your game. 90% goes to you, 10% Invo network fee.

View Item Purchase API โ†’

๐Ÿ”„ Cross-Game Transfers

A player moves their own balance from one game to another in the network.

View Transfer API โ†’

๐ŸŽ Player-to-Player Sends

A player sends currency to another player by phone โ€” same game or cross-game.

View Send API โ†’

Integration Best Practices

  • โ€ขServer-side only. Never embed your SDK key in a Unity/Unreal/mobile build or browser code.
  • โ€ขIdempotency. All write endpoints accept a client_request_id. Pass a fresh UUID per logical action and replay the same id on retry โ€” duplicates return 409 with the original record.
  • โ€ขTest on Sandbox first. Sandbox is a fully isolated database with test-card-only payments.
  • โ€ขHTTPS only. Plain-HTTP requests are rejected at the edge.
  • โ€ขStore the identity_id returned on player records โ€” it's the stable cross-game join key for the same human across the network.
  • โ€ขHandle 5xx with retry. Idempotency-keyed requests are safe to retry on a 5xx; the first successful result is replayed.

Next Steps

Read the Sandbox Testing Guide for the full sandbox-vs-production map.
Browse the API Overview for every endpoint with request/response schemas.
Set up your Virtual Currency branding and transfer policy.
Follow the Game Developer Integration Guide for end-to-end checkout integration.