Skip to content

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.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_amountNumbertrueДансанд бодитоор ирсэн дүн.
acknowledge_mismatchBooleanfalseИрсэн дүн төлбөрийн дүнгээс зөрүүтэй ч төлөгдсөнд тооцох бол true.

Баталгаажмагц төлбөр paid болж, ердийн checkout.completed / invoice.paid webhook, мэдэгдэл, баримт илгээгдэнэ.

Жишээ хүсэлт

shell
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 }'

Жишээ гаралт

json
{
  "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"
    },
    "customer_email": "[email protected]",
    "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
ПараметерТөрөлЗаавал эсэхТайлбар
reasonStringtrueШалтгаан, 255 тэмдэгт хүртэл. Худалдан авагчид харагдана.

Төлбөр failed болж, checkout дахин нээгдэнэ — худалдан авагч шинэ кодтой дахин шилжүүлэх эсвэл өөр аргаар төлж болно. Имэйл нь мэдэгдэж байвал худалдан авагчид шалтгаантай имэйл очно.

Алдаа ​

СтатусerrorУтга
409already_settledШилжүүлэг аль хэдийн баталгаажсан, татгалзсан эсвэл хугацаа нь дууссан.
422not_bank_transferТөлбөр банкны шилжүүлэг биш.
422—Validation: ирсэн дүн зөрүүтэй ба acknowledge_mismatch өгөөгүй бол errors.acknowledge_mismatch.
403—read эрхтэй токен, эсвэл өөр баг/төслийн токен.
404—Төлбөр энэ төсөлд байхгүй.