Хөгжүүлэгчийн консол — sandbox ба статистик¶
Хүн, оператор, бодит мөнгө оролцуулахгүйгээр mini app-аа турших хэрэгслүүд. Бүгд workspace route
(/api/v1/miniapp/dev/…): Gerege App-д нэвтэрсэн, тухайн апп-ыг эзэмшдэг байгууллагын гишүүн, унших
нь miniapp.read, өөрчлөх нь miniapp.manage эрхтэй. Апп өөр байгууллагынх бол 404. Консолын дэлгэцүүд
цөмийн shell-д нэмэгдэж байгаа тул доорх API нь эх сурвалж.
1. Webhook хүргэлтүүд¶
| Method | Зам | |
|---|---|---|
| GET | /dev/apps/{id}/webhook/deliveries?status=&environment=&limit=&cursor= |
Outbox, шинэ нь эхэнд |
| POST | /dev/apps/{id}/webhook/deliveries/{event_id}/retry |
«Дахин илгээх» → 202 |
| POST | /dev/apps/{id}/webhook/test |
Гарын үсэгтэй webhook.test-ийг одоо илгээж, үр дүнг хариулна |
- Жагсаалт:
status∈pending,delivered,failed,skipped;environment∈test,live;limit1–100 (анхдагч 50); дараагийн хуудасcursor=<next_cursor>. Хариу{items, next_cursor?}, мөр бүр:
{ "id": "evt_…", "type": "payment_intent.succeeded", "environment": "live", "livemode": true,
"object_id": "pi_…", "status": "failed", "attempts": 8, "next_attempt_at": null,
"last_status_code": 500, "last_error": "HTTP 500", "delivered_at": null,
"created_at": "2026-10-22T09:00:00Z", "payload": { "id": "evt_…", "type": "…", "data": { "object": {} } } }
- Дахин илгээх нь event-ийг одоо илгээх ээлжинд оруулж, retry-н хуваарийг шинээр эхлүүлнэ (минутын дотор
илгээгдэнэ). Body нь анхных — гарын үсэг нь шинэ
t-тэй. - Тест илгээлт нь жирийн outbox event: бодит event-ийн адил signer, secret-ээр гарын үсэг зурагдаж,
жагсаалтад орж, амжилтгүй бол ижил хуваариар retry хийгдэнэ — тест амжилттай бол бодит замын тест амжилттай.
Хариу:
{event_id, ok, status_code, error, duration_ms, delivery}. Минутад 20 удаа. - Webhook URL тохируулаагүй бол
409 no_webhook.
webhook.test-ийн body (livemode үргэлж false):
{ "id": "evt_…", "type": "webhook.test", "created_at": "…", "livemode": false, "app": "esim",
"data": { "object": { "message": "Gerege App webhook test", "object": "webhook_test" } } }
2. Тест хэрэглэгч¶
Апп draft / in_review байхад бүртгэсэн гишүүнээс гадна нээж болох хүмүүс.
| Method | Зам | |
|---|---|---|
| GET | /dev/apps/{id}/test-users |
{items: [{user_id, note, added_by, created_at, name?, email?}], limit: 50} |
| POST | /dev/apps/{id}/test-users |
{"user_id"} эсвэл {"email"}, note? (≤ 120) → 201 (шинэ) / 200 (аль хэдийн) |
| DELETE | /dev/apps/{id}/test-users/{user_id} |
204 |
- Тест хэрэглэгч нь таны байгууллагын идэвхтэй гишүүн байх ЗААВАЛ — user id-аар ч, имэйлээр ч. Тест
хэрэглэгч хянагдаагүй апп-ыг launcher-тээ батлагдсан апп шиг харна; тиймээс танихгүй хүнийг нэмэх боломжгүй
(
404 user_not_found). Платформ гадны хүнийг имэйлээр хайх боломж өгөхгүй. - Нэг апп-д ≤ 50 (
409 too_many_test_users). Түдгэлзүүлсэн апп-д нэмэхгүй (409 suspended). - Тест хэрэглэгчийн нээлтийн код нь
testerкод — test credential (mapp_test_…) солино; мөнгө хөдлөхгүй.
3. Тест төлбөр¶
Хэн ч апп-ыг нээлгүйгээр test горимын intent үүсгэж, host-ийн баталгаажуулалтыг консолоос тоглуулна.
| Method | Зам | |
|---|---|---|
| GET | /dev/apps/{id}/test-intents?cursor= |
Test intent-үүд, шинэ нь эхэнд, 20-оор ({items, next_cursor?}) |
| POST | /dev/apps/{id}/test-intents |
Body нь payments API-ийнх (payments.md §2); Idempotency-Key сонголттой |
| POST | /dev/apps/{id}/test-intents/{pi}/confirm |
Host-ийн «Төлөх»-ийг тоглуулна → intent |
Баталгаажуулалт нь хүний баталгаажуулалттай ижил дүрмээр — дүн шийднэ: …01 → failed (test_declined),
…02 → canceled, manual → requires_capture, бусад → succeeded — тохирох webhook outbox-д орно.
Буцаан ирсэн intent-ийг таны backend payments API-аар (capture, cancel, refunds) test credential-ээр
үргэлжлүүлнэ. Intent нь хөгжүүлэгчийнх (таны өөрийн user_ref).
4. Статистик¶
| Method | Зам | |
|---|---|---|
| GET | /dev/analytics?from=&to=&environment= |
Байгууллагын апп бүрийн нийлбэр |
| GET | /dev/apps/{id}/analytics?from=&to=&environment= |
Нэг апп, өдөр бүрээр |
from,to— Улаанбаатарын огноо (YYYY-MM-DD), анхдагч сүүлийн 30 хоног, ≤ 366 хоног.environment—live(анхдагч, олон нийтийн) эсвэлtest(таны болон тест хэрэглэгчдийн).- Өдрийн мөр / нийлбэр:
launches,unique_persons,consents_granted,consents_revoked,payments(төлөв → тоо),captured_amount,refunded_amount(MNT). ӨдрүүдийгAsia/Ulaanbaatar-аар хуваана. - Зөвхөн тоо гарна — хэн нь ч,
user_refнь ч биш. - Launch бүрийг 400 хоног хадгална (хамгийн урт 366 хоногийн хугацааг бүтнээр нь хамарна); түүнээс өмнөх өдрүүдэд
launches,unique_personsнь 0. - Consent нь хүн бүрийн хамгийн сүүлийн төлөвөөр тоологдоно (үйл явдлын лог биш). Payments нь тухайн хугацаанд үүссэн intent-ээр.
{ "app_id": "…", "slug": "esim", "from": "2026-09-23", "to": "2026-10-22", "timezone": "Asia/Ulaanbaatar",
"environment": "live", "currency": "MNT",
"totals": { "launches": 1204, "unique_persons": 388, "consents_granted": 41, "consents_revoked": 3,
"payments": { "succeeded": 97, "canceled": 12 }, "captured_amount": 4365000, "refunded_amount": 45000 },
"days": [ { "date": "2026-10-22", "launches": 51, "…": "…" } ] }