Onboard players for gambling
Onboard players for licensed sportsbooks and iGaming with identity verification, jurisdiction checks, and real-time payouts.
Gambling operators face strict regulatory requirements: verify player identity before first deposit, enforce age and jurisdiction rules, and process withdrawals with AML monitoring. frameOS provides KYC, age verification, geocompliance, and instant payouts — plus Charge Intents with 3D Secure and Sonar for deposit security and bonus abuse prevention.
Use this guide if you're building a gambling platform where:
- Players must verify identity before first deposit.
- You enforce age restrictions and state-by-state geofencing for licensed operators.
- You need issuer-aware routing, 3DS step-up for risky cards, and network tokens.
- Players receive instant push-to-debit withdrawals with AML monitoring and configurable limits.
- You want velocity checks, shared block lists, and bonus abuse prevention via Sonar.
We recommend this configuration for licensed sportsbooks and iGaming. Compose the flow with the API, use the iOS or Android SDK, or build with Frame.js for web.
FrameOS modules
| Module | Purpose |
|---|---|
| KYC + Onboarding Sessions | Player identity verification before first deposit |
| Age Verification | Jurisdiction and age checks; configurable play limits |
| Geocompliance | State-by-state geofencing for licensed sportsbooks & iGaming |
| Charge Intents + 3D Secure | Issuer-aware routing, network tokens, 3DS step-up for risky cards |
| Payouts | Push-to-debit instant withdrawals with AML monitoring and limits |
| Sonar | Velocity checks, shared block lists, bonus abuse prevention |
Before you begin
Sign up at the Frame Developer Portal and obtain your sandbox API key. Geocompliance requires Frame.js or the mobile SDK initialized — location is captured via Sonar.
Essential tasks
1. Create a player account
Create an individual account with capabilities for identity verification, geocompliance, age checks, and payouts:
curl --request POST \
--url https://api.framepayments.com/v1/accounts \
--header 'Authorization: Bearer sk_test_YOUR_SANDBOX_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"type": "individual",
"capabilities": [
"kyc",
"kyc_prefill",
"age_verification",
"geo_compliance",
"card_send",
"bank_account_send",
"card_receive",
"bank_account_receive"
],
"profile": {
"individual": {
"email": "player@example.com",
"name": {
"first_name": "Alex",
"last_name": "Player"
},
"phone": {
"number": "3107484186",
"country_code": "1"
}
}
}
}'
2. Onboarding and verification
Create an onboarding session and redirect the player. Frame collects KYC, age verification, and payment methods. Geocompliance runs at charge time — ensure Frame.js or the mobile SDK is initialized so location is captured via Sonar.
3. Deposits with Charge Intents and 3DS
Use Charge Intents for deposits. Include sonar_session_id from Frame.js to enable fraud checks. Frame triggers 3D Secure automatically when required for liability shift. See accept a payment for the full flow.
4. Instant payouts
Enable card_receive and bank_account_receive for withdrawals. Configure payout limits and AML monitoring in the Frame Dashboard. See Payouts for instant push-to-debit.
5. Fraud prevention
Use Sonar for velocity checks, shared block lists, and bonus abuse prevention. Include the Sonar session ID with every charge intent.
Resources
Accounts · Onboarding Sessions · KYC · Age Verification · Geocompliance · Charge Intents · 3D Secure · Payouts · Sonar · Frame.js · SDKs