跳转到主内容

销售

出卖人购买买受人想要的资产,取得该资产的所有权,并按已披露的摊价转售给买受人。

标注固定一次,在签字时. 其不随时而增长,其不因时而增长. 买方 90 延迟的几天恰恰欠了买方所欠的债款 — — 追踪了过失情况,但没有增加债务。 单一财产是将这一产品与贷款区分开来的原因:卖方的回报来自实际资产的交易,而不是时间的流逝。

合并的后果是不能跳过序列:出卖人必须在出售资产之前实际获得资产。 API 有四个过渡的顺序 并强制执行他们的命令。

基础路径 : /api/v1/pfp/installment-sales · 宗教读物: 穆拉巴哈语


状态​

draft ──submit──> under_review ──review──> review_passed
│ │ │
│ └──reject──> rejected │
│ │
└──────────────┬──────────────────────────────┘
│
order_asset│ (optional)
v
asset_ordered
│
purchase_asset │ ← also reachable directly from draft / review_passed
v
asset_purchased
│ deliver_asset
v
delivered
│ activate
v
active ──> completed
└──> defaulted
状态含义
draft记录的术语,什么都没有移动。
under_review提交供核准
review_passed兹附上结论。
rejected终端。 需要 a reason
asset_ordered由供应商订购
asset_purchased出卖人拥有资产
delivered交给买方;所有权已过
active分期付款在运行中
completed全额缴付
defaulted注销

创建合同​

POST /api/v1/pfp/installment-sales
{
"customer_id": "8f2a1c44-0b6e-4d51-9a3f-1c8e5b7d2a90",
"region": "RU",
"currency": "RUB",
"asset_type": "vehicle",
"asset_description": "Lada Vesta SW Cross, 2026",
"purchase_price": "180000000",
"markup_rate": 1500,
"payment_months": 36,
"down_payment": "36000000",
"supplier_name": "AvtoDom Kazan",
"supplier_contact": "+7 843 000-00-00"
}
外地类型要求数说明
customer_iduuid✅买方
regionstring✅合同区
asset_descriptionstring✅卖什么?
purchase_pricestring✅次要单位——卖方向供应商支付的款项
markup_rateinteger✅基准点, 1–10000. 1500 is 15 %
payment_monthsinteger✅1–360 批次期间 30 天数
asset_typeenum—vehicle | real_estate | equipment | commodity | inventory
currencystring—ISO 4217
down_paymentstring—最小货币单位。 一定比卖价还低
asset_specificationsobject—自由格式规格
supplier_name, supplier_contactstring—也可在下列地点供应: order_asset
product_iduuid—产品模板
metadataobject—返回未动

月台的来历​

markup_amount   = floor(purchase_price × markup_rate / 10000)
sale_price = purchase_price + markup_amount
financed_amount = sale_price − down_payment
monthly_payment = floor(financed_amount / payment_months)

对上述请求:加价 270 000 RUB,销售价格 2 070 000 RUB供资 1 710 000 RUB月数 47 500 RUB.

两次拒绝是预期的:

  • ** 把地板标为零** 一个小 purchase_price 低调 markup_rate 可以生产零小单位的加价. 合同被拒绝——以成本出售是无息贷款,而不是销售,它会在以购买价格出售时通过"零以上"的检查. 提高费率或价格.
  • ** 按或高于售价的倒付.** 拒绝:同等地,没有任何资金可筹,超出这一期限,卖方就向买方付款。

获取顺序​

卖方不能出售它没有的东西,有四个过渡顺序。

1供应商的命令(可选)​

POST /api/v1/pfp/installment-sales/{id}/order_asset
{ "supplier_name": "AvtoDom Kazan", "supplier_contact": "+7 843 000-00-00" }

这两个字段如果都是在创建时给出的,在这里都是可选的. draft or review_passed → asset_ordered.

此步骤可以跳过 : purchase_asset 接受一项合同,该合同仍然有效 draft or review_passed。在跟踪供货商订单时使用该单作为单独事件,在不执行时省略该单。

2卖家买的​

POST /api/v1/pfp/installment-sales/{id}/purchase_asset
{
"asset_purchase_date": "2026-09-02",
"ownership_documents": ["invoice-4471.pdf", "title-transfer.pdf"]
}

asset_purchase_date 。需要从 asset_ordered,也可以直接从 draft or review_passed 如果你跳过命令步骤。

这就是使产品成为现实的转变。 出售者必须拥有资产,如果只有一瞬间,然后才能转售资产。 从批准直接到分期付款而没有这一步骤的合同是贷款。

3. 把它交出来​

POST /api/v1/pfp/installment-sales/{id}/deliver_asset
{
"delivery_date": "2026-09-05",
"ownership_transfer_date": "2026-09-05"
}

这两种日期都要求并分别记录:实际交货和所有权转让并不总是在同一天,而管辖的日期取决于法域。 asset_purchased → delivered.

4开始分期付款​

POST /api/v1/pfp/installment-sales/{id}/activate
{ "first_payment_date": "2026-10-05" }

可选; 默认为今天。 这是生成调度表的地方 。 delivered → active.


付款时间表​

激活时生成到 payment_schedule,每个期间一个条目:

{
"payment_schedule": [
{
"payment_number": 1,
"due_date": "2026-10-05",
"amount": "4750000",
"remaining_balance": "166250000"
},
{
"payment_number": 2,
"due_date": "2026-11-04",
"amount": "4750000",
"remaining_balance": "161500000"
}
]
}

要知道两件事:

  • 周期为 30 天,并非自然月。 到期日会相对日历发生偏移:例如 10 月 5 日开始的计划,第二笔付款在 11 月 4 日到期。这是整个产品系列统一采用的设计。
  • ** 四舍五入的剩余部分将并入最后批次。** monthly_payment 下限,所以最后的付款是更大的,无论该分解掉多少。 financed_amount 没错

maturity_date 是第一个付款日期加 (payment_months − 1) × 30 几天——最后批次的日期,而不是一个月之后。


登记付款​

POST /api/v1/pfp/installment-sales/{id}/payment
{ "amount": "4750000" }

减少 outstanding_amount,增加 total_paid 和 payments_made组合 last_payment_date。当未清余额达到零时,合同转到 completed.

超额支付额以未清余额为上限。 寄出超过欠款的,仅适用于剩余部分;超出部分不记为已付款,通过你自己的结算,而不是通过这一终点偿还——否则"付款"停止与"融资"对账.


犯罪情况​

POST /api/v1/pfp/installment-sales/{id}/delinquency
{ "days_past_due": 45, "overdue_amount": "9500000" }

days_past_due 需要,而且可能需要 0 以清除犯罪。 overdue_amount 是可选的。

这记录了犯罪情况,确实 ** 没有** 没有迟付费用,没有累积罚款,也没有重新定价。如果你的管辖权允许向慈善机构而不是卖方收取迟付费用,请在本合同之外处理。


列表和读取​

GET /api/v1/pfp/installment-sales
查询参数数值
status以上任何状态
region合同区
asset_typevehicle | real_estate | equipment | commodity | inventory
customer_iduuid (英语).
envtest | prod
GET /api/v1/pfp/installment-sales/{id}

详细答复增加了时间表、供应商、所有权文件和日期、审查以及资金细目:

{
"data": {
"id": "c41d8b90-3e77-4a12-b5f6-9e2d7a1c0843",
"contract_number": "INS-RU-20260823-9E4B02",
"status": "active",
"asset_type": "vehicle",
"asset_description": "Lada Vesta SW Cross, 2026",
"purchase_price": "180000000",
"markup_rate": 1500,
"markup_amount": "27000000",
"sale_price": "207000000",
"down_payment": "36000000",
"financed_amount": "171000000",
"monthly_payment": "4750000",
"outstanding_amount": "166250000",
"total_paid": "4750000",
"payments_made": 1,
"payment_months": 36,
"days_past_due": 0,
"overdue_amount": null,
"asset_purchase_date": "2026-09-02",
"delivery_date": "2026-09-05",
"ownership_transfer_date": "2026-09-05",
"first_payment_date": "2026-10-05",
"maturity_date": "2029-08-27",
"compliance_review": null
}
}

markup_rate 该答复中的一个数字是: ** 没有** a 货币金额,而不是字符串:这是基点。


核准和拒绝​

POST /api/v1/pfp/installment-sales/{id}/submit
POST /api/v1/pfp/installment-sales/{id}/review
POST /api/v1/pfp/installment-sales/{id}/reject

submit 不带任何尸体。 review 取得批准记录—— approved_by 所需, signed_at, document_ref 和 note 选项。 reject 需要一个 reason 并且是终点站。

reject 移动 under_review → rejected 在世俗读取审查中是可选的: order_asset 和 purchase_asset 都能够直接从 draft,所以从未经过审查的合同仍然可以完成完整的序列.