Данный метод позволяет произвести миграцию подписок с вашего сервиса - в платежный шлюз, при условии, что вы ранее работали напрямую с ПЦ ЭК.
Т.к. при создании подписки передается идентификатор платежного инструмента bindingId, который обязательно проверяется на наличие у указанного номера телефона. Если такого bindingId нет у данного номера телефона - получите код ошибки: 00200024.
Важно!
Гарантии идемпотентности:
- Метод обеспечивает идемпотентность по полю
Request-Idв течение 3 суток- Повторные запросы с одинаковым
Request-Idне приведут к созданию дублирующих подписок- Система гарантирует обработку только уникальных запросов на основе
Request-IdОтветственность потребителя:
- Создание и поддержание бизнес-логики единичности подписки для пользователя
- Гарантия того, что в вашей системе не отправляются запросы с разными
Request-Idдля одной бизнес-подписки- Использование метода получения списка подписок для проверки существующих активных подписок перед созданием новой
Важно:
При передаче разных значенийRequest-Idдля одной подписки будут созданы дубликаты идентичных подписок.Для проверки существующих активных подписок у абонента - можно воспользоваться методом получения списка подписок: Получение списка подписок.
Указав параметры:
- clientPhone - со значением номера телефона.
- и status=active.
POST |
Так же, передается SSL сертификат.
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| Request-Id | guid | да | Идентификатор конкретного запроса |
Requestor-Name | string | нет | Наименование сервиса.
|
| Requestor-Type | string | нет | Тип витрины.
|
| Requestor-Version | string | нет | Версия виджета/sdk |
Поле | Тип | Обязат. | Описание |
|---|---|---|---|
| serviceId | int64 | да | Идентификатор сервиса Мерчанта |
| extClientId | string[256] | да | Идентификатор пользователя в системе Мерчанта |
| clientPhone | string[15] | да | Номер телефона пользователя |
| merchantMnemonic | string[512] | нет | Наименование подписки на стороне Мерчанта |
| userMnemonic | string[512] | нет | Наименование подписки на стороне Пользователя |
| amount | amount | да | Сумма списания по подписке |
| currency | string[3] | нет | Валюта, по умолчанию 643 |
| startDate | dateTime | да | Дата и время начала подписки |
| endDate | dateTime | нет | Дата и время окончания подписки |
| period | int32[3] | да | Периодичность списания |
| periodQuant | day|week|month | да | Единицы периода списания, может принимать значения "day", "week", "month" |
| serviceParams{} | object | да | Набор пар "параметр":"значение", описывающих реквизиты платежа (специфичных для каждого поставщика). |
| paymentTool | object | да | Структура с данными по источнику оплаты |
| nextPaymentDate | dateTime | нет | Дата и время следующего списания *Если она не задана, тогда дату следующего списания сформируем мы, по алгоритму: к текущей дате и времени прибавляем период из сочетания параметров: period + periodQuant, без округления даты и времени (с точностью до секунд). |
| promo | object | нет | Набор параметров отвечающих за промо период подписки |
trialPeriod | int32 | нет | Количество дней триального периода |
Описание структуры paymentTool
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
ewalletBinding | object | да(условно) | Структура с данными, соответствующими типу ПИ (способу оплаты)
|
| extMobileCommerce | object | да(условно) | Оплата внешней мобильной коммерцией
|
Описание структуры ewalletBinding
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
bindingId | string | да | Идентификатор счета/токена |
Описание структуры extMobileCommerce
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
phone | msisdn | да | Номер телефона (MSISND) 79158566908 |
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
amount | amount | да | Сумма при списании в течение промо периода, положительное значение. |
| durationType | durationTypeEnum | да | Тип учета промо, quant или date |
period | int32 | условно | Кол-во периодов, в течении которого списывается промо сумма |
| endDate | dateTime | условно | Дата окончания промо периода |
Content-Type: application/json; charset=utf-8 |
Поле | Тип | Обяз. | Описание |
|---|---|---|---|
| id | guid | да | Идентификатор подписки |
| resultCode | stirng[32] | да | Код результат операции |
POST https://sandbox.pay.mts.ru/private/v1/subscriptions/create HTTP/1.1 |
{
"serviceId": 0,
"extClientId": "string",
"clientPhone": "string",
"merchantMnemonic": "string",
"userMnemonic": "string",
"amount": 0,
"currency": "string",
"startDate": "2026-04-23T11:08:29.925Z",
"endDate": "2026-04-23T11:08:29.925Z",
"period": 0,
"periodQuant": "day",
"serviceParams": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"paymentTool": {
"eWalletBinding": {
"bindingId": "string"
},
"extMobileCommerce": {
"phone": "string"
}
},
"nextPaymentDate": "2026-04-23T11:08:29.925Z",
"promo": {
"amount": 0,
"durationType": "quant",
"period": 0,
"endDate": "2026-04-23T11:08:29.925Z"
},
"trialPeriod": 0
}
{
"serviceId": 6340,
"clientPhone": "79685310278",
"extClientId": "56ca5019-f8df-4baa-9406-961233799c6c",
"serviceParams": {
"id1": "108882256562"
},
"period": 1,
"periodQuant": "day",
"startDate": "2022-02-08T13:59:41.162Z",
"amount": 13.4,
"currency": "643",
"nextPaymentDate": "2022-03-08T13:59:41.162Z",
"promo": {
"amount": 10.02,
"durationType": "quant",
"period": 4
},
"paymentTool": {
"extMobileCommerce": {
"phone": "7911223344"
}
}
}
Content-Type: application/json; charset=utf-8 |
{
"id" : "3417b9ff-6906-4ba1-b741-024d7cbfd8b4",
"resultCode" : "created"
}
code | message | userMessage | isFatal |
|---|---|---|---|
| 00299998 | Validation error | Не пройдена валидация данных | нет |
| 00299999 | An unexpected error has occurred | Непредвиденная ошибка | да |
| 00200001 | Certificate is not set | Сертификат отсутствует | да |
| 00200002 | Certificate is not valid | Сертификат не прошел проверку | да |
| 00200003 | MerchantId is null | Идентификатор мерчанта отсутствует | да |
| 00200011 | Payments not available for service | Платежи не доступны для сервиса | да |
| 00200012 | Payment tool not available for service | Платежный инструмент не доступен для сервиса | да |
| 00200022 | Subscription not available for service | Подписки не доступны для сервиса | да |
| 00200024 | Payment tool not available | Операция не выполнена. Измените способ оплаты и попробуйте снова. | нет |