본문으로 건너뛰기
한국어 번역 진행 중한국어 문서를 완성하는 동안 일부 가이드와 API 설명은 아직 영어로 표시될 수 있습니다.

베팅 기록

사용 사례

이 엔드포인트들을 사용하여 브랜드 및 플레이어의 베팅 내역을 조회합니다. 두 가지 별도의 엔드포인트 그룹이 있습니다:

  • 라이브/슬롯 베팅 (/api/bet) -- 라이브 카지노(Live Casino) 및 슬롯(Slot) 게임 프로바이더의 라운드 기반 베팅입니다.
  • 스포츠 베팅 (/api/sports-bet) -- 프리매치(Pre-match) 및 인플레이(In-play) 스포츠 베팅으로, 단일 베팅 내에 여러 선택지(레그, Leg)를 포함할 수 있습니다.

일반적인 사용 사례: 플레이어 계정 명세서 생성, 프로바이더 정산 대사, 특정 거래 감사, 고객 지원 조사 등.


전체 흐름 -- 라이브/슬롯 베팅

단계 1 -- 베팅 목록 조회

GET /api/bet/list

라이브 카지노 및 슬롯 베팅의 페이지네이션된 목록을 선택적 필터와 함께 반환합니다.

쿼리 파라미터:

파라미터타입기본값제약 조건설명
pageinteger1>= 1페이지 번호
sizeinteger201--100페이지당 항목 수
brand_idinteger--선택 사항특정 브랜드의 베팅으로 필터링
player_idinteger--선택 사항특정 플레이어의 베팅으로 필터링
statusinteger--선택 사항베팅 상태로 필터링 (아래 상태 코드 참조)
provider_codestring--선택 사항게임 프로바이더 코드로 필터링 (예: "evolution")

베팅 상태 코드:

의미
0대기 중 (라운드 진행 중)
1정산 완료 (라운드 완료)
2취소 / 롤백

요청 예시 -- 특정 플레이어의 모든 베팅:

GET /api/bet/list?page=1&size=20&player_id=8801

요청 예시 -- 브랜드의 정산 완료된 베팅, 프로바이더별 필터링:

GET /api/bet/list?page=1&size=50&brand_id=42&status=1&provider_code=evolution

응답:

{
"total": 4820,
"page": 1,
"page_size": 20,
"items": [
{
"id": 120001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 3,
"provider_code": "evolution",
"game_id": 501,
"game_code": "baccarat_main",
"transaction_id": "evo_txn_00112233",
"round_id": "evo_rnd_99887766",
"bet_amount": "10000.00",
"payout_amount": "0.00",
"win_loss": "-10000.00",
"status": 1,
"result_type": 0,
"balance_before": "55200.00",
"balance_after": "45200.00",
"settled_at": "2026-04-06T10:15:32Z",
"created_at": "2026-04-06T10:15:00Z"
}
]
}
필드설명
transaction_id프로바이더에서 제공하는 고유 거래 식별자
round_id프로바이더에서 제공하는 게임 라운드 식별자
bet_amount베팅 금액
payout_amount지급 금액 (패배 시 0)
win_loss순 결과: payout_amount - bet_amount (음수 = 패배)
result_type프로바이더별 결과 분류; 해당 없는 경우 null
balance_before / balance_after해당 베팅 전후의 플레이어 월렛 잔액
settled_at라운드 정산 시점; 대기 중인 베팅의 경우 null

단계 2 -- 베팅 상세 조회

GET /api/bet/{bet_id}

내부 ID를 기준으로 단일 베팅 기록을 반환합니다.

경로 파라미터: bet_id -- 베팅의 숫자 ID.

응답: 단일 BetResponse 객체 (목록 응답의 항목과 동일한 형태).

{
"id": 120001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 3,
"provider_code": "evolution",
"game_id": 501,
"game_code": "baccarat_main",
"transaction_id": "evo_txn_00112233",
"round_id": "evo_rnd_99887766",
"bet_amount": "10000.00",
"payout_amount": "0.00",
"win_loss": "-10000.00",
"status": 1,
"result_type": 0,
"balance_before": "55200.00",
"balance_after": "45200.00",
"settled_at": "2026-04-06T10:15:32Z",
"created_at": "2026-04-06T10:15:00Z"
}

해당 베팅이 존재하지 않거나 다른 팀에 속한 경우 404 Not Found가 반환됩니다.


전체 흐름 -- 스포츠 베팅

단계 3 -- 스포츠 베팅 목록 조회

GET /api/sports-bet/list

스포츠 베팅의 페이지네이션된 목록을 선택적 필터와 함께 반환합니다.

쿼리 파라미터:

파라미터타입기본값제약 조건설명
pageinteger1>= 1페이지 번호
sizeinteger201--100페이지당 항목 수
brand_idinteger--선택 사항특정 브랜드의 베팅으로 필터링
player_idinteger--선택 사항특정 플레이어의 베팅으로 필터링
statusinteger--선택 사항베팅 상태로 필터링 (라이브/슬롯 베팅과 동일한 코드)

요청 예시:

GET /api/sports-bet/list?page=1&size=20&brand_id=42&status=1

응답:

{
"total": 891,
"page": 1,
"page_size": 20,
"items": [
{
"id": 30001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 12,
"provider_code": "betconstruct",
"bet_id": "bc_bet_44556677",
"odds": "2.50",
"stake": "20000.00",
"payout": "50000.00",
"win_loss": "30000.00",
"parlay": 1,
"status": 1,
"balance_before": "100000.00",
"balance_after": "130000.00",
"settled_at": "2026-04-06T14:30:00Z",
"created_at": "2026-04-06T12:00:00Z"
}
]
}
필드설명
bet_id스포츠 프로바이더에서 제공하는 외부 베팅 식별자
odds베팅의 종합 배당률 (단일 레그 베팅에서 배당률이 레그에 있는 경우 null일 수 있음)
stake베팅 금액
payout지급 금액 (패배 시 0)
win_loss순 결과: payout - stake
parlay1 = 팔레이(다중 레그), 0 = 단일

단계 4 -- 스포츠 베팅 상세 조회

GET /api/sports-bet/{sports_bet_id}

단일 스포츠 베팅과 레그(선택지) 상세 정보를 반환합니다.

경로 파라미터: sports_bet_id -- 스포츠 베팅의 숫자 ID.

응답:

{
"id": 30001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 12,
"provider_code": "betconstruct",
"bet_id": "bc_bet_44556677",
"odds": "2.50",
"stake": "20000.00",
"payout": "50000.00",
"win_loss": "30000.00",
"parlay": 1,
"status": 1,
"balance_before": "100000.00",
"balance_after": "130000.00",
"settled_at": "2026-04-06T14:30:00Z",
"created_at": "2026-04-06T12:00:00Z",
"lines": [
{
"id": 60001,
"sports_bet_id": 30001,
"line_id": "bc_line_1122",
"event_name": "Manchester United vs Arsenal",
"league_name": "Premier League",
"market": "Match Winner",
"home_name": "Manchester United",
"away_name": "Arsenal",
"odds": "2.50",
"score": "2-1",
"status": 1,
"is_live": 0,
"created_at": "2026-04-06T12:00:00Z"
}
]
}

레그(Line) 필드:

필드설명
line_id프로바이더의 해당 선택지 식별자
event_name경기 또는 이벤트명
league_name대회 또는 리그명
market베팅 마켓 (예: "Match Winner", "Over/Under 2.5")
home_name / away_name팀명
odds해당 선택지의 배당률
score최종 스코어 문자열 (해당하는 경우)
status레그 정산 상태 (베팅 상태와 동일한 코드)
is_live1 = 인플레이 베팅, 0 = 프리매치

해당 스포츠 베팅이 존재하지 않거나 다른 팀에 속한 경우 404 Not Found가 반환됩니다.


주요 참고 사항

  • 라이브/슬롯 베팅과 스포츠 베팅은 별도의 엔드포인트에 있습니다. 라이브 카지노 및 슬롯에는 /api/bet/list를, 스포츠에는 /api/sports-bet/list를 사용합니다. 통합된 단일 목록 엔드포인트는 없습니다.
  • **size 파라미터(page_size 아님)**가 모든 베팅 목록 엔드포인트에서 페이지당 항목 수를 제어합니다. 최대값은 100입니다.
  • **대기 중인 베팅(status: 0)은 settled_at: null**이며, 라운드가 완료될 때까지 payout_amount / payout"0.00"입니다.
  • win_loss는 패배 베팅에서 음수입니다 (예: -10000.00은 플레이어가 10,000을 잃었음을 의미).
  • parlay: 1인 스포츠 베팅lines 배열에 여러 레그를 포함합니다. 단일 베팅(parlay: 0)은 일반적으로 하나의 레그를 가집니다.
  • **라이브/슬롯 베팅의 game_id, game_code, round_id, result_type**은 프로바이더 연동에 따라 null일 수 있습니다.
  • 결과는 최신 순으로 정렬됩니다 (id 기준 내림차순).