Integration
Five steps, and one of them is a script tag.
The work on your side is the wallet contract — four operations we call on your platform. Everything else is configuration in the backoffice.
On your page
This is the whole embed.
Not a simplified version of it. The same host, the same path, the same initialiser the widget exposes.
<!-- Anima Sport — the whole sportsbook, one script -->
<div id="sportsbook-root"></div>
<script src="https://www.animasport.online/assets/animasb.js"></script>
<script>
window.initSportsbookApp({
skinId: 'your-skin', // the brand, as configured in the backoffice
partner: 'your-skin',
service: 'YOUR_SERVICE_KEY',
token: PLAYER_SESSION_TOKEN, // issued by your platform
uid: PLAYER_USERNAME
});
</script>The widget is one file
JavaScript and CSS in a single bundle, served with revalidation rather than a long cache, so a fix reaches every operator’s players on their next page load.
It runs on your domain
The widget mounts inside your page, not in an iframe. It calls the platform with absolute URLs, so it behaves the same wherever it is embedded.
Prices arrive over a socket
Odds changes are pushed, not polled. The event list, the match view and the betslip all move together, and a price that moved between opening the betslip and confirming is shown before the bet is sent.
The player is told what happened
Accepted, refused, held for a trader, countered with different odds, or rejected because the session expired — each of those reaches the player as a message, not as a coupon that quietly disappears.
Getting there
From nothing to a live brand.
Steps one, two and five happen in the backoffice. Step three is the only development work.
- 1
Create the brand
An organisation and a skin in the backoffice, with the currencies it trades in, the sports it carries and the wallet service the engine should call.
- 2
Register your domains
The origins allowed to load the widget, entered against the skin. Saving them refreshes the engine’s allowed origins immediately — a new site works without a restart or a release.
- 3
Implement the wallet contract
Four operations the engine calls on your platform: authenticate a session, read a balance, debit a stake, credit a settlement. Every call is logged per coupon and retried automatically when it fails.
- 4
Drop in the script
One tag on the page and one call to initialise it with the player’s session. The CSS travels inside the bundle, so there is nothing else to load and nothing to build on your side.
- 5
Style it
Per-skin CSS from the backoffice, served to the widget at runtime. Colours, fonts and spacing change without a release on either side.
The contract
Four operations, on your side.
The engine calls your platform for anything involving a player’s money. It never holds a balance of its own.
- Authenticate
- Validate a player session token and return the account it belongs to.
- Balance
- Current balance and currency for that account.
- Debit
- Take the stake when a coupon is accepted. Idempotent on the coupon reference.
- Credit
- Pay a settlement or a cashout. Retried on failure, resendable by hand.
We will do the first one with you.
A sandbox brand, your wallet endpoints, and someone on a call while you wire it up.
Get in touch