BETCORE Aggregator
Provider IntegrationCasino Integration
Provider IntegrationCasino Integration
Visit Betcore website
Follow Betcore on Instagram
Follow Betcore on LinkedIn
Follow Betcore on Youtube
  1. Bets
  • Getting Started
  • Integrate BETCORE Games (Casino)
    • Integrate BETCORE Gems (Casino)
    • WebFrame Connection
    • Aggregator API for Casino
      • Authentication
        • Verify
        • Jwks
        • Token
      • Payments
        • Accept
      • Cashback
        • Accept
    • Casino API for Aggregator
      • Users
        • Auth
        • Data
      • Payments
        • Info
        • Make
        • Make-list
        • Close
      • Cashback
        • Make
  • Integrate as Games Provider
    • Integrate as Games Provider
    • Provider API for Aggregator
      • Games
        • Games
        • Launch
    • Aggregator API for Provider
      • Get Balance
        • Balance
      • Bets
        • PayIn
          POST
        • PayOut
          POST
        • PayInOut
          POST
        • Refund
          POST
  • Feed
    • Feed Integration
    • REST API
      • Authorization
        • Token
      • Games
        • Info
        • Translations
      • Jackpot
        • Accumulated
    • Websocket
      • SubOnWholeGamesInfo
  • SubOnWholeGamesInfo
  1. Bets

PayIn

POST
/v1/sessions/{{sessionId}}/bets/pay-in

Overview#

The PayIn endpoint is used to register a user's bet when the Game Provider sends a request from their system to the Aggregator. Essentially, this method “accepts” the bet by deducting or locking the corresponding funds from a user’s account before the game outcome is determined. It represents the initial phase of the bet lifecycle, ensuring that the wagering amount is properly recorded and linked through a unique identifier.
The PayIn method allows to:
Accept the Bet: It registers the bet by deducting or earmarking the wagered amount from the user's account as the first step of processing a bet.
Link Cash Flow Transactions: The bet identifier provided by the Game Provider (via the field betId) is essential, as it unites all subsequent cash flow transactions (like payouts or refunds) to a single bet. This ensures consistency and traceability across the betting lifecycle.
Update User Balance: After the bet is accepted, the user’s account balance is updated accordingly, which is reflected in the response.

Security and Authentication#

The PayIn endpoint, like other API requests within this integration, requires strict authentication to ensure that only authorized parties can interact with it. This is achieved through the use of mandatory HTTP headers. Please see the required headers below in the Header Params section.
📌
Signature of the request shall be calculated using HMAC-SHA256 algorithm and sent in "X-Sign" header of the request.
Please see How to calculate the X-Sign value.

Path Parameters#

ParameterTypeRequiredDescription
sessionIdstringYesGame Session id.

Request

Header Params
X-Counterparty-Id
string 
required
The public identifier of the subject provided during the onboarding process.
Example:
933a215f-a9e6-4f88-9d91-52a87cd50499
X-Timestamp
number 
required
13 digits Unix epoch timestamp. Request generation time. All requests longer than 30 seconds will be considered expired.
Example:
1719766120806
X-Request-Id
string 
required
A random sequence of 32 hexadecimal digits (Nonce) representing a unique request identifier.
Example:
5a0679b6e5fa48f6892c777b0fa92392
X-Sign
string 
required
HMAC.SHA256 message signature.
Example:
c4d62f77cdfaadb6690b3bcbe5a0ca9ef1e5bf41d746d361a1269558eeb7ccd1
Body Params application/json
betId
string 
required
Unique ID of the user's bet in the Game Provider's system.
This ID unites cash flow transactions and is an end-to-end identifier for them.
It is a unique key within one cash flow transaction.
gameRoundId
string 
optional
Game round ID, unique for each game iteration. Single identifier between users in case of a common game round. Provided by the Game Provider.
betAmount
number 
required
Bet amount.
Example
{
  "betId": "4178696881",
  "gameRoundId": "c5dfa465-93fc-4e8e-a643-954747f74ca1",
  "betAmount": 10.5
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location -g --request POST 'https://mock.apidog.com/m1/820627-0-default/v1/sessions/{{sessionId}}/bets/pay-in' \
--header 'X-Counterparty-Id: 933a215f-a9e6-4f88-9d91-52a87cd50499' \
--header 'X-Timestamp: 1719766120806' \
--header 'X-Request-Id: 5a0679b6e5fa48f6892c777b0fa92392' \
--header 'X-Sign: c4d62f77cdfaadb6690b3bcbe5a0ca9ef1e5bf41d746d361a1269558eeb7ccd1' \
--header 'Content-Type: application/json' \
--data-raw '{
  "betId": "4178696881",
  "gameRoundId": "c5dfa465-93fc-4e8e-a643-954747f74ca1",
  "betAmount": 10.5
}'

Responses

🟢200Success
application/json
Body
transactionId
string 
optional
Aggregator bet transaction ID.
balance
number 
optional
User balance.
_responseCode
integer 
required
Response code.
Example
{
  "transactionId": "388",
  "balance": 1588.5,
  "_responseCode": 1,
}
🟠400Bad Request
Previous
Bets
Next
PayOut
Built with