rejected | no_idempotency_key | no usable event_id, or the event is not a JSON object; not stored | fix and resend |
rejected | malformed | wrong field type, spec, missing kind, occurred_at, or round_id of a round kind, brand or player_ref over 255 bytes | fix, send with a new event_id |
rejected | op_unknown | kind is none of bet, win, settled, refund, deposit, withdrawal, login | fix, send with a new event_id |
rejected | no_player | player_ref missing or empty | fix, send with a new event_id |
rejected | bad_amount | amount is not an exact decimal string of the currency (§5.3), or missing where it is required | fix, send with a new event_id |
rejected | no_brand | the connection carries several brands and brand is missing | add brand |
rejected | brand_unexpected | the connection carries one brand and brand is present | drop brand |
rejected | brand_unmapped | this brand is not registered for you | contact us; after we register it, resend with new event_ids |
rejected | operator_inactive | the brand is not active in GA | contact us |
rejected | panic | processing failed on our side | send us the event_id |
skipped | currency_unknown | currency is missing or not in Appendix C | use a listed code, or ask us to add one |
skipped | zero_amount | a bet or settled of zero | none |
skipped | game_denied, game_not_allowed | the game is outside the promotion rules of the brand | none |
skipped | below_min_bet | the bet is below the brand’s minimum for promotions | none |
skipped | game_unknown | your catalogue holds games, and this bet or settled names none of its active ones (§8.1) | add the game to your catalogue; later events of it count |
skipped | round_refunded | the round was already refunded | none |
duplicate | any or none | already decided; a reason here, if present, is not a new verdict | none |