Bank transfers — Банкны шилжүүлэг баталгаажуулах
Банкны шилжүүлэг-ээр төлсөн гүйлгээг дансны хуулгаа шалгаад баталгаажуулах буюу татгалзах үйлдлийг удирдлагын булангаас гадна API-аар хийж болно. Ялангуяа platform багт хэрэгтэй: харилцагчийн төслийн мөнгө харилцагчийн дансанд ордог тул payment.awaiting_verification event-ийг өөрийн системд харилцагчдаа үзүүлж, түүний хариуг энэ API-аар буцаана.
Төслийн токен ба багийн токен хоёулаа ажиллана; write эрх шаардлагатай (read токен 403). Шийдвэрийг токены эзэн хэрэглэгчийн нэрээр бүртгэнэ.
Урсгал
“Урсгал” хэсэгХудалдан авагч «Шилжүүлсэн» дарна │ payment.awaiting_verification webhook (data.object = төлбөр) ▼Таны систем харилцагчид гүйлгээний код, дүнг үзүүлнэ │ харилцагч дансны хуулгаа шалгана ▼POST .../bank-transfer/confirm эсвэл .../bank-transfer/reject │ ▼checkout.completed / invoice.paid (баталгаажвал)Харилцагчийн төсөлд Byl өөрөө ч харилцагчийн холбоо барих имэйл рүү нэвтрэлтгүй, хугацаатай холбоос илгээдэг: харилцагч тэндээс «Мөнгө ирсэн» / «Ирээгүй» гэж хариулж болно. API нь үүнийг өөрийн UI-д хийх хүсэлтэй багт зориулагдсан; аль замаар түрүүлж шийдсэн нь хүчинтэй, дараагийнх нь 409.
Payment объект
“Payment объект” хэсэгХариу нь payment.awaiting_verification webhook-ийн data.object-тэй ижил хэлбэртэй: id, status (pending, paid, failed), amount, reference, bank_name, account_number, claimed_at, expires_at, payable (type, id, url, status, нэхэмжлэхэд number), customer_email, phone_number, is_test, created_at.
Баталгаажуулах
“Баталгаажуулах” хэсэгPOST /v1/projects/:project_id/payments/:payment_id/bank-transfer/confirm| Параметер | Төрөл | Заавал эсэх | Тайлбар |
|---|---|---|---|
received_amount |
Number | true | Дансанд бодитоор ирсэн дүн. |
acknowledge_mismatch |
Boolean | false | Ирсэн дүн төлбөрийн дүнгээс зөрүүтэй ч төлөгдсөнд тооцох бол true. |
Баталгаажмагц төлбөр paid болж, ердийн checkout.completed / invoice.paid webhook, мэдэгдэл, баримт илгээгдэнэ.
Жишээ хүсэлт
BYL_PROJECT_ID="таны төслийн ID"BYL_TOKEN="таны API token"
curl -X POST https://byl.mn/api/v1/projects/$BYL_PROJECT_ID/payments/9d2f6c1e-1b1c-4a2e-9c7d-2d1f4a8b9e10/bank-transfer/confirm \ -H "Authorization: Bearer $BYL_TOKEN" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "received_amount": 45000 }'Жишээ гаралт
{ "data": { "id": "9d2f6c1e-1b1c-4a2e-9c7d-2d1f4a8b9e10", "project_id": 1, "status": "paid", "driver": "bank_transfer", "amount": 45000, "description": "Checkout - 231", "reference": "482913", "bank_name": "Хаан банк", "account_number": "5012345678", "claimed_at": "2026-08-27T09:30:00.000000Z", "expires_at": "2026-08-30T09:30:00.000000Z", "payable": { "type": "checkout", "id": 231, "url": "https://byl.mn/h/checkout/231/…", "status": "complete" }, "phone_number": "99112233", "is_test": false, "created_at": "2026-08-27T09:20:00.000000Z" }}Татгалзах
“Татгалзах” хэсэгPOST /v1/projects/:project_id/payments/:payment_id/bank-transfer/reject| Параметер | Төрөл | Заавал эсэх | Тайлбар |
|---|---|---|---|
reason |
String | true | Шалтгаан, 255 тэмдэгт хүртэл. Худалдан авагчид харагдана. |
Төлбөр failed болж, checkout дахин нээгдэнэ — худалдан авагч шинэ кодтой дахин шилжүүлэх эсвэл өөр аргаар төлж болно. Имэйл нь мэдэгдэж байвал худалдан авагчид шалтгаантай имэйл очно.
Алдаа
“Алдаа” хэсэг| Статус | error |
Утга |
|---|---|---|
409 |
already_settled |
Шилжүүлэг аль хэдийн баталгаажсан, татгалзсан эсвэл хугацаа нь дууссан. |
422 |
not_bank_transfer |
Төлбөр банкны шилжүүлэг биш. |
422 |
— | Validation: ирсэн дүн зөрүүтэй ба acknowledge_mismatch өгөөгүй бол errors.acknowledge_mismatch. |
403 |
— | read эрхтэй токен, эсвэл өөр баг/төслийн токен. |
404 |
— | Төлбөр энэ төсөлд байхгүй. |