swagger: '2.0'
info:
  version: 1.0.0
  title: Pinnacle888 API - Bets API Reference
  description:  |
    All about bets, place bets, get your bet history or current bet status.
  
    # Authentication 
    
    API uses HTTP Basic access authentication.You need to send Authorization HTTP Request header:  
    
    `Authorization: Basic <Base64 value of UTF-8 encoded "username:password">`
    
    Example:
    
    `Authorization: Basic U03MyOT23YbzMDc6d3c3O1DQ1`
    
  x-logo:
    url: ''
host: api.pinnacle888.com
schemes:
  - https
security:
  - basicAuth: []
paths:
  /v2/bets/place:
    post:
      tags:
        - Place Bets
      summary: Place straight bet  - v2
      description: | 
           Place straight bet (SPREAD, MONEYLINE, TOTAL_POINTS, TEAM_TOTAL_POINTS).
      
           Please note when the status is PENDING_ACCEPTANCE and if the live delay was applied, the response will not have betId. Client would have to call /bets by uniqueRequestId to check the status if the bet was ACCEPTED.
           
           For more details please see [How to place a bet on live events?](https://github.com/pinny888/pinny888.github.io/blob/main/FAQs.md#how-to-place-a-bet-on-live-events)
      operationId: Bets_StraightV2
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: ''
          required: true
          schema:
            $ref: '#/definitions/PlaceBetRequestV2'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PlaceBetResponseV2'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v2/bets/parlay:
    post:
      tags:
        - Place Bets
      summary: Place parlay bet - v2
      operationId: Bets_ParlayV2
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: The Parlay request.
          required: true
          schema:
            $ref: '#/definitions/PlaceParlayBetRequest'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PlaceParlayBetResponseV2'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'			
  /v1/bets/teaser:
    post:
      tags:
        - Place Bets
      summary: Place teaser bet - v1
      operationId: Bets_Teaser
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: The PlaceTeaser request.
          required: true
          schema:
            $ref: '#/definitions/PlaceTeaserBetRequest'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PlaceTeaserBetResponse'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v2/bets/special:
    post:
      tags:
        - Place Bets
      summary: Place specials bet - v2
      operationId: Bets_SpecialV2
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: The SpecialBet request.
          required: true
          schema:
            $ref: '#/definitions/MultiBetRequest[SpecialBetRequest]'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/MultiBetResponse[SpecialBetResponse]'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v4/bets/place:
    post:
      tags:
        - Place Bets
      summary: Place straight bet  - v4
      description: | 
           Place straight bet (SPREAD, MONEYLINE, TOTAL_POINTS, TEAM_TOTAL_POINTS).
      
           Please note when the status is PENDING_ACCEPTANCE and if the live delay was applied, the response will not have betId. Client would have to call /bets by uniqueRequestId to check the status if the bet was ACCEPTED.
           
           For more details please see [How to place a bet on live events?](https://github.com/pinny888/pinny888.github.io/blob/main/FAQs.md#how-to-place-a-bet-on-live-events)
      operationId: Bets_StraightV4
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: ''
          required: true
          schema:
            $ref: '#/definitions/PlaceBetRequestV2'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PlaceBetResponseV4'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v4/bets/parlay:
    post:
      tags:
        - Place Bets
      summary: Place parlay bet - v4
      operationId: Bets_ParlayV4
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: The Parlay request.
          required: true
          schema:
            $ref: '#/definitions/PlaceParlayBetRequest'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PlaceParlayBetResponseV4'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v4/bets/teaser:
    post:
      tags:
        - Place Bets
      summary: Place teaser bet - v4
      operationId: Bets_TeaserV4
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: The PlaceTeaser request.
          required: true
          schema:
            $ref: '#/definitions/PlaceTeaserBetRequest'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/PlaceTeaserBetResponseV4'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v4/bets/special:
    post:
      tags:
        - Place Bets
      summary: Place specials bet - v4
      operationId: Bets_SpecialV4
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - in: body
          name: request
          description: The SpecialBet request.
          required: true
          schema:
            $ref: '#/definitions/MultiBetRequest[SpecialBetRequest]'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/MultiBetResponse[SpecialBetResponseV4]'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  /v3/bets:
    get:
      tags:
        - Get Bets
      summary: Get Bets - v3
      description: |
          Returns bets. 
          
          
          ### Get running bets by time range:
          ```
          https://api.pinnacle888.com/v3/bets?betlist=RUNNING&fromDate=2017-11-21T00:00:00Z&toDate=2017-11-29T00:00:00Z
          ```
          Running bets are queried by *placedAt* date time
          
          
          ### Get settled bets by time range:
            
          ```
          https://api.pinnacle888.com/v3/bets?betlist=SETTLED&fromDate=2015-12-28T00:00:00Z&toDate=2015-12-29T00:00:00Z
          ```
          Settled bets are queried by *settledAt* date time
          https://api.pinnacle888.com/v3/bets?betlist=SETTLED&fromDate=2017-11-20T00:00:00Z&toDate=2017-11-23T00:00:00Z
          
          
          ### Get settled cancelled bets by time range:
            
          ```
          https://api.pinnacle888.com/v3/bets?betList=SETTLED&fromDate=2018-03-01&toDate=2018-03-28&betStatuses=CANCELLED
          ```
          

          ### Get bets by bet ids:
          
          ```
          https://api.pinnacle888.com/v3/bets?betIds=775856112,775856113,775856114
          ```
          
          ### Get bets by uniqueRequestIds:
          
          ```
          https://api.pinnacle888.com/v3/bets?uniqueRequestIds=62335222-dae4-479a-8c05-46440ccdd3bb,42335222-dae4-479a-8c05-46440ccdd3bb
          ```
          
      operationId: Bets_GetBetsByTypeV3
      consumes: []
      produces:
        - application/json
      parameters:
        - name: betlist
          in: query
          description: 'Type of bet list to return. Not needed when betIds is submitted.'
          required: false
          type: string
          enum:
            - SETTLED
            - RUNNING
            - ALL
        - name: betStatuses
          in: query
          description: 'Type of bet statues to return. This works only in conjustion with betlist, as additional filter.'
          required: false
          type: array
          items:
            type: string
            enum:
            - WON
            - LOSE 
            - CANCELLED 
            - REFUNDED 
            - NOT_ACCEPTED 
            - ACCEPTED 
            - PENDING_ACCEPTANCE
          collectionFormat: csv
        - name: fromDate
          in: query
          description: |
            Start date of the requested period. Required when betlist parameter is submitted. Start date can be up to 30 days in the past. Expected format is ISO8601 - can be set to just date or date and time.
          required: false
          type: string
        - name: toDate
          in: query
          description: |
            End date of the requested period. Required when betlist parameter is submitted. Expected format is ISO8601 - can be set to just date or date and time.  toDate value is exclusive, meaning it cannot be equal to fromDate.
          required: false
          type: string
        - name: sortDir
          in: query
          description: 'Sort direction by postedAt/settledAt. Respected only when querying by date range.'
          required: false
          type: string
          enum:
            - ASC
            - DESC
          default: ASC
        - name: pageSize
          in: query
          description: 'Page size in case. Max is 1000. Respected only when querying by date range.'
          required: false
          type: integer
          default: 1000 
        - name: fromRecord
          in: query
          description: 'Starting record (inclusive) of the result. Respected only when querying by date range. To fetch next page set it to toRecord+1 '
          required: false
          type: integer
          default: 0  
        - name: betIds
          in: query
          description: 'A comma separated list of bet ids. When betids is submitted, no other parameter is necessary. Maximum is 100 ids. Works for all non settled bets and all bets settled in the last 30 days.'
          required: false
          type: array
          items:
            type: integer
            format: int64
          collectionFormat: csv
        - name: uniqueRequestIds
          in: query
          description: |
              A comma separated list of uniqueRequestIds to query earlier  placed straight bets. If specified, is treated with highest priority, all other parameters are ignored. Maximum is 10 ids. If client has bet id, preferred way is to use betIds query parameter to check the get the bets. You can use uniqueRequestIds when you do not  have bet id. That’s pretty much in just 2 cases\:
              
              1. When you bet on live event with live delay, place bet response in that case does not return bet id, so client can query bet status by uniqueRequestIds.
              2. In case of any network issues when client is not sure what happened with his place bet request. Empty response means that the bet was not placed. Please check [Deduplication section](https://www.pinnacle.com/de/api/manual#overview) for more details
              
              
              Note that there is a restriction: querying by uniqueRequestIds  is supported for straight and special bets and only up to 30 min from the moment the bet was place. 
          required: false
          type: array
          items:
            type: string
          collectionFormat: csv
        - name: betType
          in: query
          description: 'A comma separated list of bet types.'
          required: false
          type: array
          items:
            type: string
            enum:
            - SPREAD
            - MONEYLINE 
            - TOTAL_POINTS 
            - TEAM_TOTAL_POINTS 
            - SPECIAL 
            - PARLAY 
            - TEASER
            - MANUAL
          collectionFormat: csv          
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/GetBetsByTypeResponseV3'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
               
  /v3/bets/settled:
    get:
      tags:
        - Get Bets
      summary: Get Bets Settled - v3
      description: |
          Returns bets settled.
          
          
          ### Get settled bets settled by time range:
            
          ```
          https://api.pinnacle888.com/v3/bets/settled?fromDate=2015-12-28T00:00:00Z&toDate=2015-12-29T00:00:00Z
          ```
          
          
          ### Get bets settled by uniqueRequestIds:
          
          ```
          https://api.pinnacle888.com/v3/bets/settled?uniqueRequestIds=62335222-dae4-479a-8c05-46440ccdd3bb,42335222-dae4-479a-8c05-46440ccdd3bb
          ```
          
      operationId: Bets_GetBetsSettledV3
      consumes: []
      produces:
        - application/json
      parameters:
        - name: eventId
          in: query
          description: Event identification. Note that there is a restriction that querying by eventId is supported only up to 90 days from the moment the bet was settled.
          required: false
          type: integer
          format: int64
        - name: specialId
          in: query
          description: Id of the special.
          required: false
          type: integer
          format: int64
        - name: fromDate
          in: query
          description: |
            Start date of the requested period. Required when betlist parameter is submitted. Start date can be up to 30 days in the past. Expected format is ISO8601 - can be set to just date or date and time.
          required: false
          type: string
        - name: toDate
          in: query
          description: |
            End date of the requested period. Required when betlist parameter is submitted. Expected format is ISO8601 - can be set to just date or date and time.  toDate value is exclusive, meaning it cannot be equal to fromDate.
          required: false
          type: string
        - name: sortDir
          in: query
          description: 'Sort direction by postedAt/settledAt. Respected only when querying by date range.'
          required: false
          type: string
          enum:
            - ASC
            - DESC
          default: ASC
        - name: pageSize
          in: query
          description: 'Page size in case. Max is 1000. Respected only when querying by date range.'
          required: false
          type: integer
          default: 1000 
        - name: fromRecord
          in: query
          description: 'Starting record (inclusive) of the result. Respected only when querying by date range. To fetch next page set it to toRecord+1 '
          required: false
          type: integer
          default: 0  
        - name: uniqueRequestIds
          in: query
          description: |
              A comma separated list of uniqueRequestIds to query earlier  placed straight bets. If specified, is treated with highest priority, all other parameters are ignored. Maximum is 10 ids. If client has bet id, preferred way is to use betIds query parameter to check the get the bets. You can use uniqueRequestIds when you do not  have bet id. That’s pretty much in just 2 cases\:
              
              1. When you bet on live event with live delay, place bet response in that case does not return bet id, so client can query bet status by uniqueRequestIds.
              2. In case of any network issues when client is not sure what happened with his place bet request. Empty response means that the bet was not placed. Please check [Deduplication section](https://www.pinnacle.com/de/api/manual#overview) for more details
              
              
              Note that there is a restriction: querying by uniqueRequestIds  is supported only for straight bets and only up to 30 min from the moment the bet was place. 
          required: false
          type: array
          items:
            type: string
          collectionFormat: csv
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/GetBetsByTypeResponseV3'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
            
  /v1/regrades/wager-history:
    get:
      tags:
        - Get Bets
      summary: Get Regrades Wager History - v1
      description: |
          Returns historical data related to regrades wagers
          
          
          ### Get regrades wager history by time range:
            
          ```
          https://api.pinnacle888.com/v1/regrades/wager-history?fromDate=2024-04-01T00:00:00Z&toDate=2024-04-27T00:00:00Z
          ```
          
          
          ### Get regrades wager history by bet ids:
          
          ```
          https://api.pinnacle888.com/v1/regrades/wager-history?betIds=52454247
          ```
          
      operationId: Bets_GetRegradedWagerHistoryV1
      consumes: []
      produces:
        - application/json
      parameters:
        - name: betIds
          in: query
          description: 'A comma separated list of bet ids. When betIds is submitted, no other parameter is necessary. Maximum is 100 ids. Works for all bets settled in the last 30 days.'
          required: false
          type: array
          items:
            type: integer
            format: int64
          collectionFormat: csv
        - name: fromDate
          in: query
          description: |
            Start date of the requested period. Required when betIds parameter is not submitted. Start date can be up to 30 days in the past. Expected format is ISO8601 - can be set to just date or date and time.
          required: false
          type: string
        - name: toDate
          in: query
          description: |
            End date of the requested period. Required when betIds parameter is not submitted. Expected format is ISO8601 - can be set to just date or date and time. toDate value is exclusive, meaning it cannot be equal to fromDate.
            
          required: false
          type: string
        - name: sortDir
          in: query
          description: 'Sort direction by postedAt/settledAt. Respected only when querying by date range.'
          required: false
          type: string
          enum:
            - ASC
            - DESC
          default: ASC
        - name: pageSize
          in: query
          description: 'Page size in case. Max is 1000. Respected only when querying by date range.'
          required: false
          type: integer
          default: 1000 
        - name: fromRecord
          in: query
          description: 'Starting record (inclusive) of the result. Respected only when querying by date range. To fetch next page set it to toRecord+1'
          required: false
          type: integer
          default: 0  

      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/GetRegradedWagerHistoryResponseV1'
        '400':
          description: BadRequest
          schema:
            $ref: '#/definitions/ErrorResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
  
  /v1/bets/betting-status:
    get:
      tags:
        - Betting Status
      summary: Get Betting Status
      description: 'Returns current betting status. During maintenance windows betting could be disabled , you can call this operation to check the current betting status.'
      operationId: Bets_GetBettingStatus
      consumes: []
      produces:
        - application/json
      parameters: []
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/BettingStatusResponse'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/ErrorResponse'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/ErrorResponse'
        '500':
          description: InternalServerError
          schema:
            $ref: '#/definitions/ErrorResponseWithErrorRef'
securityDefinitions:
  basicAuth:
    type: basic
definitions:
  PlaceBetRequestV2:
    type: object
    properties:
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      uniqueRequestId:
        type: string
        format: uuid
        example: D5CC50E4-284D-4D50-8D49-429BDC4F2A48
        description: This is a Unique ID for PlaceBet requests. This is to support idempotent requests.
      acceptBetterLine:
        type: boolean
        example: true
        description: Whether or not to accept a bet when there is a line change in favor of the client.
      stake:
        type: number
        format: double
        example: 10.5
        description: amount in client’s currency.
      winRiskStake:
        type: string
        example: RISK
        description: Whether the stake amount is risk or win amount.
        enum:
          - WIN
          - RISK
      lineId:
        type: integer
        format: int64
        example: 420921914
        description: Line identification.
      altLineId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Alternate line identification.
      pitcher1MustStart:
        type: boolean
        description: 'Baseball only. Refers to the pitcher for Team1. This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'
      pitcher2MustStart:
        type: boolean
        description: 'Baseball only. Refers to the pitcher for Team2. This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'
      fillType:
        type: string
        description: |
            NORMAL - bet will be placed on specified stake.  
            FILLANDKILL - If the stake is over the max limit, bet will be placed on max limit, otherwise it will be placed on specified stake.  
            FILLMAXLIMIT - bet will be places on max limit, stake amount will be ignored. Please note that maximum limits can change at any moment, which may result in risking more than anticipated. This option is replacement of isMaxStakeBet from v1/bets/place'
        enum:
          - NORMAL
          - FILLANDKILL
          - FILLMAXLIMIT
        example: NORMAL
        default: NORMAL        
      sportId:
        type: integer
        format: int32
        example: 29
      eventId:
        type: integer
        format: int64
        example: 757504261
      periodNumber:
        type: integer
        format: int32
        example: 0
      betType:
        type: string
        example: MONEYLINE
        description: 'Bet type.'
        enum:
          - MONEYLINE
          - TEAM_TOTAL_POINTS
          - SPREAD
          - TOTAL_POINTS
      team:
        type: string
        example: TEAM1
        description: 'Team type.'
        enum:
          - TEAM1
          - TEAM2
          - DRAW
      side:
        type: string
        example: null
        x-nullable: true
        description: 'Side type.'
        enum:
          - OVER
          - UNDER
      handicap:
        type: number
        format: double
        example: 1.0
        description: This is optional parameter for SPREAD, TOTAL_POINTS and TEAM_TOTAL_POINTS bet types.          
    description: Request to place a bet.    
  ErrorResponse:
    type: object
    properties:
      code:
        type: string
        description: |
          INVALID_REQUEST_DATA  = Invalid request parameters (http status 400)  
          SELF_EXCLUSION = Client's account is self-excluded (http status 400)
          TERMS_AND_CONDITIONS_NOT_ACCEPTED = Terms and Condidtions has not been accepted (http status 400)
          INVALID_CREDENTIALS = Authorization failed, invalid credentials (http status 401)  
          INVALID_AUTHORIZATION_HEADER = HTTP Authorization header is missing (http status 401) 
          ACCOUNT_INACTIVE = Client's account is not active  (http status 403)  
          NO_API_ACCESS = Account not permitted to access the API  (http status 403) 
        enum:
          - INVALID_REQUEST_DATA
          - SELF_EXCLUSION
          - TERMS_AND_CONDITIONS_NOT_ACCEPTED
          - INVALID_CREDENTIALS
          - INVALID_AUTHORIZATION_HEADER
          - ACCOUNT_INACTIVE
          - NO_API_ACCESS
      message:
        type: string
  PlaceBetResponseV2:
    type: object
    properties:
      status:
        type: string
        example: ACCEPTED
        description: Status of the response.
        enum:
          - ACCEPTED
          - PENDING_ACCEPTANCE
          - PROCESSED_WITH_ERROR
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: |
          If Status is PROCESSED_WITH_ERROR, errorCode will be in the response. 
          
          ALL_BETTING_CLOSED = Betting is not allowed at this moment. This may happen during system maintenance,  
          ALL_LIVE_BETTING_CLOSED = Live betting is not allowed at this moment. This may happen during system maintenance,  
          ABOVE_EVENT_MAX = Bet cannot be placed because client exceeded allowed maximum of risk on a line,  
          ABOVE_MAX_BET_AMOUNT = Stake is above allowed maximum amount,   
          BELOW_MIN_BET_AMOUNT = Stake is below allowed minimum amount,  
          BLOCKED_BETTING = Betting is suspended for the client,  
          BLOCKED_CLIENT = Client is no longer active,   
          INSUFFICIENT_FUNDS = Bet is submitted by a client with insufficient funds,  
          INVALID_COUNTRY = Client country is not allowed for betting,  
          INVALID_EVENT = Invalid eventid,  
          INVALID_ODDS_FORMAT = If a bet was submitted with the odds format that is not allowed for the client,  
          LINE_CHANGED = Bet is submitted on a line that has changed,  
          LISTED_PITCHERS_SELECTION_ERROR = If bet was submitted with pitcher1MustStart and/or pitcher2MustStart parameters in Place Bet request with values that are not allowed,  
          OFFLINE_EVENT = Bet is submitted on a event that is offline or the submitted line is not offered at the moment due to points/handicap change or the submitted bet type is just not offered at the moment,  
          PAST_CUTOFFTIME = Bet is submitted on a game after the betting cutoff time,  
          RED_CARDS_CHANGED = Bet is submitted on a live soccer event with changed red card count,  
          SCORE_CHANGED = Bet is submitted on a live soccer event with changed score,             
          DUPLICATE_UNIQUE_REQUEST_ID = Request with the same uniqueRequestId was already processed. Please set the new value if you still want the request to be processed,  
          INCOMPLETE_CUSTOMER_BETTING_PROFILE = System configuration issue,  
          INVALID_CUSTOMER_PROFILE = System configuration issue,  
          LIMITS_CONFIGURATION_ISSUE = System configuration issue,  
          RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Client has reached his total loss limit,  
          RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Client has reached his total risk limit,  
          RESUBMIT_REQUEST = Unable to process the request but the request itself is valid. This happens more often on the live betting in situations when there is more than one place bet request at the same on the same line. When this happens, we don't keep the place bet request on the server until we know if we can accept or reject the bet, but instead we return the error. It's very likely that the line will change after that. To reduce a chance of getting RESUBMIT_REQUEST client can try to place a bet as fast as possible,  
          SYSTEM_ERROR_3 = Unexpected error,  
          LICENCE_RESTRICTION_LIVE_BETTING_BLOCKED - Live betting blocked due to licence restrictions,  
          INVALID_HANDICAP = Invalid handicap,  
          BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId.
        enum:
          - ALL_BETTING_CLOSED
          - ALL_LIVE_BETTING_CLOSED
          - ABOVE_EVENT_MAX
          - ABOVE_MAX_BET_AMOUNT
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_EVENT
          - INVALID_ODDS_FORMAT
          - LINE_CHANGED
          - LISTED_PITCHERS_SELECTION_ERROR
          - OFFLINE_EVENT
          - PAST_CUTOFFTIME
          - RED_CARDS_CHANGED
          - SCORE_CHANGED          
          - DUPLICATE_UNIQUE_REQUEST_ID
          - INCOMPLETE_CUSTOMER_BETTING_PROFILE
          - INVALID_CUSTOMER_PROFILE
          - LIMITS_CONFIGURATION_ISSUE
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
          - RESUBMIT_REQUEST
          - SYSTEM_ERROR_3
          - LICENCE_RESTRICTION_LIVE_BETTING_BLOCKED
          - INVALID_HANDICAP
          - BETTING_SUSPENDED
      uniqueRequestId:
        type: string
        example: D5CC50E4-284D-4D50-8D49-429BDC4F2A48
        description: Echo of the uniqueRequestId from the request.
      straightBet:
        $ref: '#/definitions/StraightBet'
    description: ''
  PlaceBetResponseV4:
    type: object
    properties:
      status:
        type: string
        example: ACCEPTED
        description: Status of the response.
        enum:
          - ACCEPTED
          - PENDING_ACCEPTANCE
          - PROCESSED_WITH_ERROR
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: |
          If Status is PROCESSED_WITH_ERROR, errorCode will be in the response. 
          
          ALL_BETTING_CLOSED = Betting is not allowed at this moment. This may happen during system maintenance,  
          ALL_LIVE_BETTING_CLOSED = Live betting is not allowed at this moment. This may happen during system maintenance,  
          ABOVE_EVENT_MAX = Bet cannot be placed because client exceeded allowed maximum of risk on a line,  
          ABOVE_MAX_BET_AMOUNT = Stake is above allowed maximum amount,   
          BELOW_MIN_BET_AMOUNT = Stake is below allowed minimum amount,  
          BLOCKED_BETTING = Betting is suspended for the client,  
          BLOCKED_CLIENT = Client is no longer active,   
          INSUFFICIENT_FUNDS = Bet is submitted by a client with insufficient funds,  
          INVALID_COUNTRY = Client country is not allowed for betting,  
          INVALID_EVENT = Invalid eventid,  
          INVALID_ODDS_FORMAT = If a bet was submitted with the odds format that is not allowed for the client,  
          LINE_CHANGED = Bet is submitted on a line that has changed,  
          LISTED_PITCHERS_SELECTION_ERROR = If bet was submitted with pitcher1MustStart and/or pitcher2MustStart parameters in Place Bet request with values that are not allowed,  
          OFFLINE_EVENT = Bet is submitted on a event that is offline or the submitted line is not offered at the moment due to points/handicap change or the submitted bet type is just not offered at the moment,  
          PAST_CUTOFFTIME = Bet is submitted on a game after the betting cutoff time,  
          RED_CARDS_CHANGED = Bet is submitted on a live soccer event with changed red card count,  
          SCORE_CHANGED = Bet is submitted on a live soccer event with changed score,             
          DUPLICATE_UNIQUE_REQUEST_ID = Request with the same uniqueRequestId was already processed. Please set the new value if you still want the request to be processed,  
          INCOMPLETE_CUSTOMER_BETTING_PROFILE = System configuration issue,  
          INVALID_CUSTOMER_PROFILE = System configuration issue,  
          LIMITS_CONFIGURATION_ISSUE = System configuration issue,  
          RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Client has reached his total loss limit,  
          RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Client has reached his total risk limit,  
          RESUBMIT_REQUEST = Unable to process the request but the request itself is valid. This happens more often on the live betting in situations when there is more than one place bet request at the same on the same line. When this happens, we don't keep the place bet request on the server until we know if we can accept or reject the bet, but instead we return the error. It's very likely that the line will change after that. To reduce a chance of getting RESUBMIT_REQUEST client can try to place a bet as fast as possible,  
          SYSTEM_ERROR_3 = Unexpected error,  
          LICENCE_RESTRICTION_LIVE_BETTING_BLOCKED - Live betting blocked due to licence restrictions,  
          INVALID_HANDICAP = Invalid handicap,  
          BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId.
        enum:
          - ALL_BETTING_CLOSED
          - ALL_LIVE_BETTING_CLOSED
          - ABOVE_EVENT_MAX
          - ABOVE_MAX_BET_AMOUNT
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_EVENT
          - INVALID_ODDS_FORMAT
          - LINE_CHANGED
          - LISTED_PITCHERS_SELECTION_ERROR
          - OFFLINE_EVENT
          - PAST_CUTOFFTIME
          - RED_CARDS_CHANGED
          - SCORE_CHANGED          
          - DUPLICATE_UNIQUE_REQUEST_ID
          - INCOMPLETE_CUSTOMER_BETTING_PROFILE
          - INVALID_CUSTOMER_PROFILE
          - LIMITS_CONFIGURATION_ISSUE
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
          - RESUBMIT_REQUEST
          - SYSTEM_ERROR_3
          - LICENCE_RESTRICTION_LIVE_BETTING_BLOCKED
          - INVALID_HANDICAP
          - BETTING_SUSPENDED
      uniqueRequestId:
        type: string
        example: D5CC50E4-284D-4D50-8D49-429BDC4F2A48
        description: Echo of the uniqueRequestId from the request.
      betId:
        type: integer
        format: int64
        example: 759629245
        description: Bet identification
      win:
        type: number
        format: double
        example: 5.5
        description: Win amount.
      risk:
        type: number
        format: double
        example: 10.5
        description: Risk amount.
      price:
        type: number
        format: double
        example: 2.5
        description: Price
      points:
        type: number
        format: double
        example: 1
        description: points
  StraightBet:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - oddsFormat
      - placedAt
      - risk
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 759629245
        description: Bet identification
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-05T01:32:59Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        example: ACCEPTED
        description: |
          Bet Status.  
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOSE = The bet is settled as lose,  
          PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or NOT_ACCEPTED status,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - PENDING_ACCEPTANCE
          - REFUNDED
          - NOT_ACCEPTED
          - WON
      betType:
        type: string
        example: MONEYLINE
        description: 'Bet type.'
        enum:
          - MONEYLINE
          - TEAM_TOTAL_POINTS
          - SPREAD
          - TOTAL_POINTS
          - SPECIAL
          - PARLAY
          - TEASER
          - MANUAL
      win:
        type: number
        format: double
        example: 1
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1.5
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 111548915
        description: Update Sequence
      sportId:
        type: integer
        format: int32
        example: 29
        description: ''
      leagueId:
        type: integer
        format: int32
        example: 2462
        description: ''
      eventId:
        type: integer
        format: int64
        example: 757064557
        description: ''
      handicap:
        type: number
        format: double
        example: null
        x-nullable: true
        description: ''
      price:
        type: number
        format: double
        example: -155
        description: ''
      teamName:
        type: string
        example: Crvena Zvezda
        description: ''
      side:
        type: string
        example: null
        x-nullable: true
        description: 'Side type.'
        enum:
          - OVER
          - UNDER
      pitcher1:
        type: string
        example: null
        x-nullable: true
        description: 'Pitcher name of team1. Only for bets on baseball.'
      pitcher2:
        type: string
        example: null
        x-nullable: true
        description: 'Pitcher name of team2. Only for bets on baseball.'
      pitcher1MustStart:
        type: string
        enum:
          - TRUE
          - FALSE
        example: null
        x-nullable: true
        description: 'Whether the team1 pitcher must start. Only for bets on baseball.'
      pitcher2MustStart:
        type: string
        enum:
          - TRUE
          - FALSE
        example: null
        x-nullable: true
        description: 'Whether the team1 pitcher must start. Only for bets on baseball.'
      team1:
        type: string
        example: Crvena Zvezda
        description: ''
      team2:
        type: string
        example: Partizan
        description: ''
      periodNumber:
        type: integer
        format: int32
        example: 0
        description: ''
      team1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'Team 1 score that the bet was placed on, only for live bets.'
      team2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'Team 2 score that the bet was placed, only for live bets.'
      ftTeam1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'Full time team 1 score, only for settled bets.'
      ftTeam2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'Full time team 2 score, only for settled bets.'
      pTeam1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: '.End of period team 1 score, only for settled bets. If the bet was placed on Game period (periodNumber =0) , this will be null . '
      pTeam2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'End of period team 2 score, only for settled bets. If the bet was placed on Game period (periodNumber =0) , this will be null'
      isLive:
        type: string
        enum:
          - TRUE
          - FALSE
        example: "FALSE"
        description: Whether the bet is on live event
    description: ''
  StraightBetV3:
      type: object
      required:
        - betId
        - betStatus
        - betStatus2
        - betType
        - oddsFormat
        - placedAt
        - risk
        - updateSequence
        - wagerNumber
        - win
      properties:
        betId:
          type: integer
          format: int64
          example: 759629245
          description: Bet identification
        wagerNumber:
          type: integer
          format: int32
          example: 1
          description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
        placedAt:
          type: string
          format: date-time
          example: '2017-09-05T01:32:59Z'
          description: Date time when the bet was placed.
        betStatus:
          type: string
          example: ACCEPTED
          description: |
            Bet Status.  
            
            ACCEPTED = Bet was accepted,  
            CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
            LOSE = The bet is settled as lose,  
            PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or NOT_ACCEPTED status,  
            REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
            NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
            WON = The bet is settled as won,  
            REJECTED = Bet is rejected
          enum:
            - ACCEPTED
            - CANCELLED
            - LOSE
            - PENDING_ACCEPTANCE
            - REFUNDED
            - NOT_ACCEPTED
            - WON
            - REJECTED
        betStatus2:
          type: string
          example: ACCEPTED
          description: |
            Bet Status.  
            
            ACCEPTED = Bet was accepted,  
            CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
            LOST = The bet is settled as lose,  
            PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or NOT_ACCEPTED status,  
            REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
            NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
            WON = The bet is settled as won,  
            REJECTED = Bet is rejected,  
            HALF_WON_HALF_PUSHED = The bet is settled as half won half pushed. Only for asian handicap bets,  
            HALF_LOST_HALF_PUSHED = The bet is settled as half lost half pushed. Only for asian handicap bets
          enum:
            - ACCEPTED
            - CANCELLED
            - LOST
            - PENDING_ACCEPTANCE
            - REFUNDED
            - NOT_ACCEPTED
            - WON
            - REJECTED
            - HALF_WON_HALF_PUSHED
            - HALF_LOST_HALF_PUSHED
        betType:
          type: string
          example: MONEYLINE
          description: 'Bet type.'
          enum:
            - MONEYLINE
            - TEAM_TOTAL_POINTS
            - SPREAD
            - TOTAL_POINTS
            - SPECIAL
            - PARLAY
            - TEASER
            - MANUAL
        win:
          type: number
          format: double
          example: 1
          description: Win amount.
        risk:
          type: number
          format: double
          example: 1.5
          description: Risk amount.
        winLoss:
          type: number
          format: double
          example: null
          x-nullable: true
          description: Win-Loss for settled bets.
        oddsFormat:
          $ref: '#/definitions/OddsFormat'
        customerCommission:
          type: number
          format: double
          example: null
          x-nullable: true
          description: Client’s commission on the bet.
        cancellationReason:
          $ref: '#/definitions/CancellationReason'
        updateSequence:
          type: integer
          format: int64
          example: 111548915
          description: Update Sequence
        sportId:
          type: integer
          format: int32
          example: 29
          description: ''
        leagueId:
          type: integer
          format: int32
          example: 2462
          description: ''
        eventId:
          type: integer
          format: int64
          example: 757064557
          description: ''
        handicap:
          type: number
          format: double
          example: null
          x-nullable: true
          description: ''
        price:
          type: number
          format: double
          example: -155
          description: ''
        teamName:
          type: string
          example: Crvena Zvezda
          description: ''
        side:
          type: string
          example: null
          x-nullable: true
          description: 'Side type.'
          enum:
            - OVER
            - UNDER
        pitcher1:
          type: string
          example: null
          x-nullable: true
          description: 'Pitcher name of team1. Only for bets on baseball.'
        pitcher2:
          type: string
          example: null
          x-nullable: true
          description: 'Pitcher name of team2. Only for bets on baseball.'
        pitcher1MustStart:
          type: boolean
          example: false
          description: 'Baseball only. Refers to the pitcher for Team1.  This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'  
          x-nullable: true
        pitcher2MustStart:
          type: boolean
          example: false
          description: 'Baseball only. Refers to the pitcher for Team2.  This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'  
          x-nullable: true  
        team1:
          type: string
          example: Crvena Zvezda
          description: ''
        team2:
          type: string
          example: Partizan
          description: ''
        periodNumber:
          type: integer
          format: int32
          example: 0
          description: ''
        team1Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Team 1 on the period that the bet was placed on at the moment of placing a bet, only for live bets.'
        team2Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Team 2 on the period that the bet was placed on at the moment of placing a bet, only for live bets.'
        ftTeam1Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Full time team 1 score, only for settled bets.'
        ftTeam2Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Full time team 2 score, only for settled bets.'
        pTeam1Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: '.End of period team 1 score, only for settled bets. If the bet was placed on Game period (periodNumber =0), this will be null . '
        pTeam2Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'End of period team 2 score, only for settled bets. If the bet was placed on Game period (periodNumber =0), this will be null'
        isLive:
          type: boolean
          example: false
          description: Whether the bet is on live event
        eventStartTime:
          type: string 
          format: date-time
          example: 2017-10-05T01:32:59Z
          x-nullable: false
          description: 'Date time when the event starts.'
        resultingUnit:
          type: string
          description: 'Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular'          
      description: ''    
  StraightBetRegradedWagerHistoryV1:
      type: object
      required:
        - betId
        - betStatus
        - betStatus2
        - betType
        - oddsFormat
        - placedAt
        - risk
        - updateSequence
        - wagerNumber
        - win
      properties:
        betId:
          type: integer
          format: int64
          example: 759629245
          description: Bet identification
        originalBetId:
          type: integer
          format: int64
          example: 759629321
          description: Original bet identification
        wagerNumber:
          type: integer
          format: int32
          example: 1
          description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
        placedAt:
          type: string
          format: date-time
          example: '2017-09-05T01:32:59Z'
          description: Date time when the bet was placed.
        betStatus:
          type: string
          example: ACCEPTED
          description: |
            Bet Status.  
            
            ACCEPTED = Bet was accepted,  
            CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
            LOSE = The bet is settled as lose,  
            PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or NOT_ACCEPTED status,  
            REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
            NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
            WON = The bet is settled as won,  
            REJECTED = Bet is rejected
          enum:
            - ACCEPTED
            - CANCELLED
            - LOSE
            - PENDING_ACCEPTANCE
            - REFUNDED
            - NOT_ACCEPTED
            - WON
            - REJECTED
        betStatus2:
          type: string
          example: ACCEPTED
          description: |
            Bet Status.  
            
            ACCEPTED = Bet was accepted,  
            CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
            LOST = The bet is settled as lose,  
            PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or NOT_ACCEPTED status,  
            REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
            NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
            WON = The bet is settled as won,  
            REJECTED = Bet is rejected,  
            HALF_WON_HALF_PUSHED = The bet is settled as half won half pushed. Only for asian handicap bets,  
            HALF_LOST_HALF_PUSHED = The bet is settled as half lost half pushed. Only for asian handicap bets
          enum:
            - ACCEPTED
            - CANCELLED
            - LOST
            - PENDING_ACCEPTANCE
            - REFUNDED
            - NOT_ACCEPTED
            - WON
            - REJECTED
            - HALF_WON_HALF_PUSHED
            - HALF_LOST_HALF_PUSHED
        betType:
          type: string
          example: MONEYLINE
          description: 'Bet type.'
          enum:
            - MONEYLINE
            - TEAM_TOTAL_POINTS
            - SPREAD
            - TOTAL_POINTS
            - SPECIAL
            - PARLAY
            - TEASER
            - MANUAL
        win:
          type: number
          format: double
          example: 1
          description: Win amount.
        risk:
          type: number
          format: double
          example: 1.5
          description: Risk amount.
        winLoss:
          type: number
          format: double
          example: null
          x-nullable: true
          description: Win-Loss for settled bets.
        oddsFormat:
          $ref: '#/definitions/OddsFormat'
        customerCommission:
          type: number
          format: double
          example: null
          x-nullable: true
          description: Client’s commission on the bet.
        cancellationReason:
          $ref: '#/definitions/CancellationReason'
        updateSequence:
          type: integer
          format: int64
          example: 111548915
          description: Update Sequence
        sportId:
          type: integer
          format: int32
          example: 29
          description: ''
        leagueId:
          type: integer
          format: int32
          example: 2462
          description: ''
        leagueName:
          type: string
          example: Spain - Copa del Rey
          description: ''
        eventId:
          type: integer
          format: int64
          example: 757064557
          description: ''
        handicap:
          type: number
          format: double
          example: null
          x-nullable: true
          description: ''
        price:
          type: number
          format: double
          example: -155
          description: ''
        teamName:
          type: string
          example: Crvena Zvezda
          description: ''
        side:
          type: string
          example: null
          x-nullable: true
          description: 'Side type.'
          enum:
            - OVER
            - UNDER
        pitcher1:
          type: string
          example: null
          x-nullable: true
          description: 'Pitcher name of team1. Only for bets on baseball.'
        pitcher2:
          type: string
          example: null
          x-nullable: true
          description: 'Pitcher name of team2. Only for bets on baseball.'
        pitcher1MustStart:
          type: boolean
          example: false
          description: 'Baseball only. Refers to the pitcher for Team1.  This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'  
          x-nullable: true
        pitcher2MustStart:
          type: boolean
          example: false
          description: 'Baseball only. Refers to the pitcher for Team2.  This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'  
          x-nullable: true  
        team1:
          type: string
          example: Crvena Zvezda
          description: ''
        team2:
          type: string
          example: Partizan
          description: ''
        periodNumber:
          type: integer
          format: int32
          example: 0
          description: ''
        team1Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Team 1 on the period that the bet was placed on at the moment of placing a bet, only for live bets.'
        team2Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Team 2 on the period that the bet was placed on at the moment of placing a bet, only for live bets.'
        ftTeam1Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Full time team 1 score, only for settled bets.'
        ftTeam2Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'Full time team 2 score, only for settled bets.'
        pTeam1Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: '.End of period team 1 score, only for settled bets. If the bet was placed on Game period (periodNumber =0), this will be null . '
        pTeam2Score:
          type: number
          format: double
          example: null
          x-nullable: true
          description: 'End of period team 2 score, only for settled bets. If the bet was placed on Game period (periodNumber =0), this will be null'
        isLive:
          type: boolean
          example: false
          description: Whether the bet is on live event
        eventStartTime:
          type: string 
          format: date-time
          example: 2017-10-05T01:32:59Z
          x-nullable: false
          description: 'Date time when the event starts.'
        resultingUnit:
          type: string
          description: 'Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular'          
      description: '' 
  CancellationReason:
    type: object
    required:
      - code
    properties:
      code:
        type: string
        example: FBS_CW_227
      details:
          $ref: '#/definitions/CancellationDetails'
    description: |  
                Possible keys \:  
                * correctTeam1Id
                * correctTeam2Id
                * correctListedPitcher1
                * correctListedPitcher2
                * correctSpread
                * correctTotalPoints
                * correctTeam1TotalPoints
                * correctTeam2TotalPoints
                * correctTeam1Score
                * correctTeam2Score
                * correctTeam1TennisSetsScore
                * correctTeam2TennisSetsScore
  CancellationDetails:
    type: array
    items:
      - $ref: "#/definitions/CancellationDetailsItem"
    example:  [
                    {
                        "key": "correctSpread",
                        "value": "-1.5"
                    }
                ]
  CancellationDetailsItem:
    type: object
    properties:
      key:
        type: string
        example: correctSpread  
      value:
        type: string  
        example: "1.5"    
  ErrorResponseWithErrorRef:
    type: object
    properties:
      ref:
        type: string
        example: f5d9ba85-cc97-47a9-ad92-ea57d0ea2cc0
      code:
        type: string
        example: UNEXPECTED_ERROR
      message:
        type: string
        example: Internal error
  PlaceParlayBetRequest:
    type: object
    properties:
      uniqueRequestId:
        type: string
        format: uuid
        example: A9EB2EB1-13A5-4600-9F1B-4859379CDEC4
        description: This unique id of the place bet requests. This is to support idempotent requests.
      acceptBetterLine:
        type: boolean
        example: true
        description: Whether or not to accept a bet when there is a line change in favor of the client.
      riskAmount:
        type: number
        format: double
        example: 10.5
        description: 'Amount in client’s currency. It is always risk amount when placing Parlay bets NOTE: If round robin options is used this amount will apply for all parlays so actual amount wagered will be riskAmount X number of Parlays.'
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      legs:
        type: array
        description: Collection of parlay legs.
        items:
          $ref: '#/definitions/ParlayLegRequest'
      roundRobinOptions:
        type: array
        description: ''
        items:
          type: string
          enum:
            - Parlay
            - TwoLegRoundRobin
            - ThreeLegRoundRobin
            - FourLegRoundRobin
            - FiveLegRoundRobin
            - SixLegRoundRobin
            - SevenLegRoundRobin
            - EightLegRoundRobin
    description: Request to place a bet
  ParlayLegRequest:
    type: object
    properties:
      uniqueLegId:
        type: string
        example: CFAD8ACF-E410-437C-8F0F-33611F565981
        description: Unique id of the leg. It's used to identify and match legs in the response.
      lineId:
        type: integer
        format: int64
        example: 419715968
        description: Line identification.
      altLineId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Alternate line identification.
      pitcher1MustStart:
        type: boolean
        example: false
        description: 'Baseball only. Refers to the pitcher for Team1.  This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'
      pitcher2MustStart:
        type: boolean
        example: false
        description: 'Baseball only. Refers to the pitcher for Team2. This applicable only for MONEYLINE bet type, for all other bet types this has to be TRUE.'
      sportId:
        type: integer
        format: int32
        example: 29
        description: Sport identification.
      eventId:
        type: integer
        format: int64
        example: 758023991
        description: Event identification.
      periodNumber:
        type: integer
        format: int32
        example: 0
        description: 'This represents the period of the match. For example, for soccer we have: 0 -  Game, 1 - 1st Half and 2 - 2nd Half'
      legBetType:
        type: string
        example: MONELYLINE
        description: 'Only SPREAD, MONEYLINE, TOTAL_POINTS and TEAM_TOTAL_POINTS are supported.'
        enum:
          - MONEYLINE
          - SPREAD
          - TOTAL_POINTS
          - TEAM_TOTAL_POINTS
      team:
        type: string
        example: TEAM1
        description: Chosen team type. This is needed only for SPREAD and MONEYLINE bet types.
      side:
        type: string
        example: null
        x-nullable: true
        description: 'Chosen side type. This is needed only for TOTAL_POINTS bet type.'
        enum:
          - OVER
          - UNDER
    description: ''
  PlaceParlayBetResponseV2:
    type: object
    properties:
      status:
        type: string
        example: ACCEPTED
        description: Status of the response.
        enum:
          - ACCEPTED
          - PENDING_ACCEPTANCE
          - PROCESSED_WITH_ERROR
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: | 
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          
          ABOVE_MAX_BET_AMOUNT = Stake is above allowed maximum amount,  
          ALL_BETTING_CLOSED = Betting is not allowed at this moment,  
          BELOW_MIN_BET_AMOUNT = Stake is below allowed minimum amount,  
          BLOCKED_BETTING = Betting is suspended for the client,   
          BLOCKED_CLIENT = Client is no longer active,  
          INSUFFICIENT_FUNDS = Bet is submitted by a client with insufficient funds,  
          INVALID_COUNTRY = Client country is not allowed for betting,  
          INVALID_LEGS = One or more legs are invalid,  
          INVALID_ODDS_FORMAT = If a bet was submitted with the odds format that is not allowed for the client,  
          INVALID_ROUND_ROBIN_OPTIONS = Round robin options are invalid (i.e. does not match with number of legs),  
          ROUND_ROBIN_DISALLOWED = Round robin is disallowed for one of the leagues,  
          TOO_MANY_LEGS = Maximum of 10 legs can be specified,  
          TOO_FEW_LEGS = At least 2 legs are required for Parlay,  
          RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Client has reached his total loss limit,  
          RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Client has reached his total risk limit,  
          INVALID_REQUEST = Request has invalid parameters,  
          DUPLICATE_UNIQUE_REQUEST_ID = Request with the same uniqueRequestId was already processed. Please set the new value if you still want the request to be processed,  
          SYSTEM_ERROR_3 = Unexpected error 
        enum:
          - ABOVE_MAX_BET_AMOUNT
          - ALL_BETTING_CLOSED
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_LEGS
          - INVALID_ODDS_FORMAT
          - INVALID_ROUND_ROBIN_OPTIONS
          - ROUND_ROBIN_DISALLOWED
          - TOO_MANY_LEGS
          - TOO_FEW_LEGS
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - INVALID_REQUEST
          - DUPLICATE_UNIQUE_REQUEST_ID
          - SYSTEM_ERROR_3
      betId:
        type: integer
        format: int64
        example: 759629245
        description: Id of a newly created bet.
      uniqueRequestId:
        type: string
        format: uuid
        example: D5CC50E4-284D-4D50-8D49-429BDC4F2A48
        description: Unique identifier provided in the request.
      roundRobinOptionWithOdds:
        type: array
        description: Provides array with all acceptable Round Robin options with parlay odds for that option.
        items:
          $ref: '#/definitions/RoundRobinOptionWithOdds'
      maxRiskStake:
        type: number
        format: double
        description: Maximum stake amount
      minRiskStake:
        type: number
        format: double
        description: Minimum stake amount
      validLegs:
        type: array
        description: Collection of valid legs (format described below). Can be empty if no valid legs found.
        items:
          $ref: '#/definitions/ParlayLegResponse'
      invalidLegs:
        type: array
        description: The collection of legs that resulted in error (format described below). Can be empty if no invalid legs found.
        items:
          $ref: '#/definitions/ParlayLegResponse'
      parlayBet:
        $ref: '#/definitions/ParlayBetV2'		
    description: ''	
  PlaceParlayBetResponseV4:
    type: object
    properties:
      status:
        type: string
        example: ACCEPTED
        description: Status of the response.
        enum:
          - ACCEPTED
          - PENDING_ACCEPTANCE
          - PROCESSED_WITH_ERROR
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: | 
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          
          ABOVE_MAX_BET_AMOUNT = Stake is above allowed maximum amount,  
          ALL_BETTING_CLOSED = Betting is not allowed at this moment,  
          BELOW_MIN_BET_AMOUNT = Stake is below allowed minimum amount,  
          BLOCKED_BETTING = Betting is suspended for the client,   
          BLOCKED_CLIENT = Client is no longer active,  
          INSUFFICIENT_FUNDS = Bet is submitted by a client with insufficient funds,  
          INVALID_COUNTRY = Client country is not allowed for betting,  
          INVALID_LEGS = One or more legs are invalid,  
          INVALID_ODDS_FORMAT = If a bet was submitted with the odds format that is not allowed for the client,  
          INVALID_ROUND_ROBIN_OPTIONS = Round robin options are invalid (i.e. does not match with number of legs),  
          ROUND_ROBIN_DISALLOWED = Round robin is disallowed for one of the leagues,  
          TOO_MANY_LEGS = Maximum of 10 legs can be specified,  
          TOO_FEW_LEGS = At least 2 legs are required for Parlay,  
          RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Client has reached his total loss limit,  
          RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Client has reached his total risk limit,  
          INVALID_REQUEST = Request has invalid parameters,  
          DUPLICATE_UNIQUE_REQUEST_ID = Request with the same uniqueRequestId was already processed. Please set the new value if you still want the request to be processed,  
          SYSTEM_ERROR_3 = Unexpected error 
        enum:
          - ABOVE_MAX_BET_AMOUNT
          - ALL_BETTING_CLOSED
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_LEGS
          - INVALID_ODDS_FORMAT
          - INVALID_ROUND_ROBIN_OPTIONS
          - ROUND_ROBIN_DISALLOWED
          - TOO_MANY_LEGS
          - TOO_FEW_LEGS
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - INVALID_REQUEST
          - DUPLICATE_UNIQUE_REQUEST_ID
          - SYSTEM_ERROR_3
      betId:
        type: integer
        format: int64
        example: 759629245
        description: Id of a newly created bet.
      uniqueRequestId:
        type: string
        format: uuid
        example: D5CC50E4-284D-4D50-8D49-429BDC4F2A48
        description: Unique identifier provided in the request.
      roundRobinOptionWithOdds:
        type: array
        description: Provides array with all acceptable Round Robin options with parlay odds for that option.
        items:
          $ref: '#/definitions/RoundRobinOptionWithOdds'
      validLegs:
        type: array
        description: Collection of valid legs (format described below). Can be empty if no valid legs found.
        items:
          $ref: '#/definitions/ParlayLegResponseV4'
      invalidLegs:
        type: array
        description: The collection of legs that resulted in error (format described below). Can be empty if no invalid legs found.
        items:
          $ref: '#/definitions/ParlayLegResponseV4'
      wagers:
        type: array
        description: The collection of returning wagers
        items:
          $ref: '#/definitions/ParlayWagerV4Response'
    description: ''
  ParlayWagerV4Response:
    type: object
    properties:
      wagerNumber:
        type: number
        format: int32
        example: 1
        description: Wager number.
      win:
        type: number
        format: double
        example: 5.5
        description: Win amount.
      risk:
        type: number
        format: double
        example: 10.5
        description: Risk amount.
      price:
        type: number
        format: double
        example: 7.1
        description: Price amount.
      legIds:
        type: array
        example: ["A9EB2EB1-13A5-4600-9F1B-4859379CDEC4", "CFAD8ACF-E410-437C-8F0F-33611F565981"]
        description: Collection of leg ids of the wager.
        items:
          type: string
          format: uuid
          example: A9EB2EB1-13A5-4600-9F1B-4859379CDEC4

  RoundRobinOptionWithOdds:
    type: object
    properties:
      roundRobinOption:
        type: string
        example: Parlay
        description: ''
        enum:
          - Parlay
          - TwoLegRoundRobin
          - ThreeLegRoundRobin
          - FourLegRoundRobin
          - FiveLegRoundRobin
          - SixLegRoundRobin
          - SevenLegRoundRobin
          - EightLegRoundRobin
      odds:
        type: number
        format: double
        example: 682
        description: Parlay odds for this option.
      unroundedDecimalOdds:
        type: number
        format: double
        example: 7.8231
        description: Unrounded parlay odds in decimal format to be used for calculations only
    description: ''
  ParlayLegResponse:
    type: object
    properties:
      status:
        type: string
        example: VALID
        description: Status of the request.
        enum:
          - PROCESSED_WITH_ERROR
          - VALID
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: |
            When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
            
            CANNOT_PARLAY_LIVE_GAME = The wager is placed on Live game,  
            CORRELATED = The leg is correlated with another one,  
            EVENT_NO_LONGER_AVAILABLE_FOR_BETTING = The event is no longer offered,  
            EVENT_NOT_OFFERED_FOR_PARLAY = The event is not offered for parlaying,  
            INVALID_EVENT = Live betting is not allowed at this moment,  
            INVALID_LEG_BET_TYPE = Leg bet type is not accepted for parlaying. Accepted values are SPREAD, MONEYLINE, TOTAL_POINTS,  
            INVALID_PARLAY_BET = The leg did not validated due to error on Parlay Bet. Check the error PlaceParlayBet response for error details,  
            LINE_CHANGED = Bet is submitted on a line that has changed,  
            LINE_DOES_NOT_BELONG_TO_EVENT = LineId does not match the EventId specified in the request,  
            LISTED_PITCHERS_SELECTION_ERROR = If bet was submitted with pitcher1MustStart and/or pitcher2MustStart parameters with values that are not allowed,  
            ODDS_NO_LONGER_OFFERED_FOR_PARLAY_1 = Due to line change odds are not offered for parlaying,   
            ODDS_NO_LONGER_OFFERED_FOR_PARLAY_2 = Due to line change odds are not offered for parlaying,   
            ODDS_NO_LONGER_OFFERED_FOR_PARLAY_3 = Due to line change odds are not offered for parlaying,   
            OFFLINE_EVENT = Bet is submitted on an event that is offline or with incorrect lineId,  
            PAST_CUTOFFTIME = Bet is submitted on a game after the betting cutoff time,   
            SYSTEM_ERROR_1 = Unexpected error,  
            SYSTEM_ERROR_2 = Unexpected error,  
            SYSTEM_ERROR_3 = Unexpected error,  
            LINE_IS_NOT_AVAILABLE = Line is not available for the specified Parlay Leg,  
            BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId.
            
        enum:
          - CANNOT_PARLAY_LIVE_GAME
          - CORRELATED
          - EVENT_NO_LONGER_AVAILABLE_FOR_BETTING
          - EVENT_NOT_OFFERED_FOR_PARLAY
          - INVALID_EVENT
          - INVALID_LEG_BET_TYPE
          - INVALID_PARLAY_BET
          - LINE_CHANGED
          - LINE_DOES_NOT_BELONG_TO_EVENT
          - LISTED_PITCHERS_SELECTION_ERROR
          - ODDS_NO_LONGER_OFFERED_FOR_PARLAY_1
          - ODDS_NO_LONGER_OFFERED_FOR_PARLAY_2
          - ODDS_NO_LONGER_OFFERED_FOR_PARLAY_3
          - OFFLINE_EVENT
          - PAST_CUTOFFTIME
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - SYSTEM_ERROR_3
          - LINE_IS_NOT_AVAILABLE
          - BETTING_SUSPENDED
      legId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Echo of the legId from the request.
      lineId:
        type: integer
        format: int64
        example: 419715968
        description: Line identification that bet was placed on.
      altLineId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: 'If bet was accepted on alternate line, the altLineId will be returned.'
      price:
        type: number
        format: double
        example: 167
        description: Price that the bet was placed on.
      correlatedLegs:
        type: array
        description: If errorCode is CORRELATED will contain legIds of all correlated legs.
        items:
          type: string
          format: uuid
          example: 10924E23-A2FE-4317-BFFD-80504675F554
    description: ''
  ParlayLegResponseV4:
    type: object
    properties:
      status:
        type: string
        example: VALID
        description: Status of the request.
        enum:
          - PROCESSED_WITH_ERROR
          - VALID
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: |
            When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
            
            CANNOT_PARLAY_LIVE_GAME = The wager is placed on Live game,  
            CORRELATED = The leg is correlated with another one,  
            EVENT_NO_LONGER_AVAILABLE_FOR_BETTING = The event is no longer offered,  
            EVENT_NOT_OFFERED_FOR_PARLAY = The event is not offered for parlaying,  
            INVALID_EVENT = Live betting is not allowed at this moment,  
            INVALID_LEG_BET_TYPE = Leg bet type is not accepted for parlaying. Accepted values are SPREAD, MONEYLINE, TOTAL_POINTS,  
            INVALID_PARLAY_BET = The leg did not validated due to error on Parlay Bet. Check the error PlaceParlayBet response for error details,  
            LINE_CHANGED = Bet is submitted on a line that has changed,  
            LINE_DOES_NOT_BELONG_TO_EVENT = LineId does not match the EventId specified in the request,  
            LISTED_PITCHERS_SELECTION_ERROR = If bet was submitted with pitcher1MustStart and/or pitcher2MustStart parameters with values that are not allowed,  
            ODDS_NO_LONGER_OFFERED_FOR_PARLAY_1 = Due to line change odds are not offered for parlaying,   
            ODDS_NO_LONGER_OFFERED_FOR_PARLAY_2 = Due to line change odds are not offered for parlaying,   
            ODDS_NO_LONGER_OFFERED_FOR_PARLAY_3 = Due to line change odds are not offered for parlaying,   
            OFFLINE_EVENT = Bet is submitted on an event that is offline or with incorrect lineId,  
            PAST_CUTOFFTIME = Bet is submitted on a game after the betting cutoff time,   
            SYSTEM_ERROR_1 = Unexpected error,  
            SYSTEM_ERROR_2 = Unexpected error,  
            SYSTEM_ERROR_3 = Unexpected error,  
            LINE_IS_NOT_AVAILABLE = Line is not available for the specified Parlay Leg,  
            BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId.
            
        enum:
          - CANNOT_PARLAY_LIVE_GAME
          - CORRELATED
          - EVENT_NO_LONGER_AVAILABLE_FOR_BETTING
          - EVENT_NOT_OFFERED_FOR_PARLAY
          - INVALID_EVENT
          - INVALID_LEG_BET_TYPE
          - INVALID_PARLAY_BET
          - LINE_CHANGED
          - LINE_DOES_NOT_BELONG_TO_EVENT
          - LISTED_PITCHERS_SELECTION_ERROR
          - ODDS_NO_LONGER_OFFERED_FOR_PARLAY_1
          - ODDS_NO_LONGER_OFFERED_FOR_PARLAY_2
          - ODDS_NO_LONGER_OFFERED_FOR_PARLAY_3
          - OFFLINE_EVENT
          - PAST_CUTOFFTIME
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - SYSTEM_ERROR_3
          - LINE_IS_NOT_AVAILABLE
          - BETTING_SUSPENDED
      legId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Echo of the legId from the request.
      lineId:
        type: integer
        format: int64
        example: 419715968
        description: Line identification that bet was placed on.
      altLineId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: 'If bet was accepted on alternate line, the altLineId will be returned.'
      price:
        type: number
        format: double
        example: 167
        description: Price that the bet was placed on.
      points:
        type: number
        format: double
        example: 1
        description: points
      correlatedLegs:
        type: array
        description: If errorCode is CORRELATED will contain legIds of all correlated legs.
        items:
          type: string
          format: uuid
          example: 10924E23-A2FE-4317-BFFD-80504675F554
    description: ''
  ParlayBetV2:
    type: object
    required:
      - betId
      - betStatus
      - betStatus2
      - betType
      - legs
      - oddsFormat
      - placedAt
      - risk
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760404490
        description: Bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-08T00:55:11Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        example: ACCEPTED
        description: |
          Bet Status. 
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOSE = The bet is settled as lose,  
          PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or REJECTED status,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
          WON = The bet is settled as won
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - PENDING_ACCEPTANCE
          - REFUNDED
          - NOT_ACCEPTED
          - WON
      betStatus2:
        type: string
        example: ACCEPTED
        description: |
          Bet Status. 
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOST = The bet is settled as lose,  
          PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or REJECTED status,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
          WON = The bet is settled as won,  
          PARTIAL_WON  - If gross payout is greater than the  stake. Only for parlays with the asian handicap legs,  
          PARTIAL_LOST  - If gross payout is less or equal to the stake. Only for parlays with the asian handicap legs                    
        enum:
          - ACCEPTED
          - CANCELLED
          - LOST
          - PENDING_ACCEPTANCE
          - REFUNDED
          - NOT_ACCEPTED
          - WON          
          - PARTIAL_WON
          - PARTIAL_LOST          
      betType:
        type: string
        default: PARLAY
        example: PARLAY
      win:
        type: number
        format: double
        example: 6.82
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 112839436
        description: Update Sequence
      legs:
        type: array
        description: ''
        items:
          $ref: '#/definitions/ParlayLegV2'
      price:
        type: number
        format: double
        example: 682
        description: ''
      finalPrice:
        type: number
        format: double
        example: 0
        description: Only for settled parlay. Final price may differ in case leg was cancelled or half won
    description: ''  
  ParlayBetRegradedWagerHistoryV1:
    type: object
    required:
      - betId
      - betStatus
      - betStatus2
      - betType
      - legs
      - oddsFormat
      - placedAt
      - risk
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760404490
        description: Bet identification
      originalBetId:
        type: integer
        format: int64
        example: 760404432
        description: Original Bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-08T00:55:11Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        example: ACCEPTED
        description: |
          Bet Status. 
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOSE = The bet is settled as lose,  
          PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or REJECTED status,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
          WON = The bet is settled as won
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - PENDING_ACCEPTANCE
          - REFUNDED
          - NOT_ACCEPTED
          - WON
      betStatus2:
        type: string
        example: ACCEPTED
        description: |
          Bet Status. 
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOST = The bet is settled as lose,  
          PENDING_ACCEPTANCE = This status is reserved only for live bets. If a live bet is placed during danger zone or live delay is applied, it will be in PENDING_ACCEPTANCE , otherwise in ACCEPTED status. From this status bet can go to ACCEPTED or REJECTED status,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          NOT_ACCEPTED = Bet was not accepted. Bet can be in this status only if it was previously in PENDING_ACCEPTANCE status,  
          WON = The bet is settled as won,  
          PARTIAL_WON  - If gross payout is greater than the  stake. Only for parlays with the asian handicap legs,  
          PARTIAL_LOST  - If gross payout is less or equal to the stake. Only for parlays with the asian handicap legs                    
        enum:
          - ACCEPTED
          - CANCELLED
          - LOST
          - PENDING_ACCEPTANCE
          - REFUNDED
          - NOT_ACCEPTED
          - WON          
          - PARTIAL_WON
          - PARTIAL_LOST          
      betType:
        type: string
        default: PARLAY
        example: PARLAY
      win:
        type: number
        format: double
        example: 6.82
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 112839436
        description: Update Sequence
      legs:
        type: array
        description: ''
        items:
          $ref: '#/definitions/ParlayLegRegradedWagerHistoryV1'
      price:
        type: number
        format: double
        example: 682
        description: ''
      finalPrice:
        type: number
        format: double
        example: 0
        description: Only for settled parlay. Final price may differ in case leg was cancelled or half won
    description: ''
  ParlayLegV2:
    type: object
    properties:
      sportId:
        type: integer
        format: int32
        example: 29
        description: ''
      legBetType:
        type: string
        example: MONEYLINE
        description: 'Parlay leg type.'
        enum:
          - MONEYLINE
          - SPREAD
          - TOTAL_POINTS
          - TEAM_TOTAL_POINTS
      legBetStatus:
        type: string
        description: | 
          Parlay Leg status.
          CANCELLED = The leg is canceled- the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          LOSE = The leg is a loss or a push-lose. When Push-lose happens, the half of the stake on the leg will be pushed to the next leg, and the other half will be a lose. This can happen only when the leg is placed on a quarter points handicap,  
          PUSH = The leg is a push - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          REFUNDED = The leg is refunded - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          WON = The leg is a won or a push-won. When Push-won happens, the half of the stake on the leg will be pushed to the next leg, and the other half is won. This can happen only when the leg is placed on a quarter points handicap 
        enum:
          - CANCELLED
          - LOSE
          - PUSH
          - REFUNDED
          - WON
          - ACCEPTED
      legBetStatus2:
        type: string
        description: | 
          Parlay Leg status.
          CANCELLED = The leg is canceled- the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          LOST = The leg is a loss or a push-lose. When Push-lose happens, the half of the stake on the leg will be pushed to the next leg, and the other half will be a lose. This can happen only when the leg is placed on a quarter points handicap,  
          PUSHED = The leg is a push - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          REFUNDED = The leg is refunded - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          WON = The leg is a won or a push-won. When Push-won happens, the half of the stake on the leg will be pushed to the next leg, and the other half is won. This can happen only when the leg is placed on a quarter points handicap,  
          HALF_WON_HALF_PUSHED = The bet is settled as half won half pushed. Only for asian handicap legs,  
          HALF_LOST_HALF_PUSHED = The bet is settled as half lost half pushed. Only for asian handicap legs
        enum:
          - CANCELLED
          - LOST
          - PUSHED
          - REFUNDED
          - WON
          - ACCEPTED
          - HALF_WON_HALF_PUSHED
          - HALF_LOST_HALF_PUSHED
      leagueId:
        type: integer
        format: int32
        example: 1766
        description: ''
      eventId:
        type: integer
        format: int64
        example: 758024079
        description: ''
      eventStartTime:
        type: string
        format: date-time
        example: '2017-10-07T21:00:00Z'
        description: 'Date time when the event starts'
      handicap:
        type: number
        format: double
        example: null
        x-nullable: true
        description: ''
      price:
        type: number
        format: double
        example: 193
        description: ''
      teamName:
        type: string
        example: Adelaide United
        description: ''
      side:
        type: string
        example: null
        x-nullable: true
        description: 'Side type.'
        enum:
          - OVER
          - UNDER
      pitcher1:
        type: string
        example: null
        x-nullable: true
        description: ''
      pitcher2:
        type: string
        example: null
        x-nullable: true
        description: ''
      pitcher1MustStart:
        type: boolean
        example: false
        description: ''
      pitcher2MustStart:
        type: boolean
        example: false
        description: ''
      team1:
        type: string
        description: Wellington Phoenix
      team2:
        type: string
        description: Adelaide United
      periodNumber:
        type: integer
        format: int32
        example: 0
        description: ''
      ftTeam1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Full time team 1 score
      ftTeam2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Full time team 2 score
      pTeam1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'End of period team 1 score. If the bet was placed on Game period (periodNumber =0) , this will be null'
      pTeam2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'End of period team 2 score. If the bet was placed on Game period (periodNumber =0) , this will be null'
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      resultingUnit:
        type: string
        description: Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular        
    description: ''   
  ParlayLegRegradedWagerHistoryV1:
    type: object
    properties:
      sportId:
        type: integer
        format: int32
        example: 29
        description: ''
      legBetType:
        type: string
        example: MONEYLINE
        description: 'Parlay leg type.'
        enum:
          - MONEYLINE
          - SPREAD
          - TOTAL_POINTS
          - TEAM_TOTAL_POINTS
      legBetStatus:
        type: string
        description: | 
          Parlay Leg status.
          CANCELLED = The leg is canceled- the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          LOSE = The leg is a loss or a push-lose. When Push-lose happens, the half of the stake on the leg will be pushed to the next leg, and the other half will be a lose. This can happen only when the leg is placed on a quarter points handicap,  
          PUSH = The leg is a push - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          REFUNDED = The leg is refunded - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          WON = The leg is a won or a push-won. When Push-won happens, the half of the stake on the leg will be pushed to the next leg, and the other half is won. This can happen only when the leg is placed on a quarter points handicap 
        enum:
          - CANCELLED
          - LOSE
          - PUSH
          - REFUNDED
          - WON
          - ACCEPTED
      legBetStatus2:
        type: string
        description: | 
          Parlay Leg status.
          CANCELLED = The leg is canceled- the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          LOST = The leg is a loss or a push-lose. When Push-lose happens, the half of the stake on the leg will be pushed to the next leg, and the other half will be a lose. This can happen only when the leg is placed on a quarter points handicap,  
          PUSHED = The leg is a push - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          REFUNDED = The leg is refunded - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          WON = The leg is a won or a push-won. When Push-won happens, the half of the stake on the leg will be pushed to the next leg, and the other half is won. This can happen only when the leg is placed on a quarter points handicap,  
          HALF_WON_HALF_PUSHED = The bet is settled as half won half pushed. Only for asian handicap legs,  
          HALF_LOST_HALF_PUSHED = The bet is settled as half lost half pushed. Only for asian handicap legs
        enum:
          - CANCELLED
          - LOST
          - PUSHED
          - REFUNDED
          - WON
          - ACCEPTED
          - HALF_WON_HALF_PUSHED
          - HALF_LOST_HALF_PUSHED
      leagueId:
        type: integer
        format: int32
        example: 1766
        description: ''
      leagueName:
        type: string
        example: Australia - A League
        description: ''
      eventId:
        type: integer
        format: int64
        example: 758024079
        description: ''
      eventStartTime:
        type: string
        format: date-time
        example: '2017-10-07T21:00:00Z'
        description: 'Date time when the event starts'
      handicap:
        type: number
        format: double
        example: null
        x-nullable: true
        description: ''
      price:
        type: number
        format: double
        example: 193
        description: ''
      teamName:
        type: string
        example: Adelaide United
        description: ''
      side:
        type: string
        example: null
        x-nullable: true
        description: 'Side type.'
        enum:
          - OVER
          - UNDER
      pitcher1:
        type: string
        example: null
        x-nullable: true
        description: ''
      pitcher2:
        type: string
        example: null
        x-nullable: true
        description: ''
      pitcher1MustStart:
        type: boolean
        example: false
        description: ''
      pitcher2MustStart:
        type: boolean
        example: false
        description: ''
      team1:
        type: string
        description: Wellington Phoenix
      team2:
        type: string
        description: Adelaide United
      periodNumber:
        type: integer
        format: int32
        example: 0
        description: ''
      ftTeam1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Full time team 1 score
      ftTeam2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Full time team 2 score
      pTeam1Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'End of period team 1 score. If the bet was placed on Game period (periodNumber =0) , this will be null'
      pTeam2Score:
        type: number
        format: double
        example: null
        x-nullable: true
        description: 'End of period team 2 score. If the bet was placed on Game period (periodNumber =0) , this will be null'
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      resultingUnit:
        type: string
        description: Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular        
    description: ''
  PlaceTeaserBetRequest:
    type: object
    properties:
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Client generated GUID for uniquely identifying the bet.
      teaserId:
        type: integer
        format: int32
        description: Unique identifier. Teaser details can be retrieved from a call to Get Teaser Groups endpoint.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      winRiskStake:
        type: string
        description: Whether the stake amount is risk or win amount.
      stake:
        type: number
        format: double
        description: amount in client’s currency.
      legs:
        type: array
        description: Collection of legs.
        items:
          $ref: '#/definitions/TeaserBetLeg'
    description: ''
  TeaserBetLeg:
    type: object
    properties:
      legId:
        type: string
        format: int64
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Client generated GUID for uniquely identifying the leg.
      betType:
        type: string
        example: SPREAD
        description: 'Leg bet type can be SPREAD or TOTAL_POINTS '
        enum:
          - SPREAD
          - TOTAL_POINTS
      lineId:
        type: integer
        format: int64
        description: Unique identifier.
      eventId:
        type: integer
        format: int64
        description: Unique identifier.
      team:
        type: string
        description: Team being bet on for a spread line.
      side:
        type: string
        description: 'Chosen side type. This is needed only for TOTAL_POINTS bet type.'
        enum:
          - OVER
          - UNDER
    description: ''
  PlaceTeaserBetResponse:
    type: object
    properties:
      status:
        type: string
        description: Status of the request.
      errorCode:
        type: string
        description: |
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          ABOVE_MAX_BET_AMOUNT = Bet is above the maximum allowed,  
          ALL_BETTING_CLOSED = The wagering is disabled in the system (not related to a customer),  
          BELOW_MIN_BET_AMOUNT = Bet is below the minimum allowed,  
          BLOCKED_BETTING = Betting is suspended for the client,  
          BLOCKED_CLIENT = Customer is inactive in the system,  
          DOUBLE_HIT = The website submitted the same bet more than once,  
          DUPLICATE_CLIENT_REFERENCE_ID = The teaser unique id and/or one of the leg unique id are the same,  
          INCOMPLETE_CUSTOMER_BETTING_PROFILE = The customer does not exist,  
          INSUFFICIENT_FUNDS = The risk amount is above the customer’s available balance,  
          INVALID_COUNTRY = Current location is proscribed,  
          INVALID_CUSTOMER_PROFILE = Either the customer does not exist OR the customer business rules are not verified,  
          INVALID_LEGS = One or more legs are not verified,  
          INVALID_REQUEST = Teaser request is not valid,  
          ODDS_FORMAT_MISMATCH = Agent customer’s odds format differs from wager request odds format,  
          RESUBMIT_REQUEST = The ticket hast to be resubmitted,  
          TEASER_DOES_NOT_EXIST = Teaser does not exist in the system,  
          SAME_EVENT_ONLY_REQUIRED = Legs required to be for the same game only. Specified in the Teaser Specifications,  
          SYSTEM_ERROR_1 = System error,  
          SYSTEM_ERROR_2 = System error,  
          SYSTEM_ERROR_3 = System error,  
          TOO_FEW_LEGS = Legs count is below Min Picks specified in the Teaser Specifications,  
          TOO_MANY_LEGS = Legs count is above Max Picks specified in the Teaser Specifications,
          DUPLICATE_UNIQUE_REQUEST_ID = Request with the same uniqueRequestId was already processed. Please set the new value if you still want the request to be processed,  
          RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Client has reached his total loss limit,  
          RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Client has reached his total risk limit

        enum:
          - ABOVE_MAX_BET_AMOUNT
          - ALL_BETTING_CLOSED
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - DOUBLE_HIT
          - DUPLICATE_CLIENT_REFERENCE_ID
          - INCOMPLETE_CUSTOMER_BETTING_PROFILE
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_CUSTOMER_PROFILE
          - INVALID_LEGS
          - INVALID_REQUEST
          - ODDS_FORMAT_MISMATCH
          - RESUBMIT_REQUEST
          - TEASER_DOES_NOT_EXIST
          - SAME_EVENT_ONLY_REQUIRED
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - SYSTEM_ERROR_3
          - TOO_FEW_LEGS
          - TOO_MANY_LEGS
          - DUPLICATE_UNIQUE_REQUEST_ID
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
      betId:
        type: integer
        format: int64
        description: Id of a newly created bet.
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique identifier provided in the request.
      price:
        type: number
        format: double
        description: Price for the bet.
      riskAmount:
        type: number
        format: double
        description: Amount wagered.
      winAmount:
        type: number
        format: double
        description: Potential winnings.
      winRiskStake:
        type: string
        description: Whether the stake amount is risk or win amount.
      invalidLegs:
        type: array
        description: 'A collection of invalid legs, if any.'
        items:
          $ref: '#/definitions/PlaceTeaserBetLegResponse'
      validLegs:
        type: array
        description: 'A collection of valid legs, if any.'
        items:
          $ref: '#/definitions/PlaceTeaserBetLegResponse'
      teaserBet:
        $ref: '#/definitions/TeaserBet'
        description: 'Present if bet was accepted'
  PlaceTeaserBetResponseV4:
    type: object
    properties:
      status:
        type: string
        description: Status of the request.
      errorCode:
        type: string
        description: |
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          ABOVE_MAX_BET_AMOUNT = Bet is above the maximum allowed,  
          ALL_BETTING_CLOSED = The wagering is disabled in the system (not related to a customer),  
          BELOW_MIN_BET_AMOUNT = Bet is below the minimum allowed,  
          BLOCKED_BETTING = Betting is suspended for the client,  
          BLOCKED_CLIENT = Customer is inactive in the system,  
          DOUBLE_HIT = The website submitted the same bet more than once,  
          DUPLICATE_CLIENT_REFERENCE_ID = The teaser unique id and/or one of the leg unique id are the same,  
          INCOMPLETE_CUSTOMER_BETTING_PROFILE = The customer does not exist,  
          INSUFFICIENT_FUNDS = The risk amount is above the customer’s available balance,  
          INVALID_COUNTRY = Current location is proscribed,  
          INVALID_CUSTOMER_PROFILE = Either the customer does not exist OR the customer business rules are not verified,  
          INVALID_LEGS = One or more legs are not verified,  
          INVALID_REQUEST = Teaser request is not valid,  
          ODDS_FORMAT_MISMATCH = Agent customer’s odds format differs from wager request odds format,  
          RESUBMIT_REQUEST = The ticket hast to be resubmitted,  
          TEASER_DOES_NOT_EXIST = Teaser does not exist in the system,  
          SAME_EVENT_ONLY_REQUIRED = Legs required to be for the same game only. Specified in the Teaser Specifications,  
          SYSTEM_ERROR_1 = System error,  
          SYSTEM_ERROR_2 = System error,  
          SYSTEM_ERROR_3 = System error,  
          TOO_FEW_LEGS = Legs count is below Min Picks specified in the Teaser Specifications,  
          TOO_MANY_LEGS = Legs count is above Max Picks specified in the Teaser Specifications,
          DUPLICATE_UNIQUE_REQUEST_ID = Request with the same uniqueRequestId was already processed. Please set the new value if you still want the request to be processed,  
          RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Client has reached his total loss limit,  
          RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Client has reached his total risk limit

        enum:
          - ABOVE_MAX_BET_AMOUNT
          - ALL_BETTING_CLOSED
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - DOUBLE_HIT
          - DUPLICATE_CLIENT_REFERENCE_ID
          - INCOMPLETE_CUSTOMER_BETTING_PROFILE
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_CUSTOMER_PROFILE
          - INVALID_LEGS
          - INVALID_REQUEST
          - ODDS_FORMAT_MISMATCH
          - RESUBMIT_REQUEST
          - TEASER_DOES_NOT_EXIST
          - SAME_EVENT_ONLY_REQUIRED
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - SYSTEM_ERROR_3
          - TOO_FEW_LEGS
          - TOO_MANY_LEGS
          - DUPLICATE_UNIQUE_REQUEST_ID
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
      betId:
        type: integer
        format: int64
        description: Id of a newly created bet.
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique identifier provided in the request.
      price:
        type: number
        format: double
        description: Price for the bet.
      risk:
        type: number
        format: double
        description: Amount wagered.
      win:
        type: number
        format: double
        description: Potential winnings.
      winRiskStake:
        type: string
        description: Whether the stake amount is risk or win amount.
      invalidLegs:
        type: array
        description: 'A collection of invalid legs, if any.'
        items:
          $ref: '#/definitions/PlaceTeaserBetLegResponse'
      validLegs:
        type: array
        description: 'A collection of valid legs, if any.'
        items:
          $ref: '#/definitions/PlaceTeaserBetLegResponse'
  PlaceTeaserBetLegResponse:
    type: object
    properties:
      status:
        type: string
        description: Status of the request.
      errorCode:
        type: string
        description: |
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          CANNOT_TEASER_LIVE_GAME = Teaser is not allowed on a live game,   
          CHECK_TEASER_ERROR = The teaser is invalid, check the teaser error for more details,  
          INVALID_EVENT = The game is not found in the system,  
          INVALID_LEG_BET = The wager is not verified,  
          INVALID_LEG_BET_TYPE = Wager type is not “teasable”, can be either Spread or Total,  
          LINE_CHANGED = Wager is placed on a line that has changed,  
          LINE_DOES_NOT_BELONG_TO_EVENT = There was no game found for the wager,  
          OFFLINE_EVENT = Either the game is offline OR there was no game found for the wager,  
          PAST_CUTOFFTIME = Wager is placed on a game after the cutoff time,  
          POINTS_ARE_NOT_ADJUSTED = The teaser points were not adjusted,  
          SYSTEM_ERROR_1 = System error,  
          SYSTEM_ERROR_2 = System error,  
          WAGER_DATA_MISSING = Wager is denied due to insufficient information available for validation,  
          LINE_IS_NOT_AVAILABLE = Line is not available for the specified Teaser Leg,  
          BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId.
        enum:
          - CANNOT_TEASER_LIVE_GAME
          - CHECK_TEASER_ERROR
          - INVALID_EVENT
          - INVALID_LEG_BET
          - INVALID_LEG_BET_TYPE
          - LINE_CHANGED
          - LINE_DOES_NOT_BELONG_TO_EVENT
          - OFFLINE_EVENT
          - PAST_CUTOFFTIME
          - POINTS_ARE_NOT_ADJUSTED
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - WAGER_DATA_MISSING
          - LINE_IS_NOT_AVAILABLE
          - BETTING_SUSPENDED
      legId:
        type: string
        format: uuid
        example: A9EB2EB1-13A5-4600-9F1B-4859379CDEC4
        description: Echo of the legId from the request.
      lineId:
        type: integer
        format: int64
        description: Line identification that bet was placed on.
      points:
        type: number
        format: double
        description: Number of points.
    description: ''
  'MultiBetRequest[SpecialBetRequest]':
    type: object
    properties:
      bets:
        type: array
        description: The individual bets.
        items:
          $ref: '#/definitions/SpecialBetRequest'
    description: ''
  SpecialBetRequest:
    type: object
    properties:
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: This unique id of the place bet requests. This is to support idempotent requests.
      acceptBetterLine:
        type: boolean
        example: true
        description: Whether or not to accept a bet when there is a line change in favor of the client.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      stake:
        type: number
        format: double
        example: 10.5
        description: amount in client’s currency.
      winRiskStake:
        type: string
        example: RISK
        description: Whether the stake amount is risk or win amount.
        enum:
          - WIN
          - RISK
      lineId:
        type: integer
        format: int64
        example: 51024304
        description: Line identification.
      specialId:
        type: integer
        format: int64
        example: 726394409
        description: Special identification.
      contestantId:
        type: integer
        format: int64
        example: 726394411
        description: Contestant identification.
    description: ''
  'MultiBetResponse[SpecialBetResponse]':
    type: object
    properties:
      bets:
        type: array
        description: The individual bets.
        items:
          $ref: '#/definitions/SpecialBetResponse'
    description: ''
  'MultiBetResponse[SpecialBetResponseV4]':
    type: object
    properties:
      bets:
        type: array
        description: The individual bets.
        items:
          $ref: '#/definitions/SpecialBetResponseV4'
    description: ''
  SpecialBetResponse:
    type: object
    properties:
      status:
        type: string
        example: ACCEPTED
        description: Status of the request.
        enum:
          - ACCEPTED
          - PROCESSED_WITH_ERROR
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: |
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          ALL_BETTING_CLOSED = Betting is not allowed at this moment. This may happen during system maintenance.  
           ABOVE_MAX_BET_AMOUNT = Stake is above allowed maximum amount,  
           BELOW_MIN_BET_AMOUNT = Stake is below allowed minimum amount,  
           BLOCKED_BETTING = Betting is suspended for the client,  
           BLOCKED_CLIENT = Client is no longer active,  
           CONTEST_NOT_FOUND = Incorrect contest id provided or contest is no longer available,  
           DUPLICATE_UNIQUE_REQUEST_ID = UniqueRequestId must be unique for each bet,  
           INCOMPLETE_CUSTOMER_BETTING_PROFILE = Customer profile could not be loaded,   
           INSUFFICIENT_FUNDS = Bet is submitted by a client with insufficient funds,  
           INVALID_COUNTRY = Client country is not allowed for betting,  
           INVALID_REQUEST = Special bet request is not valid,  
           LINE_CHANGED = Bet is submitted on a line that has changed,  
           PAST_CUTOFFTIME = Bet is submitted on a game after the betting cutoff time,  
           RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Self-imposed loss limit exceeded,  
           RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Self-imposed risk limit exceeded,  
           RESUBMIT_REQUEST = The ticket hast to be resubmitted,  
           SYSTEM_ERROR_1 = Unexpected error,  
           SYSTEM_ERROR_2 = Unexpected error,  
           UNIQUE_REQUEST_ID_REQUIRED = UniqueRequestId is missing,  
           BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId,  
           INVALID_CUSTOMER_PROFILE
        enum:
          - ALL_BETTING_CLOSED
          - ABOVE_MAX_BET_AMOUNT
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - CONTEST_NOT_FOUND
          - DUPLICATE_UNIQUE_REQUEST_ID
          - INCOMPLETE_CUSTOMER_BETTING_PROFILE
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_REQUEST
          - LINE_CHANGED
          - PAST_CUTOFFTIME
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
          - RESUBMIT_REQUEST
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - UNIQUE_REQUEST_ID_REQUIRED
          - BETTING_SUSPENDED
          - INVALID_CUSTOMER_PROFILE
      betId:
        type: integer
        format: int64
        example: 760745142
        description: Id of a newly created bet.
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique identifier provided in the request.
      betterLineWasAccepted:
        type: boolean
        example: false
        description: Whether or not the bet was accepted on the line that changed in favour of client. This can be true only if acceptBetterLine in the Place Bet request is set to TRUE.
      specialBet:
        $ref: '#/definitions/SpecialBetV2'
    description: ''
  SpecialBetResponseV4:
    type: object
    properties:
      status:
        type: string
        example: ACCEPTED
        description: Status of the request.
        enum:
          - ACCEPTED
          - PROCESSED_WITH_ERROR
      errorCode:
        type: string
        example: null
        x-nullable: true
        description: |
          When Status is PROCESSED_WITH_ERROR, provides a code indicating the specific problem.
          
          ALL_BETTING_CLOSED = Betting is not allowed at this moment. This may happen during system maintenance.  
           ABOVE_MAX_BET_AMOUNT = Stake is above allowed maximum amount,  
           BELOW_MIN_BET_AMOUNT = Stake is below allowed minimum amount,  
           BLOCKED_BETTING = Betting is suspended for the client,  
           BLOCKED_CLIENT = Client is no longer active,  
           CONTEST_NOT_FOUND = Incorrect contest id provided or contest is no longer available,  
           DUPLICATE_UNIQUE_REQUEST_ID = UniqueRequestId must be unique for each bet,  
           INCOMPLETE_CUSTOMER_BETTING_PROFILE = Customer profile could not be loaded,   
           INSUFFICIENT_FUNDS = Bet is submitted by a client with insufficient funds,  
           INVALID_COUNTRY = Client country is not allowed for betting,  
           INVALID_REQUEST = Special bet request is not valid,  
           LINE_CHANGED = Bet is submitted on a line that has changed,  
           PAST_CUTOFFTIME = Bet is submitted on a game after the betting cutoff time,  
           RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED = Self-imposed loss limit exceeded,  
           RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED = Self-imposed risk limit exceeded,  
           RESUBMIT_REQUEST = The ticket hast to be resubmitted,  
           SYSTEM_ERROR_1 = Unexpected error,  
           SYSTEM_ERROR_2 = Unexpected error,  
           UNIQUE_REQUEST_ID_REQUIRED = UniqueRequestId is missing,  
           BETTING_SUSPENDED = Due to anomalous market circumstances bets are not currently being accepted on this line. Try again with next LineId,  
           INVALID_CUSTOMER_PROFILE
        enum:
          - ALL_BETTING_CLOSED
          - ABOVE_MAX_BET_AMOUNT
          - BELOW_MIN_BET_AMOUNT
          - BLOCKED_BETTING
          - BLOCKED_CLIENT
          - CONTEST_NOT_FOUND
          - DUPLICATE_UNIQUE_REQUEST_ID
          - INCOMPLETE_CUSTOMER_BETTING_PROFILE
          - INSUFFICIENT_FUNDS
          - INVALID_COUNTRY
          - INVALID_REQUEST
          - LINE_CHANGED
          - PAST_CUTOFFTIME
          - RESPONSIBLE_BETTING_LOSS_LIMIT_EXCEEDED
          - RESPONSIBLE_BETTING_RISK_LIMIT_EXCEEDED
          - RESUBMIT_REQUEST
          - SYSTEM_ERROR_1
          - SYSTEM_ERROR_2
          - UNIQUE_REQUEST_ID_REQUIRED
          - BETTING_SUSPENDED
          - INVALID_CUSTOMER_PROFILE
      betId:
        type: integer
        format: int64
        example: 760745142
        description: Id of a newly created bet.
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique identifier provided in the request.
      betterLineWasAccepted:
        type: boolean
        example: false
        description: Whether or not the bet was accepted on the line that changed in favour of client. This can be true only if acceptBetterLine in the Place Bet request is set to TRUE.
      win:
        type: number
        format: double
        example: 1
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1.51
        description: Risk amount.
      price:
        type: number
        format: double
        example: 1.51
        description: Price amount.
    description: ''
  SpecialBet:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - contestantId
      - contestantName
      - leagueId
      - oddsFormat
      - placedAt
      - price
      - risk
      - specialId
      - specialName
      - sportId
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760748770
        description: Bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-09T01:49:43Z'
        description: Date time when the bet was placed.
      settledAt:
        type: string
        format: date-time
        example: '2017-09-05T01:32:59Z'
        description: Date time when the bet was settled.
      betStatus:
        type: string
        example: ACCEPTED
        description: | 
          Bet Status. 
          ACCEPTED = Bet was accepted, 
          CANCELLED = Bet is cancelled as per Pinnacle betting rules, 
          LOSE = The bet is settled as lose,
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status, 
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: SPECIAL
        example: SPECIAL
      win:
        type: number
        format: double
        example: 1
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1.51
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 113214135
        description: Update Sequence. It gets updated when the bet status change.
      specialId:
        type: integer
        format: int64
        example: 726397620
        description: ''
      specialName:
        type: string
        example: Denver Broncos Regular Season Wins?
        description: ''
      contestantId:
        type: integer
        format: int64
        example: 726397622
        description: ''
      contestantName:
        type: string
        example: Under
        description: ''
      price:
        type: number
        format: double
        example: -151
        description: ''
      handicap:
        type: number
        format: double
        example: 8.5
        description: ''
      units:
        type: string
        example: Regular Season Wins
        description: ''
      sportId:
        type: integer
        format: int32
        example: 15
        description: ''
      leagueId:
        type: integer
        format: int32
        example: 889
        description: ''
      eventId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      periodNumber:
        type: integer
        format: int32
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team1:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team2:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
    description: ''
  SpecialBetV2:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - contestantId
      - contestantName
      - leagueId
      - oddsFormat
      - placedAt
      - price
      - risk
      - specialId
      - specialName
      - sportId
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760748770
        description: Bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-09T01:49:43Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        example: ACCEPTED
        description: | 
          Bet Status. 
          ACCEPTED = Bet was accepted, 
          CANCELLED = Bet is cancelled as per Pinnacle betting rules, 
          LOSE = The bet is settled as lose,
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status, 
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: SPECIAL
        example: SPECIAL
      win:
        type: number
        format: double
        example: 1
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1.51
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 113214135
        description: Update Sequence. It gets updated when the bet status change.
      specialId:
        type: integer
        format: int64
        example: 726397620
        description: ''
      specialName:
        type: string
        example: Denver Broncos Regular Season Wins?
        description: ''
      contestantId:
        type: integer
        format: int64
        example: 726397622
        description: ''
      contestantName:
        type: string
        example: Under
        description: ''
      price:
        type: number
        format: double
        example: -151
        description: ''
      handicap:
        type: number
        format: double
        example: 8.5
        description: ''
      units:
        type: string
        example: Regular Season Wins
        description: ''
      sportId:
        type: integer
        format: int32
        example: 15
        description: ''
      leagueId:
        type: integer
        format: int32
        example: 889
        description: ''
      eventId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      periodNumber:
        type: integer
        format: int32
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team1:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team2:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      eventStartTime:
        type: string
        format: date-time
        description: Date time when the event starts.
      resultingUnit:
        type: string
        description: Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular.                
    description: ''    
  SpecialBetV3:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - contestantId
      - contestantName
      - leagueId
      - oddsFormat
      - placedAt
      - price
      - risk
      - specialId
      - specialName
      - sportId
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760748770
        description: Bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-09T01:49:43Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        example: ACCEPTED
        description: | 
          Bet Status. 
          ACCEPTED = Bet was accepted, 
          CANCELLED = Bet is cancelled as per Pinnacle betting rules, 
          LOSE = The bet is settled as lose,
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status, 
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: SPECIAL
        example: SPECIAL
      win:
        type: number
        format: double
        example: 1
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1.51
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 113214135
        description: Update Sequence. It gets updated when the bet status change.
      specialId:
        type: integer
        format: int64
        example: 726397620
        description: ''
      specialName:
        type: string
        example: Denver Broncos Regular Season Wins?
        description: ''
      contestantId:
        type: integer
        format: int64
        example: 726397622
        description: ''
      contestantName:
        type: string
        example: Under
        description: ''
      price:
        type: number
        format: double
        example: -151
        description: ''
      handicap:
        type: number
        format: double
        example: 8.5
        description: ''
      units:
        type: string
        example: Regular Season Wins
        description: ''
      sportId:
        type: integer
        format: int32
        example: 15
        description: ''
      leagueId:
        type: integer
        format: int32
        example: 889
        description: ''
      eventId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      periodNumber:
        type: integer
        format: int32
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team1:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team2:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      eventStartTime:
        type: string 
        format: date-time
        example: 2017-10-05T01:32:59Z
        x-nullable: false
        description: Date time when the event starts.
      resultingUnit:
        type: string 
        x-nullable: false
        description: Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular.        
    description: ''    
  SpecialBetRegradedWagerHistoryV1:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - contestantId
      - contestantName
      - leagueId
      - oddsFormat
      - placedAt
      - price
      - risk
      - specialId
      - specialName
      - sportId
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760748770
        description: Bet identification
      originalBetId:
        type: integer
        format: int64
        example: 760748743
        description: Original bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-09T01:49:43Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        example: ACCEPTED
        description: | 
          Bet Status. 
          ACCEPTED = Bet was accepted, 
          CANCELLED = Bet is cancelled as per Pinnacle betting rules, 
          LOSE = The bet is settled as lose,
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status, 
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: SPECIAL
        example: SPECIAL
      win:
        type: number
        format: double
        example: 1
        description: Win amount.
      risk:
        type: number
        format: double
        example: 1.51
        description: Risk amount.
      winLoss:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        example: null
        x-nullable: true
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        example: 113214135
        description: Update Sequence. It gets updated when the bet status change.
      specialId:
        type: integer
        format: int64
        example: 726397620
        description: ''
      specialName:
        type: string
        example: Denver Broncos Regular Season Wins?
        description: ''
      contestantId:
        type: integer
        format: int64
        example: 726397622
        description: ''
      contestantName:
        type: string
        example: Under
        description: ''
      price:
        type: number
        format: double
        example: -151
        description: ''
      handicap:
        type: number
        format: double
        example: 8.5
        description: ''
      units:
        type: string
        example: Regular Season Wins
        description: ''
      sportId:
        type: integer
        format: int32
        example: 15
        description: ''
      leagueId:
        type: integer
        format: int32
        example: 889
        description: ''
      eventId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      periodNumber:
        type: integer
        format: int32
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team1:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      team2:
        type: string
        example: null
        x-nullable: true
        description: Populated if bet was placed on a special linked to the event.
      eventStartTime:
        type: string 
        format: date-time
        example: 2017-10-05T01:32:59Z
        x-nullable: false
        description: Date time when the event starts.
      resultingUnit:
        type: string 
        x-nullable: false
        description: Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular.        
    description: ''    
  GetBetsByTypeResponseV3:
    type: object
    properties:
      moreAvailable:
        type: boolean 
        description: Whether there are more pages available.
      pageSize:
        type: integer 
        description: Page size. Default is 1000.
        example: 1000
      fromRecord:
        type: integer 
        description: Starting record number of the result set. Records start at zero
      toRecord:
        type: integer 
        description: Ending record number of the result set. 
      straightBets:
        type: array
        description: A collection of placed straight bets.
        items:
          $ref: '#/definitions/StraightBetV3'
      parlayBets:
        type: array
        description: A collection of placed parlay bets.
        items:
          $ref: '#/definitions/ParlayBetV2'
      teaserBets:
        type: array
        description: A collection of placed teaser bets.
        items:
          $ref: '#/definitions/TeaserBet'
      specialBets:
        type: array
        description: A collection of placed special bets.
        items:
          $ref: '#/definitions/SpecialBetV3'
      manualBets:
        type: array
        description: A collection of placed manual bets.
        items:
          $ref: '#/definitions/ManualBet'
    description: ''  
  GetRegradedWagerHistoryResponseV1:
    type: object
    properties:
      moreAvailable:
        type: boolean 
        description: Whether there are more pages available.
      pageSize:
        type: integer 
        description: Page size. Default is 1000.
        example: 1000
      fromRecord:
        type: integer 
        description: Starting record number of the result set. Records start at zero
      toRecord:
        type: integer 
        description: Ending record number of the result set. 
      straightBets:
        type: array
        description: A collection of placed straight bets.
        items:
          $ref: '#/definitions/StraightBetRegradedWagerHistoryV1'
      parlayBets:
        type: array
        description: A collection of placed parlay bets.
        items:
          $ref: '#/definitions/ParlayBetRegradedWagerHistoryV1'
      teaserBets:
        type: array
        description: A collection of placed teaser bets.
        items:
          $ref: '#/definitions/TeaserBetRegradedWagerHistoryV1'
      specialBets:
        type: array
        description: A collection of placed special bets.
        items:
          $ref: '#/definitions/SpecialBetRegradedWagerHistoryV1'
      manualBets:
        type: array
        description: A collection of placed manual bets.
        items:
          $ref: '#/definitions/ManualBetRegradedWagerHistoryV1'
    description: '' 
  TeaserBet:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - isSameEventOnly
      - legs
      - maxPicks
      - minPicks
      - oddsFormat
      - placedAt
      - risk
      - teaserName
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        description: Bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        description: Date time when the bet was placed.
      betStatus:
        type: string
        description: | 
            Bet Status. 
            
            ACCEPTED = Bet was accepted,  
            CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
            LOSE = The bet is settled as lose,  
            REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
            WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: TEASER
        example: TEASER
      win:
        type: number
        format: double
        description: Win amount.
      risk:
        type: number
        format: double
        description: Risk amount.
      winLoss:
        type: number
        format: double
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        description: Update Sequence
      teaserName:
        type: string
        description: ''
      isSameEventOnly:
        type: boolean
        description: ''
      minPicks:
        type: number
        format: double
        description: ''
      maxPicks:
        type: number
        format: double
        description: ''
      price:
        type: number
        format: double
        example: 682
        description: 'Populated for all teaser bets and will be the original price at the time of the placement.'
      finalPrice:
        type: number
        format: double
        example: 0
        description: Only for settled parlay. Final price may differ in case leg was cancelled or half won. 
      teaserId:
        type: number
        format: int32
        example: 0
        description: Reference to the teaser id. 
      teaserGroupId:
        type: number
        format: int32
        example: 0
        description: Reference to the teaser group id.         
      legs:
        type: array
        description: ''
        items:
          $ref: '#/definitions/TeaserLeg'
    description: ''
  TeaserBetRegradedWagerHistoryV1:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - isSameEventOnly
      - legs
      - maxPicks
      - minPicks
      - oddsFormat
      - placedAt
      - risk
      - teaserName
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        description: Bet identification
      originalBetId:
        type: integer
        format: int64
        description: Original bet identification
      uniqueRequestId:
        type: string
        format: uuid
        example: 10924E23-A2FE-4317-BFFD-80504675F554
        description: Unique Request Id
      wagerNumber:
        type: integer
        format: int32
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        description: Date time when the bet was placed.
      betStatus:
        type: string
        description: | 
            Bet Status. 
            
            ACCEPTED = Bet was accepted,  
            CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
            LOSE = The bet is settled as lose,  
            REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
            WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: TEASER
        example: TEASER
      win:
        type: number
        format: double
        description: Win amount.
      risk:
        type: number
        format: double
        description: Risk amount.
      winLoss:
        type: number
        format: double
        description: Win-Loss for settled bets.
      oddsFormat:
        $ref: '#/definitions/OddsFormat'
      customerCommission:
        type: number
        format: double
        description: Client’s commission on the bet.
      cancellationReason:
        $ref: '#/definitions/CancellationReason'
      updateSequence:
        type: integer
        format: int64
        description: Update Sequence
      teaserName:
        type: string
        description: ''
      isSameEventOnly:
        type: boolean
        description: ''
      minPicks:
        type: number
        format: double
        description: ''
      maxPicks:
        type: number
        format: double
        description: ''
      price:
        type: number
        format: double
        example: 682
        description: 'Populated for all teaser bets and will be the original price at the time of the placement.'
      finalPrice:
        type: number
        format: double
        example: 0
        description: Only for settled parlay. Final price may differ in case leg was cancelled or half won. 
      teaserId:
        type: number
        format: int32
        example: 0
        description: Reference to the teaser id. 
      teaserGroupId:
        type: number
        format: int32
        example: 0
        description: Reference to the teaser group id.         
      legs:
        type: array
        description: ''
        items:
          $ref: '#/definitions/TeaserLeg'
    description: ''
  ManualBet:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - description
      - placedAt
      - risk
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760063588
        description: Bet identification
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-06T14:56:27Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        description: |
          Bet Status. 
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOSE = The bet is settled as lose,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: MANUAL
        example: MANUAL
      win:
        type: number
        format: double
        example: 15000
        description: Win amount.
      risk:
        type: number
        format: double
        example: 500
        description: Risk amount.
      winLoss:
        type: number
        format: double
        description: Win-Loss for settled bets.
      updateSequence:
        type: integer
        format: int64
        example: 112472310
        description: Update Sequence
      description:
        type: string
        example: Soccer Props - Partizan vs Crvena Zvezda - Partizan @ +3000
        description: Manual bet description.
      referenceBetId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Referenced original bet id.
    description: ''
  ManualBetRegradedWagerHistoryV1:
    type: object
    required:
      - betId
      - betStatus
      - betType
      - description
      - placedAt
      - risk
      - updateSequence
      - wagerNumber
      - win
    properties:
      betId:
        type: integer
        format: int64
        example: 760063588
        description: Bet identification
      originalBetId:
        type: integer
        format: int64
        example: 760063543
        description: Original bet identification
      wagerNumber:
        type: integer
        format: int32
        example: 1
        description: 'Wager identification. All bets placed thru the API will have value 1. Website Classic view supports multiple contest(special) bets placement in the same bet slip in that case the bet would have appropriate wager number, as well as all round robin parlay bets.'
      placedAt:
        type: string
        format: date-time
        example: '2017-09-06T14:56:27Z'
        description: Date time when the bet was placed.
      betStatus:
        type: string
        description: |
          Bet Status. 
          
          ACCEPTED = Bet was accepted,  
          CANCELLED = Bet is cancelled as per Pinnacle betting rules,  
          LOSE = The bet is settled as lose,  
          REFUNDED = When an event is cancelled or when the bet is settled as push, the bet will have REFUNDED status,  
          WON = The bet is settled as won 
        enum:
          - ACCEPTED
          - CANCELLED
          - LOSE
          - REFUNDED
          - WON
      betType:
        type: string
        default: MANUAL
        example: MANUAL
      win:
        type: number
        format: double
        example: 15000
        description: Win amount.
      risk:
        type: number
        format: double
        example: 500
        description: Risk amount.
      winLoss:
        type: number
        format: double
        description: Win-Loss for settled bets.
      updateSequence:
        type: integer
        format: int64
        example: 112472310
        description: Update Sequence
      description:
        type: string
        example: Soccer Props - Partizan vs Crvena Zvezda - Partizan @ +3000
        description: Manual bet description.
      referenceBetId:
        type: integer
        format: int64
        example: null
        x-nullable: true
        description: Referenced original bet id.
    description: ''
  TeaserLeg:
    type: object
    properties:
      sportId:
        type: integer
        format: int32
        description: ''
      legBetType:
        type: string
        description: 'Teaser leg type.'
        enum:
          - SPREAD
          - TOTAL_POINTS
      legBetStatus:
        type: string
        description: |
          CANCELLED = The leg is canceled- the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          LOSE = The leg is a loss or a push-lose. When Push-lose happens, the half of the stake on the leg will be pushed to the next leg, and the other half will be a lose. This can happen only when the leg is placed on a quarter points handicap,  
          PUSH = The leg is a push - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          REFUNDED = The leg is refunded - the stake on this leg will be transferred to the next one. In this case the leg will be ignored when calculating the winLoss,  
          WON = The leg is a won or a push-won. When Push-won happens, the half of the stake on the leg will be pushed to the next leg, and the other half is won. This can happen only when the leg is placed on a quarter points handicap  
        enum:
          - CANCELLED
          - LOSE
          - PUSH
          - REFUNDED
          - WON
      leagueId:
        type: integer
        format: int32
        description: ''
      eventId:
        type: integer
        format: int64
        description: ''
      eventStartTime:
        type: string
        format: date-time
        example: '2017-10-05T01:32:59Z'
        description: 'Date time when the event starts.'
      handicap:
        type: number
        format: double
        description: ''
      teamName:
        type: string
        description: ''
      side:
        type: string
        description: 'Side type.'
        enum:
          - OVER
          - UNDER
      team1:
        type: string
        description: ''
      team2:
        type: string
        description: ''
      periodNumber:
        type: integer
        format: int32
        description: ''
      resultingUnit:
        type: string
        description: 'Specifies based on what the event is being resulted, e.g. Corners, Bookings , Regular'        
    description: ''
  OddsFormat:
    type: string
    description: |
      Bet odds format.  
      AMERICAN = American odds format,  
      DECIMAL = Decimal (European) odds format,  
      HONGKONG = Hong Kong odds format,  
      INDONESIAN = Indonesian odds format,  
      MALAY = Malaysian odds format 
    enum:
      - AMERICAN
      - DECIMAL
      - HONGKONG
      - INDONESIAN
      - MALAY  
    example: DECIMAL
  BettingStatusResponse:
    type: object
    required:
      - status
    properties:
      status:
        type: string
        description: |
          Betting status.
        enum:
          - ALL_BETTING_ENABLED
          - ALL_LIVE_BETTING_CLOSED
          - ALL_BETTING_CLOSED
    description: ''
