Skip to content
  • There are no suggestions because the search field is empty.

What is the full workflow of handling cross bets (tickets with foreign selections)?

A cross bet is a combo ticket that contains both Oddin selections and foreign selections, i.e., selections not based on the Oddin.gg Odds Feed. Because OTS receives no data about foreign selections, the client has to report their result to OTS so the whole ticket can be resolved.

1. Placing a ticket with foreign selections

  • Send each foreign selection separately. Each one is its own TicketSelection with foreign = true and its own odds. Foreign legs must never be merged into one selection with their odds multiplied. The id of a foreign selection can be any string.
  • OBB selections are allowed. Foreign selections can be combined with Oddin selections, including OBB, under the same rules as an Oddin-only combo.
  • Always include a foreign event timestamp. Every ticket with foreign selections must contain lastForeignEventStartTime or lastForeignEventEndTime. The 30-day window counts from this timestamp (see point 4).
  • Max stake covers Oddin selections only. The TicketMaxStake response covers Oddin selections, including OBB. The foreign flag and the foreign timestamps must not be used in max-stake requests. The client gets limits for foreign legs from the other provider and combines them with ours on their side.

2. When to send ResolveForeignEventsInTicket

  • One request per ticket. The request is sent per ticket ID, not per selection, and one request covers all foreign legs on the ticket.
  • Wait until every foreign leg has finished. Sending a request when the first foreign leg settles, while others are still pending, can cause settlement errors.
  • Exception: the ticket is already lost. If any leg loses, whether it is an Oddin leg or a foreign leg, the client can send foreign_stake = 0 straight away, even if other foreign legs are still pending.
  • Settled Oddin legs do not close the ticket. The ticket stays Accepted in OTS until the foreign portion is resolved, even if all Oddin legs have settled. While any part is unsettled, a cashout can still be requested for the whole ticket.
  • Timestamp. Set timestamp to the time of the non-Oddin settlement.

3. Setting foreign_stake

There are only two possible values:

Outcome of the foreign portion foreign_stake
Lost (any foreign leg lost) 0
Won or voided (all foreign legs won, voided, or a mix of the two) greater than 0, e.g. 1

4. The 30-day window

  • The window starts from the timestamp sent. It counts from lastForeignEventStartTime or lastForeignEventEndTime, not from ticket placement. There is no limit on how far in the future the timestamp can be.
  • Long-running events need a later timestamp. For outrights and other long competitions, the client should send lastForeignEventEndTime. If no end time is available, they should send a timestamp close to the expected settlement, so the resolution arrives within 30 days of it.
  • A missed deadline means a voided ticket. If OTS does not receive a resolution within the window, it marks the ticket as voided.

5. P&L and resettlements

  • P&L covers Oddin selections only. Oddin's P&L is calculated on Oddin selections alone. The foreign result is needed only to determine how the whole cross bet is resulted.
  • A resolution is final. Once sent, it cannot be updated, and a second request for the same ticket is rejected.
  • Foreign resettlements are not supported. If the other provider rolls back or resettles a market, the client takes no action in OTS. Any payout adjustment is handled entirely on their side.
  • A short wait helps. We recommend the client wait a short period before sending the foreign result to OTS so that most corrections from the other provider arrive before the result becomes final.

6. Integration environment

The same rules apply in the Integration environment as in Production. Integration is the best place to catch issues such as duplicate requests before go-live.

7. Cashouts

A mixed bet slip remains in an "Accepted" (open) state until every single selection on the ticket has been settled. If the Oddin.gg selection settles first, the ticket is still considered open because the foreign selection is pending. As long as one part of the bet is unsettled, a cashout can be validly requested for the entire bet slip.