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

빠른 시작

이 가이드는 Ruby 플랫폼에서 처음부터 라이브 브랜드를 구축하기 위한 최소 단계를 안내합니다. 숙련된 개발자의 경우 전체 온보딩 절차에 약 30분이 소요됩니다.

사전 요구 사항

  • team_api_keyteam_api_secret이 할당된 Ruby 계정
  • REST API 및 HMAC-SHA256 서명에 대한 기본 지식
  • 테스트용 curl 또는 HTTP 클라이언트

1단계: API 자격 증명 수령

Ruby 담당 매니저가 다음을 제공합니다:

자격 증명설명
team_api_key모든 요청의 X-Team-Key 헤더에 포함하는 공개 키
team_api_secretHMAC-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_keyapi_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을 즉시 저장하십시오

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에서 발송되었는지 확인할 수 있습니다.

전체 콜백 요청/응답 사양은 심리스 월렛 개요를 참조하십시오.


다음 단계