빠른 시작
이 가이드는 Ruby 플랫폼에서 처음부터 라이브 브랜드를 구축하기 위한 최소 단계를 안내합니다. 숙련된 개발자의 경우 전체 온보딩 절차에 약 30분이 소요됩니다.
사전 요구 사항
team_api_key와team_api_secret이 할당된 Ruby 계정- REST API 및 HMAC-SHA256 서명에 대한 기본 지식
- 테스트용
curl또는 HTTP 클라이언트
1단계: API 자격 증명 수령
Ruby 담당 매니저가 다음을 제공합니다:
| 자격 증명 | 설명 |
|---|---|
team_api_key | 모든 요청의 X-Team-Key 헤더에 포함하는 공개 키 |
team_api_secret | HMAC-SHA256 서명 계산에 사용하는 비밀 키 — 절대 공유하거나 노출하지 마십시오 |
계속 진행하기 전에 두 값을 환경 변수 또는 시크릿 매니저에 안전하게 저장하십시오.
2단계: HMAC-SHA256 서명 설정
Ruby API에 대한 모든 요청은 HMAC-SHA256으로 서명해야 합니다. 서명은 요청 타임스탬프, HTTP 메서드, 경로(쿼리 스트링 포함) 및 원시 요청 본문으로부터 계산됩니다.
전체 알고리즘, 실제 예제 및 Python, Node.js, Java 코드 샘플은 HMAC 서명 가이드를 참조하십시오.
모든 API 요청에 필요한 헤더:
X-Team-Key: <team_api_key>
X-Team-Timestamp: <유닉스 타임스탬프(초)>
X-Team-Signature: <HMAC-SHA256 서명>
Content-Type: application/json
3단계: 첫 번째 브랜드 생성
POST /api/brand/create를 사용하여 팀 하위에 브랜드를 생성합니다. 응답에는 브랜드의 api_key와 api_secret이 포함됩니다 — api_secret은 이 응답에서만 반환되며 이후에는 조회할 수 없습니다.
요청
아래 예시는 완전한 서명된 요청을 보여줍니다. 플레이스홀더 값을 실제 자격 증명으로 교체하십시오.
# 설정
TEAM_API_KEY="your_team_api_key"
TEAM_API_SECRET="your_team_api_secret"
BASE_URL="https://api-test.ruby-gaming.com"
TIMESTAMP=$(date +%s)
# 요청 본문 — 전송되는 것과 바이트 단위로 동일해야 합니다
BODY='{"name":"My First Brand","code":"brand01","wallet_mode":"transfer","currency":"KRW"}'
# HMAC-SHA256 서명 계산
# 서명 문자열: {timestamp}{METHOD}{path}{raw_body}
SIGNATURE=$(echo -n "${TIMESTAMP}POST/api/brand/create${BODY}" \
| openssl dgst -sha256 -hmac "${TEAM_API_SECRET}" -hex | awk '{print $2}')
# 요청 전송
curl -s -X POST "${BASE_URL}/api/brand/create" \
-H "Content-Type: application/json" \
-H "X-Team-Key: ${TEAM_API_KEY}" \
-H "X-Team-Timestamp: ${TIMESTAMP}" \
-H "X-Team-Signature: ${SIGNATURE}" \
-d "${BODY}"
응답
{
"id": 42,
"team_id": 7,
"name": "My First Brand",
"code": "brand01",
"api_key": "aBcDeFgH...",
"api_secret": "xYzSeCrEt...",
"wallet_mode": "transfer",
"callback_url": null,
"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 필드는 이 응답에서만 반환됩니다. 이후 브랜드를 조회하는 호출에서는 포함되지 않습니다. 계속 진행하기 전에 안전하게 저장하십시오.
주요 요청 필드:
| 필드 | 필수 | 설명 |
|---|---|---|
name | 예 | 사람이 읽을 수 있는 브랜드 이름 (최대 100자) |
code | 예 | 팀 내에서 고유한 짧은 식별자 (최대 50자) |
wallet_mode | 예 | "seamless" 또는 "transfer" |
callback_url | 아니오 | wallet_mode가 "seamless"인 경우 필수 |
currency | 아니오 | 기본값 "KRW" |
4단계: 제공업체 화이트리스트 구성
플레이어가 게임을 시작하려면 먼저 브랜드에 하나 이상의 제공업체를 화이트리스트에 등록해야 합니다. POST /api/brand/{id}/providers에 활성화할 provider_id 값의 전체 목록을 포함하여 사용합니다.
이 엔드포인트는 전체 화이트리스트를 교체합니다. 차이분이 아닌 의도하는 전체 목록을 항상 전송하십시오. 빈 배열을 전송하면 모든 제공업체가 제거됩니다.
BRAND_ID=42
BODY='{"provider_ids":[1,2]}'
TIMESTAMP=$(date +%s)
PATH_WITH_QUERY="/api/brand/${BRAND_ID}/providers"
SIGNATURE=$(echo -n "${TIMESTAMP}POST${PATH_WITH_QUERY}${BODY}" \
| openssl dgst -sha256 -hmac "${TEAM_API_SECRET}" -hex | awk '{print $2}')
curl -s -X POST "${BASE_URL}${PATH_WITH_QUERY}" \
-H "Content-Type: application/json" \
-H "X-Team-Key: ${TEAM_API_KEY}" \
-H "X-Team-Timestamp: ${TIMESTAMP}" \
-H "X-Team-Signature: ${SIGNATURE}" \
-d "${BODY}"
팀에서 사용할 수 있는 provider_id 값의 목록은 Ruby 담당 매니저에게 문의하십시오.
5단계: 심리스 콜백 구현 (심리스 모드 전용)
브랜드가 wallet_mode: "seamless"를 사용하는 경우, 게임 플레이 중 Ruby가 호출할 네 가지 콜백 엔드포인트를 구현해야 합니다:
| 콜백 | Ruby가 호출하는 시점 |
|---|---|
balance | 게임 세션이 시작될 때 (Ruby가 플레이어의 현재 잔액을 조회) |
debit | 플레이어가 베팅을 할 때 |
credit | 베팅이 정산되고 상금이 지급될 때 |
rollback | 이전에 차감된 베팅이 취소될 때 |
Ruby는 네 가지 모든 작업에 대해 callback_url을 호출합니다. 각 요청은 HMAC 서명으로 서명되어 있으므로 Ruby에서 발송되었는지 확인할 수 있습니다.
전체 콜백 요청/응답 사양은 심리스 월렛 개요를 참조하십시오.
다음 단계
- 서명 상세 정보 및 다국어 코드 샘플은 HMAC 서명 가이드를 참조하십시오
- 전체 브랜드 수명 주기(업데이트, 충전, 목록)는 브랜드 관리 가이드를 살펴보십시오
- API 오류를 적절하게 처리하려면 오류 코드를 검토하십시오