Хязгаар
Энэ хуудсаар: дүн, урт, хугацаа, тоо, хуудасны хэмжээ, rate limit-ийн бүх тоон хязгаарыг нэг дор шалгана. Тоо бүр
модулийн кодонд байгаа утга; хэтэрвэл ямар алдаа ирэхийг Алдааны код-оос үзнэ.
Дүн ба текст
| Юу |
Хязгаар |
Хэтэрвэл |
Intent-ийн amount |
бүхэл ₮, 100 – 50 000 000 |
400 validation_error (amount) |
Апп-ын max_amount (операторын тогтоосон, нэг төлбөрийн дээд) |
100 – 50 000 000, эсвэл байхгүй |
400 validation_error (amount) |
currency |
зөвхөн MNT |
400 validation_error |
description |
1 – 80 тэмдэгт (хүнд харагдана) |
400 validation_error |
reference |
≤ 64 тэмдэгт, мөр шилжилт/таб-гүй |
400 validation_error |
metadata |
≤ 20 түлхүүр; түлхүүр 1 – 40, утга ≤ 500 тэмдэгт |
400 validation_error |
min_age |
13 – 21, апп-ынхаас багагүй |
400 validation_error |
return_url |
https, host нь апп-ын return_hosts-д, ≤ 2048 |
400 validation_error |
Буцаалтын amount |
≥ 1, нийлбэр нь төлсөн дүнгээс ихгүй; орхивол үлдсэн бүгд |
400 validation_error |
Буцаалтын reason |
≤ 255 тэмдэгт |
400 validation_error |
| Хэтэвчнээс банк руу гаргах |
1 000 – 50 000 000 ₮ (Банк руу гаргах) |
400 invalid_amount |
Idempotency-Key |
1 – 128 хэвлэгдэх ASCII, зайгүй (консолын самбарын үйлдэлд 1 – 100, хэтэвчний гаргалтад 8 – 128) |
400 idempotency_key_required |
Хугацаа
| Юу |
Утга |
expires_in (төлөгдөх хугацаа) |
60 – 1 800 секунд, анхдагч 600 |
capture_within (manual барьцаа) |
60 – 604 800 секунд (7 хоног), анхдагч 7 хоног; зөвхөн capture_method: "manual" |
| Барьцааны нөөц хугацаа (ledger-ийн талд) |
automatic: expires_at + 15 минут; manual: capture_before + цонхны хагас (1 – 15 минут) — платформ capture_before-д өөрөө суллана, энэ нь зөвхөн хамгаалалт |
| Баталгаажаагүй claim |
90 секунд-д дуусна, дараагийн хүн авна |
| Нэг хүний нэг дор баталгаажаагүй claim |
≤ 3 |
| Буцаалт хийх хугацаа |
төлбөрөөс хойш 90 хоног |
| Launch code |
60 секунд, нэг удаа |
| Access token |
30 минут |
| Refresh-ийн гинж (grant) |
нээлтээс хойш 8 цаг |
| Payout холболтын хүсэлт |
7 хоногт хариулахгүй бол expired |
API түлхүүрийн expires_at |
заавал биш; өгвөл 1 цагаас 3 жил хүртэл |
| Түлхүүр солих (roll) үеийн давхцал |
0 – 604 800 секунд (7 хоног), анхдагч 24 цаг |
Тайлан, статистикийн хугацаа (from/to) |
Улаанбаатарын огноо, анхдагч сүүлийн 30 хоног, ≤ 366 хоног |
Launch-ийн мөрийг хадгалах (статистикийн launches, unique_persons) |
400 хоног; түүнээс өмнөх өдрүүдэд 0 (consent, төлбөрийн тоо хэвээр) |
Webhook
| Юу |
Утга |
| Хариу өгөх хугацаа |
10 секунд-д 2xx (холболт 5 секунд) |
| Давталтын хуваарь |
1м, 5м, 30м, 2ц, 6ц, 12ц, 24ц — нийт 8 оролдлого (эхнээс сүүлийнх хүртэл ~45 цаг), дараа нь failed |
Гарын үсгийн t-ийн цонх |
±300 секунд |
| Secret солих үеийн давхцал |
хуучин secret 24 цаг хамт гарын үсэг зурна |
Event-ийг хадгалах (консолын хүргэлтийн жагсаалт, GET /events) |
үүссэнээс хойш 30 хоног (хүлээгдэж буй хүргэлттэй нь устахгүй) |
| Webhook endpoint |
апп бүрт, орчин бүрт ≤ 5 (endpoint №1 орно); description ≤ 200; event_types ≤ 20 (хоосон = бүгд) |
| Endpoint-ийн автомат унтраалт |
бүх хүргэлт 24 цаг амжилтгүй — админд анхааруулга; 5 хоног — auto_disabled |
webhook.test (консол ба POST /webhook-endpoints/{id}/test) |
20/минут |
Дэлгэрэнгүй: Хүргэлт ба давталт.
Бүртгэл ба тоо
| Юу |
Хязгаар |
| API түлхүүр |
апп бүрт, орчин бүрт ≤ 20 идэвхтэй; нэр ≤ 60; IP allowlist ≤ 20 CIDR; хүчингүй болгох шалтгаан ≤ 200 |
| Тест хэрэглэгч |
апп бүрт ≤ 50 |
| Терминалын batch |
нэг хүсэлтэд 1 – 500 мөр (JSON эсвэл CSV, body ≤ 1 MiB) |
Sticker-ийн PDF (print-sheet) |
нэг хуудаслалтад ≤ 500 терминал; terminal_ids-гүй бол бүх идэвхтэй (500-аас олон бол сонгоно); layout a4-24 · label-50 · label-40 · tent-a6; QR ≥ 25 мм |
Тайлан (/statements) |
≤ 100 000 мөр (422 statement_too_large) |
return_hosts |
≤ 5, яг host (shop.mn) — scheme, port, path, wildcard-гүй |
Терминалын label · location |
1 – 60 · ≤ 120 тэмдэгт |
Терминалын reference |
^[A-Za-z0-9_.:-]{1,64}$, апп дотор давтагдахгүй |
| Терминалын нээлттэй intent |
терминал бүрт, орчин бүрт claim хийгдээгүй нэг (409 terminal_busy) |
Дэд худалдагчийн code |
^[A-Za-z0-9_.:-]{1,40}$ |
Дэд худалдагчийн display_name · legal_name · reg_no |
1 – 80 · ≤ 160 · ≤ 20 тэмдэгт |
| Payout холболт батлах админ |
байгууллагын эхний 100 админ хүртэл мэдэгдэл авна |
| Хэтэвчнээс гаргах хүлээгдэж буй хүсэлт |
эзэмшигч бүрт ≤ 3 |
Хуудаслалт
| Жагсаалт |
limit |
Анхдагч |
Хэлбэр |
GET /payment-intents |
1 – 100 |
20 |
{data, has_more}, after = өмнөх хуудасны сүүлийн id |
GET /settlements |
1 – 100 |
20 |
{items, next_cursor, has_more} |
GET /settlements/{id} мөрүүд |
— |
1 000 |
илүү бол truncated: true |
GET /events |
1 – 100 |
50 |
{data, next_cursor}, хуучин нь эхэнд |
GET /terminals, GET /sub-merchants, GET /webhook-endpoints |
— |
бүгд |
{data}, хуудасгүй |
GET /sub-merchants/{sid}/payout-links |
— |
сүүлийн 50 |
{data} |
Консол: төлбөр, буцаалт (/dev/payments, /dev/refunds) |
1 – 100 |
25 |
{data, next_cursor} |
| Консол: API түлхүүр |
1 – 100 |
50 |
{data, next_cursor} |
| Консол: webhook хүргэлтүүд |
1 – 100 |
50 |
{items, next_cursor} |
| Консол: тест intent |
— |
20 |
{items, next_cursor} |
Дэлгэрэнгүй: API-ийн нийтлэг дүрэм.
Хүсэлтийн хэмжээ
| Хүсэлт |
Body-ийн дээд хэмжээ |
POST /payment-intents, POST /oauth/token |
16 KiB |
| Буцаалт, терминал, дэд худалдагч, payout-link, хүний баталгаажуулалт |
4 KiB |
| Терминалын batch, sticker-ийн PDF-ийн хүсэлт |
1 MiB |
| Консолын API түлхүүр |
8 KiB |
| Консолын апп засвар |
32 KiB |
Хэтэрвэл 400 invalid_request.
Rate limit
Хязгаарыг платформын rate limiter хүсэлт илгээгч бүрт тооцно (минутад, burst — богино хугацаанд зөвшөөрөх
нэмэлт). Хэтэрвэл 429 + {"error": "…"} (code-гүй, SDK-д http_429) — backoff хийгээд ижил
Idempotency-Key-ээр дахин.
| Route |
Минутад |
Burst |
POST /oauth/token |
120 |
30 |
GET /me |
600 |
120 |
/payment-intents…, /settlements…, /terminals…, /sub-merchants…, GET /events… |
600 |
120 |
POST /terminals/print-sheet |
30 |
10 |
POST /sub-merchants/{sid}/payout-link (хүн бүрт мэдэгдэл явуулдаг) |
30 |
10 |
/webhook-endpoints… |
120 |
30 |
POST /webhook-endpoints/{id}/test |
20 |
5 |
GET /statements |
60 |
10 |
| Консол: API түлхүүр үүсгэх, солих |
30 |
10 |
| Консол: самбарын capture · cancel · unclaim / буцаалт, тайлан |
60 / 30 |
20 / 10 |
Нийтийн GET /pay/{token}, GET /pay/t/{code} |
120 |
30 |
Хүн: POST /payments/claim, …/confirm, апп нээх |
30 |
10 |
| Хүн: хэтэвчнээс банк руу гаргах хүсэлт |
6 |
3 |
Удахгүй
1.13.0-д хэрэгжсэн: qr, redirect intent-ийн expires_in 604 800 секунд (7 хоног, нэхэмжлэл) хүртэл — app,
terminal-д 1 800 хэвээр; түлхүүрийн IP allowlist (≤ 20).