BetSolutions Transfer Wallet API

BetSolutions-managed wallet operations for transfer mode integration

OpenAPI Specification

betsolutions-transfer-wallet-api-openapi.yml Raw ↑
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.