API Заавар

xyp.gerege.mn REST API ашиглах заавар

Баталгаажуулалт

Бүх API endpoint-ууд HTTP Basic Auth шаарддаг. Admin-аас авсан client_id болон client_secret-ээ ашиглана.

Authorization: Basic base64(client_id:client_secret)

Endpoint-ууд

MethodEndpointТайлбар
POST/v1/citizen/authenticateИргэн баталгаажуулах (РД + утас)
POST/v1/org/authenticateБайгууллага баталгаажуулах (регистр + захирлын РД)
POST/v1/citizen/lookupИргэний мэдээлэл хайх
POST/v1/citizen/verifyИргэний нэр тулгах
POST/v1/org/lookupБайгууллагын мэдээлэл хайх
POST/v1/org/verifyБайгууллагын нэр тулгах

Иргэн баталгаажуулах

POST/v1/citizen/authenticate

Иргэний регистрийн дугаар + утасны дугаараар баталгаажуулна. Амжилттай бол иргэний зураг болон үндсэн мэдээлэл буцаана.

Request

curl -u $CLIENT_ID:$SECRET \
  -X POST https://xyp.gerege.mn/v1/citizen/authenticate \
  -H "Content-Type: application/json" \
  -d '{"reg_no": "МА74101813", "phone": "99102856"}'

Response (амжилттай)

{
  "authenticated": true,
  "citizen": {
    "reg_no": "ма74101813",
    "civil_id": "111949212017",
    "last_name": "Цэнддорж",
    "first_name": "ЭРДЭНЭБАТ",
    "gender": "Эрэгтэй",
    "birth_date": "1974-10-18 00:00",
    "image": "/9j/4AAQSkZJRg..."
  }
}

Response (олдоогүй)

{
  "authenticated": false,
  "reason": "citizen not found"
}

Байгууллага баталгаажуулах

POST/v1/org/authenticate

Байгууллагын регистр + ceo_reg_no хүлээж авна.

Шалгах логик:

ceo_reg_no нь дараах хоёрын аль нэгтэй таарахад баталгаажна:

  • Гүйцэтгэх захирлын регистрийн дугаар
  • Хамгийн том хувьцаа эзэмшигчийн (эцсийн өмчлөгч) регистрийн дугаар

Request

curl -u $CLIENT_ID:$SECRET \
  -X POST https://xyp.gerege.mn/v1/org/authenticate \
  -H "Content-Type: application/json" \
  -d '{"reg_no": "6235972", "ceo_reg_no": "ма74101813"}'

Response (амжилттай)

{
  "authenticated": true,
  "organization": {
    "reg_no": "6235972",
    "name": "Гэрэгэ системс",
    "type": "Хязгаарлагдмал хариуцлагатай компани",
    "ceo": "Нацагдорж Энхжаргал",
    "ceo_reg_no": "уш72060800",
    "ceo_position": "Гүйцэтгэх  Захирал"
  },
  "owner": {
    "name": "цэнддорж эрдэнэбат",
    "reg_no": "ма74101813",
    "type": "Иргэн",
    "share_percent": "42"
  }
}

Response (таараагүй)

{
  "authenticated": false,
  "reason": "ceo_reg_no does not match director or largest shareholder"
}

Иргэн хайх

POST/v1/citizen/lookup

Регистрийн дугаараар иргэний бүрэн мэдээлэл хайна.

curl -u $CLIENT_ID:$SECRET \
  -X POST https://xyp.gerege.mn/v1/citizen/lookup \
  -H "Content-Type: application/json" \
  -d '{"reg_no": "МА74101813"}'
{
  "found": true,
  "citizen": {
    "reg_no": "ма74101813",
    "last_name": "Цэнддорж",
    "first_name": "ЭРДЭНЭБАТ",
    "surname": "Харчин",
    "gender": "Эрэгтэй",
    "birth_date": "1974-10-18 00:00",
    "birth_place": "Улаанбаатар,Сүхбаатар",
    "nationality": "Халх",
    "civil_id": "111949212017",
    "passport_num": "PE 0305079",
    "passport_address": "УБ, Хан-Уул, ...",
    "image": "/9j/4AAQSkZJRg..."
  }
}

Иргэний нэр тулгах

POST/v1/citizen/verify

РД + нэрийг тулгаж шалгана. Зөвхөн match true/false буцаана.

curl -u $CLIENT_ID:$SECRET \
  -X POST https://xyp.gerege.mn/v1/citizen/verify \
  -H "Content-Type: application/json" \
  -d '{"reg_no":"МА74101813","first_name":"ЭРДЭНЭБАТ","last_name":"Цэнддорж"}'
{ "match": true, "reg_no": "МА74101813" }

Байгууллага хайх

POST/v1/org/lookup

Регистрийн дугаараар байгууллагын бүрэн мэдээлэл хайна.

curl -u $CLIENT_ID:$SECRET \
  -X POST https://xyp.gerege.mn/v1/org/lookup \
  -H "Content-Type: application/json" \
  -d '{"reg_no": "6235972"}'
{
  "found": true,
  "organization": {
    "reg_no": "6235972",
    "name": "Гэрэгэ системс",
    "type": "Хязгаарлагдмал хариуцлагатай компани",
    "capital": "2630666",
    "ceo": "Нацагдорж Энхжаргал",
    "ceo_reg_no": "уш72060800",
    "ceo_position": "Гүйцэтгэх  Захирал",
    "phone": "99102856",
    "address": "Улаанбаатар, Сүхбаатар, ...",
    "industry": ["Программ хангамжийн үйлчилгээ", ...],
    "founders": [
      {"name": "цэнддорж эрдэнэбат", "reg_no": "ма74101813",
       "type": "Иргэн", "share_percent": "42"}, ...
    ],
    "stake_holders": [
      {"name": "Цэнддорж Эрдэнэбат", "reg_no": "ма74101813",
       "position": "ТУЗ-ийн дарга"}, ...
    ]
  }
}

Байгууллагын нэр тулгах

POST/v1/org/verify
curl -u $CLIENT_ID:$SECRET \
  -X POST https://xyp.gerege.mn/v1/org/verify \
  -H "Content-Type: application/json" \
  -d '{"reg_no":"6235972","name":"Гэрэгэ системс"}'
{ "match": true, "reg_no": "6235972" }

Алдааны кодууд

КодТайлбар
400Буруу хүсэлт (шаардлагатай талбар дутуу)
401Буруу client_id эсвэл client_secret
403Client идэвхгүйжсэн эсвэл scope хүрэлцэхгүй
429Rate limit хэтэрсэн (default: 100 req/min)
502Гадаад системийн алдаа (XYP хариу өгөхгүй)

Rate Limiting

Client тус бүр минутад 100 хүсэлт илгээх боломжтой (тохируулж болно). Хэтэрсэн тохиолдолд 429 статус кодтой хариу буцаана.

HTTP/1.1 429 Too Many Requests
Retry-After: 60
{"error": "rate limit exceeded"}
← Нүүр хуудас руу буцах