Integration Guide · 2026

Casino API security: signatures, allowlists and idempotency explained

A casino API moves money on every spin. Security here is less about firewalls and more about three questions: is this request genuine, is it harmless if it arrives twice, and can every balance change be traced afterwards? These are the controls to agree with your provider before the first real bet.

The short version

  • Sign every request in both directions and reject anything that fails the check.
  • Allowlist server IPs on both sides; wallet endpoints are never open to the internet.
  • Make every wallet call idempotent on the transaction ID.
  • Keep session tokens short-lived and bound to one player and one game.
  • Log every request and response; you will need them in a dispute.

What a signed request proves

A signature is a hash of the request body and a timestamp, made with a secret only you and the provider hold. The receiving side recomputes it; if the two values differ, the request was forged or altered and is rejected. The timestamp matters too: accept requests only within a short window, and a captured request cannot be replayed an hour later.

At IGP every call through the casino API carries a hash so the server can prove it came from you. Ask for the same protection on the callbacks that reach your wallet, and test both directions, not just the one you send.

IP allowlisting

Your wallet endpoint is where money moves, so it should answer only the provider’s servers. Agree fixed outbound IPs on both sides, keep separate lists for staging and production, and treat any change to the list as a change request, not a quick fix.

Idempotency: the control that protects balances

Networks time out. When a provider does not get your answer in time, it sends the same debit or credit again. If your wallet treats the retry as a new transaction, the player pays twice or is paid twice.

The fix is simple and non-negotiable: store every transaction ID, and when one arrives again, return the original response without moving the balance. Rollbacks must reference the transaction they reverse. Our casino API integration checklist has the tests for all three cases.

Session tokens and game launch

A game session starts with a token your platform issues at launch. Bind it to one player, one game and one currency, give it a short life, and check it on the first wallet call. Do not put personal data in launch URLs; a player ID and a token are enough.

Control What it stops Who owns it
Request signature Forged or altered calls Operator and provider
Timestamp window Replayed requests Operator and provider
IP allowlist Calls from unknown servers Operator and provider
Idempotent transaction IDs Double debits and credits on retry Operator wallet
Short-lived session tokens Hijacked or reused game sessions Operator platform
TLS on every call Interception in transit Operator and provider
Audit logs Disputes you cannot prove either way Operator and provider

Before go-live

  • Send a request with a wrong signature and an expired timestamp; both must be rejected.
  • Call the wallet from an IP that is not on the list; it must be refused.
  • Send the same debit twice and the same credit twice; the balance must move once each.
  • Launch a game with an expired token; it must not open a real-money session.
  • Pick a random round from yesterday and trace it end to end in your logs.

Frequently asked questions

No. TLS protects data in transit, but it does not prove who sent a request or stop a valid request from being sent twice. You also need signed requests, a timestamp window, IP allowlisting and idempotent wallet calls.

If your wallet is idempotent on the transaction ID, nothing: the second call returns the original result and the balance moves once. If it is not, the player is debited or credited twice, one of the classic money-losing bugs in casino integrations.

Only what the game needs to run: a player ID, a session token, currency, language and jurisdiction. Names, emails, addresses and payment details stay on your platform.

On a schedule agreed with your provider, and immediately after staff changes or any suspected leak. Support two active secrets during a rotation so live traffic does not break.

One signed integration, 150+ providers

Signed requests, one wallet and one normalised transaction stream for 18,000+ games, with a sandbox to test every control above.

See the casino API →