Wallet API

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.

Request consistency

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.

Wallet API Reference - Supplier API

Get a user's balance


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.

Header parameters
  • 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.

Body
  • 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

Responses
{
  "user": "john12345",
  "status": "RS_OK",
  "request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
  "currency": "USD",
  "balance": 100500
}

Update a user's balance based on transaction reward


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.

Header parameters
  • 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.

Body
  • 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.

Responses
{
  "user": "john12345",
  "status": "RS_OK",
  "request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
  "currency": "USD",
  "balance": 100500
}

Update a user's balance based on transaction win


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.

Header parameters
  • 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.

Body
  • 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.

Responses
{
  "user": "john12345",
  "status": "RS_OK",
  "request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
  "currency": "USD",
  "balance": 100500
}

Update a user's balance based on transaction rollback


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.

Header parameters
  • 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.

Body
  • 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.

Responses
{
  "user": "john12345",
  "status": "RS_OK",
  "request_uuid": "583c985f-fee6-4c0e-bbf5-308aad6265af",
  "currency": "USD",
  "balance": 100500
}