Betting.WebApi

<back to all web services

GetProductInstanceConfiguration

The following routes are available for this service:
All Verbs/qry/configurations/productInstances
package dtos

type PayinConstraintType int

const (
	PayinConstraintTypeSingleBet PayinConstraintType = 0
	PayinConstraintTypeMultiBet  PayinConstraintType = 1
	PayinConstraintTypeSystemBet PayinConstraintType = 2
)

type Money struct {
	Amount   float64 `json:"amount,omitempty"`
	Currency string  `json:"currency"`
}

type PayinConstraint struct {
	Type             PayinConstraintType `json:"type,omitempty"`
	Min              *Money              `json:"min,omitempty"`
	Default          *Money              `json:"default,omitempty"`
	WarningThreshold *Money              `json:"warningThreshold,omitempty"`
	Max              *Money              `json:"max,omitempty"`
}

type WinningsCapType int

const (
	WinningsCapTypeSingleBet WinningsCapType = 0
	WinningsCapTypeMultiBet  WinningsCapType = 1
	WinningsCapTypeSystemBet WinningsCapType = 2
)

type WinningsCap struct {
	Type WinningsCapType `json:"type,omitempty"`
	Cap  *Money          `json:"cap,omitempty"`
}

type BettingPolicies struct {
	PayinConstraints         *RecordList[PayinConstraint] `json:"payinConstraints,omitempty"`
	PayinTaxationPolicyId    *string                      `json:"payinTaxationPolicyId,omitempty"`
	WinningsCaps             *RecordList[WinningsCap]     `json:"winningsCaps,omitempty"`
	WinningsTaxationPolicyId *string                      `json:"winningsTaxationPolicyId,omitempty"`
}

type ProductInstanceConfiguration struct {
	Id              *string           `json:"id,omitempty"`
	BettingPolicies *BettingPolicies  `json:"bettingPolicies,omitempty"`
	ApiUrl          *string           `json:"apiUrl,omitempty"`
	Settings        map[string]string `json:"settings,omitempty"`
}

type BettingApp struct {
	Name    *string `json:"name,omitempty"`
	Version *string `json:"version,omitempty"`
}

type Ref struct {
	Id  string `json:"id"`
	Val string `json:"val"`
}

type RefEx struct {
	Ref
	Data RecordDictionary[string, string] `json:"data"`
}

type Origin struct {
	Application   *BettingApp `json:"application,omitempty"`
	Ip            *string     `json:"ip,omitempty"`
	Organization  *RefEx      `json:"organization,omitempty"`
	Region        *Ref        `json:"region,omitempty"`
	LocationGroup *Ref        `json:"locationGroup,omitempty"`
	Location      *RefEx      `json:"location,omitempty"`
	Device        *RefEx      `json:"device,omitempty"`
	Clerk         *Ref        `json:"clerk,omitempty"`
}

type GetProductInstanceConfiguration struct {
	Id     *string `json:"id,omitempty"`
	Origin *Origin `json:"origin,omitempty"`
}

type RecordDictionary[TKey any, TVal any] map[TKey]TVal

type RecordList[T any] []T

Go GetProductInstanceConfiguration DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /qry/configurations/productInstances HTTP/1.1 
Host: api.bettor.webhop.biz 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	origin: 
	{
		application: 
		{
			name: String,
			version: String
		},
		ip: String,
		organization: 
		{
			data: 
			{
				String: String
			},
			id: String,
			val: String
		},
		region: 
		{
			id: String,
			val: String
		},
		locationGroup: 
		{
			id: String,
			val: String
		},
		location: 
		{
			data: 
			{
				String: String
			},
			id: String,
			val: String
		},
		device: 
		{
			data: 
			{
				String: String
			},
			id: String,
			val: String
		},
		clerk: 
		{
			id: String,
			val: String
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	bettingPolicies: 
	{
		payinConstraints: 
		[
			{
				type: 0,
				min: 
				{
					amount: 0,
					currency: String
				},
				default: 
				{
					amount: 0,
					currency: String
				},
				warningThreshold: 
				{
					amount: 0,
					currency: String
				},
				max: 
				{
					amount: 0,
					currency: String
				}
			}
		],
		payinTaxationPolicyId: String,
		winningsCaps: 
		[
			{
				type: 0,
				cap: 
				{
					amount: 0,
					currency: String
				}
			}
		],
		winningsTaxationPolicyId: String
	},
	apiUrl: String,
	settings: 
	{
		String: String
	}
}