Skip to content

Platform — Харилцагч ба төсөл ​

Харилцагчдынхаа төлөө төсөл нээдэг platform баг харилцагчаа бүртгэх, баталгаажуулах холбоосыг нь өөрийн системд үзүүлэх, төсөл нээж Live болгох, орлогын дансыг нь тохируулах ажлаа энэ API-гаар автоматжуулна. Удирдлагын булангийн Харилцагчид цэсэнд хийдэг бүх зүйл эндээс хийгдэнэ.

Platform горим

Platform горимыг Byl-ийн баг танай багт асаана. Асаагүй багт эдгээр endpoint 404 буцна. Хүсэлтээ [email protected] руу илгээнэ үү.

Багийн токен ​

Эдгээр endpoint төслийн токеноор биш, багийн токеноор ажиллана: Account-ын API токэн цэсээс (багийн эзэнд харагдана) үүсгэнэ. Багийн токен багийн бүх төслийн — өөрийн болон харилцагчдын — төслийн endpoint-уудад ч хүчинтэй тул харилцагчийн төсөлд checkout, нэхэмжлэх үүсгэхэд нэг л токен хангалттай. Дэлгэрэнгүйг API токен хуудаснаас.

Authorization: Bearer <багийн токен>

Төслийн эсвэл хуучин токеноор дуудвал 403 буцна.

Client объект ​

ТалбарТөрөлТайлбар
idNumberХарилцагчийн (бизнесийн) ID. Webhook payload-ын business_id энэ.
client_reference_idStringТаны систем дэх харилцагчийн ID.
nameStringБизнесийн нэр. Баталгаажсаны дараа TrustAPI-аас ирнэ; түүнээс өмнө null.
typeStringБизнесийн төрөл (person, company …). Баталгаажсаны дараа.
contact_emailStringБаталгаажуулах холбоос очих хаяг.
phoneStringУтас. Баталгаажсаны дараа.
statusStringOnboarding-ийн төлөв, доорх хүснэгт.
is_verifiedBooleanБүх алхам дууссан: төслөө Live болгож болно.
verified_atDateБаталгаажсан огноо.
verification_statusStringTrustAPI-ийн одоогийн оролдлогын төлөв (pending, submitted, under_review, verified, rejected, expired).
stepsArraytrustapi, qpay, bank алхам бүрийн status (pending, in_progress, done, error) ба error.
qpay_merchant_idStringХарилцагчид үүссэн QPay мерчантын ID.
bank_accountsArrayИдэвхтэй банкны дансууд (id, bank_code, bank_name, account_number, account_name).
projectsArrayХарилцагчид нээсэн төслүүд (id, name, mode). Зөвхөн лавлах хүсэлтэд.
verificationObjectДөнгөж эхлүүлсэн баталгаажуулалтын url, expires_at, emailed. Зөвхөн үүсгэх ба холбоос илгээх хүсэлтийн хариунд.
created_atDateБүртгэсэн огноо.

Onboarding-ийн төлөв ​

statusУтга
not_startedХарилцагч холбоосоо нээж мэдээллээ өгөөгүй.
in_reviewМэдээллээ өгч байгаа эсвэл өгсөн, шийдвэр хүлээж байна.
incompleteTrustAPI баталгаажуулсан, QPay мерчант ба данс автоматаар үүсч байна.
verifiedБүх алхам дууссан.
rejectedТатгалзсан. Холбоосыг дахин илгээвэл шинэ оролдлого эхэлнэ.
expiredХолбоосын хугацаа дууссан. Дахин илгээнэ.

Харилцагч бүртгэх ​

POST /v1/clients
ПараметерТөрөлЗаавал эсэхТайлбар
emailStringtrueХарилцагчийн и-мэйл. Баталгаажуулах холбоос энд очно.
client_reference_idStringfalseТаны систем дэх харилцагчийн ID. 48 тэмдэгт хүртэл, багт давтагдахгүй.

Харилцагч үүсч, TrustAPI дээр баталгаажуулалт эхэлж, холбоос нь и-мэйлээр очно. Хариуны verification.url нь тэр холбоос: та өөрийн onboarding хуудсандаа шууд үзүүлж болно. Нэг и-мэйл, нэг client_reference_id-тай харилцагч давхар үүсэхгүй (422).

Баталгаажуулалтын үйлчилгээ хариу өгөхгүй бол

Харилцагч үүссэн хэвээр, харин verification нь null ирнэ. Түр хүлээгээд холбоос илгээх хүсэлтээр дахин эхлүүлнэ.

Жишээ хүсэлт

shell
BYL_TEAM_TOKEN="таны багийн токен"

curl -X POST https://byl.mn/api/v1/clients \
    -H "Authorization: Bearer $BYL_TEAM_TOKEN" \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{
          "email": "[email protected]",
          "client_reference_id": "shop_42"
      }'

Жишээ гаралт

json
{
  "data": {
    "id": 118,
    "client_reference_id": "shop_42",
    "name": null,
    "type": null,
    "contact_email": "[email protected]",
    "phone": null,
    "status": "in_review",
    "is_verified": false,
    "verified_at": null,
    "verification_status": "pending",
    "steps": [
      { "key": "trustapi", "status": "in_progress", "error": null },
      { "key": "qpay", "status": "pending", "error": null },
      { "key": "bank", "status": "pending", "error": null }
    ],
    "qpay_merchant_id": null,
    "bank_accounts": [],
    "verification": {
      "url": "https://trustapi.dotly.mn/verify/tok_8f2a…",
      "expires_at": "2026-11-04T09:00:00+08:00",
      "emailed": true
    },
    "created_at": "2026-10-28T09:00:00.000000Z",
    "updated_at": "2026-10-28T09:00:00.000000Z"
  }
}

Харилцагч лавлах ​

GET /v1/clients/:client_id
GET /v1/clients/by-client-reference-id/:client_reference_id

Хариунд харилцагчийн төслүүд (projects) хамт ирнэ. Лавлах бүрд TrustAPI-ийн төлөвийг шалгадаг тул webhook алдагдсан ч төлөв зөв гарна. Өөр багийн харилцагч 404.

shell
curl https://byl.mn/api/v1/clients/by-client-reference-id/shop_42 \
    -H "Authorization: Bearer $BYL_TEAM_TOKEN" \
    -H 'Accept: application/json'

Харилцагчдын жагсаалт ​

GET /v1/clients
ПараметерТөрөлТайлбар
statusStringOnboarding-ийн төлвөөр шүүх.
per_pageNumberНэг хуудсанд (өгөгдмөл 25, дээд тал нь 100).

Шинээс хуучин руу, хуудаслалттай (meta.total, links.next).

POST /v1/clients/:client_id/verification-link

Харилцагч холбоосоо алдсан, хугацаа нь дууссан эсвэл татгалзагдсан үед дахин (шинээр) холбоос үүсгэж и-мэйлээр илгээнэ; хариунд verification.url ирнэ. Дараах тохиолдолд 409:

errorУтга
already_verifiedХарилцагч аль хэдийн баталгаажсан.
in_reviewМэдээллээ өгсөн, шийдвэр хүлээж байна — бөглөх зүйл үлдээгүй.
onboarding_in_progressTrustAPI баталгаажуулсан, үлдсэн алхмууд автоматаар дуусч байна.

Баталгаажуулалтын үйлчилгээ хариу өгөхгүй бол 503 verification_unavailable.

Project объект ​

ТалбарТөрөлТайлбар
idNumberТөслийн ID — төслийн endpoint-уудад хэрэглэнэ.
nameStringНэр.
modeStringTest эсвэл Live.
business_idNumberАль харилцагчийн төсөл болох. Багийн өөрийн төсөлд null.
emailStringТөслийн холбоо барих и-мэйл.
qpay_merchant_idStringТөсөлд холбогдсон QPay мерчант. Харилцагч баталгаажмагц автоматаар холбогдоно.
payout_bank_accountObjectОрлого хүлээн авах данс (id, bank_code, bank_name, account_number, account_name, is_active) эсвэл null.
created_atDateҮүссэн огноо.

Төсөл нээх ​

POST /v1/projects
ПараметерТөрөлЗаавал эсэхТайлбар
nameStringtrueТөслийн нэр. 255 тэмдэгт хүртэл.
business_idNumberfalseХарилцагчийн id. Өгөхгүй бол багийн өөрийн бизнесийн төсөл.

Харилцагч баталгаажсан бол түүний QPay мерчант шинэ төсөлд шууд холбогдоно; баталгаажаагүй бол баталгаажмагц холбогдоно. Багцгүй багт нэг л төсөл байж болно (422 subscription_required); багцын хязгаарт хүрвэл 422 project_limit_reached.

shell
curl -X POST https://byl.mn/api/v1/projects \
    -H "Authorization: Bearer $BYL_TEAM_TOKEN" \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -d '{ "name": "Shop 42", "business_id": 118 }'
json
{
  "data": {
    "id": 57,
    "name": "Shop 42",
    "mode": "Test",
    "business_id": 118,
    "email": "[email protected]",
    "qpay_merchant_id": null,
    "payout_bank_account": null,
    "created_at": "2026-10-28T09:05:00.000000Z",
    "updated_at": "2026-10-28T09:05:00.000000Z"
  }
}

Төсөл лавлах, жагсаах ​

GET /v1/projects/:project_id
GET /v1/projects

Жагсаалт багийн бүх төслийг (өөрийн ба харилцагчдын) шинээс хуучин руу буцаана; business_id параметрээр нэг харилцагчийнхыг шүүнэ. per_page жагсаалтынхтай ижил.

Орлого хүлээн авах данс ​

GET /v1/projects/:project_id/bank-accounts
PUT /v1/projects/:project_id/bank-account

GET нь төслийн бизнесийн (харилцагчийн) идэвхтэй дансуудыг буцаана — харилцагч баталгаажихад TrustAPI-д өгсөн данс нь энд автоматаар орсон байна. PUT нь bank_account_id-аар тэдгээрийн нэгийг төслийн орлогын данс болгоно; өөр бизнесийн данс 422. Live горимд шилжихийн өмнө данс тохируулсан байх ёстой.

Горим солих ​

PUT /v1/projects/:project_id/mode
ПараметерТөрөлЗаавал эсэхТайлбар
modeStringtrueTest эсвэл Live.

Live болгоход бизнес баталгаажсан, багт идэвхтэй багц, төсөлд орлогын данс байх ёстой; аль нь дутууг 422-ын error хэлнэ: business_not_verified, subscription_required, payout_account_required. Одоогийн горимыг дахин өгвөл өөрчлөлтгүй 200.

Харилцагчийн төсөлд ажиллах ​

Төсөл нээсний дараа тэр төслийн checkout, нэхэмжлэх, customer endpoint-уудыг ижил багийн токеноор, хариунд ирсэн id-г :project_id-д тавьж дуудна. Төслүүдийн event-ийг нэг газар авахын тулд багийн webhook endpoint бүртгэнэ: payload-ын business_id-аас аль харилцагчийнх нь харагдана.

Дараагийн алхам ​

  • API токен — багийн токен үүсгэх
  • Webhook — багийн endpoint, business_id
  • Checkout — харилцагчийн төсөлд төлбөр авах