Авторизация
2 эндпоинтов/api/access/meGet current API user
Профиль текущего пользователя: id, email, имя, права доступа. Стандартный способ проверить сессию и подгрузить данные для UI.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/access/meОтвет 200
{
"email": "string",
"telegramId": 0,
"telegramUsername": "string",
"bybitUid": "string",
"firstName": "string",
"lastName": "string",
"isActive": false,
"isSuper": false,
"wholesaleTier": "tier_1",
"referralCode": "string",
"referralPercentage": "string"
}/api/access/me/balances/Get current API user balances
Балансы текущего пользователя в разных валютах (RUB, USD, USDT). Нужен для дашборда и проверки доступности оплаты с баланса перед созданием заказа.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/access/me/balances/Ответ 200
[
{
"currency": "rub",
"available": "string",
"reserved": "string",
"pending": "string"
}
]Каталог
5 эндпоинтов/api/categories/List categories
Полный список товарных категорий: игры, подписки, eSIM, виртуальные карты и т.д. Используйте для построения главной страницы каталога или категорийного меню.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
withStockOnly | query | boolean | нет |
tag | query | string | null | нет |
parent_id_or_slug | query | string | null | нет |
limit | query | integer | нет |
cursor | query | string | null | нет |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/categories/?withStockOnly=<withStockOnly?>&tag=<tag?>&parent_id_or_slug=<parent_id_or_slug?>&limit=<limit?>&cursor=<cursor?>Ответ 200
{
"items": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"name": "name",
"slug": "slug",
"description": "string",
"bestOfferPrice": "string",
"attributes": {},
"attributeDefinitions": [
{
"name": null,
"type": null,
"description": null,
"required": null
}
],
"tags": [
"string"
],
"parentId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"hasProducts": false,
"inStockCount": 0
}
],
"limit": 0,
"nextCursor": "string"
}/api/categories/{category_id_or_slug}Get category
Детальная информация о категории: название, описание, атрибуты, ссылки на родителя, теги. Поддерживает как UUID, так и человекочитаемый slug.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
category_id_or_slug | path | string | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
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",
"hasProducts": false,
"inStockCount": 0,
"faqs": [
{
"question": "question",
"answer": "answer"
}
]
}/api/products/List products
Листинг товаров с фильтрами по категории, цене и наличию. Основной эндпоинт для каталожной выдачи с пагинацией и сортировкой.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
withStockOnly | query | boolean | нет |
limit | query | integer | нет |
offset | query | integer | нет |
category_id_or_slug | query | string | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/products/?withStockOnly=<withStockOnly?>&limit=<limit?>&offset=<offset?>&category_id_or_slug=<category_id_or_slug>Ответ 200
{
"items": [
{
"id": "id",
"name": "name",
"slug": "slug",
"description": "string",
"attributes": {},
"price": "string",
"currency": "rub",
"quantity": 0,
"orderMinQuantity": 0,
"orderMaxQuantity": 0,
"requiredNoteFields": [
"string"
],
"noteFieldOptions": {},
"noteFieldTypes": {}
}
],
"limit": 0,
"offset": 0,
"total": 0
}/api/products/searchSearch products
Поиск товаров по подстроке в названии и описании. Возвращает ранжированный список — удобно для строки поиска в шапке или подсказок при наборе.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
query | query | string | да |
withStockOnly | query | boolean | нет |
category_id_or_slug | query | string | null | нет |
limit | query | integer | нет |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/products/search?query=<query>&withStockOnly=<withStockOnly?>&category_id_or_slug=<category_id_or_slug?>&limit=<limit?>Ответ 200
[
{
"id": "id",
"name": "name",
"slug": "slug",
"description": "string",
"attributes": {},
"price": "string",
"currency": "rub",
"quantity": 0,
"orderMinQuantity": 0,
"orderMaxQuantity": 0,
"requiredNoteFields": [
"string"
],
"noteFieldOptions": {},
"noteFieldTypes": {}
}
]/api/products/{product_id_or_slug}Get product
Детальная карточка товара: характеристики, варианты офферов (номиналы, регионы), цены, остатки на складе. Запросите перед открытием формы заказа.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
product_id_or_slug | path | string | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/products/:product_id_or_slugОтвет 200
{
"id": "id",
"name": "name",
"slug": "slug",
"description": "string",
"attributes": {},
"price": "string",
"currency": "rub",
"quantity": 0,
"orderMinQuantity": 0,
"orderMaxQuantity": 0,
"requiredNoteFields": [
"string"
],
"noteFieldOptions": {},
"noteFieldTypes": {}
}Заказы
4 эндпоинтов/api/orders/List Orders
Список заказов текущего пользователя или партнёра. Поддерживает фильтры по статусу, периоду, способу оплаты, методу выдачи.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
statuses | query | CommaSeparatedValue_OrderStatus_ | null | нет |
item_id | query | string | null | нет |
limit | query | integer | нет |
offset | query | integer | нет |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/orders/?statuses=<statuses?>&item_id=<item_id?>&limit=<limit?>&offset=<offset?>Ответ 200
{
"items": [
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"idempotencyKey": "string",
"price": "string",
"currency": "rub",
"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 public API order
Создание нового заказа. Принимает productId, offerId и параметры выдачи (email, никнейм игрока, регион). Возвращает orderId для последующей оплаты или активации.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/orders/ \
-d '{
"items": [
{
"quantity": 0,
"note": {},
"itemId": "itemid",
"totalPrice": null
}
],
"idempotencyKey": "string",
"isMock": false
}'Ответ 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"idempotencyKey": "string",
"price": "string",
"currency": "rub",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"items": [
{
"product": {
"id": "id",
"name": "name",
"userGuide": null,
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"quantity": 0,
"externalData": [
"string"
],
"error": "string"
}
],
"referralUserId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}/api/orders/{order_id}/payCreate public API order payment
Запуск повторной оплаты ранее созданного, но неоплаченного заказа. Возвращает свежую ссылку на платёжную страницу — полезно, если первая попытка провалилась.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
order_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/orders/:order_id/payОтвет 200
{
"id": "id",
"confirmationToken": "string",
"confirmationUrl": "string",
"returnUrl": "string"
}/api/orders/{order_id}Get Order
Детальная информация о заказе: статус, payload (коды активации, инструкции), история событий, ссылка на чек.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
order_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/orders/:order_idОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"idempotencyKey": "string",
"price": "string",
"currency": "rub",
"isMock": false,
"status": "active",
"cancelReason": "payment_failure",
"createdAt": "2026-05-14T10:30:00Z",
"items": [
{
"product": {
"id": "id",
"name": "name",
"userGuide": null,
"attributes": {},
"isService": false,
"categoryId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d"
},
"quantity": 0,
"externalData": [
"string"
],
"error": "string"
}
],
"referralUserId": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentExpiresAt": "2026-05-14T10:30:00Z"
}topups
8 эндпоинтов/api/topups/rates/{to}Get topup exchange rates
Returns exchange rates for supported topup currencies expressed in the requested currency.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
to | path | Currency | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/topups/rates/:toОтвет 200
{
"to": "rub",
"rates": [
{
"from": "rub",
"to": "rub",
"rate": "string",
"source": "source"
}
]
}/api/topups/crypto/chains/List crypto chains & assets
Lists the crypto chains and assets currently enabled for top-ups (e.g. TON, TRON, USDT). Use the returned `chain`/`asset` ids when creating a crypto top-up.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/topups/crypto/chains/Ответ 200
{
"chains": [
{
"id": "id",
"enabled": false,
"assets": [
{
"id": null,
"symbol": null,
"decimals": null,
"isStablecoin": null,
"tokenAddress": null
}
],
"minConfirmations": 0
}
]
}/api/topups/crypto/List crypto top-ups
Lists the latest crypto top-ups owned by the authenticated user.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
limit | query | integer | нет |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/topups/crypto/?limit=<limit?>Ответ 200
[
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentId": "string",
"status": "pending",
"balanceCurrency": "rub",
"quoteAmount": "string",
"rate": "string",
"chain": "bitcoin",
"asset": "asset",
"address": "address",
"tokenAddress": "string",
"amountToSend": "string",
"expiresAt": "2026-05-14T10:30:00Z",
"txPayload": {
"kind": "kind",
"uri": null,
"evmCall": null
}
}
]/api/topups/crypto/Create crypto top-up
Creates a crypto top-up of `quote_amount` in the balance currency (RUB/USD), paid on-chain with the chosen `chain`+`asset`. The exchange rate is **locked at creation**; the response returns a deposit `address` and the exact `amount_to_send` (and an optional wallet `tx_payload`). After the user sends the funds, the crypto-payments service confirms the transfer and the balance is credited with `quote_amount` automatically. The quote expires at `expires_at`.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/topups/crypto/ \
-d '{
"chain": "bitcoin",
"asset": "btc",
"balanceCurrency": "rub",
"quoteAmount": 0,
"withTxPayload": false
}'Ответ 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentId": "string",
"status": "pending",
"balanceCurrency": "rub",
"quoteAmount": "string",
"rate": "string",
"chain": "bitcoin",
"asset": "asset",
"address": "address",
"tokenAddress": "string",
"amountToSend": "string",
"expiresAt": "2026-05-14T10:30:00Z",
"txPayload": {
"kind": "kind",
"uri": "string",
"evmCall": {
"chainId": null,
"to": null,
"value": null,
"data": null
}
}
}/api/topups/crypto/{topup_id}Get crypto top-up
Returns one crypto top-up owned by the authenticated user.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
topup_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/topups/crypto/:topup_idОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentId": "string",
"status": "pending",
"balanceCurrency": "rub",
"quoteAmount": "string",
"rate": "string",
"chain": "bitcoin",
"asset": "asset",
"address": "address",
"tokenAddress": "string",
"amountToSend": "string",
"expiresAt": "2026-05-14T10:30:00Z",
"txPayload": {
"kind": "kind",
"uri": "string",
"evmCall": {
"chainId": null,
"to": null,
"value": null,
"data": null
}
}
}/api/topups/fiat/List fiat top-ups
Lists the latest fiat (Pally/TBank) top-ups owned by the authenticated user.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
limit | query | integer | нет |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/topups/fiat/?limit=<limit?>Ответ 200
[
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentId": "string",
"status": "pending",
"balanceCurrency": "rub",
"quoteAmount": "string",
"rate": "string",
"provider": "yookassa",
"paymentCurrency": "rub",
"paymentAmount": "string",
"confirmationUrl": "string"
}
]/api/topups/fiat/Create fiat top-up (Pally / TBank)
Creates a balance top-up paid through a regular fiat provider (Pally or TBank). `quote_amount` is the amount to credit in the balance currency (RUB/USD). The user is charged in `payment_currency` (defaults to the balance currency; otherwise converted via the rate service). The response returns a `confirmation_url` (payment page); the balance is credited with `quote_amount` once the provider confirms the payment.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
Тело запроса
cURL
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
-H "Content-Type: application/json" \
https://api.marix.cc/api/topups/fiat/ \
-d '{
"paymentProvider": "yookassa",
"balanceCurrency": "rub",
"quoteAmount": 0,
"paymentCurrency": "rub",
"returnUrl": "https://marix.cc"
}'Ответ 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentId": "string",
"status": "pending",
"balanceCurrency": "rub",
"quoteAmount": "string",
"rate": "string",
"provider": "yookassa",
"paymentCurrency": "rub",
"paymentAmount": "string",
"confirmationUrl": "string"
}/api/topups/fiat/{topup_id}Get fiat top-up
Returns one fiat (Pally/TBank) top-up owned by the authenticated user.
Параметры
| Имя | Где | Тип | Обяз. |
|---|---|---|---|
topup_id | path | string (uuid) | да |
x-language | header | Language | null | нет |
x-currency | header | enum: "rub", "usd" | null | нет |
cURL
curl -X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-language: <x-language>" \
-H "x-currency: <x-currency>" \
https://api.marix.cc/api/topups/fiat/:topup_idОтвет 200
{
"id": "019ad428-e9cd-7982-a6fa-0ec0eebce25d",
"paymentId": "string",
"status": "pending",
"balanceCurrency": "rub",
"quoteAmount": "string",
"rate": "string",
"provider": "yookassa",
"paymentCurrency": "rub",
"paymentAmount": "string",
"confirmationUrl": "string"
}Партнёрские интеграции
2 сценарияКак мы интегрируемся с партнёрами
Когда мы подключаем нового партнёра, оплата остаётся на его стороне — клиент платит партнёру, а мы отвечаем только за фулфилмент цифрового товара. Партнёр шлёт нам HTTP-нотификацию с идентификатором продукта и заказом, мы возвращаем товар или отправляем его сами на почту клиента, а затем подтверждаем партнёру, что заказ выполнен.
Под каждого партнёра выделяется индивидуальный slug в URL, общий signing-secret для проверки подписи запроса и согласованный whitelist productId. Ниже — два типовых сценария интеграции; конкретные URL и расширенная спецификация выдаются по запросу.
- Клиент оплачивает заказ у партнёра
- Партнёр шлёт нам POST с
productIdи данными заказа - Мы фулфилим товар: либо сразу в ответе, либо отправкой клиенту по email
- Партнёрполучает ответ «готово» и закрывает у себя заказ
/api/orders/webhooks/{partner}/notificationСценарий 1 — синхронная выдача в ответе
Партнёр шлёт нам нотификацию о новом оплаченном заказе с указанием productId. Мы выдаём товар прямо в HTTP-ответе — код активации, ссылка или payload. Партнёр получает товар внутри своего бэкенда и сам передаёт его покупателю. Подходит, когда у партнёра уже есть свой механизм доставки клиенту.
Запрос
POST https://public-api.foxreload.com/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://public-api.foxreload.com/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, поможем настроить тестовые заказы.