Data Order before Stringify & Hashing

Data processed by the Operator must be the same as data from Naga Games(order and number of data fields). If the Operator does not notice the order of data fields or the order is wrong, the Operator cannot verify this data.

Authorize

  1. playerToken

  2. gameCode

  3. brandCode

  4. groupCode

// Correct
const data = {
  playerToken: "9856e3d7-f7ba-d5cf-1111-43905af123d3",
  gameCode: "pandora",
  brandCode: "dtdr",
  groupCode: "dwea",
};

// Wrong

const data = {
  brandCode: "dtdr",
  groupCode: "dwea",
  playerToken: "9856e3d7-f7ba-d5cf-1111-43905af123d3",
  gameCode: "pandora",
};

Get Player Token

  1. nativeId

  2. groupCode

  3. brandCode

  4. gameCode

// Correct
const data = {
  nativeId: "playerA",
  groupCode: "dapd",
  brandCode: "dodo",
  gameCode: "sugary-bonanza",
};

// Wrong (groupCode & nativeId)
const data = {
  groupCode: "dapd",// groupCode is wrong order
  nativeId: "playerA",// nativeId is wrong order
  brandCode: "dodo",
  gameCode: "sugary-bonanza",
};

Seamless Mode

Place Bet

  1. betId

  2. currency

  3. gameCode

  4. playerToken

  5. groupCode

  6. transactionId

  7. amount

  8. parentBetId

  9. brandCode

  10. betType

  11. isLastFreeSpins

📘

Note:

Two fields betType & isLastFreeSpins are able to turn on/off in BackOffice.

If ticked, this mean the data is sent from Naga Games will include these fields

Example order data fields for Place Bet data:


// Correct
const data = {
  betId: "9856e3d7-f7ba-d5cf-1111-43905af123d3",
  currency: "THB",
  gameCode: "sugary-bonanza",
  playerToken: "39af0e52dbe5acefc6d2fe5f9639d3d9",
  groupCode: "dapd",
  transactionId: "10f118bf-2789-4db7-9a3f-a0b8da51f7d2",
  amount: 10,
  parentBetId: "3c67e1b5-809b-4a82-942b-74b68b7d0f22",
  brandCode: "dodo",
  betType: "NORMAL",
  isLastFreeSpins: true,
};

// Wrong (currency & betId)
const data = {
  currency: "THB", // currency is wrong order
  betId: "9856e3d7-f7ba-d5cf-1111-43905af123d3", // betId is wrong order
  gameCode: "sugary-bonanza",
  playerToken: "39af0e52dbe5acefc6d2fe5f9639d3d9",
  groupCode: "dapd",
  transactionId: "10f118bf-2789-4db7-9a3f-a0b8da51f7d2",
  amount: 10,
  parentBetId: "3c67e1b5-809b-4a82-942b-74b68b7d0f22",
  brandCode: "dodo",
  betType: "NORMAL",
  isLastFreeSpins: true,
};

Payout

  1. betId

  2. currency

  3. gameCode

  4. playerToken

  5. groupCode

  6. transactionId

  7. amount

  8. parentBetId

  9. brandCode

  10. betType

  11. isLastFreeSpins

// Correct
const data = {
  betId: "9856e3d7-f7ba-d5cf-1111-43905af123d3",
  currency: "THB",
  gameCode: "sugary-bonanza",
  playerToken: "39af0e52dbe5acefc6d2fe5f9639d3d9",
  groupCode: "dapd",
  transactionId: "10f118bf-2789-4db7-9a3f-a0b8da51f7d2",
  amount: 10,
  parentBetId: "3c67e1b5-809b-4a82-942b-74b68b7d0f22",
  brandCode: "dodo",
  betType: "NORMAL",
  isLastFreeSpins: true,
};

// Wrong (currency & betId)
const data = {
  currency: "THB", // currency is wrong order
  betId: "9856e3d7-f7ba-d5cf-1111-43905af123d3", // betId is wrong order
  gameCode: "sugary-bonanza",
  playerToken: "39af0e52dbe5acefc6d2fe5f9639d3d9",
  groupCode: "dapd",
  transactionId: "10f118bf-2789-4db7-9a3f-a0b8da51f7d2",
  amount: 10,
  parentBetId: "3c67e1b5-809b-4a82-942b-74b68b7d0f22",
  brandCode: "dodo",
  betType: "NORMAL",
  isLastFreeSpins: true,
};

Transfer Mode

Create Player

  1. nativeID
  2. brandCode
  3. groupCode
  4. currencyCode

Example

const SERCET_KEY = 'bmnsODf2NKYshC';

Correct 
const signature = hmacSHA256(
  JSON.stringify({
   nativeId: 'test_payload',
     brandCode: 'bmns',
    groupCode: 'dadd',
    currencyCode: 'USD',
  }),
  SERCET_KEY,
);

Wrong (nativeId is wrong order)
const signature = hmacSHA256(
  JSON.stringify({
    brandCode: 'bmns',
    groupCode: 'dadd',
    nativeId: 'test_payload',
    currencyCode: 'USD',
  }),
  SERCET_KEY,
);

Get Balance

  1. nativeId
  2. brandCode
  3. groupCode

Example

const SERCET_KEY = 'bmnsODf2NKYshC';

Correct 
const signature = hmacSHA256(
  JSON.stringify({
    nativeId: "test_payload",
    brandCode: 'bmns',
    groupCode: 'dadd',
  }),
  SERCET_KEY,
);

Wrong (groupCode is wrong order)
const signature = hmacSHA256(
  JSON.stringify({
    nativeId: "test_payload",
    groupCode: 'dadd',
    brandCode: 'bmns',
  }),
  SERCET_KEY,
);

Deposit

  1. nativeID
  2. brandCode
  3. groupCode
  4. currencyCode
  5. amount
  6. nativeTransactionId

Example

const SERCET_KEY = 'bmnsODf2NKYshC';

Correct 
const signature = hmacSHA256(
  JSON.stringify({
    nativeId: 'test_payload',
    brandCode: 'bmns',
    groupCode: 'dadd',
    currencyCode: 'USD',
    amount: 1,
    nativeTransactionId: '7b83540c-2a25-4555-a5c0-f1a1c8ba861d',
  }),
  SERCET_KEY,
);

Wrong (nativeId is wrong order)
const signature = hmacSHA256(
  JSON.stringify({
    brandCode: 'bmns',
    groupCode: 'dadd',
    currencyCode: 'USD',
    amount: 1,
    nativeTransactionId: '7b83540c-2a25-4555-a5c0-f1a1c8ba861d',
    nativeId: 'test_payload', 
  }),
  SERCET_KEY,
);

Withdraw

  1. nativeID
  2. brandCode
  3. groupCode
  4. currencyCode
  5. amount
  6. nativeTransactionId

Example

const SERCET_KEY = 'bmnsODf2NKYshC';

Correct 
const signature = hmacSHA256(
  JSON.stringify({
    nativeId: 'test_payload',
    brandCode: 'bmns',
    groupCode: 'dadd',
    currencyCode: 'USD',
    amount: 1,
    nativeTransactionId: '7b83540c-2a25-4555-a5c0-f1a1c8ba861d',
  }),
  SERCET_KEY,
);

Wrong (nativeId is wrong order)
const signature = hmacSHA256(
  JSON.stringify({
    brandCode: 'bmns',
    groupCode: 'dadd',
    currencyCode: 'USD',
    amount: 1,
    nativeTransactionId: '7b83540c-2a25-4555-a5c0-f1a1c8ba861d',
    nativeId: 'test_payload',
  }),
  SERCET_KEY,
);

Get One Transaction Transfer

  1. brandCode
  2. groupCode

Example

const SERCET_KEY = 'bmnsODf2NKYshC';

Correct
Example:
const signature = hmacSHA256(
  JSON.stringify({
    brandCode: 'bmns',
    groupCode: 'dadd',
  }),
  SERCET_KEY,
);

Wrong (groupCode is wrong orde)
const signature = hmacSHA256(
  JSON.stringify({
    groupCode: 'dadd',
    brandCode: 'bmns',
  }),
  SERCET_KEY,
);

Get List Transaction Transfer

  1. brandCode
  2. groupCode
  3. startDate
  4. endDate
  5. type
  6. page
  7. limit

Example

const SERCET_KEY = 'bmnsODf2NKYshC';

Correct
const signature = hmacSHA256(
  JSON.stringify({
    brandCode: 'bmns',
    groupCode: 'dadd',
    startDate: '2022-10-21T03:39:10.815Z',
    endDate: '2022-10-22T03:39:15.815Z',
    type: 'DEPOSIT',
    page: '1',
    limit: '10',
  }),
  SERCET_KEY,
);

Wrong (groupCode, type are wrong order)
const signature = hmacSHA256(
  JSON.stringify({
    groupCode: 'dadd', 
    brandCode: 'bmns',
    type: 'DEPOSIT',
    startDate: '2022-10-21T03:39:10.815Z',
    endDate: '2022-10-22T03:39:15.815Z',
    page: '1',
    limit: '10',
  }),
  SERCET_KEY,
);