Public API

InnoScore Public API-г ашиглан харилцагчийн банкны хуулга боловсруулах, багцын төлөв шалгах, харилцагчийн мэдээлэл/статистик авах.

Зорилго

Харилцагчийн дансны хуулганд үндэслэн хиймэл оюун ашиглан харилцагчийн тоон мэдээллийг тооцоолох, мөн хэрэглэгчийн програм хоорондын мэдээлэл солилцоог хангахад дараах хаягаар хандаж мэдээлэл солилцоно.

API URL: https://api.innoscore.mn/

Аюулгүй байдал

Бүх API сервисүүдийг ашиглахад давхар нууцлал шаардлагатай:

  1. JWT Token - Системийн хэрэглэгчийн эрхээр нэвтэрч авна.
  2. API Key - Байгууллага бүрд оноосон нууц түлхүүр.

Шаардлагатай хүсэлтийн толгойнууд

HeaderТайлбарExample
AuthorizationJWT Bearer tokenBearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
X-API-KeyPartner API keypk_kYztZhn9J1tYAdFR-Ipl4Wh5eoJFtOzM5227Ou2PZYg

JWT токен авах хүсэлт

POST /api/token/
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "your_password"
}

Хариулт:

{
  "access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Сервисүүд

1. Хуулга оруулах

Нэг болон түүнээс дээш тооны хуулга оруулах.

POST /public_api/v1/upload/
Content-Type: multipart/form-data

Хүсэлтийн Параметрууд

ПараметрТөрөлШаардлагатайТайлбар
filesFile[]ТиймБанкны хуулгууд (PDF, XLS, XLSX)
register_numberstringТиймКомпанийн регистрийн дугаар

Хязгаарлалтууд

  • Нэг удаагийн хүсэлт 10 хүртэл тооны файл илгээх
  • Нэг файлын хэмжээ 2 MB дотор байх
  • Хүсэлтийн нийт файлын хэмжээ 5 MB дотор байх
  • Зөвшөөрөгдсөн файлын төрлүүд: .pdf, .xls, .xlsx

Хариулт

{
  "is_success": true,
  "message": "All 1 file(s) uploaded successfully. Processing started.",
  "data": {
    "batch_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Алдааны хариултууд

StatusТайлбар
400Validation failed (missing files, invalid format, size exceeded)
401Authentication failed

2. Багц файлын боловсруулалт

Хуулга оруулах сервисийн файлуудын явцыг хянах, оруулж дууссан үед хэрэглэгчийн хувийн дугаар(ууд)-ыг авах.

GET /public_api/v1/batch/{batch_id}/status/

Хүсэлтийн Параметрууд

ПараметрТөрөлТайлбар
batch_idUUIDХуулга оруулах сервисийн хариултаас ирэх утга

Хариулт

{
  "is_success": true,
  "message": "Batch status retrieved successfully",
  "data": {
    "batch_id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "completed",
    "total_files": 1,
    "completed_files": 1,
    "failed_files": 0,
    "customer_ids": [123, 456],
    "created_at": "2024-01-15T10:30:00.000000Z",
    "completed_at": "2024-01-15T10:31:00.000000Z"
  }
}

Status талбарын буцааж болох утгууд

StatusТайлбар
pendingБоловсруулалт хүлээгдэж байна
processingБоловсруулагдаж байна
completedБүх файлыг амжилттай боловсруулсан
partialЗарим файлыг боловсруулж чадаагүй
failedБүх файлыг боловсруулж чадаагүй

3. Харилцагчийн жагсаалт

Тухайн байгууллагын оруулсан бүх харилцагийн мэдээллийг авах.

GET /public_api/v1/customers/

Параметрууд

ПараметрТөрөлDefaultТайлбар
searchstring-Овог, нэрээр хайх
pageinteger1Хуудасны дугаар
page_sizeinteger20Нэг хуудсанд багтах харилцагчийн тоо

Хариулт

{
  "is_success": true,
  "message": "Retrieved 2 customers",
  "data": {
    "customers": [
      {
        "customer_id": 123,
        "first_name": "John",
        "last_name": "Doe",
        "registered_date": "2024-01-15T10:30:00.000000Z"
      }
    ],
    "count": 50,
    "next": "https://api.innoscore.mn/public_api/v1/customers/?page=2",
    "previous": null
  }
}

4. Харилцагчийн статистик

Харилцагчийн статистик мэдээлэл авах.

GET /public_api/v1/customers/{customer_id}/

Path Параметр

ПараметрТөрөлТайлбар
customer_idintegerХэрэглэгчийн хувийн дугаар

Query Параметрs

ПараметрТөрөлТайлбар
sinceISO 8601 datetimeТухайн хугацаанаас хойш тооцоологдсон өгөгдлийг буцаах

Хариулт (Статистик тооцоолол дууссан үед)

{
  "is_success": true,
  "message": "Customer statistics retrieved successfully",
  "data": {
    "customer_id": 123,
    "first_name": "John",
    "last_name": "Doe",
    "status": "ready",
    "statistics": {
      "ai_group": {
        "data": { ... },
        "updated_at": "2024-01-15T10:35:00.000000Z"
      },
      "total_group": {
        "data": { ... },
        "updated_at": "2024-01-15T10:35:00.000000Z"
      },
      "monthly": {
        "data": { ... },
        "updated_at": "2024-01-15T10:35:00.000000Z"
      },
      "summary": {
        "data": { ... },
        "updated_at": "2024-01-15T10:35:00.000000Z"
      },
      "yearly": {
        "data": { ... },
        "updated_at": "2024-01-15T10:35:00.000000Z"
      },
      "ez_changes": {
        "data": { ... },
        "updated_at": "2024-01-15T10:35:00.000000Z"
      }
    }
  }
}

Хариулт (Статистик тооцоолол дуусаагүй үед)

{
  "is_success": true,
  "message": "Statistics are being calculated. Please try again shortly.",
  "data": {
    "customer_id": 123,
    "first_name": "John",
    "last_name": "Doe",
    "status": "processing",
    "statistics": {
      "completed": 3,
      "total": 6,
      "message": "Statistics still processing (3/6 completed)"
    }
  }
}

Төлөвийн утгууд

StatusТайлбар
readyБүх 6 төрлийн статистик тооцолж дууссан үед
processingСтатистик тооцоолж байх үед
pendingТооцоолж эхлээгүй үед

Статистикууд

Сервис нь дараах 6-н тарлийн статистикийг бэлдэнэ:

  • ai_group -
  • total_group -
  • monthly -
  • summary -
  • yearly -
  • ez_changes -

Сервисүүдийг ашиглах жишээ

  1. Банкний хуулгуудаа оруулах - batch_id авах
  2. Багц файлын төлөв шалгах - Тодорхой хугацааны давтамжтай багц файлын боловсруулалтыг шалгах. status талбар completed болох үед, customer_ids болон created_at утгуудыг хадгалах
  3. Хэрэглэгчийн статистик шалгах - Тодорхой хугацааны давтамжтай хэрэглэгч бүрийн статистик боловсруулалтыг шалгах. since={created_at} ашиглаж шинээр тооцоолсон хэрэглэгчийн статистикийг авах

Алдааны хариултын формат

Бүх алдааны хариултын баримтлах формат:

{
  "is_success": false,
  "message": "Error description",
  "data": {
    "field_name": ["Error detail"]
  }
}

Ашиглалтын хязгаарлалт

API key нь цагт 1000 хүсэлт илгээх хязгаартай. Хязгаар хэтэрсэн тохиолдолд 429 Too Many Requests хариултыг буцаана.