# Certify.mn API

{% hint style="info" %}
Юун түрүүнд та certify.mn системд бүртгүүлээд API Key авсан байх ёстойг санаарай. \
API Key үүсгэх заавар [эндээс](https://docs.certify.mn/notly/issue-document/certify.mn-api/create-api-key) үзээрэй.
{% endhint %}

Certify систем нь датагаа эмх цэгцтэй хадгалж, эргээд хайлт хийхэд хялбар болгох үүднээс дараах байдлаар хадгалдаг.

**Хавтас /graduation/:** Хэд хэдэн баримт бичгийн олонлог. Ихэвчлэн нэг ангийн төгсөлт, нэг тэнхимийн төгсөлт зэргийг хадгалвал зохистой. Шинээр хавтас/graduation/ үүсгэх зааврыг [эндээс](https://docs.certify.mn/notly/issue-document/certify.mn-api/graduation) үзээрэй.

**Ноорог /draft/:** Нэг удаагийн оролдлогоор баталгаажуулж буй файлууд. zip файл үүсгээд upload хийж байгаа бол zip доторх файлууд нэг draft болно. 1 pdf файл дангаараа оруулж байгаа бол уг файл дангаараа нэг draft дотор агуулагдана. Draft доторх бүх файл баталгаажсан бол draft дахиж хэрэглэгчид харагдахгүй.

**Баримт бичиг /document/:** Нэг ширхэг баримт бичиг. Жишээ нь диплом, гэрчилгээ ...

### Орчны мэдээлэл:

| Орчин                | URL                          |
| -------------------- | ---------------------------- |
| Production /notly/   | <https://notly.mn/service>   |
| Production /certify/ | <https://certify.mn/service> |

## Хэрэглэгчийн хувийн мэдээллийн дэлгэрэнгүй

<mark style="color:blue;">`GET`</mark> `https://certify.mn/service/api/user/user`

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ  Response" %}

```json
{
    "id": "03c480cd-fb0d-4c9a-ba60-86b508a31652",
    "username": "admin@test",
    "first_name": "admin",
    "last_name": "admin",
    "is_staff": false,
    "is_active": true,
    "is_admin": true,
    "is_oauth": false,
    "sub_company_id": "",
    "address": "BLOCK_CHAIN_ADDRESS",
    "credit": 10,
    "company": "Test company",
    "is_university": true,
    "logo_url": "https://storage.googleapis.com/test.png",
    "hemis_username": "test"
}
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="401: Unauthorized API Key буруу үед" %}
{% tabs %}
{% tab title="Жишээ Response" %}

```json
{
    "detail": "API key-д тохирох хэрэглэгч олдсонгүй"
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Хавтсын жагсаалт авах

<mark style="color:blue;">`GET`</mark> `https://certify.mn/service/api/v2/certification/graduation`

#### Query Parameters

| Name   | Type | Description |
| ------ | ---- | ----------- |
| limit  | Int  | хуудаслалт  |
| offset | Int  | offset      |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ Response" %}

<pre class="language-json"><code class="lang-json">{
    "count": 2,
    "next": null,
    "previous": null,
<strong>    "results": [
</strong>        {
            "id": "d1099df6-dff8-4d13-8a0c-06cde35ca798",
            "created_by": {//үүсгэсэн харилцагч
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "revoked_count": 0,//хүчнгүй болсон баримтын тоо
            "failed_count": 1,//амжилтгүй болсон баримтын тоо
            "pending_count": 1,//блокчэйнрүү орох нь хүлээгдэж буй баримтын тоо
            "issued_count": 1,//блокчэйнрүү амжилттай орсон баримтын тоо
            "total_count": 3,//нийт баримтын тоо
            "created_at": "2023-05-29T11:28:01.572502Z", //үүсгэсэн огноо
            "updated_at": "2023-05-29T11:34:58.391081Z", //өөрчлөлт орсон огноо
            "expire_date": 0,//хүчинтэй хугацаатай бол хүчинтэй хугацааны timestamp
            "name": "2022-2023, Намар, ХШУИС, Бакалавр, Мэдээллийн Технологи, (F.IT231)",//хавтсын нэр
            "is_diploma": false,//их сургуулийн диплом эсэх мэдээлэл
            "type": "CERTIFICATION",//төрөл CERTIFICATION/DIPLOMA/DUAL_DIPLOMA
            "organization": "3ae23a96-3439-45c8-885d-fd0ce4338756"
        },
        {
            "id": "788346d2-9bef-4dbd-a8da-153eb85b90f2",
            "created_by": {
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "revoked_count": 0,
            "failed_count": 4,
            "pending_count": 0,
            "issued_count": 0,
            "total_count": 4,
            "created_at": "2023-03-26T07:52:47.133241Z",
            "updated_at": "2023-05-29T11:33:59.904393Z",
            "expire_date": 0,
            "name": "2022-2023, Хавар, ХШУИС, Магистр, Мэдээллийн Технологи, (F.IT231)",
            "is_diploma": true,
            "type": "DIPLOMA",
            "organization": "3ae23a96-3439-45c8-885d-fd0ce4338756"
        }
    ]
}
</code></pre>

{% endtab %}
{% endtabs %}

```json
```

{% endtab %}
{% endtabs %}

## Хавтсын дэлгэрэнгүй авах

<mark style="color:blue;">`GET`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>`

#### Path Parameters

| Name                                                | Type   | Description |
| --------------------------------------------------- | ------ | ----------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID  |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ Response" %}

```json
{
    "id": "d1099df6-dff8-4d13-8a0c-06cde35ca798",
    "revoked_count": 0,
    "failed_count": 1,
    "pending_count": 1,
    "issued_count": 1,
    "total_count": 3,
    "created_by": {
        "username": "admin@test",
        "first_name": "admin",
        "last_name": "admin"
    },
    "created_at": "2023-05-29T11:28:01.572502Z",
    "updated_at": "2023-05-29T11:34:58.391081Z",
    "expire_date": 0,
    "name": "2022-2023, Намар, ХШУИС, Бакалавр, Мэдээллийн Технологи, (F.IT231)",
    "is_diploma": false,
    "type": "CERTIFICATION",
    "organization": "3ae23a96-3439-45c8-885d-fd0ce4338756",
    "documents": [//баримт бичгүүдийн ID
        "1f0967f1-b602-4516-86ab-a7ff41aa753b",
        "1fb0b731-679c-426e-b908-4e33241e9051",
        "5aa33277-2cb3-4e3a-a889-4c17906ca9a7"
    ],
    "field_choices": [
        {
            "id": 20,
            "field": {
                "field_label": "Он",
                "id": "b48f6617-7393-4207-9cf5-0fa545053c99",
                "has_code": false,
                "order": 1
            },
            "value": {
                "id": "f8af3554-6e54-43b9-a77e-dbaa61b01f2e",
                "value": "2022-2023",
                "code": "2022-2023"
            }
        },
        {
            "id": 22,
            "field": {
                "field_label": "Салбар Сургууль",
                "id": "eb24427b-575c-48a5-81b6-cb0805389ecf",
                "has_code": false,
                "order": 3
            },
            "value": {
                "id": "092b8049-c6fd-411f-9d51-367d51bf5b95",
                "value": "ХШУИС",
                "code": "ХШУИС"
            }
        },
        {
            "id": 24,
            "field": {
                "field_label": "Хөтөлбөрийн Нэр",
                "id": "fd75261e-2370-464a-af6f-bc2664e56863",
                "has_code": true,
                "order": 5
            },
            "value": {
                "id": "99f1551e-a7f6-463a-8b54-7f876243cc11",
                "value": "Мэдээллийн Технологи",
                "code": "F.IT231"
            }
        },
        {
            "id": 152,
            "field": {
                "field_label": "Улирал",
                "id": "11d1fd85-1a11-4e1e-b63c-eb288524374d",
                "has_code": false,
                "order": 2
            },
            "value": {
                "id": "df07419d-636c-4a6b-985b-0c0da10b173d",
                "value": "Намар",
                "code": "Намар"
            }
        },
        {
            "id": 153,
            "field": {
                "field_label": "Түвшин",
                "id": "1d0b7dbe-bf39-47e3-80c1-1341202506ea",
                "has_code": false,
                "order": 4
            },
            "value": {
                "id": "67291421-5d96-414f-b773-6e0a2ec589ec",
                "value": "Бакалавр",
                "code": "Бакалавр"
            }
        }
    ]
}
```

{% endtab %}
{% endtabs %}

```json
```

{% endtab %}
{% endtabs %}

## Хавтас доторх баримт бичгүүдийн жагсаалт авах

<mark style="color:blue;">`GET`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>/document`

#### Path Parameters

| Name                                                | Type   | Description                                                                                     |
| --------------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID                                                                                      |
| state                                               | String | баримт бичиг блокчэйн дээрх бичигдсэн эсэхийг илэрхийлэх төлөв ISSUED, REVOKED, PENDING, FAILED |

#### Query Parameters

| Name   | Type | Description |
| ------ | ---- | ----------- |
| limit  | Int  | хуудаслалт  |
| offset | Int  | offset      |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ Response" %}

```json
{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "5aa33277-2cb3-4e3a-a889-4c17906ca9a7",
            "state": "ISSUED",
            "created_by": {
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "revoked_by": null,
            "created_at": "2023-05-29T11:34:58.383667Z",
            "updated_at": "2023-05-29T11:35:00.484473Z",
            "name": "pdf-test",
            "file_hash": "354f65e6c4e2c3b994d13ae831a8c8576ff7754ee79caf904e8e1d48923c8025",
            "transaction_id": "0x61ebfd8ffbf5786549d3fa5db4e3845ffa67bd589ae2cfac78a341ba1da03726",
            "error_msg": null,
            "revoked_at": null,
            "revoke_txid": "",
            "revoke_note": "",
            "approved_at": null,
            "approve_txid": "",
            "sub_company_id": "",
            "draft": "b58e048a-9195-4ea3-8b16-fc96bd42df04",
            "graduation": "d1099df6-dff8-4d13-8a0c-06cde35ca798",
            "meta_data": null
        }
    ]
}
```

{% endtab %}

{% tab title="?state=ISSUED" %}

```json
{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "5aa33277-2cb3-4e3a-a889-4c17906ca9a7",
            "state": "ISSUED",
            "created_by": {
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "revoked_by": null,
            "created_at": "2023-05-29T11:34:58.383667Z",
            "updated_at": "2023-05-29T11:35:00.484473Z",
            "name": "pdf-test",
            "file_hash": "354f65e6c4e2c3b994d13ae831a8c8576ff7754ee79caf904e8e1d48923c8025",
            "transaction_id": "0x61ebfd8ffbf5786549d3fa5db4e3845ffa67bd589ae2cfac78a341ba1da03726",
            "error_msg": null,
            "revoked_at": null,
            "revoke_txid": "",
            "revoke_note": "",
            "approved_at": null,
            "approve_txid": "",
            "sub_company_id": "",
            "draft": "b58e048a-9195-4ea3-8b16-fc96bd42df04",
            "graduation": "d1099df6-dff8-4d13-8a0c-06cde35ca798",
            "meta_data": null
        }
    ]
}
```

{% endtab %}

{% tab title="?state=REVOKED" %}

```json
{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "fe781d28-b3f5-44ef-96b4-1d7d9a5abbcf",
            "state": "REVOKED",
            "created_by": {
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "revoked_by": {
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "created_at": "2023-03-26T11:28:45.041532Z",
            "updated_at": "2023-04-21T03:24:30.597528Z",
            "name": "test.pdf",
            "file_hash": "8b4b5ecdbe722f964b684a3333044ef2389c9df902c01107e781d70ee5b18b8f",
            "transaction_id": "0x9c388e5f30fcda10a014cafb410a166f3fb4b02cda88947d05aedfc0d733e89a",
            "error_msg": null,
            "revoked_at": "2023-04-21T03:24:30.594998Z",
            "revoke_txid": "0x2c88148b9ff0acead220054ff3b5c5d5fe49990474e01b2be52eb9d6f455aaa0",
            "revoke_note": "vnusssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
            "approved_at": null,
            "approve_txid": "",
            "sub_company_id": "",
            "draft": "2480439b-2477-4b99-9693-fd41e5bcab30",
            "graduation": "18ccd9d7-39a1-42ab-b9ed-2e77734981ce",
            "meta_data": null
        }
    ]
}
```

{% endtab %}

{% tab title="?state=FAILED" %}

```json
{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "1f0967f1-b602-4516-86ab-a7ff41aa753b",
            "state": "FAILED",
            "created_by": {
                "username": "admin@test",
                "first_name": "admin",
                "last_name": "admin"
            },
            "revoked_by": null,
            "created_at": "2023-05-29T11:28:06.402372Z",
            "updated_at": "2023-05-29T11:28:11.013589Z",
            "name": "test",
            "file_hash": "5b9657f1fb18fdc9810931083b4f9755423a77cb47c7e0df507d8ad5d63cc18d",
            "transaction_id": null,
            "error_msg": "Блокчэйн дээр гүйлгээ хийхэд алдаа гарлаа.",
            "revoked_at": null,
            "revoke_txid": "",
            "revoke_note": "",
            "approved_at": null,
            "approve_txid": "",
            "sub_company_id": "",
            "draft": "4567c10e-ffcb-45cd-9749-6ec319607710",
            "graduation": "d1099df6-dff8-4d13-8a0c-06cde35ca798",
            "meta_data": null
        }
    ]
}
```

{% endtab %}
{% endtabs %}

```json
```

{% endtab %}
{% endtabs %}

## Баримт бичгийн дэлгэрэнгүй авах

<mark style="color:blue;">`GET`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>/document/<document_id>`

#### Path Parameters

| Name                                                | Type   | Description       |
| --------------------------------------------------- | ------ | ----------------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID        |
| \<document\_id><mark style="color:red;">\*</mark>   | String | Баримт бичгийн ID |

#### Headers

| Name                                        | Type   | Description |
| ------------------------------------------- | ------ | ----------- |
| x-api-key<mark style="color:red;">\*</mark> | String | API Key     |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ Response" %}

```json
{
    "id": "5aa33277-2cb3-4e3a-a889-4c17906ca9a7",
    "state": "ISSUED",
    "created_by": {
        "username": "admin@test",
        "first_name": "admin",
        "last_name": "admin"
    },
    "revoked_by": null,
    "created_at": "2023-05-29T11:34:58.383667Z",
    "updated_at": "2023-05-29T11:35:00.484473Z",
    "name": "pdf-test",
    "file_hash": "354f65e6c4e2c3b994d13ae831a8c8576ff7754ee79caf904e8e1d48923c8025",
    "transaction_id": null,
    "error_msg": null,
    "revoked_at": null,
    "revoke_txid": "",
    "revoke_note": "",
    "approved_at": null,
    "approve_txid": "",
    "sub_company_id": "",
    "draft": "b58e048a-9195-4ea3-8b16-fc96bd42df04",
    "graduation": "d1099df6-dff8-4d13-8a0c-06cde35ca798",
    "meta_data": null
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Хавтас доторх баримт бичгүүдээс татаж авах

<mark style="color:green;">`POST`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>/document/download`

нэг баримт бичиг бол .pdf хэлбэрээр олон баримт бичиг бол .zip хэлбэрээр татагдана.

#### Path Parameters

| Name                                                | Type   | Description |
| --------------------------------------------------- | ------ | ----------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID  |

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |
| x-api-key<mark style="color:red;">\*</mark>    | String | API Key          |

#### Request Body

| Name                                            | Type           | Description                                                  |
| ----------------------------------------------- | -------------- | ------------------------------------------------------------ |
| document\_ids<mark style="color:red;">\*</mark> | Array\<String> | Татаж авах баримт бичгүүдийн ID уудыг хүснэгтэд хийн илгээнэ |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ Request" %}

```json
{
    "document_ids": ["doc_id"]
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Хавтас дотор баримт бичиг нэмж блокчэйнд баталгаажуулах

<mark style="color:green;">`POST`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>/document/issue_single_document`

Хавтас үүсгэх зааврыг [эндээс](https://docs.certify.mn/notly/issue-document/certify.mn-api/graduation) хараарай.\
Нэг баримт бичиг бол .pdf хэлбэрээр олон баримт бичиг бол .zip хэлбэрээр илгээж болно. Энэ хүсэлтээр нэмсэн файл нь блокчэйнд баталгаажих хүртэл хэсэг хугацаа зарцуулагдана. Та [дэлгэрэнгүй](#barimt-bichgiin-delgereng-i-avakh) хүсэлтээр state төлөв нь ISSUED болсон эсэхийг шалгаж  болно. ISSUED бол баталгаажсан, FAILED бол ямар нэг алдаа гарсан, PENDING бол баталгаажихыг хүлээж байгаа.&#x20;

#### Path Parameters

| Name                                                | Type   | Description |
| --------------------------------------------------- | ------ | ----------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID  |

#### Headers

| Name                                           | Type   | Description |
| ---------------------------------------------- | ------ | ----------- |
| Content-Type<mark style="color:red;">\*</mark> | String | form        |
| x-api-key<mark style="color:red;">\*</mark>    | String | API Key     |

#### Request Body

| Name                                   | Type | Description                             |
| -------------------------------------- | ---- | --------------------------------------- |
| file<mark style="color:red;">\*</mark> | File | .pdf эсвэл олон .pdf агуулсан .zip файл |

{% tabs %}
{% tab title="201: Created Амжилттай үед  /нээж жишээ харна уу/" %}
{% tabs %}
{% tab title="Жишээ Request" %}

```json
{
    "draft_id": "29e4e890-e3dc-4f45-aa43-a40cf62ca17e",
    "document_ids": [//баримт бичгүүдийн ID
        "e9a41e86-9477-463f-b0ac-81c103a18cdb"
    ]
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Баталгаажсан баримтыг хүчингүй болгох

<mark style="color:green;">`POST`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>/document/revoke`

#### Path Parameters

| Name                                                | Type   | Description |
| --------------------------------------------------- | ------ | ----------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID  |

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |
| x-api-key<mark style="color:red;">\*</mark>    | String | API Key          |

#### Request Body

| Name                                            | Type           | Description                                                       |
| ----------------------------------------------- | -------------- | ----------------------------------------------------------------- |
| document\_ids<mark style="color:red;">\*</mark> | Array\<String> | Хүчингүй болгох баримт бичгүүдийн ID уудыг хүснэгтэд хийн илгээнэ |
| revoke\_note<mark style="color:red;">\*</mark>  | String         | Хүчингүй болгож буй тайлбар                                       |

{% tabs %}
{% tab title="200: OK Амжилттай үед /нээж жишээ харна уу/" %}
{% tabs %}
{% tab title="Жишээ Request" %}

```json
{
    "document_ids": ["doc_id"],
    "revoke_note": "Алдаатай баримт"
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

## Баталгаажуулах үед алдаа гарсан баримтыг дахин баталгаажуулах оролдлого хийх

<mark style="color:green;">`POST`</mark> `https://certify.mn/service/api/v2/certification/graduation/<graduation_id>/document/retry`

#### Path Parameters

| Name                                                | Type   | Description |
| --------------------------------------------------- | ------ | ----------- |
| \<graduation\_id><mark style="color:red;">\*</mark> | String | Хавтсын ID  |

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |
| x-api-key<mark style="color:red;">\*</mark>    | String | API Key          |

#### Request Body

| Name                                            | Type           | Description                                                            |
| ----------------------------------------------- | -------------- | ---------------------------------------------------------------------- |
| document\_ids<mark style="color:red;">\*</mark> | Array\<String> | Дахин баталгаажууалх баримт бичгүүдийн ID уудыг хүснэгтэд хийн илгээнэ |

{% tabs %}
{% tab title="200: OK Амжилттай үед" %}
{% tabs %}
{% tab title="Жишээ Request" %}

```json
{
    "document_ids": ["doc_id"]
}
```

{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}
