Create FRB template

Create FRB template

Creates one or more FRB templates for the specified provider(s).

Request endpoint: /frb/create/{version}/template?subProvider=1

Request Method: POST

Usage information

The request body is a JSON array. Each element defines a template for a single provider.

Note

This request requires an authorization token: Bearer authorization token.
Token Format: The authorization token must be Base64-encoded as follows:
AuthorizationToken = encode(back_office_email:back_office_password)

Note
  • The specified parameters operatorId and providerName must already be configured in Groove.
  • For Playson, the template must contain only one game.
  • For Pragmatic Play, the expiration date of the template must be no more than 30 days from the template start date.
Warning

Mixed game types are not supported. All games in a template must be of the same type — either all slot games or all live dealer games. Templates containing a mix of slot and live dealer games will be rejected. This applies to providers that support both Free Spins (slots) and Free Chips (live dealer).

Info

For QuickFire, parameter balanceTypeId is required. This parameter is not used by any other game provider. Valid values are:

  • 0: Real money
  • 1: Bonus money
Info

How the bet amount works

  • The player’s bet per spin is betAmount × betValue. betValue is the value for the player’s currency.
  • betValue is a fixed value per currency, not a live exchange rate. For example, EUR and USD both have 0.01, so betAmount: 100 gives 1.00 EUR and also 1.00 USD.
  • Examples with betAmount: 100:
    • EUR player (betValue 0.01): 1.00 EUR per spin
    • BRL player (betValue 0.05): 5.00 BRL per spin
    • JPY player (betValue 1): 100 JPY per spin
  • The full list of currencies and values is available from Get FRB currency values.
  • The betAmount you send is used only when a non-default bet amount is enabled for your casino. To enable it, contact your account manager.
  • Otherwise, or when useDefaultAmount is true or betAmount is 0, the game provider’s default bet amount is used.
  • A game may not support the exact amount. In that case, the closest bet amount the game supports is used.

Request parameters:

Parameter Data type Description
version String required The API version. Only version 1.0 is currently supported. Other version values are accepted, but are treated as 1.0.
Example: v1
subProvider Integer required Must be 1. Ensures the provider name you send is resolved correctly and the response contains the correct providerId.
Authorization Yes (Header) Sinatra back office user

Request Body

[
  {
    "providerName": "BetSoft",
    "operatorId": 11,
    "numberOfRounds": 10,
    "availableFromDate": "2026-04-29 00:00:00",
    "availableDuration": 7,
    "expirationDate": "2026-05-06 00:00:00",
    "messageFirstLine": "Enjoy your free spins!",
    "messageSecondLine": "Play now",
    "offerName": "WelcomeBonus",
    "gameInfoList": [
      {
        "gameId": "82600118",
        "betAmount": [100]
      }
    ]
  }
]
Note

betAmount is multiplied by the betValue of the player’s currency. See “How the bet amount works” above.

The response body includes the id parameter in the root object. This is the template collection ID used when granting the FRB to players.

Response Parameters:

None.

Example Response:

Success response:

{
  "id": "663b1f77bcf86cd799439011",
  "done": true,
  "offer_names": ["WelcomeBonus"],
  "succeeded_providers": ["BetSoft"],
  "failed_providers": [],
  "succeeded_insertion": [
    {
      "id": "663b1f77bcf86cd799439012",
      "templateId": "TMP_82600118_11_BetSoft",
      "providerName": "BetSoft",
      "providerId": 82,
      "operatorId": 11,
      "transactionId": "",
      "numberOfRounds": 10,
      "availableFromDate": "2026-04-29 00:00:00",
      "availableDuration": 7,
      "expirationDate": "2026-05-06 00:00:00",
      "messageFirstLine": "Enjoy your free spins!",
      "messageSecondLine": "Play now",
      "offerName": "WelcomeBonus",
      "gameInfoList": [
        {
          "gameId": "82600118",
          "betAmount": [100]
        }
      ],
      "exceptionResponses": [],
      "players": []
    }
  ],
  "failed_insertion": []
}
Info
  • If the request is successful, the response will contain a list of successfully created templates (succeeded_insertion).
  • providerName and providerId in the response reflect the provider name you sent in the request and its numeric ID.
  • offerName is echoed back unchanged.
  • Upon granting the FRB template, the template ID that should be sent is the id field of the root object (e.g., "663b1f77bcf86cd799439011").

Error Response:

{
  "error": "Sub-provider does not exist or does not support FRB: UnknownProvider"
}

Response codes:

Code Status Message
200 success Template(s) created successfully
400 bad request bad request
422 Invalid parameters One of:
• bet amount should be an integer
• no metadata fields for this provider
• Available date is empty
• Available date should be with format yyyy-MM-dd HH:mm:ss
• Available date should be a future date
• Expiration date is empty
• Expiration date should be with format yyyy-MM-dd HH:mm:ss
• Expiration date should be a future date
• Number of rounds is empty
• Balance type id is empty
• Balance type id allowed values are 0 or 1
• Wrong balance type id size - values are 0 or 1
• Offer name can not be more than 255 characters
• Game info list is empty
• Game id not exist in this provider
• provider supports only single game
• Sub-provider does not exist or does not support FRB
500 internal server error internal server error