Betting.WebApi

<back to all web services

InstallProductInstance

Requires Authentication
The following routes are available for this service:
POST/cmd/products/instances
package dtos

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

type ProductReference struct {
	Id              *string `json:"id,omitempty"`
	Value           *string `json:"value,omitempty"`
	Category        *string `json:"category,omitempty"`
	ProductProvider *Ref    `json:"productProvider,omitempty"`
}

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 InstallProductInstance struct {
	Id              *string           `json:"id,omitempty"`
	Name            *string           `json:"name,omitempty"`
	Title           *string           `json:"title,omitempty"`
	Product         *ProductReference `json:"product,omitempty"`
	Currency        *Ref              `json:"currency,omitempty"`
	BettingPolicies *BettingPolicies  `json:"bettingPolicies,omitempty"`
	ApiUrl          *string           `json:"apiUrl,omitempty"`
	BackOfficeUrl   *string           `json:"backOfficeUrl,omitempty"`
	InstanceUrl     *string           `json:"instanceUrl,omitempty"`
	FeedPlayerUrl   *string           `json:"feedPlayerUrl,omitempty"`
}

type RecordList[T any] []T

Go InstallProductInstance 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 /cmd/products/instances HTTP/1.1 
Host: api.bettor.webhop.biz 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	name: String,
	title: String,
	product: 
	{
		id: String,
		value: String,
		category: String,
		productProvider: 
		{
			id: String,
			val: String
		}
	},
	currency: 
	{
		id: String,
		val: 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,
	backOfficeUrl: String,
	instanceUrl: String,
	feedPlayerUrl: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	errorCode: String,
	message: String,
	stackTrace: String,
	errors: 
	[
		{
			errorCode: String,
			fieldName: String,
			message: String,
			meta: 
			{
				String: String
			}
		}
	],
	meta: 
	{
		String: String
	}
}