브랜드 관리
사용 사례
이 엔드포인트들을 사용하여 Team 계정 하위의 브랜드(Brand)를 설정하고 관리합니다. 브랜드는 Ruby 플랫폼과 연동하는 개별 운영 속성(웹사이트, 앱 또는 제품)을 나타냅니다. 각 브랜드는 자체 API 인증 정보, 월렛 모드(Wallet Mode), 선불 잔액(Prepaid Balance) 및 프로바이더 허용 목록(Provider Whitelist)을 보유합니다.
일반적인 워크플로우:
- 새 브랜드 온보딩: 브랜드를 생성하고, 프로바이더 허용 목록을 구성한 후, 선불 잔액을 충전합니다.
- 운영 관리: 브랜드 설정을 업데이트하고, 선불 잔액을 충전하며, 프로바이더 허용 목록을 조정합니다.
전체 흐름
단계 1 -- 브랜드 생성
POST /api/brand/create
새 브랜드를 생성하고 API 인증 정보(api_key 및 api_secret)를 발급합니다.
요청 본문:
{
"name": "Ace Casino",
"code": "ace",
"wallet_mode": "seamless",
"callback_url": "https://ace-casino.example.com/ruby/callback",
"currency": "KRW"
}
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name | string | 예 | 브랜드 표시 이름 (최대 100자) |
code | string | 예 | 팀 내 고유 코드 (최대 50자) |
wallet_mode | string | 예 | "seamless" 또는 "transfer" |
callback_url | string | 아니오 | wallet_mode가 "seamless"인 경우 필수입니다. 끝에 슬래시(/)가 없어야 합니다. |
currency | string | 아니오 | 기본 통화 코드. 기본값은 "KRW"입니다. |
응답 (201 Created):
{
"id": 42,
"team_id": 7,
"name": "Ace Casino",
"code": "ace",
"api_key": "brk_a1b2c3d4e5f6",
"api_secret": "brs_9z8y7x6w5v4u3t2s1r0q",
"wallet_mode": "seamless",
"callback_url": "https://ace-casino.example.com/ruby/callback",
"ggr_limit_enabled": 0,
"prepaid_balance": "0.00",
"currency": "KRW",
"status": 1,
"created_at": "2026-04-06T09:00:00Z",
"updated_at": "2026-04-06T09:00:00Z"
}
중요:
api_secret은 이 응답에서만 반환됩니다. 조회 가능한 형태로 저장되지 않으므로, 생성 직후 즉시 복사하여 안전하게 보관하십시오. 분실한 경우 Ruby 지원팀에 연락하여 인증 정보를 교체해야 합니다.
단계 2 -- 브랜드 목록 조회
GET /api/brand/list
Team 하위의 모든 브랜드를 페이지네이션(Pagination)된 목록으로 반환합니다.
쿼리 파라미터:
| 파라미터 | 타입 | 기본값 | 제약 조건 | 설명 |
|---|---|---|---|---|
page | integer | 1 | >= 1 | 페이지 번호 |
page_size | integer | 20 | 1--100 | 페이지당 항목 수 |
요청 예시:
GET /api/brand/list?page=1&page_size=20
응답:
{
"total": 3,
"page": 1,
"page_size": 20,
"items": [
{
"id": 42,
"team_id": 7,
"name": "Ace Casino",
"code": "ace",
"api_key": "brk_a1b2c3d4e5f6",
"wallet_mode": "seamless",
"callback_url": "https://ace-casino.example.com/ruby/callback",
"ggr_limit_enabled": 0,
"prepaid_balance": "50000.00",
"currency": "KRW",
"status": 1,
"created_at": "2026-04-06T09:00:00Z",
"updated_at": "2026-04-06T09:00:00Z"
}
]
}
참고: api_secret은 목록 또는 상세 조회 응답에 포함되지 않습니다.
단계 3 -- 브랜드 업데이트
PUT /api/brand/{brand_id}
기존 브랜드의 하나 이상의 설정을 업데이트합니다. 모든 필드는 선택 사항이며, 변경하려는 필드만 포함하면 됩니다.
경로 파라미터: brand_id -- 브랜드의 숫자 ID.
요청 본문:
{
"name": "Ace Casino VIP",
"wallet_mode": "seamless",
"callback_url": "https://ace-casino.example.com/ruby/v2/callback",
"ggr_limit_enabled": 1,
"status": 1
}
| 필드 | 타입 | 설명 |
|---|---|---|
name | string | 새 표시 이름 (최대 100자) |
wallet_mode | string | "seamless" 또는 "transfer" |
callback_url | string | Seamless 콜백 URL (최대 500자) |
ggr_limit_enabled | integer | 0 = 비활성화, 1 = 활성화 |
status | integer | 0 = 비활성화, 1 = 활성화 |
응답 (200 OK): 전체 BrandResponse 객체 (목록 항목과 동일한 형태, api_secret 미포함).
브랜드 변경 사항은 내부 이벤트를 통해 플랫폼 전체에 자동으로 전파됩니다. 별도의 캐시 갱신 작업이 필요하지 않습니다.
단계 4 -- 선불 잔액 충전
POST /api/brand/{brand_id}/recharge
브랜드의 선불 잔액에 금액을 추가합니다. **트랜스퍼 월렛 모드(Transfer Wallet Mode)**에서 플레이어가 게임 라운드에 사용할 자금을 확보하기 위해 사용합니다.
경로 파라미터: brand_id -- 브랜드의 숫자 ID.
요청 본문:
{
"amount": "100000.00"
}
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
amount | decimal string | 예 | 추가할 금액. 0보다 커야 합니다. |
응답 (200 OK): 업데이트된 prepaid_balance가 포함된 전체 BrandResponse.
{
"id": 42,
"prepaid_balance": "150000.00",
...
}
단계 5 -- 프로바이더 허용 목록 조회
GET /api/brand/{brand_id}/providers
해당 브랜드에 현재 활성화된 게임 프로바이더 목록을 반환합니다.
경로 파라미터: brand_id -- 브랜드의 숫자 ID.
응답:
[
{
"id": 101,
"provider_id": 3,
"provider_code": "evolution",
"status": 1
},
{
"id": 102,
"provider_id": 7,
"provider_code": "pragmatic",
"status": 1
}
]
단계 6 -- 프로바이더 허용 목록 업데이트
POST /api/brand/{brand_id}/providers
브랜드의 전체 프로바이더 허용 목록을 한 번의 작업으로 교체합니다.
경로 파라미터: brand_id -- 브랜드의 숫자 ID.
요청 본문:
{
"provider_ids": [3, 7, 12]
}
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
provider_ids | array of integers | 예 | 활성화할 프로바이더 ID의 전체 목록. 기존 허용 목록을 완전히 교체합니다. |
응답: 업데이트된 허용 목록 배열 (위의 GET 응답과 동일한 형태).
전체 교체 방식: 기존 허용 목록은 폐기되고 제출된 목록으로 교체됩니다. 단일 프로바이더를 추가하려면, 먼저 현재 목록을 GET으로 조회하고, 새
provider_id를 추가한 후, 전체 목록을 POST로 다시 전송하십시오.
주요 참고 사항
api_secret은 한 번만 표시됩니다. 브랜드 생성 직후 즉시 저장하십시오. API를 통해 다시 조회할 수 없습니다.- 프로바이더 ID는 허용 목록 및 한도 구성에 필요합니다. 팀에서 사용 가능한 프로바이더 ID 및 코드 목록은 Ruby 계정 담당자에게 문의하십시오.
- 허용 목록은 전체 교체 방식입니다. 빈
provider_ids배열([])을 제출하면 해당 브랜드의 모든 프로바이더가 비활성화됩니다. status: 0으로 설정하면 브랜드가 비활성화됩니다. 비활성화된 브랜드 하위의 플레이어는 게임에 접근할 수 없습니다.- 변경 사항은 자동으로 전파됩니다. 생성, 업데이트 또는 프로바이더 허용 목록 변경 후, 플랫폼이 내부 이벤트를 발생시킵니다. 연결된 서비스는 별도의 조치 없이 자동으로 업데이트됩니다.
callback_url에는 끝에 슬래시가 없어야 합니다.wallet_mode가"seamless"인 경우에 해당합니다. 예시:https://example.com/ruby/callback(올바름),https://example.com/ruby/callback/(잘못됨).