Unity SDK

The official InvoSDK plugin for Unity enables seamless integration with the Invo Network platform for in-game currency management, item purchases, player-to-player transfers, and cross-game currency sends.

Unity 6 (6000.0+) Compatible

The InvoSDK plugin is built for Unity 6 with full C# async/await support, pre-built UI components, and Editor tools for rapid integration.

Quick Integration - Get Started in 30 Minutes

The InvoSDK Unity plugin is available on GitHub and designed for rapid integration. Get your game connected to the Invo Network in as little as 30 minutes. View on GitHub

Easy Installation

Copy to Assets folder and configure via Setup Wizard

Pre-built UI

Production-ready UI components you can customize

Async/Await

Modern C# async patterns throughout

Editor Tools

Setup Wizard, Test Purchase, Balance tools

Core Features

Currency Purchases

Allow players to buy in-game currency with real money via secure Invo Payments integration.

Item Marketplace

Full catalog management with categories, rarities, discounts, and featured items.

Cross-Game Transfers

Enable players to transfer currency to other games in the Invo Network ecosystem.

SMS Verification

Secure player-to-player transfers with SMS PIN verification.

Installation

Requirements

  • Unity 6 (6000.0+)
  • .NET Standard 2.1
  • Newtonsoft.Json (com.unity.nuget.newtonsoft-json)
  • An Invo developer account

Step 1: Download the SDK

Clone the InvoSDK from GitHub:

git clone https://github.com/Invo-Technologies/Invo-unity-sdk.git

Step 2: Copy SDK Files

Copy the following into your Unity project's Assets folder:

YourProject/
└── Assets/
    ├── InvoSDK/           ← Copy this folder
    ├── APIManager.cs      ← Copy this file
    └── Resources/
        └── InvoSDKConfig.asset  ← Auto-created by Setup Wizard

Step 3: Install Dependencies

Open Window → Package Manager and install:

com.unity.nuget.newtonsoft-json

Step 4: Run Setup Wizard

The Setup Wizard opens automatically on first import. You can also access it via:

  1. 1.Open your project in Unity Editor
  2. 2.Go to InvoSDK → Setup Wizard in the menu
  3. 3.Enter your SDK Key, Game ID, and other settings
  4. 4.Click Save to create your configuration

Configuration

The SDK uses a ScriptableObject for configuration, stored at Assets/Resources/InvoSDKConfig.asset:

FieldTypeDescription
sdkKeystringYour Invo API secret key
gameIdstringYour unique game identifier
gameNamestringDisplay name for your game
playerEmailstringDefault player email (for testing)
playerPasswordstringSandbox login password
playerPhonestringPlayer phone for SMS verification
gameCurrencyNamestringName of your in-game currency
useProductionboolToggle between sandbox/production

Security Warning

Never ship sdkKey in client builds. Store server-side for production deployments.

Quick Start

Access the API manager anywhere in your code using the singleton pattern:

Get Player Balance

using InvoSDK;

// Get player's current balance
await APIManager.Instance.GetPlayerBalanceAsync(
    email: "player@email.com",
    onSuccess: (response) => {
        foreach (var balance in response.balances) {
            Debug.Log(
quot;{balance.currency_name}: {balance.total_balance}"); } }, onError: (error) => Debug.LogError(error) );

Purchase an Item

using InvoSDK;

await APIManager.Instance.PurchaseItemAsync(
    playerEmail: "player@email.com",
    playerName: "PlayerOne",
    itemId: "sword_001",
    itemName: "Legendary Sword",
    quantity: 1,
    unitPrice: 9.99f,
    totalPrice: 9.99f,
    onSuccess: (response) => {
        Debug.Log(
quot;Purchase successful! Transaction: {response.transaction_id}"); }, onError: (error) => Debug.LogError(error) );

Fetch Game Items Catalog

using InvoSDK;

await APIManager.Instance.GetGameItemsAsync(
    onSuccess: (response) => {
        foreach (var item in response.items) {
            Debug.Log(
quot;{item.item_name}: ${item.price_usd}"); } }, onError: (error) => Debug.LogError(error) );

API Reference

MethodEndpointDescription
GetPlayerBalanceAsync/player-balances/player/by-email/{email}Get player balance
GetGameItemsAsync/v1/game-items/listFetch game item catalog
PurchaseItemAsync/item-purchases/purchase-itemPurchase an item
GetAvailableDestinationsAsync/currency-sends/available-destinationsList transfer destinations
InitiateSendAsync/currency-sends/initiate-sendStart currency send
VerifySmsAsync/currency-sends/verify-smsVerify SMS for sends
ClaimCurrencyAsync/currency-sends/claim-currencyClaim received currency

API Environments

Sandbox (Development)

Use for development and testing. No real money.

Production (Live)

Live games only. Real money transactions.

Pre-built UI Components

The SDK includes production-ready UI components in Assets/InvoSDK/Scripts/UI/:

Item Purchase Panel

Grid display with item cards and purchase confirmation

Featured Items

Daily and weekly featured item showcases

Transfer Wizard

4-step currency transfer flow with SMS verification

Send Currency Panel

Player-to-player send interface

Window Manager

Panel-based navigation system

Verification Input

SMS code input component

Editor Tools

Access these tools from the Unity menu under InvoSDK:

Setup Wizard

Configure all SDK settings, quick links to documentation and console.

InvoSDK → Setup Wizard

Item Catalog

Manage items, prices, discounts, and categories.

InvoSDK → Item Catalog

Test Purchase

Test currency purchases with pre-configured payment methods.

InvoSDK → Test Purchase

Player Balance

Check player balances during development.

InvoSDK → Player Balance

Troubleshooting

IssueSolution
"Config not found!"Ensure InvoSDKConfig.asset exists in Assets/Resources. Run Setup Wizard.
"Player email not set"Set playerEmail in config or pass email directly to API methods.
JSON parse errorsVerify Newtonsoft.Json package is installed and included in build.
401/403 errorsCheck SDK key is correct. Verify using correct environment.
Balance not updatingCheck balancePollInterval setting. Verify network connectivity.