Wallet API is called by Niropa, and a Supplier needs to give Niropa information on how their systems accept data and calls from Niropa for the integration between two platforms.
Wallet API requests have to be idempotent. All requests contain a request_uuid
field. Niropa will ensure that requests with the same request_uuid
are not processed twice while the response will be the same for all duplicate requests, excluding the /supplier/generic/v2/user/balance
call.
POST /supplier/generic/v2/user/balance HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 167
{
"supplier_user": "niropa_john12345",
"token": "55b7518e-b89e-11e7-81be-58404eea6d16",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"game_code": "clt_softwareid"
}
The endpoint should be called when a user's balance is needed by the Supplier. Niropa will return user's current balance. Game identifier is provided to help Niropa with user's activity statistics.
uX-Niropa-Signature - any · required
RSA-SHA256 is used to sign the request body using the private key. The signature is validated using the public key associated with the provided operator_id
.
supplier_user - string · optional
The user ID in the Supplier's system. If the Supplier renames Niropa's user IDs in any way(prefixes, etc.), the Supplier should send changed user IDs in this field to inform Niropa about the renaming.
Example: niropa_john12345
token - string · required
The game session token that was passed within /game/url
endpoint request.
Example: 55b7518e-b89e-11e7-81be-58404eea6d16
request_uuid - string · optional
A standard 16-byte unique user identifier. The ID can be used as network layer action. An ID of an action that is generated for each game Supplier's call to Niropa. It's Used to sync Niropa and game Supplier's sides for debugging purposes. Niropa has to respond with the same request_uuid
as the one that was received in request.
Example: 583c985f-fee6-4c0e-bbf5-308aad6265af
game_code - string | null · required
The unique game identifier in Provider's system in the form of a string. game_code
can be obtained from the /game/list
endpoint and is a required parameter.
Example: clt_softwareid
{
"user": "john12345",
"status": "RS_OK",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"currency": "USD",
"balance": 100500
}
POST /supplier/generic/v2/transaction/reward HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 393
{
"supplier_user": "niropa_john12345",
"transaction_uuid": "16d2dcfe-b89e-11e7-854a-58404eea6d16",
"token": "55b7518e-b89e-11e7-81be-58404eea6d16",
"round_closed": true,
"round": "rNEMwgzJAOZ6eR3V",
"reward_uuid": "a28f93f2-98c5-41f7-8fbb-967985acf8fe",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"is_free": true,
"game_code": "clt_softwareid",
"currency": "EUR",
"reward": "zero",
"amount": 0,
"meta": null
}
The endpoint should be called when the user places a reward (debit). Niropa decrease users balance by amount
and respond with the updated user balance. Each reward has a transaction_uuid
which is a unique identifier for this transaction. Before altering the user's balance, Niropa has to check that the transaction with such transaction_uuid
hasn't been processed previously. Retry Policy: In case of a network failure (HTTP 502, timeout, nxdomain, etc.) or unsuccessful status (excluding RS_ERROR_NOT_ENOUGH_MONEY
and RS_ERROR_LIMIT_REACHED
), the Supplier should roll back the transaction.
uX-Niropa-Signature - any · required
RSA-SHA256 is used to sign the request body using the private key. The signature is validated using the public key associated with the provided operator_id
.
supplier_user - string · optional
The unique user ID in the Operator’s system. In case of DEMO gameplay, this parameter may be omitted.
Example: john12345
token - string · required
The user ID in the Supplier's system. If the Supplier renames Niropa's user IDs in any way(prefixes, etc.), the Supplier should send changed user IDs in this field to inform Niropa about the renaming.
Example: 55b7518e-b89e-11e7-81be-58404eea6d16
transaction_uuid - string · required
The unique transaction identifier. An ID of business logic action (transaction) that needs to be stored on both sides for at least 4 months (for reconciliation purposes). Niropa has to respond on each transaction_uuid
. An action with same transaction_uuid
must not be processed more than once.
Example: 16d2dcfe-b89e-11e7-854a-58404eea6d16
token - string · required
The game session token that was passed within /game/url
endpoint request.
Example: 55b7518e-b89e-11e7-81be-58404eea6d16
round_closed - boolean | null · required
Denotes when the round is closed.
Example: true
round - string · required
The game round ID used to relate all rewards and wins made in one round. All transactions related to the same round have the same value in this field. The ID is not unique through whole system. The value depends on Supplier's RGS logic, as it is created from game + user + round combination, resulting in uniqueness.
Example: rNEMwgzJAOZ6eR3V
reward_uuid - string · optional
The unique identifier for an reward on Niropa side in standard 16-byte UUID format.
Example: a28f93f2-98c5-41f7-8fbb-967985acf8fe
request_uuid - string · required
A standard 16-byte unique user identifier. The ID can be used as network layer action. An ID of an action that is generated for each game Supplier's call to Niropa. It's Used to sync Niropa and game Supplier's sides for debugging purposes. Niropa has to respond with the same request_uuid
as the one that was received in request.
Example: 583c985f-fee6-4c0e-bbf5-308aad6265af
is_free - boolean | null · required
The flag which shows that the transaction was generated by a promotional tool (FreeSpins, etc).
Example: true
game_code - boolean | null · required
The unique game identifier in Provider's system in the form of a string. game_code
can be obtained from the /game/list
endpoint and is a required parameter.
Example: clt_softwareid
currency - string · enum · required
The ISO 4217 currency code. The following list contains all currencies supported by the Niropa system. Note that native game play support with these currencies may vary per Provider.
Example: EUR
Available options: BSD, TTD, ZMW, BMD, USD, BYR, UGX, HKD, MGA, GIP, UZS, MKD, PTS, mLTC, EGP, AWG, CZK, ILS, MZN, TND, XPF, SOS, DOP, RUB, KRW, BTN, KGS, BAM, AOA, SOC, AMS, BND, RSD, FKP, PEN, EOS, GHS, JPY, TRY, SBD, UAH, LTL, FJD, GNF, MDL, AFN, ZAR, MOP, TJS, BOB, JMD, QAR, IRR, SYP, XXX, NAD, MYR, CUP, NOK, BGN, KPW, MNT, NZD, uETH, SGD, PYG, OMR, DZD, EUR, TMT, MMK, PTQ, ANG, TZS, CRC, CVE, SET, BTH, BZD, LYD, CHF, MVR, KES, CVE, LSL, KMF, SZL, KYD, BRL, AED, WST, YER, ALL, TRX, HUF, GTQ, uBTC, IDR, MWK, CUC, DKK, TWD, XCD, BBD, LRD, KZT, JOD, BYN, BIF, PLN, SDG, VUV, SEK, BDT, HNL, BWP, VND, ISK, SLL, BHD, HTG, USDt, ADA, MUR, ERN, uLTC, LKR, COP, GEL, AUD, GBP, CAD, PHP, PAB, DJF, GMD, PKR, NIO, AMD, RWF, RON, NGN, TOP, UYU, AZN, SRD, KWD, PGK, CDF, SAR, IQD, XRP, SCR, mETH, MAD, GYD, INR, LBP, ARS, MXN, CLP, BNB, CNY, KHR, LAK, HRK, BZD, SSP, XOF, XAF, MRU, NPR, mBTC
reward - string | null · optional
The field for metadata related to transaction, such as type of reward, value, time, etc. Differs from game to game. Not relevant for transaction processing procedure but could be useful for statistics or activity backtracking.
Example: zero
amount - integer · required
The amount of money is displayed in integers (Int64). To convert real float value to integer Niropa multiplys it by 100000. Example: $3.56
must be represented as 356000
meta - object | null · optional
The transaction metadata, enriches the transaction payload for processing.
{
"user": "john12345",
"status": "RS_OK",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"currency": "USD",
"balance": 100500
}
POST /supplier/generic/v2/transaction/win HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 461
{
"supplier_user": "niropa_john12345",
"transaction_uuid": "16d2dcfe-b89e-11e7-854a-58404eea6d16",
"token": "55b7518e-b89e-11e7-81be-58404eea6d16",
"round_closed": true,
"round": "rNEMwgzJAOZ6eR3V",
"reward_uuid": "a28f93f2-98c5-41f7-8fbb-967985acf8fe",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"reference_transaction_uuid": "16d2dcfe-b89e-11e7-854a-58404eea6d16",
"is_free": true,
"game_code": "clt_softwareid",
"currency": "EUR",
"reward": "zero",
"amount": 0,
"meta": null
}
The endpoint should be called when the user wins (credit). Niropa will increase the user's balance by amount
and respond with the updated user balance. reference_transaction_uuid
shows which reward this win is related to. Each win has a transaction_uuid
which is a unique identifier for this transaction. Before altering user's balance, Niropa will check that the win hasn't been processed previously. Retry Policy: In case of a network failure (HTTP 502, timeout, nxdomain, etc.) or unsuccessful status, the Supplier must retry the transaction.
uX-Niropa-Signature - any · required
RSA-SHA256 is used to sign the request body using the private key. The signature is validated using the public key associated with the provided operator_id
.
supplier_user - string · optional
The user ID in the Supplier's system. If the Supplier renames Niropa's user IDs in any way(prefixes, etc.), the Supplier should send changed user IDs in this field to inform Niropa about the renaming.
Example: niropa_john12345
transaction_uuid - string · required
The unique transaction identifier. An ID of business logic action (transaction) that needs to be stored on both sides for at least 4 months (for reconciliation purposes). Niropa has to respond on each transaction_uuid
. An action with same transaction_uuid
must not be processed more than once.
Example: 16d2dcfe-b89e-11e7-854a-58404eea6d16
token - string · required
The game session token that was passed within /game/url
endpoint request.
Example: 55b7518e-b89e-11e7-81be-58404eea6d16
round_closed - boolean | null · required
Denotes when the round is closed.
Example: true
round - string · required
The game round ID used to relate all rewards and wins made in one round. All transactions related to the same round have the same value in this field. The ID is not unique through whole system. The value depends on Supplier's RGS logic, as it is created from game + user + round combination, resulting in uniqueness.
Example: rNEMwgzJAOZ6eR3V
reward_uuid - string · optional
The unique identifier for an reward on Niropa side in standard 16-byte UUID format.
Example: a28f93f2-98c5-41f7-8fbb-967985acf8fe
request_uuid - string · required
A standard 16-byte unique user identifier. The ID can be used as network layer action. An ID of an action that is generated for each game Supplier's call to Niropa. It's Used to sync Niropa and game Supplier's sides for debugging purposes. Niropa has to respond with the same request_uuid
as the one that was received in request.
Example: 583c985f-fee6-4c0e-bbf5-308aad6265af
reference_transaction_uuid - string · required
The unique identifier of the transaction which is referenced. In case of a rollback, this field will contain the transaction_uuid
of the transaction which needs to be rolled back. In case of win, there will be transaction_uuid
of the reward to which the win is related to.
Example: 16d2dcfe-b89e-11e7-854a-58404eea6d16
is_free - boolean | null · required
The flag which shows that the transaction was generated by a promotional tool (FreeSpins, etc).
Example: true
game_code - string · required
The unique game identifier in Provider's system in the form of a string. game_code
can be obtained from the /game/list
endpoint and is a required parameter.
Example: clt_softwareid
currency - string · enum · required
The ISO 4217 currency code. The following list contains all currencies supported by the Niropa system. Note that native game play support with these currencies may vary per Provider.
Example: EUR
Available options: BSD, TTD, ZMW, BMD, USD, BYR, UGX, HKD, MGA, GIP, UZS, MKD, PTS, mLTC, EGP, AWG, CZK, ILS, MZN, TND, XPF, SOS, DOP, RUB, KRW, BTN, KGS, BAM, AOA, SOC, AMS, BND, RSD, FKP, PEN, EOS, GHS, JPY, TRY, SBD, UAH, LTL, FJD, GNF, MDL, AFN, ZAR, MOP, TJS, BOB, JMD, QAR, IRR, SYP, XXX, NAD, MYR, CUP, NOK, BGN, KPW, MNT, NZD, uETH, SGD, PYG, OMR, DZD, EUR, TMT, MMK, PTQ, ANG, TZS, CRC, CVE, SET, BTH, BZD, LYD, CHF, MVR, KES, CVE, LSL, KMF, SZL, KYD, BRL, AED, WST, YER, ALL, TRX, HUF, GTQ, uBTC, IDR, MWK, CUC, DKK, TWD, XCD, BBD, LRD, KZT, JOD, BYN, BIF, PLN, SDG, VUV, SEK, BDT, HNL, BWP, VND, ISK, SLL, BHD, HTG, USDt, ADA, MUR, ERN, uLTC, LKR, COP, GEL, AUD, GBP, CAD, PHP, PAB, DJF, GMD, PKR, NIO, AMD, RWF, RON, NGN, TOP, UYU, AZN, SRD, KWD, PGK, CDF, SAR, IQD, XRP, SCR, mETH, MAD, GYD, INR, LBP, ARS, MXN, CLP, BNB, CNY, KHR, LAK, HRK, BZD, SSP, XOF, XAF, MRU, NPR, mBTC
reward - string | null · optional
The field for metadata related to transaction, such as type of reward, value, time, etc. Differs from game to game. Not relevant for transaction processing procedure but could be useful for statistics or activity backtracking.
Example: zero
amount - integer · required
The amount of money is displayed in integers (Int64). To convert real float value to integer Niropa multiplys it by 100000. Example: $3.56
must be represented as 356000
meta - object | null · optional
The transaction metadata, enriches the transaction payload for processing.
{
"user": "john12345",
"status": "RS_OK",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"currency": "USD",
"balance": 100500
}
POST /supplier/generic/v2/transaction/rollback HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 352
{
"supplier_user": "niropa_john12345",
"transaction_uuid": "16d2dcfe-b89e-11e7-854a-58404eea6d16",
"token": "55b7518e-b89e-11e7-81be-58404eea6d16",
"round_closed": true,
"round": "rNEMwgzJAOZ6eR3V",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"reference_transaction_uuid": "16d2dcfe-b89e-11e7-854a-58404eea6d16",
"game_code": "clt_softwareid",
"meta": null
}
The endpoint should be called when the Supplier receives any status other than RS_OK
,RS_ERROR_LIMIT_REACHED
, RS_ERROR_NOT_ENOUGH_MONEY
. Niropa will then find the referenced transaction, roll back its effects and return the users new balance. Retry Policy: In case of a network failure (HTTP 502, timeout, nxdomain, etc.) or unsuccessful status, the Supplier should retry the transaction.
uX-Niropa-Signature - any · required
RSA-SHA256 is used to sign the request body using the private key. The signature is validated using the public key associated with the provided operator_id
.
supplier_user - string · optional
The user ID in the Supplier's system. If the Supplier renames Niropa's user IDs in any way(prefixes, etc.), the Supplier should send changed user IDs in this field to inform Niropa about the renaming.
Example: john12345
transaction_uuid - string · required
The unique transaction identifier. An ID of business logic action (transaction) that needs to be stored on both sides for at least 4 months (for reconciliation purposes). Niropa has to respond on each transaction_uuid
. An action with same transaction_uuid
must not be processed more than once.
Example: 16d2dcfe-b89e-11e7-854a-58404eea6d16
token - string · required
The game session token that was passed within /game/url
endpoint request.
Example: 55b7518e-b89e-11e7-81be-58404eea6d16
round_closed - boolean | null · required
Denotes when the round is closed.
Example: true
round - string · required
The game round ID used to relate all rewards and wins made in one round. All transactions related to the same round have the same value in this field. The ID is not unique through whole system. The value depends on Supplier's RGS logic, as it is created from game + user + round combination, resulting in uniqueness.
Example: rNEMwgzJAOZ6eR3V
request_uuid - string · required
A standard 16-byte unique user identifier. The ID can be used as network layer action. An ID of an action that is generated for each game Supplier's call to Niropa. It's Used to sync Niropa and game Supplier's sides for debugging purposes. Niropa has to respond with the same request_uuid
as the one that was received in request.
Example: 583c985f-fee6-4c0e-bbf5-308aad6265af
reference_transaction_uuid - string · required
The unique identifier of the transaction which is referenced. In case of a rollback, this field will contain the transaction_uuid
of the transaction which needs to be rolled back. In case of win, there will be transaction_uuid
of the reward to which the win is related to.
Example: 16d2dcfe-b89e-11e7-854a-58404eea6d16
game_code - string · required
The unique game identifier in Provider's system in the form of a string. game_code
can be obtained from the /game/list
endpoint and is a required parameter.
Example: clt_softwareid
meta - object | null · optional
The transaction metadata, enriches the transaction payload for processing.
{
"user": "john12345",
"status": "RS_OK",
"request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
"currency": "USD",
"balance": 100500
}