Инвестиционные депозиты
Срочный депозит, доходность которого зависит от того, что на самом деле заработали объединенные средства. Депозитор и счетчик соглашаются на разделение прибыли; вкладчик несет убытки.
В обмен на отсутствие гарантированной ставки вкладчик получает долю результатов, которые могут быть лучше, чем ставка, и могут быть ничем. API Держите их друг от друга везде, где это возможно: нет поля ставки, indicative_rate Он четко обозначен как взгляд на прошлые периоды. record_loss Уменьшает баланс вкладчика, оставляя его сторону нетронутой.
Базовый путь: /api/v1/pfp/investment-deposits · Религиозное чтение: Месторождение Мудараба
Две формы
investment_type | Куда уходят деньги |
|---|---|
general (по умолчанию) | Общий инвестиционный пул |
restricted | Только поля, названные в investment_restrictions |
Статус
pending ──activate──> active ──mature──> matured ──close──> closed
│ │
│ └──renew──> active
│
└──withdraw──> withdrawn ──close──> closed
| статус | Значение |
|---|---|
pending | Заявка зарегистрирована, деньги еще не приняты |
active | Открытый; прибыль и убыток регистрируются против него. |
matured | Этот термин исчерпал |
withdrawn | Вывезен рано |
closed | Деньги оплачены. |
Открыть депозит
POST /api/v1/pfp/investment-deposits
{
"customer_id": "8f2a1c44-0b6e-4d51-9a3f-1c8e5b7d2a90",
"region": "RU",
"currency": "RUB",
"initial_amount": "50000000",
"term_months": 12,
"profit_sharing_ratio": { "bank": 20, "customer": 80 },
"investment_type": "general",
"distribution_frequency": "quarterly",
"indicative_rate": 7,
"early_withdrawal_allowed": true,
"early_withdrawal_penalty_percent": 50,
"auto_renewal": false
}
| Полное поле | Тип | Требуемый | Заметки |
|---|---|---|---|
customer_id | uuid | ✅ | Депозитарий |
region | string | ✅ | Регион депозитов |
currency | string | ✅ | ISO 4217 |
initial_amount | string | ✅ | Небольшие единицы, выше нуля |
term_months | integer | ✅ | 1–120 |
profit_sharing_ratio | object | ✅ | {"bank": n, "customer": m}Целый процент, Должен суммировать 100 |
investment_type | enum | — | general (по умолчанию) | restricted |
investment_restrictions | array | — | Поля, в которые могут входить деньги, ибо restricted |
distribution_frequency | enum | — | monthly | quarterly | semi_annually | at_maturity |
indicative_rate | integer | — | Целый процент — смотреть ниже |
early_withdrawal_allowed | boolean | — | Гейтс о переходе к досрочному выводу |
early_withdrawal_penalty_percent | integer | — | 0–100Применяется к начисленной доле вкладчика, не к депозиту |
auto_renewal | boolean | — | |
account_id, product_id, opened_by, metadata | — | — |
indicative_rate Это не ставка
Он фиксирует, какие сопоставимые периоды вернулись. Он не обещан, не начислен, и не используется ни в каких расчетах, которые выполняет платформа, — ничто не считывает его обратно.
Показать его вкладчику только с прикрепленным словом «индикативный» и никогда в положении, когда продукт с фиксированной ставкой показал бы свою ставку.Число в этом положении читается как обязательство независимо от этикетки рядом с ним, и обязательство - это именно то, что этот продукт не делает.
distribution_frequency: "at_maturity" Первая и единственная дата распределения — это дата зрелости, а не шаг по календарю.
активировать
POST /api/v1/pfp/investment-deposits/{id}/activate
{
"compliance_review": {
"approved_by": "Product Committee, minutes 22/2026"
}
}
pending → activeУстанавливает дату открытия, дату зрелости и первую дату распространения.
Тело необязательно в светском чтении. Если вы посылаете compliance_review, он валидируется — approved_by В религиозном чтении требуется заключение, и активация без одного проваливается.
В отличие от контрактной продукции, нет отдельной. submit/review Пара здесь: заключение, если таковое имеется, прилагается в момент открытия.
Прибыль и убыток
Распределять прибыль
POST /api/v1/pfp/investment-deposits/{id}/profit
{ "gross_profit": "1200000", "period_end_date": "2026-12-31" }
Только от activeРасщепление profit_sharing_ratioДоля вкладчика добавляется к current_value и customer_profit_shareХранитель должен bank_profit_shareЗаписано в profit_distributions:
{
"profit_distributions": [
{
"date": "2026-12-31",
"gross_profit": "1200000",
"customer_share": "960000",
"bank_share": "240000"
}
]
}
period_end_date Это опционально и по умолчанию на сегодняшний день.
Нуль - это законный отчет. Период, который ничего не заработал, все еще закрывается и все еще продвигается к следующей дате распределения. Отрицательному отказывают - это потеря, и у него есть свой собственный переход.
Рекордный убыток
POST /api/v1/pfp/investment-deposits/{id}/loss
{ "amount": "300000", "period_end_date": "2027-03-31" }
уменьшать current_value Сторона хранителя не тронута, потому что хранитель не вкладывает деньги: то, что он теряет, - это работа.
Зеро здесь отказано. period_end_date Это опционально и по умолчанию на сегодняшний день.
Окончание депозита
зрелость
POST /api/v1/pfp/investment-deposits/{id}/mature
Никакого тела. active → matured, **И только в том случае, если срок действительно наступил.**Двенадцатимесячный депозит не может быть погашен сегодня; вкладчик потеряет все еще причитающиеся распределения.
возродить
POST /api/v1/pfp/investment-deposits/{id}/renew
{ "term_months": 24, "profit_sharing_ratio": { "bank": 25, "customer": 75 } }
Только от matured; оба поля являются факультативными и по умолчанию по отношению к существующим условиям. То, что накоплено, становится новым принципом, и депозит возвращается к active.
Новое соотношение проверяется точно так же, как при открытии - оно все равно должно быть сведено к следующему. 100Обновленное месторождение закрывается на новом сроке погашения, как и любое другое.
Досрочный вывод
POST /api/v1/pfp/investment-deposits/{id}/withdraw
{ "closed_by": "branch-kzn-04" }
Только от activeи Только если early_withdrawal_allowed Он был установлен на открытииВ противном случае просьба отклоняется:
{
"error": "unprocessable_entity",
"details": {
"early_withdrawal_allowed": ["досрочное снятие условиями не предусмотрено"]
}
}
Наказание было снято с Доля начисленной прибыли вкладчикаНе из самого депозита:
penalty = customer_profit_share × early_withdrawal_penalty_percent / 100
final_value = max(current_value − penalty, 0)
То, что было введено, не сокращается путем досрочного выхода - только то, что было заработано на нем. early_withdrawal_penalty_percent: 50 и накопленная доля 960 000Наказание является 480 000Принципал остается целым.
Разбивка пишется на metadata.early_withdrawal:
{
"early_withdrawal": {
"penalty_amount": "480000",
"penalty_percent": "50",
"final_value": "50480000"
}
}
Закрыть
POST /api/v1/pfp/investment-deposits/{id}/close
{ "closed_by": "branch-kzn-04" }
из matured or withdrawnНаборы closed_atТерминал — закрытый депозит не может быть закрыт снова, и его дата закрытия не может быть перезаписана.
Перечислить и прочитать
GET /api/v1/pfp/investment-deposits
| Параметр запроса | ценности |
|---|---|
status | pending | active | matured | withdrawn | closed |
region | депозитный регион |
type | general | restricted |
customer_id | uuid |
env | test | prod |
GET /api/v1/pfp/investment-deposits/{id}