# Outcomes and your obligations

## 7.1 Verdicts

Every event gets exactly one verdict.

| Verdict | Meaning |
| :--- | :--- |
| `accepted` | stored and counted in the promotions of its brand |
| `skipped` + `reason` | stored; set aside by the promotion rules of the brand |
| `rejected` + `reason` | stored; not counted — the event breaks this contract |
| `duplicate` | this `event_id` was already decided; nothing happens |
| undecided | not stored; webhook `503`, the broker message stays unread or unacknowledged, and it is delivered again |

**A decided event is final.** A resend answers `duplicate` whatever the first verdict was. To correct
a rejected event, fix it and send it with a **new** `event_id`. Every reason and what to do about it
is in Appendix A.

The webhook returns verdicts in its answer. Kafka and RabbitMQ return none: during onboarding and on
request we send you the counts and the refused events of your feed.

## 7.2 Your obligations

1. **Every money operation of a round is its own event**: `bet`, `win` and `refund` as they happen.
2. **Exactly one `settled` per settled round**, with `amount` equal to the sum of the round's bets.
3. **A resend carries the same `event_id`.**
4. **The feed carries only the games that run through you.** A game the brand also receives through
   GA or another provider must not be in your feed: one bet reported twice is counted twice, and
   there is no common id to catch it.
5. **`brand` is the code registered for you in GA.**
6. **`game.id` is an id from the catalogue you send us** (§8.1).

We check them with you before production (§10.3).
