Public API
InnoScore Public API-г ашиглан харилцагчийн банкны хуулга боловсруулах, багцын төлөв шалгах, харилцагчийн мэдээлэл/статистик авах.
Зорилго
Харилцагчийн дансны хуулганд үндэслэн хиймэл оюун ашиглан харилцагчийн тоон мэдээллийг тооцоолох, мөн хэрэглэгчийн програм хоорондын мэдээлэл солилцоог хангахад дараах хаягаар хандаж мэдээлэл солилцоно.
API URL: https://api.innoscore.mn/
Аюулгүй байдал
Бүх API сервисүүдийг ашиглахад давхар нууцлал шаардлагатай:
- JWT Token - Системийн хэрэглэгчийн эрхээр нэвтэрч авна.
- API Key - Байгууллага бүрд оноосон нууц түлхүүр.
Шаардлагатай хүсэлтийн толгойнууд
| Header | Тайлбар | Example |
|---|---|---|
Authorization | JWT Bearer token | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... |
X-API-Key | Partner API key | pk_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
Хүсэлтийн Параметрууд
| Параметр | Төрөл | Шаардлагатай | Тайлбар |
|---|---|---|---|
files | File[] | Тийм | Банкны хуулгууд (PDF, XLS, XLSX) |
register_number | string | Тийм | Компанийн регистрийн дугаар |
Хязгаарлалтууд
- Нэг удаагийн хүсэлт 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 | Тайлбар |
|---|---|
| 400 | Validation failed (missing files, invalid format, size exceeded) |
| 401 | Authentication failed |
2. Багц файлын боловсруулалт
Хуулга оруулах сервисийн файлуудын явцыг хянах, оруулж дууссан үед хэрэглэгчийн хувийн дугаар(ууд)-ыг авах.
GET /public_api/v1/batch/{batch_id}/status/
Хүсэлтийн Параметрууд
| Параметр | Төрөл | Тайлбар |
|---|---|---|
batch_id | UUID | Хуулга оруулах сервисийн хариултаас ирэх утга |
Хариулт
{
"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 | Тайлбар |
|---|---|---|---|
search | string | - | Овог, нэрээр хайх |
page | integer | 1 | Хуудасны дугаар |
page_size | integer | 20 | Нэг хуудсанд багтах харилцагчийн тоо |
Хариулт
{
"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_id | integer | Хэрэглэгчийн хувийн дугаар |
Query Параметрs
| Параметр | Төрөл | Тайлбар |
|---|---|---|
since | ISO 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-
Сервисүүдийг ашиглах жишээ
- Банкний хуулгуудаа оруулах -
batch_idавах - Багц файлын төлөв шалгах - Тодорхой хугацааны давтамжтай багц файлын боловсруулалтыг шалгах.
statusталбарcompletedболох үед,customer_idsболонcreated_atутгуудыг хадгалах - Хэрэглэгчийн статистик шалгах - Тодорхой хугацааны давтамжтай хэрэглэгч бүрийн статистик боловсруулалтыг шалгах.
since={created_at}ашиглаж шинээр тооцоолсон хэрэглэгчийн статистикийг авах
Алдааны хариултын формат
Бүх алдааны хариултын баримтлах формат:
{
"is_success": false,
"message": "Error description",
"data": {
"field_name": ["Error detail"]
}
}
Ашиглалтын хязгаарлалт
API key нь цагт 1000 хүсэлт илгээх хязгаартай. Хязгаар хэтэрсэн тохиолдолд 429 Too Many Requests хариултыг буцаана.