Skip to content

Pixmove Partner API

Изменения

ДатаВерсияОписание
01.12.221.0Создание документации
25.10.241.1Добавлен параметр gameId в запросы. Удален метод rollback
28.05.251.2Добавлен метод для запуска тестирования интеграции
11.07.251.3Добавлены методы для работы с фриспинами
15.10.251.4Замена всех integer на bigint
10.12.251.5Добавлен параметр freebet в ответ списка игр. Добавлен параметр finished в запросы bet/win/refund

1. Введение

В данном документе описывается процесс взаимодействия процессинга pixmove-games, с процессингом партнера. Представлено описание методов необходимых для реализации на стороне клиента.

Транспортный протокол - HTTPS.
Методы - GET/POST.
Формат данных - JSON.
В заголовках запроса Content-Type установить - application/json.

После подписания договора Вам сообщается:

  • url - сервера pixmove-games (далее <server-pixmove-games>)
  • partnerId - уникальный идентификатор партнера
  • apiKey - секретный ключ для формирования hash

Клиент должен предоставить url (далее <server-partner>) по которому можно будет выполнять необходимые запросы (описание методов см. ниже), а также список IP адресов своих серверов для добавления их в белый список.

2. Формирование подписи запроса

Подпись формируется следующим образом

requestType + param1 + param2 + … + paramN + apiKey

requestType - тип запроса (bet, win, balance и т.д.) param1 - первый параметр передаваемый в запрос ... paramN - N параметр передаваемый в запрос apiKey - секретный ключ партнера

Для шифрования используется алгоритм hmac-sha256, вместе с apiKey в качестве key для шифрования.

Пример
apiKey: test_key
requestType: bet

Параметры:
amount: '10.00',
currency: 'USD',
partnerId: 1,
playerId: '432',
roundId: 7562,
sessionId: '123',
transactionId: 33,

Формируется следующая строка для шифрования:
bet10.00USD1432756212333test_key

Совершаем шифрование с ключом, получаем hash.
47226afaf96b699b71d1942ede85a6867b668f21f4bb8928db3b52a7410f29aa

INFO

Сайт для проверки подписи

TIP

Пример реализации NodeJS

js
const crypto = require('crypto');

const apiKey = 'test_key';
const result = 'bet10.00USD1432756212333test_key';
const cryptoHash = crypto.createHmac('sha256', apiKey);  

const hash = cryptoHash.update(result).digest('hex');  
console.log(hash);

3. Формат возврата данных

При возврате данных с сервера провайдера и с сервера клиента используется следующая структура данных.

В случае успешного запроса возвращается структура:

js
{   
    status: 'success'  
    data: {  
        field1: value1,  
        field2: value2,  
        ...
        fieldN: valueN,  
    }   
}

В случае ошибки запроса возвращается структура:

js
{   
    status: 'error',  
    error: {  
        message: 'ValueNotFound',  
        details: {  
            field1: value1,  
            field2: value2,  
            ...
        fieldN: valueN,  
        }  
    }   
}

TIP

message - сообщение об ошибке, для каждого метода будет предоставлен возможный перечень ошибок.

details - данные позволяющие детализировать ошибку.

4 Описание методов

4.1 Получение списка игр

Url: https://<server-pixmove-games>/game/list
Тип запроса: GET

Метод позволяет получить актуальный список игр. Запрос выполняет клиент.

Параметры запроса:

НазваниеТипОписание
partnerIdbigintУникальный идентификатор партнера
class*stringКласс игры (instant, slot, table, fast)
hashstringsha256 от строки (“game_list” + partnerId + class + apiKey)
icons**booleanФлаг, указывающий на необходимость возврата всех размеров иконок игр (по умолчанию - 'false')

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash (“game_list” + partnerId + apiKey)

** - Необязательные поля: они никогда не используются в расчете hash

Параметры ответа:

НазваниеТипОписание
gamesarrayМассив с играми
Параметры игры в массиве
idbigintУникальный идентификатор игры
titlestringНазвание игры
classstringКласс игры (instant, slot, table)
iconstringURL для иконки игры
iconsarrayМассив с иконками игры
freebetbooleanФлаг, показывающий доступны ли фриспины в игре

Пример запроса:

js
{  
    partnerId: 1,  
    hash: 'f01729f278481b7934b9c859fdbf030195e924e2e17d99b925ec2bff4655dfc2'  
}

hash формируется из строки "game_list1test_key"

Пример ответа:

js
{   
    status: 'success'  
    data: {  
        games: [{   
            id: 1,   
            title: 'Pirate dice',   
            class: 'instant,   
            icon: '.../icon/1.png',   
            icons: {
                '128x128': '.../icon/1.png',
                '256x256': '.../icon/2.png'
            },
            freebet: true
        }]  
    }   
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
PartnerNotFoundПартнер с таким partnerId не найден
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

4.2 Получение демо игры

Url: https://<server-pixmove-games>/game/demo
Тип запроса: GET

Метод позволяет получать ссылку для открытия игры в iFrame. Запрос выполняет клиент.

Параметры запроса:

НазваниеТипОписание
partnerIdbigintУникальный идентификатор партнера
gameIdbigintУникальный идентификатор игры
language*stringЯзык локализации игры (en, ru и т.д.)
returnUrl*stringСссылка для возврата из игры обратно на сайт клиента
hashstringsha256 от строки (“demo”+ partnerId + gameId + language + returnUrl + apiKey)

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash (“demo” + partnerId + gameId + apiKey)

Параметры ответа:

НащваниеТипОписание
gameUrlstringСсылка для открытия игры в iFrame

Пример запроса:

js
{
    partnerId: 1,  
    gameId: 1,  
    hash: '504b47948ff3efe5247b9e369502e9e20b19752eaf3c6eb7f7354e75b09c61ac'  
}

hash формируется из строки "demo11test_key".

Пример ответа:

js
{ 
    status: 'success'  
    data: {  
        gameUrl: '\<server-pixmove-games\>/pirate\_dice/?token=rzcvPWua8zjMw2'  
    }  
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
PartnerNotFoundПартнер с таким partnerId не найден
GameNotFoundИгра с таким gameId не найдена
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

4.3 Получение игры

Url: https://<server-pixmove-games>/game/init
Тип запроса: GET

Метод позволяет получать ссылку для открытия игры в iFrame. Запрос выполняет клиент

Параметры запроса:

НазваниеТипОписание
currencystringВалюта, в которой будет осуществляться игра (USD, EUR и т.д.)
partnerIdbigintУникальный идентификатор партнера
gameIdbigintУникальный идентификатор игры
playerIdstringУникальный идентификатор игрока в системе клиента
sessionId*stringУникальный идентификатор игровой сессии в системе клиента, в дальнейшем будет передаваться во все запросы, необязательное поле, можно не передавать
language*stringЯзык локализации игры (en, ru, и тд)
returnUrl*stringСсылка для возврата из игры обратно на сайт клиента
hashstringsha256 от строки ("game" + currency + partnerId + gameId + playerId + sessionId + language + returnUrl + apiKey)

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash ("game" + currency + partnerId + gameId + playerId + apiKey)

Параметры ответа:

НазваниеТипОписание
gameUrlstringСсылка для открытия игры в iFrame

Пример запроса:

js
{  
    currency: 'USD',  
    partnerId: 1,  
    gameId: 1,  
    playerId: '132',  
    sessionId: '123',  
    hash: '5ac72c7cec4949fc3d268dee6bff0394c3378a3a0ed21727d5523d272638a430'  
}

hash_string = 'gameUSD11132123test_key'

Пример ответа:

js
{  
    status: 'success'  
    data: {  
        gameUrl: '\<server-pixmove-games\>/pirate\_dice/?token=rzcvPWua8zjMw2'  
    }    
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
CurrencyNotFoundВалюта с таким кодом не найдена
PartnerNotFoundПартнер с таким partnerId не найден
GameNotFoundИгра с таким gameId не найдена
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

4.4 Получение баланса игрока

Url: https://<server-partner>/balance
Тип запроса: GET

Метод позволяет получить актуальный баланс игрока. Запрос выполняет провайдер.

Параметры запроса:

НазваниеТипОписание
currencystringВалюта, в которой осуществляется игра (USD, EUR и т.д.)
partnerIdbigintУникальный идентификатор партнера
playerIdstringУникальный идентификатор игрока в системе клиента
sessionId*stringУникальный идентификатор игровой сессии в системе клиента
hashstringsha256 от строки (“balance” + currency + partnerId + playerId + sessionId + apiKey)

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash (“balance” + currency + partnerId + playerId + apiKey)

Параметры ответа:

НазваниеТипОписание
balancestringАктуальный баланс игрока

Пример запроса:

js
{  
    currency: 'USD',  
    partnerId: 1,  
    playerId: '432',  
    sessionId: '123',  
    hash: 'bafb050a6f04d30d6b684f024a5e38c97f8de84b7c957bbd357e6da867cf2f3c'  
}

Пример ответа:

js
{  
    status: 'success'  
    data: {  
        balance: '10103.63'  
    }  
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
CurrencyNotFoundВалюта с таким кодом не найдена
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

4.5 Совершение ставки игроком

Url: https://<server-partner>/bet
Тип запроса: POST

Метод позволяет совершить ставку игроку. Запрос выполняет провайдер.

Параметры запроса:

НазваниеТипОписание
amountstringСумма транзакции
currencystringВалюта, в которой будет осуществляться игра (USD, EUR и т.д.)
partnerIdbigintУникальный идентификатор партнера
playerIdstringУникальный идентификатор игрока в системе клиента
gameIdbigintУникальный идентификатор игры
roundIdbigintУникальный идентификатор раунда ставки
transactionIdbigintУникальный идентификатор транзакции ставки провайдера
sessionId*stringУникальный идентификатор игровой сессии в системе клиента
finished**booleanФлаг, показывающий завершен ли раунд
hashstringsha256 от строки ("bet" + amount + currency + partnerId + playerId + gameId + roundId + transactionId + sessionId + apiKey)

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash ("bet" + amount + currency + partnerId + playerId + gameId + roundId + transactionId + apiKey)

** - Необязательные поля: они никогда не используются в расчете hash

Параметры ответа:

НазваниеТипОписание
balancestringАктуальный баланс игрока
transactionIdstringУникальный идентификатор транзакции ставки в системе клиента.

Пример запроса:

js
{  
    amount: '10.00',  
    currency: 'USD',  
    partnerId: 1,  
    playerId: '432',  
    gameId: 3,  
    roundId: 7665,  
    transactionId: 35,  
    sessionId: '123',  
    finished: false,  
    hash: '433e73d9de350fdae70a85634de4eedb2923868ea09f8e35423b25ec2b0a3762'  
}

Пример ответа:

js
{  
    status: 'success'  
    data: {  
        balance: '10113.63',   
        transactionId: '1333882828'  
    }  
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
PlayerLowBalanceНедостаточно средств на балансе игрока
CurrencyNotFoundВалюта с таким кодом не найдена
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

4.6 Начисление выигрыша игроку

Url: https://<server-partner>/win
Тип запроса: POST

Метод позволяет совершить зачисление выигрыша игроку. Запрос выполняет провайдер.

Параметры запроса:

НазваниеТипОписание
amountstringСумма транзакции
currencystringВалюта, в которой будет осуществляться игра (USD, EUR и т.д.)
partnerIdbigintУникальный идентификатор партнера
playerIdstringУникальный идентификатор игрока в системе клиента
gameIdbigintУникальный идентификатор игры
roundIdbigintУникальный идентификатор раунда ставки
betTransactionIdstringУникальный идентификатор транзакции ставки в системе клиента
transactionIdbigintУникальный идентификатор транзакции выигрыша провайдера
sessionId*stringУникальный идентификатор игровой сессии в системе клиента
finished**booleanФлаг, показывающий завершен ли раунд
hashstringsha256 от строки ("win" + amount + currency + partnerId + playerId + gameId + roundId + betTransactionId + transactionId + sessionId + apiKey)

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash ("win" + amount + currency + partnerId + playerId + gameId + roundId + betTransactionId + transactionId + apiKey)

** - Необязательные поля: они никогда не используются в расчете hash

Параметры ответа:

НазваниеТипОписание
balancestringАктуальный баланс игрока
transactionIdstringУникальный идентификатор транзакции выигрыша в системе клиента

Пример запроса:

js
{  
    amount: '20.00',  
    currency: 'USD',  
    partnerId: 1,  
    playerId: '432',  
    gameId: 3,  
    roundId: 7665,  
    betTransactionId: '1333882827',  
    transactionId: 36,  
    sessionId: '123',  
    finished: true,  
    hash: 'd919a11d4cb1b0dc4cc0d5f880c6970fd160d434b3a779a66a9a7f6451d108fd'  
}

Пример ответа:

js
{  
    status: 'success'  
    data: {  
        balance: '10123.63',   
        transactionId: '1333882829'  
    }  
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
CurrencyNotFoundВалюта с таким кодом не найдена
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

4.7 Отмена ставки игроку

Url: https://<server-partner>/refund
Тип запроса: POST

Метод позволяет совершить возврат ставки игроку. Запрос выполняет провайдер.

Параметры запроса:

НазваниеТипОписание
amountstringСумма транзакции
currencystringВалюта, в которой будет осуществляться игра (USD, EUR и т.д.)
partnerIdbigintУникальный идентификатор партнера
playerIdstringУникальный идентификатор игрока в системе клиента
gameIdbigintУникальный идентификатор игры
roundIdbigintУникальный идентификатор раунда ставки
betTransactionIdstringУникальный идентификатор транзакции ставки в системе клиента
transactionIdbigintУникальный идентификатор транзакции возврата провайдера
sessionId*stringУникальный идентификатор игровой сессии в системе клиента
finished**booleanФлаг, показывающий завершен ли раунд
hashstringsha256 от строки ("refund" + amount + currency + partnerId + playerId + gameId + roundId + betTransactionId + transactionId + sessionId + apiKey)

* - Необязательные поля: если они не передаются, то они не учитываются при расчете hash ("refund" + amount + currency + partnerId + playerId + gameId + roundId + betTransactionId + transactionId + apiKey)

** - Необязательные поля: они никогда не используются в расчете hash

Параметры ответа:

НазваниеТипОписание
balancestringАктуальный баланс игрока
transactionIdstringУникальный идентификатор транзакции возврата в системе клиента

Пример запроса:

js
{  
    amount: '10.00',  
    currency: 'USD',  
    partnerId: 1,  
    playerId: '432',  
    gameId: 3,  
    roundId: 7686,  
    betTransactionId: '1333882828',  
    transactionId: 37,  
    sessionId: '123',  
    finished: false,  
    hash: '3d304f5134260424a0777a91745565cf3e8b80226d0e1aa66bb0835ffe59839a'  
}

Пример ответа:

js
{  
    status: 'success'  
    data: {  
        balance: '10113.63',   
        transactionId: '1333882830'  
    }  
}

Возможные сообщения ошибок

СообщениеОписание
RequiredParamsNotFoundНекорректное количество параметров в запросе
InvalidParamTypeНекорректный тип параметра
CurrencyNotFoundВалюта с таким кодом не найдена
IncorrectHashНекорректно рассчитан hash
ServerErrorОшибка сервера

5. Тестирование интеграции

Наше API предоставляет возможность проверить корректность интеграции с помощью POST-запроса, запускающего различные игровые сценарии. В ответ вы получите итоговый статус (success или error) и подробную информацию по каждому тестовому кейсу. Успешное прохождение всех тестов означает, что интеграция выполнена корректно.

В тестах мы ожидаем, что на любой запрос /bet с transactionId: 999999999 будет возвращаться ошибка, чтобы мы могли отправить /refund на этот bet.

Url: https://<server-pixmove-games>/test/self-validate
Тип запроса: POST

Параметры запроса:

НазваниеТипОписание
partnerIdbigintУникальный идентификатор партнера
playerIdstringУникальный идентификатор игрока в системе клиента
currency*stringВалюта, в которой будут осуществлятся запросы (по умолчанию USD)
gameId*bigintУникальный идентификатор игры (по умолчанию 1)
sessionId*stringУникальный идентификатор игровой сессии в системе клиента (если не передан в запросе - не будет передаваться в тестах)
hashstringsha256 от строки (“self_validate” + partnerId + playerId + apiKey)

Параметры ответа:

НазваниеТипОписание
failedTestsarrayМассив с данными по тестам, которые не прошли

Пример запроса:

js
{  
    partnerId: 1,
    playerId: '1',  
    hash: 'f01729f278481b7934b9c859fdbf030195e924e2e17d99b925ec2bff4655dfc2'  
}

Пример ответа:

js
{
    "status": "success",
    "data": {
        "success": true,
        "failedTests": []
    },
    "serverTime": 1748437219129,
    "duration": 334
}

6. Фриспины

Общие положения

В реализации фриспинов используются две основные сущности - кампания фриспинов и фриспины.

Кампания фриспинов - это общая промоакция, которую может создать партнер и по параметрам которой игрокам будут присвоены бесплатные вращения (фриспины).

Фриспины - это бесплатные вращения, которые будут начисляться игрокам при заходе в игру.

В рамках одной кампании фриспинов пользователю могут быть начислены только одни фриспины.

6.1 Создание кампании фриспинов

Для того, чтобы выдать игрокам фриспины, необходимо создать кампанию фриспинов, по параметрам которой будут выдаваться бесплатные вращения игрокам.

При заходе в игру, если игрок подходит под параметры кампании фриспинов (нужная валюта/нужная игра/нужный игрок) - ему будут начислены фриспины.

Если в запросе создания кампании фриспинов не указывать параметры currencies/gameIds/playerIds - то фриспины будут выдаваться всем игрокам.

Например, если в запросе на создание кампании указать только gameIds = [1], то фриспины будут выдаваться всем игрокам, на любых валютах, которые зайдут в игру с id = 1.

Параметр strictBetLevel: если он указан как true - это гарантирует, что игроку будут выданы фриспины именно по тому betLevel, который указан при создании. Если в игре отсутствует точно такой же betLevel - игроку будут недоступны фриспины в этой игре. Если использовать значение по умолчанию для этого параметра - false - то в случае отсутствия нужного betLevel в игре - будет использован ближайший

Url: https://<server-pixmove-games>/freespins/create
Тип запроса: POST

Параметры запроса:

НазваниеТипОписание
campaignExtIdstringУникальный идентификатор кампании фриспинов в системе клиента
spinCountbigintКоличество фриспинов
partnerIdbigintУникальный идентификатор партнера
betLevelbigintРазмер желаемой ставки (из доступных, полученных в запросе 6.2)
strictBetLevel*booleanВключение обязательного совпадения размера ставки для фриспинов (по умолчанию false )
startTimestringВремя начала кампании фриспинов в формате ISO 8601
endTimestringВремя окончания кампании фриспинов в формате ISO 8601
betLevelCurrency*stringВалюта ставки (по умолчанию USD)
maxWin*bigintМаксимальная выигрышная сумма в валюте betLevelCurrency (по умолчанию - не ограничен)
currencies*arrayМассив с валютами для которых будут выдаваться фриспины (пример - ["USD", "EUR"])
gameIds*arrayМассив с уникальными идентификаторами игр для которых будут выдаваться фриспины (пример - [1, 2, 3])
playerIds*arrayМассив с уникальными идентификаторами игроков для которых будут выдаваться фриспины (пример - ["playerId1", "playerId2"])
hashstringsha256 от строки (“freespins_create” + campaignExtId + spinCount + partnerId + betLevel + apiKey)

Параметры ответа:

НазваниеТипОписание
idbigintУникальный идентификатор кампании фриспинов

Пример запроса:

js
{  
    campaignExtId: 1,
    spinCount: 20,
    betLevel: 8,
    betLevelCurrency: 'USD',
    strictBetLevel: true,
    maxWin: 10000000,
    partnerId: 1,
    startTime: '2025-07-01T15:04:32.384Z',
    endTime: '2025-07-07T15:04:32.384Z',
    currencies: ['RUB', 'USD', 'EUR'],
    playerIds: ['1', '2', '3'],
    gameIds: [1, 2, 3, 4, 5],
    hash: '123' 
}

Пример ответа:

js
{
    "status": "success",
    "data": {
        "id": 713
    },
    "serverTime": 1748437219129,
    "duration": 334
}

6.2 Получение списка доступных ставок

Данный метод позволяет получить доступные betLevels для создания кампании фриспинов, исходя из переданных параметров. Из полученных данных можно выбрать betLevel, на котором будет создаваться кампания фриспинов.

Url: https://<server-pixmove-games>/freespins/bet-levels
Тип запроса: GET

Параметры запроса:

НазваниеТипОписание
currencystringВалюта betLevel`а (USD, EUR, RUB и т.д.)
partnerIdbigintУникальный идентификатор партнера
hashstringsha256 от строки (“freespins_bet_levels” + currency + partnerId + apiKey)

Параметры ответа:

НазваниеТипОписание
betLevelsarrayМассив с доступными betLevels

Пример запроса:

js
{  
    currency: 'USD',
    partnerId: 1,
    hash: '123' 
}

Пример ответа:

js
{
    "status": "success",
    "data": {
        "betLevels": [
            10,
            20,
            30,
            40,
            50,
            100,
            200,
            300,
            400,
            500
        ]
    },
    "serverTime": 1748437219129,
    "duration": 334
}

6.3 Получение списка кампаний фриспинов

Все параметры в этом запросе кроме partnerId - опциональные, если они передаются - то используются в фильтрации получаемых кампаний фриспинов.

Флаг withFreespins определяет, будет ли в ответе содержаться информация о текущих фриспинах для кампаний.

Url: https://<server-pixmove-games>/freespins/list
Тип запроса: GET

Параметры запроса:

НазваниеТипОписание
partnerIdbigintУникальный идентификатор партнера
campaignExtId*stringУникальный идентификатор кампании фриспинов в системе клиента
currencies*arrayМассив с валютами для которых будут выдаваться фриспины (пример - ["USD", "EUR"])
gameIds*arrayМассив с уникальными идентификаторами игр для которых будут выдаваться фриспины (пример - [1, 2, 3])
playerIds*arrayМассив с уникальными идентификаторами игроков для которых будут выдаваться фриспины (пример - ["playerId1", "playerId2"])
status*stringСтатус кампании фриспинов ("active", "completed", "canceled")
closed*booleanФлаг, определяющий, будут ли возвращаться только закрытые кампании фриспинов
startTimeFrom*stringФильтр по времени действия кампании фриспинов, в формате ISO 8601
startTimeTo*stringФильтр по времени действия кампании фриспинов, в формате ISO 8601
endTimeFrom*stringФильтр по времени действия кампании фриспинов, в формате ISO 8601
endTimeTo*stringФильтр по времени действия кампании фриспинов, в формате ISO 8601
limit*bigintКоличество кампаний фриспинов, которое будет возвращено в ответе
offset*bigintСмещение, определяющее, с какой кампании фриспинов начнется возвращение
withFreespins*booleanФлаг, определяющий, будет ли в ответе содержаться информация о текущих фриспинах для кампаний
hashstringsha256 от строки (“freespins_list” + partnerId + apiKey)

Параметры ответа:

НазваниеТипОписание
campaignsarrayМассив с кампаниями фриспинов

Пример запроса:

js
{  
    partnerId: 1,
    campaignExtId: 1,
    currencies: ['USD', 'EUR'],
    gameIds: [1, 2, 3],
    playerIds: ['1', '2', '3'],
    status: 'active',
    closed: false,
    startTimeFrom: '2025-07-01T15:04:32.384Z',
    startTimeTo: '2025-07-07T15:04:32.384Z',
    endTimeFrom: '2025-07-01T15:04:32.384Z',
    endTimeTo: '2025-07-07T15:04:32.384Z',
    limit: 10,
    offset: 0,
    withFreespins: true,
    hash: '123' 
}

Пример ответа:

js
{
    "status": "success",
    "data": {
        "campaigns": [
            {
                "id": 11,
                "extId": "22",
                "spinCount": 20,
                "betLevel": 8,
                "closed": false,
                "maxWin": null,
                "startTime": "2025-07-01T15:04:32.384Z",
                "endTime": "2025-08-25T15:05:16.592Z",
                "partnerId": 1,
                "Freespins": [
                    {
                        "id": 23,
                        "campaignId": 11,
                        "playerId": 164,
                        "gameId": 17,
                        "currencyId": 1,
                        "status": "active",
                        "currentSpins": 0,
                        "currentWin": 0,
                        "closed": false
                    }
                ]
            }
        ]
    },
    "serverTime": 1752245215266,
    "duration": 182
}

6.4 Отмена кампании фриспинов

Этот запрос позволяет отменить и завершить кампанию фриспинов.

Внимание! Данный метод так же отменяет и закрывает все текущие фриспины, его использование нежелательно, если кто-то из клиентов их уже получил

Url: https://<server-pixmove-games>/freespins/cancel
Тип запроса: POST

Параметры запроса:

НазваниеТипОписание
campaignExtIdstringУникальный идентификатор кампании фриспинов в системе клиента
partnerIdbigintУникальный идентификатор партнера
hashstringsha256 от строки (“freespins_cancel” + partnerId +campaignExtId + apiKey)

Параметры ответа:

НазваниеТипОписание
idbigintУникальный идентификатор кампании фриспинов

Пример запроса:

js
{
    campaignExtId: 1,
    partnerId: 1,
    hash: '123'
}

Пример ответа:

js
{
    "status": "success",
    "data": {
        "id": 11
    },
    "serverTime": 1752245215266,
    "duration": 182
}

6.5 Начисление выигрыша по фриспинам игроку

Url: https://<server-partner>/finish
Тип запроса: POST

Метод позволяет совершить зачисление бонусного выигрыша игроку. Запрос выполняет провайдер.

Параметры запроса:

НазваниеТипОписание
amountstringСумма транзакции
currencystringВалюта, в которой будет осуществляться игра (USD, EUR и т.д.)
partnerIdbigintУникальный идентификатор партнера
playerIdstringУникальный идентификатор игрока в системе клиента
gameIdbigintУникальный идентификатор игры
roundIdbigintУникальный идентификатор раунда ставки
sessionId*stringУникальный идентификатор игровой сессии в системе клиента
transactionIdbigintУникальный идентификатор транзакции выигрыша провайдера
freespinIdstringУникальный идентификатор фриспина
campaignExtIdstringУникальный идентификатор кампании фриспинов в системе клиента
hashstringsha256 от строки (“finish” + amount + currency + partnerId + playerId + gameId + roundId + transactionId + freespinId + campaignExtId + sessionId + apiKey)

Необязательные поля: если они не передаются, то они не учитываются при расчете hash (“finish” + amount + currency + partnerId + playerId + gameId + roundId + transactionId + freespinId + campaignExtId + apiKey)

Параметры ответа:

НазваниеТипОписание
balancestringАктуальный баланс игрока
transactionIdstringУникальный идентификатор транзакции выигрыша в системе клиента

Пример запроса:

js
{  
    amount: '20.00',  
    currency: 'USD',  
    partnerId: 1,  
    playerId: '432',  
    gameId: 3,  
    roundId: 7665,  
    sessionId: '123',  
    transactionId: 36,
    freespinId: '123',
    campaignExtId: '1',
    hash: 'd919a11d4cb1b0dc4cc0d5f880c6970fd160d434b3a779a66a9a7f6451d108fd'  
}

Пример ответа:

js
{  
    status: 'success'  
    data: {  
        balance: '10103.63',
        transactionId: '1234567890'  
    }  
}

7. Доступные валюты

idcode
1USD
2UAH
3AZN
4TMT
5GEL
6KGS
7MDL
8KZT
9RUB
10EUR
11AMD
12TJS
13PRB
14GBP
15TRY
16MNT
17µBT
18COP
19mBT
20XAF
21XOF
22BRL
23CNY
24IRR
25CLP
26PEN
27ARS
28VEF
29MXN
30UYU
31HTG
32PLN
33CHF
34BGN
35CZK
36DKK
37HRK
38HUF
39SEK
40NOK
41RON
42RSD
43ALL
44BAM
45ISK
46MKD
47AUD
48NZD
49CAD
50BOB
51PYG
52UZS
53BDT
54VND
55KRW
56LTC
57DTC
58INR
59GMC
60ILS
61JPY
62MYR
63PHP
64SGD
65THB
66TWD
67NGN
68ETB
69EGP
70CDF
71ZAR
72TZS
73SDG
74KES
75DZD
76UGX
77MAD
78GHS
79MZN
80AOA
81AED
82HKD
83IDR
84MMK
85KWD
86SAR
87BYN
88TND
89OMR
90JOD
91BHD
92ZMW
93QAR
94ZWL
95DASH
96XMR
97IQD
98ZEC
99ETH
100GAME
101XEM
102PKR
103DMO
104RUR
105DOP
106BTC