BetSolutions Transfer Wallet API
BetSolutions-managed wallet operations for transfer mode integration
BetSolutions-managed wallet operations for transfer mode integration
openapi: 3.0.3
info:
title: BetSolutions Wallet Player Transfer Wallet API
description: Two-mode wallet integration for casino operators. Transfer mode provides deposit, withdraw, and balance operations managed by BetSolutions. Seamless mode enables operator-side wallet management where BetSolutions calls the operator's server for bet, win, cancel, and balance operations.
version: 1.0.0
contact:
url: https://betsolutions.com
x-generated-from: documentation
servers:
- url: https://api.betsolutions.com/v1
description: BetSolutions API v1
- url: https://api-staging.betsolutions.com/v1
description: BetSolutions API Staging
security:
- sha256Auth: []
tags:
- name: Transfer Wallet
description: BetSolutions-managed wallet operations for transfer mode integration
paths:
/wallet/auth:
get:
operationId: authenticatePlayer
summary: BetSolutions Authenticate Player
description: Authenticate a player by redirecting to the BetSolutions auth endpoint. Generates a private token from a public token for API communications.
tags:
- Transfer Wallet
parameters:
- name: merchantId
in: query
required: true
description: The merchant's unique identifier.
schema:
type: string
example: merchant-001
- name: token
in: query
required: true
description: The public player token to exchange for a private token.
schema:
type: string
example: pub-token-abc123
- name: hash
in: query
required: true
description: SHA-256 hash of concatenated parameters with merchant secret key.
schema:
type: string
example: a1b2c3d4e5f6...
responses:
'200':
description: Successful authentication returning private token.
content:
application/json:
schema:
$ref: '#/components/schemas/AuthResponse'
examples:
AuthenticatePlayer200Example:
summary: Default authenticatePlayer 200 response
x-microcks-default: true
value:
success: true
token: priv-token-xyz789
playerId: player-500123
'400':
description: Invalid request parameters or hash.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Authentication failed - invalid merchant credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/wallet/deposit:
post:
operationId: depositFunds
summary: BetSolutions Deposit Funds
description: 'Transfer mode: Deposit funds to a player''s casino account. Called by the operator to credit player funds for game play.'
tags:
- Transfer Wallet
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DepositRequest'
examples:
DepositFundsRequestExample:
summary: Default depositFunds request
x-microcks-default: true
value:
merchantId: merchant-001
playerId: player-500123
amount: 50.0
currency: USD
transactionId: txn-abc123
hash: a1b2c3d4...
responses:
'200':
description: Successful deposit transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/WalletTransactionResponse'
examples:
DepositFunds200Example:
summary: Default depositFunds 200 response
x-microcks-default: true
value:
success: true
transactionId: txn-abc123
balance: 150.0
currency: USD
'400':
description: Invalid request or duplicate transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/wallet/withdraw:
post:
operationId: withdrawFunds
summary: BetSolutions Withdraw Funds
description: 'Transfer mode: Withdraw funds from a player''s casino account. Called by the operator to debit player funds.'
tags:
- Transfer Wallet
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawRequest'
examples:
WithdrawFundsRequestExample:
summary: Default withdrawFunds request
x-microcks-default: true
value:
merchantId: merchant-001
playerId: player-500123
amount: 25.0
currency: USD
transactionId: txn-def456
hash: b2c3d4e5...
responses:
'200':
description: Successful withdrawal transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/WalletTransactionResponse'
examples:
WithdrawFunds200Example:
summary: Default withdrawFunds 200 response
x-microcks-default: true
value:
success: true
transactionId: txn-def456
balance: 125.0
currency: USD
'400':
description: Insufficient funds or invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/wallet/balance:
post:
operationId: getBalance
summary: BetSolutions Get Player Balance
description: Retrieve a player's current wallet balance. Available in both transfer and seamless integration modes.
tags:
- Transfer Wallet
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceRequest'
examples:
GetBalanceRequestExample:
summary: Default getBalance request
x-microcks-default: true
value:
merchantId: merchant-001
playerId: player-500123
hash: c3d4e5f6...
responses:
'200':
description: Successful balance retrieval.
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceResponse'
examples:
GetBalance200Example:
summary: Default getBalance 200 response
x-microcks-default: true
value:
success: true
playerId: player-500123
balance: 125.0
currency: USD
'404':
description: Player not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
AuthResponse:
title: AuthResponse
type: object
description: Authentication response with private player token.
properties:
success:
type: boolean
description: Whether authentication succeeded.
example: true
token:
type: string
description: Private player token for subsequent API calls.
example: priv-token-xyz789
playerId:
type: string
description: Unique player identifier.
example: player-500123
WalletTransactionResponse:
title: WalletTransactionResponse
type: object
description: Response for wallet deposit or withdrawal operations.
properties:
success:
type: boolean
description: Whether the transaction succeeded.
example: true
transactionId:
type: string
description: The transaction identifier.
example: txn-abc123
balance:
type: number
format: double
description: Updated wallet balance after the transaction.
example: 150.0
currency:
type: string
description: ISO 4217 three-letter currency code.
example: USD
ErrorResponse:
title: ErrorResponse
type: object
description: Error response returned when a request fails.
properties:
success:
type: boolean
description: Always false for error responses.
example: false
errorCode:
type: integer
description: Numeric error code.
example: 400
errorMessage:
type: string
description: Human-readable error description.
example: Invalid hash signature.
BalanceResponse:
title: BalanceResponse
type: object
description: Player wallet balance response.
properties:
success:
type: boolean
description: Whether the request succeeded.
example: true
playerId:
type: string
description: The player's unique identifier.
example: player-500123
balance:
type: number
format: double
description: Current wallet balance.
example: 125.0
currency:
type: string
description: ISO 4217 three-letter currency code.
example: USD
WithdrawRequest:
title: WithdrawRequest
type: object
description: Request body for withdrawing funds from a player's wallet.
required:
- merchantId
- playerId
- amount
- currency
- transactionId
- hash
properties:
merchantId:
type: string
description: The merchant's unique identifier.
example: merchant-001
playerId:
type: string
description: The player's unique identifier.
example: player-500123
amount:
type: number
format: double
description: Amount to withdraw in the player's currency.
example: 25.0
currency:
type: string
description: ISO 4217 three-letter currency code.
example: USD
transactionId:
type: string
description: Unique transaction identifier to prevent duplicate processing.
example: txn-def456
hash:
type: string
description: SHA-256 hash for request authentication.
example: b2c3d4e5...
DepositRequest:
title: DepositRequest
type: object
description: Request body for depositing funds to a player's wallet.
required:
- merchantId
- playerId
- amount
- currency
- transactionId
- hash
properties:
merchantId:
type: string
description: The merchant's unique identifier.
example: merchant-001
playerId:
type: string
description: The player's unique identifier.
example: player-500123
amount:
type: number
format: double
description: Amount to deposit in the player's currency.
example: 50.0
currency:
type: string
description: ISO 4217 three-letter currency code.
example: USD
transactionId:
type: string
description: Unique transaction identifier to prevent duplicate processing.
example: txn-abc123
hash:
type: string
description: SHA-256 hash for request authentication.
example: a1b2c3d4...
BalanceRequest:
title: BalanceRequest
type: object
description: Request body for retrieving a player's wallet balance.
required:
- merchantId
- playerId
- hash
properties:
merchantId:
type: string
description: The merchant's unique identifier.
example: merchant-001
playerId:
type: string
description: The player's unique identifier.
example: player-500123
hash:
type: string
description: SHA-256 hash for request authentication.
example: c3d4e5f6...
securitySchemes:
sha256Auth:
type: apiKey
in: query
name: hash
description: SHA-256 hash of concatenated request parameters using pipe (|) separator and merchant secret key for request signing.