Агуулгыг алгасах

Хязгаар

Энэ хуудсаар: дүн, урт, хугацаа, тоо, хуудасны хэмжээ, 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).