Авторизация
8 эндпоинтов/api/access/loginLogin
Стандартный вход по логину и паролю. Возвращает HTTP 204 и устанавливает сессионный cookie. Используйте, когда у клиента уже есть пара credentials.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/access/login \
-d '{
"username": "username",
"password": "password"
}'/api/access/login-codeLogin With Code
Одноразовая авторизация по магической ссылке. Партнёр получает code на email или в чате и обменивает его на сессию. Удобно для бесшовного входа из писем и push-уведомлений.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
code | query | string | да |
returnUrl | query | string (uri) | null | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/access/login-code?code=<code>&returnUrl=<returnUrl?>/api/access/logoutLogout
Завершает сессию и инвалидирует cookie. Вызывайте при выходе пользователя или смене аккаунта.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/access/logout/api/access/meGet Me
Профиль текущего пользователя: id, email, имя, права доступа. Стандартный способ проверить сессию и подгрузить данные для UI.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/access/meОтвет 200
{
"email": "string",
"telegramId": 0,
"telegramUsername": "string",
"firstName": "string",
"lastName": "string",
"isActive": false,
"isSuper": false
}/api/access/me/balances/Get My Balances
Балансы текущего пользователя в разных валютах (RUB, USD, USDT). Нужен для дашборда и проверки доступности оплаты с баланса перед созданием заказа.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/access/me/balances/Ответ 200
[
{
"currency": "rub",
"available": "available",
"reserved": "reserved",
"pending": "pending"
}
]/api/access/registerUser Register
Создание нового аккаунта по email и паролю. После регистрации можно сразу логиниться через /login или сделать magic-link через /login-code.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/access/register \
-d '{
"email": "partner@example.com",
"password": "password"
}'Ответ 202
{
"message": "message"
}/api/access/google/loginGoogle Login
Старт OAuth-флоу через Google. Возвращает 302 на страницу авторизации Google — встройте редирект в свой UI или откройте в popup.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
returnUrl | query | string (uri) | null | нет |
mode | query | SsoAuthMode | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/access/google/login?returnUrl=<returnUrl?>&mode=<mode?>/api/access/google/callback/tokenGoogle Callback Token
Финальный шаг OAuth: меняет временный code, полученный от Google после редиректа, на наш сессионный cookie.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/access/google/callback/token \
-d '{
"state": "state",
"token": "token"
}'Каталог
6 эндпоинтов/api/categories/Get Categories
Полный список товарных категорий: игры, подписки, eSIM, виртуальные карты и т.д. Используйте для построения главной страницы каталога или категорийного меню.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
limit | query | integer | нет |
offset | query | integer | нет |
parent_id_or_slug | query | string | null | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/categories/?limit=<limit?>&offset=<offset?>&parent_id_or_slug=<parent_id_or_slug?>/api/categories/{category_id_or_slug}Get Category
Детальная информация о категории: название, описание, атрибуты, ссылки на родителя, теги. Поддерживает как UUID, так и человекочитаемый slug.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
category_id_or_slug | path | string | да |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/categories/:category_id_or_slugОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"slug": "slug",
"description": "string",
"bestOfferPrice": "string",
"attributes": {},
"attributeDefinitions": [
{
"name": "name",
"type": "bool",
"description": "description",
"required": false
}
],
"tags": [
"string"
],
"parentId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"imagePath": "string",
"thumbnailPath": "string",
"hasProducts": false
}/api/categories/{category_id_or_slug}/options/recentGet Recent Category Option Values
Недавно использованные значения категорийных опций — например, последние выбранные регионы или платформы. Используйте для подсказок и автокомплита в форме заказа.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
category_id_or_slug | path | string | да |
option | query | string | да |
limit | query | integer | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/categories/:category_id_or_slug/options/recent?option=<option>&limit=<limit?>Ответ 200
[
{
"value": "value",
"count": 0,
"lastUsedAt": "2026-05-14T10:30:00Z"
}
]/api/products/Get Products
Листинг товаров с фильтрами по категории, цене и наличию. Основной эндпоинт для каталожной выдачи с пагинацией и сортировкой.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
limit | query | integer | нет |
offset | query | integer | нет |
category_id_or_slug | query | string | да |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/products/?limit=<limit?>&offset=<offset?>&category_id_or_slug=<category_id_or_slug>Ответ 200
{
"items": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"slug": "slug",
"description": "string",
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"imagePath": "string",
"thumbnailPath": "string",
"offers": [
{
"id": null,
"price": null,
"pricePerQuantity": null,
"availableQuantity": null,
"orderMinQuantity": null,
"orderMaxQuantity": null,
"orderQuantityMultiple": null,
"requiredNoteFields": null,
"productId": null
}
]
}
],
"limit": 0,
"offset": 0,
"total": 0
}/api/products/searchSearch Products
Поиск товаров по подстроке в названии и описании. Возвращает ранжированный список — удобно для строки поиска в шапке или подсказок при наборе.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
query | query | string | да |
category_id_or_slug | query | string | null | нет |
limit | query | integer | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/products/search?query=<query>&category_id_or_slug=<category_id_or_slug?>&limit=<limit?>Ответ 200
[
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"slug": "slug",
"description": "string",
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"imagePath": "string",
"thumbnailPath": "string",
"offers": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"pricePerQuantity": 0,
"availableQuantity": 0,
"orderMinQuantity": 0,
"orderMaxQuantity": null,
"orderQuantityMultiple": 0,
"requiredNoteFields": [
null
],
"productId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
}
]
}
]/api/products/{product_id_or_slug}Get Product
Детальная карточка товара: характеристики, варианты офферов (номиналы, регионы), цены, остатки на складе. Запросите перед открытием формы заказа.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
product_id_or_slug | path | string | да |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/products/:product_id_or_slugОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"slug": "slug",
"description": "string",
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"imagePath": "string",
"thumbnailPath": "string",
"offers": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"pricePerQuantity": 0,
"availableQuantity": 0,
"orderMinQuantity": 0,
"orderMaxQuantity": 0,
"orderQuantityMultiple": 0,
"requiredNoteFields": [
"string"
],
"productId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
}
]
}Заказы
7 эндпоинтов/api/orders/List Orders
Список заказов текущего пользователя или партнёра. Поддерживает фильтры по статусу, периоду, способу оплаты, методу выдачи.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
statuses | query | CommaSeparatedValue_OrderStatus_ | null | нет |
limit | query | integer | нет |
offset | query | integer | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/orders/?statuses=<statuses?>&limit=<limit?>&offset=<offset?>Ответ 200
{
"items": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}
],
"limit": 0,
"offset": 0,
"total": 0
}/api/orders/Create Order
Создание нового заказа. Принимает productId, offerId и параметры выдачи (email, никнейм игрока, регион). Возвращает orderId для последующей оплаты или активации.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/orders/ \
-d '{
"email": "partner@example.com",
"items": [
{
"offerId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"itemId": "string",
"quantity": 0,
"totalPrice": 0,
"note": {}
}
],
"isMock": false
}'Ответ 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"items": [
{
"offer": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"product": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"userGuide": null,
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"quantity": 0,
"externalData": [
"string"
],
"error": "string"
}
],
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}/api/orders/redeemCreate Order From Coupon
Создание заказа по купону. Используйте для подарочных карт и промо-кампаний — товар активируется напрямую без обычной оплаты.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/orders/redeem \
-d '{
"code": "code"
}'Ответ 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"items": [
{
"offer": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"product": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"userGuide": null,
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"quantity": 0,
"externalData": [
"string"
],
"error": "string"
}
],
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}/api/orders/{order_id}Get Order
Детальная информация о заказе: статус, payload (коды активации, инструкции), история событий, ссылка на чек.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
order_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/orders/:order_idОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"items": [
{
"offer": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"product": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"userGuide": null,
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"quantity": 0,
"externalData": [
"string"
],
"error": "string"
}
],
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}/api/orders/{order_id}/cancelCancel Order
Отмена заказа до момента фулфилмента. После выдачи товара отмена невозможна — потребуется оформление возврата.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
order_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/orders/:order_id/cancelОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"price": "price",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"items": [
{
"offer": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"product": {
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"userGuide": null,
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"quantity": 0,
"externalData": [
"string"
],
"error": "string"
}
],
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}/api/orders/{order_id}/mark-paidMark Order Paid
Сервисный эндпоинт для ручной пометки заказа как оплаченного. Используется только во внутренних интеграциях при сверке с банковской выпиской.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
order_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/orders/:order_id/mark-paid/api/orders/{order_id}/payCreate New Order Payment
Запуск повторной оплаты ранее созданного, но неоплаченного заказа. Возвращает свежую ссылку на платёжную страницу — полезно, если первая попытка провалилась.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
order_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/orders/:order_id/pay \
-d '{
"paymentProvider": "yookassa",
"paymentMethodType": "bank_card",
"paymentReturnUrl": "https://marix.cc"
}'Ответ 200
{
"id": "id",
"confirmationToken": "string",
"confirmationUrl": "string",
"returnUrl": "string"
}Платёжные методы
3 эндпоинтов/api/payment-methods/List Payment Methods
Список сохранённых способов оплаты пользователя: карты, СБП-привязки, кошельки. Используйте для one-click checkout без повторного ввода данных карты.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
limit | query | integer | нет |
offset | query | integer | нет |
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/payment-methods/?limit=<limit?>&offset=<offset?>Ответ 200
{
"items": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"provider": "yookassa",
"type": "bank_card",
"title": "string"
}
],
"limit": 0,
"offset": 0,
"total": 0
}/api/payment-methods/Add Payment Method
Добавление нового способа оплаты. Карта токенизируется на стороне платёжного шлюза — мы храним только маскированный pan и токен, полные реквизиты до нас не доходят.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/payment-methods/ \
-d '{
"amount": 0,
"returnUrl": "https://marix.cc"
}'Ответ 200
{
"paymentId": "paymentid",
"confirmationToken": "string",
"confirmationUrl": "string",
"returnUrl": "string"
}/api/payment-methods/{payment_method_id}Delete Payment Method
Удаление сохранённого способа оплаты. Действие выполняется немедленно и необратимо — отменить нельзя.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
payment_method_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
cURL
curl -X DELETE \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/payment-methods/:payment_method_idTON / Stars
2 эндпоинтов/api/ton/tickerGet Ton Ticker
Текущие курсы TON/USD/RUB и эталонная стоимость 1 Telegram Star. Обновляется каждые 30 секунд — используйте перед расчётом стоимости заказа в Stars.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
https://api.marix.cc/api/ton/ticker/api/ton/buy-starsBuy Ton Stars
Покупка Telegram Stars за TON. Возвращает реквизиты TON-адреса для перевода и tracking-id для последующего опроса статуса фулфилмента.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/ton/buy-stars \
-d '{
"username": "username",
"amount": 0
}'Ответ 200
{
"success": false,
"txHash": "string",
"error": "string"
}Аккаунт
1 эндпоинт/api/accounts/telegram-newsletterSend Telegram Newsletter
Подписка пользователя на Telegram-рассылку. Запускает отправку сообщения через нашего бота с подтверждением — пользователь жмёт «Старт» и получает уведомления о статусах заказов и промо-офферах.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "Content-Type: multipart/form-data" \
https://api.marix.cc/api/accounts/telegram-newsletter \
-d '{
"images": [
"string"
],
"text": "text",
"telegramIds": [
0
],
"parseMode": "MarkdownV2",
"inlineButtonTexts": [
"string"
],
"inlineButtonUrls": [
"https://marix.cc"
]
}'Ответ 202
{
"total": 0,
"sent": 0,
"failed": 0,
"failedTelegramIds": [
0
],
"imageFileIds": [
"string"
]
}Партнёрские интеграции
2 сценарияКак мы интегрируемся с партнёрами
Когда мы подключаем нового партнёра, оплата остаётся на его стороне — клиент платит партнёру, а мы отвечаем только за фулфилмент цифрового товара. Партнёр шлёт нам HTTP-нотификацию с идентификатором продукта и заказом, мы возвращаем товар или отправляем его сами на почту клиента, а затем подтверждаем партнёру, что заказ выполнен.
Под каждого партнёра выделяется индивидуальный slug в URL, общий signing-secret для проверки подписи запроса и согласованный whitelist productId. Ниже — два типовых сценария интеграции; конкретные URL и расширенная спецификация выдаются по запросу.
- Клиент оплачивает заказ у партнёра
- Партнёр шлёт нам POST с
productIdи данными заказа - Мы фулфилим товар: либо сразу в ответе, либо отправкой клиенту по email
- Партнёр получает ответ «готово» и закрывает у себя заказ
/api/orders/webhooks/{partner}/notificationСценарий 1 — синхронная выдача в ответе
Партнёр шлёт нам нотификацию о новом оплаченном заказе с указанием productId. Мы выдаём товар прямо в HTTP-ответе — код активации, ссылка или payload. Партнёр получает товар внутри своего бэкенда и сам передаёт его покупателю. Подходит, когда у партнёра уже есть свой механизм доставки клиенту.
Запрос
POST https://api.marix.cc/api/orders/webhooks/{partner}/notification
X-Signature: HMAC-SHA256(body, secret)
X-Event-Id: 019ad428-e9cd-7982-a6fa-0ec0eebce25d
Content-Type: application/json
{
"event": "order.paid",
"externalOrderId": "PARTNER-12345",
"productId": "019dbf72-70af-7bd1-b60e-a35d4dbba588",
"qty": 1,
"amount": 4990,
"currency": "RUB"
}Ответ 200
{
"status": "fulfilled",
"orderId": "019dc625-6cc8-7d81-a15c-da225e61b1e0",
"externalOrderId": "PARTNER-12345",
"payload": {
"type": "code",
"value": "ABCD-EFGH-IJKL-MNOP"
},
"fulfilledAt": "2026-05-14T10:30:00Z"
}Когда использовать
- У партнёра есть собственный канал доставки клиенту (письмо, личный кабинет, чат-бот)
- Нужен мгновенный фулфилмент в одном HTTP-цикле — синхронные платежи и кассы
- Партнёр хочет показать товар в своём интерфейсе без редиректа на наш сайт
/api/orders/webhooks/{partner}/notificationСценарий 2 — асинхронная выдача на email клиента
Партнёр присылает нам productId вместе с customerEmail покупателя. Мы сами формируем письмо с товаром (код активации, инструкция, ссылка на скачивание) и отправляем его клиенту. После успешной отправки уведомляем партнёра, что заказ выполнен. Подходит, когда у партнёра нет своего фулфилмента и он хочет переложить выдачу полностью на нашу сторону.
Запрос
POST https://api.marix.cc/api/orders/webhooks/{partner}/notification
X-Signature: HMAC-SHA256(body, secret)
X-Event-Id: 019ad428-e9cd-7982-a6fa-0ec0eebce25d
Content-Type: application/json
{
"event": "order.paid",
"externalOrderId": "PARTNER-67890",
"productId": "019dbf72-70af-7bd1-b60e-a35d4dbba588",
"qty": 1,
"amount": 4990,
"currency": "RUB",
"deliveryMode": "email",
"customerEmail": "buyer@example.com",
"callbackUrl": "https://partner.example.com/orders/PARTNER-67890/callback"
}Немедленный ответ 202
{
"status": "accepted",
"orderId": "019dc625-6cc8-7d81-a15c-da225e61b1e0",
"externalOrderId": "PARTNER-67890",
"estimatedDeliverySeconds": 30
}Callback партнёру после доставки клиенту
POST https://partner.example.com/orders/PARTNER-67890/callback
X-Signature: HMAC-SHA256(body, secret)
Content-Type: application/json
{
"status": "fulfilled",
"orderId": "019dc625-6cc8-7d81-a15c-da225e61b1e0",
"externalOrderId": "PARTNER-67890",
"deliveredTo": "buyer@example.com",
"deliveryMethod": "email",
"fulfilledAt": "2026-05-14T10:30:25Z"
}Когда использовать
- У партнёра нет своей системы доставки цифровых товаров клиенту
- Партнёр продаёт через формы, лендинги, чаты — где есть только email клиента
- Нужна согласованная брендированная коммуникация: письма уходят от нашего домена и с нашим оформлением
- Допустима асинхронность — между оплатой и доставкой могут пройти секунды или минуты
Готовы интегрироваться? Напишите @vany661 — подберём подходящий сценарий, выдадим выделенный URL и signing-secret, поможем настроить тестовые заказы.