# Chứng thực API

## Các phương pháp chứng thực

| Phương pháp                                                                                     | Mô tả                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [API Key ](https://developer.casso.vn/english-v2-new/casso-api/chung-thuc/tao-api-key-thu-cong) | <ul><li>Dùng <strong>API Key</strong> để gọi các API của Casso. <strong>API Key</strong> sẽ được xem như là một <strong>Access token,</strong> chỉ khác nhau ở chỗ chỉ khi <strong>API Key</strong> bị xóa đi thì <strong>API Key</strong> này mới hết hạn, <a href="chung-thuc/tao-api-key-thu-cong">tham khảo tài liệu này</a>.</li></ul>                                                                                                                                                                                                                                                                                                                                              |
| [OAuth 2.0](https://developer.casso.vn/english-v2-new/casso-api/chung-thuc/tich-hop-oauth2)     | <ul><li>Cơ chế chứng thực <strong>OAuth 2.0</strong> cho phép <strong>người dùng cuối</strong> tự động phân quyền cho <strong>Nhà Phát Triển</strong> truy cập thông tin tài khoản của họ tại Casso.</li><li>Sau khi người dùng thực hiện quy trình phân quyền trên phần mềm của <strong>Nhà Phát Triển</strong>, thì một Authorization Code sẽ được tự động sinh ra.</li><li><strong>Nhà Phát triển</strong> sử dụng Authorization Code này gọi tới hệ thống Oauth 2.0 của Casso để lấy <strong>Access token</strong>. Sau đó dùng <strong>Access token</strong> mới nhận được để gọi tới các API của Casso, <a href="chung-thuc/tich-hop-oauth2">tham khảo tài liệu này.</a></li></ul> |

[Phương pháp **API Key**](https://developer.casso.vn/english-v2-new/casso-api/chung-thuc/tao-api-key-thu-cong) dành cho **người dùng cuối.** Là những doanh nghiệp, cá nhân đã sử dụng phần mềm **Casso** phục vụ nhu cầu quản lý thu chi. Và nay doanh nghiệp, cá nhân này cần tích hợp Casso vào hệ thống phần mềm khác mà doanh nghiệp cũng đang sử dụng.&#x20;

[Phương pháp **OAuth 2.0** ](https://developer.casso.vn/english-v2-new/casso-api/chung-thuc/tich-hop-oauth2)dành cho các **nhà phát triển phần mềm cho doanh nghiệp,** muốn tích hợp với Casso để cung cấp cho người dùng thêm lựa chọn **liên kết tài khoản Casso** vào phần mềm.

### Ví dụ với API Key:

{% tabs %}
{% tab title="CURL" %}

```javascript
curl --location --request GET 'https://oauth.casso.vn/v2/userInfo \
--header 'Authorization: Apikey <"API Key của bạn">'
```

{% endtab %}

{% tab title="PHP" %}

```php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://oauth.casso.vn/v2/userInfo",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Apikey <"API Key của bạn">",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);
```

{% endtab %}

{% tab title="JAVA" %}

```java
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://oauth.casso.vn/v2/userInfo")
  .get()
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Apikey <"API Key của bạn">")
  .build();

Response response = client.newCall(request).execute();
```

{% endtab %}
{% endtabs %}

### Ví dụ với Access token từ OAuth 2.0 Casso:

{% tabs %}
{% tab title="CURL" %}

```javascript
curl --location --request GET 'https://oauth.casso.vn/v2/userInfo \
--header 'Authorization: Bearer <"Access token nhận được từ OAuth 2.0 của Casso">'
```

{% endtab %}

{% tab title="PHP" %}

```php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://oauth.casso.vn/v2/userInfo",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer <"Access token nhận được từ OAuth 2.0 của Casso">",
    "Content-Type: application/json"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);
```

{% endtab %}

{% tab title="JAVA" %}

```java
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://oauth.casso.vn/v2/userInfo")
  .get()
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer <"Access token nhận được từ OAuth 2.0 của Casso">")
  .build();

Response response = client.newCall(request).execute();
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Nếu như các bạn đã có các thông tin ở trên như: **API Key**, **access token** từ [Oauth 2.0 Casso](https://developer.casso.vn/english-v2-new/casso-api/chung-thuc/tich-hop-oauth2). Các bạn đã có thể sử dụng các thông tin đó với [danh sách API của Casso.](https://developer.casso.vn/english-v2-new/casso-api/api)
{% endhint %}
