> For the complete documentation index, see [llms.txt](https://wiki.tribute.tg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.tribute.tg/ru/for-shops/api-magazina/metody.md).

# Методы

Методы для управления заказами и подписками.

### Способы оплаты

Доступные способы оплаты зависят от конфигурации заказа:

**Стандартные заказы** (`onlyStars: false`):

| Способ           | Доступность                                                                                                                              |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Банковские карты | Всегда доступны                                                                                                                          |
| СБП              | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: "onetime"`) |
| Wallet Pay (TON) | Всегда доступен                                                                                                                          |
| Telegram Stars   | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен                                                 |

**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):

| Способ           | Доступность                                                   |
| ---------------- | ------------------------------------------------------------- |
| Telegram Stars   | Всегда доступен                                               |
| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |

> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.

## Список магазинов

> Возвращает активные магазины аутентифицированного пользователя, отсортированные по дате создания (от старого к новому). Неактивные магазины в списке не возвращаются. Для пользователя с одним магазином всегда вернётся ровно один элемент; владельцы нескольких магазинов используют этот метод, чтобы получить \`shopId\` для остальных эндпоинтов через \`?shopId=\`.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Shop":{"type":"object","required":["id","userId","name","link","callbackUrl","recurrent","onlyStars","tokenCharging","status"],"properties":{"id":{"type":"integer","format":"uint64","description":"ID магазина"},"userId":{"type":"integer","description":"ID владельца магазина"},"name":{"type":"string","description":"Название магазина"},"link":{"type":"string","description":"Ссылка/slug магазина"},"callbackUrl":{"type":"string","format":"uri","description":"URL вебхука для уведомлений о заказах"},"recurrent":{"type":"boolean","description":"Доступны ли рекуррентные платежи"},"onlyStars":{"type":"boolean","description":"Принимаются ли только платежи через Telegram Stars"},"tokenCharging":{"type":"boolean","description":"Включены ли списания по токенам (merchant-initiated)"},"status":{"type":"integer","description":"Статус магазина (0 = неактивен, 1 = активен)","enum":[0,1]}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shops":{"get":{"summary":"Список магазинов","description":"Возвращает активные магазины аутентифицированного пользователя, отсортированные по дате создания (от старого к новому). Неактивные магазины в списке не возвращаются. Для пользователя с одним магазином всегда вернётся ровно один элемент; владельцы нескольких магазинов используют этот метод, чтобы получить `shopId` для остальных эндпоинтов через `?shopId=`.","tags":["Methods"],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Shop"}}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Получить магазин

> Возвращает информацию о магазине аутентифицированного пользователя. Возвращаются только активные магазины. Передайте \`?shopId=\` для конкретного магазина; без параметра возвращается самый старый активный магазин. Явный \`shopId\` неактивного (но принадлежащего пользователю) магазина возвращает \`error\_shop\_inactive\`.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop":{"get":{"summary":"Получить магазин","description":"Возвращает информацию о магазине аутентифицированного пользователя. Возвращаются только активные магазины. Передайте `?shopId=` для конкретного магазина; без параметра возвращается самый старый активный магазин. Явный `shopId` неактивного (но принадлежащего пользователю) магазина возвращает `error_shop_inactive`.","tags":["Methods"],"parameters":[{"name":"shopId","in":"query","required":false,"schema":{"type":"integer","format":"uint64"},"description":"ID активного магазина. По умолчанию — самый старый активный магазин пользователя."}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","required":["id","userId","name","link","callbackUrl","recurrent","onlyStars","status"],"properties":{"id":{"type":"integer","format":"uint64","description":"ID магазина"},"userId":{"type":"integer","description":"ID владельца магазина"},"name":{"type":"string","description":"Название магазина"},"link":{"type":"string","description":"Ссылка/slug магазина"},"callbackUrl":{"type":"string","format":"uri","description":"URL вебхука для уведомлений о заказах"},"recurrent":{"type":"boolean","description":"Доступны ли рекуррентные платежи"},"onlyStars":{"type":"boolean","description":"Принимаются ли только платежи через Telegram Stars"},"tokenCharging":{"type":"boolean","description":"Включены ли списания по токенам (merchant-initiated)"},"status":{"type":"integer","description":"Статус магазина (0 = неактивен, 1 = активен)","enum":[0,1]}}}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Получить заказы магазина

> Возвращает список заказов магазина, отсортированных по убыванию ID (сначала новые). Опционально можно фильтровать по диапазону дат. Передайте \`?shopId=\` для конкретного магазина; без параметра используется самый старый магазин.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"ShopOrder":{"type":"object","required":["uuid","shopId","amount","currency","title","description","status","successUrl","failUrl","paymentUrl","createdAt","period"],"properties":{"uuid":{"type":"string","format":"uuid","description":"UUID заказа"},"shopId":{"type":"integer","format":"uint64","description":"ID магазина, к которому относится заказ"},"amount":{"type":"integer","format":"int64","description":"Сумма заказа в минимальных единицах валюты (центы/копейки)"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре)","enum":["eur","rub","usd"]},"title":{"type":"string","description":"Название заказа (макс 100 символов UTF-16)"},"description":{"type":"string","description":"Описание заказа (макс 300 символов UTF-16)"},"status":{"type":"string","description":"Статус заказа. `prepaid` опциональный (включается по запросу продавца): card-to-Stars заказы, где Stars зачислены покупателю, но он ещё не подтвердил списание. Продавцы без включения видят `pending`.\n","enum":["pending","prepaid","paid","failed"]},"email":{"type":"string","format":"email","description":"Email клиента (опционально)"},"successUrl":{"type":"string","format":"uri","description":"URL редиректа при успешной оплате"},"failUrl":{"type":"string","format":"uri","description":"URL редиректа при неудачной оплате"},"paymentUrl":{"type":"string","format":"uri","nullable":true,"description":"Веб-URL для завершения оплаты клиентом в браузере.\n`null` для заказов OnlyStars — их можно оплатить только внутри Telegram через `webappPaymentUrl`.\n"},"webappPaymentUrl":{"type":"string","format":"uri","description":"URL для оплаты через Telegram WebApp"},"createdAt":{"type":"string","format":"date-time","description":"Время создания заказа в формате ISO 8601"},"comment":{"type":"string","description":"Комментарий к заказу (опционально)"},"period":{"type":"string","description":"Период оплаты для рекуррентных заказов","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"memberStatus":{"type":"string","description":"Статус рекуррентной подписки (только для рекуррентных заказов)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Дата окончания рекуррентной подписки в формате ISO 8601 (только для рекуррентных заказов)"},"lastPaidTransactionAt":{"type":"string","format":"date-time","nullable":true,"description":"Дата последней оплаченной транзакции в формате ISO 8601. Null, если транзакций нет."},"starsAmount":{"type":"integer","format":"int64","description":"Фиксированная сумма в Telegram Stars (0 если не задано)"},"onlyStars":{"type":"boolean","description":"Принимает ли заказ только оплату через Telegram Stars"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"Цена первого периода в минимальных единицах валюты. Если задана — первое списание прошло по этой сумме, последующие списываются по `amount`. Отсутствует, если у заказа нет переопределения первого периода.\n"},"sendEmail":{"type":"boolean","description":"Отправляется ли покупателю чек на email после успешной оплаты (наследуется от магазина при создании)"},"image":{"type":"object","nullable":true,"description":"Изображение заказа, отображается в счетах и транзакциях Telegram Stars. Null, если изображение не задано.","properties":{"id":{"type":"integer","description":"ID изображения"},"path":{"type":"string","format":"uri","description":"URL изображения"},"thumbnail":{"type":"string","description":"Миниатюра в формате Base64"},"width":{"type":"integer","description":"Ширина изображения в пикселях"},"height":{"type":"integer","description":"Высота изображения в пикселях"},"fileType":{"type":"string","description":"Тип файла","enum":["image","video"]}}}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders":{"get":{"summary":"Получить заказы магазина","description":"Возвращает список заказов магазина, отсортированных по убыванию ID (сначала новые). Опционально можно фильтровать по диапазону дат. Передайте `?shopId=` для конкретного магазина; без параметра используется самый старый магазин.","tags":["Methods"],"parameters":[{"name":"shopId","in":"query","required":false,"schema":{"type":"integer","format":"uint64"},"description":"ID магазина, из которого читать заказы. По умолчанию — самый старый магазин пользователя."},{"name":"dateFrom","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Начальная дата (включительно) в UTC, формат yyyy-mm-dd"},{"name":"dateTo","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Конечная дата (включительно) в UTC, формат yyyy-mm-dd"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShopOrder"}}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Создать заказ в магазине

> Создает новый заказ в магазине и возвращает ссылку для оплаты клиенту. Поддерживает разовые и рекуррентные платежи.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"ShopOrder":{"type":"object","required":["uuid","shopId","amount","currency","title","description","status","successUrl","failUrl","paymentUrl","createdAt","period"],"properties":{"uuid":{"type":"string","format":"uuid","description":"UUID заказа"},"shopId":{"type":"integer","format":"uint64","description":"ID магазина, к которому относится заказ"},"amount":{"type":"integer","format":"int64","description":"Сумма заказа в минимальных единицах валюты (центы/копейки)"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре)","enum":["eur","rub","usd"]},"title":{"type":"string","description":"Название заказа (макс 100 символов UTF-16)"},"description":{"type":"string","description":"Описание заказа (макс 300 символов UTF-16)"},"status":{"type":"string","description":"Статус заказа. `prepaid` опциональный (включается по запросу продавца): card-to-Stars заказы, где Stars зачислены покупателю, но он ещё не подтвердил списание. Продавцы без включения видят `pending`.\n","enum":["pending","prepaid","paid","failed"]},"email":{"type":"string","format":"email","description":"Email клиента (опционально)"},"successUrl":{"type":"string","format":"uri","description":"URL редиректа при успешной оплате"},"failUrl":{"type":"string","format":"uri","description":"URL редиректа при неудачной оплате"},"paymentUrl":{"type":"string","format":"uri","nullable":true,"description":"Веб-URL для завершения оплаты клиентом в браузере.\n`null` для заказов OnlyStars — их можно оплатить только внутри Telegram через `webappPaymentUrl`.\n"},"webappPaymentUrl":{"type":"string","format":"uri","description":"URL для оплаты через Telegram WebApp"},"createdAt":{"type":"string","format":"date-time","description":"Время создания заказа в формате ISO 8601"},"comment":{"type":"string","description":"Комментарий к заказу (опционально)"},"period":{"type":"string","description":"Период оплаты для рекуррентных заказов","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"memberStatus":{"type":"string","description":"Статус рекуррентной подписки (только для рекуррентных заказов)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Дата окончания рекуррентной подписки в формате ISO 8601 (только для рекуррентных заказов)"},"lastPaidTransactionAt":{"type":"string","format":"date-time","nullable":true,"description":"Дата последней оплаченной транзакции в формате ISO 8601. Null, если транзакций нет."},"starsAmount":{"type":"integer","format":"int64","description":"Фиксированная сумма в Telegram Stars (0 если не задано)"},"onlyStars":{"type":"boolean","description":"Принимает ли заказ только оплату через Telegram Stars"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"Цена первого периода в минимальных единицах валюты. Если задана — первое списание прошло по этой сумме, последующие списываются по `amount`. Отсутствует, если у заказа нет переопределения первого периода.\n"},"sendEmail":{"type":"boolean","description":"Отправляется ли покупателю чек на email после успешной оплаты (наследуется от магазина при создании)"},"image":{"type":"object","nullable":true,"description":"Изображение заказа, отображается в счетах и транзакциях Telegram Stars. Null, если изображение не задано.","properties":{"id":{"type":"integer","description":"ID изображения"},"path":{"type":"string","format":"uri","description":"URL изображения"},"thumbnail":{"type":"string","description":"Миниатюра в формате Base64"},"width":{"type":"integer","description":"Ширина изображения в пикселях"},"height":{"type":"integer","description":"Высота изображения в пикселях"},"fileType":{"type":"string","description":"Тип файла","enum":["image","video"]}}}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders":{"post":{"summary":"Создать заказ в магазине","description":"Создает новый заказ в магазине и возвращает ссылку для оплаты клиенту. Поддерживает разовые и рекуррентные платежи.","tags":["Methods"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["currency","title","description"],"properties":{"shopId":{"type":"integer","format":"uint64","description":"ID магазина для создания заказа. Если не указан, заказ создаётся для первого (самого раннего) магазина аутентифицированного пользователя."},"amount":{"type":"integer","format":"int64","description":"Сумма заказа в минимальных единицах валюты (центы для EUR/USD, копейки для RUB).\nОбязательна для обычных магазинов. Игнорируется для магазинов OnlyStars — заказ создаётся с `amount=0`, оплата идёт в Telegram Stars (через `starsAmount`). `currency` обязательна в любом случае.\n"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре). Обязательна для любого заказа, включая магазины OnlyStars — она задаёт фиатную цену на инвойсе (для OnlyStars выводится из `starsAmount`).\n","enum":["eur","rub","usd"]},"title":{"type":"string","description":"Название заказа (обязательно, макс 100 символов UTF-16). Ведущие/замыкающие пробелы обрезаются; значение из одних пробелов отклоняется."},"description":{"type":"string","description":"Описание заказа (обязательно, макс 300 символов UTF-16). Ведущие/замыкающие пробелы обрезаются; значение из одних пробелов отклоняется."},"successUrl":{"type":"string","format":"uri","description":"URL редиректа при успешной оплате (опционально, должен быть валидным https:// URL)"},"failUrl":{"type":"string","format":"uri","description":"URL редиректа при неудачной оплате (опционально, должен быть валидным https:// URL)"},"email":{"type":"string","format":"email","description":"Email клиента (опционально, валидируется если указан). Если задан, покупатель не вводит email при оплате (адрес остаётся на сервере). Чек отправляется только если у магазина `sendEmail=true`.\n"},"comment":{"type":"string","description":"Комментарий к заказу (опционально)"},"customerId":{"type":"string","description":"Уникальный идентификатор клиента","maxLength":256},"period":{"type":"string","description":"Период оплаты. По умолчанию \"onetime\". Рекуррентные периоды требуют shop.recurrent = true. Магазины с OnlyStars поддерживают только \"onetime\" и \"monthly\" (подписки Telegram Stars — 30-дневные циклы).","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"],"default":"onetime"},"starsAmount":{"type":"integer","format":"int64","description":"Фиксированная сумма в Telegram Stars. Обязательна для магазинов OnlyStars. При установке включает оплату Stars. Поддерживается только для периодов `onetime` или `monthly`. Для ежемесячных заказов создаёт подписку Telegram Stars.","minimum":1},"imageUrl":{"type":"string","format":"uri","description":"URL изображения для заказа. Будет отображаться в счетах и транзакциях Telegram Stars. При указании изображение загружается и сохраняется; если изображение с таким URL уже существует, оно используется повторно."},"firstPeriodAmount":{"type":"integer","format":"int64","description":"Цена первого периода в минимальных единицах валюты (центы/копейки). Если указана — первое списание идёт по этой сумме, последующие — по `amount`. Может быть меньше (промо) или больше `amount`. Лимиты по валюте те же, что и для `amount`. Должна отличаться от `amount`.\n\nДопустима только при `period != onetime`. Не допускается для магазинов OnlyStars. Взаимоисключима со `starsAmount`: заказ может предлагать либо фиатное переопределение первого периода, либо фиксированную цену в Stars, но не одновременно. Платформа применяет переданное значение как есть, без дедупа по покупателю.\n"}}}}}},"responses":{"200":{"description":"Заказ успешно создан. Возвращается полный объект заказа — той же\nформы, что и `GET /shop/orders/{orderUuid}`. `paymentUrl` равен\n`null` для заказов OnlyStars.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopOrder"}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Доступ запрещён (shopId принадлежит другому пользователю)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Получить заказы магазина по статусу

> Возвращает заказы магазина, сгруппированные по статусу, с поддержкой пагинации и количеством заказов.\
> \
> \*\*Три режима использования:\*\*\
> \
> 1\. \*\*Начальная загрузка\*\* (без \`page\`, без \`status\`): Возвращает первую страницу заказов для каждого статуса (\`all\`, \`pending\`, \`paid\`, \`failed\`) и общее количество. Используйте при первой загрузке экрана.\
> 2\. \*\*Пагинация «все»\*\* (\`page\` указан, без \`status\` или \`status=all\`): Возвращает конкретную страницу всех заказов под ключом \`all\`.\
> 3\. \*\*Пагинация по статусу\*\* (\`page\` и \`status\` указаны): Возвращает конкретную страницу заказов для данного статуса под соответствующим ключом.\
> \
> Заказы отсортированы по убыванию ID (сначала новые).<br>

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"ShopOrder":{"type":"object","required":["uuid","shopId","amount","currency","title","description","status","successUrl","failUrl","paymentUrl","createdAt","period"],"properties":{"uuid":{"type":"string","format":"uuid","description":"UUID заказа"},"shopId":{"type":"integer","format":"uint64","description":"ID магазина, к которому относится заказ"},"amount":{"type":"integer","format":"int64","description":"Сумма заказа в минимальных единицах валюты (центы/копейки)"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре)","enum":["eur","rub","usd"]},"title":{"type":"string","description":"Название заказа (макс 100 символов UTF-16)"},"description":{"type":"string","description":"Описание заказа (макс 300 символов UTF-16)"},"status":{"type":"string","description":"Статус заказа. `prepaid` опциональный (включается по запросу продавца): card-to-Stars заказы, где Stars зачислены покупателю, но он ещё не подтвердил списание. Продавцы без включения видят `pending`.\n","enum":["pending","prepaid","paid","failed"]},"email":{"type":"string","format":"email","description":"Email клиента (опционально)"},"successUrl":{"type":"string","format":"uri","description":"URL редиректа при успешной оплате"},"failUrl":{"type":"string","format":"uri","description":"URL редиректа при неудачной оплате"},"paymentUrl":{"type":"string","format":"uri","nullable":true,"description":"Веб-URL для завершения оплаты клиентом в браузере.\n`null` для заказов OnlyStars — их можно оплатить только внутри Telegram через `webappPaymentUrl`.\n"},"webappPaymentUrl":{"type":"string","format":"uri","description":"URL для оплаты через Telegram WebApp"},"createdAt":{"type":"string","format":"date-time","description":"Время создания заказа в формате ISO 8601"},"comment":{"type":"string","description":"Комментарий к заказу (опционально)"},"period":{"type":"string","description":"Период оплаты для рекуррентных заказов","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"memberStatus":{"type":"string","description":"Статус рекуррентной подписки (только для рекуррентных заказов)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Дата окончания рекуррентной подписки в формате ISO 8601 (только для рекуррентных заказов)"},"lastPaidTransactionAt":{"type":"string","format":"date-time","nullable":true,"description":"Дата последней оплаченной транзакции в формате ISO 8601. Null, если транзакций нет."},"starsAmount":{"type":"integer","format":"int64","description":"Фиксированная сумма в Telegram Stars (0 если не задано)"},"onlyStars":{"type":"boolean","description":"Принимает ли заказ только оплату через Telegram Stars"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"Цена первого периода в минимальных единицах валюты. Если задана — первое списание прошло по этой сумме, последующие списываются по `amount`. Отсутствует, если у заказа нет переопределения первого периода.\n"},"sendEmail":{"type":"boolean","description":"Отправляется ли покупателю чек на email после успешной оплаты (наследуется от магазина при создании)"},"image":{"type":"object","nullable":true,"description":"Изображение заказа, отображается в счетах и транзакциях Telegram Stars. Null, если изображение не задано.","properties":{"id":{"type":"integer","description":"ID изображения"},"path":{"type":"string","format":"uri","description":"URL изображения"},"thumbnail":{"type":"string","description":"Миниатюра в формате Base64"},"width":{"type":"integer","description":"Ширина изображения в пикселях"},"height":{"type":"integer","description":"Высота изображения в пикселях"},"fileType":{"type":"string","description":"Тип файла","enum":["image","video"]}}}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders_by_status":{"get":{"summary":"Получить заказы магазина по статусу","description":"Возвращает заказы магазина, сгруппированные по статусу, с поддержкой пагинации и количеством заказов.\n\n**Три режима использования:**\n\n1. **Начальная загрузка** (без `page`, без `status`): Возвращает первую страницу заказов для каждого статуса (`all`, `pending`, `paid`, `failed`) и общее количество. Используйте при первой загрузке экрана.\n2. **Пагинация «все»** (`page` указан, без `status` или `status=all`): Возвращает конкретную страницу всех заказов под ключом `all`.\n3. **Пагинация по статусу** (`page` и `status` указаны): Возвращает конкретную страницу заказов для данного статуса под соответствующим ключом.\n\nЗаказы отсортированы по убыванию ID (сначала новые).\n","tags":["Methods"],"parameters":[{"name":"shopId","in":"query","required":false,"schema":{"type":"integer","format":"uint64"},"description":"ID магазина, из которого читать заказы. По умолчанию — самый старый магазин пользователя."},{"name":"status","in":"query","description":"Фильтр по статусу заказа. Если не указан и `page` не задан, возвращает все статусы.\nЕсли установлен `all` или не указан вместе с `page`, возвращает все заказы.\n\n`prepaid` опциональный (включается по запросу продавца): возвращает card-to-Stars заказы, где Stars уже зачислены покупателю, но он ещё не подтвердил списание. Запрос `prepaid` без включения вернёт HTTP 400.\n","required":false,"schema":{"type":"string","enum":["all","pending","prepaid","paid","failed"]}},{"name":"page","in":"query","description":"Номер страницы (начиная с 1). Если не указан, выполняется начальная группированная загрузка.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"size","in":"query","description":"Количество заказов на странице (по умолчанию 20, макс 100)","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"dateFrom","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Начальная дата (включительно) в UTC, формат yyyy-mm-dd"},{"name":"dateTo","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Конечная дата (включительно) в UTC, формат yyyy-mm-dd"}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","required":["counts","orders","nextFrom"],"properties":{"counts":{"type":"object","description":"Общее количество заказов по статусам","required":["all","pending","paid","failed"],"properties":{"all":{"type":"integer","format":"int64","description":"Общее количество заказов по всем статусам"},"pending":{"type":"integer","format":"int64","description":"Количество ожидающих заказов"},"paid":{"type":"integer","format":"int64","description":"Количество оплаченных заказов"},"failed":{"type":"integer","format":"int64","description":"Количество неоплаченных заказов"}}},"orders":{"type":"object","description":"Заказы, сгруппированные по ключу статуса. При начальной загрузке содержит ключи `all`, `pending`, `paid`, `failed`.\nПри запросе с пагинацией содержит только запрошенный ключ статуса (например, `all` или `paid`).\n","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ShopOrder"}}},"nextFrom":{"type":"string","description":"Номер следующей страницы в виде строки. Пустая строка, если страниц больше нет."}}}}}},"400":{"description":"Некорректный запрос (неверный параметр status)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Получить заказ

> Возвращает полные данные конкретного заказа магазина по его UUID. Включает статус подписки и изображение. Доступно только владельцу магазина.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"ShopOrder":{"type":"object","required":["uuid","shopId","amount","currency","title","description","status","successUrl","failUrl","paymentUrl","createdAt","period"],"properties":{"uuid":{"type":"string","format":"uuid","description":"UUID заказа"},"shopId":{"type":"integer","format":"uint64","description":"ID магазина, к которому относится заказ"},"amount":{"type":"integer","format":"int64","description":"Сумма заказа в минимальных единицах валюты (центы/копейки)"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре)","enum":["eur","rub","usd"]},"title":{"type":"string","description":"Название заказа (макс 100 символов UTF-16)"},"description":{"type":"string","description":"Описание заказа (макс 300 символов UTF-16)"},"status":{"type":"string","description":"Статус заказа. `prepaid` опциональный (включается по запросу продавца): card-to-Stars заказы, где Stars зачислены покупателю, но он ещё не подтвердил списание. Продавцы без включения видят `pending`.\n","enum":["pending","prepaid","paid","failed"]},"email":{"type":"string","format":"email","description":"Email клиента (опционально)"},"successUrl":{"type":"string","format":"uri","description":"URL редиректа при успешной оплате"},"failUrl":{"type":"string","format":"uri","description":"URL редиректа при неудачной оплате"},"paymentUrl":{"type":"string","format":"uri","nullable":true,"description":"Веб-URL для завершения оплаты клиентом в браузере.\n`null` для заказов OnlyStars — их можно оплатить только внутри Telegram через `webappPaymentUrl`.\n"},"webappPaymentUrl":{"type":"string","format":"uri","description":"URL для оплаты через Telegram WebApp"},"createdAt":{"type":"string","format":"date-time","description":"Время создания заказа в формате ISO 8601"},"comment":{"type":"string","description":"Комментарий к заказу (опционально)"},"period":{"type":"string","description":"Период оплаты для рекуррентных заказов","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"memberStatus":{"type":"string","description":"Статус рекуррентной подписки (только для рекуррентных заказов)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Дата окончания рекуррентной подписки в формате ISO 8601 (только для рекуррентных заказов)"},"lastPaidTransactionAt":{"type":"string","format":"date-time","nullable":true,"description":"Дата последней оплаченной транзакции в формате ISO 8601. Null, если транзакций нет."},"starsAmount":{"type":"integer","format":"int64","description":"Фиксированная сумма в Telegram Stars (0 если не задано)"},"onlyStars":{"type":"boolean","description":"Принимает ли заказ только оплату через Telegram Stars"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"Цена первого периода в минимальных единицах валюты. Если задана — первое списание прошло по этой сумме, последующие списываются по `amount`. Отсутствует, если у заказа нет переопределения первого периода.\n"},"sendEmail":{"type":"boolean","description":"Отправляется ли покупателю чек на email после успешной оплаты (наследуется от магазина при создании)"},"image":{"type":"object","nullable":true,"description":"Изображение заказа, отображается в счетах и транзакциях Telegram Stars. Null, если изображение не задано.","properties":{"id":{"type":"integer","description":"ID изображения"},"path":{"type":"string","format":"uri","description":"URL изображения"},"thumbnail":{"type":"string","description":"Миниатюра в формате Base64"},"width":{"type":"integer","description":"Ширина изображения в пикселях"},"height":{"type":"integer","description":"Высота изображения в пикселях"},"fileType":{"type":"string","description":"Тип файла","enum":["image","video"]}}}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders/{orderUuid}":{"get":{"summary":"Получить заказ","description":"Возвращает полные данные конкретного заказа магазина по его UUID. Включает статус подписки и изображение. Доступно только владельцу магазина.","tags":["Methods"],"parameters":[{"name":"orderUuid","in":"path","description":"UUID заказа","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopOrder"}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Запрещено (заказ принадлежит другому магазину)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Заказ или магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Получить статус заказа

> Возвращает текущий статус конкретного заказа магазина по его UUID. Доступно только владельцу магазина.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders/{orderUuid}/status":{"get":{"summary":"Получить статус заказа","description":"Возвращает текущий статус конкретного заказа магазина по его UUID. Доступно только владельцу магазина.","tags":["Methods"],"parameters":[{"name":"orderUuid","in":"path","description":"UUID заказа","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"Статус заказа. `prepaid` (card-to-Stars: Stars зачислены покупателю, ожидается подтверждение списания) возвращается только продавцам, включённым в раскатку — остальные видят `pending`, пока покупатель не подтвердит списание.\n","enum":["pending","prepaid","paid","failed"]}}}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Запрещено (заказ принадлежит другому магазину)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Заказ или магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Отменить рекуррентный заказ

> Отменяет рекуррентную подписку на заказ магазина. Доступно только владельцу магазина или авторизованным менеджерам.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders/{orderUuid}/cancel":{"post":{"summary":"Отменить рекуррентный заказ","description":"Отменяет рекуррентную подписку на заказ магазина. Доступно только владельцу магазина или авторизованным менеджерам.","tags":["Methods"],"parameters":[{"name":"orderUuid","in":"path","description":"UUID заказа","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Заказ успешно отменен","content":{"application/json":{"schema":{"type":"object","required":["success","message"],"properties":{"success":{"type":"boolean","description":"Успешность операции"},"message":{"type":"string","description":"Сообщение об успехе"}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Запрещено (доступ запрещен)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Заказ, магазин или рекуррентная подписка не найдены","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Получить транзакции заказа

> Возвращает постраничный список транзакций для конкретного заказа магазина. Доступно только владельцу магазина или авторизованным менеджерам.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Transaction":{"type":"object","required":["id","type","amount","currency","createdAt","total"],"properties":{"id":{"type":"integer","format":"uint64","description":"ID транзакции"},"type":{"type":"string","description":"Тип транзакции"},"objectId":{"type":"integer","format":"uint64","description":"ID связанного объекта"},"amount":{"type":"number","format":"double","description":"Сумма транзакции в единицах валюты (например, EUR, RUB)"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре)","enum":["eur","rub","usd"]},"createdAt":{"type":"integer","format":"int64","description":"Время создания транзакции (Unix timestamp в секундах)"},"serviceFee":{"type":"number","format":"double","description":"Сумма комиссии сервиса"},"total":{"type":"number","format":"double","description":"Итоговая сумма за вычетом комиссий"},"paymentMethod":{"type":"string","description":"Использованный способ оплаты"},"isRefunded":{"type":"boolean","description":"Был ли выполнен возврат по транзакции"},"isRefundable":{"type":"boolean","description":"Возможен ли возврат по транзакции"},"isRecurring":{"type":"boolean","description":"Является ли транзакция рекуррентным платежом"},"shopOrder":{"type":"object","description":"Детали связанного заказа магазина (включается для транзакций заказов магазина)","properties":{"uuid":{"type":"string","format":"uuid","description":"UUID заказа"},"title":{"type":"string","description":"Название заказа"},"description":{"type":"string","description":"Описание заказа"},"amount":{"type":"number","format":"double","description":"Сумма заказа в единицах валюты"},"currency":{"type":"string","description":"Код валюты (в нижнем регистре)"},"status":{"type":"string","description":"Статус заказа","enum":["pending","paid","failed"]},"email":{"type":"string","format":"email","description":"Email клиента (опционально)"},"successUrl":{"type":"string","format":"uri","description":"URL редиректа при успешной оплате"},"failUrl":{"type":"string","format":"uri","description":"URL редиректа при неудачной оплате"},"createdAt":{"type":"integer","format":"int64","description":"Время создания заказа (Unix timestamp в секундах)"},"comment":{"type":"string","description":"Комментарий к заказу (опционально)"},"period":{"type":"string","description":"Период оплаты","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"shopName":{"type":"string","description":"Название магазина"},"starsAmount":{"type":"integer","format":"int64","description":"Фиксированная сумма в Telegram Stars (0 если не задано)"},"onlyStars":{"type":"boolean","description":"Принимает ли заказ только оплату через Telegram Stars"}}}}},"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders/{orderUuid}/transactions":{"get":{"summary":"Получить транзакции заказа","description":"Возвращает постраничный список транзакций для конкретного заказа магазина. Доступно только владельцу магазина или авторизованным менеджерам.","tags":["Methods"],"parameters":[{"name":"orderUuid","in":"path","description":"UUID заказа","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"startFrom","in":"query","description":"Смещение пагинации (количество записей для пропуска)","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Успешный ответ","content":{"application/json":{"schema":{"type":"object","required":["transactions","nextFrom"],"properties":{"transactions":{"type":"array","items":{"$ref":"#/components/schemas/Transaction"}},"nextFrom":{"type":"string","description":"Смещение для следующей страницы. Пустая строка если страниц больше нет"}}}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Запрещено (доступ запрещен)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Заказ или магазин не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Возврат по транзакции заказа

> Инициирует возврат по конкретной транзакции заказа магазина. Доступно только владельцу магазина или авторизованным менеджерам. Возврат возможен только для транзакций продажи по оплаченным заказам.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders/{orderUuid}/transactions/{txId}/refund":{"post":{"summary":"Возврат по транзакции заказа","description":"Инициирует возврат по конкретной транзакции заказа магазина. Доступно только владельцу магазина или авторизованным менеджерам. Возврат возможен только для транзакций продажи по оплаченным заказам.","tags":["Methods"],"parameters":[{"name":"orderUuid","in":"path","description":"UUID заказа","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"txId","in":"path","description":"ID транзакции (должна быть транзакцией продажи)","required":true,"schema":{"type":"integer","format":"uint64"}}],"responses":{"200":{"description":"Возврат успешно инициирован","content":{"application/json":{"schema":{"type":"object","required":["success","message","status"],"properties":{"success":{"type":"boolean","description":"Успешность операции"},"message":{"type":"string","description":"Сообщение об успехе"},"status":{"type":"string","description":"Статус возврата","enum":["initiated"]}}}}}},"400":{"description":"Некорректный запрос","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Запрещено (доступ запрещен)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Заказ, магазин или транзакция не найдены","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Внутренняя ошибка сервера (ошибка обработки возврата)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Повторить отправку вебхука заказа

> Повторно доставляет последний уже отправлявшийся вебхук указанного типа события по заказу, клонируя его в новую попытку отправки. Доступно только владельцу магазина или авторизованным менеджерам. События, ещё стоящие в очереди или в процессе отправки, переотправить нельзя. Идемпотентно, пока переотправка стоит в очереди (возвращает 200 без постановки новой); не более одной переотправки на тип события по заказу в минуту.

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"tags":[{"name":"Methods","description":"Методы для управления заказами и подписками.\n\n## Способы оплаты\n\nДоступные способы оплаты зависят от конфигурации заказа:\n\n**Стандартные заказы** (`onlyStars: false`):\n| Способ | Доступность |\n|-------|------------|\n| Банковские карты | Всегда доступны |\n| СБП | Доступен, когда у продавца включён СБП (можно включить по запросу в поддержке Tribute). Только для разовых заказов (`period: \"onetime\"`) |\n| Wallet Pay (TON) | Всегда доступен |\n| Telegram Stars | Только при `starsAmount > 0`, период `onetime` или `monthly`, и `tokenCharging` выключен |\n\n**Заказы только за Stars** (`onlyStars: true`, `tokenCharging` выключен, только периоды `onetime` и `monthly`):\n| Способ | Доступность |\n|-------|------------|\n| Telegram Stars | Всегда доступен |\n| Банковские карты | Оплата картой через Stars. Доступна когда `starsAmount >= 50` |\n\n> **Примечание:** Pix и PayPal **недоступны** для заказов магазина.\n"}],"servers":[{"url":"https://tribute.tg/api/v1","description":"Tribute API v1"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Api-Key","description":"API ключ для аутентификации."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Код ошибки","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Описание ошибки"}}}}},"paths":{"/shop/orders/{orderUuid}/webhooks/resend":{"post":{"summary":"Повторить отправку вебхука заказа","description":"Повторно доставляет последний уже отправлявшийся вебхук указанного типа события по заказу, клонируя его в новую попытку отправки. Доступно только владельцу магазина или авторизованным менеджерам. События, ещё стоящие в очереди или в процессе отправки, переотправить нельзя. Идемпотентно, пока переотправка стоит в очереди (возвращает 200 без постановки новой); не более одной переотправки на тип события по заказу в минуту.","tags":["Methods"],"parameters":[{"name":"orderUuid","in":"path","description":"UUID заказа","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["event"],"properties":{"event":{"type":"string","description":"Тип события вебхука для переотправки","enum":["shop_order","shop_order_charge_success","shop_order_charge_failed","shop_order_cancelled","shop_order_refunded","shop_order_payment_received","shop_order_payment_failed","shop_order_prepaid","shop_token_charge_success","shop_token_charge_failed"]}}}}}},"responses":{"200":{"description":"Повтор запланирован успешно","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","description":"Запланирован ли повтор"}}}}}},"400":{"description":"Неверный запрос","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Неавторизован (неверный API ключ)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Запрещено (доступ запрещен)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Заказ, магазин или вебхук этого типа события не найден","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Превышен лимит - одна переотправка на тип события по заказу в минуту","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
