API reference
Generated from the OpenAPI document, version 1.0.0. The same document is available to download.
Getting started
/v1/pingSignedVerify signing and clock
| Field | Type | Description |
|---|---|---|
| operator_coderequired | string | |
| key_idrequired | string | |
| server_timerequired | string (date-time) |
/v1/debug/signatureNot signedSandbox only: check a signature step by step (not signed)
| Field | Type | Description |
|---|---|---|
| key_idrequired | string | The X-Agg-Key-Id you sent |
| timestamprequired | string | The X-Agg-Timestamp you sent, Unix seconds |
| signaturerequired | string | The X-Agg-Signature you sent |
| methodrequired | string | GET, POST, PUT or DELETE |
| pathrequired | string | Path and query exactly as sent |
| body | string | The raw body; absent for a request without one |
| Field | Type | Description |
|---|---|---|
| valid | boolean | |
| diagnosis | string | One sentence: what is wrong, or that nothing is |
| key | object | |
| timestamp | object | |
| payload | object | |
| canonical_string | string | timestamp + "." + payload, exactly what is signed |
| signature | object | |
| hints | string[] |
Catalogue
/v1/gamesSignedGames you may offer, paged by cursor
| Field | Type | Description |
|---|---|---|
| type (query) | GameType | |
| provider_code (query) | string | One provider, as GET /v1/providers names it |
| studio_code (query) | string | Deprecated Deprecated: the same filter as provider_code under its older name; wins when both are sent. |
| country (query) | string | ISO 3166-1 alpha-2. Leaves out games that cannot be played in that country. |
| cursor (query) | string | next_cursor of the previous page |
| limit (query) | integer | 1..200, default 50. Above 200 is cut to 200; below 1 is VALIDATION_FAILED. |
| Field | Type | Description |
|---|---|---|
| gamesrequired | Game[] | |
| next_cursor | string | null | Absent or null on the last page |
/v1/providersSignedProviders behind the games, whole list
| Field | Type | Description |
|---|---|---|
| providersrequired | Provider[] |
/v1/images/{id}Not signedAn image by id (not signed)
| Field | Type | Description |
|---|---|---|
| id (path) | string | Image id from an images URL |
/v1/ratesSignedYour revenue-share percent per provider and band
| Field | Type | Description |
|---|---|---|
| revenue_base | ggr | ngr | |
| market | rest_of_world | asia | |
| regulated | boolean | |
| tier_mode | whole | progressive | |
| providers | object[] |
/v1/live-tablesSignedLive Casino tables on your games as they stand now, limits in one currency
| Field | Type | Description |
|---|---|---|
| currency (query) | string | ISO code the limits are wanted in |
| Field | Type | Description |
|---|---|---|
| currencyrequired | string | |
| pendingrequired | boolean | The currency was asked for the first time just now; its tables arrive within seconds |
| tablesrequired | LiveTable[] |
Wallet integration
/v1/test/wallet-validationSignedSandbox only: run the wallet test suite against your wallet
| Field | Type | Description |
|---|---|---|
| player_idrequired | string | Your test player, with at least 10.00 |
| currencyrequired | string | The currency of that balance |
/v1/test/wallet-validation/{id}SignedSandbox only: a run and every case so far
| Field | Type | Description |
|---|---|---|
| id (path) | string | The run id from the start |
| Field | Type | Description |
|---|---|---|
| id | string (uuid) | |
| status | string | queued, running, passed, failed or error |
| passed | integer | |
| warned | integer | |
| failed | integer | |
| skipped | integer | |
| total | integer | |
| error | string | Why the run could not be carried out |
| cases | object[] |
Sessions
/v1/sessionsSignedOpen a game for a player
| Field | Type | Description |
|---|---|---|
| player_idrequired | string | Your reference, up to 120 characters |
| currencyrequired | string | ISO 4217, fixed for the session |
| game_idrequired | string | id from GET /v1/games |
| locale | string | en, ru-RU, … |
| lobby_url | string | |
| ttl_minutes | integer | |
| player_country | string | ISO 3166-1 alpha-2 |
| player_ip | string | The player's own address; the country is read off it |
| player_device | desktop | mobile | |
| deposit_url | string | |
| player_name | string | Nickname other players see in multiplayer games; never the real name |
| Field | Type | Description |
|---|---|---|
| session_idrequired | string | |
| launch_urlrequired | string | Open the game here; never build it yourself |
| expires_atrequired | string (date-time) |
/v1/games/{id}/demoSignedFun play without a player or wallet
| Field | Type | Description |
|---|---|---|
| id (path) | string | Game id from GET /v1/games |
| Field | Type | Description |
|---|---|---|
| locale | string | |
| lobby_url | string | |
| player_country | string | |
| player_ip | string | |
| player_device | desktop | mobile |
| Field | Type | Description |
|---|---|---|
| launch_urlrequired | string |
/v1/sessions/{id}/closeSignedEnd a session
| Field | Type | Description |
|---|---|---|
| id (path) | string | session_id from POST /v1/sessions |
| Field | Type | Description |
|---|---|---|
| session_id | string | |
| status | string | |
| closed_at | string (date-time) |
Promotions
/v1/free-spinsSignedGrant free spins; idempotent on reference
| Field | Type | Description |
|---|---|---|
| player_idrequired | string | |
| currencyrequired | string | |
| game_idsrequired | string[] | |
| quantityrequired | integer | |
| bet_amountrequired | string | Stake of one spin, from GET /v1/free-spins/bet-options |
| valid_untilrequired | string (date-time) | In the future, at most 90 days away |
| referencerequired | string | Your id for the grant; a repeat answers the first grant |
| Field | Type | Description |
|---|---|---|
| id | string | |
| free_spins_id | string | What your wallet sees on the bets and wins of the series |
| status | active | finished | cancelled | |
| player_id | string | |
| currency | string | |
| game_ids | string[] | |
| quantity | integer | |
| bet_amount | string | Stake of one spin |
| valid_until | string (date-time) | |
| reference | string | |
| created_at | string (date-time) | |
| finished_at | string | null (date-time) | |
| cancelled_at | string | null (date-time) | |
| win_amount | string | null | Total paid, for game providers that settle the series in one call |
/v1/free-spinsSignedFind a grant by your reference
| Field | Type | Description |
|---|---|---|
| reference (query) | string |
| Field | Type | Description |
|---|---|---|
| id | string | |
| free_spins_id | string | What your wallet sees on the bets and wins of the series |
| status | active | finished | cancelled | |
| player_id | string | |
| currency | string | |
| game_ids | string[] | |
| quantity | integer | |
| bet_amount | string | Stake of one spin |
| valid_until | string (date-time) | |
| reference | string | |
| created_at | string (date-time) | |
| finished_at | string | null (date-time) | |
| cancelled_at | string | null (date-time) | |
| win_amount | string | null | Total paid, for game providers that settle the series in one call |
/v1/free-spins/bet-optionsSignedStakes the game provider accepts for a grant
| Field | Type | Description |
|---|---|---|
| game_id (query) | string | |
| currency (query) | string |
| Field | Type | Description |
|---|---|---|
| game_idrequired | string | |
| currencyrequired | string | |
| amountsrequired | string[] |
/v1/free-spins/{id}SignedRead a grant
| Field | Type | Description |
|---|---|---|
| id (path) | string | Grant id |
| Field | Type | Description |
|---|---|---|
| id | string | |
| free_spins_id | string | What your wallet sees on the bets and wins of the series |
| status | active | finished | cancelled | |
| player_id | string | |
| currency | string | |
| game_ids | string[] | |
| quantity | integer | |
| bet_amount | string | Stake of one spin |
| valid_until | string (date-time) | |
| reference | string | |
| created_at | string (date-time) | |
| finished_at | string | null (date-time) | |
| cancelled_at | string | null (date-time) | |
| win_amount | string | null | Total paid, for game providers that settle the series in one call |
/v1/free-spins/{id}/cancelSignedWithdraw a grant still playable; idempotent
| Field | Type | Description |
|---|---|---|
| id (path) | string | Grant id |
| Field | Type | Description |
|---|---|---|
| id | string | |
| free_spins_id | string | What your wallet sees on the bets and wins of the series |
| status | active | finished | cancelled | |
| player_id | string | |
| currency | string | |
| game_ids | string[] | |
| quantity | integer | |
| bet_amount | string | Stake of one spin |
| valid_until | string (date-time) | |
| reference | string | |
| created_at | string (date-time) | |
| finished_at | string | null (date-time) | |
| cancelled_at | string | null (date-time) | |
| win_amount | string | null | Total paid, for game providers that settle the series in one call |
/v1/bonus-campaignsSignedPlace a bonus campaign for your players; idempotent on reference
| Field | Type | Description |
|---|---|---|
| typerequired | BonusCampaignType | |
| namerequired | string | Shown to the player in the game |
| currencyrequired | string | ISO 4217; the game provider may take bonuses in some currencies only |
| game_idsrequired | string[] | |
| player_idsrequired | string[] | |
| valid_from | string (date-time) | Optional; the campaign starts now when absent |
| valid_untilrequired | string (date-time) | In the future, after valid_from, at most 90 days after it |
| triggersrequired | BonusTriggers | At least one trigger. Each trigger that fires hands the bonus over once more. |
| spin_count | integer | free_spins only, required there |
| bet_amount | string | free_spins and buy_bonus only, required there: stake of one spin, or the price of the bought bonus |
| prizes | BonusPrize[] | Drawn types only: exactly 16 for fortune_wheel and treasure_chest, 1 to 100 for golden_dragon; at least one weight above 0 |
| min_cashout_multiplier | string | free_spins on crash games: the least multiplier a spin cashes out at, 1.3 to below 100 |
| campaign_limit | string | Optional: the total the campaign pays before it ends |
| referencerequired | string | Your id for the campaign; a repeat answers the first campaign |
| Field | Type | Description |
|---|---|---|
| idrequired | string | |
| campaign_idrequired | string | What your wallet sees as free_spins_id on the spins this campaign hands over |
| typerequired | BonusCampaignType | |
| statusrequired | pending | active | ended | failed | ended: past valid_until; failed: the game provider refused it, see failure_reason |
| name | string | null | |
| currency | string | null | |
| game_idsrequired | string[] | |
| player_idsrequired | string[] | |
| valid_from | string | null (date-time) | |
| valid_until | string | null (date-time) | |
| triggersrequired | object | |
| spin_count | integer | null | |
| bet_amount | string | null | free_spins: stake of one spin |
| prizesrequired | BonusPrize[] | |
| min_cashout_multiplier | string | null | |
| campaign_limit | string | null | The total the campaign pays before it ends |
| reference | string | null | |
| failure_reason | string | null | Why the game provider refused it, when status is failed |
| created_at | string | null (date-time) |
/v1/bonus-campaignsSignedFind a campaign by your reference, or list the campaigns of one player
| Field | Type | Description |
|---|---|---|
| reference (query) | string | Your reference of the campaign; answers that one campaign |
| player_id (query) | string | Your player reference; answers the campaigns of that player |
/v1/bonus-campaigns/optionsSignedCampaign types and triggers the game provider of a game takes
| Field | Type | Description |
|---|---|---|
| game_id (query) | string | id from GET /v1/games |
| Field | Type | Description |
|---|---|---|
| game_idrequired | string | |
| typesrequired | BonusCampaignType[] | |
| triggersrequired | first_game_launch | bet_amount | spin_count | loss_amount[] |
/v1/bonus-campaigns/{id}SignedRead a campaign
| Field | Type | Description |
|---|---|---|
| id (path) | string | Campaign id |
| Field | Type | Description |
|---|---|---|
| idrequired | string | |
| campaign_idrequired | string | What your wallet sees as free_spins_id on the spins this campaign hands over |
| typerequired | BonusCampaignType | |
| statusrequired | pending | active | ended | failed | ended: past valid_until; failed: the game provider refused it, see failure_reason |
| name | string | null | |
| currency | string | null | |
| game_idsrequired | string[] | |
| player_idsrequired | string[] | |
| valid_from | string | null (date-time) | |
| valid_until | string | null (date-time) | |
| triggersrequired | object | |
| spin_count | integer | null | |
| bet_amount | string | null | free_spins: stake of one spin |
| prizesrequired | BonusPrize[] | |
| min_cashout_multiplier | string | null | |
| campaign_limit | string | null | The total the campaign pays before it ends |
| reference | string | null | |
| failure_reason | string | null | Why the game provider refused it, when status is failed |
| created_at | string | null (date-time) |
/v1/jackpotsSignedProgressive jackpots open on your games
| Field | Type | Description |
|---|---|---|
| updated_at | string (date-time) | |
| jackpots | object[] |
/v1/jackpots/winnersSignedJackpots your players won lately, newest first
| Field | Type | Description |
|---|---|---|
| winnersrequired | JackpotWinner[] |
Reconciliation
/v1/transactions/{id}SignedOne movement as our books hold it
| Field | Type | Description |
|---|---|---|
| id (path) | string | transaction_id sent to your wallet |
| Field | Type | Description |
|---|---|---|
| transaction_id | string | |
| type | bet | win | rollback | |
| status | completed | refused | failed | cancelled | pending | |
| round_id | string | |
| session_id | string | |
| player_id | string | |
| currency | string | |
| amount | string | Amount of the movement |
| reference_transaction_id | string | null | For a rollback: what it undid |
| operator_transaction_id | string | null | The id your wallet answered with |
| created_at | string (date-time) | |
| completed_at | string | null (date-time) |
/v1/rounds/{id}SignedEvery movement of one round, oldest first
| Field | Type | Description |
|---|---|---|
| id (path) | string | round_id sent to your wallet |
| Field | Type | Description |
|---|---|---|
| round_idrequired | string | |
| transactionsrequired | Transaction[] |
Schemas
Error
| Field | Type | Description |
|---|---|---|
| errorrequired | UNAUTHORIZED | VALIDATION_FAILED | NOT_FOUND | GAME_UNAVAILABLE | GAME_RESTRICTED_IN_COUNTRY | NO_DEMO | PLAYER_BLOCKED | FREE_SPINS_REFUSED | BONUS_CAMPAIGN_REFUSED | VALIDATION_RUN_REFUSED | ADDRESS_NOT_ALLOWED | RATE_LIMITED | UPSTREAM_UNAVAILABLE | |
| messagerequired | string | |
| retryablerequired | boolean | true: the outcome is unknown, repeat with the same ids |
| fieldsrequired | object[] | Filled on VALIDATION_FAILED only. field is the snake_case name of the body field or query parameter, or "body" when the body is not valid JSON. |
WalletValidationRun
| Field | Type | Description |
|---|---|---|
| id | string (uuid) | |
| status | string | queued, running, passed, failed or error |
| passed | integer | |
| warned | integer | |
| failed | integer | |
| skipped | integer | |
| total | integer | |
| error | string | Why the run could not be carried out |
| cases | object[] |
Ping
| Field | Type | Description |
|---|---|---|
| operator_coderequired | string | |
| key_idrequired | string | |
| server_timerequired | string (date-time) |
Game
| Field | Type | Description |
|---|---|---|
| idrequired | string (uuid) | Catalogue id of the title (UUID). What POST /v1/sessions takes. Not what wallet callbacks carry as game_id. |
| provider_coderequired | string | The provider |
| coderequired | string | The provider game code, for display and support. Wallet callbacks may carry a different code for the same title. |
| namerequired | string | |
| studio | string | null | Studio display name |
| studio_code | string | null | Deprecated Deprecated: repeats provider_code |
| typerequired | GameType | |
| rtp | number | null | Percentage, e.g. 96.5 |
| thumbnail_url | string | null | |
| images | object | |
| has_demorequired | boolean | |
| restricted_countriesrequired | string[] | |
| section_code | string | null | Pricing section the game belongs to, e.g. live |
GamesPage
| Field | Type | Description |
|---|---|---|
| gamesrequired | Game[] | |
| next_cursor | string | null | Absent or null on the last page |
Provider
| Field | Type | Description |
|---|---|---|
| provider_coderequired | string | |
| provider_namerequired | string | |
| studio_code | string | Deprecated Deprecated: repeats provider_code |
| name | string | Deprecated Deprecated: repeats provider_name |
| logo_url | string | null | |
| game_countrequired | integer | |
| images | object |
Rates
| Field | Type | Description |
|---|---|---|
| revenue_base | ggr | ngr | |
| market | rest_of_world | asia | |
| regulated | boolean | |
| tier_mode | whole | progressive | |
| providers | object[] |
Rate
| Field | Type | Description |
|---|---|---|
| tier_ordinal | integer | |
| percent | number | A percentage: 12.5 means 12.5% |
CreateSession
| Field | Type | Description |
|---|---|---|
| player_idrequired | string | Your reference, up to 120 characters |
| currencyrequired | string | ISO 4217, fixed for the session |
| game_idrequired | string | id from GET /v1/games |
| locale | string | en, ru-RU, … |
| lobby_url | string | |
| ttl_minutes | integer | |
| player_country | string | ISO 3166-1 alpha-2 |
| player_ip | string | The player's own address; the country is read off it |
| player_device | desktop | mobile | |
| deposit_url | string | |
| player_name | string | Nickname other players see in multiplayer games; never the real name |
CreateDemo
| Field | Type | Description |
|---|---|---|
| locale | string | |
| lobby_url | string | |
| player_country | string | |
| player_ip | string | |
| player_device | desktop | mobile |
Session
| Field | Type | Description |
|---|---|---|
| session_idrequired | string | |
| launch_urlrequired | string | Open the game here; never build it yourself |
| expires_atrequired | string (date-time) |
ClosedSession
| Field | Type | Description |
|---|---|---|
| session_id | string | |
| status | string | |
| closed_at | string (date-time) |
CreateFreeSpins
| Field | Type | Description |
|---|---|---|
| player_idrequired | string | |
| currencyrequired | string | |
| game_idsrequired | string[] | |
| quantityrequired | integer | |
| bet_amountrequired | string | Stake of one spin, from GET /v1/free-spins/bet-options |
| valid_untilrequired | string (date-time) | In the future, at most 90 days away |
| referencerequired | string | Your id for the grant; a repeat answers the first grant |
FreeSpins
| Field | Type | Description |
|---|---|---|
| id | string | |
| free_spins_id | string | What your wallet sees on the bets and wins of the series |
| status | active | finished | cancelled | |
| player_id | string | |
| currency | string | |
| game_ids | string[] | |
| quantity | integer | |
| bet_amount | string | Stake of one spin |
| valid_until | string (date-time) | |
| reference | string | |
| created_at | string (date-time) | |
| finished_at | string | null (date-time) | |
| cancelled_at | string | null (date-time) | |
| win_amount | string | null | Total paid, for game providers that settle the series in one call |
BonusTriggers
| Field | Type | Description |
|---|---|---|
| first_game_launch | boolean | The player opens one of the games for the first time in the campaign |
| bet_amount | object[] | |
| spin_count | object[] | |
| loss_amount | string | null | Net loss to reach, positive |
BonusPrize
| Field | Type | Description |
|---|---|---|
| kindrequired | money | free_spins | free_spins only on a fortune_wheel |
| amount | string | null | money: the amount paid |
| spins | integer | null | free_spins: how many |
| bet_amount | string | null | free_spins: stake of one spin |
| weightrequired | integer |
CreateBonusCampaign
| Field | Type | Description |
|---|---|---|
| typerequired | BonusCampaignType | |
| namerequired | string | Shown to the player in the game |
| currencyrequired | string | ISO 4217; the game provider may take bonuses in some currencies only |
| game_idsrequired | string[] | |
| player_idsrequired | string[] | |
| valid_from | string (date-time) | Optional; the campaign starts now when absent |
| valid_untilrequired | string (date-time) | In the future, after valid_from, at most 90 days after it |
| triggersrequired | BonusTriggers | At least one trigger. Each trigger that fires hands the bonus over once more. |
| spin_count | integer | free_spins only, required there |
| bet_amount | string | free_spins and buy_bonus only, required there: stake of one spin, or the price of the bought bonus |
| prizes | BonusPrize[] | Drawn types only: exactly 16 for fortune_wheel and treasure_chest, 1 to 100 for golden_dragon; at least one weight above 0 |
| min_cashout_multiplier | string | free_spins on crash games: the least multiplier a spin cashes out at, 1.3 to below 100 |
| campaign_limit | string | Optional: the total the campaign pays before it ends |
| referencerequired | string | Your id for the campaign; a repeat answers the first campaign |
BonusCampaign
| Field | Type | Description |
|---|---|---|
| idrequired | string | |
| campaign_idrequired | string | What your wallet sees as free_spins_id on the spins this campaign hands over |
| typerequired | BonusCampaignType | |
| statusrequired | pending | active | ended | failed | ended: past valid_until; failed: the game provider refused it, see failure_reason |
| name | string | null | |
| currency | string | null | |
| game_idsrequired | string[] | |
| player_idsrequired | string[] | |
| valid_from | string | null (date-time) | |
| valid_until | string | null (date-time) | |
| triggersrequired | object | |
| spin_count | integer | null | |
| bet_amount | string | null | free_spins: stake of one spin |
| prizesrequired | BonusPrize[] | |
| min_cashout_multiplier | string | null | |
| campaign_limit | string | null | The total the campaign pays before it ends |
| reference | string | null | |
| failure_reason | string | null | Why the game provider refused it, when status is failed |
| created_at | string | null (date-time) |
PlayerBonusCampaigns
| Field | Type | Description |
|---|---|---|
| campaignsrequired | BonusCampaign[] | Campaigns naming the player, newest first; empty when there are none |
BonusCampaignOptions
| Field | Type | Description |
|---|---|---|
| game_idrequired | string | |
| typesrequired | BonusCampaignType[] | |
| triggersrequired | first_game_launch | bet_amount | spin_count | loss_amount[] |
LiveTables
| Field | Type | Description |
|---|---|---|
| currencyrequired | string | |
| pendingrequired | boolean | The currency was asked for the first time just now; its tables arrive within seconds |
| tablesrequired | LiveTable[] |
LiveTable
| Field | Type | Description |
|---|---|---|
| game_idrequired | string | id from GET /v1/games |
| name | string | null | |
| openrequired | boolean | Whether the table takes bets now |
| new_table | boolean | |
| image | string | null | The provider's current picture of the table |
| dealer | string | null | |
| min_bet | number | null | Lowest bet in the currency asked for, a JSON number |
| max_bet | number | null | Highest bet in the currency asked for, a JSON number |
| players | integer | null | Players at the table now |
| seats | integer | null | Seats at a seated table (blackjack); null elsewhere |
| seats_available | integer | null | |
| results | Recent results in the provider's own shape, which differs by game type | |
| updated_at | string (date-time) |
Jackpots
| Field | Type | Description |
|---|---|---|
| updated_at | string (date-time) | |
| jackpots | object[] |
JackpotWinner
| Field | Type | Description |
|---|---|---|
| jackpot_tier_id | string | |
| player_id | string | |
| amount | number | Amount won, a JSON number (not a string) |
| currency | string | |
| won_at | string (date-time) | |
| win_type | progressive | community | fixed | |
| round_id | string | The provider's round id |
Transaction
| Field | Type | Description |
|---|---|---|
| transaction_id | string | |
| type | bet | win | rollback | |
| status | completed | refused | failed | cancelled | pending | |
| round_id | string | |
| session_id | string | |
| player_id | string | |
| currency | string | |
| amount | string | Amount of the movement |
| reference_transaction_id | string | null | For a rollback: what it undid |
| operator_transaction_id | string | null | The id your wallet answered with |
| created_at | string (date-time) | |
| completed_at | string | null (date-time) |
WalletRequest
| Field | Type | Description |
|---|---|---|
| actionrequired | getbalance | bet | win | rollback | |
| transaction_idrequired | string | Idempotency key, "<provider>:<id>". Empty string on getbalance |
| reference_transaction_id | string | null | rollback only: the transaction being undone |
| session_idrequired | string | |
| round_idrequired | string | Empty string on getbalance |
| player_idrequired | string | |
| game_id | string | null | Game provider code of the game the round is played on; null on getbalance. Not the catalogue id |
| currencyrequired | string | |
| amount | string | null | In the currency's own precision; null on getbalance |
| free_spins_id | string | Present only on bets and wins of a free-spin series; for spins a bonus campaign hands over it is the campaign_id |
WalletResponse
| Field | Type | Description |
|---|---|---|
| balancerequired | string | Balance after the movement. Must be a string: a number is read as an unreadable answer |
| transaction_id | string | Your own id for the movement |
| bonus_amount | string | bet and win only: the part that was bonus money |
WalletError
| Field | Type | Description |
|---|---|---|
| errorrequired | string | INSUFFICIENT_FUNDS, BET_LIMIT, PLAYER_BLOCKED, … |
| message | string |
InvoiceWebhook
| Field | Type | Description |
|---|---|---|
| event | invoice.issued | invoice.voided | |
| sent_at | string (date-time) | |
| invoice | object | Figures (revenue, bonus, gross, rate_percent, amount, adjustment_amount, tax_percent, tax_amount, total, ggr, band amounts) are JSON numbers. |
| document | object |
