> ## 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.

# Inisialisasi saldo cuti

> Panggil API DingTalk untuk menginisialisasi saldo cuti reguler karyawan secara massal. Tentukan jenis cuti, kuota, dan masa berlaku dalam satu permintaan.

Panggil API ini untuk menginisialisasi beberapa saldo cuti reguler bagi seorang karyawan.

## Deskripsi panggilan API

Jenis cuti pengganti tidak perlu diinisialisasi melalui API ini. Durasi lembur otomatis dikonversi menjadi durasi cuti pengganti. Aturan cuti dapat dibuat dengan 2 cara, yaitu dengan memanggil API atau melalui aplikasi resmi DingTalk Attendance:

| Metode pembuatan aturan cuti | Dukungan pembaruan jenis cuti oleh API ini |
| - | - |
| Jenis cuti yang dibuat dengan memanggil API [Menambahkan aturan cuti](https://help.dingtalk.io/id/open/development/add-holiday-rules.md). | Didukung |
| Jenis cuti yang dibuat di aplikasi Attendance pada Admin Console.   - Dibuat secara default oleh sistem aplikasi Attendance. - Dibuat melalui backend aplikasi Attendance. | Tidak didukung |

## Permintaan

| **Informasi dasar** | |
| - | - |
| URL HTTP | [https://api.dingtalk.io/topapi/attendance/vacation/quota/init](https://api.dingtalk.io/topapi/attendance/vacation/quota/init) |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Aplikasi internal　appType-Aplikasi perusahaan pihak ketiga |
| Persyaratan izin | permission-qyapi\_holiday\_manage-Izin manajemen cuti DingTalk |

### Parameter query

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| access\_token | String | Ya | bE74xxxx | Kredensial aplikasi yang digunakan 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 | manager1 | ID pengguna admin di Organisasi Anda yang memiliki izin aplikasi untuk **Persetujuan OA**. |
| leave\_quotas | LeaveQuotas | Ya | | Catatan saldo cuti yang akan diinisialisasi. |
| userid | String | Ya | zhangsan | ID pengguna karyawan. |
| end\_time | Number | Ya | 1653851001000 | Waktu berakhirnya masa berlaku kuota, dalam bentuk stempel waktu milidetik. |
| start\_time | Number | Ya | 1553851001000 | Waktu dimulainya masa berlaku kuota, dalam bentuk stempel waktu milidetik. |
| leave\_code | String | Ya | f84a282xxxx | Pengidentifikasi unik jenis cuti.  **Catatan**   - Inisialisasi didukung untuk jenis cuti yang ditambahkan dengan memanggil API [Menambahkan aturan cuti](https://help.dingtalk.io/id/open/development/add-holiday-rules.md). - Inisialisasi tidak didukung untuk jenis cuti bawaan organisasi. |
| reason | String | Tidak | Diimpor oleh admin | Alasan tindakan. |
| quota\_num\_per\_day | Number | Tidak | 100 | Total kuota, dihitung dalam hari.  **Catatan**  Jika jenis cuti dihitung dalam hari, nilai ini tidak boleh kosong dan diukur dalam perseratus hari.  Contoh: 1000 = 10 hari. |
| quota\_num\_per\_hour | Number | Tidak | 100 | Total kuota, dihitung dalam jam.  **Catatan**  Jika jenis cuti dihitung dalam jam, nilai ini tidak boleh kosong dan diukur dalam perseratus jam.  Contoh: 1000 = 10 jam. |
| quota\_cycle | String | Tidak | 2019 | Siklus yang berlaku untuk kuota.  **Catatan**  Formatnya harus "yyyy". |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/attendance/vacation/quota/init" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=d82be2bxxxx023' \
-d 'leave_quotas=null' \
-d 'op_userid=zhangsan'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/vacation/quota/init");
OapiAttendanceVacationQuotaInitRequest req = new OapiAttendanceVacationQuotaInitRequest();
req.setOpUserid("zhangsan");
List<LeaveQuotas> list = new ArrayList<LeaveQuotas>();
LeaveQuotas leaveQuotas = new LeaveQuotas();
list.add(leaveQuotas);
leaveQuotas.setUserid("user1");
leaveQuotas.setEndTime(1653851001000L);
leaveQuotas.setStartTime(1553851001000L);
leaveQuotas.setLeaveCode("f84a2829-xxxx0653");
leaveQuotas.setReason("Diimpor oleh admin");
leaveQuotas.setQuotaNumPerDay(100L);
leaveQuotas.setQuotaNumPerHour(100L);
leaveQuotas.setQuotaCycle("2019");
req.setLeaveQuotas(list);
OapiAttendanceVacationQuotaInitResponse 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.OapiAttendanceVacationQuotaInitRequest("https://api.dingtalk.io/topapi/attendance/vacation/quota/init")

req.op_userid="zhangsan"
req.leave_quotas=""
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 OapiAttendanceVacationQuotaInitRequest;
$req->setOpUserid("zhangsan");
$leave_quotas = new LeaveQuotas;
$leave_quotas->userid="zhangsan";
$leave_quotas->end_time="1653851001000";
$leave_quotas->start_time="1553851001000";
$leave_quotas->leave_code="f84a2829-d245-4312-9ff2-0653e5b3abb2";
$leave_quotas->reason="Diimpor oleh admin";
$leave_quotas->quota_num_per_day="100";
$leave_quotas->quota_num_per_hour="100";
$leave_quotas->quota_cycle="2019";
$req->setLeaveQuotas(array($leave_quotas));
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/vacation/quota/init");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/vacation/quota/init");
OapiAttendanceVacationQuotaInitRequest req = new OapiAttendanceVacationQuotaInitRequest();
req.OpUserid = "zhangsan";
List<OapiAttendanceVacationQuotaInitRequest.LeaveQuotasDomain> list2 = new List<OapiAttendanceVacationQuotaInitRequest.LeaveQuotasDomain>();
OapiAttendanceVacationQuotaInitRequest.LeaveQuotasDomain obj3 = new OapiAttendanceVacationQuotaInitRequest.LeaveQuotasDomain();
list2.Add(obj3);
obj3.Userid = "zhangsan";
obj3.EndTime = 1653851001000L;
obj3.StartTime = 1553851001000L;
obj3.LeaveCode = "f84a2829-d245-4312-9ff2-0653e5b3abb2";
obj3.Reason = "Diimpor oleh admin";
obj3.QuotaNumPerDay = 100L;
obj3.QuotaNumPerHour = 100L;
obj3.QuotaCycle = "2019";
req.LeaveQuotas_ = list2;
OapiAttendanceVacationQuotaInitResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama | Tipe | Contoh | Deskripsi |
| - | - | - | - |
| result | Result\[] | | Hasil yang dikembalikan. |
| reason | String | Kuota yang dihitung dalam hari tidak boleh kosong | Alasan kegagalan. |
| quota | Quota | | Catatan yang gagal. |
| leave\_code | String | f84a2829-xxxx0653 | Pengidentifikasi unik jenis cuti. |
| userid | String | user1 | ID pengguna karyawan. |
| quota\_cycle | String | 2019 | Siklus yang berlaku untuk kuota. |
| errcode | Number | 0 | Kode pengembalian. |
| errmsg | String | ok | Pesan error yang dikembalikan jika panggilan gagal. |
| success | Boolean | true | Menunjukkan apakah permintaan berhasil.   - **true**: Ya - **false**: Tidak |
| request\_id | String | zq4aec1jton8 | ID permintaan. |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode": 0,
  "result": [
    {
      "quota": {
        "leave_code": "f84a2829-xxxx0653",
        "userid": "10203029011219896"
      },
      "reason": "Kuota yang dihitung dalam hari tidak boleh kosong"
    }
  ],
  "success": true,
  "request_id": "zq4aec1jton8"
}
```

### Kode error

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


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