Seamless Wallet Setup & Security
This guide will help you set up and configure Seamless Wallet integration with EvenBet Gaming.
What is Seamless Wallet?
In Seamless Wallet integrations, the EvenBet system does not store player funds. Your system remains the single source of truth for player balances. Whenever money needs to be withdrawn or deposited, our system makes a callback request to your server, and you handle the actual balance changes.
Prerequisites
Before you begin integration, the following configuration is required:
CALLBACK_URL
- The URL endpoint where EvenBet will send all transaction requests
- Provide this URL to us, and we'll configure it on our end
- Must be accessible via HTTPS
- Example:
https://your-domain.com/api/evenbet/wallet
SEAMLESS_KEY
- A secure key used to sign and verify all requests
- We provide this key to you during setup
- Must be different for test and production environments
- Keep this key secure and never expose it in client-side code
If your seamless key is compromised, immediately notify EvenBet support. For better security, we recommend periodic key rotations.
Communication Protocol
All communication between EvenBet and your system follows these rules:
Request Format
- Method: HTTP POST
- Content Type: JSON
- Authentication: Signature-based (see Security section below)
Response Format
- Content Type: JSON
- Required fields: Vary by request type (see individual API references)
- Error handling: Return appropriate error codes (see Error Reference)
Security
All requests are secured using signature-based authentication to ensure data integrity and prevent unauthorized access.
Request Signature
Every request from EvenBet includes a signature in the HTTP header that you must validate.
Header name: sign
How the signature is generated:
- The complete JSON request body is converted to a string
- Your
SEAMLESS_KEYis appended to this string - SHA256 hash is applied to the combined string
- The resulting hash is sent in the
signheader
Signature Validation Example (PHP)
<?php
// Step 1: Get the incoming request data
$jsonMessage = file_get_contents('php://input'); // Raw JSON string
$sign = $_SERVER['HTTP_SIGN']; // Signature from header
$SEAMLESS_KEY = 'your_seamless_key_here'; // Your seamless key
// Step 2: Calculate expected signature
$expectedSign = hash('sha256', $jsonMessage . $SEAMLESS_KEY);
// Step 3: Validate signature
if ($sign !== $expectedSign) {
// Invalid signature - return error
http_response_code(200);
header('Content-Type: application/json');
echo json_encode([
'errorCode' => 1,
'errorDescription' => 'Invalid signature'
]);
exit;
}
// Step 4: If valid, parse and process the request
$request = json_decode($jsonMessage, true);
// ... continue with your business logic
?>
Signature Validation Example (Node.js)
const crypto = require('crypto');
function validateSignature(req, SEAMLESS_KEY) {
// Get the raw body and signature
const jsonMessage = JSON.stringify(req.body);
const receivedSign = req.headers['sign'];
// Calculate expected signature
const expectedSign = crypto
.createHash('sha256')
.update(jsonMessage + SEAMLESS_KEY)
.digest('hex');
// Validate
if (receivedSign !== expectedSign) {
return false;
}
return true;
}
// Usage in Express.js
app.post('/api/evenbet/wallet', (req, res) => {
if (!validateSignature(req, process.env.SEAMLESS_KEY)) {
return res.json({
errorCode: 1,
errorDescription: 'Invalid signature'
});
}
// Continue processing...
});
- The signature is calculated using the exact raw JSON string as received
- Do not parse the JSON before validating the signature
- The
SEAMLESS_KEYis not sent in the request - only you and EvenBet know it - Different
SEAMLESS_KEYvalues should be used for test and production environments
IP Whitelisting
For production environments, IP whitelisting is required for both sides:
EvenBet side:
- Our specialists will configure IP whitelisting on our servers
- Only requests from your whitelisted IPs will be accepted
Your side:
- You must whitelist EvenBet's IP addresses
- Only accept requests from EvenBet's IPs
- We will provide you with the IP addresses to whitelist
To request IP whitelist changes:
- Contact your EvenBet account manager
- Provide your server IP addresses
IP whitelisting is not required for test/staging environments, but is mandatory for production.
Testing Your Integration
Manual Testing Tool
EvenBet provides a manual testing tool to verify your integration implementation:
Test Tool URL: https://tests.evenbetgaming.com/seamless/
Use this tool to:
- Verify your signature implementation
- Test request/response formats
- Simulate different transaction scenarios
- Debug integration issues
Thoroughly test your integration in the staging environment before going live. Test all transaction types and error scenarios.
Automated Testing Suite
Before going live, you must pass our comprehensive automated test suite. This includes 35+ automated tests covering all API methods and edge cases.
Access to automated tests:
- Login credentials will be provided by your EvenBet account manager after initial setup is complete
- Tests must be successfully completed before production launch
- The automated test suite validates signature implementation, error handling, idempotency, and all transaction flows
Contact your account manager for automated test access credentials when you're ready for final validation.
Integration Checklist
Before going live, ensure you have completed the following:
Essential
- Provided
CALLBACK_URLto EvenBet - Provided IP whitelist to EvenBet
- Implemented signature validation on your server
- Configured EvenBet IP whitelisting for production
- Tested integration using manual test tool: https://tests.evenbetgaming.com/seamless/
- Passed all automated tests (credentials provided by EvenBet account manager)
Recommended
- Implemented proper error handling
- Implemented idempotency checks (prevent duplicate transactions)
- Set up monitoring and logging for all requests
- Documented your integration for your team
What's Next?
Now that your integration is set up and tested, learn how the transaction flow works:
- Seamless Wallet Transaction Flow - Understand when each API is called and see complete transaction scenarios
- API References:
- Balance Request - Check player balance
- Withdrawal Request - Debit funds from player
- Deposit Request - Credit funds to player
- Rollback Request - Reverse a transaction
- Error Reference - Handle errors properly
Support
If you encounter any issues during integration:
- Contact your EvenBet account manager
- Use the testing tool to debug specific issues
- Review the Seamless Wallet Transaction Flow for common scenarios