Payout данс¶
Хүний төлсөн мөнгө аль дансанд орохыг тайлбарлана: апп-ын payout данс (байгууллагын админ өөрийн дансаар, бусад дансыг оператор тохируулна), байгууллагын Gerege Wallet данс, олон эзэмшигчтэй платформын дэд худалдагч бүрийн payout данс (данс эзэмшигч өөрөө Gerege App-д батална). Уншихад ~8 минут. Алхам алхмаар интеграц: Gerege App-аар төлөх.
Апп-ын payout данс¶
- Байгууллагын админ апп-ын орлогыг байгууллагынхаа өөрийн Gerege Wallet данс руу консолоос өөрөө чиглүүлнэ (доорх «Байгууллагын данс руу»). Өөр ямар ч дансыг (өөр байгууллагын, хүний) оператор тохируулна — гэрээ, бизнесийн шалгалтын (KYB) дараа. Таны server integration-д (client credential) payout тохируулах API байхгүй, санаатай: апп-ын орлогыг өөр данс руу чиглүүлэх нь алдагдсан credential-ийг хулгайлсан мөнгө болгох цорын ганц засвар.
- Оператор дансыг дэвтэрт шалгаж (идэвхтэй, MNT), эзэмшигчийг (хүн эсвэл байгууллага) бүртгэлд тэмдэглэнэ.
- Payout данс байхгүй үед live intent үүсгэхэд
409 payouts_not_configured— хүнд амжилтгүй болох төлбөрийн цонх хэзээ ч харуулахгүйн тулд үүсгэх үед татгалзана. Test горимд payout данс шаардахгүй. - Данс солигдсон ч өмнө capture хийгдсэн төлбөрүүд хуучин дансандаа үлдэнэ; тэдгээрийн буцаалт тэр данснаас гарна.
- Тооцоо асаагүй апп-д (одоогийн бүх апп) capture бүр мөнгийг шууд энэ данс руу шилжүүлж, буцаалт ч энэ данснаас гарна (Буцаалт); асаалттай бол тооцоогоор (Тооцоо).
Байгууллагын Gerege Wallet данс¶
Худалдагчийн орлогод хамгийн тохиромжтой нь байгууллагын өөрийн Gerege Wallet данс. Байгууллагад Gerege Wallet суусан байх ба админ (impersonate хийсэн session зөвхөн уншина) нээнэ:
| Method | Зам | Хариу |
|---|---|---|
| GET | /api/v1/bank/org/{tenant}/accounts |
200 {"accounts": [Account]} |
| POST | /api/v1/bank/org/{tenant}/accounts {"name"?} (≤ 60) |
201 шинэ данс, 200 байгаа данс — байгууллагад нэг данс |
Дансны эзэмшигчийн нэр нь платформд бүртгэлтэй байгууллагын хуулийн нэр (ба регистр). Энэ данснаас бодит банк руу мөнгө гаргах — Банк руу гаргах.
Байгууллагын данс руу (консол, админ)¶
Консолын Үлдэгдэл → Апп-ын payout → «Байгууллагын данс руу» (PUT /api/v1/miniapp/dev/apps/{id}/payout
{"account_id": "<байгууллагын дансны id>"}, server-to-server биш) нь апп-ын — mini app ч, худалдагч ч — payout-ыг
байгууллагын өөрийн данс болгоно:
- Зөвхөн байгууллагын админ (impersonate хийсэн session биш), дахин нэвтэрсний дараа (10 минутын дотор) — sandbox байгууллагад биш.
- Данс нь танай байгууллагын (
GET /api/v1/bank/org/{tenant}/accounts-ийн) идэвхтэй MNT данс байх ёстой. Өөр данс →422 account_not_owned— тэр дансыг оператор тохируулна. - Оператор тохируулсан өөр дансыг ч ингэж өөрийн дансаар сольж болно; audit-д өмнөх данс (сүүлийн 4 орон) ба дахин нэвтэрсэн цаг бичигдэж, операторт мэдэгдэл очно. Payout-ыг арилгах нь операторынх.
- Хариу нь апп (
payouts_configured: true,payout_account: "******1234") баterms— энэ данс руу орсон төлбөрийн буцаалт (90 хоногийн дотор) энэ данснаас хасагдана; консол үүнийг товчны дэргэд харуулна. - Өмнө capture хийгдсэн төлбөр, тэдгээрийн буцаалт хуучин дансандаа; тооцоо асаалттай бол хүлээгдэж буй/алдаатай тооцоо хадгалсан дансаараа, дараагийнх нь шинэ данс руу.
- Go-live checklist-ийн
payoutалхам (who: admin) ногоон болно.
Дэд худалдагчийн payout холболт¶
Олон эзэмшигчтэй платформд (жишээ нь машин бүр өөр эзэнтэй вендинг) дэд худалдагч бүр өөрийн payout дансаар мөнгө авна. Таны серверийн үг дангаараа хэн нэгний орлогыг дурын данс руу хэзээ ч чиглүүлэхгүй — дансны эзэмшигч Gerege App-д баталсан үед л.
curl -sS https://geregeapp.mn/api/v1/miniapp/sub-merchants/9a7c5e3b-1d2f-4e6a-8b0c-7d9e1f3a5b7c/payout-link \
-u "$GEREGE_LIVE_CLIENT_ID:$GEREGE_LIVE_CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{"account": "MN75 0098 0009 8123 4560"}'
account — IBAN (MN + 18 орон) эсвэл 10 оронтой дансны дугаар; зай, зураас зөвшөөрнө. Зөвхөн live түлхүүр,
scope payout_links:write (test → 403 live_only; жагсаалт GET …/payout-links нь sub_merchants:read). Rate limit — минутад 30 (хүсэлт бүр хэн нэгэнд push илгээдэг).
Хариу 201:
{
"id": "…",
"object": "payout_link",
"sub_merchant": "9a7c5e3b-1d2f-4e6a-8b0c-7d9e1f3a5b7c",
"status": "pending",
"account_masked": "******2345",
"requested_at": "2026-10-27T09:00:00Z",
"expires_at": "2026-11-03T09:00:00Z",
"decided_at": null,
"terms": {
"mn": "Энэ данс руу орсон төлбөрүүдийн буцаалтыг (төлбөрөөс хойш 90 хоногийн дотор) энэ данснаас хасна.",
"en": "Refunds of payments made into this account (within 90 days of each payment) are taken back from this account."
}
}
- Хэнээс асуух нь дэвтрийн эзэмшигчээс: хүний данс → тэр хүн; байгууллагын данс → тэр мөчийн бүх идэвхтэй админ (нэг нь батлахад хангалттай). Тэд Gerege App-д мэдэгдэл авна — текст нь зөвхөн апп-ын батлагдсан нэр (таны бичсэн юу ч биш).
- Хүсэлт 7 хоног хүчинтэй. Шинэ хүсэлт өмнөх
pending-ийгcanceledболгоно. terms— батлах нь юу гэсэн үг: энэ данс руу орсон төлбөрийн буцаалт (90 хоногийн дотор) энэ данснаас хасагдана. Хүсэлт, мэдэгдэл, батлах дэлгэц гурвуулаа үүнийг хэлнэ.- Батлах агшинд платформ дахин шалгана: данс идэвхтэй MNT, батлагч нь эзэн (эсвэл өнөөдөр байгууллагын админ).
Батлагдмагц дэд худалдагчийн
payout_account(******2345) болжpayouts_configured: true, өмнөхapprovedньsuperseded. GET /sub-merchants/{sid}/payout-links— хүсэлтүүд, шинэ нь эхэнд (≤ 50). Хүсэлт, хариу нь түүх (устгагдахгүй).
status |
Утга |
|---|---|
pending |
эзэмшигчийн хариуг хүлээж байна |
approved |
баталсан — одоогийн payout |
declined |
эзэмшигч татгалзав |
canceled |
шинэ хүсэлтээр солигдов |
superseded |
дараа нь өөр холболт батлагдав |
expired |
7 хоногт хариугүй |
Эзэмшигч Gerege App-д (iOS) Тохиргоо → Хэтэвч → «Payout холболт»-оос (эсвэл хүсэлтийн мэдэгдлээс) хүсэлтийг харж, нөхцөлийг уншаад Face ID-аар батална эсвэл татгалзана. Байгууллагын дансны хүсэлтийг тэр байгууллагын аль ч идэвхтэй админ батлахад хангалттай.
Алдаа¶
| HTTP | code |
Хэзээ |
|---|---|---|
| 400 | validation_error |
account буруу хэлбэр, олдсонгүй, идэвхгүй эсвэл MNT биш |
| 403 | live_only |
test credential-аар хүсэлт илгээв |
| 409 | sub_merchant_disabled |
дэд худалдагч идэвхгүй |
| 409 | payouts_not_configured |
live intent: апп-ын payout алга, эсвэл дэд худалдагчийн payout батлагдаагүй |
| 422 | account_unsupported |
дансны эзэмшигч Gerege App-ын хүн ч, байгууллага ч биш |
| 422 | account_not_owned |
консол, «Байгууллагын данс руу»: данс танай байгууллагынх биш — оператортой холбогдоно |
| 422 | account_unavailable |
консол, «Байгууллагын данс руу»: данс олдсонгүй, идэвхгүй эсвэл MNT биш |
| 403 | admin_required · impersonated · fresh_sign_in_required |
консол: админ биш · өөр хүний нэрээр · дахин нэвтэрнэ |
| 422 | no_admin |
байгууллагын данс, гэхдээ асуух админ алга |
| 502 | core_unavailable |
core banking хариу өгсөнгүй — дахин оролд |
| 503 | directory_unavailable |
байгууллагын админуудыг түр тодорхойлж чадсангүй («мэдэхгүй», «үгүй» биш) — дахин оролд |
| 503 | payments_unavailable |
core banking идэвхгүй |
Бүтэн жагсаалт: Алдааны код.