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.
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)
- The specified parameters
operatorIdandproviderNamemust 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.
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).
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
How the bet amount works
- The player’s bet per spin is
betAmount × betValue.betValueis the value for the player’s currency. betValueis a fixed value per currency, not a live exchange rate. For example, EUR and USD both have0.01, sobetAmount: 100gives 1.00 EUR and also 1.00 USD.- Examples with
betAmount: 100:- EUR player (
betValue0.01): 1.00 EUR per spin - BRL player (
betValue0.05): 5.00 BRL per spin - JPY player (
betValue1): 100 JPY per spin
- EUR player (
- The full list of currencies and values is available from Get FRB currency values.
- The
betAmountyou 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
useDefaultAmountistrueorbetAmountis 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]
}
]
}
]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": []
}- If the request is successful, the response will contain a list of successfully created templates (
succeeded_insertion). providerNameandproviderIdin the response reflect the provider name you sent in the request and its numeric ID.offerNameis echoed back unchanged.- Upon granting the FRB template, the template ID that should be sent is the
idfield 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 |