Nexora VisionPlay API

Nexora Play API v4

A short path from token to first game launch.

This is the operator guide for the SlotCity-compatible Nexora Play API. Every request is JSON over HTTPS. Base URL:

https://agentapi.fortunegate.net

Authentication

Send these headers on every call. The token is issued with your agent account.

HeaderValue
AuthorizationBearer {API TOKEN}
Acceptapplication/json
Content-Typeapplication/json

All timestamps are UTC, with a trailing Z on responses. Convert to the player's timezone in your client. Concurrent calls per agent are capped at 50; over that you receive SERVER_IS_BUSY (1018).

cURL

curl -X POST https://agentapi.fortunegate.net/v4/user/create \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"player_01"}'

JavaScript

const res = await fetch("https://agentapi.fortunegate.net/v4/game/game-url", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_TOKEN",
    Accept: "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    user_code: 400000001,
    provider_id: 1,
    game_symbol: "vswaysdogs",
    lang: 1,
    return_url: "https://your-lobby.example",
    win_ratio: 0,
  }),
});

const json = await res.json();
// json.code === 0, json.data.game_url is a one-time launch URL
window.location.href = json.data.game_url;

Launch flow

01

Authenticate

Every call is POST JSON with Authorization: Bearer {token}. Tokens are issued in the agent admin console.

02

Create or resume a player

Call /v4/user/create on login. Keep the user_code for wallet, launch, and transaction calls.

03

Fund the session

Transfer mode: deposit from agent points. Seamless mode: keep the real balance in your wallet and answer bet/win callbacks.

04

List and launch

providers → games → game-url. Open the returned URL in an iframe or a new window. It expires in 10 minutes and is single-use.

05

Reconcile

Pull transactions by time or by id. Even a losing round emits Win(2) with amount 0. Failed seamless bets emit BetCancel(16).

Transfer vs seamless

Transfer

The player balance lives in Nexora Play. You move value with deposit, withdraw, and withdraw-all. Agent points go down when you credit a player and up when you pull funds back. Fastest path to a working lobby.

Seamless

The real balance stays in your wallet. We call your callback URL on bet, win, and cancel. If a bet callback fails, a BetCancel(16) is written and the stake is returned. Do not reuse user codes when you switch modes — create a fresh user on login.

Catalog, language, RTP

Providers and games are assigned per agent. Empty lists mean the parent agent has not assigned inventory yet. Language is an integer 1–14, not an ISO string.

1 · en · English2 · th · Thai3 · es · Spanish4 · ja · Japanese5 · pt · Portuguese6 · tr · Turkish7 · de · German8 · id · Indonesian9 · ms · Malaysian10 · zh · Chinese11 · mn · Mongolian12 · no · Norwegian13 · vi · Vietnamese14 · fr · French

Agent RTP is 75–95. Launch-time win_ratio of 0 uses the agent value. A per-user override must be equal or lower. Provider status 1 is normal, 2 is maintenance.

Endpoint reference

All methods are POST.

Returns the agent name, currency, point balance, and current win ratio (RTP).

Empty body.

Game transactions

Every bet and win is a transaction. A losing round still writes Win(2) with amount 0. History older than two days may be dropped around maintenance windows.

ValueTypeMeaning
1BetStake taken from the player
16BetCancelBet reversed after a callback or processing error
2WinPayout, including a 0 win when the round loses
32BonusCallWin generated by a bonus call, not a standard Win(2)
4DepositTransfer-mode credit to the player
8WithdrawTransfer-mode debit from the player

Bonus call

Bonus call is an operator gift on an in-progress (non-live) game where call_enable is true. The call amount leaves agent points, lands as player winnings, and returns through the RTP system so house edge is preserved. Wins are BonusCall(32), not Win(2). Status: 0 init, 1 running, 2 complete, 3 cancel.

Response codes

Every payload includes code and message. Treat 0 as success.

NameValueMeaning
OK0Success
UNDER_MAINTENANCE1Game or provider is in maintenance
INTERNAL_SERVER_ERROR1001Unexpected server error
VALIDATION_ERROR1002Request body is the wrong shape
SERVICE_EXCEPTION1003Service-level exception
TOKEN_NOT_FOUND1007Authorization header missing
TOKEN_INVALID1009Bearer token is not valid
PERMISSION_ERROR1010The agent cannot access this user or feature
PROVIDER_ERROR1011Upstream studio error
PARAMETERS_INVALID1012A parameter is out of range or missing
CALLBACK_ERROR1015Your seamless callback failed — check your callback logs
SERVER_IS_BUSY1018More than 50 concurrent calls from the same agent
IP_NOT_ALLOWED1020Caller IP is not on the allow list
AGENT_NOT_FOUND2001Agent does not exist
USER_NOT_FOUND2002User code is unknown
GAME_NOT_FOUND2003Game is not assigned to this agent
POINT_NOT_ENOUGH2005Agent point balance is too low
BALANCE_NOT_ENOUGH2006Player balance is too low
PROVIDER_NOT_FOUND2007Provider is not assigned to this agent
BONUSCALL_DOUBLE2011A bonus call is already running
BONUSCALL_ALEADY_ENDED2012Bonus call already finished
ROUND_NOT_FOUND2013Round id is unknown
CURRENCY_NOT_SUPPORTED2014Currency is not enabled for this agent