How can I integrate OxaPay into my online casino or iGaming platform?

4 min. readlast update: 05.09.2025

Crypto casinos and gaming platforms often let players deposit funds via a single address. Typically, you’ll assign each user a crypto deposit address through OxaPay and credit their account when payments arrive. Here’s the flow:

  1. Generate a player deposit address: Use the API to create a static crypto address for the player’s account (you can do this when the user requests a deposit for the first time). This is done via the Generate Static Address endpoint, which gives you a permanent deposit address (e.g. a BTC or ETH address) tied to that player. The key point here is that the address remains associated with that player for reuse over time.


  2. Display the address to the player: Assign the address to the player using the metadata you prefer (e.g. order ID). Then show the crypto address (and a QR code) in the player’s wallet/deposit section of your site. The player can copy the address or scan the QR code to send funds from their personal crypto wallet. 


  3. Player sends the crypto: The player transfers the desired amount of cryptocurrency to the provided address. There is no need for the player to notify you – OxaPay automatically detects any incoming deposits. The status for that payment will move to “paying” as the transaction is seen on the network.


  4. Receive the callback: OxaPay will send a webhook callback to your platform’s backend with the payment details for that deposit address as soon as the transaction is confirmed. The callback JSON includes information like the amount received, currency, and status (e.g. “paid” when fully confirmed).


  5. Verify and credit the account: Your server should validate the HMAC signature on the callback (using your API key) to ensure it’s authentic. When the status is paid (meaning the crypto was received in full and confirmed), update the player’s balance in your database to credit the deposit. Now the funds are available in the player’s in-game account.


  6. Enable gameplay with the funds: Once credited, the player will see their new crypto balance on the platform and can use it for betting, purchases, or gameplay immediately. (If the payment was not confirmed, handle that according to your policy)


💸 Withdrawals (Payouts to Players)

  1. Enable crypto withdrawals in your platform
    Let players request a withdrawal by submitting their wallet address and desired coin (e.g. USDT on Tron).

  2. Use the Payout API to send funds
    When a withdrawal is approved:

    • Call the Create Payout endpoint

    • Include the player's wallet address, the coin, amount, and your unique payout API key

    • Optionally, set a webhook (callback_url) to receive payout status updates

  3. Verify payout status via webhook or API
    OxaPay will notify you when the payout status changes:

    • Verify the webhook's HMAC using your Payout API Key (this is different from your Merchant Key)

    • Update the withdrawal status in your system accordingly

  4. Notify the player
    Once the payout status is "paid", show the confirmation in their account or send an email.


✅ Best Practices:

  • Always verify HMAC for both deposit and payout webhooks

  • If needed, track transactions using your own external_id or order_id

  • Ensure clear UI/UX for showing deposit status and withdrawal progress


Using static addresses is convenient for recurring deposits because the same address can be reused by the player multiple times. OxaPay will track all payments to that address and send you updates for each transaction. This is ideal for platforms where users deposit frequently, as it simplifies the process.

Note: To ensure flawless delivery of webhook callbacks, it's important to whitelist OxaPay's IP addresses on your server or firewall. You can contact our support team via your dashboard or livechat to receive these IPs.

Was this article helpful?