Шимтгэл¶
Төлбөр бүрийн шимтгэл хэрхэн бодогдох, хэзээ тогтох, буцаалтад буцах эсэх, өөрийн апп-ын дүрмийг хаанаас харахыг тайлбарлана. Уншихад ~5 минут. Шимтгэл зөвхөн тооцоо асаалттай апп-д авагдана (Тооцоо) — одоогоор бүх capture шимтгэлгүй.
Нийтийн үнийн хуудас байхгүй: шимтгэлийг оператор гэрээний дагуу апп бүрт тогтооно.
Төлбөрийн дүрэм¶
Оператор апп бүрт төлбөрийн дүрэм үүсгэнэ. Дүрэм хувилбартай: effective_from мөчөөс хүчинтэй болж, хожуу
effective_from-тэй шинэ хувилбар гартал үйлчилнэ. Хүчин төгөлдөр болсон дүрэм бол түүх — хэзээ ч засагдахгүй,
устгагдахгүй (өөрчлөх бол шинэ хувилбар). Хараахан эхлээгүй дүрмийг оператор засаж болно.
| Талбар | Дүрэм | Утга |
|---|---|---|
fee_bps |
0 – 5000 | хувь, суурь нэгжээр (100 = 1 %, 5000 = 50 %) |
fee_fixed |
0 – 1 000 000 ₮ | төлбөр бүрт нэмэгдэх тогтмол дүн |
fee_min · fee_max |
0 – 50 000 000 ₮ эсвэл null, min ≤ max |
доод · дээд хязгаар |
refund_fee |
boolean, анхдагч false |
буцаалтад шимтгэлийг хувиар нь буцаах эсэх |
schedule · settle_time · delay_days |
Тооцоо | тооцооны хуваарь (Улаанбаатарын цаг, T+0 – T+14) |
Дүрэм байхгүй бол анхдагч: шимтгэл 0, ажлын өдөр 10:00, T+1.
Томьёо¶
fee = round_half_up(amount × fee_bps / 10000) + fee_fixed
→ fee_min-ээс багагүй → fee_max-аас ихгүй → amount-аас ихгүй
round_half_up — хамгийн ойрын бүхэл, яг хагас бол дээш; зөвхөн хувийн хэсэгт, төлбөр бүрт нэг удаа
fee_bps |
amount |
Тооцоо | fee |
|---|---|---|---|
| 150 (1.5 %) | 10 033 | 150.495 → 150 | 150 |
| 150 (1.5 %) | 10 034 | 150.51 → 151 | 151 |
| 150 (1.5 %) | 100 | 1.5 → 2 | 2 |
200 (2 %) + fee_fixed 50 |
25 000 | 500 + 50 | 550 |
Intent-ийн fee ба net (amount − fee) нь тооцоо асаалттай апп-д capture хийгдсэн төлбөрт л бичигдэнэ; бусад үед,
test-д ба capture-аас өмнө null (Payment intent).
Шимтгэл хэзээ тогтох¶
Шимтгэл нь capture хийх шаардлагатай болсон мөчид (automatic: хүн баталгаажуулж барьцаа тавигдсан; manual: таны
capture дуудлага) тэр мөчид хүчинтэй дүрмээр бодогдож intent-д бичигдэнэ — дахин хэзээ ч бодогдохгүй. Дараа нь
оператор дүрмээ сольсон ч, capture дахин оролдогдсон ч өмнө тогтсон шимтгэл хэвээр.
Шимтгэл capture-ийн үед мөнгөнөөс хасагдахгүй: capture бүтэн дүнгээр клиринг рүү орж, шимтгэлийг тооцоо авна
(Settlement-ийн fee).
Буцаалтын шимтгэл¶
refund_fee: false(анхдагч): буцаалт шимтгэлийг буцаахгүй — төлбөр болсон, шимтгэл хэвээр. Бүтэн буцаалтын дараа шимтгэлийг авах мөнгө байхгүй бол дараагийн тооцоонд шилжинэ (fee_carried_*).refund_fee: true: буцаалт бүр шимтгэлийн хувиа буцаана:
share(R) = round_half_up(fee × R / amount), буцаалтын хувь = share(өмнөх буцаалтууд + энэ) − share(өмнөх буцаалтууд).
Хэсэгчилсэн буцаалтуудын нийлбэр бүтэн буцаалтад шимтгэлтэй яг тэнцүү. Жишээ: 100₮ шимтгэлтэй төлбөрийг гурван тэнцүү хэсгээр буцаавал 33 + 34 + 33 = 100.
Буцсан шимтгэл тооцооны fee_returned-д, буцаалтын мөрийн fee_returned-д харагдана.
Хаанаас харах¶
Хөгжүүлэгчийн консолын API — GET /api/v1/miniapp/dev/apps/{id}/payment-rule (байгууллагын session,
miniapp.read). Операторын тэмдэглэл, хэн үүсгэсэн нь харагдахгүй:
{
"current": {
"id": "8f2c…", "version": 2, "effective_from": "2026-11-01T00:00:00Z", "in_effect": true, "current": true,
"fee_bps": 150, "fee_fixed": 0, "fee_min": null, "fee_max": 5000, "refund_fee": false,
"schedule": "weekdays", "settle_time": "10:00", "timezone": "Asia/Ulaanbaatar", "delay_days": 1,
"created_at": "…", "updated_at": "…"
},
"upcoming": [],
"default": { "fee_bps": 0, "fee_fixed": 0, "schedule": "weekdays", "settle_time": "10:00", "delay_days": 1, "…": "…" },
"settlements_enabled": true,
"settlement_since": "2026-11-01T00:00:00Z"
}
current — одоо хүчинтэй дүрэм (null бол default үйлчилнэ), upcoming — хараахан эхлээгүй хувилбарууд (ойрынх
нь эхэнд), settlements_enabled — апп-д тооцоо асаалттай эсэх. Server API (API түлхүүр)-аар дүрэм унших —
«удахгүй»; одоохондоо консолоос.
Test горим¶
Test төлбөр шимтгэлгүй (fee = null, тооцоонд орохгүй) — дүрмийн нөлөөг test горимд харах боломжгүй; дээрх
томьёогоор бодно уу.