{"templateId":"openapi_docs","sharedDataIds":{"openAPIDocsStore":"oas-@l10n/ko/api/liveops/index.yaml","sidebar":"sidebar-@l10n/ko/liveops-en.sidebars.yaml"},"props":{"definitionId":"@l10n/ko/api/liveops/index.yaml","dynamicMarkdocComponents":[],"baseSlug":"/ko/api/liveops","seo":{"title":"LiveOps API","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"itemId":"","disableAutoScroll":true,"metadata":{"type":"openapi","title":"LiveOps API","description":"# 개요\n\n* **버전:** 2.0.0\n* **서버**: `https://store.xsolla.com/api`\n* **[이메일로 문의하기](mailto:integration@xsolla.com)**\n* **문의 URL:** https://xsolla.com/\n* **필수 TLS 버전:** 1.2\n\nLiveOps는 프로모션 및 개인 맞춤형 제안을 통해 지속적인 플레이어 참여를 유도하는 도구입니다.\n\n다음 기능을 관리하기 위해 API를 사용하십시오:\n\n* **Promotions**- 쿠폰, 프로모션 코드, 할인 및 보너스 캠페인을 생성하고 관리합니다.\n* **Personalization** - 특정 인증된 사용자에게만 아이템 카탈로그를 디스플레이하고 프로모션을 적용할 조건을 지정합니다.\n* **Promotion limits** - 사용자가 프로모션을 사용할 수 있는 횟수를 제한하고 이러한 제한의 예약된 재설정을 구성합니다.\n* **Reward chains & Value points** - 가치 포인트 축적에 연결된 보상 진행을 구성합니다.\n* **Daily chains** - 정기적인 일일 보상을 설정하여 정기적인 로그인을 유도합니다.\n* **Offer chains** - 단계별 가격 책정 및 무료 보상 옵션을 포함한 순차적 구매 제안을 구축합니다.\n* **Upsell** - 사용자가 추가 가치를 가진 아이템을 구매하도록 제안하는 판매 방법입니다.\n\n## API 호출\n\nAPI는 **following groups**으로 구분됩니다:\n\n* **<nt>Admin</nt>** - 캠페인 및 체인 구성을 생성, 업데이트, 활성화 및 삭제하는 호출입니다. 판매자 또는 프로젝트 자격 증명을 사용한 [기본 액세스 인증](https://developers.xsolla.com/ko/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth)을 통해 인증됩니다.\n* **<nt>Client</nt>** - 인증된 최종 사용자를 대신하여 사용 가능한 프로모션을 검색하고, 활성 체인을 가져오고, 코드를 사용하고, 보상을 청구하는 호출입니다. 사용자 JWT를 통해 인증됩니다.\n\n# 인증\n\nAPI 호출은 사용자 또는 프로젝트를 대신하여 인증이 필요합니다. 사용된 인증 체계는 각 호출 설명의 **보안** 섹션에 명시되어 있습니다.\n\n## 사용자의 JWT를 사용한 인증\n\n사용자의 JWT 인증은 브라우저, 모바일 애플리케이션 또는 게임에서 요청이 전송될 때 사용됩니다. 기본적으로 `XsollaLoginUserJWT` 체계가 적용됩니다. 토큰 생성 방법에 대한 자세한 내용은 [엑솔라 로그인 API 문서](/ko/api/login/authentication-schemes#getting-user-token)를 참조하십시오.\n\n토큰은 다음 형식으로 `Authorization` 헤더에 전달됩니다: `Authorization: Bearer <user_JWT>`, 여기에서 `<user_JWT>`는 사용자 토큰입니다. 이 토큰은 사용자를 식별하고 개인화된 데이터에 대한 액세스를 제공합니다.\n\n또는 [결제 UI를 여는 토큰](/ko/api/pay-station/token/create-token)을 사용할 수 있습니다.\n\n## 기본 HTTP 인증\n\n기본 HTTP 인증은 서버 간 상호작용에 사용되며, API 호출이 사용자의 브라우저나 모바일 애플리케이션이 아닌 서버에서 직접 전송될 때 사용됩니다. 일반적으로 [API 키](/ko/api/getting-started/#api_keys_overview)를 사용한 HTTP 기본 인증이 사용됩니다.\n\n<div class=\"note\"><b>참고</b><br><br>API 키는 기밀이며 클라이언트 애플리케이션에 저장하거나 사용해서는 안 됩니다.</div>\n\n기본 서버 측 인증을 사용하면 모든 API 요청에 다음 헤더를 포함해야 합니다:\n\n- `basicAuth`의 경우 - `Authorization: Basic <your_authorization_basic_key>`, 여기에서 `your_authorization_basic_key`는 Base64로 인코딩된 `project_id:api_key` 쌍입니다.\n- `basicMerchantAuth`의 경우 - `Authorization: Basic <your_authorization_basic_key>`, 여기에서 `your_authorization_basic_key`는 Base64로 인코딩된 `merchant_id:api_key` 쌍입니다.\n\n[관리자 페이지](https://publisher.xsolla.com/)에서 매개 변수 값을 찾을 수 있습니다:\n\n- `merchant_id`는 다음 위치에 표시됩니다:\n  - **Company settings > Company**에서.\n  - 관리자 페이지의 모든 페이지에서 브라우저 주소 표시줄의 URL에. URL 형식은 다음과 같습니다: `https://publisher.xsolla.com/<merchant_id>`.\n- `project_id`는 다음 위치에 표시됩니다:\n  - 관리자 페이지에서 프로젝트 이름 옆.\n  - 관리자 페이지에서 프로젝트 작업 시 브라우저 주소 표시줄의 URL. URL 형식은 다음과 같습니다: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.\n- `api_key`는 생성 시에만 관리자 페이지에 표시되며 귀하의 측에서 안전하게 저장해야 합니다. API 키는 다음 섹션에서 생성할 수 있습니다:\n   - [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key)   - [Project settings > API key](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n<div class=\"notice\"><b>알림</b><br><br>필수 API 호출에 <code>project_id</code> 경로 매개 변수가 포함되지 않은 경우, 모든 회사 프로젝트에 대해 유효한 API 키를 사용하여 인증하십시오.</div>\n\nAPI 키 작업에 대한 자세한 내용은 [API 참조 문서](/ko/api/getting-started/#api_keys_overview)를 참조하십시오.\n\n## 게스트 액세스 지원을 통한 인증\n\n이 `AuthForCart` 인증 체계는 장바구니 구매에 사용되며 두 가지 모드를 지원합니다.\n\n1. **Authentication with a user's JWT.** 토큰은 `Authorization` 헤더에 다음 형식으로 전달됩니다: `Authorization: Bearer <user_JWT>`, 여기에서 `<user_JWT>`는 사용자 토큰입니다. 이 토큰은 사용자를 식별하고 개인화된 데이터에 대한 액세스를 제공합니다. 또는 [결제 UI를 여는 토큰](/ko/api/pay-station/token/create-token)을 사용할 수 있습니다.\n\n2. **Simplified mode without Authorization header.** 이 모드는 미인증 사용자만 사용하며, [게임 키 판매](/ko/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users)에만 적용할 수 있습니다. 토큰 대신 요청에 다음 헤더를 포함해야 합니다.\n   - 요청 ID와 `x-unauthorized-id`\n   - Base64로 인코딩된 사용자의 이메일 주소와 `x-user`\n\n## 유용한 링크\n\n- [상호작용 모델별 API 호출](https://developers.xsolla.com/ko/api/catalog/)\n- [엔드포인트 유형](https://developers.xsolla.com/ko/api/catalog/)\n- [오류 처리](https://developers.xsolla.com/ko/api/catalog/)\n- [API 키](https://developers.xsolla.com/ko/api/catalog/)\n\n# 핵심 엔티티 구조\n\n모든 유형의 아이템(가상 아이템, 번들, 인게임 재화, 키)은 유사한 데이터 구조를 사용합니다. 기본 구조를 이해하면 API 작업이 간소화되고 문서를 더 쉽게 탐색할 수 있습니다.\n\n<div class=\"note\"><b>참고</b><br><br>일부 호출에는 추가 입력란이 포함될 수 있지만 기본 구조는 변경되지 않습니다.</div>\n\n**식별**\n\n- `merchant_id`- [관리자 페이지](https://publisher.xsolla.com/)의 회사 ID\n- `project_id` - 관리자 페이지의 프로젝트 ID\n- `sku` - 프로젝트 내의 고유한 아이템 SKU\n\n**Store display**\n\n- `name` - 아이템 이름\n- `description` - 아이템 설명\n- `image_url` - 이미지 URL\n- `is_enabled` - 아이템 가용성\n- `is_show_in_store` - 카탈로그에 아이템이 표시되는지 여부\n\n카탈로그에서 아이템 가용성 관리에 대한 자세한 정보는 [문서](/ko/items-catalog/catalog-features/items-availability/)를 참조하세요.\n\n**Organization**\n\n- `type` - 아이템 유형, 예를 들어 가상 아이템(`virtual_item`) 또는 번들(`bundle`)\n- `groups` - 아이템이 속한 그룹\n- `order` - 카탈로그 내 디스플레이 순서\n\n**판매 조건**\n\n- `prices` - 실제 화폐 또는 인게임 재화로 된 가격\n- `limits` - 구매 한도\n- `periods` - 가용 기간\n- `regions` - 지역 제한\n\n**핵심 엔티티 구조 예시:**\n\n```json\n{\n  \"attributes\": [],\n  \"bundle_type\": \"virtual_currency_package\",\n  \"content\": [\n    {\n      \"description\": {\n        \"en\": \"Main in-game currency\"\n      },\n      \"image_url\": \"https://.../image.png\",\n      \"name\": {\n        \"en\": \"Crystals\",\n        \"de\": \"Kristalle\"\n      },\n      \"quantity\": 500,\n      \"sku\": \"com.xsolla.crystal_2\",\n      \"type\": \"virtual_currency\"\n    }\n  ],\n  \"description\": {\n    \"en\": \"Crystals x500\"\n  },\n  \"groups\": [],\n  \"image_url\": \"https://.../image.png\",\n  \"is_enabled\": true,\n  \"is_free\": false,\n  \"is_show_in_store\": true,\n  \"limits\": {\n    \"per_item\": null,\n    \"per_user\": null,\n    \"recurrent_schedule\": null\n  },\n  \"long_description\": null,\n  \"media_list\": [],\n  \"name\": {\n    \"en\": \"Medium crystal pack\"\n  },\n  \"order\": 1,\n  \"periods\": [\n    {\n      \"date_from\": null,\n      \"date_until\": \"2020-08-11T20:00:00+03:00\"\n    }\n  ],\n  \"prices\": [\n    {\n      \"amount\": 20,\n      \"country_iso\": \"US\",\n      \"currency\": \"USD\",\n      \"is_default\": true,\n      \"is_enabled\": true\n    }\n  ],\n  \"regions\": [],\n  \"sku\": \"com.xsolla.crystal_pack_2\",\n  \"type\": \"bundle\",\n  \"vc_prices\": []\n}\n```\n\n# 기본 구매 흐름\n\n엑솔라 API를 사용하면 아이템 카탈로그 검색, 장바구니 관리, 주문 생성 및 상태 추적을 포함한 인게임 스토어 로직을 구현할 수 있습니다. 통합 시나리오에 따라 API 호출은 **Admin**와 **Catalog** 하위 섹션으로 구분되며, 서로 다른 [인증 방식](/ko/api/catalog/section/authentication)을 사용합니다.\n\n다음 예시는 아이템 생성부터 구매까지 스토어 설정 및 운영을 위한 기본 흐름을 보여줍니다.\n\n## 아이템 및 그룹 생성(관리자)\n\n가상 아이템, 번들, 인게임 재화와 같은 스토어의 아이템 카탈로그를 생성합니다.\n\n예시 API 호출:\n- [가상 아이템 생성](/ko/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [번들 생성](/ko/api/catalog/bundles-admin/admin-create-bundle)\n- [인게임 재화 생성](/ko/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)\n\n## 프로모션, 체인 및 한도 설정(관리자)\n\n할인, 보너스, 일일 보상 또는 혜택 체인과 같은 사용자 획득 및 수익화 도구를 구성합니다.\n\n예시 API 호출:\n- [보너스 프로모션 생성](/ko/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [일일 보상 생성](/ko/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [고유 카탈로그 혜택 프로모션 생성](/ko/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)\n\n## 아이템 정보 가져오기(클라이언트)\n\n애플리케이션에서 아이템 디스플레이를 구성합니다.\n\n<div class=\"notice\">\n  <b>알림</b><br><br>\n    사용자 카탈로그를 구축하는 데 관리자 하위 섹션의 API 호출을 사용하지 마십시오. 이러한 API 호출에는 <a href=\"https://developers.xsolla.com/ko/api/getting-started/#api_rate_limits\" target=\"_blank\">속도 제한</a>이 있으며 사용자 트래픽을 위한 것이 아닙니다.\n</div>\n\n<br>\n\nAPI 호출 예시:\n- [가상 아이템 목록 가져오기](/ko/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [아이템 그룹 목록 가져오기](/ko/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [번들 목록 가져오기](/ko/api/catalog/bundles-catalog/get-bundle-list)\n- [판매 가능한 아이템 목록 가져오기](/ko/api/catalog/common-catalog/get-sellable-items)\n\n<div class=\"note\">\n  <b>참고</b><br><br>\n    기본적으로 카탈로그 API 호출은 요청 시점에 스토어에서 현재 사용 가능한 아이템을 반환합니다. 아직 사용 가능하지 않거나 더 이상 사용 가능하지 않은 아이템을 검색하려면 카탈로그 요청에 <code>\"show_inactive_time_limited_items\": 1</code> 매개 변수를 포함하십시오.\n</div>\n\n## 아이템 판매\n\n다음 방법을 사용하여 아이템을 판매할 수 있습니다:\n- 빠른 구매 - 하나의 SKU를 여러 번 판매합니다.\n- 장바구니 구매 - 사용자가 장바구니에 아이템을 추가하고, 제거하고, 수량을 업데이트합니다.\n\n아이템이 실제 돈 대신 인게임 재화로 구매된 경우, [인게임 재화로 구매한 특정 아이템으로 주문 생성](/ko/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency) API 호출을 사용하십시오. 결제 UI는 필요하지 않으며, API 호출이 실행될 때 청구가 처리됩니다.\n\n무료 아이템 구매의 경우, [특정 무료 아이템으로 주문 생성](/ko/api/catalog/free-item/create-free-order-with-item) API 호출 또는 [무료 장바구니로 주문 생성](/ko/api/catalog/free-item/create-free-order) API 호출을 사용하십시오. 결제 UI는 필요하지 않으며, 주문은 즉시 <code>done</code> 상태로 설정됩니다.\n\n### 빠른 구매\n\n클라이언트 측 API 호출을 사용하여 [특정 아이템으로 주문 생성](/ko/api/catalog/payment-client-side/create-order-with-item)을 수행합니다. 호출은 결제 UI를 열기 위한 토큰을 반환합니다.\n\n<div class=\"note\">\n  <b>참고</b><br><br>\n    할인 정보는 결제 UI에서만 사용자에게 제공됩니다. 프로모션 코드는 지원되지 않습니다.\n</div>\n\n### 장바구니 구매\n\n장바구니 설정 및 구매는 클라이언트 또는 서버 측에서 수행할 수 있습니다.\n\n**클라이언트에서 장바구니 설정 및 구매**\n\n아이템 추가 및 제거 로직을 직접 구현하십시오. 장바구니 설정을 위한 API 호출 전에는 구매에 적용될 프로모션에 대한 정보를 알 수 없습니다. 이는 총 비용과 추가 보너스 아이템의 세부 사항을 알 수 없음을 의미합니다.\n\n다음 장바구니 로직을 구현하십시오:\n1. 플레이어가 장바구니를 채운 후, [아이템으로 장바구니 채우기](/ko/api/shop-builder/operation/cart-fill/) API 호출을 사용하십시오. 호출은 선택한 아이템에 대한 현재 정보를 반환합니다 (할인 전후 가격, 보너스 아이템).\n2. 사용자 작업에 따라 장바구니 내용을 업데이트하십시오:\n   - 아이템을 추가하거나 아이템 수량을 변경하려면 [장바구니 ID로 장바구니 아이템 업데이트](/ko/api/shop-builder/operation/put-item-by-cart-id/) API 호출을 사용하십시오.\n   - 아이템을 제거하려면 [장바구니 ID로 장바구니 아이템 삭제](/ko/api/shop-builder/operation/delete-item-by-cart-id/) API 호출을 사용하십시오.\n\n<div class=\"note\">\n  <b>참고</b><br><br>\n    현재 장바구니 상태를 얻으려면 현재 사용자의 장바구니 가져오기 API 호출을 사용하십시오.\n</div>\n\n3. [현재 장바구니의 모든 아이템으로 주문 생성](/ko/api/shop-builder/operation/create-order/) API 호출을 사용하십시오. 호출은 주문 ID와 결제 토큰을 반환합니다. 새로 생성된 주문은 기본적으로 <code>new</code> 상태로 설정됩니다.\n\n**서버에서 장바구니 설정 및 구매**\n\n이 설정 옵션은 장바구니 설정에 더 많은 시간이 걸릴 수 있습니다. 장바구니의 각 변경 사항은 API 호출을 동반해야 하기 때문입니다.\n\n다음 장바구니 로직을 구현하십시오:\n1. 플레이어가 장바구니를 채운 후, [아이템으로 장바구니 채우기](/ko/api/catalog/cart-server-side) API 호출을 사용하십시오. 호출은 선택한 아이템에 대한 현재 정보를 반환합니다(할인 전후 가격, 보너스 아이템).\n2. [현재 장바구니의 모든 아이템으로 주문 생성](/ko/api/shop-builder/operation/create-order/) API 호출을 사용하십시오. 호출은 주문 ID와 결제 토큰을 반환합니다. 새로 생성된 주문은 기본적으로 <code>new</code> 상태로 설정됩니다.\n\n## 결제 UI 열기\n\n반환된 토큰을 사용하여 새 창에서 결제 UI를 엽니다. 결제 UI를 여는 다른 방법은 [문서](/ko/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui)에 설명되어 있습니다.\n\n| 작업                          | 엔드포인트                                                                  |\n|:--------------------------------|:--------------------------------------------------------------------------|\n| 프로덕션 환경에서 열기. | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |\n| 샌드박스 모드에서 열기.           | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |\n\n<div class=\"note\">\n  <b>참고</b><br><br>\n    개발 및 테스트 중에는 샌드박스 모드를 사용하세요. 테스트 구매는 실제 계정에 청구되지 않습니다. <a href=\"https://developers.xsolla.com/ko/dev-resources/testing/test-cards/\">테스트 은행 카드</a>를 사용할 수 있습니다.\n\n    첫 번째 실제 결제가 이루어진 후에는 엄격한 샌드박스 결제 정책이 적용됩니다. 샌드박스 모드에서의 결제는 [관리자 페이지 > 회사 설정 > 사용자](https://publisher.xsolla.com/0/settings/users)에 지정된 사용자에게만 가능합니다.\n\n    실제 통화로 인게임 재화와 아이템을 구매하려면 엑솔라와의 라이선스 계약을 체결해야 합니다. 이를 위해 [관리자 페이지](https://publisher.xsolla.com/)에서 **Agreements & Taxes > Agreements**으로 이동하여 계약 양식을 작성하고 확인을 기다리세요. 계약 검토에는 최대 3영업일이 소요될 수 있습니다.\n</div>\n\n샌드박스 모드를 활성화하거나 비활성화하려면 빠른 구매 및 장바구니 구매 요청에서 `sandbox` 매개 변수의 값을 변경하세요. 기본적으로 샌드박스 모드는 꺼져 있습니다.\n\n가능한 주문 상태:\n- `new` - 주문 생성됨\n- `paid` - 결제 완료됨\n- `done` - 아이템 전달됨\n- `canceled` - 주문 취소됨\n- `expired` -주문 만료됨\n\n다음 방법 중 하나를 사용하여 주문 상태를 추적하세요:\n- [서버에 구성된 웹훅](/ko/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [짧은 폴링](/ko/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling)\n- [WebSocket API](/ko/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_websocket_api)\n\n## 유용한 링크\n\n- 인증\n- [상호작용 모델에 따른 API 호출](/ko/api/catalog/section/authentication)\n- [결제 테스트](/ko/dev-resources/testing/general-info/#general_overview)\n- [주문 상태 추적 설정](/ko/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [웹훅](/ko/webhooks/overview)\n- [속도 제한](/ko/api/login/rate-limits)\n- [오류 처리](/ko/api/getting-started/#api_errors_handling)\n- [API 키](/ko/api/getting-started/#api_keys_overview)\n\n# 페이지 매김\n\n대량의 레코드를 반환하는 API 호출(예: 카탈로그 작성 시)은 데이터를 페이지 단위로 반환합니다. 페이지 매김은 단일 API 응답에서 반환되는 항목 수를 제한하고 이후 페이지를 순차적으로 검색할 수 있는 메커니즘입니다.\n\n반환되는 아이템 수를 제어하기 위해 다음 매개 변수를 사용하세요:\n\n- `limit` - 페이지당 항목 수\n- `offset` - 페이지의 첫 번째 항목의 인덱스(번호는 0부터 시작)\n- `has_more` - 다른 페이지가 있는지 여부를 나타냄\n- `total_items_count` - 총 항목 수\n\n요청 예시:\n\n```\nGET /items?limit=20&offset=40\n```\n\n응답 예시:\n\n```json\n{\n  \"items\": [...],\n  \"has_more\": true,\n  \"total_items_count\": 135\n}\n```\n\n응답이 `has_more = false`를 반환할 때까지 후속 요청을 보내는 것이 좋습니다.\n\n# 날짜 및 시간 형식\n\n날짜 및 시간 값은 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 형식으로 전달됩니다.\n\n다음이 지원됩니다:\n\n- UTC 오프셋\n- 항목 표시 시간 제한이 없는 경우 `null` 값\n- 일부 입력란에서 사용되는 [Unix 타임스탬프](https://www.unixtimestamp.com/)(초 단위)\n\n형식: `YYYY-MM-DDTHH:MM:SS±HH:MM`\n\n예시: `2026-03-16T10:00:00+03:00`\n\n# 현지화\n\n엑솔라는 항목 이름 및 설명과 같은 사용자 대상 입력란의 현지화를 지원합니다. 현지화된 값은 언어 코드를 키로 사용하는 개체로 전달됩니다. 지원되는 언어의 전체 목록은 [문서](/ko/doc/shop-builder/references/supported-languages/)에서 확인할 수 있습니다.\n\n**Supported fields**\n\n다음 매개 변수에 대해 현지화를 지정할 수 있습니다:\n\n- `name`\n- `description`\n- `long_description`\n\n**Locale format**\n\n로케일 키는 다음 형식 중 하나로 지정할 수 있습니다:\n\n- 두 글자 언어 코드: `en`, `ru`\n- 다섯 글자 언어 코드: `en-US`, `ru-RU`, `de-DE`\n\n**Examples**\n\n두 글자 언어 코드 예시:\n\n```json\n{\n  \"name\": {\n    \"en\": \"Starter Pack\",\n    \"ru\": \"Стартовый набор\"\n  }\n}\n```\n\n다섯 글자 언어 코드 예시:\n\n```json\n{\n  \"description\": {\n    \"en-US\": \"Premium bundle\",\n    \"de-DE\": \"Premium-Paket\"\n  }\n}\n```\n\n# 오류 응답 형식\n\n오류가 발생하면, API는 HTTP 상태와 JSON 응답 본문을 반환합니다. 스토어 관련 오류의 전체 목록은 [문서](/ko/dev-resources/references/errors/store-errors/)에서 확인할 수 있습니다.\n\n**Response example:**\n\n```json\n{\n  \"errorCode\": 1102,\n  \"errorMessage\": \"Validation error\",\n  \"statusCode\": 422,\n  \"transactionId\": \"c9e1a...\"\n}\n```\n\n- `errorCode` - 오류 코드.\n- `errorMessage` - 짧은 오류 설명.\n- `statusCode` - HTTP 응답 상태.\n- `transactionId` - 요청 ID. 일부 경우에만 반환됩니다.\n- `errorMessageExtended` - 요청 매개 변수와 같은 추가 오류 세부 정보. 일부 경우에만 반환됩니다.\n\n**Extended response example:**\n\n```json\n{\n  \"errorCode\": 7001,\n  \"errorMessage\": \"Chain not found\",\n  \"errorMessageExtended\": {\n    \"chain_id\": \"test_chain_id\",\n    \"project_id\": \"test_project_id\",\n    \"step_number\": 2\n  },\n  \"statusCode\": 404\n}\n```\n\n**Common HTTP status codes**\n\n- `400` - 잘못된 요청\n- `401` - 인증 오류\n- `403` - 권한 부족\n- `404` - 리소스를 찾을 수 없음\n- `422` - 유효성 검사 오류\n- `429` - 속도 제한 초과\n\n**Recommendations**\n\n- HTTP 상태와 응답 본문을 함께 처리하세요.\n- `errorCode`를 사용하여 애플리케이션 로직과 관련된 오류를 처리하세요.\n- `transactionId`를 사용하여 오류 분석 시 요청을 더 빠르게 식별하세요."},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"xsolla.redocly.app","port":4000,"ipAddress":"216.73.217.32"},"lang":"ko","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"realm"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/ko/api/liveops","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}