> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kueri daftar aturan cuti

> Panggil API DingTalk ini untuk mengambil daftar aturan cuti organisasi, lengkap dengan nama cuti, satuan cuti, sumber cuti, dan aturan pengajuan.

Panggil API ini untuk mengambil daftar aturan cuti di organisasi Anda, termasuk nama cuti dan satuan cuti.

## Permintaan

| **Informasi dasar** | |
| - | - |
| URL HTTP | [https://api.dingtalk.io/topapi/attendance/vacation/type/list](https://api.dingtalk.io/topapi/attendance/vacation/type/list) |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Aplikasi internal　appType-Aplikasi perusahaan pihak ketiga |
| Izin yang diperlukan | permission-qyapi\_holiday\_readonly-Izin baca cuti DingTalk |

### Parameter kueri

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| access\_token | String | Ya | bE74xxxx | Kredensial aplikasi untuk memanggil API ini.   - Untuk Aplikasi internal, dapatkan dengan memanggil API [Mendapatkan access\_token Aplikasi internal](https://help.dingtalk.io/id/open/development/obtain-orgapp-token). - Untuk Aplikasi perusahaan pihak ketiga, dapatkan dengan memanggil API untuk mendapatkan access\_token organisasi pihak ketiga. |

### Isi permintaan

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| op\_userid | String | Ya | user01 | ID pengguna Admin di organisasi Anda yang memiliki izin aplikasi untuk Aplikasi **Persetujuan OA**. |
| vacation\_source | String | Tidak | all | Sumber cuti. Nilai yang valid:   - **"all"**: Mengembalikan semua jenis cuti. - **""**: Hanya mengembalikan jenis cuti yang dibuat melalui API penambahan aturan cuti. |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/attendance/vacation/type/list" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=43aexxxxd897cd9' \
-d 'op_userid=03085665764167' \
-d 'vacation_source=all'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/vacation/type/list");
OapiAttendanceVacationTypeListRequest req = new OapiAttendanceVacationTypeListRequest();
req.setOpUserid("user01");
req.setVacationSource("all");
OapiAttendanceVacationTypeListResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
```

Python

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import dingtalk.api

req=dingtalk.api.OapiAttendanceVacationTypeListRequest("https://api.dingtalk.io/topapi/attendance/vacation/type/list")

req.op_userid="03085665764167"
req.vacation_source="all"
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
```

PHP

```php theme={"theme":{"light":"github-light","dark":"github-dark"}}
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiAttendanceVacationTypeListRequest;
$req->setOpUserid("03085665764167");
$req->setVacationSource("all");
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/vacation/type/list");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/vacation/type/list");
OapiAttendanceVacationTypeListRequest req = new OapiAttendanceVacationTypeListRequest();
req.OpUserid = "03085665764167";
req.VacationSource = "all";
OapiAttendanceVacationTypeListResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama | Tipe | Contoh | Deskripsi |
| - | - | - | - |
| request\_id | String | 3k4z2hq8pv2x | ID permintaan. |
| errcode | Number | 0 | Kode pengembalian. |
| errmsg | String | ok | Deskripsi kode pengembalian. |
| success | Boolean | true | Menunjukkan apakah permintaan berhasil.   - **true**: Ya - **false**: Tidak |
| result | Result\[] | | Hasil yang dikembalikan. |
| leave\_code | String | 037477sdfsxxxx | Pengenal unik aturan cuti. |
| leave\_name | String | Cuti tahunan | Nama cuti. |
| leave\_view\_unit | String | day | Satuan cuti.   - **day**: Hari - **halfDay**: Setengah hari - **hour**: Jam |
| leave\_certificate | LeaveCertificateVo | | Bukti cuti. |
| leave\_certificate.unit | String | hour | Satuan bukti cuti.   - **hour**: Jam - **day**: Hari |
| leave\_certificate.duration | Number | 1 | Batas durasi cuti yang mewajibkan bukti cuti jika terlampaui. |
| leave\_certificate.enable | Boolean | false | Menunjukkan apakah bukti cuti diaktifkan.   - **true**: Aktif - **false**: Nonaktif |
| leave\_certificate.prompt\_information | String | Informasi cuti | Teks prompt yang ditampilkan pada pengajuan cuti. |
| submit\_time\_rule | SubmitTimeRuleVo | | Aturan pengajuan berbatas waktu. |
| submit\_time\_rule.time\_value | Number | 18 | Nilai batas.   - Jika timeUnit bernilai **day**, rentang yang valid adalah 0 hingga 30 hari. - Jika timeUnit bernilai **hour**, rentang yang valid adalah 0 hingga 24 jam. |
| submit\_time\_rule.time\_unit | String | hour | Satuan waktu.   - **day**: Hari - **hour**: Jam |
| submit\_time\_rule.time\_type | String | before | Tipe batas.   - **before**: Diajukan sebelumnya - **after**: Diajukan susulan |
| submit\_time\_rule.enable\_time\_limit | Boolean | false | Menunjukkan apakah pengajuan berbatas waktu diaktifkan.   - **true**: Aktif - **false**: Nonaktif |
| biz\_type | String | general\_leave | Jenis cuti.   - **general\_leave**: Cuti reguler - **lieu\_leave**: Lembur yang dikonversi menjadi cuti pengganti |
| natural\_day\_leave | String | true | Menunjukkan apakah durasi cuti dihitung berdasarkan hari kalender.   - **true**: Hitung durasi cuti berdasarkan hari kalender. - **false**: Jangan hitung durasi cuti berdasarkan hari kalender.  **Catatan**  Jika nilainya **false**, durasi cuti dihitung berdasarkan penjadwalan shift pengguna selama periode cuti saat pengguna mengirimkan pengajuan cuti. |
| validity\_type | String | absolute\_time | Tipe masa berlaku.   - **absolute\_time**: Waktu absolut - **relative\_time**: Waktu relatif |
| validity\_value | String | 12-31 | Tanggal perpanjangan.   - Jika validity\_type bernilai **absolute\_time**, nilai ini tidak kosong dan menggunakan format "yy-mm". - Jika validity\_type bernilai **relative\_time**, nilai ini berupa integer yang lebih besar dari 1. |
| hours\_in\_per\_day | Number | 1000 | Jam kerja per hari, dalam satuan 1/100 jam.  Contoh: 1 hari = 10 jam = 1000. |
| source | String | inner | Sumber cuti.   - **external**: Cuti kustom yang dibuat melalui Open API - **inner**: Cuti yang dibuat di Admin Console OA |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode": 0,
  "errmsg":"ok",
  "result": [
    {
      "biz_type": "general_leave",
      "hours_in_per_day": 1000,
      "leave_code": "037477sdfsxxxx",
      "leave_name": "Cuti tahunan",
      "leave_view_unit": "day",
      "leave_certificate": {
        "unit": "hour",
        "duration": "1",
        "enable": false,
        "prompt_information": "Informasi cuti"
      },
      "submit_time_rule": {
        "time_value": 18,
        "time_unit": "day",
        "time_type": "before",
        "enable_time_limit": false
      },
      "validity_type": "absolute_time",
      "natural_day_leave": "true",
      "validity_value": "12-31",
      "source": "external"
    }
  ],
  "success": true,
  "request_id": "3k4z2hq8pv2x"
}
```

### Kode error

Jika panggilan API mengembalikan error, cari solusinya di dokumen [Kode error global](https://help.dingtalk.io/id/open/development/server-api-error-codes-1.md) berdasarkan pesan error yang diterima.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.