KANAL API DOCUMENTATION

Introduction

Perhatikan hal-hal berikut sebelum melakukan request API

  1. Semua request dikirimkan dalam bentuk JSON
  2. Pastikan Anda telah memperoleh access_token yang diperlukan sebelum melakukan permintaan.
  3. Harap perhatikan batasan rate yang berlaku untuk mencegah pemblokiran akses.
  4. Klik link ini untuk mengunduh JSON Collection Postman.
  5. Atau klik tombol dibawah untuk run dengan Postman

Authentication

Authentication adalah langkah penting untuk melindungi data dan memastikan bahwa hanya pengguna yang sah yang dapat mengakses API. Untuk mengakses API kami, Anda perlu melakukan authentication. Berikut adalah langkah-langkah yang perlu Anda ikuti:

Access Token

Daftarkan akun Anda di Kanal dan kunjungi halaman Kanal Developer API untuk mendapatkan access_token. Berikut adalah langkah-langkah yang perlu Anda ikuti setelah mendaftar akun kanal:


Masuk ke menu Developer, pilih Developer API

Klik Buat Kredensial Setelah itu, sebuah pop-up akan muncul.


Pastikan untuk menyimpan access_token ini dengan aman.

Untuk penjelasan komponen access_token, klik di sini.


Penggunaan Access Token

Sertakan access_token dalam header permintaan Anda dengan format berikut:

                                                    
    Authorization: Bearer {{access_token}}
                                                    
                                                

Refresh Token

Refresh token adalah metode yang digunakan untuk memperbarui access_token. Masa berlaku access_token adalah satu minggu, dimulai dari saat refresh_token dilakukan. Anda dapat melakukan refresh_token melalui Postman. Berikut adalah langkah-langkah untuk melakukannya:

Parameters

Required String


apikey : {{apikey}}
secretkey : {{secretkey}}

Body

Required
JSON Object

refresh_token : {{refresh_token}}
access_token : {{access_token}}

Untuk detail penjelasan parameters, klik di sini.

                                        
POST /api/v1/token/refresh?apikey={{apikey}}&secretkey={{secretkey}} HTTP/1.1
Host: https://api.kanal.work
Content-Type: application/json Content-Length: 442 { "refresh_token": "{{refresh_token}}", "access_token": "{{access_token}}" }
                                        
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.kanal.work/api/v1/token/refresh?apikey={{apikey}}&secretkey={{secretkey}}',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS =>'{
        "refresh_token": "{{refresh_token}}",
        "access_token": "{{access_token}}"
    }',
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
    ),
));

$response = curl_exec($curl);

curl_close($curl);


?>
                                        
                                    
                                        
curl --location 'https://apikanal.webby.digital/api/v1/token/refresh?apikey={{apikey}}&secretkey={{secretkey}}' \
--header 'Content-Type: application/json' \
--data '{
    "refresh_token": "{{refresh_token}}",
    "access_token": "{{access_token}}"
}'
                                        
                                    

Status: 200 OK

Data Tipe berhasil diambil

                                        
{
    "success": true,
    "message": {
        "apikey": "5AZKXcrSr3VfwLnxWMFx",
        "secretkey": "af8ad3dbf80c145963a50bd01db71e2ff63ada847967f1094602dda93d2d2660",
        "access_token": "eyJ0aW1lX2NyZWF0ZSI6MTczMD",
        "access_token_expired": 1730825999,
        "refresh_token": "eyJ0b2tlbiI6ImV5SjBhVzFsWDJOeVpXRjBaU0k2TVRjek1ERTROelU0T1N3aWRHbHRaVjlsZUhBaU9qRTNNekE0TWpVNU9Ua3NJbUZ3YVd0bGVTSTZJblpPVldkWk5HMWxOazAwYWtKRmVqTkJSbXBPSWl3aVkyOXRjR0Z1ZVVsa0lqb2lNak13TXlKOS4wNjRlMjMzN2U0MDZhZWJhNDJjYzAxMzA0MDVlNGEyOTQ4OTZhNWQ2YmE0OTZlMzg4NTY5YTlhYTE3NzM5M2E4IiwiYXBpa2V5Ijoidk5VZ1k0bWU2TTRqQkV6M0FGak4iLCJjb21wYW55SWQiOiIyMzAzIn0=.aa737d5bf18136e175ee057b072d35edee082aaf30143aaec12d8f5efeb1bd7cs"
       
    }
}
                                       
                                    

Status: 400 Bad Request

Penyebab gagal:

  1. apikey yang digunakan tidak valid
  2. Secretkey yang digunakan tidak valid
  3. access_token yang digunakan tidak valid
  4. refresh_token yang digunakan tidak valid
                                        
{
    "success": false,
    "errorMessage": "API Key atau Secret Key yang Anda masukkan tidak valid."
}
                                        
                                    

Rate Limit

Setiap endpoint memiliki batas kecepatan untuk menjaga stabilitas sistem. Jika kecepatan pengiriman melebihi batas yang ditetapkan, endpoint akan mengembalikan status code 429. Setiap endpoint dibatasi hingga 60 permintaan per menit.

Status: 429 Too Many Requests

                                                                    
{
    "success": false,
    "message": "Terlalu banyak melakukan permintaan. Silakan coba lagi nanti."
}
                                                                   
                                                                

Tambah tugas

Endpoint untuk menambahkan tugas baru.

POST https://api.kanal.work/api/v1/task

Header

Required String


Authorization

: Bearer {{access_token}}

Body

JSON Object

Parameter Type Required Description
taskfor Array required {{employee_id}}. Menetukan kepada siapa tugas tersebut diberikan. Untuk info get data karyawan lebih lanjut klik disini
taskname String required Nama tugas yang diberikan
tasktype Integer required Tipe dari tugas tersebut. Untuk info lebih lanjut klik disini

employee Integer required {{employee_id}}. Karyawan yang memberikan tugas
project Integer optional {{project_id}}. Menentukan tugas termasuk dalam proyek. Untuk info lebih lanjut klik disini
projectchecklist Integer optional Menentukan tugas termasuk dalam daftar pemeriksaan proyek. {{projectchecklist_id}} harus sinkron dengan {{project_id}} yang dimasukan. Untuk dapat menentukan {{project_id}} Anda harus mengambil data proyek terlebih dahulu. Untuk info lebih lanjut klik disini
taskforgroup Integer optional {{divisi_id}}. Task yang dikirimkan ke semua karyawan yang berada pada group divisi tersebut. Untuk info divisi lebih lanjut klik disini
taskdescription String optional Penjelasan secara detail mengenai tugas tersebut
customer Integer optional {{customer_id}}. Menentukan tugas kepada customer. Untuk info customer lebih lanjut klik disini
contact Integer optional {{customer_id}}. Menentukan contact dari customer yang dipilih. Untuk info customer lebih lanjut klik disini
taskstartdate date optional Tanggal mulai tugas dikerjakan. Untuk format yang digunakan date('d/m/Y')
taskdeadline date optional Tanggal batas pengerjaan tugas ditetapkan. Untuk format yang dgunakan date(d/m/Y H:i) || (d/m/Y)
taskreminder Array optional Tanggal yang ditentukan untuk mengingatkan tugas yang perlu diselesaikan. Untuk info lebih lanjut mengenai task reminder klik disini
taskapproval Integer optional {{employee_id}}. Tugas memiliki persetujuan oleh karyawan yang ditujukan. Untuk mendapatkan {{employee_id}} klik disini
taskmonitoring Integer optional {{employee_id}}. Tugas dipantau oleh karyawan yang ditujukan. Untuk mendapatkan {{employee_id}} klik disini
duration Integer optional Estimasi waktu pengerjaan tugas.
durationunit Integer optional Unit estimasi waktu pengerjaan tugas. Untuk info lebih lanjut klik disini

                                                
POST /api/task/ HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}} Content-Length: 486 { "taskforgroup": "19089", "taskfor": [ "579" ], "divisionfor": [ "19089" ], "taskname": "Tugas Baru", "taskdescription": "Ini deskripsi", "project": "2119", "projectchecklist": "3079", "customer": "649", "contact": "280", "tasktype": "2", "taskstartdate": "25/10/2024", "taskdeadline": "27/10/2024", "taskreminder": [ "1", "3" ], "employee": "545", "duration": 20, "durationunit": 1 }
                                                
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.kanal.work/api/v1/task',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
    "taskforgroup": "19089",
    "taskfor": [
        "579"
    ],
    "divisionfor": [
        "19089"
    ],
    "taskname": "Test Tugas Baru",
    "taskdescription": "Ini deskripsi",
    "project": "2119",
    "projectchecklist": "3079",
    "customer": "649",
    "contact": "280",
    "tasktype": "2",
    "taskstartdate": "25/10/2024",
    "taskdeadline": "27/10/2024",
    "taskreminder": [
        "1",
        "3"
    ],
    "employee": "545",
    "duration": 20,
    "durationunit": 1
}',
CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
    ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>
                                                
                                            
                                                
curl --location --request POST 'https://https://api.kanal.work/api/v1/task/' \
--header 'Authorization: Bearer {{access_token}}' \ \
--data '{
    "taskforgroup": "19089",
    "taskfor": [
        "579"
    ],
    "divisionfor": [
        "19089"
    ],
    "taskname": "Test Tugas Baru",
    "taskdescription": "Ini deskripsi",
    "project": "2119",
    "projectchecklist": "3079",
    "customer": "649",
    "contact": "280",
    "tasktype": "2",
    "taskstartdate": "25/10/2024",
    "taskdeadline": "27/10/2024",
    "taskreminder": [
        "1",
        "3"
    ],
    "employee": "545",
    "duration": 20,
    "durationunit": 1
}'

                                                
                                            

Status: 200 OK

Tugas berhasil ditambahkan

                                                
{
    "success": true,
    "message": "Task successfully added",
    "id": 12345
}
                                            
                                            

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
  2. Data Payload Body tidak lengkap
                                                
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                                
                                            

Get Tipe Tugas

Endpoint untuk mengambil data Tipe Tugas.

GET https://api.kanal.work/api/v1/task/type

Header

Required String


Authorization : Bearer {{refresh_token}}
Lang : {{id_ID}} atau {{en_US}} info detail
                                        
GET /api/v1/task/type HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/task/type',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1/task/type' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Tipe berhasil diambil

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Normal"
        },
        {
            "id": 2,
            "name": "Mendesak"
        },
        {
            "id": 3,
            "name": "Sangat Mendesak"
        }
    ]
}
                                       
                                    

Data Tipe tugas dengan bahasa inggris

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Normal"
        },
        {
            "id": 2,
            "name": "Urgent"
        },
        {
            "id": 3,
            "name": "Very Urgent"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters tipe tugas, klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Get Status Tugas

Endpoint untuk mengambil data Status Tugas.

GET https://api.kanal.work/api/v1/task/status

Header

Required String


Authorization : Bearer {{refresh_token}}
Lang : {{id_ID}} atau {{en_US}} info detail
                                        
GET /api/v1/task/status HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/task/status',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


                ?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1//task/status' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Status Tugas berhasil diambil

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Sedang Dikerjakan"
        },
        {
            "id": 2,
            "name": "Dalam Perencanaan"
        },
        {
            "id": 3,
            "name": "Selesai"
        },
        {
            "id": 4,
            "name": "Dibatalkan"
        }
    ]
}
                                       
                                    

Data Status Tugas dengan bahasa inggris

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "On Progress"
        },
        {
            "id": 2,
            "name": "On Hold"
        },
        {
            "id": 3,
            "name": "Completed"
        },
        {
            "id": 4,
            "name": "Cancel"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters status tugas, klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
                                        
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                        
                                    

Get Proyek

Endpoint untuk mengambil data Proyek.

Header

Required String


Authorization : Bearer {{refresh_token}}
                                        
GET /api/v1/project HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/project',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


                ?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1/project' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Proyek berhasil diambil

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Project 1",
            "archived": "y"
        },
        {
            "id": 2,
            "name": "Project 2",
            "archived": "y"
        },
        {
            "id": 3,
            "name": "Project 3",
            "archived": "n"
        },
        {
            "id": 4,
            "name": "Project 4",
            "archived": "n"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters proyek, klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Get Proyek Checklist

Endpoint untuk mengambil data Proyek Checklist.

Header

Required String


Authorization : Bearer {{refresh_token}}

Parameters

Required String


project_id : {{project_id}} info detail
                                        
GET /api/v1/project/checklist/{{project_id}} HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/project/checklist/{{project_id}}',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


                ?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1/project/checklist/{{project_id}}' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Project Checklist berhasil diambil

                                        
{
    "success": true,
    "message": [
        
        {
            "id": 3078,
            "name": "General"
        },
        {
            "id": 3104,
            "name": "Checklist 1"
        },
        {
            "id": 3105,
            "name": "checklist 2"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters proyek checklist, klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
  2. {{project_Id}} yang digunakan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Get Pelanggan

Endpoint untuk mengambil data Pelanggan.

GET https://api.kanal.work/api/v1/customer

Header

Required String


Authorization : Bearer {{refresh_token}}
                                        
GET /api/v1/customer HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/customer',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1//customer' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Pelanggan berhasil diambil

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Pelanggan 1",
            "description": "Ada Kontak dan Departemen"
        },
        {
            "id": 2,
            "name": "Pelanggan 2",
            "description": "Lorem ipsum sir amet dolor"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters pelanggan, klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Get Pelanggan Kontak

Endpoint untuk mengambil data Pelanggan Kontak.

Header

Required String


Authorization : Bearer {{refresh_token}}

Parameters

Required String


customer_id : {{customer_id}} info detail
                                        
GET /api/v1/customer/contact/{{customer_id}} HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/customer/contact/{{customer_id}}',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


                ?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1/customer/contact/{{customer_id}}' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Pelanggan Kontak berhasil diambil

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Customer Contact 1"
        },
        {
            "id": 2,
            "name": "Customer Contact 2"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters pelanggan kontak, klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Get Karyawan

Endpoint untuk mengambil data karyawan.

GET https://api.kanal.work/api/v1/employee

Header

Required String


Authorization : Bearer {{refresh_token}}

Parameters

Optional Integer


rank_id : {{rank_id}} info detail
division_id : {{division_id}} info detail
                                                                    
GET /api/v1/employee HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                                                    
<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/employee',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;


                                            ?>
                                                                    
                                                                
                                                                    
curl --location 'https://api.kanal.work/api/v1/employee' \
--header 'Authorization: Bearer {{access_token}}' 
            
                                                                    
                                                                

Status: 200 OK

Data Karyawan berhasil diambil

                                                                    
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "Jhon Doe",
            "rank": 2,
            "rankname": "Manager",
            "divisi": [
                {
                    "divisionid": 134,
                    "divisionname": "HRD"
                }
            ]
        }
        ]
}
                                                                   
                                                                

Untuk penjelasan response parameters dari karyawan klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
  2. {{employee_id}} yang digunakan tidak valid
  3. {{rank_id}} yang digunakan tidak valid
  4. {{division_id}} yang digunakan tidak valid
                                                                    
{
    "success": false,
    "errorMessage": "[Pesan Error]"
}
                                                                    
                                                                

Get Divisi Perusahaan

Endpoint untuk mengambil data Divisi Perusahaan.

GET https://api.kanal.work/api/v1/division

Header

Required String


Authorization : Bearer {{refresh_token}}
                                        
GET /api/v1/division HTTP/1.1
Host: https://api.kanal.work
Authorization: Bearer {{access_token}}
                                        
<?php
curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.kanal.work/api/v1/division',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer {{access_token}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

$response = curl_exec($curl);

curl_close($curl);
echo $response;


                ?>
                                        
                                    
                                        
curl --location 'https://api.kanal.work/api/v1/division' \
--header 'Authorization: Bearer {{access_token}}' 
                                        
                                    

Status: 200 OK

Data Divisi berhasil diambil

                                        
{
    "success": true,
    "message": [
        {
            "id": 1,
            "name": "General Affairs"
        },
        {
            "id": 2,
            "name": "HRD"
        }
    ]
}
                                       
                                    

Untuk penjelasan response parameters dari divisi klik disini

Status: 400 Bad Request

Penyebab gagal:

  1. access_token yang digunakan tidak valid
                                        
{
"success": false,
"errorMessage": "[Pesan Error]"
}
                                        
                                    

Reference



Access Token

Berikut adalah penjelasan dari komponen access_token:

No Name Type Description
1 apikey, secretkey string Merupakan key unik setiap perusahaan
2 access_token string Digunakan untuk akses ke semua endpoint kanal.
3 refresh_token string Digunakan untuk generate access_token baru
4 access_token_expired Timestamps Masa berlaku access_token

Language

No Parameter Type Description
1 id_ID default string Data yang akan ditampilkan berbahasa Indonesia
2 en_US string Data yang akan ditampilkan berbahasa Inggris

Tipe Tugas

Response Parameters:

No Name Type Description
1 Id Integer Kode unik dari tipe tugas
2 Name string Nama dari tipe tugas tersebut.

Berikut adalah tabel yang menunjukkan berbagai tipe tugas:

Id Name Type
1 Normal Integer
2 Mendesak Integer
3 Sangat Mendesak Integer

Status Tugas

Response Parameters:

No Name Type Description
1 Id Integer Kode unik dari status tugas
2 Name String Nama dari status tugas tersebut.

Berikut adalah tabel yang menunjukkan berbagai status tugas:

Id Name Type
1 Normal Integer
2 Dalam Perencanaan Integer
3 Selesai Integer
4 Dibatalkan Integer

Task Reminder

Berikut adalah tabel yang menunjukkan berbagai Task Reminder:

Id description
1 50% dari awal hingga deadline
2 70% dari awal hingga deadline
3 90% dari awal hingga deadline
4 110% dari awal hingga deadline

Proyek

Response Parameters:

No Name Type Description
1 id Integer {{project_id}} atau id proyek tersebut
2 name String Nama Proyek
3 archived enum('n','y') Merupakan Status dari proyek.
  • n : diarsipkan
  • y : proyek yang sedang berjalan/aktif

Proyek Checklist

Response Parameters:

No Name Type Description
1 id Integer {{project_id}} atau id proyek tersebut
2 name String Nama Proyek Checklist atau nama pemeriksaan yang diberikan untuk proyek tersebut. Tujuan dibuat ini untuk memudahkan setiap tugas berada pada proyek dengan nama pemeriksaan yang ditentukan

Pelanggan

Response Parameters:

No Name Type Description
1 id Integer {{customer_id}} atau id pelanggan tersebut
2 name String Nama Pelanggan
3 description Text Penjelasan detail mengenai pelanggan

Pelanggan Kontak

Response Parameters:

No Name Type Description
1 id Integer {{customer_id}} atau id pelanggan tersebut
2 name String Nama Kontak Pelanggan

Rank

Berikut adalah tabel yang menunjukkan berbagai pangkat/rank:

Id Name Type
1 Direktur Integer
2 Manager Integer
3 Supervisor Integer
4 Team Leader Integer
5 staff Integer

Divisi

Response Parameters:

No Name Type Description
1 Id Integer Kode unik dari divisi
2 Name String Nama dari divisi tersebut

Karyawan

Response Parameters:

No Name Type Description
1 Id Integer Kode unik dari karyawan
2 name String Nama Karyawan
3 rank Integer {{rank_id}} merupakan kode unik dari rank dari karyawan. Untuk info lebih lanjut. klik disini
4 rankname String Nama dari rank Karyawan
5 divisionid Integer {{division_id}} merupakan kode unik dari divisi dari karyawan. Untuk info lebih lanjut. klik disini

Estimasi Waktu Pengerjaan

Berikut adalah tabel yang menunjukkan berbagai unit estimasi waktu pengerjaan tugas:

Id Description
1 Dalam hitungan menit
2 Dalam hitungan jam
3 Dalam hitungan hari
4 Dalam hitungan bulan
5 Dalam hitungan tahun