Create transaction for one player
Create a transaction for player with playerId
Behavior for transaction types:
All addTransactions calls are expected to be idempotent, i.e. if a transaction already exists then balance should be returned together with status OK.
- WITHDRAW, PROMOWITHDRAW
A withdraw transaction starts the chain of events for a game round. - DEPOSIT
If there is no corresponding game round, return errorPAM_ERR_TRANS_NOT_FOUNDand balance.
If there is a transaction with the same id but different user, game or round return errorPAM_ERR_DUPLICATE_TRANS
If there is in fact a corresponding game round, but it's closed, return errorPAM_ERR_TRANS_ALREADY_SETTLEDand balance. - PROMODEPOSIT
A corresponding WITHDRAW does not need to exist for a PROMODEPOSIT to be accepted. - CANCEL, PROMOCANCEL
If the corresponding WITHDRAW does not exist, return errorPAM_ERR_CANCEL_NOT_FOUNDand balance.
If trying to cancel an already cancelled transaction, i.e. with a second unique cancellation request, returnPAM_ERR_TRANS_ALREADY_CANCELLEDand balance.
If trying to cancel an already settled transaction, return errorPAM_ERR_TRANS_ALREADY_SETTLEDand balance.
If trying to cancel something else, return errorPAM_ERR_CANCEL_NON_WITHDRAWand balance.
Path Parameters
- playerId string required
id of player
Example: 73619e57b3bc4b4e9014132be3bd12a9
Query Parameters
- provider string required
Name of the game provider associated with the session
Example: Evolution
Header Parameters
- X-Player-Token string required
Possible values:
>= 32 charactersand<= 40 charactersPlayer game session identifier
- X-Correlation-ID string required
Header for correlating requests between the services for debugging purposes and request tracing. The value will originate from the game providers that support request identification. Otherwise Valkyrie will generate a value.
- traceparent string
Describes the position of the incoming request in its trace graph. Further specified in https://www.w3.org/TR/trace-context
- tracestate string
Extends traceparent with vendor-specific data represented by a set of name/value pairs. Further specified in https://www.w3.org/TR/trace-context
- application/json
Request Body required
- currency string required
Possible values: Value must match regular expression
^[A-Z]{3}$ISO 4217 three letter currency code
- provider string required
Game provider identity known by the PAM and Valkyrie
- transactionType string required
Possible values: [
DEPOSIT,WITHDRAW,CANCEL,PROMODEPOSIT,PROMOWITHDRAW,PROMOCANCEL]Transaction types according to:
DEPOSIT- for adding fundsWITHDRAW- subtract funds from an account balance. Generally for placing betsCANCEL- reverting a previous transactionPROMODEPOSIT- payout from promo and similar offerings programsPROMOWITHDRAW- buyin to promo and similar offerings programsPROMOCANCEL- reverting a previous promo transaction
- cashAmount double required
Amount in some currency, rounded to 6 decimal places
- bonusAmount double required
Amount in some currency, rounded to 6 decimal places
- promoAmount double required
Amount in some currency, rounded to 6 decimal places
- transactionDateTime date-time required
A date and time in IS0 8601 format
- providerTransactionId string required
Possible values:
non-emptyand<= 40 charactersThe RGS transaction identifier. Unique for each provider. Either this or
providerBetRefis required.providerBetRefwill be prioritized if both are present. - providerBetRef string
Possible values:
non-emptyand<= 40 charactersProvider bet reference for grouping or matching transactions. Either this or
providerTransactionIdis required. This one is prioritized if both are present. It is used for RGS:s that encapsulate many transactions in a wrapper transaction. - providerGameId string
Possible values:
non-emptyand<= 40 charactersThe game identifier unique for the RGS(provider)
- providerRoundId string
Possible values:
non-emptyand<= 40 charactersThe unique game round identifier for the provider
- betCode string
metadata about what kind of bet/transaction it is
- isGameOver boolean
promos object[]
promoType stringPossible values: [
PROMOBONUS,PROMOTOURNAMENT,PROMOFROMGAME,PROMOCAP,PROMOLIMIT,PROMOMONEYREWARD,FREEROUNDS,FREESPINS]Promo types according to:
PROMOBONUS- bonus promotionPROMOTOURNAMENT- tournament related promotionPROMOFROMGAME- promotion awarded from a gamePROMOCAP- capped promotionPROMOLIMIT- limited promotionPROMOMONEYREWARD- real money promotion awardFREEROUNDS- extra game rounds for freeFREESPINS- extra spins for free
promoName stringPossible values:
non-emptyand<= 40 charactersName of offering, if any
promoStatus stringPossible values:
non-emptyand<= 40 charactersOffering status, if any
promoReference stringPossible values:
non-emptyand<= 40 charactersReference to the offering, if any
promoCode stringPossible values:
non-emptyand<= 40 charactersOffering code, if any
promoAmount doubleAmount in some currency, rounded to 6 decimal places
promoAmountTotal doubleAmount in some currency, rounded to 6 decimal places
promoConfigRef stringPossible values:
non-emptyand<= 40 charactersOffering configuration reference, if any
promoAwardRef stringPossible values:
non-emptyand<= 40 charactersOffering award reference, if any
currency stringPossible values: Value must match regular expression
^[A-Z]{3}$ISO 4217 three letter currency code
jackpots object[]
jackpotId stringPossible values:
non-emptyand<= 40 charactersJackpot identifier
jackpotReference stringPossible values:
non-emptyand<= 40 charactersJackpot reference, arbitrary use
jackpotAmount doubleAmount in some currency, rounded to 6 decimal places
jackpotBuckets object[]
bucketType stringPossible values:
non-emptyand<= 40 charactersType of jackpot bucket, if any. Arbitrary use
bucketReference stringPossible values:
non-emptyand<= 40 charactersJackpot bucket reference, arbitrary use
bucketAmount doubleAmount in some currency, rounded to 6 decimal places
currency stringPossible values: Value must match regular expression
^[A-Z]{3}$ISO 4217 three letter currency code
tip object
tipAmount doubleAmount in some currency, rounded to 6 decimal places
- 200
- 400
- 401
The transaction response.
- application/json
- Schema
- Example (from schema)
Schema
- status string
Possible values: [
OK,ERROR] error object
Error details describing why PAM rejected the request
code stringPossible values: [
PAM_ERR_UNDEFINED,PAM_ERR_ACC_NOT_FOUND,PAM_ERR_GAME_NOT_FOUND,PAM_ERR_ROUND_NOT_FOUND,PAM_ERR_TRANS_NOT_FOUND,PAM_ERR_CASH_OVERDRAFT,PAM_ERR_BONUS_OVERDRAFT,PAM_ERR_SESSION_NOT_FOUND,PAM_ERR_SESSION_EXPIRED,PAM_ERR_MISSING_PROVIDER,PAM_ERR_TRANS_CURRENCY,PAM_ERR_NEGATIVE_STAKE,PAM_ERR_CANCEL_NOT_FOUND,PAM_ERR_TRANS_ALREADY_CANCELLED,PAM_ERR_CANCEL_NON_WITHDRAW,PAM_ERR_BET_NOT_ALLOWED,PAM_ERR_PLAYER_NOT_FOUND,PAM_ERR_API_TOKEN,PAM_ERR_TRANS_ALREADY_SETTLED,PAM_ERR_DUPLICATE_TRANS,PAM_ERR_PROMO_OVERDRAFT,PAM_ERR_TIMEOUT]PAM_ERR_UNDEFINED- When you need a generic error.PAM_ERR_ACC_NOT_FOUND- When account ofplayerIdis not found.PAM_ERR_GAME_NOT_FOUND- When specifiedproviderGameIdis not found.PAM_ERR_ROUND_NOT_FOUND- In getGameRound, when there is no game round with idproviderGameRoundId.PAM_ERR_TRANS_NOT_FOUND- In DEPOSIT transaction if the game round with idproviderRoundIdis not found.PAM_ERR_CASH_OVERDRAFT- When user does not have enough funds on their account for a withdraw transactions.PAM_ERR_BONUS_OVERDRAFT- When user does not have enough funds on their bonus account for a withdraw transaction.PAM_ERR_SESSION_NOT_FOUND- When no session is found for providedX-Player-Token.PAM_ERR_SESSION_EXPIRED- When session related toX-Player-Tokenhas expired.PAM_ERR_MISSING_PROVIDER- When specified query parameterprovideris not found.PAM_ERR_TRANS_CURRENCY- When specifiedCurrencydoes not match that of the session.PAM_ERR_NEGATIVE_STAKE- When transaction amount is negative.PAM_ERR_CANCEL_NOT_FOUND- When the transaction trying to cancel doesn't exist.PAM_ERR_TRANS_ALREADY_CANCELLED- When trying to cancel an already cancelled transaction, or when a Deposit is made toward a cancelled withdraw.PAM_ERR_CANCEL_NON_WITHDRAW- When trying to cancel a transaction that is not a Withdraw transaction.PAM_ERR_BET_NOT_ALLOWED- When a bet cannot be done, eg when the user is blocked.PAM_ERR_PLAYER_NOT_FOUND- WhenplayerIdis not found.PAM_ERR_API_TOKEN- WhenAuthorizationheader api token does not match the PAM api token.PAM_ERR_TRANS_ALREADY_SETTLED- When trying to cancel an already Deposited bet or when trying to Deposit on an already finished gameRound, finished bet.PAM_ERR_DUPLICATE_TRANS- When a Deposit is made with an already existingproviderTransactionIdbut with differentplayerId/providerGameId/providerRoundId.PAM_ERR_PROMO_OVERDRAFT- When user does not have enough funds on their promo account for a withdraw transaction.PAM_ERR_TIMEOUT- A timeout occurred
message stringtransactionResult object
transactionId stringPossible values:
non-emptyand<= 40 charactersUnique transaction identifier from the PAM system
balance object
player account balance
cashAmount doubleFunds on the account.
bonusAmount doubleFunds on the bonus account.
promoAmount doubleAmount in some currency, rounded to 6 decimal places
{
"status": "OK",
"error": {
"code": "PAM_ERR_UNDEFINED",
"message": "string"
},
"transactionResult": {
"transactionId": "05a9edc0f73c297b",
"balance": {
"cashAmount": 1236.123456,
"bonusAmount": 1236.123456,
"promoAmount": 1236.123456
}
}
}
Invalid request body
Invalid session or api key
- application/json
- Schema
- Example (from schema)
Schema
- status string
Status is Error
error object
Error details describing why PAM rejected the request
message stringcode stringPam Error code "PAM_ERR_SESSION_NOT_FOUND" or "PAM_ERR_UNDEFINED"
{
"status": "Error",
"error": {
"message": "string",
"code": "PAM_ERR_SESSION_NOT_FOUND"
}
}