# Digital Distribution Hub

# Введение {% #overview %}

Digital Distribution Hub — новое решение Иксоллы, которое соединяет электронные и физические платежи через технологию push-платежей и e-commerce.

Данная документация включает в себя описание методов API для продуктов [Внутриигровой магазин](https://developers.xsolla.com/ru/doc/in-game-store/) и [Платежи](https://developers.xsolla.com/ru/doc/pay-station/). Используется два базовых URL-адреса:

* `https://store.xsolla.com/api` для групп **Общие**, **Каталог**, **Корзина** и **Заказ**.
* `https://ps.xsolla.com` для группы **Уведомления**.

Использование методов API из группы **Каталог** не требует авторизации. 

Чтобы использовать методы API из групп **Корзина** и **Заказ**, вам необходимо [создать токен](https://developers.xsolla.com/ru/digital-distribution-hub/common/user-token/create-user-token).

<div class='note'><b>Примечание</b><br><br>Данная документация не является полностью функциональным интерфейсом и представляет собой дизайн будущего API. В настоящее время вы можете использовать только методы из групп <b>Каталог</b> и <b>Уведомления</b>. Если вы хотите поделиться обратной связью, отправьте нам письмо по адресу <a href="mailto:techdoc@xsolla.com">techdoc@xsolla.com</a>.</div>

Version: 1.0.0

## Servers

```
https://store.xsolla.com/api
```

## Security

### AuthForClient

Используйте метод [Создать токен пользователя](https://developers.xsolla.com\/ru/api/digital-distribution-hub/operation/create-user-token) для создания токена.

Type: http
Scheme: bearer

### basicAuth

API Иксоллы использует базовую HTTP-аутентификацию. Все запросы к API должны содержать заголовок `Authorization: Basic <your_authorization_basic_key>`, где `your_authorization_basic_key` — это пара `distribution_hub_id:api_key`, закодированная по стандарту Base64. 

Обратитесь к аккаунт-менеджеру проекта, чтобы получить `distribution_hub_id` и `api_key`.

Type: http
Scheme: basic

## Download OpenAPI description

[Digital Distribution Hub](https://xsolla.redocly.app/_bundle/@l10n/ru/api/digital-distribution-hub/index.yaml)

## Корзина

### Получение корзины текущего пользователя

 - [GET /v2/project/{project_id}/cart](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/get-user-cart.md): Возвращает корзину текущего пользователя.

### Удаление всех предметов из текущей корзины

 - [PUT /v2/project/{project_id}/cart/clear](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/cart-clear.md): Удаляет все предметы из корзины.

### Наполнение корзины предметами

 - [PUT /v2/project/{project_id}/cart/fill](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/cart-fill.md): Наполняет корзину предметами. Если в корзине уже есть предмет с таким же артикулом, существующий предмет будет заменен.

### Удаление предмета из текущей корзины

 - [DELETE /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/delete-item.md): Удаляет предмет из корзины.

### Обновление предмета из текущей корзины

 - [PUT /v2/project/{project_id}/cart/item/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/put-item.md): Обновляет существующий или создает новый предмет в корзине.

### Получение корзины по идентификатору корзины

 - [GET /v2/project/{project_id}/cart/{cart_id}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/get-cart-by-id.md): Возвращает корзину пользователя по идентификатору корзины.

### Удаление всех предметов из корзины по ID корзины

 - [PUT /v2/project/{project_id}/cart/{cart_id}/clear](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/cart-clear-by-id.md): Удаляет все предметы из корзины.

### Наполнение определенной корзины предметами

 - [PUT /v2/project/{project_id}/cart/{cart_id}/fill](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/cart-fill-by-id.md): Наполняет определенную корзину предметами. Если в корзине уже есть предмет с таким же артикулом, существующий предмет будет заменен.

### Удаление предмета из корзины по ID корзины

 - [DELETE /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/delete-item-by-cart-id.md): Удаляет предмет из корзины.

### Обновление предмета в корзине по ID корзины

 - [PUT /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/cart/put-item-by-cart-id.md): Обновляет существующий или создает новый предмет в корзине.

## Игровые ключи

### Получение списка игр

 - [GET /v2/project/{project_id}/items/game](https://xsolla.redocly.app/ru/api/digital-distribution-hub/game-keys/get-games-list.md): Получение списка игр для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

### Получение списка DRM

 - [GET /v2/project/{project_id}/items/game/drm](https://xsolla.redocly.app/ru/api/digital-distribution-hub/game-keys/get-drm-list.md): Получение списка доступных DRM.

### Получение списка игр для указанной группы

 - [GET /v2/project/{project_id}/items/game/group/{external_id}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/game-keys/get-games-group.md): Получение списка игр из указанной группы для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

### Получение игр с привязкой к платформе для указанной группы

 - [GET /v2/project/{project_id}/items/game/key/group/{external_id}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/game-keys/get-game-keys-group.md): Получение списка игр из указанной группы с привязкой к платформе для построения каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

### Получение игры на платформе для каталога

 - [GET /v2/project/{project_id}/items/game/key/sku/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/game-keys/get-game-key-by-sku.md): Получение игры на платформе для каталога.

### Получение игры для каталога

 - [GET /v2/project/{project_id}/items/game/sku/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/game-keys/get-game-by-sku.md): Получение игры для каталога.

## Виртуальные предметы и валюта

### Получение списка групп предметов

 - [GET /v2/project/{project_id}/items/groups](https://xsolla.redocly.app/ru/api/digital-distribution-hub/virtual-items-and-currency/get-item-groups.md): Получение списка групп предметов для создания каталога.

### Получение списка виртуальных валют

 - [GET /v2/project/{project_id}/items/virtual_currency](https://xsolla.redocly.app/ru/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-currency.md): Получение списка виртуальных валют для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

### Получение списка пакетов виртуальной валюты

 - [GET /v2/project/{project_id}/items/virtual_currency/package](https://xsolla.redocly.app/ru/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-currency-package.md): Получение списка пакетов виртуальной валюты для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

### Получение списка виртуальных предметов

 - [GET /v2/project/{project_id}/items/virtual_items](https://xsolla.redocly.app/ru/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-items.md): Получение списка виртуальных предметов для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

### Получение списка предметов из указанной группы

 - [GET /v2/project/{project_id}/items/virtual_items/group/{external_id}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/virtual-items-and-currency/get-virtual-items-group.md): Получение списка предметов из указанной группы для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе. Чтобы получать больше данных постранично, используйте параметры limit и offset.

## Бандлы

### Получение списка бандлов

 - [GET /v2/project/{project_id}/items/bundle](https://xsolla.redocly.app/ru/api/digital-distribution-hub/bundles/get-bundle-list.md): Получение списка бандлов для создания каталога. 

Обратите внимание. Все проекты имеют ограничение на количество предметов, которые вы можете получить в ответе. По умолчанию (максимальное значение) — 50 предметов в одном ответе.

### Получение указанного бандла

 - [GET /v2/project/{project_id}/items/bundle/sku/{sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/bundles/get-bundle.md): Получение указанного бандла.

## Токен пользователя

### Создание токена пользователя

 - [POST /v2/project/{project_id}/distribution_hub/user/auth](https://xsolla.redocly.app/ru/api/digital-distribution-hub/user-token/create-user-token.md): Проверяет существование пользователя в игре и создает токен с его данными.

## Уведомления

### Уведомление об отмене

 - [POST /push-payments/cancel](https://xsolla.redocly.app/ru/api/digital-distribution-hub/notifications/cancel-notification.md): Отправьте уведомление об отмене платежа в следующих случаях:
 - платеж не был выполнен;
 - был оформлен возврат платежа.

### Уведомление об оплате

 - [POST /push-payments/pay](https://xsolla.redocly.app/ru/api/digital-distribution-hub/notifications/pay-notification.md): Отправьте это уведомление после успешного списания средств пользователя.

## Заказ

### Получение заказа

 - [GET /v2/project/{project_id}/distribution_hub/order/{order_id}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/order/get-order.md): Получение указанного заказа.

### Создание заказа со всеми предметами из текущей корзины

 - [POST /v2/project/{project_id}/distribution_hub/payment/cart](https://xsolla.redocly.app/ru/api/digital-distribution-hub/order/create-order.md): Создание заказа со всеми предметами из корзины. Созданному заказу присваивается статус new.

### Создание заказа со всеми предметами из определенной корзины

 - [POST /v2/project/{project_id}/distribution_hub/payment/cart/{cart_id}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/order/create-order-by-cart-id.md): Создание заказа со всеми предметами из указанной корзины. Созданному заказу присваивается статус new.

### Создание заказа с указанным предметом

 - [POST /v2/project/{project_id}/distribution_hub/payment/item/{item_sku}](https://xsolla.redocly.app/ru/api/digital-distribution-hub/order/create-order-with-item.md): Создание заказа с указанным предметом. Созданному заказу присваивается статус new.

