MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by use and point "User Authentication > Get User Authentication Token".

Amenities Default

Amenities Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/amenities/details/3c10dea0-5f31-3c7e-a801-c4b80c7b46c2" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/amenities/details/3c10dea0-5f31-3c7e-a801-c4b80c7b46c2"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/amenities/details/3c10dea0-5f31-3c7e-a801-c4b80c7b46c2';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Amenities Detail",
    "data": {
        "id": "d2185b19-eddc-44ac-86d0-59aeefbfdaee",
        "name": "Air conditioning",
        "description": "Air conditioning",
        "category": {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        }
    }
}
 

Request   

GET api/v1/master/amenities/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Amenities. Example: 3c10dea0-5f31-3c7e-a801-c4b80c7b46c2

Amenities Datatables

Example request:
curl --request POST \
    "http://localhost/api/v1/master/amenities/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/amenities/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/amenities/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 173,
    "recordsFiltered": 173,
    "data": [
        {
            "id": "30e404b3-f8af-4401-9a92-7dcc7f9c9e48",
            "name": "Adapter",
            "description": "Adapter",
            "category_name": "Room Amenities",
            "category_id": "ffed46c7-290c-4dcf-a608-4cfaa423560e"
        },
        {
            "id": "d2185b19-eddc-44ac-86d0-59aeefbfdaee",
            "name": "Air conditioning",
            "description": "Air conditioning",
            "category_name": "Room Amenities",
            "category_id": "ffed46c7-290c-4dcf-a608-4cfaa423560e"
        },
        {
            "id": "2d580e6e-7376-43bc-be53-6b39181fc0a8",
            "name": "Air conditioning single room",
            "description": "Air conditioning single room",
            "category_name": "Room Amenities",
            "category_id": "ffed46c7-290c-4dcf-a608-4cfaa423560e"
        }
    ]
}
 

Request   

POST api/v1/master/amenities/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Amenities

Example request:
curl --request POST \
    "http://localhost/api/v1/master/amenities" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"name\": \"assumenda\",
    \"description\": \"Nihil facilis eveniet sit id.\"
}"
const url = new URL(
    "http://localhost/api/v1/master/amenities"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "name": "assumenda",
    "description": "Nihil facilis eveniet sit id."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/amenities';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'name' => 'assumenda',
            'description' => 'Nihil facilis eveniet sit id.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Amenities Data",
    "data": {
        "id": "8c491bb9-c8d3-4477-841e-bc9a37178d78",
        "name": "amenities test udpate",
        "description": "test amenities data udpate",
        "category": {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        }
    }
}
 

Request   

POST api/v1/master/amenities

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: et

name   string     

Name of Amenities Example: assumenda

description   string     

Description of Amenities Example: Nihil facilis eveniet sit id.

Remove Amenities

Example request:
curl --request POST \
    "http://localhost/api/v1/master/amenities/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"quia\"
}"
const url = new URL(
    "http://localhost/api/v1/master/amenities/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "quia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/amenities/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'quia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Amenities",
    "data": []
}
 

Request   

POST api/v1/master/amenities/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Amenities Example: quia

Option Amenities Input

Example request:
curl --request POST \
    "http://localhost/api/v1/master/amenities/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"category\"
}"
const url = new URL(
    "http://localhost/api/v1/master/amenities/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "category"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/amenities/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'category',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/master/amenities/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: category

Must be one of:
  • category

Backoffice AP Report

AP Aging List Data

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/aging-list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"reference_no\": \"et\",
    \"start_date\": \"pariatur\",
    \"end_date\": \"consequuntur\",
    \"page_no\": 18
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/aging-list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "reference_no": "et",
    "start_date": "pariatur",
    "end_date": "consequuntur",
    "page_no": 18
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/aging-list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'reference_no' => 'et',
            'start_date' => 'pariatur',
            'end_date' => 'consequuntur',
            'page_no' => 18,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/account-payable/aging-list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: et

reference_no   string  optional    

no of refrence trx Example: et

start_date   string  optional    

start date of date find type format Y-m-d. Example: pariatur

end_date   string  optional    

end date of date find type format Y-m-d. Example: consequuntur

page_no   integer  optional    

number of pagination Example: 18

Option AP Payment

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/payment/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"deleniti\",
    \"mode\": \"ap_aging_list\",
    \"reference_no\": \"dicta\",
    \"start_date\": \"nobis\",
    \"end_date\": \"ducimus\",
    \"page_no\": 17,
    \"list_current_reconcile\": \"architecto\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/payment/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "deleniti",
    "mode": "ap_aging_list",
    "reference_no": "dicta",
    "start_date": "nobis",
    "end_date": "ducimus",
    "page_no": 17,
    "list_current_reconcile": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/payment/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'deleniti',
            'mode' => 'ap_aging_list',
            'reference_no' => 'dicta',
            'start_date' => 'nobis',
            'end_date' => 'ducimus',
            'page_no' => 17,
            'list_current_reconcile' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List user Created",
    "data": [
        {
            "key": "0ad093e6-3587-4257-a118-0d6265d3347c",
            "label": "Master User Api"
        }
    ]
}
 

Request   

POST api/v1/property/backoffice/account-payable/payment/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: deleniti

mode   string  optional    

The language. Example: ap_aging_list

Must be one of:
  • ap_aging_list
reference_no   string  optional    

no of refrence trx Example: dicta

start_date   string  optional    

start date of date find type format Y-m-d. Example: nobis

end_date   string  optional    

end date of date find type format Y-m-d. Example: ducimus

page_no   integer  optional    

number of pagination Example: 17

list_current_reconcile   array.  optional    

Example: architecto

Remove AP payment

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/payment/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quam\",
    \"ap_payment_id\": \"qui\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/payment/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quam",
    "ap_payment_id": "qui"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/payment/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quam',
            'ap_payment_id' => 'qui',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/property/backoffice/account-payable/payment/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: quam

ap_payment_id   string     

uuid of Trx Property Ap Payment Example: qui

Ap payment List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/payment/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"eum\",
    \"reference_no\": \"laudantium\",
    \"start_date\": \"ut\",
    \"end_date\": \"dicta\",
    \"page_no\": 7
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/payment/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "eum",
    "reference_no": "laudantium",
    "start_date": "ut",
    "end_date": "dicta",
    "page_no": 7
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/payment/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'eum',
            'reference_no' => 'laudantium',
            'start_date' => 'ut',
            'end_date' => 'dicta',
            'page_no' => 7,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/account-payable/payment/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: eum

reference_no   string  optional    

no of refrence trx Example: laudantium

start_date   string  optional    

start date of date find type format Y-m-d. Example: ut

end_date   string  optional    

end date of date find type format Y-m-d. Example: dicta

page_no   integer  optional    

number of pagination Example: 7

Add AP Journal Manual

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/journal/manual" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nemo\",
    \"remark\": \"beatae\",
    \"trx_date\": \"et\",
    \"list_journal\": \"distinctio\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/journal/manual"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nemo",
    "remark": "beatae",
    "trx_date": "et",
    "list_journal": "distinctio"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/journal/manual';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nemo',
            'remark' => 'beatae',
            'trx_date' => 'et',
            'list_journal' => 'distinctio',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/property/backoffice/account-payable/journal/manual

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nemo

remark   string     

remark of AP Payment Example: beatae

trx_date   string  optional    

start date of date find type format Y-m-d. Example: et

list_journal   array.  optional    

Example: distinctio

Option AP Payment

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/journal/manual/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolorem\",
    \"mode\": \"coa\",
    \"coa_search\": \"est\",
    \"default_value\": \"sed\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/journal/manual/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolorem",
    "mode": "coa",
    "coa_search": "est",
    "default_value": "sed"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/journal/manual/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dolorem',
            'mode' => 'coa',
            'coa_search' => 'est',
            'default_value' => 'sed',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List user Created",
    "data": [
        {
            "key": "0ad093e6-3587-4257-a118-0d6265d3347c",
            "label": "Master User Api"
        }
    ]
}
 

Request   

POST api/v1/property/backoffice/account-payable/journal/manual/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: dolorem

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • journal_type
coa_search   string     

name of coa finding Example: est

default_value   string     

name of coa default value Example: sed

AP Journal List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-payable/journal/manual/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"ipsum\",
    \"start_date\": \"non\",
    \"end_date\": \"iste\",
    \"page_no\": 1
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-payable/journal/manual/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "ipsum",
    "start_date": "non",
    "end_date": "iste",
    "page_no": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-payable/journal/manual/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'ipsum',
            'start_date' => 'non',
            'end_date' => 'iste',
            'page_no' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/account-payable/journal/manual/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: ipsum

start_date   string  optional    

start date of date find type format Y-m-d. Example: non

end_date   string  optional    

end date of date find type format Y-m-d. Example: iste

page_no   integer  optional    

number of pagination Example: 1

Backoffice Ar Report

Ar Aging List Data

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/aging-list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"laboriosam\",
    \"reference_no\": \"aut\",
    \"start_date\": \"et\",
    \"end_date\": \"sed\",
    \"page_no\": 13
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/aging-list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "laboriosam",
    "reference_no": "aut",
    "start_date": "et",
    "end_date": "sed",
    "page_no": 13
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/aging-list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'laboriosam',
            'reference_no' => 'aut',
            'start_date' => 'et',
            'end_date' => 'sed',
            'page_no' => 13,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get AR Report List",
    "data": {
        "record": [
            {
                "id": "984871ae-59f6-4613-8e32-86c656244da6",
                "property": {
                    "id": "65c5c446-abbe-46ee-aa28-253cc9b680a8",
                    "name": "Hotel Dummy"
                },
                "trx_type": {
                    "id": "68691665-adf8-42e7-b4a3-6900434eaf29",
                    "name": "Account Receivable",
                    "code": "AR"
                },
                "reference_no": "TRXAR-20241100001",
                "trx_date": "2024-11-13 10:53:09",
                "remark": "Booking Payment : BOOKPAY-202411/00001",
                "is_reconcile": false,
                "total_debit": 100000,
                "total_credit": 100000,
                "total_balance": 0,
                "user_created": {
                    "id": "facddbf2-4010-455c-8176-1b04c897cec0",
                    "name": "Master User Api"
                },
                "user_updated": [],
                "created_at": "2024-11-13T03:02:05.000000Z",
                "updated_at": "2024-11-13T03:02:05.000000Z",
                "journal_list": [
                    {
                        "id": "ef1cb9b9-6bdb-45cb-bb56-1d6f37aa6b4e",
                        "coa": {
                            "id": "355fccc2-2f25-4a95-a01d-126ff28049c8",
                            "name": "A/R DEBIT",
                            "code": "120-00-006"
                        },
                        "ref": {
                            "refrence_type": "booking-payment",
                            "id": "42a5b4ed-569d-40f4-9a0e-6a3ce5386341",
                            "booking_id": "2cea54b4-038b-4818-95de-b7307577d684",
                            "booking_room_id": "b6fcbb09-51a6-4682-a483-8094f6c919c9",
                            "payment_option_id": "cf82a5b9-bbc3-412e-9b54-7cc142e9775d",
                            "booking_payment_no": "BOOKPAY-202411/00001",
                            "payment_date": "2024-11-13 10:53:09",
                            "amount": 100000,
                            "remark": "test payment",
                            "created_at": "2024-11-13T02:54:57.000000Z",
                            "updated_at": "2024-11-13T03:02:05.000000Z",
                            "created_user_id": null,
                            "updated_user_id": null,
                            "is_close_trx": true
                        },
                        "remark": "BOOKPAY-202411/00001 | Debit Cards",
                        "amount": 100000,
                        "journal_type": {
                            "key": "1",
                            "label": "Debit"
                        }
                    },
                    {
                        "id": "33427e44-ed40-42b3-a905-2e0602a49b43",
                        "coa": {
                            "id": "99869b2c-d662-40aa-8533-d5dd053886d7",
                            "name": "A/R BCA Card",
                            "code": "120-00-005"
                        },
                        "ref": {
                            "refrence_type": "booking-payment-methods",
                            "id": "b28f36c6-58d4-4d58-ab60-f1b5168721be",
                            "booking_payment_id": "42a5b4ed-569d-40f4-9a0e-6a3ce5386341",
                            "payment_option_method_id": null,
                            "amount": 100000,
                            "remark": null,
                            "created_at": "2024-11-13T02:54:57.000000Z",
                            "updated_at": "2024-11-13T02:54:57.000000Z"
                        },
                        "remark": "BOOKPAY-202411/00001 | Pay Methods :BCA",
                        "amount": 100000,
                        "journal_type": {
                            "key": "2",
                            "label": "Credit"
                        }
                    }
                ]
            }
        ],
        "total_page": 1,
        "current_page": 1
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/account-receivable/aging-list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: laboriosam

reference_no   string  optional    

no of refrence trx Example: aut

start_date   string  optional    

start date of date find type format Y-m-d. Example: et

end_date   string  optional    

end date of date find type format Y-m-d. Example: sed

page_no   integer  optional    

number of pagination Example: 13

Option AR Payment

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/payment/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptas\",
    \"mode\": \"ar_aging_list\",
    \"reference_no\": \"quam\",
    \"start_date\": \"et\",
    \"end_date\": \"sed\",
    \"page_no\": 5,
    \"list_current_reconcile\": \"id\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/payment/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptas",
    "mode": "ar_aging_list",
    "reference_no": "quam",
    "start_date": "et",
    "end_date": "sed",
    "page_no": 5,
    "list_current_reconcile": "id"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/payment/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptas',
            'mode' => 'ar_aging_list',
            'reference_no' => 'quam',
            'start_date' => 'et',
            'end_date' => 'sed',
            'page_no' => 5,
            'list_current_reconcile' => 'id',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List user Created",
    "data": [
        {
            "key": "0ad093e6-3587-4257-a118-0d6265d3347c",
            "label": "Master User Api"
        }
    ]
}
 

Request   

POST api/v1/property/backoffice/account-receivable/payment/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: voluptas

mode   string  optional    

The language. Example: ar_aging_list

Must be one of:
  • ar_aging_list
reference_no   string  optional    

no of refrence trx Example: quam

start_date   string  optional    

start date of date find type format Y-m-d. Example: et

end_date   string  optional    

end date of date find type format Y-m-d. Example: sed

page_no   integer  optional    

number of pagination Example: 5

list_current_reconcile   array.  optional    

Example: id

Remove AR payment

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/payment/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"non\",
    \"ar_payment_id\": \"cupiditate\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/payment/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "non",
    "ar_payment_id": "cupiditate"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/payment/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'non',
            'ar_payment_id' => 'cupiditate',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/property/backoffice/account-receivable/payment/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: non

ar_payment_id   string     

uuid of Trx Property Ar Payment Example: cupiditate

Ar payment List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/payment/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolorem\",
    \"reference_no\": \"quam\",
    \"start_date\": \"exercitationem\",
    \"end_date\": \"velit\",
    \"page_no\": 18
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/payment/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolorem",
    "reference_no": "quam",
    "start_date": "exercitationem",
    "end_date": "velit",
    "page_no": 18
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/payment/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dolorem',
            'reference_no' => 'quam',
            'start_date' => 'exercitationem',
            'end_date' => 'velit',
            'page_no' => 18,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/account-receivable/payment/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: dolorem

reference_no   string  optional    

no of refrence trx Example: quam

start_date   string  optional    

start date of date find type format Y-m-d. Example: exercitationem

end_date   string  optional    

end date of date find type format Y-m-d. Example: velit

page_no   integer  optional    

number of pagination Example: 18

Add AR Journal Manual

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/journal/manual" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nihil\",
    \"remark\": \"aut\",
    \"trx_date\": \"voluptatem\",
    \"list_journal\": \"nam\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/journal/manual"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nihil",
    "remark": "aut",
    "trx_date": "voluptatem",
    "list_journal": "nam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/journal/manual';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nihil',
            'remark' => 'aut',
            'trx_date' => 'voluptatem',
            'list_journal' => 'nam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/property/backoffice/account-receivable/journal/manual

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nihil

remark   string     

remark of AR Payment Example: aut

trx_date   string  optional    

start date of date find type format Y-m-d. Example: voluptatem

list_journal   array.  optional    

Example: nam

Option AR Payment

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/journal/manual/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nulla\",
    \"mode\": \"coa\",
    \"coa_search\": \"porro\",
    \"default_value\": \"illum\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/journal/manual/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nulla",
    "mode": "coa",
    "coa_search": "porro",
    "default_value": "illum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/journal/manual/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nulla',
            'mode' => 'coa',
            'coa_search' => 'porro',
            'default_value' => 'illum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List user Created",
    "data": [
        {
            "key": "0ad093e6-3587-4257-a118-0d6265d3347c",
            "label": "Master User Api"
        }
    ]
}
 

Request   

POST api/v1/property/backoffice/account-receivable/journal/manual/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nulla

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • journal_type
coa_search   string     

name of coa finding Example: porro

default_value   string     

name of coa default value Example: illum

Ar Journal List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/account-receivable/journal/manual/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"reiciendis\",
    \"start_date\": \"voluptas\",
    \"end_date\": \"consequatur\",
    \"page_no\": 15
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/account-receivable/journal/manual/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "reiciendis",
    "start_date": "voluptas",
    "end_date": "consequatur",
    "page_no": 15
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/account-receivable/journal/manual/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'reiciendis',
            'start_date' => 'voluptas',
            'end_date' => 'consequatur',
            'page_no' => 15,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/account-receivable/journal/manual/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: reiciendis

start_date   string  optional    

start date of date find type format Y-m-d. Example: voluptas

end_date   string  optional    

end date of date find type format Y-m-d. Example: consequatur

page_no   integer  optional    

number of pagination Example: 15

Backoffice Bill Type Coa

Bill Type Coa Details

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/bill-type-coa/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/bill-type-coa/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/bill-type-coa/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Property Bill Type detail",
    "data": [
        {
            "id": "5007a8bf-a2eb-4254-abd7-6f1417074cfb",
            "name": "Room Charge",
            "property_id": "95234a2e-68a5-499f-b174-bf7fda22c1c2",
            "coa_id": null,
            "is_active": false
        },
        {
            "id": "acf9d3eb-685b-4009-8735-dd772be8c422",
            "name": "Extra Charge",
            "property_id": "95234a2e-68a5-499f-b174-bf7fda22c1c2",
            "coa_id": null,
            "is_active": false
        },
        {
            "id": "11199edd-374b-45f7-9565-69623d1d5659",
            "name": "Others",
            "property_id": "95234a2e-68a5-499f-b174-bf7fda22c1c2",
            "coa_id": null,
            "is_active": false
        }
    ]
}
 

Request   

POST api/v1/backoffice/bill-type-coa/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Bill Type Example: et

Update Bill Type COA

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/bill-type-coa" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"list_bill_type\": [
        {
            \"id\": \"5007a8bf-a2eb-4254-abd7-6f1417074cfb\",
            \"name\": \"Room Charge\",
            \"property_id\": \"95234a2e-68a5-499f-b174-bf7fda22c1c2\",
            \"coa_id\": null,
            \"is_active\": false
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/bill-type-coa"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "list_bill_type": [
        {
            "id": "5007a8bf-a2eb-4254-abd7-6f1417074cfb",
            "name": "Room Charge",
            "property_id": "95234a2e-68a5-499f-b174-bf7fda22c1c2",
            "coa_id": null,
            "is_active": false
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/bill-type-coa';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
            ],
            null,
            [
                'stdClass' => [
                    'id' => [
                        '5007a8bf-a2eb-4254-abd7-6f1417074cfb',
                    ],
                    'name' => [
                        'Room Charge',
                    ],
                    'property_id' => [
                        '95234a2e-68a5-499f-b174-bf7fda22c1c2',
                    ],
                    'coa_id' => [
                        null,
                    ],
                    'is_active' => [
                        false,
                    ],
                ],
            ],
            [
                'list_bill_type' => [
                    $o[0],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room type",
    "data": {
        "id": "3696cda0-035d-4827-a406-c14e6fcdf264",
        "name": "Room Type baru",
        "description": "Room Type Baru Description",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
        "amenities": [
            {
                "category_id": "37b32a73-0c29-4d5a-80bd-1717901d015e",
                "category_name": "Room Amenities",
                "amenities_list": [
                    {
                        "id": "78e7914b-21b5-4bdd-b461-2d3cd72b8f67",
                        "name": "Adapter",
                        "is_select": false
                    },
                    {
                        "id": "05300f15-884d-409e-a396-536929d3cbcf",
                        "name": "Air conditioning",
                        "is_select": true
                    },
                    {
                        "id": "a7d9dedc-cf0b-4d68-9a48-37e14461fdf4",
                        "name": "Air conditioning single room",
                        "is_select": false
                    },
                    {
                        "id": "fd1f09c8-0aca-4f66-b071-cc030a76b36b",
                        "name": "Balcony",
                        "is_select": true
                    },
                    {
                        "id": "dba356b4-5d41-4546-84cf-b08f6585f457",
                        "name": "Bathtub",
                        "is_select": false
                    },
                    {
                        "id": "252b28a2-6add-4a37-85c5-d22598b5e2a1",
                        "name": "Carpeted",
                        "is_select": false
                    },
                    {
                        "id": "f214eca9-262c-4307-979d-3e4bd8de39b4",
                        "name": "Childrens cribs",
                        "is_select": true
                    },
                    {
                        "id": "dc05d273-baec-48b0-acdf-559c39a35f61",
                        "name": "Cleaning products",
                        "is_select": false
                    },
                    {
                        "id": "404dd22a-26e0-4931-b3b2-99333f1e968e",
                        "name": "Clothes rack",
                        "is_select": false
                    },
                    {
                        "id": "3c23f5bb-59ee-4f48-b88a-be1d94681df6",
                        "name": "Desk",
                        "is_select": false
                    },
                    {
                        "id": "bc0c5784-2809-4904-b4e0-bab8b9e1e3d0",
                        "name": "Dryer",
                        "is_select": true
                    },
                    {
                        "id": "99fedee9-ecef-4875-81ce-2a4b9f16cd0a",
                        "name": "Drying rack for clothing",
                        "is_select": false
                    },
                    {
                        "id": "7a8eee4a-155a-4214-b105-68705f2e381b",
                        "name": "Electric blankets",
                        "is_select": false
                    },
                    {
                        "id": "b7757b5e-fa8e-465b-8c3e-f481ed0aba66",
                        "name": "Electric kettle",
                        "is_select": false
                    },
                    {
                        "id": "ce91b7d8-afa1-466d-bfd2-cbc01d107aa8",
                        "name": "Extra long beds (> 6.5 ft)",
                        "is_select": false
                    },
                    {
                        "id": "d0de7cd0-bf27-416f-9317-d65ede231d2f",
                        "name": "Fan",
                        "is_select": false
                    },
                    {
                        "id": "ef8e700d-34cd-46f3-ad83-e40192ff2a8f",
                        "name": "Feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "68d1483f-999a-4155-b2e4-86e0edf8c3ab",
                        "name": "Fireplace",
                        "is_select": false
                    },
                    {
                        "id": "9c1b1920-b3c0-4ce6-8e76-e9a41ceb3b28",
                        "name": "Flat-screen TV",
                        "is_select": false
                    },
                    {
                        "id": "206d34a2-716d-4f08-8895-b18a152c5c5c",
                        "name": "Fold-up bed",
                        "is_select": false
                    },
                    {
                        "id": "feb09933-4210-4e53-a083-60e0ff5f2076",
                        "name": "Hardwood or parquet floors",
                        "is_select": false
                    },
                    {
                        "id": "2d83428c-67f0-424c-b3cf-7b64c7bbde4d",
                        "name": "Heated pool",
                        "is_select": false
                    },
                    {
                        "id": "0e457b6c-27f9-4170-9174-ddcc4a44dbbc",
                        "name": "Heating",
                        "is_select": false
                    },
                    {
                        "id": "a91728b8-4c62-4644-bfc3-8673cdd06c5e",
                        "name": "Hot tub",
                        "is_select": false
                    },
                    {
                        "id": "96fc900e-041f-454c-9aae-45dd06b9a142",
                        "name": "Hypoallergenic",
                        "is_select": false
                    },
                    {
                        "id": "daeea86a-79c0-45b8-81a7-e76333134b3d",
                        "name": "Hypoallergenic pillow",
                        "is_select": false
                    },
                    {
                        "id": "9f577ec2-34e9-4d5c-87df-868bb8ffae4d",
                        "name": "Infinity Pool",
                        "is_select": false
                    },
                    {
                        "id": "0897bc60-47b1-46dd-a822-2bcaeb07d8e8",
                        "name": "Interconnecting rooms",
                        "is_select": false
                    },
                    {
                        "id": "a662f19e-419c-41a9-a0a0-b0c2f00f24dd",
                        "name": "Iron",
                        "is_select": false
                    },
                    {
                        "id": "46a2ee4a-c711-4dd2-a99d-ce6c6ebf3a31",
                        "name": "Ironing facilities",
                        "is_select": false
                    },
                    {
                        "id": "6107ec89-e45a-43f5-ac25-598f20535951",
                        "name": "Mosquito net",
                        "is_select": false
                    },
                    {
                        "id": "1818a164-cfd0-435a-8398-f7ddc11401f4",
                        "name": "Non-feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "1ca6771c-37ae-4ff6-84d0-4277f27365b0",
                        "name": "Pajamas",
                        "is_select": false
                    },
                    {
                        "id": "3e611ae2-edf5-4473-ae7b-c6ab2d6ce946",
                        "name": "Plunge Pool",
                        "is_select": false
                    },
                    {
                        "id": "a13e0b46-0d5e-4503-bc11-af25b568609a",
                        "name": "Pool cover",
                        "is_select": false
                    },
                    {
                        "id": "86854195-b984-415f-925e-bee9172388dc",
                        "name": "Pool towels",
                        "is_select": false
                    },
                    {
                        "id": "b5687b9d-65b2-4d1a-aa22-b2ef72a26685",
                        "name": "Pool with a view",
                        "is_select": false
                    },
                    {
                        "id": "bc8c3d71-115f-45ff-8d98-6d6c7c1ad6b7",
                        "name": "Private pool",
                        "is_select": false
                    },
                    {
                        "id": "7ba1a081-d56b-4608-9d2e-1110fa4cd601",
                        "name": "Rooftop pool",
                        "is_select": false
                    },
                    {
                        "id": "b808b875-492d-458d-a6bc-720372622767",
                        "name": "Safe",
                        "is_select": false
                    },
                    {
                        "id": "d990b235-5121-4b63-ad8c-5ee1721196b4",
                        "name": "Saltwater pool",
                        "is_select": false
                    },
                    {
                        "id": "b38466d0-9e59-4736-8204-0b01d379faa0",
                        "name": "Shallow end",
                        "is_select": false
                    },
                    {
                        "id": "bc33df3d-9f0f-425b-a0df-46ab53e7aa83",
                        "name": "Sitting area",
                        "is_select": false
                    },
                    {
                        "id": "441d79fb-82a4-458a-8bd2-8f91f40f5e2b",
                        "name": "Socket near the bed",
                        "is_select": false
                    },
                    {
                        "id": "30d5b8ec-8f2e-4fc6-899a-5714a9d7be63",
                        "name": "Sofa",
                        "is_select": false
                    },
                    {
                        "id": "06b027ce-138e-4f61-bc25-10165e24cbfd",
                        "name": "Sofa bed",
                        "is_select": false
                    },
                    {
                        "id": "f2d7c256-4b44-48bf-a2a0-04917f773784",
                        "name": "Soundproof",
                        "is_select": false
                    },
                    {
                        "id": "f39be007-f9d0-413a-9434-335578838ac8",
                        "name": "Suit press",
                        "is_select": false
                    },
                    {
                        "id": "892e321b-5422-48d7-8c1d-950486a1ea57",
                        "name": "Tile/Marble floor",
                        "is_select": false
                    },
                    {
                        "id": "7bdbc02c-4cf0-487a-9faa-bbe25447795a",
                        "name": "Toilet paper",
                        "is_select": false
                    },
                    {
                        "id": "5f84000a-c63d-4234-93c7-dcf36434b1ff",
                        "name": "Towels",
                        "is_select": false
                    },
                    {
                        "id": "b8937943-2b2c-4818-8943-cea8f0754fe6",
                        "name": "Trash cans",
                        "is_select": false
                    },
                    {
                        "id": "26ad03ba-c55c-489a-a550-92f19982df53",
                        "name": "View",
                        "is_select": false
                    },
                    {
                        "id": "ec55c805-84d8-4457-b5b8-fec22adf8ec6",
                        "name": "Walk-in closet",
                        "is_select": false
                    },
                    {
                        "id": "8d560293-82fd-4135-99df-761aa540dbb7",
                        "name": "Wardrobe or closet",
                        "is_select": false
                    },
                    {
                        "id": "b0d7bf28-75d2-4f0a-8ad9-baabe2e50608",
                        "name": "Washing machine",
                        "is_select": false
                    },
                    {
                        "id": "17d5df9c-0bb9-4390-8177-9dc05b0ea92c",
                        "name": "Yukata",
                        "is_select": false
                    },
                    {
                        "id": "336a2aa5-fb92-432e-9d15-496f0638fd60",
                        "name": "Air purifiers",
                        "is_select": false
                    },
                    {
                        "id": "f822da69-c6d3-439d-aab2-58c28e09dc39",
                        "name": "Hand sanitizer",
                        "is_select": false
                    },
                    {
                        "id": "932710b6-8c27-4184-b3b3-7df86e2fb36f",
                        "name": "Bolsters",
                        "is_select": false
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/backoffice/bill-type-coa

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

list_bill_type   object[]     

listofobject data.

Option Property Bill Type Input

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/bill-type-coa/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"coa\",
    \"property_id\": \"pariatur\",
    \"coa_search\": \"dignissimos\",
    \"default_value\": \"deleniti\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/bill-type-coa/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "coa",
    "property_id": "pariatur",
    "coa_search": "dignissimos",
    "default_value": "deleniti"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/bill-type-coa/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'pariatur',
            'coa_search' => 'dignissimos',
            'default_value' => 'deleniti',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart of Account Founds",
    "data": [
        {
            "key": null,
            "label": "1200 | ACCOUNT RECEIVABLE",
            "sub": [
                {
                    "key": "3c94c024-c6a6-4207-b091-d6fb893e8396",
                    "label": "--120-00-009 | A/R Other Credit Cards"
                }
            ]
        }
    ]
}
 

Request   

POST api/v1/backoffice/bill-type-coa/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
property_id   string     

uuid of Room Type Example: pariatur

coa_search   string     

name of coa finding Example: dignissimos

default_value   string     

name of coa default value Example: deleniti

Backoffice Discount Option

Detail Discount Option

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/discount-options/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolores\",
    \"discount_option_id\": \"eum\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/discount-options/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolores",
    "discount_option_id": "eum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/discount-options/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dolores',
            'discount_option_id' => 'eum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Rate Plan detail",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash",
        "property": {
            "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "name": "Cash"
        }
    }
}
 

Request   

POST api/v1/backoffice/discount-options/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property id Example: dolores

discount_option_id   string     

uuid of Discount Option Example: eum

Datatables Discount Options

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/discount-options/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quasi\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/discount-options/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quasi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/discount-options/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quasi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "property_id": "e1e5d4a8-43e5-4944-b2ff-41a28a6687fe",
            "name": "Cash",
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"payment_options\" where \"property_id\" = ? and \"payment_options\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 1.33
        },
        {
            "query": "select * from \"payment_options\" where \"property_id\" = ? and \"payment_options\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.44
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.67
        }
    ],
    "input": {
        "property_id": "e1e5d4a8-43e5-4944-b2ff-41a28a6687fe"
    }
}
 

Request   

POST api/v1/backoffice/discount-options/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: quasi

Update Discount Options

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/discount-options" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"consequatur\",
    \"property_id\": \"eius\",
    \"coa_id\": \"doloremque\",
    \"department_id\": \"nihil\",
    \"title\": \"distinctio\",
    \"remark\": \"rerum\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/discount-options"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "consequatur",
    "property_id": "eius",
    "coa_id": "doloremque",
    "department_id": "nihil",
    "title": "distinctio",
    "remark": "rerum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/discount-options';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'consequatur',
            'property_id' => 'eius',
            'coa_id' => 'doloremque',
            'department_id' => 'nihil',
            'title' => 'distinctio',
            'remark' => 'rerum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/backoffice/discount-options

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string  optional    

uuid of Property required if you want update Example: consequatur

property_id   string     

uuid of Property Example: eius

coa_id   string     

uuid of Chart of Account Payment Method Example: doloremque

department_id   string     

uuid of Department Example: nihil

title   string     

title of Discount Example: distinctio

remark   string  optional    

remark of discount can nullable Example: rerum

Remove Discount Option

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/discount-options/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/discount-options/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/discount-options/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/backoffice/discount-options/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Discount Options Example: et

Option Discount Input

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/discount-options/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"coa\",
    \"property_id\": \"assumenda\",
    \"coa_search\": \"non\",
    \"default_value\": \"est\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/discount-options/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "coa",
    "property_id": "assumenda",
    "coa_search": "non",
    "default_value": "est"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/discount-options/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'assumenda',
            'coa_search' => 'non',
            'default_value' => 'est',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart of Account Founds",
    "data": [
        {
            "key": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "label": "Cash"
        }
    ]
}
 

Request   

POST api/v1/backoffice/discount-options/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • department
property_id   string     

uuid of Room Type Example: assumenda

coa_search   string     

name of coa finding Example: non

default_value   string     

name of coa default value Example: est

Backoffice Payment Method

Detail Payment Method

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-option-method/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"payment_option_id\": \"sint\",
    \"payment_method_id\": \"aut\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-option-method/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "payment_option_id": "sint",
    "payment_method_id": "aut"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-option-method/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'payment_option_id' => 'sint',
            'payment_method_id' => 'aut',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Rate Plan detail",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash",
        "property": {
            "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "name": "Cash"
        }
    }
}
 

Request   

POST api/v1/backoffice/payment-option-method/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

payment_option_id   string     

uuid of Payment Option Example: sint

payment_method_id   string     

uuid of Payment Method Example: aut

Datatables Payment Method

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-option-method/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"velit\",
    \"payment_option_id\": \"iure\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-option-method/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "velit",
    "payment_option_id": "iure"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-option-method/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'velit',
            'payment_option_id' => 'iure',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "property_id": "e1e5d4a8-43e5-4944-b2ff-41a28a6687fe",
            "name": "Cash",
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"payment_options\" where \"property_id\" = ? and \"payment_options\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 1.33
        },
        {
            "query": "select * from \"payment_options\" where \"property_id\" = ? and \"payment_options\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.44
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.67
        }
    ],
    "input": {
        "property_id": "e1e5d4a8-43e5-4944-b2ff-41a28a6687fe"
    }
}
 

Request   

POST api/v1/backoffice/payment-option-method/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: velit

payment_option_id   string     

uuid of Payment Options Example: iure

Create / Update Payment Options

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-option-method" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"blanditiis\",
    \"payment_option_id\": \"ut\",
    \"coa_id\": \"optio\",
    \"name\": \"expedita\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-option-method"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "blanditiis",
    "payment_option_id": "ut",
    "coa_id": "optio",
    "name": "expedita"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-option-method';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'blanditiis',
            'payment_option_id' => 'ut',
            'coa_id' => 'optio',
            'name' => 'expedita',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/backoffice/payment-option-method

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: blanditiis

payment_option_id   string     

uuid of Payment Option Example: ut

coa_id   string     

uuid of Chart of Account Payment Method Example: optio

name   string     

Name Payment Method Example: expedita

Remove Payment Method

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-option-method/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"inventore\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-option-method/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "inventore"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-option-method/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'inventore',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/backoffice/payment-option-method/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Payment Method Example: inventore

Option Payment Method Input

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-option-method/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"coa\",
    \"property_id\": \"magni\",
    \"coa_search\": \"reprehenderit\",
    \"default_value\": \"ducimus\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-option-method/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "coa",
    "property_id": "magni",
    "coa_search": "reprehenderit",
    "default_value": "ducimus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-option-method/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'magni',
            'coa_search' => 'reprehenderit',
            'default_value' => 'ducimus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart of Account Founds",
    "data": [
        {
            "key": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "label": "Cash"
        }
    ]
}
 

Request   

POST api/v1/backoffice/payment-option-method/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • payment_option
property_id   string     

uuid of Room Type Example: magni

coa_search   string     

name of coa finding Example: reprehenderit

default_value   string     

name of coa default value Example: ducimus

Backoffice Payment Option

Detail Payment Option

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-options/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quidem\",
    \"payment_option_id\": \"quaerat\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-options/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quidem",
    "payment_option_id": "quaerat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-options/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quidem',
            'payment_option_id' => 'quaerat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Rate Plan detail",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash",
        "property": {
            "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "name": "Cash"
        }
    }
}
 

Request   

POST api/v1/backoffice/payment-options/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property id Example: quidem

payment_option_id   string     

uuid of Payment Option id set value create if new data Example: quaerat

Datatables Payment Options

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-options/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"rem\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-options/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "rem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-options/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'rem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "property_id": "e1e5d4a8-43e5-4944-b2ff-41a28a6687fe",
            "name": "Cash",
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"payment_options\" where \"property_id\" = ? and \"payment_options\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 1.33
        },
        {
            "query": "select * from \"payment_options\" where \"property_id\" = ? and \"payment_options\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.44
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.67
        }
    ],
    "input": {
        "property_id": "e1e5d4a8-43e5-4944-b2ff-41a28a6687fe"
    }
}
 

Request   

POST api/v1/backoffice/payment-options/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: rem

Update Payment Options

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-options" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"qui\",
    \"name\": \"voluptatem\",
    \"agent_id\": \"vel\",
    \"coa_id\": \"amet\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-options"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "qui",
    "name": "voluptatem",
    "agent_id": "vel",
    "coa_id": "amet"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-options';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'qui',
            'name' => 'voluptatem',
            'agent_id' => 'vel',
            'coa_id' => 'amet',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/backoffice/payment-options

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: qui

name   string     

Name of Tax and Service Example: voluptatem

agent_id   string     

uuid of agent if this payment option for agent Example: vel

coa_id   string     

uuid of Chart of Account Payment Method Example: amet

Remove Payment Options

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-options/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"rem\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-options/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "rem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-options/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'rem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/backoffice/payment-options/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Payment Options Example: rem

Option Payment Input

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/payment-options/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"coa\",
    \"property_id\": \"quia\",
    \"coa_search\": \"vitae\",
    \"default_value\": \"qui\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/payment-options/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "coa",
    "property_id": "quia",
    "coa_search": "vitae",
    "default_value": "qui"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/payment-options/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'quia',
            'coa_search' => 'vitae',
            'default_value' => 'qui',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart of Account Founds",
    "data": [
        {
            "key": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
            "label": "Cash"
        }
    ]
}
 

Request   

POST api/v1/backoffice/payment-options/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • agent
property_id   string     

uuid of Room Type Example: quia

coa_search   string     

name of coa finding Example: vitae

default_value   string     

name of coa default value Example: qui

Backoffice Property Rate Plans

Detail Rate Plans

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"modi\",
    \"rate_plan_id\": \"magnam\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "modi",
    "rate_plan_id": "magnam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'modi',
            'rate_plan_id' => 'magnam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Rate Plan detail",
    "data": {
        "id": "f30d4a47-827c-43da-b891-05d28c13570a",
        "name": "Room And Breakfast Rate",
        "remark": "Room And Breakfast Rate",
        "start_date": "2024-06-29",
        "end_date": "2025-07-24",
        "min_night": 1,
        "max_night": 10,
        "max_adult": 2,
        "max_child": 2,
        "max_pax": 4,
        "rate": 150000,
        "extra_adult_rate": 0,
        "extra_child_rate": 0,
        "rate_plan_type_id": "edea11e1-3a50-4872-b0b6-5454d9623c58",
        "rate_plan_type_name": "STANDAR",
        "open_rate": true,
        "tax_and_service_id": "bd79b8c2-aa00-4d58-9ec7-eb909dc09de1",
        "tax_and_service_name": "Room Rate Tax 11 and Service 10",
        "currency_name": {
            "id": "d43d6a17-85f9-42ca-b570-8b980326a198",
            "name": "Indonesian rupiah",
            "code": "IDR",
            "symbol": "Rp"
        },
        "room_type": {
            "id": "ddd29ba9-810f-4db1-9f3f-6dea7f1ec419",
            "name": "Standard Balcony"
        },
        "daily_rate": {
            "period_start_date": "2024-06-29",
            "period_end_date": "2024-07-29",
            "list_rate": [
                {
                    "rate_date": "2024-06-29",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                }
            ]
        }
    }
}
 

Request   

POST api/v1/backoffice/rate-plan/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property id Example: modi

rate_plan_id   string     

uuid of Rate Plan id set value create if new data Example: magnam

Datatables Rate Plans

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan/datatables" \
    --header "Authorization: Bearer **********************************"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan/datatables"
);

const headers = {
    "Authorization": "Bearer **********************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer **********************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/backoffice/rate-plan/datatables

Headers

Authorization        

Example: Bearer **********************************

Rate Plan List Data

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quo\",
    \"page_no\": 13,
    \"rate_plan_name\": \"non\",
    \"rate_type_id\": \"eos\",
    \"room_type_id\": \"saepe\",
    \"active_start_date\": \"suscipit\",
    \"active_end_date\": \"facilis\",
    \"status_active\": false
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quo",
    "page_no": 13,
    "rate_plan_name": "non",
    "rate_type_id": "eos",
    "room_type_id": "saepe",
    "active_start_date": "suscipit",
    "active_end_date": "facilis",
    "status_active": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quo',
            'page_no' => 13,
            'rate_plan_name' => 'non',
            'rate_type_id' => 'eos',
            'room_type_id' => 'saepe',
            'active_start_date' => 'suscipit',
            'active_end_date' => 'facilis',
            'status_active' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Rate Plan List",
    "data": {
        "record": [
            {
                "id": "51eba24d-85d4-4d32-ac9f-fe1d0ec07ea6",
                "property": {
                    "id": "8e98e464-9e42-441e-aef3-f2f029fbdea5",
                    "name": "Hotel Dummy"
                },
                "currency": {
                    "id": "098bdff9-0060-4e5b-8364-c93bbabcf17a",
                    "name": "Indonesian rupiah",
                    "code": "IDR",
                    "symbol": "Rp"
                },
                "room_type": {
                    "id": "0a3b2a7b-4579-4d2a-9f47-7922329bd423",
                    "name": "Standard Balcony"
                },
                "rate_plan_type": {
                    "id": "317dfc1b-9842-4350-838e-4ee6d664c560",
                    "name": "Room Only"
                },
                "tax_and_service": {
                    "id": "2896f446-4c87-42b2-b55b-324cbc6bcffd",
                    "name": "Room Rate Tax 11 and Service 10",
                    "tax_percent": "11",
                    "service_percent": "10",
                    "calculation_type": "INCLUDE"
                },
                "open_rate": true,
                "name": "Room And Breakfast Rate",
                "remark": "Room And Breakfast Rate",
                "start_date": "2024-10-16",
                "end_date": "2025-11-10",
                "min_night": 1,
                "max_night": 10,
                "max_adult": 2,
                "max_child": 2,
                "max_pax": 4,
                "rate": 150000,
                "extra_adult_rate": 0,
                "rate_plan_detail": [
                    {
                        "id": "e0eff273-f366-4f9a-9478-083e0a07bb07",
                        "remark": "Room rate",
                        "rate": 400000
                    },
                    {
                        "id": "ee9fa600-b92b-40e2-bb4f-0bcf74da6f59",
                        "remark": "Breakfast rate",
                        "rate": 150000
                    }
                ]
            }
        ],
        "total_page": 1,
        "current_page": 1,
        "filter": {
            "room_type_id": "0a3b2a7b-4579-4d2a-9f47-7922329bd423",
            "rate_type_id": "317dfc1b-9842-4350-838e-4ee6d664c560",
            "active_start_date": "2024-12-25",
            "active_end_date": "2025-03-25"
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/backoffice/rate-plan/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: quo

page_no   integer  optional    

number of pagination Example: 13

rate_plan_name   string  optional    

filter of rate plan name Example: non

rate_type_id   string  optional    

uuid of rate plan type Example: eos

room_type_id   string  optional    

uuid of room type Example: saepe

active_start_date   string  optional    

filter rate plan active start date of date find type format Y-m-d. Example: suscipit

active_end_date   string  optional    

filter rate plan active end date of date find type format Y-m-d. Example: facilis

status_active   boolean  optional    

status of rate plan true or false. Example: false

Create or update Rate Plans

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"nobis\",
    \"property_id\": \"nostrum\",
    \"rate_plan_type_id\": \"neque\",
    \"tax_and_service_id\": \"odit\",
    \"room_type_id\": \"aut\",
    \"room_type_multi\": null,
    \"open_rate\": \"debitis\",
    \"name\": \"enim\",
    \"remark\": \"molestiae\",
    \"start_date\": \"et\",
    \"end_date\": \"iure\",
    \"min_night\": 16,
    \"max_night\": 17,
    \"max_adult\": 11,
    \"max_child\": 7,
    \"max_pax\": 7,
    \"rate\": 13,
    \"extra_adult_rate\": 1,
    \"extra_child_rate\": 15,
    \"daily_rate_period_start_date\": \"voluptas\",
    \"daily_rate_period_end_date\": \"tempora\",
    \"rate_plan_detail\": null,
    \"rate_plan_inclusion\": null
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "nobis",
    "property_id": "nostrum",
    "rate_plan_type_id": "neque",
    "tax_and_service_id": "odit",
    "room_type_id": "aut",
    "room_type_multi": null,
    "open_rate": "debitis",
    "name": "enim",
    "remark": "molestiae",
    "start_date": "et",
    "end_date": "iure",
    "min_night": 16,
    "max_night": 17,
    "max_adult": 11,
    "max_child": 7,
    "max_pax": 7,
    "rate": 13,
    "extra_adult_rate": 1,
    "extra_child_rate": 15,
    "daily_rate_period_start_date": "voluptas",
    "daily_rate_period_end_date": "tempora",
    "rate_plan_detail": null,
    "rate_plan_inclusion": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'nobis',
            'property_id' => 'nostrum',
            'rate_plan_type_id' => 'neque',
            'tax_and_service_id' => 'odit',
            'room_type_id' => 'aut',
            'room_type_multi' => null,
            'open_rate' => 'debitis',
            'name' => 'enim',
            'remark' => 'molestiae',
            'start_date' => 'et',
            'end_date' => 'iure',
            'min_night' => 16,
            'max_night' => 17,
            'max_adult' => 11,
            'max_child' => 7,
            'max_pax' => 7,
            'rate' => 13,
            'extra_adult_rate' => 1,
            'extra_child_rate' => 15,
            'daily_rate_period_start_date' => 'voluptas',
            'daily_rate_period_end_date' => 'tempora',
            'rate_plan_detail' => null,
            'rate_plan_inclusion' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Save Update Rate Plan Data",
    "data": [
        {
            "id": "ce065cfe-eaa1-4b59-abd8-220d5660a026",
            "name": "Test Room Rate With Detail",
            "remark": "test room rate",
            "start_date": "2024-12-01",
            "end_date": "",
            "min_night": 1,
            "max_night": 30,
            "max_adult": 2,
            "max_child": 1,
            "max_pax": 3,
            "rate": 550000,
            "extra_adult_rate": 50000,
            "extra_child_rate": 50000,
            "rate_plan_detail": [
                {
                    "id": "d51ee804-3d39-4c04-8843-049bd132bf46",
                    "remark": "Room rate",
                    "rate": 400000
                },
                {
                    "id": "573f3199-d964-44b9-ba71-9c3d90f780d8",
                    "remark": "Breakfast rate",
                    "rate": 150000
                }
            ],
            "rate_plan_type_id": "14399dcb-b5cb-4c49-afba-12628e82dda6",
            "rate_plan_type_name": "Room Breakfast",
            "open_rate": true,
            "tax_and_service_id": "2896f446-4c87-42b2-b55b-324cbc6bcffd",
            "tax_and_service_name": "Room Rate Tax 11 and Service 10",
            "currency_name": {
                "id": "098bdff9-0060-4e5b-8364-c93bbabcf17a",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            },
            "room_type": {
                "id": "ac928fd1-e0a6-42ea-94d2-53900547f872",
                "name": "Standard"
            },
            "daily_rate": {
                "period_start_date": "2024-12-01",
                "period_end_date": "2024-12-31",
                "list_rate": [
                    {
                        "rate_date": "2024-12-30",
                        "rate": 550000,
                        "extra_adult_rate": 50000,
                        "extra_child_rate": 50000,
                        "rate_plan_detail": [
                            {
                                "id": "d51ee804-3d39-4c04-8843-049bd132bf46",
                                "remark": "Room rate",
                                "rate": 400000,
                                "is_adjustment": false
                            },
                            {
                                "id": "573f3199-d964-44b9-ba71-9c3d90f780d8",
                                "remark": "Breakfast rate",
                                "rate": 150000,
                                "is_adjustment": false
                            }
                        ],
                        "is_adjustment": false
                    },
                    {
                        "rate_date": "2024-12-31",
                        "rate": 550000,
                        "extra_adult_rate": 50000,
                        "extra_child_rate": 50000,
                        "rate_plan_detail": [
                            {
                                "id": "d51ee804-3d39-4c04-8843-049bd132bf46",
                                "remark": "Room rate",
                                "rate": 400000,
                                "is_adjustment": false
                            },
                            {
                                "id": "573f3199-d964-44b9-ba71-9c3d90f780d8",
                                "remark": "Breakfast rate",
                                "rate": 150000,
                                "is_adjustment": false
                            }
                        ],
                        "is_adjustment": false
                    }
                ]
            }
        }
    ]
}
 

Request   

POST api/v1/backoffice/rate-plan

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string  optional    

uuid rate plan, this must set for update single rate plan Example: nobis

property_id   string     

uuid of Property Example: nostrum

rate_plan_type_id   string     

uuid of Rate Plan Type Example: neque

tax_and_service_id   string     

uuid of Tax and Service Example: odit

room_type_id   string  optional    

uuid of Room Type if just want update single room type rate plan Example: aut

room_type_multi   object[]  optional    

if you want create rate for multiple room rate plan use this parameter like

open_rate   bolean     

if this can use for publish market OTA set true Example: debitis

name   string     

name Of Rate Plan Example: enim

remark   string     

remark Of Rate Plan Example: molestiae

start_date   string     

start date valid Rate Plan, Example. YYYY-mm-dd Example: et

end_date   string     

end date valid Rate Plan, Example. YYYY-mm-dd Example: iure

min_night   integer     

minimum night stay rate plan Example: 16

max_night   integer     

maximum night stay rate plan Example: 17

max_adult   integer     

maximum adult guest on one room can apply this rate Example: 11

max_child   integer     

maximum child guest on one room can apply this rate Example: 7

max_pax   integer     

maximum guest on one room can apply this rate Example: 7

rate   integer     

value of Rate Example: 13

extra_adult_rate   integer  optional    

value of Extra Adult Rate Example: 1

extra_child_rate   integer  optional    

value of Extra child Rate Example: 15

daily_rate_period_start_date   string  optional    

this required if you make update daily rate start date display valid Rate Plan, Example. YYYY-mm-dd Example: voluptas

daily_rate_period_end_date   string  optional    

this required if you make update daily rate end date display valid Rate Plan, Example. YYYY-mm-dd Example: tempora

rate_plan_detail   object[]  optional    

if have detail of rate plan like

rate_plan_inclusion   object[]  optional    

if have detail of rate plan like

Inactive Rate Plans

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan/inactive" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"ab\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan/inactive"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "ab"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan/inactive';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'ab',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/backoffice/rate-plan/inactive

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Rate Plans Example: ab

Option Rate Plans Input

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"room_type\",
    \"property_id\": \"vitae\",
    \"rate_plan_type_id\": \"aut\",
    \"product_category_id\": \"aperiam\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "room_type",
    "property_id": "vitae",
    "rate_plan_type_id": "aut",
    "product_category_id": "aperiam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'room_type',
            'property_id' => 'vitae',
            'rate_plan_type_id' => 'aut',
            'product_category_id' => 'aperiam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Tax And Service Founds",
    "data": [
        {
            "key": "bcd755b0-7172-4863-82e1-3629d16f6d52",
            "label": "Room Rate Tax 11 and Service 10"
        }
    ]
}
 

Request   

POST api/v1/backoffice/rate-plan/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The selector option. Example: room_type

Must be one of:
  • room_type
  • rate_plan_type
  • tax_and_service
  • property_currency
  • property_departments
  • product_category
  • product
  • rate_plan_detail_default
  • status_active
property_id   string     

uuid of Property Example: vitae

rate_plan_type_id   string     

uuid of Property if mode rate_plan_detail_default Example: aut

product_category_id   string     

uuid of Product Category if mode product Example: aperiam

Adjustment Daily Rate Plans

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/rate-plan/daily/adjustment" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"rate_plan_id\": \"eos\",
    \"property_id\": \"iure\",
    \"start_date\": \"tempora\",
    \"end_date\": \"culpa\",
    \"adjust_start_date\": \"saepe\",
    \"adjust_end_date\": \"sed\",
    \"rate\": 3,
    \"extra_adult_rate\": 2,
    \"extra_child_rate\": 3,
    \"day_apply\": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
    ],
    \"rate_plan_detail\": null
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/rate-plan/daily/adjustment"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "rate_plan_id": "eos",
    "property_id": "iure",
    "start_date": "tempora",
    "end_date": "culpa",
    "adjust_start_date": "saepe",
    "adjust_end_date": "sed",
    "rate": 3,
    "extra_adult_rate": 2,
    "extra_child_rate": 3,
    "day_apply": [
        1,
        2,
        3,
        4,
        5,
        6,
        7
    ],
    "rate_plan_detail": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/rate-plan/daily/adjustment';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'rate_plan_id' => 'eos',
            'property_id' => 'iure',
            'start_date' => 'tempora',
            'end_date' => 'culpa',
            'adjust_start_date' => 'saepe',
            'adjust_end_date' => 'sed',
            'rate' => 3,
            'extra_adult_rate' => 2,
            'extra_child_rate' => 3,
            'day_apply' => [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
            ],
            'rate_plan_detail' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Save Adjustment Daily Rate Plan Data",
    "data": [
        {
            "period_start_date": "2024-08-01",
            "period_end_date": "2024-08-10",
            "list_rate": [
                {
                    "rate_date": "2024-08-01",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-02",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-03",
                    "rate": 300000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": true
                },
                {
                    "rate_date": "2024-08-04",
                    "rate": 300000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": true
                },
                {
                    "rate_date": "2024-08-05",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-06",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-07",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-08",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-09",
                    "rate": 150000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": false
                },
                {
                    "rate_date": "2024-08-10",
                    "rate": 300000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "is_adjustment": true
                }
            ]
        }
    ]
}
 

Request   

POST api/v1/backoffice/rate-plan/daily/adjustment

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

rate_plan_id   string  optional    

uuid rate plan, this must set for update single rate plan Example: eos

property_id   string     

uuid of Property Example: iure

start_date   string     

list day showing start date valid Rate Plan, Example. YYYY-mm-dd Example: tempora

end_date   string     

list day showing end date valid Rate Plan, Example. YYYY-mm-dd Example: culpa

adjust_start_date   string     

start date adjusment Daily Rate Rate Plan, Example. YYYY-mm-dd Example: saepe

adjust_end_date   string     

if adjust daily rate on range, use end date adjusment Daily Rate Rate Plan, Example. YYYY-mm-dd Example: sed

rate   integer     

value of Rate adjustment Example: 3

extra_adult_rate   integer  optional    

value of Extra Adult Rate adjustment Example: 2

extra_child_rate   integer  optional    

value of Extra child Rate adjustment Example: 3

day_apply   string[]  optional    

if you want adjustment your daily rate use this parameter like(1 = monday, 2 = tuesday, 3 = wednesday, 4 = thursday, 5 = friday, 6 = saturday 7 = sunday).

rate_plan_detail   object[]  optional    

if have detail of rate plan like

Backoffice Tax And Service

Detail Tax And Service

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/tax-and-service/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"atque\",
    \"tax_and_service_id\": \"voluptatem\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/tax-and-service/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "atque",
    "tax_and_service_id": "voluptatem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/tax-and-service/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'atque',
            'tax_and_service_id' => 'voluptatem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Tax and Service detail",
    "data": {
        "id": "151f85bf-cb51-4aab-985c-8d451dcd901c",
        "name": "Room Rate Tax 11 and Service 10",
        "tax": "11",
        "service": "10",
        "use_service": true,
        "tax_coa": {
            "id": "563770be-ecf2-4f77-a717-46fcb69e90e9",
            "name": "220-00-060 | Recontruction Tax - PB 1"
        },
        "service_coa": {
            "id": "639fdb54-d802-442b-a19e-3bd5af5507ea",
            "name": "250-00-010 | A/P - Service Charge"
        }
    }
}
 

Request   

POST api/v1/backoffice/tax-and-service/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: atque

tax_and_service_id   string     

uuid of Tax And Service Example: voluptatem

Datatables Tax And Service

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/tax-and-service/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quia\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/tax-and-service/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/tax-and-service/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "151f85bf-cb51-4aab-985c-8d451dcd901c",
            "property_id": "6f61c7b5-72df-4c55-a6de-0b04b08dfef5",
            "tax_coa_id": "563770be-ecf2-4f77-a717-46fcb69e90e9",
            "service_coa_id": "639fdb54-d802-442b-a19e-3bd5af5507ea",
            "calculation_type": "INCLUDE",
            "name": "Room Rate Tax 11 and Service 10",
            "tax": "11",
            "service": "10",
            "use_service": true,
            "property_name": "Hotel Dummy",
            "tax_coa": "220-00-060 | Recontruction Tax - PB 1",
            "service_coa": "250-00-010 | A/P - Service Charge"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"tax_and_services\" where \"property_id\" = ? and \"tax_and_services\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 2.05
        },
        {
            "query": "select * from \"tax_and_services\" where \"property_id\" = ? and \"tax_and_services\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.5
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.69
        },
        {
            "query": "select * from \"chart_of_accounts\" where \"chart_of_accounts\".\"id\" = ? and \"chart_of_accounts\".\"id\" is not null and \"chart_of_accounts\".\"deleted_at\" is null limit 1",
            "bindings": [
                169
            ],
            "time": 1.55
        },
        {
            "query": "select * from \"chart_of_accounts\" where \"chart_of_accounts\".\"id\" = ? and \"chart_of_accounts\".\"id\" is not null and \"chart_of_accounts\".\"deleted_at\" is null limit 1",
            "bindings": [
                215
            ],
            "time": 0.58
        }
    ],
    "input": {
        "property_id": "6f61c7b5-72df-4c55-a6de-0b04b08dfef5"
    }
}
 

Request   

POST api/v1/backoffice/tax-and-service/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: quia

Update Tax And Service

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/tax-and-service" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"tax_coa_id\": \"dolorem\",
    \"service_coa_id\": \"maiores\",
    \"name\": \"officiis\",
    \"calculation_type\": \"impedit\",
    \"tax\": 147.04336,
    \"service\": 2353.2,
    \"use_service\": \"voluptatem\",
    \"is_default\": \"accusamus\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/tax-and-service"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "tax_coa_id": "dolorem",
    "service_coa_id": "maiores",
    "name": "officiis",
    "calculation_type": "impedit",
    "tax": 147.04336,
    "service": 2353.2,
    "use_service": "voluptatem",
    "is_default": "accusamus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/tax-and-service';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'tax_coa_id' => 'dolorem',
            'service_coa_id' => 'maiores',
            'name' => 'officiis',
            'calculation_type' => 'impedit',
            'tax' => 147.04336,
            'service' => 2353.2,
            'use_service' => 'voluptatem',
            'is_default' => 'accusamus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Tax and Service",
    "data": {
        "id": "ef9fd502-2b67-4ce2-a72c-2df489060659",
        "name": "tax and service test",
        "tax": "10",
        "service": "11",
        "use_service": true,
        "tax_coa": {
            "id": "6300fe91-d73e-49a2-a52a-59118078cf06",
            "name": "110-30-004 | FA Cash Clearnce"
        },
        "service_coa": {
            "id": "f57cfcf5-ef2f-4222-9476-f10f1822e0d5",
            "name": "120-00-007 | A/R JCB"
        }
    }
}
 

Request   

POST api/v1/backoffice/tax-and-service

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: et

tax_coa_id   string     

uuid of Char Of Account for tax Example: dolorem

service_coa_id   string     

uuid of Char Of Account for service Example: maiores

name   string     

Name of Tax and Service Example: officiis

calculation_type   string     

Calculation type ('INCLUDE','EXCLUDE') Example: impedit

tax   number     

Value of Tax Example: 147.04336

service   number  optional    

Value of Service Example: 2353.2

use_service   bolean  optional    

if use service please set true Example: voluptatem

is_default   bolean  optional    

if this default on option set true Example: accusamus

Remove Tax And Service

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/tax-and-service/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"dolorem\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/tax-and-service/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "dolorem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/tax-and-service/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'dolorem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "success remove Tax And Service",
    "data": []
}
 

Request   

POST api/v1/backoffice/tax-and-service/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Tax And Service Example: dolorem

Option Input Tax And Service

Example request:
curl --request POST \
    "http://localhost/api/v1/backoffice/tax-and-service/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"mode\": \"coa_list\",
    \"coa_search\": \"tempora\"
}"
const url = new URL(
    "http://localhost/api/v1/backoffice/tax-and-service/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "mode": "coa_list",
    "coa_search": "tempora"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/backoffice/tax-and-service/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'mode' => 'coa_list',
            'coa_search' => 'tempora',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Caclculation Type Founds",
    "data": [
        {
            "key": "INCLUDE",
            "label": "Include on Rate"
        },
        {
            "key": "EXCLUDE",
            "label": "Exclude on Rate"
        }
    ]
}
 

Request   

POST api/v1/backoffice/tax-and-service/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: et

mode   string  optional    

The language. Example: coa_list

Must be one of:
  • coa_list
  • calculation_type
coa_search   string  optional    

name of Chart Account Example: tempora

Bill Type Setup

Bill Type Details

Example request:
curl --request POST \
    "http://localhost/api/v1/master/bill-type/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"bill_type_id\": \"qui\"
}"
const url = new URL(
    "http://localhost/api/v1/master/bill-type/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "bill_type_id": "qui"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/bill-type/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'bill_type_id' => 'qui',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Feature Detail",
    "data": {
        "id": "5e1932e0-7d6c-49e4-989c-6c6512263d8f",
        "prefix_booking_code": "hotel_dummy-",
        "name": "Hotel Dummy",
        "address": "Jl. Raya Kedampang Gg Loka No.8, Kerobokan Kelod, Kec. Kuta, Kabupaten Badung, Bali 80361",
        "zip_code": "80361",
        "phone": "0817-7689-9998",
        "email_primary": "[email protected]",
        "logo_path": null,
        "website": "https://www.dummyhotel.com",
        "longitude": "-8.597327",
        "latitude": "115.319776",
        "google_map_url": "https://goo.gl/maps/q9CqJMQFvZ7WYLdH6",
        "sosmed_facebook_url": "#",
        "sosmed_instagram_url": "#",
        "sosmed_youtube_url": "#",
        "sosmed_twitter_url": "#",
        "description": null,
        "property_group": {
            "id": "d0988d1d-a3d0-4494-807d-e9777345d4a4",
            "name": "Hotel Dummy Group"
        },
        "area": {
            "id": "c71e56f2-f74c-4913-9846-a5998a0e536f",
            "area_name": "Sukawati",
            "region_name": "Bali",
            "country_name": "Indonesia"
        },
        "currency": {
            "id": "5138063c-f71f-4433-8350-a66d2429a592",
            "name": "Indonesian rupiah"
        },
        "timezone": {
            "id": "204e5eab-01a6-43ae-b93c-983037af6577",
            "name": "Asia/Jakarta"
        }
    }
}
 

Request   

POST api/v1/master/bill-type/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

bill_type_id   string     

uuid of Bill Type Example: qui

Datatables Bill Type

Example request:
curl --request POST \
    "http://localhost/api/v1/master/bill-type/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/bill-type/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/bill-type/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 5,
    "recordsFiltered": 5,
    "data": [
        {
            "id": "214310a1-f98b-4edb-9e55-5a1616875318",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Standard",
            "description": "Standar Room",
            "position_order": 1,
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/master/bill-type/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Bill Type

Example request:
curl --request POST \
    "http://localhost/api/v1/master/bill-type" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"esse\",
    \"name\": \"qui\",
    \"is_permanent\": \"delectus\"
}"
const url = new URL(
    "http://localhost/api/v1/master/bill-type"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "esse",
    "name": "qui",
    "is_permanent": "delectus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/bill-type';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'esse',
            'name' => 'qui',
            'is_permanent' => 'delectus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room type",
    "data": {
        "id": "3696cda0-035d-4827-a406-c14e6fcdf264",
        "name": "Room Type baru",
        "description": "Room Type Baru Description",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
        "amenities": [
            {
                "category_id": "37b32a73-0c29-4d5a-80bd-1717901d015e",
                "category_name": "Room Amenities",
                "amenities_list": [
                    {
                        "id": "78e7914b-21b5-4bdd-b461-2d3cd72b8f67",
                        "name": "Adapter",
                        "is_select": false
                    },
                    {
                        "id": "05300f15-884d-409e-a396-536929d3cbcf",
                        "name": "Air conditioning",
                        "is_select": true
                    },
                    {
                        "id": "a7d9dedc-cf0b-4d68-9a48-37e14461fdf4",
                        "name": "Air conditioning single room",
                        "is_select": false
                    },
                    {
                        "id": "fd1f09c8-0aca-4f66-b071-cc030a76b36b",
                        "name": "Balcony",
                        "is_select": true
                    },
                    {
                        "id": "dba356b4-5d41-4546-84cf-b08f6585f457",
                        "name": "Bathtub",
                        "is_select": false
                    },
                    {
                        "id": "252b28a2-6add-4a37-85c5-d22598b5e2a1",
                        "name": "Carpeted",
                        "is_select": false
                    },
                    {
                        "id": "f214eca9-262c-4307-979d-3e4bd8de39b4",
                        "name": "Childrens cribs",
                        "is_select": true
                    },
                    {
                        "id": "dc05d273-baec-48b0-acdf-559c39a35f61",
                        "name": "Cleaning products",
                        "is_select": false
                    },
                    {
                        "id": "404dd22a-26e0-4931-b3b2-99333f1e968e",
                        "name": "Clothes rack",
                        "is_select": false
                    },
                    {
                        "id": "3c23f5bb-59ee-4f48-b88a-be1d94681df6",
                        "name": "Desk",
                        "is_select": false
                    },
                    {
                        "id": "bc0c5784-2809-4904-b4e0-bab8b9e1e3d0",
                        "name": "Dryer",
                        "is_select": true
                    },
                    {
                        "id": "99fedee9-ecef-4875-81ce-2a4b9f16cd0a",
                        "name": "Drying rack for clothing",
                        "is_select": false
                    },
                    {
                        "id": "7a8eee4a-155a-4214-b105-68705f2e381b",
                        "name": "Electric blankets",
                        "is_select": false
                    },
                    {
                        "id": "b7757b5e-fa8e-465b-8c3e-f481ed0aba66",
                        "name": "Electric kettle",
                        "is_select": false
                    },
                    {
                        "id": "ce91b7d8-afa1-466d-bfd2-cbc01d107aa8",
                        "name": "Extra long beds (> 6.5 ft)",
                        "is_select": false
                    },
                    {
                        "id": "d0de7cd0-bf27-416f-9317-d65ede231d2f",
                        "name": "Fan",
                        "is_select": false
                    },
                    {
                        "id": "ef8e700d-34cd-46f3-ad83-e40192ff2a8f",
                        "name": "Feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "68d1483f-999a-4155-b2e4-86e0edf8c3ab",
                        "name": "Fireplace",
                        "is_select": false
                    },
                    {
                        "id": "9c1b1920-b3c0-4ce6-8e76-e9a41ceb3b28",
                        "name": "Flat-screen TV",
                        "is_select": false
                    },
                    {
                        "id": "206d34a2-716d-4f08-8895-b18a152c5c5c",
                        "name": "Fold-up bed",
                        "is_select": false
                    },
                    {
                        "id": "feb09933-4210-4e53-a083-60e0ff5f2076",
                        "name": "Hardwood or parquet floors",
                        "is_select": false
                    },
                    {
                        "id": "2d83428c-67f0-424c-b3cf-7b64c7bbde4d",
                        "name": "Heated pool",
                        "is_select": false
                    },
                    {
                        "id": "0e457b6c-27f9-4170-9174-ddcc4a44dbbc",
                        "name": "Heating",
                        "is_select": false
                    },
                    {
                        "id": "a91728b8-4c62-4644-bfc3-8673cdd06c5e",
                        "name": "Hot tub",
                        "is_select": false
                    },
                    {
                        "id": "96fc900e-041f-454c-9aae-45dd06b9a142",
                        "name": "Hypoallergenic",
                        "is_select": false
                    },
                    {
                        "id": "daeea86a-79c0-45b8-81a7-e76333134b3d",
                        "name": "Hypoallergenic pillow",
                        "is_select": false
                    },
                    {
                        "id": "9f577ec2-34e9-4d5c-87df-868bb8ffae4d",
                        "name": "Infinity Pool",
                        "is_select": false
                    },
                    {
                        "id": "0897bc60-47b1-46dd-a822-2bcaeb07d8e8",
                        "name": "Interconnecting rooms",
                        "is_select": false
                    },
                    {
                        "id": "a662f19e-419c-41a9-a0a0-b0c2f00f24dd",
                        "name": "Iron",
                        "is_select": false
                    },
                    {
                        "id": "46a2ee4a-c711-4dd2-a99d-ce6c6ebf3a31",
                        "name": "Ironing facilities",
                        "is_select": false
                    },
                    {
                        "id": "6107ec89-e45a-43f5-ac25-598f20535951",
                        "name": "Mosquito net",
                        "is_select": false
                    },
                    {
                        "id": "1818a164-cfd0-435a-8398-f7ddc11401f4",
                        "name": "Non-feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "1ca6771c-37ae-4ff6-84d0-4277f27365b0",
                        "name": "Pajamas",
                        "is_select": false
                    },
                    {
                        "id": "3e611ae2-edf5-4473-ae7b-c6ab2d6ce946",
                        "name": "Plunge Pool",
                        "is_select": false
                    },
                    {
                        "id": "a13e0b46-0d5e-4503-bc11-af25b568609a",
                        "name": "Pool cover",
                        "is_select": false
                    },
                    {
                        "id": "86854195-b984-415f-925e-bee9172388dc",
                        "name": "Pool towels",
                        "is_select": false
                    },
                    {
                        "id": "b5687b9d-65b2-4d1a-aa22-b2ef72a26685",
                        "name": "Pool with a view",
                        "is_select": false
                    },
                    {
                        "id": "bc8c3d71-115f-45ff-8d98-6d6c7c1ad6b7",
                        "name": "Private pool",
                        "is_select": false
                    },
                    {
                        "id": "7ba1a081-d56b-4608-9d2e-1110fa4cd601",
                        "name": "Rooftop pool",
                        "is_select": false
                    },
                    {
                        "id": "b808b875-492d-458d-a6bc-720372622767",
                        "name": "Safe",
                        "is_select": false
                    },
                    {
                        "id": "d990b235-5121-4b63-ad8c-5ee1721196b4",
                        "name": "Saltwater pool",
                        "is_select": false
                    },
                    {
                        "id": "b38466d0-9e59-4736-8204-0b01d379faa0",
                        "name": "Shallow end",
                        "is_select": false
                    },
                    {
                        "id": "bc33df3d-9f0f-425b-a0df-46ab53e7aa83",
                        "name": "Sitting area",
                        "is_select": false
                    },
                    {
                        "id": "441d79fb-82a4-458a-8bd2-8f91f40f5e2b",
                        "name": "Socket near the bed",
                        "is_select": false
                    },
                    {
                        "id": "30d5b8ec-8f2e-4fc6-899a-5714a9d7be63",
                        "name": "Sofa",
                        "is_select": false
                    },
                    {
                        "id": "06b027ce-138e-4f61-bc25-10165e24cbfd",
                        "name": "Sofa bed",
                        "is_select": false
                    },
                    {
                        "id": "f2d7c256-4b44-48bf-a2a0-04917f773784",
                        "name": "Soundproof",
                        "is_select": false
                    },
                    {
                        "id": "f39be007-f9d0-413a-9434-335578838ac8",
                        "name": "Suit press",
                        "is_select": false
                    },
                    {
                        "id": "892e321b-5422-48d7-8c1d-950486a1ea57",
                        "name": "Tile/Marble floor",
                        "is_select": false
                    },
                    {
                        "id": "7bdbc02c-4cf0-487a-9faa-bbe25447795a",
                        "name": "Toilet paper",
                        "is_select": false
                    },
                    {
                        "id": "5f84000a-c63d-4234-93c7-dcf36434b1ff",
                        "name": "Towels",
                        "is_select": false
                    },
                    {
                        "id": "b8937943-2b2c-4818-8943-cea8f0754fe6",
                        "name": "Trash cans",
                        "is_select": false
                    },
                    {
                        "id": "26ad03ba-c55c-489a-a550-92f19982df53",
                        "name": "View",
                        "is_select": false
                    },
                    {
                        "id": "ec55c805-84d8-4457-b5b8-fec22adf8ec6",
                        "name": "Walk-in closet",
                        "is_select": false
                    },
                    {
                        "id": "8d560293-82fd-4135-99df-761aa540dbb7",
                        "name": "Wardrobe or closet",
                        "is_select": false
                    },
                    {
                        "id": "b0d7bf28-75d2-4f0a-8ad9-baabe2e50608",
                        "name": "Washing machine",
                        "is_select": false
                    },
                    {
                        "id": "17d5df9c-0bb9-4390-8177-9dc05b0ea92c",
                        "name": "Yukata",
                        "is_select": false
                    },
                    {
                        "id": "336a2aa5-fb92-432e-9d15-496f0638fd60",
                        "name": "Air purifiers",
                        "is_select": false
                    },
                    {
                        "id": "f822da69-c6d3-439d-aab2-58c28e09dc39",
                        "name": "Hand sanitizer",
                        "is_select": false
                    },
                    {
                        "id": "932710b6-8c27-4184-b3b3-7df86e2fb36f",
                        "name": "Bolsters",
                        "is_select": false
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/master/bill-type

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of bill Type id please not set param if you want create new bill type Example: esse

name   string     

Name of Room Type Example: qui

is_permanent   bolean     

set true if bill permanent can't update or edit Example: delectus

Remove Bill Type

Example request:
curl --request POST \
    "http://localhost/api/v1/master/bill-type/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"aperiam\"
}"
const url = new URL(
    "http://localhost/api/v1/master/bill-type/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "aperiam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/bill-type/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'aperiam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Room Type",
    "data": []
}
 

Request   

POST api/v1/master/bill-type/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Bill Type Example: aperiam

Booking Add Bill

Add Bill

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/bill/add" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"quos\",
    \"booking_room_id\": \"mollitia\",
    \"property_product_id\": \"in\",
    \"rate_plan_id\": \"cupiditate\",
    \"tax_and_service_id\": \"dolorum\",
    \"guest_id\": \"accusamus\",
    \"agent_id\": \"et\",
    \"bill_date\": \"blanditiis\",
    \"bill_date_start\": \"non\",
    \"bill_date_end\": \"iusto\",
    \"amount\": 1,
    \"remark\": \"recusandae\",
    \"is_inclusion\": \"et\",
    \"detail_list\": null
}"
const url = new URL(
    "http://localhost/api/v1/booking/bill/add"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "quos",
    "booking_room_id": "mollitia",
    "property_product_id": "in",
    "rate_plan_id": "cupiditate",
    "tax_and_service_id": "dolorum",
    "guest_id": "accusamus",
    "agent_id": "et",
    "bill_date": "blanditiis",
    "bill_date_start": "non",
    "bill_date_end": "iusto",
    "amount": 1,
    "remark": "recusandae",
    "is_inclusion": "et",
    "detail_list": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/bill/add';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'quos',
            'booking_room_id' => 'mollitia',
            'property_product_id' => 'in',
            'rate_plan_id' => 'cupiditate',
            'tax_and_service_id' => 'dolorum',
            'guest_id' => 'accusamus',
            'agent_id' => 'et',
            'bill_date' => 'blanditiis',
            'bill_date_start' => 'non',
            'bill_date_end' => 'iusto',
            'amount' => 1,
            'remark' => 'recusandae',
            'is_inclusion' => 'et',
            'detail_list' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/bill/add

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: quos

booking_room_id   string     

uuid of booking room Example: mollitia

property_product_id   string     

uuid of Property Product Example: in

rate_plan_id   string     

if bill type is roomcharge need uuid rate plan type Example: cupiditate

tax_and_service_id   string     

uuid of tax and service Example: dolorum

guest_id   string     

if provide guest need uuid guest profile Example: accusamus

agent_id   string     

if provide agent name need uuid agent property Example: et

bill_date   string  optional    

add this value bill date with format date Y-m-d. Exmp:2024-02-18 Example: blanditiis

bill_date_start   string  optional    

add this value bulk bill date with format date Y-m-d. Exmp:2024-02-18 Example: non

bill_date_end   string  optional    

add this value bulk bill date with format date Y-m-d. Exmp:2024-02-18 Example: iusto

amount   integer     

of bill amount Example: 1

remark   string     

remark Of bill Example: recusandae

is_inclusion   bolean     

if bill is inclusion true Example: et

detail_list   object  optional    

this list room for this booking.

Option Add Bill Input

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/bill/add/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"coa\",
    \"property_id\": \"natus\",
    \"query\": \"placeat\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/bill/add/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "coa",
    "property_id": "natus",
    "query": "placeat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/bill/add/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'natus',
            'query' => 'placeat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Founds",
    "data": [
        {
            "key": "f0c07a03-0e9c-4cf2-a362-a29ac4f28bbd",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "6dca87d1-bbe1-4255-9f54-df139399eb3a",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "e85e160d-495a-4a02-9f26-8867bd38a722",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "69fd3521-dc0e-434c-bdba-39e56e3a0c90",
            "label": "Mrs. Ernawati Ni Luh"
        }
    ]
}
 

Request   

POST api/v1/booking/bill/add/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: coa

Must be one of:
  • bill_type
  • tax_and_service
  • guest
  • agent
  • property_departments
  • product_category
  • product
property_id   string     

uuid of Room Type Example: natus

query   string  optional    

this use for guest Example: placeat

Remove Bill

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/bill/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"sint\",
    \"booking_room_id\": \"culpa\",
    \"booking_bill_id\": \"quaerat\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/bill/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "sint",
    "booking_room_id": "culpa",
    "booking_bill_id": "quaerat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/bill/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'sint',
            'booking_room_id' => 'culpa',
            'booking_bill_id' => 'quaerat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/bill/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: sint

booking_room_id   string     

uuid of booking room Example: culpa

booking_bill_id   string     

uuid of booking Bill Example: quaerat

Booking Add Commision

Add Commision

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/commision/add" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"quis\",
    \"booking_room_id\": \"nam\",
    \"comm_remark\": \"tempora\",
    \"comm_date\": \"sed\",
    \"amount\": 15,
    \"booking_commision_id\": \"temporibus\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/commision/add"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "quis",
    "booking_room_id": "nam",
    "comm_remark": "tempora",
    "comm_date": "sed",
    "amount": 15,
    "booking_commision_id": "temporibus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/commision/add';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'quis',
            'booking_room_id' => 'nam',
            'comm_remark' => 'tempora',
            'comm_date' => 'sed',
            'amount' => 15,
            'booking_commision_id' => 'temporibus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Commision",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/commision/add

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: quis

booking_room_id   string     

uuid of booking room Example: nam

comm_remark   string     

remark Of bill Example: tempora

comm_date   string  optional    

add this value commision date with format date Y-m-d H:i:s. Exmp:2024-02-18 Example: sed

amount   integer     

of bill amount Example: 15

booking_commision_id   string     

uuid of Booking Commision, if want update commision data trx not close Example: temporibus

Remove Commision

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/commision/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"voluptates\",
    \"booking_room_id\": \"perferendis\",
    \"booking_commision_id\": \"cupiditate\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/commision/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "voluptates",
    "booking_room_id": "perferendis",
    "booking_commision_id": "cupiditate"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/commision/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'voluptates',
            'booking_room_id' => 'perferendis',
            'booking_commision_id' => 'cupiditate',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Commision ",
    "data": []
}
 

Request   

POST api/v1/booking/commision/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: voluptates

booking_room_id   string     

uuid of booking room Example: perferendis

booking_commision_id   string     

uuid of booking Payment Example: cupiditate

Option Add Commision Input

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/commision/add/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"agent\",
    \"property_id\": \"quibusdam\",
    \"query\": \"nihil\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/commision/add/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "agent",
    "property_id": "quibusdam",
    "query": "nihil"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/commision/add/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'agent',
            'property_id' => 'quibusdam',
            'query' => 'nihil',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Founds",
    "data": [
        {
            "key": "f0c07a03-0e9c-4cf2-a362-a29ac4f28bbd",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "6dca87d1-bbe1-4255-9f54-df139399eb3a",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "e85e160d-495a-4a02-9f26-8867bd38a722",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "69fd3521-dc0e-434c-bdba-39e56e3a0c90",
            "label": "Mrs. Ernawati Ni Luh"
        }
    ]
}
 

Request   

POST api/v1/booking/commision/add/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: agent

Must be one of:
  • agent
property_id   string     

uuid of Property Example: quibusdam

query   string  optional    

this use for guest Example: nihil

Booking Add Discount

Add Discount

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/discount/add" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"neque\",
    \"booking_room_id\": \"ex\",
    \"discount_option_id\": \"ad\",
    \"discount_for\": \"agent\",
    \"discount_remark\": \"praesentium\",
    \"discount_date\": \"suscipit\",
    \"amount\": 9,
    \"booking_discount_id\": \"in\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/discount/add"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "neque",
    "booking_room_id": "ex",
    "discount_option_id": "ad",
    "discount_for": "agent",
    "discount_remark": "praesentium",
    "discount_date": "suscipit",
    "amount": 9,
    "booking_discount_id": "in"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/discount/add';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'neque',
            'booking_room_id' => 'ex',
            'discount_option_id' => 'ad',
            'discount_for' => 'agent',
            'discount_remark' => 'praesentium',
            'discount_date' => 'suscipit',
            'amount' => 9,
            'booking_discount_id' => 'in',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Discount",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/discount/add

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: neque

booking_room_id   string     

uuid of booking room Example: ex

discount_option_id   string     

uuid of Discount options Example: ad

discount_for   string  optional    

The discount. Example: agent

Must be one of:
  • agent
  • guest
discount_remark   string     

remark Of Discount Example: praesentium

discount_date   string  optional    

add this value Discount date with format date Y-m-d H:i:s. Exmp:2024-02-18 Example: suscipit

amount   integer     

of bill amount Example: 9

booking_discount_id   string     

uuid of Booking Discount, if want update discount data trx not close Example: in

Remove Discount

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/discount/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"quod\",
    \"booking_room_id\": \"dolores\",
    \"booking_discount_id\": \"enim\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/discount/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "quod",
    "booking_room_id": "dolores",
    "booking_discount_id": "enim"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/discount/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'quod',
            'booking_room_id' => 'dolores',
            'booking_discount_id' => 'enim',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Discount ",
    "data": []
}
 

Request   

POST api/v1/booking/discount/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: quod

booking_room_id   string     

uuid of booking room Example: dolores

booking_discount_id   string     

uuid of booking Discount Example: enim

Option Add Discount Input

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/discount/add/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"agent\",
    \"property_id\": \"error\",
    \"query\": \"sapiente\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/discount/add/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "agent",
    "property_id": "error",
    "query": "sapiente"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/discount/add/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'agent',
            'property_id' => 'error',
            'query' => 'sapiente',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Founds",
    "data": [
        {
            "key": "f0c07a03-0e9c-4cf2-a362-a29ac4f28bbd",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "6dca87d1-bbe1-4255-9f54-df139399eb3a",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "e85e160d-495a-4a02-9f26-8867bd38a722",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "69fd3521-dc0e-434c-bdba-39e56e3a0c90",
            "label": "Mrs. Ernawati Ni Luh"
        }
    ]
}
 

Request   

POST api/v1/booking/discount/add/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: agent

Must be one of:
  • agent
  • guest
  • discountlist
property_id   string     

uuid of Property Example: error

query   string  optional    

this use for guest Example: sapiente

Booking Add Payment

Add Payment

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/payment/add" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"est\",
    \"booking_room_id\": \"ut\",
    \"payment_option_id\": \"et\",
    \"payment_date\": \"aut\",
    \"amount\": 16,
    \"remark\": \"molestiae\",
    \"payment_method\": null
}"
const url = new URL(
    "http://localhost/api/v1/booking/payment/add"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "est",
    "booking_room_id": "ut",
    "payment_option_id": "et",
    "payment_date": "aut",
    "amount": 16,
    "remark": "molestiae",
    "payment_method": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/payment/add';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'est',
            'booking_room_id' => 'ut',
            'payment_option_id' => 'et',
            'payment_date' => 'aut',
            'amount' => 16,
            'remark' => 'molestiae',
            'payment_method' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/payment/add

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: est

booking_room_id   string     

uuid of booking room Example: ut

payment_option_id   string     

uuid of Option Example: et

payment_date   string  optional    

add this value payment date with format date Y-m-d H:i:s. Exmp:2024-02-18 Example: aut

amount   integer     

of payment amount Example: 16

remark   string     

remark Of bill Example: molestiae

payment_method   object[]  optional    

please add uuid payment_option_methods and amount.

Remove Payment

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/payment/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"reprehenderit\",
    \"booking_room_id\": \"necessitatibus\",
    \"booking_payment_id\": \"aperiam\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/payment/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "reprehenderit",
    "booking_room_id": "necessitatibus",
    "booking_payment_id": "aperiam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/payment/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'reprehenderit',
            'booking_room_id' => 'necessitatibus',
            'booking_payment_id' => 'aperiam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Payment ",
    "data": []
}
 

Request   

POST api/v1/booking/payment/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: reprehenderit

booking_room_id   string     

uuid of booking room Example: necessitatibus

booking_payment_id   string     

uuid of booking Payment Example: aperiam

Option Add Payment Input

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/payment/add/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"payment_option\",
    \"property_id\": \"voluptas\",
    \"payment_id\": \"neque\",
    \"booking_room_id\": \"accusamus\",
    \"query\": \"accusantium\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/payment/add/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "payment_option",
    "property_id": "voluptas",
    "payment_id": "neque",
    "booking_room_id": "accusamus",
    "query": "accusantium"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/payment/add/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'payment_option',
            'property_id' => 'voluptas',
            'payment_id' => 'neque',
            'booking_room_id' => 'accusamus',
            'query' => 'accusantium',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Founds",
    "data": [
        {
            "key": "f0c07a03-0e9c-4cf2-a362-a29ac4f28bbd",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "6dca87d1-bbe1-4255-9f54-df139399eb3a",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "e85e160d-495a-4a02-9f26-8867bd38a722",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "69fd3521-dc0e-434c-bdba-39e56e3a0c90",
            "label": "Mrs. Ernawati Ni Luh"
        }
    ]
}
 

Request   

POST api/v1/booking/payment/add/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: payment_option

Must be one of:
  • payment_option
  • payment_method
  • list_outstanding_bill
property_id   string     

uuid of Property Example: voluptas

payment_id   string     

uuid of Payment Option use this parameter when mode payment_method Example: neque

booking_room_id   string     

uuid of Booking Room this Option use this parameter when mode list_outstanding_bill Example: accusamus

query   string  optional    

this use for guest Example: accusantium

Booking Chart

Chart Calendar Data

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/calendar/chart" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"vitae\",
    \"start_date\": \"sapiente\",
    \"end_date\": \"harum\",
    \"room_type_id\": \"provident\",
    \"bed_type_id\": \"exercitationem\",
    \"booking_no\": \"iure\",
    \"show_unsigned_room\": \"false\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/calendar/chart"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "vitae",
    "start_date": "sapiente",
    "end_date": "harum",
    "room_type_id": "provident",
    "bed_type_id": "exercitationem",
    "booking_no": "iure",
    "show_unsigned_room": "false"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/calendar/chart';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'vitae',
            'start_date' => 'sapiente',
            'end_date' => 'harum',
            'room_type_id' => 'provident',
            'bed_type_id' => 'exercitationem',
            'booking_no' => 'iure',
            'show_unsigned_room' => 'false',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/calendar/chart

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: vitae

start_date   string     

chart start date format Y-m-d. Example: sapiente

end_date   string     

chart end date maximum 60 days format Y-m-d. Example: harum

room_type_id   string  optional    

uuid room type if all room please dont provide room type id. Example: provident

bed_type_id   string  optional    

uuid bed type if all bed please dont provide bed type id. Example: exercitationem

booking_no   string  optional    

Booking number. Example: iure

show_unsigned_room   boolean.  optional    

Example: false

Summary Info Data

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/summary/info" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quisquam\",
    \"periode\": \"amet\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/summary/info"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quisquam",
    "periode": "amet"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/summary/info';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quisquam',
            'periode' => 'amet',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/summary/info

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: quisquam

periode   string     

chart start date format Y-m Example: amet

Summary Not Assigned List

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/summary/unanssigned" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quo\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/summary/unanssigned"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/summary/unanssigned';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/summary/unanssigned

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: quo

Summary Outstanding List

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/summary/bookingoutstanding" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nisi\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/summary/bookingoutstanding"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nisi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/summary/bookingoutstanding';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nisi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/summary/bookingoutstanding

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nisi

Booking Editor

Option Booking Input

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/editor/dropdownoptionlist/source_list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"earum\",
    \"query\": \"quia\",
    \"findby\": \"phone\",
    \"findvalue\": \"et\",
    \"room_type_id\": \"iste\",
    \"arival_date\": \"minus\",
    \"depature_date\": \"ut\",
    \"total_adult\": \"ratione\",
    \"total_child\": \"consectetur\",
    \"default_rate\": \"modi\",
    \"default_extra_adult_rate\": \"fugiat\",
    \"default_extra_child_rate\": \"voluptatem\",
    \"default_rate_detail\": \"ratione\",
    \"booking_room_id\": \"voluptatem\",
    \"split_to\": [
        \"cupiditate\"
    ],
    \"current_room_type_id\": \"sequi\",
    \"current_room_id\": \"est\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/editor/dropdownoptionlist/source_list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "earum",
    "query": "quia",
    "findby": "phone",
    "findvalue": "et",
    "room_type_id": "iste",
    "arival_date": "minus",
    "depature_date": "ut",
    "total_adult": "ratione",
    "total_child": "consectetur",
    "default_rate": "modi",
    "default_extra_adult_rate": "fugiat",
    "default_extra_child_rate": "voluptatem",
    "default_rate_detail": "ratione",
    "booking_room_id": "voluptatem",
    "split_to": [
        "cupiditate"
    ],
    "current_room_type_id": "sequi",
    "current_room_id": "est"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/editor/dropdownoptionlist/source_list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'earum',
            'query' => 'quia',
            'findby' => 'phone',
            'findvalue' => 'et',
            'room_type_id' => 'iste',
            'arival_date' => 'minus',
            'depature_date' => 'ut',
            'total_adult' => 'ratione',
            'total_child' => 'consectetur',
            'default_rate' => 'modi',
            'default_extra_adult_rate' => 'fugiat',
            'default_extra_child_rate' => 'voluptatem',
            'default_rate_detail' => 'ratione',
            'booking_room_id' => 'voluptatem',
            'split_to' => [
                'cupiditate',
            ],
            'current_room_type_id' => 'sequi',
            'current_room_id' => 'est',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/booking/editor/dropdownoptionlist/{mode?}

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

URL Parameters

mode   string     

this parameter for get option list. Example: source_list

Must be one of:
  • roomtypelist
  • agent
  • paymentoption
  • roomavailable
  • roomavailable_edit
  • guestprefix
  • guestcountry
  • guestnationality
  • guestidentitytype
  • guestexistingfind
  • gueststatusoption
  • propertycurrency
  • taxandservice
  • roomratedaily
  • roomrateplan
  • bookingstatus
  • paymentcollecttype
  • splitstayperiod

Body Parameters

property_id   string     

uuid of Property Example: earum

query   string  optional    

this using for in case option have filter Example: quia

findby   string  optional    

use this parameter when mode "guestexistingfind". Example: phone

Must be one of:
  • first_name
  • name
  • identityno
  • email
  • phone
findvalue   string  optional    

use this parameter when mode "guestexistingfind". Example: et

room_type_id   string  optional    

use this parameter when mode "roomrateplan". Example: iste

arival_date   string  optional    

use this parameter whed get roomavailable. Exmp: Y-m-d Example: minus

depature_date   string  optional    

use this parameter whed get roomavailable. Exmp: Y-m-d, Example: ut

total_adult   string  optional    

use this parameter when mode "roomrateplan". Exmp:1, Example: ratione

total_child   string  optional    

use this parameter when mode "roomrateplan". Exmp:1, Example: consectetur

default_rate   string  optional    

use this parameter when get roomratedaily with set default rate. Example: modi

default_extra_adult_rate   string  optional    

use this parameter when get roomratedaily with set default rate. Example: fugiat

default_extra_child_rate   string  optional    

use this parameter when get roomratedaily with set default rate. Example: voluptatem

default_rate_detail   string  optional    

use this parameter required when get roomratedaily with default rate. Example: ratione

booking_room_id   string  optional    

optional, use this parameter when mode "roomavailable_edit" as a shortcut: the booking room's current room_type and room are derived from it and force-included automatically. If current_room_type_id / current_room_id are also sent, they override. Example: voluptatem

split_to   string[]  optional    

use this parameter when mode "splitstayperiod". Each item: {arrival: Y-m-d, departure: Y-m-d, room_id: uuid}. The first item retains the original booking_room_id; subsequent items are returned with booking_room_id = null (new rooms).

current_room_type_id   string  optional    

optional, use this parameter when mode "roomavailable_edit". uuid of the room type the booking currently holds — when sent together with current_room_id, guaranteed to appear in the result even if otherwise blocked for the date range. Example: sequi

current_room_id   string  optional    

optional, use this parameter when mode "roomavailable_edit". uuid of the room the booking currently holds — when sent together with current_room_type_id, guaranteed to appear in the result even if otherwise blocked for the date range. Example: est

Create Booking

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/editor/create" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptatem\",
    \"property_agent_id\": \"rerum\",
    \"booking_status_id\": \"voluptatum\",
    \"guest_booking\": {
        \"guest_prefix_id\": \"de7c9a42-67f9-470c-9547-0895c0fbf139\",
        \"first_name\": \"Rai Octa Vioni\",
        \"last_name\": \"Ni Luh\",
        \"country_id\": \"f2afc2ea-d2ee-40b7-89e5-553ad44a38c0\",
        \"national_id\": \"fc63c980-c572-481f-abbc-080abf282f14\",
        \"identity_type_id\": \"41d8118d-0136-425f-a0e6-9100fa2f5814\",
        \"identity_no\": \"20234560000000\",
        \"email\": \"[email protected]\",
        \"phone\": \"+6281805410047\",
        \"address\": \"jl Raya Umalas 1, gg surya no 2 kerobokan kelod, kuta utara, badung bali\"
    },
    \"booking_reference\": \"praesentium\",
    \"hold_date\": \"porro\",
    \"total_adults\": 12,
    \"total_childrens\": 10,
    \"remark\": \"neque\",
    \"arival\": \"2024-02-18\",
    \"depature\": \"2024-02-18\",
    \"room_lists\": {
        \"room_type_id\": \"c048f3f8-52e2-4492-9233-b32512249e8c\",
        \"room_id\": \"86649f37-4afa-4f65-a042-324e3954fffb\",
        \"guest_in_room\": {
            \"use_booking_guest\": true
        },
        \"adult\": 2,
        \"child\": 1,
        \"room_rate\": [
            {
                \"rate_plan_id\": \"cd9a9cf8-1fd8-4f99-9971-d365a295909a\",
                \"tax_and_service_id\": \"77ce3c78-36d6-4aee-9911-04121db5743d\",
                \"rate_date\": \"2024-07-08\",
                \"rate\": 350000,
                \"is_inherit_rate_plan\": true
            }
        ]
    }
}"
const url = new URL(
    "http://localhost/api/v1/booking/editor/create"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptatem",
    "property_agent_id": "rerum",
    "booking_status_id": "voluptatum",
    "guest_booking": {
        "guest_prefix_id": "de7c9a42-67f9-470c-9547-0895c0fbf139",
        "first_name": "Rai Octa Vioni",
        "last_name": "Ni Luh",
        "country_id": "f2afc2ea-d2ee-40b7-89e5-553ad44a38c0",
        "national_id": "fc63c980-c572-481f-abbc-080abf282f14",
        "identity_type_id": "41d8118d-0136-425f-a0e6-9100fa2f5814",
        "identity_no": "20234560000000",
        "email": "[email protected]",
        "phone": "+6281805410047",
        "address": "jl Raya Umalas 1, gg surya no 2 kerobokan kelod, kuta utara, badung bali"
    },
    "booking_reference": "praesentium",
    "hold_date": "porro",
    "total_adults": 12,
    "total_childrens": 10,
    "remark": "neque",
    "arival": "2024-02-18",
    "depature": "2024-02-18",
    "room_lists": {
        "room_type_id": "c048f3f8-52e2-4492-9233-b32512249e8c",
        "room_id": "86649f37-4afa-4f65-a042-324e3954fffb",
        "guest_in_room": {
            "use_booking_guest": true
        },
        "adult": 2,
        "child": 1,
        "room_rate": [
            {
                "rate_plan_id": "cd9a9cf8-1fd8-4f99-9971-d365a295909a",
                "tax_and_service_id": "77ce3c78-36d6-4aee-9911-04121db5743d",
                "rate_date": "2024-07-08",
                "rate": 350000,
                "is_inherit_rate_plan": true
            }
        ]
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/editor/create';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptatem',
            'property_agent_id' => 'rerum',
            'booking_status_id' => 'voluptatum',
            'guest_booking' => [
                'guest_prefix_id' => 'de7c9a42-67f9-470c-9547-0895c0fbf139',
                'first_name' => 'Rai Octa Vioni',
                'last_name' => 'Ni Luh',
                'country_id' => 'f2afc2ea-d2ee-40b7-89e5-553ad44a38c0',
                'national_id' => 'fc63c980-c572-481f-abbc-080abf282f14',
                'identity_type_id' => '41d8118d-0136-425f-a0e6-9100fa2f5814',
                'identity_no' => '20234560000000',
                'email' => '[email protected]',
                'phone' => '+6281805410047',
                'address' => 'jl Raya Umalas 1, gg surya no 2 kerobokan kelod, kuta utara, badung bali',
            ],
            'booking_reference' => 'praesentium',
            'hold_date' => 'porro',
            'total_adults' => 12,
            'total_childrens' => 10,
            'remark' => 'neque',
            'arival' => '2024-02-18',
            'depature' => '2024-02-18',
            'room_lists' => [
                'room_type_id' => 'c048f3f8-52e2-4492-9233-b32512249e8c',
                'room_id' => '86649f37-4afa-4f65-a042-324e3954fffb',
                'guest_in_room' => [
                    'use_booking_guest' => true,
                ],
                'adult' => 2,
                'child' => 1,
                'room_rate' => [
                    [
                        'rate_plan_id' => 'cd9a9cf8-1fd8-4f99-9971-d365a295909a',
                        'tax_and_service_id' => '77ce3c78-36d6-4aee-9911-04121db5743d',
                        'rate_date' => '2024-07-08',
                        'rate' => 350000,
                        'is_inherit_rate_plan' => true,
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/editor/create

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: voluptatem

property_agent_id   string     

uuid of Property Agent. Example: rerum

booking_status_id   string     

uuid of Booking Status. Example: voluptatum

guest_booking   object     

detail of Guest make Bookig.

booking_reference   string  optional    

add this value if hafe booking reference. Example: praesentium

hold_date   string  optional    

add this value booking status hold with format date Y-m-d. Exmp:2024-02-18 Example: porro

total_adults   integer  optional    

total Adult Guest on this booking Example: 12

total_childrens   integer  optional    

total Childrens Guest on this booking Example: 10

remark   string  optional    

add this value with sepecial request on this reservation Example: neque

arival   string  optional    

add this value arival format date Y-m-d. Example: 2024-02-18

depature   string  optional    

add this value depature format date Y-m-d. Example: 2024-02-18

room_lists   object  optional    

this list room for this booking.

Calculate Booking Summary

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/editor/calculate-summary" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"ullam\",
    \"room_lists\": null
}"
const url = new URL(
    "http://localhost/api/v1/booking/editor/calculate-summary"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "ullam",
    "room_lists": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/editor/calculate-summary';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'ullam',
            'room_lists' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/editor/calculate-summary

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: ullam

room_lists   object     

detail Room List.

Save / Edit Booking

requires authentication

Update detail booking yang sudah ada secara menyeluruh — header, tamu, dan daftar kamar sekaligus.

Logika room_lists:

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/editor/save" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"550e8400-e29b-41d4-a716-446655440000\",
    \"booking_id\": \"550e8400-e29b-41d4-a716-446655440001\",
    \"booking_status_id\": \"550e8400-e29b-41d4-a716-446655440010\",
    \"property_agent_id\": \"550e8400-e29b-41d4-a716-446655440011\",
    \"booking_reference\": \"OTA-20240801-001\",
    \"remark\": \"Late check-in request\",
    \"hold_date\": \"2026-06-15\",
    \"payment_collect_type_id\": \"550e8400-e29b-41d4-a716-446655440050\",
    \"guest_booking\": {
        \"guest_id\": \"550e8400-e29b-41d4-a716-446655440020\",
        \"guest_prefix_id\": \"550e8400-e29b-41d4-a716-446655440021\",
        \"first_name\": \"John\",
        \"last_name\": \"Doe\",
        \"email\": \"[email protected]\",
        \"phone\": \"+6281234567890\",
        \"country_id\": \"550e8400-e29b-41d4-a716-446655440022\",
        \"national_id\": \"550e8400-e29b-41d4-a716-446655440023\",
        \"identity_type_id\": \"550e8400-e29b-41d4-a716-446655440024\",
        \"identity_no\": \"3271010101900001\",
        \"address\": \"Jl. Raya Kuta No. 1, Bali\"
    },
    \"room_lists\": [
        \"ut\"
    ]
}"
const url = new URL(
    "http://localhost/api/v1/booking/editor/save"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "550e8400-e29b-41d4-a716-446655440000",
    "booking_id": "550e8400-e29b-41d4-a716-446655440001",
    "booking_status_id": "550e8400-e29b-41d4-a716-446655440010",
    "property_agent_id": "550e8400-e29b-41d4-a716-446655440011",
    "booking_reference": "OTA-20240801-001",
    "remark": "Late check-in request",
    "hold_date": "2026-06-15",
    "payment_collect_type_id": "550e8400-e29b-41d4-a716-446655440050",
    "guest_booking": {
        "guest_id": "550e8400-e29b-41d4-a716-446655440020",
        "guest_prefix_id": "550e8400-e29b-41d4-a716-446655440021",
        "first_name": "John",
        "last_name": "Doe",
        "email": "[email protected]",
        "phone": "+6281234567890",
        "country_id": "550e8400-e29b-41d4-a716-446655440022",
        "national_id": "550e8400-e29b-41d4-a716-446655440023",
        "identity_type_id": "550e8400-e29b-41d4-a716-446655440024",
        "identity_no": "3271010101900001",
        "address": "Jl. Raya Kuta No. 1, Bali"
    },
    "room_lists": [
        "ut"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/editor/save';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => '550e8400-e29b-41d4-a716-446655440000',
            'booking_id' => '550e8400-e29b-41d4-a716-446655440001',
            'booking_status_id' => '550e8400-e29b-41d4-a716-446655440010',
            'property_agent_id' => '550e8400-e29b-41d4-a716-446655440011',
            'booking_reference' => 'OTA-20240801-001',
            'remark' => 'Late check-in request',
            'hold_date' => '2026-06-15',
            'payment_collect_type_id' => '550e8400-e29b-41d4-a716-446655440050',
            'guest_booking' => [
                'guest_id' => '550e8400-e29b-41d4-a716-446655440020',
                'guest_prefix_id' => '550e8400-e29b-41d4-a716-446655440021',
                'first_name' => 'John',
                'last_name' => 'Doe',
                'email' => '[email protected]',
                'phone' => '+6281234567890',
                'country_id' => '550e8400-e29b-41d4-a716-446655440022',
                'national_id' => '550e8400-e29b-41d4-a716-446655440023',
                'identity_type_id' => '550e8400-e29b-41d4-a716-446655440024',
                'identity_no' => '3271010101900001',
                'address' => 'Jl. Raya Kuta No. 1, Bali',
            ],
            'room_lists' => [
                'ut',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Booking saved successfully",
    "data": {
        "booking_id": "550e8400-e29b-41d4-a716-446655440001",
        "booking_no": "20260601/LOKAROOMS/001",
        "rooms_added": 1,
        "rooms_updated": 1,
        "rooms_removed": 0
    }
}
 

Example response (400, Validasi gagal):


{
    "message": "Please input valid Data",
    "data": {
        "room_lists": [
            "The room lists field is required."
        ]
    }
}
 

Example response (400, Booking berstatus cancelled):


{
    "message": "Cannot edit a cancelled booking",
    "data": []
}
 

Example response (400, Booking harus punya minimal 1 kamar):


{
    "message": "Booking must have at least 1 room",
    "data": []
}
 

Example response (400, Kamar sudah check-in, tidak bisa dihapus):


{
    "message": "Cannot remove a checked-in room from booking",
    "data": {
        "booking_room_uuid": "550e8400-e29b-41d4-a716-446655440030"
    }
}
 

Example response (400, Ada tagihan belum lunas):


{
    "message": "Cannot remove room with outstanding unpaid bills",
    "data": {
        "booking_room_uuid": "550e8400-e29b-41d4-a716-446655440030"
    }
}
 

Example response (400, Ada payment):


{
    "message": "Cannot remove room with existing payments",
    "data": {
        "booking_room_uuid": "550e8400-e29b-41d4-a716-446655440030"
    }
}
 

Example response (400, Data kamar baru tidak valid):


{
    "message": "Invalid new room data",
    "data": []
}
 

Example response (400, Kamar tidak tersedia (room baru)):


{
    "message": "Room Deluxe 101 is not available for the selected dates",
    "data": {
        "room": "Deluxe 101"
    }
}
 

Example response (400, Kamar tidak tersedia (update dates)):


{
    "message": "Room is not available for the selected new dates",
    "data": {
        "booking_room_uuid": "..."
    }
}
 

Example response (400, Arrival tidak bisa diubah, sudah check-in):


{
    "message": "Arrival date cannot be changed, guest has already checked in",
    "data": {
        "booking_room_uuid": "..."
    }
}
 

Example response (404, Booking tidak ditemukan):


{
    "message": "Booking not found",
    "data": []
}
 

Example response (500, Server error):


{
    "message": "An error occurred, please try again",
    "data": []
}
 

Request   

POST api/v1/booking/editor/save

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Body Parameters

property_id   string     

UUID properti. Example: 550e8400-e29b-41d4-a716-446655440000

booking_id   string     

UUID booking yang akan diupdate. Example: 550e8400-e29b-41d4-a716-446655440001

booking_status_id   string  optional    

UUID status booking (opsional). Example: 550e8400-e29b-41d4-a716-446655440010

property_agent_id   string  optional    

UUID agen properti (opsional). Example: 550e8400-e29b-41d4-a716-446655440011

booking_reference   string  optional    

Referensi eksternal, max 200 karakter (opsional). Example: OTA-20240801-001

remark   string  optional    

Catatan khusus, max 1000 karakter (opsional). Example: Late check-in request

hold_date   string  optional    

Format Y-m-d. Jika diisi, otomatis set status On Hold (opsional). Example: 2026-06-15

payment_collect_type_id   string  optional    

UUID payment collect type default untuk semua kamar baru; bisa di-override per kamar (opsional). Example: 550e8400-e29b-41d4-a716-446655440050

guest_booking   object  optional    

Data tamu utama booking. Jika dikirim, guest_prefix_id, first_name, last_name wajib ada (opsional).

guest_id   string  optional    

UUID tamu existing. Jika diisi, update profil yang sudah ada (opsional). Example: 550e8400-e29b-41d4-a716-446655440020

guest_prefix_id   string     

UUID prefix tamu. Example: 550e8400-e29b-41d4-a716-446655440021

first_name   string     

Nama depan, max 100. Example: John

last_name   string     

Nama belakang, max 100. Example: Doe

email   string  optional    

Email tamu (opsional). Example: [email protected]

phone   string  optional    

Nomor telepon (opsional). Example: +6281234567890

country_id   string  optional    

UUID negara asal (opsional). Example: 550e8400-e29b-41d4-a716-446655440022

national_id   string  optional    

UUID kebangsaan (opsional). Example: 550e8400-e29b-41d4-a716-446655440023

identity_type_id   string  optional    

UUID jenis identitas (opsional). Example: 550e8400-e29b-41d4-a716-446655440024

identity_no   string  optional    

Nomor identitas (opsional). Example: 3271010101900001

address   string  optional    

Alamat tamu (opsional). Example: Jl. Raya Kuta No. 1, Bali

room_lists   string[]     

Daftar kamar. Min 1 item. Setiap item wajib memiliki changes_status. Kamar yang tidak disertakan dalam payload dipertahankan otomatis.

changes_status   string     

Aksi pada kamar: add, update, atau remove. Example: add

booking_room_id   string  optional    

UUID kamar existing. Wajib untuk changes_status: update dan remove (opsional untuk add). Example: `550e8400-e29b-41d4-a716-446655440030

Kamar baru (changes_status: "add" — semua field berikut required):`

room_type_id   string     

UUID tipe kamar. Example: 550e8400-e29b-41d4-a716-446655440060

room_id   string     

UUID kamar spesifik, harus milik room_type_id. Example: 550e8400-e29b-41d4-a716-446655440061

rate_plan_id   string     

UUID rate plan. Example: 550e8400-e29b-41d4-a716-446655440040

adult   integer     

Jumlah tamu dewasa (min 0). Example: 2

child   integer     

Jumlah tamu anak (min 0). Example: 1

extra_adult   integer     

Jumlah extra bed dewasa (min 0). Example: 0

extra_child   integer     

Jumlah extra bed anak (min 0). Example: 0

arrival   string     

Tanggal check-in, format Y-m-d. Example: 2026-06-01

departure   string     

Tanggal check-out, format Y-m-d. Harus setelah arrival. Example: 2026-06-03

payment_collect_type_id   string     

UUID payment collect type per kamar. Example: 550e8400-e29b-41d4-a716-446655440050

list_inclusion   string[]     

Daftar inclusi rate plan (dari endpoint roomratedaily).

room_rate   string[]     

Tarif harian per malam (dari endpoint roomratedaily).

guest_in_room   object  optional    

Data tamu di kamar (opsional). Kirim {"use_booking_guest":true} untuk menyalin tamu utama booking.

Partial Update Booking

requires authentication

Update per bagian (part) dari booking. Kirim parameter part untuk menentukan seksi mana yang akan diupdate, beserta data yang berisi field yang diubah.

Parts yang tersedia:

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/editor/update" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"550e8400-e29b-41d4-a716-446655440000\",
    \"booking_id\": \"550e8400-e29b-41d4-a716-446655440001\",
    \"part\": \"booking_guest\",
    \"data\": {
        \"property_agent_id\": \"550e8400-e29b-41d4-a716-446655440010\",
        \"booking_status_id\": \"550e8400-e29b-41d4-a716-446655440011\",
        \"booking_reference\": \"OTA-20240801-001\",
        \"remark\": \"Late check-in request\",
        \"hold_date\": \"2026-06-15\\n\\n**part = booking_guest** — selalu membuat\\/update record di `property_guest_lists`\",
        \"guest_prefix_id\": \"550e8400-e29b-41d4-a716-446655440021\",
        \"first_name\": \"John\",
        \"last_name\": \"Doe\",
        \"guest_id\": \"550e8400-e29b-41d4-a716-446655440020\",
        \"email\": \"[email protected]\",
        \"phone\": \"+6281234567890\",
        \"country_id\": \"550e8400-e29b-41d4-a716-446655440022\",
        \"national_id\": \"550e8400-e29b-41d4-a716-446655440023\",
        \"identity_type_id\": \"550e8400-e29b-41d4-a716-446655440024\",
        \"identity_no\": \"3271010101900001\",
        \"address\": \"Jl. Raya Kuta No. 1, Bali\\n\\n**part = room_occupancy \\/ room_dates \\/ room_rateplan \\/ room_payment_type \\/ room_guest**\",
        \"booking_room_id\": \"550e8400-e29b-41d4-a716-446655440030\\n\\n**part = room_occupancy** — recalculate totals di header booking\",
        \"adult\": 2,
        \"child\": 1,
        \"extra_adult\": 0,
        \"extra_child\": 0,
        \"arrival\": \"2026-06-01\",
        \"departure\": \"2026-06-03\\n\\n**part = room_rateplan** — validasi rate plan terhadap tanggal & occupancy, recalculate rates\",
        \"rate_plan_id\": \"550e8400-e29b-41d4-a716-446655440040\\n\\n**part = room_payment_type** — bisa untuk satu kamar atau semua kamar dalam booking\",
        \"payment_collect_type_id\": \"550e8400-e29b-41d4-a716-446655440050\\n\\n**part = room_add** — cek availability, blokir, dispatch rate job, recalculate totals\",
        \"room_type_id\": \"550e8400-e29b-41d4-a716-446655440060\",
        \"room_id\": \"550e8400-e29b-41d4-a716-446655440061\",
        \"guest_in_room\": null,
        \"use_booking_guest\": true
    }
}"
const url = new URL(
    "http://localhost/api/v1/booking/editor/update"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "550e8400-e29b-41d4-a716-446655440000",
    "booking_id": "550e8400-e29b-41d4-a716-446655440001",
    "part": "booking_guest",
    "data": {
        "property_agent_id": "550e8400-e29b-41d4-a716-446655440010",
        "booking_status_id": "550e8400-e29b-41d4-a716-446655440011",
        "booking_reference": "OTA-20240801-001",
        "remark": "Late check-in request",
        "hold_date": "2026-06-15\n\n**part = booking_guest** — selalu membuat\/update record di `property_guest_lists`",
        "guest_prefix_id": "550e8400-e29b-41d4-a716-446655440021",
        "first_name": "John",
        "last_name": "Doe",
        "guest_id": "550e8400-e29b-41d4-a716-446655440020",
        "email": "[email protected]",
        "phone": "+6281234567890",
        "country_id": "550e8400-e29b-41d4-a716-446655440022",
        "national_id": "550e8400-e29b-41d4-a716-446655440023",
        "identity_type_id": "550e8400-e29b-41d4-a716-446655440024",
        "identity_no": "3271010101900001",
        "address": "Jl. Raya Kuta No. 1, Bali\n\n**part = room_occupancy \/ room_dates \/ room_rateplan \/ room_payment_type \/ room_guest**",
        "booking_room_id": "550e8400-e29b-41d4-a716-446655440030\n\n**part = room_occupancy** — recalculate totals di header booking",
        "adult": 2,
        "child": 1,
        "extra_adult": 0,
        "extra_child": 0,
        "arrival": "2026-06-01",
        "departure": "2026-06-03\n\n**part = room_rateplan** — validasi rate plan terhadap tanggal & occupancy, recalculate rates",
        "rate_plan_id": "550e8400-e29b-41d4-a716-446655440040\n\n**part = room_payment_type** — bisa untuk satu kamar atau semua kamar dalam booking",
        "payment_collect_type_id": "550e8400-e29b-41d4-a716-446655440050\n\n**part = room_add** — cek availability, blokir, dispatch rate job, recalculate totals",
        "room_type_id": "550e8400-e29b-41d4-a716-446655440060",
        "room_id": "550e8400-e29b-41d4-a716-446655440061",
        "guest_in_room": null,
        "use_booking_guest": true
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/editor/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => '550e8400-e29b-41d4-a716-446655440000',
            'booking_id' => '550e8400-e29b-41d4-a716-446655440001',
            'part' => 'booking_guest',
            'data' => [
                'property_agent_id' => '550e8400-e29b-41d4-a716-446655440010',
                'booking_status_id' => '550e8400-e29b-41d4-a716-446655440011',
                'booking_reference' => 'OTA-20240801-001',
                'remark' => 'Late check-in request',
                'hold_date' => '2026-06-15'."\n"
                    ."\n"
                    .'**part = booking_guest** — selalu membuat/update record di `property_guest_lists`',
                'guest_prefix_id' => '550e8400-e29b-41d4-a716-446655440021',
                'first_name' => 'John',
                'last_name' => 'Doe',
                'guest_id' => '550e8400-e29b-41d4-a716-446655440020',
                'email' => '[email protected]',
                'phone' => '+6281234567890',
                'country_id' => '550e8400-e29b-41d4-a716-446655440022',
                'national_id' => '550e8400-e29b-41d4-a716-446655440023',
                'identity_type_id' => '550e8400-e29b-41d4-a716-446655440024',
                'identity_no' => '3271010101900001',
                'address' => 'Jl. Raya Kuta No. 1, Bali'."\n"
                    ."\n"
                    .'**part = room_occupancy / room_dates / room_rateplan / room_payment_type / room_guest**',
                'booking_room_id' => '550e8400-e29b-41d4-a716-446655440030'."\n"
                    ."\n"
                    .'**part = room_occupancy** — recalculate totals di header booking',
                'adult' => 2,
                'child' => 1,
                'extra_adult' => 0,
                'extra_child' => 0,
                'arrival' => '2026-06-01',
                'departure' => '2026-06-03'."\n"
                    ."\n"
                    .'**part = room_rateplan** — validasi rate plan terhadap tanggal & occupancy, recalculate rates',
                'rate_plan_id' => '550e8400-e29b-41d4-a716-446655440040'."\n"
                    ."\n"
                    .'**part = room_payment_type** — bisa untuk satu kamar atau semua kamar dalam booking',
                'payment_collect_type_id' => '550e8400-e29b-41d4-a716-446655440050'."\n"
                    ."\n"
                    .'**part = room_add** — cek availability, blokir, dispatch rate job, recalculate totals',
                'room_type_id' => '550e8400-e29b-41d4-a716-446655440060',
                'room_id' => '550e8400-e29b-41d4-a716-446655440061',
                'guest_in_room' => null,
                'use_booking_guest' => true,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Sukses (semua part kecuali room_add)):


{
    "message": "Booking updated successfully",
    "data": {
        "booking_id": "550e8400-e29b-41d4-a716-446655440001",
        "part": "booking_guest",
        "updated_at": "2026-06-01T10:00:00.000000Z"
    }
}
 

Example response (200, Sukses (part=room_add)):


{
    "message": "Booking updated successfully",
    "data": {
        "booking_id": "550e8400-e29b-41d4-a716-446655440001",
        "part": "room_add",
        "booking_room_id": "550e8400-e29b-41d4-a716-446655440099",
        "updated_at": "2026-06-01T10:00:00.000000Z"
    }
}
 

Example response (400, Validasi gagal):


{
    "message": "Please input valid Data",
    "data": {
        "part": [
            "The selected part is invalid."
        ]
    }
}
 

Example response (400, Kamar tidak tersedia (room_dates)):


{
    "message": "Room is not available for the selected new dates",
    "data": []
}
 

Example response (400, Kamar sudah check-in (room_dates)):


{
    "message": "Arrival date cannot be changed, guest has already checked in",
    "data": []
}
 

Example response (400, Rate plan tidak valid (room_rateplan)):


{
    "message": "Rate plan is not available for the selected dates or guest count",
    "data": []
}
 

Example response (400, Data kamar tidak valid (room_add)):


{
    "message": "Invalid room data",
    "data": []
}
 

Example response (400, Kamar tidak tersedia (room_add)):


{
    "message": "Room {name} is not available for the selected dates",
    "data": {
        "room": "Deluxe 101"
    }
}
 

Example response (404, Booking tidak ditemukan):


{
    "message": "Booking not found",
    "data": []
}
 

Example response (404, Booking room tidak ditemukan):


{
    "message": "Booking room not found in this booking",
    "data": []
}
 

Example response (404, Rate plan tidak ditemukan (room_rateplan)):


{
    "message": "Rate plan not found",
    "data": []
}
 

Example response (404, Payment type tidak ditemukan):


{
    "message": "Payment collect type not found",
    "data": []
}
 

Example response (404, Guest tidak ditemukan di property (room_guest)):


{
    "message": "Guest not found in this property",
    "data": []
}
 

Example response (500, Server error):


{
    "message": "An error occurred, please try again",
    "data": []
}
 

Request   

POST api/v1/booking/editor/update

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Body Parameters

property_id   string     

UUID properti. Example: 550e8400-e29b-41d4-a716-446655440000

booking_id   string     

UUID booking yang akan diupdate. Example: 550e8400-e29b-41d4-a716-446655440001

part   string     

Nama bagian yang diupdate. Example: booking_guest

Must be one of:
  • `booking_info`
  • `booking_guest`
  • `room_occupancy`
  • `room_dates`
  • `room_rateplan`
  • `room_payment_type`
  • `room_add`
  • `room_guest`
data   object     

Data yang diupdate. Isi berbeda sesuai nilai part — lihat deskripsi masing-masing part di bawah.

part = booking_info

property_agent_id   string  optional    

UUID agen (opsional). Example: 550e8400-e29b-41d4-a716-446655440010

booking_status_id   string  optional    

UUID status booking (opsional). Example: 550e8400-e29b-41d4-a716-446655440011

booking_reference   string  optional    

Referensi eksternal, max 200 karakter (opsional). Example: OTA-20240801-001

remark   string  optional    

Catatan khusus, max 1000 karakter (opsional). Example: Late check-in request

hold_date   string  optional    

Format Y-m-d. Jika diisi, otomatis set status On Hold; kirim null untuk menghapus hold date (opsional). Example: `2026-06-15

part = booking_guest — selalu membuat/update record di `property_guest_lists``

guest_prefix_id   string     

UUID prefix tamu (required untuk part=booking_guest). Example: 550e8400-e29b-41d4-a716-446655440021

first_name   string     

Nama depan tamu, max 100 (required untuk part=booking_guest). Example: John

last_name   string     

Nama belakang tamu, max 100 (required untuk part=booking_guest). Example: Doe

guest_id   string  optional    

UUID tamu existing. Jika diisi, update profil yang sudah ada (opsional, untuk part=booking_guest dan room_guest). Example: 550e8400-e29b-41d4-a716-446655440020

email   string  optional    

Email tamu (opsional). Example: [email protected]

phone   string  optional    

Nomor telepon tamu (opsional). Example: +6281234567890

country_id   string  optional    

UUID negara asal (opsional). Example: 550e8400-e29b-41d4-a716-446655440022

national_id   string  optional    

UUID kebangsaan (opsional). Example: 550e8400-e29b-41d4-a716-446655440023

identity_type_id   string  optional    

UUID jenis identitas (opsional). Example: 550e8400-e29b-41d4-a716-446655440024

identity_no   string  optional    

Nomor identitas (opsional). Example: 3271010101900001

address   string  optional    

Alamat tamu (opsional). Example: `Jl. Raya Kuta No. 1, Bali

part = room_occupancy / room_dates / room_rateplan / room_payment_type / room_guest`

booking_room_id   string     

UUID booking room yang ditarget (required untuk part=room_occupancy, room_dates, room_rateplan, room_payment_type, room_guest). Example: `550e8400-e29b-41d4-a716-446655440030

part = room_occupancy — recalculate totals di header booking`

adult   integer     

Jumlah tamu dewasa (required untuk part=room_occupancy, min 0). Example: 2

child   integer     

Jumlah tamu anak (required untuk part=room_occupancy, min 0). Example: 1

extra_adult   integer     

Jumlah extra bed dewasa (required untuk part=room_occupancy, min 0). Example: 0

extra_child   integer     

Jumlah extra bed anak (required untuk part=room_occupancy, min 0). Example: 0

arrival   string     

Format Y-m-d (required untuk part=room_dates dan room_add). Example: 2026-06-01

departure   string     

Format Y-m-d, harus setelah arrival (required untuk part=room_dates dan room_add). Example: `2026-06-03

part = room_rateplan — validasi rate plan terhadap tanggal & occupancy, recalculate rates`

rate_plan_id   string     

UUID rate plan (required untuk part=room_rateplan dan room_add). Example: `550e8400-e29b-41d4-a716-446655440040

part = room_payment_type — bisa untuk satu kamar atau semua kamar dalam booking`

payment_collect_type_id   string     

UUID payment collect type (required untuk part=room_payment_type dan room_add). Example: `550e8400-e29b-41d4-a716-446655440050

part = room_add — cek availability, blokir, dispatch rate job, recalculate totals`

room_type_id   string     

UUID tipe kamar (required untuk part=room_add). Example: 550e8400-e29b-41d4-a716-446655440060

room_id   string     

UUID kamar spesifik, harus milik room_type_id (required untuk part=room_add). Example: 550e8400-e29b-41d4-a716-446655440061

guest_in_room   object  optional    

Data tamu di kamar baru (opsional). Kirim {"use_booking_guest":true} untuk menyalin tamu utama booking.

use_booking_guest   boolean  optional    

Jika true, salin booking.guest_id ke kamar ini (mode link booking guest). Example: true

Detail Booking (Editor)

requires authentication

Mengembalikan struktur data booking lengkap yang siap dipakai oleh halaman Booking Editor di frontend — header, tamu utama, dan daftar kamar beserta rate harian dan inclusi-nya.

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/editor/detail" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"6782e5ad-5239-4b27-8460-6f8c474ea8e5\",
    \"booking_id\": \"c784a6d3-ca80-431d-8c2d-972a699ccf3d\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/editor/detail"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "6782e5ad-5239-4b27-8460-6f8c474ea8e5",
    "booking_id": "c784a6d3-ca80-431d-8c2d-972a699ccf3d"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/editor/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => '6782e5ad-5239-4b27-8460-6f8c474ea8e5',
            'booking_id' => 'c784a6d3-ca80-431d-8c2d-972a699ccf3d',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Sukses):


{
    "message": "Success get detail booking editor",
    "data": {
        "property_id": "6782e5ad-5239-4b27-8460-6f8c474ea8e5",
        "booking_id": "c784a6d3-ca80-431d-8c2d-972a699ccf3d",
        "booking_no": "20260521/HOTELDUMMY/21",
        "property_agent_id": "b0ddf845-f8ab-4561-bbd4-9e661e88e27f",
        "booking_status_id": "ebdfc829-2e80-482d-9d70-056eed582de6",
        "guest_booking": {
            "guest_id": "...",
            "first_name": "...",
            "last_name": "..."
        },
        "booking_reference": "",
        "payment_collect_type_id": "edc599d7-9091-4bab-b3c4-520c1b6559d5",
        "remark": "test",
        "room_lists": [
            {
                "booking_room_id": "...",
                "room_type_id": "...",
                "room_type_name": "Deluxe",
                "room_id": "...",
                "room_name": "101",
                "arrival": "2026-05-21",
                "departure": "2026-05-23",
                "room_edit_action": {
                    "can_modify": true,
                    "can_remove": false
                }
            }
        ]
    }
}
 

Example response (400, Validasi gagal):


{
    "message": "Please input valid Data",
    "data": {
        "booking_id": [
            "The booking id field is required."
        ]
    }
}
 

Example response (404, Booking tidak ditemukan):


{
    "message": "Booking not found",
    "data": []
}
 

Example response (500, Server error):


{
    "message": "An error occurred, please try again",
    "data": []
}
 

Request   

POST api/v1/booking/editor/detail

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Body Parameters

property_id   string     

UUID properti. Example: 6782e5ad-5239-4b27-8460-6f8c474ea8e5

booking_id   string     

UUID booking yang akan diambil detailnya. Example: c784a6d3-ca80-431d-8c2d-972a699ccf3d

Detail Booking

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolorem\",
    \"booking_id\": \"molestiae\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolorem",
    "booking_id": "molestiae"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dolorem',
            'booking_id' => 'molestiae',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: dolorem

booking_id   string     

uuid of Booking. Example: molestiae

Detail Booking Room

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/detail/room" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dicta\",
    \"booking_room_id\": \"nostrum\",
    \"mode\": \"[\'detail\'\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/detail/room"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dicta",
    "booking_room_id": "nostrum",
    "mode": "['detail'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/detail/room';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dicta',
            'booking_room_id' => 'nostrum',
            'mode' => '[\'detail\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/detail/room

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: dicta

booking_room_id   string     

uuid of Booking. Example: nostrum

mode   string  optional    

mode result. Example: ['detail'

Must be one of:
  • ['detail'
  • 'short'
  • 'bill'
  • 'guestbill'
  • 'agentbill'
  • 'payment'
  • 'roomrate'
  • 'guesthistory'
  • 'ota_meta'
  • 'ota_service_req'
  • 'ota_taxes']

Cancel Booking

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/cancel" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"provident\",
    \"booking_id\": \"suscipit\",
    \"booking_room_id\": \"ea\",
    \"cancel_status_id\": \"sunt\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/cancel"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "provident",
    "booking_id": "suscipit",
    "booking_room_id": "ea",
    "cancel_status_id": "sunt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/cancel';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'provident',
            'booking_id' => 'suscipit',
            'booking_room_id' => 'ea',
            'cancel_status_id' => 'sunt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Cancel Booking",
    "data": []
}
 

Request   

POST api/v1/booking/cancel

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: provident

booking_id   string     

uuid of booking Example: suscipit

booking_room_id   string  optional    

optional uuid of booking room Example: ea

cancel_status_id   string     

uuid of Cancel Status Example: sunt

Confirm Booking

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/confirm" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"doloremque\",
    \"booking_id\": \"et\",
    \"confirm_status_id\": \"officiis\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/confirm"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "doloremque",
    "booking_id": "et",
    "confirm_status_id": "officiis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/confirm';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'doloremque',
            'booking_id' => 'et',
            'confirm_status_id' => 'officiis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Cancel Booking",
    "data": []
}
 

Request   

POST api/v1/booking/confirm

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: doloremque

booking_id   string     

uuid of booking Example: et

confirm_status_id   string     

uuid of Confirm Status Example: officiis

Update Booking Additional Info

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"doloremque\",
    \"booking_id\": \"qui\",
    \"property_agent_id\": \"autem\",
    \"booking_reference\": \"deleniti\",
    \"remark\": \"quia\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "doloremque",
    "booking_id": "qui",
    "property_agent_id": "autem",
    "booking_reference": "deleniti",
    "remark": "quia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'doloremque',
            'booking_id' => 'qui',
            'property_agent_id' => 'autem',
            'booking_reference' => 'deleniti',
            'remark' => 'quia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Booking Additional Info",
    "data": []
}
 

Request   

POST api/v1/booking/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: doloremque

booking_id   string     

uuid of booking Example: qui

property_agent_id   string     

uuid of Property Agent. Example: autem

booking_reference   string  optional    

add this value if hafe booking reference. Example: deleniti

remark   string  optional    

add this value with sepecial request on this reservation Example: quia

Create Guest History

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/guest-history/save" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"mollitia\",
    \"guest_id\": \"voluptas\",
    \"booking_id\": \"soluta\",
    \"booking_room_id\": \"repellat\",
    \"history_remark\": \"sunt\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/guest-history/save"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "mollitia",
    "guest_id": "voluptas",
    "booking_id": "soluta",
    "booking_room_id": "repellat",
    "history_remark": "sunt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/guest-history/save';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'mollitia',
            'guest_id' => 'voluptas',
            'booking_id' => 'soluta',
            'booking_room_id' => 'repellat',
            'history_remark' => 'sunt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/guest-history/save

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: mollitia

guest_id   string     

uuid of Guest ID Example: voluptas

booking_id   string     

uuid of Booking ID Example: soluta

booking_room_id   string     

uuid of Booking Room ID Example: repellat

history_remark   string     

Name Payment Method Example: sunt

Detail Guest History

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/guest-history/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"odio\",
    \"guest_history_id\": \"corrupti\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/guest-history/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "odio",
    "guest_history_id": "corrupti"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/guest-history/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'odio',
            'guest_history_id' => 'corrupti',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest History detail found",
    "data": {
        "guest": {
            "id": "2da48c55-2688-443f-99b3-47ab29616604",
            "guest_name": "Mr. Takayuki Nomoto"
        },
        "log_remark": {
            "id": "8f0fcd19-8a15-408f-953f-85f9843f5063",
            "remark": "Guest History"
        },
        "booking_id": "c5411a1e-86f1-4a4b-9aec-3a1361e5d276",
        "booking_no": "20240927/HOTELDUMMY/0000000004",
        "booking_room_id": "7a3f34ff-814e-42be-9013-68d490e462a1",
        "booking_room_type": "Standard",
        "booking_room": "104",
        "created_by": {
            "id": "0ad093e6-3587-4257-a118-0d6265d3347c",
            "name": "Master User Api"
        },
        "history_remark": "test remark additional"
    }
}
 

Request   

POST api/v1/booking/guest-history/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property id Example: odio

guest_history_id   string     

uuid of Payment Option id set value create if new data Example: corrupti

Special Request Update

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/room-special-request/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolores\",
    \"booking_id\": \"amet\",
    \"booking_room_id\": \"et\",
    \"special_request\": \"reprehenderit\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/room-special-request/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolores",
    "booking_id": "amet",
    "booking_room_id": "et",
    "special_request": "reprehenderit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/room-special-request/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dolores',
            'booking_id' => 'amet',
            'booking_room_id' => 'et',
            'special_request' => 'reprehenderit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Booking Room Special Request",
    "data": {
        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
        "special_request": "this special request Testing update test",
        "user_created": {
            "id": "7acc2f8b-1a4c-406a-8731-fceeea5cf202",
            "name": "Agus Bawa Nadi Putra"
        },
        "date_created": "2024-10-17T10:06:29.000000Z"
    }
}
 

Request   

POST api/v1/booking/room-special-request/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: dolores

booking_id   string     

uuid of booking Example: amet

booking_room_id   string     

uuid of booking room Example: et

special_request   string     

remark Of Special Request Example: reprehenderit

Special Request Detail

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/room-special-request/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"natus\",
    \"booking_id\": \"nemo\",
    \"booking_room_id\": \"est\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/room-special-request/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "natus",
    "booking_id": "nemo",
    "booking_room_id": "est"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/room-special-request/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'natus',
            'booking_id' => 'nemo',
            'booking_room_id' => 'est',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Booking Room Special Request",
    "data": {
        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
        "special_request": "this special request Testing update test",
        "user_created": {
            "id": "7acc2f8b-1a4c-406a-8731-fceeea5cf202",
            "name": "Agus Bawa Nadi Putra"
        },
        "date_created": "2024-10-17T10:06:29.000000Z"
    }
}
 

Request   

POST api/v1/booking/room-special-request/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: natus

booking_id   string     

uuid of booking Example: nemo

booking_room_id   string     

uuid of booking room Example: est

Change Guest in Room

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/guest-inroom/change" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"at\",
    \"booking_room_id\": \"illo\",
    \"guest_id\": \"voluptatibus\",
    \"guest_prefix_id\": \"voluptates\",
    \"first_name\": \"inventore\",
    \"last_name\": \"est\",
    \"country_id\": \"atque\",
    \"national_id\": \"inventore\",
    \"identity_type_id\": \"autem\",
    \"identity_no\": \"non\",
    \"email\": \"[email protected]\",
    \"phone\": \"delectus\",
    \"address\": \"at\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/guest-inroom/change"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "at",
    "booking_room_id": "illo",
    "guest_id": "voluptatibus",
    "guest_prefix_id": "voluptates",
    "first_name": "inventore",
    "last_name": "est",
    "country_id": "atque",
    "national_id": "inventore",
    "identity_type_id": "autem",
    "identity_no": "non",
    "email": "[email protected]",
    "phone": "delectus",
    "address": "at"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/guest-inroom/change';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'at',
            'booking_room_id' => 'illo',
            'guest_id' => 'voluptatibus',
            'guest_prefix_id' => 'voluptates',
            'first_name' => 'inventore',
            'last_name' => 'est',
            'country_id' => 'atque',
            'national_id' => 'inventore',
            'identity_type_id' => 'autem',
            'identity_no' => 'non',
            'email' => '[email protected]',
            'phone' => 'delectus',
            'address' => 'at',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Change Guest in Room",
    "data": []
}
 

Request   

POST api/v1/booking/guest-inroom/change

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: at

booking_room_id   string     

uuid of booking room Example: illo

guest_id   string     

uuid of Property Guest Profile this parameter just need if want change with existing profile Example: voluptatibus

guest_prefix_id   string     

uuid of Guest Prefix Example: voluptates

first_name   string     

First Name Of Guest Profile Example: inventore

last_name   string     

Last Name Of Guest Profile Example: est

country_id   string     

uuid of Country Example: atque

national_id   string     

uuid of National same use country data Example: inventore

identity_type_id   string     

uuid of Guest Identity Type Example: autem

identity_no   string     

Identity Number Of Guest Profile Example: non

email   string     

Email Of Guest Profile Example: [email protected]

phone   string     

Phone Of Guest Profile Example: delectus

address   string     

Address Of Guest Profile Example: at

Detail Booking Register form On JSON

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/guest-registration/form-json" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"exercitationem\",
    \"booking_room_id\": \"fugit\",
    \"form\": \"\'withdetail\']\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/guest-registration/form-json"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "exercitationem",
    "booking_room_id": "fugit",
    "form": "'withdetail']"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/guest-registration/form-json';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'exercitationem',
            'booking_room_id' => 'fugit',
            'form' => '\'withdetail\']',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/guest-registration/form-json

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: exercitationem

booking_room_id   string     

uuid of Booking. Example: fugit

form   string  optional    

form model result. Example: 'withdetail']

Must be one of:
  • ['blank'
  • 'withdetail']

Detail Booking Bill On JSON

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/bill/print-json" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptatem\",
    \"booking_room_id\": \"eos\",
    \"bill_model\": \"\'master\']\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/bill/print-json"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptatem",
    "booking_room_id": "eos",
    "bill_model": "'master']"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/bill/print-json';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptatem',
            'booking_room_id' => 'eos',
            'bill_model' => '\'master\']',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/bill/print-json

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: voluptatem

booking_room_id   string     

uuid of Booking. Example: eos

bill_model   string  optional    

bill model result. Example: 'master']

Must be one of:
  • ['agent'
  • 'guest'
  • 'master']

Detail Booking Proforma Invoice On JSON

Behaves like getPrintBillJson, but excludes "Room Charges" products from the bill list and replaces them with entries derived from the booking room rate (one entry per rate day, formatted as a room charge bill).

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/proforma-invoice/print-json" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"perferendis\",
    \"booking_room_id\": \"fugiat\",
    \"bill_model\": \"\'master\']\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/proforma-invoice/print-json"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "perferendis",
    "booking_room_id": "fugiat",
    "bill_model": "'master']"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/proforma-invoice/print-json';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'perferendis',
            'booking_room_id' => 'fugiat',
            'bill_model' => '\'master\']',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Booking Room Performa Invoice Detail"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/proforma-invoice/print-json

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: perferendis

booking_room_id   string     

uuid of Booking. Example: fugiat

bill_model   string  optional    

bill model result. Example: 'master']

Must be one of:
  • ['agent'
  • 'guest'
  • 'master']

Booking Guest Status In Room

Update Status

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/guest-status-inroom/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_id\": \"tempore\",
    \"booking_room_id\": \"pariatur\",
    \"guest_status_id\": \"animi\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/guest-status-inroom/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_id": "tempore",
    "booking_room_id": "pariatur",
    "guest_status_id": "animi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/guest-status-inroom/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'tempore',
            'booking_room_id' => 'pariatur',
            'guest_status_id' => 'animi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/booking/guest-status-inroom/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_id   string     

uuid of booking Example: tempore

booking_room_id   string     

uuid of booking room Example: pariatur

guest_status_id   string     

uuid of Guest Status Example: animi

Option Guest Status Input

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/guest-status-inroom/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"guest_status\",
    \"property_id\": \"consequatur\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/guest-status-inroom/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "guest_status",
    "property_id": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/guest-status-inroom/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'guest_status',
            'property_id' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Founds",
    "data": [
        {
            "key": "f0c07a03-0e9c-4cf2-a362-a29ac4f28bbd",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "6dca87d1-bbe1-4255-9f54-df139399eb3a",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "e85e160d-495a-4a02-9f26-8867bd38a722",
            "label": "Mrs. Ernawati Ni Luh"
        },
        {
            "key": "69fd3521-dc0e-434c-bdba-39e56e3a0c90",
            "label": "Mrs. Ernawati Ni Luh"
        }
    ]
}
 

Request   

POST api/v1/booking/guest-status-inroom/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: guest_status

Must be one of:
  • guest_status
property_id   string     

uuid of Property Example: consequatur

Booking Lists

All Booking List

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"non\",
    \"arival_start_date\": \"mollitia\",
    \"arival_end_date\": \"mollitia\",
    \"booking_no\": \"aut\",
    \"booking_reference\": \"OTA-20240801-001\",
    \"property_agent_id\": \"4a317caa-2ed6-4031-b4ca-11f5971f931e\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "non",
    "arival_start_date": "mollitia",
    "arival_end_date": "mollitia",
    "booking_no": "aut",
    "booking_reference": "OTA-20240801-001",
    "property_agent_id": "4a317caa-2ed6-4031-b4ca-11f5971f931e"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'non',
            'arival_start_date' => 'mollitia',
            'arival_end_date' => 'mollitia',
            'booking_no' => 'aut',
            'booking_reference' => 'OTA-20240801-001',
            'property_agent_id' => '4a317caa-2ed6-4031-b4ca-11f5971f931e',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Booking Data",
    "data": {
        "item": [
            {
                "booking_id": "98ae7959-32bd-4626-9f80-a21a8942ac6c",
                "booking_no": "20240704/HOTELDUMMY/0000000001",
                "booking_reference": "Rai Bali Family Trip",
                "booking_by": "Mrs. Rai Octa Vioni Ni Luh",
                "total_nights": 7,
                "total_adults": 0,
                "total_childrens": 0,
                "user_created": "Master User Api",
                "user_updated": null,
                "property_agent": {
                    "id": "4a317caa-2ed6-4031-b4ca-11f5971f931e",
                    "name": "Walk In"
                },
                "created_at": "2024-07-04T09:56:59.000000Z",
                "updated_at": "2024-07-04T09:56:59.000000Z",
                "status": {
                    "name": "Confirm",
                    "fg_color": "#ffffff",
                    "bg_color": "#0d6efd"
                },
                "list_room": [
                    {
                        "id": "09256420-2049-4b52-974f-c9e1373cd214",
                        "room_type": "Junior Suite",
                        "room": "207",
                        "guest_in_room": "Mrs. Ernawati Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-08",
                        "depature": "2024-07-15",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ],
                "booking_function": {
                    "cancel": null,
                    "confirm": null,
                    "update": {
                        "status": true,
                        "id": "98ae7959-32bd-4626-9f80-a21a8942ac6c"
                    }
                }
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 1,
            "total_item": 1,
            "total_item_current_page": 1
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: non

arival_start_date   string  optional    

add this value Arrival Start Date with format date Y-m-d. Exmp:2024-02-18 Example: mollitia

arival_end_date   string  optional    

add this value Arrival End Date with format date Y-m-d. Exmp:2024-02-18 Example: mollitia

booking_no   string     

Booking Number Example: aut

booking_reference   string  optional    

Booking Reference (partial match). Example: OTA-20240801-001

property_agent_id   string  optional    

UUID Property Agent. Example: 4a317caa-2ed6-4031-b4ca-11f5971f931e

Hold Booking List

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/list/onhold" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"assumenda\",
    \"hold_start_date\": \"quibusdam\",
    \"hold_end_date\": \"nulla\",
    \"booking_no\": \"velit\",
    \"booking_reference\": \"OTA-20240801-001\",
    \"property_agent_id\": \"4a317caa-2ed6-4031-b4ca-11f5971f931e\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/list/onhold"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "assumenda",
    "hold_start_date": "quibusdam",
    "hold_end_date": "nulla",
    "booking_no": "velit",
    "booking_reference": "OTA-20240801-001",
    "property_agent_id": "4a317caa-2ed6-4031-b4ca-11f5971f931e"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/list/onhold';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'assumenda',
            'hold_start_date' => 'quibusdam',
            'hold_end_date' => 'nulla',
            'booking_no' => 'velit',
            'booking_reference' => 'OTA-20240801-001',
            'property_agent_id' => '4a317caa-2ed6-4031-b4ca-11f5971f931e',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Booking Data",
    "data": {
        "item": [
            {
                "booking_id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217",
                "booking_no": "20250324/HOTELDUMMY/0000000005",
                "booking_reference": null,
                "booking_by": "Mr. Anton Poernomo",
                "total_nights": 3,
                "total_adults": 2,
                "total_childrens": 0,
                "user_created": "Agus Bawa",
                "user_updated": null,
                "property_agent": {
                    "id": "4a317caa-2ed6-4031-b4ca-11f5971f931e",
                    "name": "Walk In"
                },
                "created_at": "2025-03-24T04:07:46.000000Z",
                "updated_at": "2025-03-24T04:07:46.000000Z",
                "status": {
                    "name": "In Hold",
                    "fg_color": "#000000",
                    "bg_color": "#ffc107"
                },
                "hold_date": "2025-03-24",
                "list_room": [
                    {
                        "id": "5caf7ef6-f0b1-45ab-9284-943b3016a64d",
                        "room_type": "Standard",
                        "room": "103",
                        "guest_in_room": "Mr. Anton Poernomo",
                        "guest_status_in_room": "No Status",
                        "arival": "2025-03-25",
                        "depature": "2025-03-28",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ],
                "booking_function": {
                    "cancel": null,
                    "confirm": {
                        "status": true,
                        "id": "ad430d5a-a2f1-4927-bb0a-926f00ebf8b6"
                    },
                    "update": {
                        "status": true,
                        "id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217"
                    }
                }
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 1,
            "total_item": 1,
            "total_item_current_page": 1
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/list/onhold

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: assumenda

hold_start_date   string  optional    

add this value Hold Start Date with format date Y-m-d. Exmp:2024-02-18 Example: quibusdam

hold_end_date   string  optional    

add this value Hold End Date with format date Y-m-d. Exmp:2024-02-18 Example: nulla

booking_no   string     

Booking Number Example: velit

booking_reference   string  optional    

Booking Reference (partial match). Example: OTA-20240801-001

property_agent_id   string  optional    

UUID Property Agent. Example: 4a317caa-2ed6-4031-b4ca-11f5971f931e

Booking Move Room

Option Room Move Stay

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/move-room-stay/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"suscipit\",
    \"booking_room_id\": \"et\",
    \"mode\": \"roomavailable\",
    \"room_type_id\": \"et\",
    \"arival_date\": \"facilis\",
    \"depature_date\": \"id\",
    \"rate_plan_id\": \"dolores\",
    \"tax_and_service_id\": \"corporis\",
    \"use_rate_before\": false
}"
const url = new URL(
    "http://localhost/api/v1/booking/move-room-stay/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "suscipit",
    "booking_room_id": "et",
    "mode": "roomavailable",
    "room_type_id": "et",
    "arival_date": "facilis",
    "depature_date": "id",
    "rate_plan_id": "dolores",
    "tax_and_service_id": "corporis",
    "use_rate_before": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/move-room-stay/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'suscipit',
            'booking_room_id' => 'et',
            'mode' => 'roomavailable',
            'room_type_id' => 'et',
            'arival_date' => 'facilis',
            'depature_date' => 'id',
            'rate_plan_id' => 'dolores',
            'tax_and_service_id' => 'corporis',
            'use_rate_before' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Available",
    "data": [
        {
            "key": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "label": "Standard",
            "room": [
                {
                    "key": "e7541067-7551-4905-b13a-e7f026a06a48",
                    "label": "101"
                },
                {
                    "key": "6ea738d4-4b28-4cc8-8b93-29421e53d054",
                    "label": "102"
                },
                {
                    "key": "d87d7acc-088f-4773-a930-e1abe407a21c",
                    "label": "103"
                },
                {
                    "key": "1129c95a-5163-4567-aec3-3c8e5b862df3",
                    "label": "104"
                }
            ]
        },
        {
            "key": "c059b085-358d-456f-bb7d-4a6dd80da101",
            "label": "Standard Balcony",
            "room": [
                {
                    "key": "c7c2509f-a4e5-4e8a-bd6f-95b71844e7b3",
                    "label": "110"
                },
                {
                    "key": "c9175b2e-c8a2-419d-a3e6-a5dec276c549",
                    "label": "111"
                },
                {
                    "key": "582b421a-2923-4d3c-a10f-a456ce7f7583",
                    "label": "112"
                },
                {
                    "key": "22af0aea-2a42-410f-a66c-7b360e460db0",
                    "label": "114"
                },
                {
                    "key": "ca9a60df-c5f4-47a3-8f14-b7817eff83e8",
                    "label": "115"
                }
            ]
        },
        {
            "key": "4a744904-3e55-49a6-b8e9-ac489cbc4ac8",
            "label": "Junior Suite",
            "room": [
                {
                    "key": "01014dfe-3693-4ea4-a08a-9439e3312c80",
                    "label": "205"
                },
                {
                    "key": "e8916d8f-db07-41a8-885f-66f085c4fe0a",
                    "label": "206"
                },
                {
                    "key": "c328ccb7-9c94-4be8-8d2e-12eac221e3d0",
                    "label": "207"
                },
                {
                    "key": "04f00d69-ebc3-47cb-b845-5d9ea450942a",
                    "label": "208"
                }
            ]
        },
        {
            "key": "9b1edca0-fe67-4340-832a-091a9a6aba7c",
            "label": "Superior",
            "room": [
                {
                    "key": "59eb4788-d411-4665-b26c-60de8758dee2",
                    "label": "309"
                },
                {
                    "key": "6ece9929-5939-4976-a7ba-2501aba92885",
                    "label": "310"
                },
                {
                    "key": "eae44a84-1a41-4e80-9a56-e90eba45811d",
                    "label": "311"
                }
            ]
        },
        {
            "key": "865baecb-cf7c-414b-a4f0-d6a0246075f6",
            "label": "Deluxe",
            "room": [
                {
                    "key": "dfda52ce-34fb-4c77-b967-a64f6e06a180",
                    "label": "109"
                }
            ]
        }
    ]
}
 

Request   

POST api/v1/booking/move-room-stay/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: suscipit

booking_room_id   string     

uuid of Booking Room. Example: et

mode   string  optional    

The language. Example: roomavailable

Must be one of:
  • roomavailable
  • taxandservice
  • roomratedaily
  • roomrateplan
room_type_id   string  optional    

use this parameter when mode "roomrateplan". Example: et

arival_date   string  optional    

use this parameter whed get roomavailable. Exmp: Y-m-d Example: facilis

depature_date   string  optional    

use this parameter whed get roomavailable. Exmp: Y-m-d Example: id

rate_plan_id   string  optional    

use this parameter when mode "roomratedaily". Example: dolores

tax_and_service_id   string  optional    

use this parameter when mode "roomratedaily". Example: corporis

use_rate_before   boolean  optional    

set true if use current rate. Example: false

Detail Room Move Stay

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/move-room-stay/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"aspernatur\",
    \"booking_room_id\": \"est\",
    \"room_id\": \"et\",
    \"arival\": \"sit\",
    \"depature\": \"qui\",
    \"use_rate_before\": true
}"
const url = new URL(
    "http://localhost/api/v1/booking/move-room-stay/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "aspernatur",
    "booking_room_id": "est",
    "room_id": "et",
    "arival": "sit",
    "depature": "qui",
    "use_rate_before": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/move-room-stay/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'aspernatur',
            'booking_room_id' => 'est',
            'room_id' => 'et',
            'arival' => 'sit',
            'depature' => 'qui',
            'use_rate_before' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Detail Room Found",
    "data": {
        "current_data": {
            "booking_id": "c5411a1e-86f1-4a4b-9aec-3a1361e5d276",
            "booking_room_id": "7a3f34ff-814e-42be-9013-68d490e462a1",
            "booking_no": "20240927/HOTELDUMMY/0000000004",
            "arival": "2024-10-22",
            "depature": "2024-10-27",
            "total_nights": 5,
            "total_adult": 2,
            "total_child": 0,
            "room_type": "Standard",
            "room": "104",
            "room_rate": {
                "detail_mode": "room rate",
                "currency": {
                    "name": "Indonesian rupiah",
                    "code": "IDR",
                    "symbol": "Rp"
                },
                "booking_id": "c5411a1e-86f1-4a4b-9aec-3a1361e5d276",
                "booking_no": "20240927/HOTELDUMMY/0000000004",
                "reference_no": null,
                "guest_name": "Mr. Takayuki Nomoto",
                "guest_id": "2da48c55-2688-443f-99b3-47ab29616604",
                "total_amount": 1214987.7,
                "total_service": 136363.65000000002,
                "total_tax": 148648.65000000002,
                "total_rate": 1500000,
                "room_rates_list": [
                    {
                        "id": "7a3f34ff-814e-42be-9013-68d490e462a1",
                        "room_name": "Standard / 104",
                        "detail": [
                            {
                                "id": "0df096a6-5d3a-4d75-a48b-a48353f3e4e2",
                                "date": "2024-10-22",
                                "description": "Standard / 104",
                                "service": 9090.91,
                                "tax": 9909.91,
                                "amount": 80999.18,
                                "rate": 100000
                            }
                        ],
                        "total_sub_service": 45454.55,
                        "total_sub_tax": 49549.55,
                        "total_sub_amount": 404995.89999999997,
                        "total_sub_rate": 500000
                    }
                ]
            }
        },
        "move_data": {
            "detail": {
                "booking_room_id": "7a3f34ff-814e-42be-9013-68d490e462a1",
                "arival": "2024-10-15",
                "depature": "2024-10-20",
                "room_type_id": "4a744904-3e55-49a6-b8e9-ac489cbc4ac8",
                "room_id": "04f00d69-ebc3-47cb-b845-5d9ea450942a",
                "currency": {
                    "name": "Indonesian rupiah",
                    "code": "IDR",
                    "symbol": "Rp"
                },
                "rate_plan_default": {
                    "id": "c68d0a27-6a73-4f6d-b5d5-0fa8a7854832",
                    "name": "Room And Breakfast Rate"
                },
                "tax_and_service_default": {
                    "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "name": "Room Rate Tax 11 and Service 10"
                },
                "room_rate": [
                    {
                        "rate_plan_id": "c68d0a27-6a73-4f6d-b5d5-0fa8a7854832",
                        "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "rate_date": "2024-10-15",
                        "rate": 1200000
                    }
                ],
                "total_rate": 6000000,
                "room_type": {
                    "id": "4a744904-3e55-49a6-b8e9-ac489cbc4ac8",
                    "name": "Junior Suite"
                },
                "room": {
                    "id": "04f00d69-ebc3-47cb-b845-5d9ea450942a",
                    "name": "208"
                },
                "total_adults": 2,
                "total_childrens": 0
            },
            "option": {
                "room_available": [
                    {
                        "key": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
                        "label": "Standard",
                        "room": [
                            {
                                "key": "e7541067-7551-4905-b13a-e7f026a06a48",
                                "label": "101"
                            }
                        ]
                    },
                    {
                        "key": "c059b085-358d-456f-bb7d-4a6dd80da101",
                        "label": "Standard Balcony",
                        "room": [
                            {
                                "key": "c7c2509f-a4e5-4e8a-bd6f-95b71844e7b3",
                                "label": "110"
                            }
                        ]
                    },
                    {
                        "key": "4a744904-3e55-49a6-b8e9-ac489cbc4ac8",
                        "label": "Junior Suite",
                        "room": [
                            {
                                "key": "01014dfe-3693-4ea4-a08a-9439e3312c80",
                                "label": "205"
                            }
                        ]
                    },
                    {
                        "key": "9b1edca0-fe67-4340-832a-091a9a6aba7c",
                        "label": "Superior",
                        "room": [
                            {
                                "key": "59eb4788-d411-4665-b26c-60de8758dee2",
                                "label": "309"
                            }
                        ]
                    },
                    {
                        "key": "865baecb-cf7c-414b-a4f0-d6a0246075f6",
                        "label": "Deluxe",
                        "room": [
                            {
                                "key": "dfda52ce-34fb-4c77-b967-a64f6e06a180",
                                "label": "109"
                            }
                        ]
                    }
                ],
                "tax_and_service": [
                    {
                        "label": "Room Rate Tax 11 and Service 10",
                        "key": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "is_default": false
                    }
                ],
                "rate_plan": [
                    {
                        "key": "c68d0a27-6a73-4f6d-b5d5-0fa8a7854832",
                        "label": "Room And Breakfast Rate",
                        "start_date": "2024-08-03",
                        "end_date": "2024-08-03",
                        "min_night": 1,
                        "max_night": 1,
                        "max_adult": 2,
                        "max_pax": 4,
                        "room_rate": 1200000,
                        "extra_adult_rate": 200000,
                        "extra_child_rate": 100000,
                        "rate_plan_type": {
                            "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                            "name": "STANDAR"
                        },
                        "tax_and_service": {
                            "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                            "name": "Room Rate Tax 11 and Service 10"
                        },
                        "currency": {
                            "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                            "name": "Indonesian rupiah",
                            "code": "IDR",
                            "symbol": "Rp"
                        }
                    }
                ]
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/move-room-stay/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: aspernatur

booking_room_id   string     

uuid of Booking. Example: est

room_id   string     

uuid of new Room id if have new room please provide id. Example: et

arival   string     

uuid of new arival date format Y-m-d if have new arival date. Example: sit

depature   string     

uuid of new depature date format Y-m-d if have new depature date. Example: qui

use_rate_before   boolean  optional    

set true if use current rate. Example: true

Update Room Move Stay

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/move-room-stay/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quia\",
    \"booking_room_id\": \"et\",
    \"room_type_id\": \"eos\",
    \"room_id\": \"omnis\",
    \"arival\": \"2024-02-18\",
    \"depature\": \"2024-02-18\",
    \"room_rate\": [
        {
            \"rate_plan_id\": \"97b6b6fa-f6d0-4d96-9ad2-86561c59b673\",
            \"tax_and_service_id\": \"5d80d7db-f029-44b8-9864-44f3607e2417\",
            \"rate_date\": \"2024-10-22\",
            \"rate\": 100000
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/booking/move-room-stay/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quia",
    "booking_room_id": "et",
    "room_type_id": "eos",
    "room_id": "omnis",
    "arival": "2024-02-18",
    "depature": "2024-02-18",
    "room_rate": [
        {
            "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
            "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
            "rate_date": "2024-10-22",
            "rate": 100000
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/move-room-stay/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quia',
            'booking_room_id' => 'et',
            'room_type_id' => 'eos',
            'room_id' => 'omnis',
            'arival' => '2024-02-18',
            'depature' => '2024-02-18',
            'room_rate' => [
                [
                    'rate_plan_id' => '97b6b6fa-f6d0-4d96-9ad2-86561c59b673',
                    'tax_and_service_id' => '5d80d7db-f029-44b8-9864-44f3607e2417',
                    'rate_date' => '2024-10-22',
                    'rate' => 100000,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/move-room-stay/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: quia

booking_room_id   string     

uuid of Booking Room. Example: et

room_type_id   string     

uuid of Room type. Example: eos

room_id   string     

uuid of Room. Example: omnis

arival   string  optional    

add this value arival format date Y-m-d. Example: 2024-02-18

depature   string  optional    

add this value depature format date Y-m-d. Example: 2024-02-18

room_rate   object  optional    

this list room rate for this booking.

Booking Outstanding List

Outstanding List

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/outstanding/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"eius\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/outstanding/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "eius"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/outstanding/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'eius',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Daily Found",
    "data": {
        "in_house": [
            {
                "room_type_name": "Standard",
                "list": [
                    {
                        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
                        "booking_no": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "guest": {
                            "name": "Mr. Takayuki Nomoto",
                            "id": "2da48c55-2688-443f-99b3-47ab29616604"
                        },
                        "country": {
                            "name": "Japan",
                            "id": "72a89d6b-78a8-4db9-b66c-3a16af183567"
                        },
                        "room_type": {
                            "name": "Standard",
                            "id": "a880635a-810f-4f9b-b39a-3f49387ec7d5"
                        },
                        "room": {
                            "name": "101",
                            "id": "e7541067-7551-4905-b13a-e7f026a06a48"
                        },
                        "agent": {
                            "name": "Walk In",
                            "id": "e41961d9-620e-4290-9497-64ece423e82c"
                        },
                        "arival": "2024-09-17",
                        "depature": "2024-09-19",
                        "adult": 2,
                        "child": 2,
                        "special_request": null,
                        "remark": null
                    }
                ]
            }
        ]
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/outstanding/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: eius

Booking Room General Update Editor

Room General Update

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/room-general-update/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"qui\",
    \"booking_id\": \"ipsa\",
    \"booking_room_id\": \"aut\",
    \"payment_collect_type_id\": \"omnis\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/room-general-update/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "qui",
    "booking_id": "ipsa",
    "booking_room_id": "aut",
    "payment_collect_type_id": "omnis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/room-general-update/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'qui',
            'booking_id' => 'ipsa',
            'booking_room_id' => 'aut',
            'payment_collect_type_id' => 'omnis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Booking Room General Update",
    "data": {
        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
        "special_request": "this special request Testing update test",
        "user_created": {
            "id": "7acc2f8b-1a4c-406a-8731-fceeea5cf202",
            "name": "Agus Bawa Nadi Putra"
        },
        "date_created": "2024-10-17T10:06:29.000000Z"
    }
}
 

Request   

POST api/v1/booking/room-general-update/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: qui

booking_id   string     

uuid of booking Example: ipsa

booking_room_id   string     

uuid of booking room Example: aut

payment_collect_type_id   string     

uuid of Payment Collect Type Example: omnis

Room General Update Detail

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/room-general-update/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"cum\",
    \"booking_id\": \"a\",
    \"booking_room_id\": \"odit\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/room-general-update/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "cum",
    "booking_id": "a",
    "booking_room_id": "odit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/room-general-update/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'cum',
            'booking_id' => 'a',
            'booking_room_id' => 'odit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room General Data",
    "data": {
        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
        "special_request": "this special request Testing update test",
        "user_created": {
            "id": "7acc2f8b-1a4c-406a-8731-fceeea5cf202",
            "name": "Agus Bawa Nadi Putra"
        },
        "date_created": "2024-10-17T10:06:29.000000Z"
    }
}
 

Request   

POST api/v1/booking/room-general-update/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: cum

booking_id   string     

uuid of booking Example: a

booking_room_id   string     

uuid of booking room Example: odit

Booking Update Room Rate

Detail Booking Room Rate

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/roomrate/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"non\",
    \"booking_id\": \"rerum\",
    \"booking_room_id\": \"quia\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/roomrate/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "non",
    "booking_id": "rerum",
    "booking_room_id": "quia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/roomrate/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'non',
            'booking_id' => 'rerum',
            'booking_room_id' => 'quia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/roomrate/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: non

booking_id   string     

uuid of Booking. Example: rerum

booking_room_id   string     

uuid of Booking Room ID. Example: quia

Option Booking Room Rate Update

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/roomrate/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"ipsa\",
    \"booking_id\": \"non\",
    \"booking_room_id\": \"quisquam\",
    \"rate_plan_id\": \"minus\",
    \"tax_and_service_id\": \"doloremque\",
    \"total_adult\": \"sequi\",
    \"total_child\": \"similique\",
    \"default_rate\": \"necessitatibus\",
    \"default_extra_adult_rate\": \"dolorem\",
    \"default_extra_child_rate\": \"labore\",
    \"default_rate_detail\": \"ullam\",
    \"mode\": \"[\'taxandservice\'\"
}"
const url = new URL(
    "http://localhost/api/v1/booking/roomrate/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "ipsa",
    "booking_id": "non",
    "booking_room_id": "quisquam",
    "rate_plan_id": "minus",
    "tax_and_service_id": "doloremque",
    "total_adult": "sequi",
    "total_child": "similique",
    "default_rate": "necessitatibus",
    "default_extra_adult_rate": "dolorem",
    "default_extra_child_rate": "labore",
    "default_rate_detail": "ullam",
    "mode": "['taxandservice'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/roomrate/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'ipsa',
            'booking_id' => 'non',
            'booking_room_id' => 'quisquam',
            'rate_plan_id' => 'minus',
            'tax_and_service_id' => 'doloremque',
            'total_adult' => 'sequi',
            'total_child' => 'similique',
            'default_rate' => 'necessitatibus',
            'default_extra_adult_rate' => 'dolorem',
            'default_extra_child_rate' => 'labore',
            'default_rate_detail' => 'ullam',
            'mode' => '[\'taxandservice\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Room Rate Daily Available",
    "data": [
        {
            "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
            "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
            "rate_date": "2024-09-23",
            "rate": 750000
        },
        {
            "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
            "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
            "rate_date": "2024-09-24",
            "rate": 750000
        },
        {
            "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
            "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
            "rate_date": "2024-09-25",
            "rate": 750000
        }
    ]
}
 

Request   

POST api/v1/booking/roomrate/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: ipsa

booking_id   string     

uuid of Booking. Example: non

booking_room_id   string     

uuid of Booking Room ID. Example: quisquam

rate_plan_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: minus

tax_and_service_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: doloremque

total_adult   string  optional    

use this parameter when mode "roomrateplan". Exmp:1, Example: sequi

total_child   string  optional    

use this parameter when mode "roomrateplan". Exmp:1, Example: similique

default_rate   string  optional    

use this parameter when get roomratedaily with set default rate. Example: necessitatibus

default_extra_adult_rate   string  optional    

use this parameter when get roomratedaily with set default rate. Example: dolorem

default_extra_child_rate   string  optional    

use this parameter when get roomratedaily with set default rate. Example: labore

default_rate_detail   string  optional    

use this parameter required when get roomratedaily with default rate. Example: ullam

mode   string  optional    

mode result. Example: ['taxandservice'

Must be one of:
  • ['taxandservice'
  • 'roomrateplan'
  • 'roomratedaily'
  • 'calculation']

Calculate Booking Room Rate

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/roomrate/calculate" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"corporis\",
    \"booking_id\": \"repellendus\",
    \"booking_room_id\": \"vero\",
    \"rate_plan_id\": \"sint\",
    \"room_rate_daily\": [
        {
            \"tax_and_service_id\": \"99f5c5f5-4bdd-449f-950c-15ec32322a7d\",
            \"is_open_rate\": true,
            \"rate_date\": \"2025-02-26\",
            \"rate\": 1000000,
            \"extra_adult\": 0,
            \"extra_child\": 0,
            \"extra_adult_rate\": 100000,
            \"extra_child_rate\": 50000,
            \"min_rate\": 700000,
            \"rate_detail\": [
                {
                    \"id\": \"54528d0a-407a-4bb4-8026-bd338ea81a83\",
                    \"property_product\": {
                        \"id\": \"a1ba606b-4310-47f8-b94b-fd24a6049ea9\",
                        \"name\": \"Room Charges\",
                        \"slug\": \"room-charges\",
                        \"remark\": \"This Product create default by system\",
                        \"sell_amount\": 0,
                        \"cost_amount\": 0
                    },
                    \"remark\": \"Room Charges\",
                    \"rate\": 300000
                },
                {
                    \"id\": \"ba1d81bb-5e0e-4ceb-bce6-3ce5cdebae99\",
                    \"property_product\": {
                        \"id\": \"3603288e-ed2d-4d72-a9af-8d80df1ae663\",
                        \"name\": \"Breakfasts\",
                        \"slug\": \"breakfasts\",
                        \"remark\": \"This Product create default by system\",
                        \"sell_amount\": 0,
                        \"cost_amount\": 0
                    },
                    \"remark\": \"Breakfasts\",
                    \"rate\": 200000
                }
            ]
        }
    ],
    \"room_rate_inclusion\": [
        {
            \"id\": \"e6bc500d-697c-45f3-a233-e2358db511ab\",
            \"property_product\": {
                \"id\": \"6b3ec723-5da9-4ceb-bf6c-85f2cd65b172\",
                \"name\": \"Honeymoon Package\",
                \"remark\": \"this test product package\",
                \"sell_amount\": 500000,
                \"cost_amount\": 300000
            },
            \"qty\": 1,
            \"unit_rate\": 500000,
            \"rate\": 500000,
            \"add_remark\": null
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/booking/roomrate/calculate"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "corporis",
    "booking_id": "repellendus",
    "booking_room_id": "vero",
    "rate_plan_id": "sint",
    "room_rate_daily": [
        {
            "tax_and_service_id": "99f5c5f5-4bdd-449f-950c-15ec32322a7d",
            "is_open_rate": true,
            "rate_date": "2025-02-26",
            "rate": 1000000,
            "extra_adult": 0,
            "extra_child": 0,
            "extra_adult_rate": 100000,
            "extra_child_rate": 50000,
            "min_rate": 700000,
            "rate_detail": [
                {
                    "id": "54528d0a-407a-4bb4-8026-bd338ea81a83",
                    "property_product": {
                        "id": "a1ba606b-4310-47f8-b94b-fd24a6049ea9",
                        "name": "Room Charges",
                        "slug": "room-charges",
                        "remark": "This Product create default by system",
                        "sell_amount": 0,
                        "cost_amount": 0
                    },
                    "remark": "Room Charges",
                    "rate": 300000
                },
                {
                    "id": "ba1d81bb-5e0e-4ceb-bce6-3ce5cdebae99",
                    "property_product": {
                        "id": "3603288e-ed2d-4d72-a9af-8d80df1ae663",
                        "name": "Breakfasts",
                        "slug": "breakfasts",
                        "remark": "This Product create default by system",
                        "sell_amount": 0,
                        "cost_amount": 0
                    },
                    "remark": "Breakfasts",
                    "rate": 200000
                }
            ]
        }
    ],
    "room_rate_inclusion": [
        {
            "id": "e6bc500d-697c-45f3-a233-e2358db511ab",
            "property_product": {
                "id": "6b3ec723-5da9-4ceb-bf6c-85f2cd65b172",
                "name": "Honeymoon Package",
                "remark": "this test product package",
                "sell_amount": 500000,
                "cost_amount": 300000
            },
            "qty": 1,
            "unit_rate": 500000,
            "rate": 500000,
            "add_remark": null
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/roomrate/calculate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
            ],
            null,
            [
                'stdClass' => [
                    'tax_and_service_id' => [
                        '99f5c5f5-4bdd-449f-950c-15ec32322a7d',
                    ],
                    'is_open_rate' => [
                        true,
                    ],
                    'rate_date' => [
                        '2025-02-26',
                    ],
                    'rate' => [
                        1000000,
                        300000,
                        3 => 200000,
                        5 => 500000,
                    ],
                    'extra_adult' => [
                        0,
                    ],
                    'extra_child' => [
                        0,
                    ],
                    'extra_adult_rate' => [
                        100000,
                    ],
                    'extra_child_rate' => [
                        50000,
                    ],
                    'min_rate' => [
                        700000,
                    ],
                    'rate_detail' => [
                        [
                            $o[1],
                            $o[3],
                        ],
                    ],
                    'id' => [
                        1 => '54528d0a-407a-4bb4-8026-bd338ea81a83',
                        'a1ba606b-4310-47f8-b94b-fd24a6049ea9',
                        'ba1d81bb-5e0e-4ceb-bce6-3ce5cdebae99',
                        '3603288e-ed2d-4d72-a9af-8d80df1ae663',
                        'e6bc500d-697c-45f3-a233-e2358db511ab',
                        '6b3ec723-5da9-4ceb-bf6c-85f2cd65b172',
                    ],
                    'property_product' => [
                        1 => $o[2],
                        3 => $o[4],
                        5 => $o[6],
                    ],
                    'remark' => [
                        1 => 'Room Charges',
                        'This Product create default by system',
                        'Breakfasts',
                        'This Product create default by system',
                        6 => 'this test product package',
                    ],
                    'name' => [
                        2 => 'Room Charges',
                        4 => 'Breakfasts',
                        6 => 'Honeymoon Package',
                    ],
                    'slug' => [
                        2 => 'room-charges',
                        4 => 'breakfasts',
                    ],
                    'sell_amount' => [
                        2 => 0,
                        4 => 0,
                        6 => 500000,
                    ],
                    'cost_amount' => [
                        2 => 0,
                        4 => 0,
                        6 => 300000,
                    ],
                    'qty' => [
                        5 => 1,
                    ],
                    'unit_rate' => [
                        5 => 500000,
                    ],
                    'add_remark' => [
                        5 => null,
                    ],
                ],
            ],
            [
                'property_id' => 'corporis',
                'booking_id' => 'repellendus',
                'booking_room_id' => 'vero',
                'rate_plan_id' => 'sint',
                'room_rate_daily' => [
                    $o[0],
                ],
                'room_rate_inclusion' => [
                    $o[5],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/roomrate/calculate

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: corporis

booking_id   string     

uuid of Booking. Example: repellendus

booking_room_id   string     

uuid of Booking Room ID. Example: vero

rate_plan_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: sint

room_rate_daily   string[]     

detail Room rate Daily.

room_rate_inclusion   string[]     

detail Room Rate Inclusion.

Update Booking Room Rate

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/roomrate/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"esse\",
    \"booking_id\": \"facilis\",
    \"booking_room_id\": \"sint\",
    \"rate_plan_id\": \"ut\",
    \"room_rate_daily\": [
        {
            \"tax_and_service_id\": \"99f5c5f5-4bdd-449f-950c-15ec32322a7d\",
            \"is_open_rate\": true,
            \"rate_date\": \"2025-02-26\",
            \"rate\": 1000000,
            \"extra_adult\": 0,
            \"extra_child\": 0,
            \"extra_adult_rate\": 100000,
            \"extra_child_rate\": 50000,
            \"min_rate\": 700000,
            \"rate_detail\": [
                {
                    \"id\": \"54528d0a-407a-4bb4-8026-bd338ea81a83\",
                    \"property_product\": {
                        \"id\": \"a1ba606b-4310-47f8-b94b-fd24a6049ea9\",
                        \"name\": \"Room Charges\",
                        \"slug\": \"room-charges\",
                        \"remark\": \"This Product create default by system\",
                        \"sell_amount\": 0,
                        \"cost_amount\": 0
                    },
                    \"remark\": \"Room Charges\",
                    \"rate\": 300000
                },
                {
                    \"id\": \"ba1d81bb-5e0e-4ceb-bce6-3ce5cdebae99\",
                    \"property_product\": {
                        \"id\": \"3603288e-ed2d-4d72-a9af-8d80df1ae663\",
                        \"name\": \"Breakfasts\",
                        \"slug\": \"breakfasts\",
                        \"remark\": \"This Product create default by system\",
                        \"sell_amount\": 0,
                        \"cost_amount\": 0
                    },
                    \"remark\": \"Breakfasts\",
                    \"rate\": 200000
                }
            ]
        }
    ],
    \"room_rate_inclusion\": [
        {
            \"id\": \"e6bc500d-697c-45f3-a233-e2358db511ab\",
            \"property_product\": {
                \"id\": \"6b3ec723-5da9-4ceb-bf6c-85f2cd65b172\",
                \"name\": \"Honeymoon Package\",
                \"remark\": \"this test product package\",
                \"sell_amount\": 500000,
                \"cost_amount\": 300000
            },
            \"qty\": 1,
            \"unit_rate\": 500000,
            \"rate\": 500000,
            \"add_remark\": null
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/booking/roomrate/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "esse",
    "booking_id": "facilis",
    "booking_room_id": "sint",
    "rate_plan_id": "ut",
    "room_rate_daily": [
        {
            "tax_and_service_id": "99f5c5f5-4bdd-449f-950c-15ec32322a7d",
            "is_open_rate": true,
            "rate_date": "2025-02-26",
            "rate": 1000000,
            "extra_adult": 0,
            "extra_child": 0,
            "extra_adult_rate": 100000,
            "extra_child_rate": 50000,
            "min_rate": 700000,
            "rate_detail": [
                {
                    "id": "54528d0a-407a-4bb4-8026-bd338ea81a83",
                    "property_product": {
                        "id": "a1ba606b-4310-47f8-b94b-fd24a6049ea9",
                        "name": "Room Charges",
                        "slug": "room-charges",
                        "remark": "This Product create default by system",
                        "sell_amount": 0,
                        "cost_amount": 0
                    },
                    "remark": "Room Charges",
                    "rate": 300000
                },
                {
                    "id": "ba1d81bb-5e0e-4ceb-bce6-3ce5cdebae99",
                    "property_product": {
                        "id": "3603288e-ed2d-4d72-a9af-8d80df1ae663",
                        "name": "Breakfasts",
                        "slug": "breakfasts",
                        "remark": "This Product create default by system",
                        "sell_amount": 0,
                        "cost_amount": 0
                    },
                    "remark": "Breakfasts",
                    "rate": 200000
                }
            ]
        }
    ],
    "room_rate_inclusion": [
        {
            "id": "e6bc500d-697c-45f3-a233-e2358db511ab",
            "property_product": {
                "id": "6b3ec723-5da9-4ceb-bf6c-85f2cd65b172",
                "name": "Honeymoon Package",
                "remark": "this test product package",
                "sell_amount": 500000,
                "cost_amount": 300000
            },
            "qty": 1,
            "unit_rate": 500000,
            "rate": 500000,
            "add_remark": null
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/roomrate/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
            ],
            null,
            [
                'stdClass' => [
                    'tax_and_service_id' => [
                        '99f5c5f5-4bdd-449f-950c-15ec32322a7d',
                    ],
                    'is_open_rate' => [
                        true,
                    ],
                    'rate_date' => [
                        '2025-02-26',
                    ],
                    'rate' => [
                        1000000,
                        300000,
                        3 => 200000,
                        5 => 500000,
                    ],
                    'extra_adult' => [
                        0,
                    ],
                    'extra_child' => [
                        0,
                    ],
                    'extra_adult_rate' => [
                        100000,
                    ],
                    'extra_child_rate' => [
                        50000,
                    ],
                    'min_rate' => [
                        700000,
                    ],
                    'rate_detail' => [
                        [
                            $o[1],
                            $o[3],
                        ],
                    ],
                    'id' => [
                        1 => '54528d0a-407a-4bb4-8026-bd338ea81a83',
                        'a1ba606b-4310-47f8-b94b-fd24a6049ea9',
                        'ba1d81bb-5e0e-4ceb-bce6-3ce5cdebae99',
                        '3603288e-ed2d-4d72-a9af-8d80df1ae663',
                        'e6bc500d-697c-45f3-a233-e2358db511ab',
                        '6b3ec723-5da9-4ceb-bf6c-85f2cd65b172',
                    ],
                    'property_product' => [
                        1 => $o[2],
                        3 => $o[4],
                        5 => $o[6],
                    ],
                    'remark' => [
                        1 => 'Room Charges',
                        'This Product create default by system',
                        'Breakfasts',
                        'This Product create default by system',
                        6 => 'this test product package',
                    ],
                    'name' => [
                        2 => 'Room Charges',
                        4 => 'Breakfasts',
                        6 => 'Honeymoon Package',
                    ],
                    'slug' => [
                        2 => 'room-charges',
                        4 => 'breakfasts',
                    ],
                    'sell_amount' => [
                        2 => 0,
                        4 => 0,
                        6 => 500000,
                    ],
                    'cost_amount' => [
                        2 => 0,
                        4 => 0,
                        6 => 300000,
                    ],
                    'qty' => [
                        5 => 1,
                    ],
                    'unit_rate' => [
                        5 => 500000,
                    ],
                    'add_remark' => [
                        5 => null,
                    ],
                ],
            ],
            [
                'property_id' => 'esse',
                'booking_id' => 'facilis',
                'booking_room_id' => 'sint',
                'rate_plan_id' => 'ut',
                'room_rate_daily' => [
                    $o[0],
                ],
                'room_rate_inclusion' => [
                    $o[5],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Booking Room Rate",
    "data": {
        "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
        "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
        "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
        "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
        "arival": "2024-09-23",
        "depature": "2024-09-26",
        "rate_plan_default": {
            "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
            "name": "Room And Breakfast Rate"
        },
        "tax_and_service_default": {
            "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
            "name": "Room Rate Tax 11 and Service 10"
        },
        "rate_list": [
            {
                "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "rate_date": "2024-09-23",
                "rate": 250000
            },
            {
                "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "rate_date": "2024-09-24",
                "rate": 250000
            },
            {
                "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "rate_date": "2024-09-25",
                "rate": 250000
            }
        ],
        "total_amount": 607493.8500000001,
        "total_service": 68181.81,
        "total_tax": 74324.31,
        "total_rate": 0,
        "currency": {
            "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
            "name": "Indonesian rupiah",
            "code": "IDR",
            "symbol": "Rp"
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/roomrate/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: esse

booking_id   string     

uuid of Booking. Example: facilis

booking_room_id   string     

uuid of Booking Room ID. Example: sint

rate_plan_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: ut

room_rate_daily   string[]     

detail Room rate Daily.

room_rate_inclusion   string[]     

detail Room Rate Inclusion.

Booking Voucher

Detail Data

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/voucher-detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"booking_token_key\": \"rem\",
    \"is_test_detail_voucher\": true
}"
const url = new URL(
    "http://localhost/api/v1/booking/voucher-detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "booking_token_key": "rem",
    "is_test_detail_voucher": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/booking/voucher-detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_token_key' => 'rem',
            'is_test_detail_voucher' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"Url Target on Frontend":https://(domain frontend)/booking/voucher/(voucher token data)}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/booking/voucher-detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

booking_token_key   string     

token of Booking Voucher. Example: rem

is_test_detail_voucher   boolean  optional    

if you want get testing booking voucher you could set this with true. Example: true

CM - Activity Log

datatable Activity Log Channel Manager list

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/activity-logs/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"cm_active_list_id\": \"architecto\",
    \"activity_log_id\": \"in\",
    \"status\": \"error\",
    \"page_number\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/activity-logs/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cm_active_list_id": "architecto",
    "activity_log_id": "in",
    "status": "error",
    "page_number": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/activity-logs/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'cm_active_list_id' => 'architecto',
            'activity_log_id' => 'in',
            'status' => 'error',
            'page_number' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Booking Data",
    "data": {
        "item": [
            {
                "booking_id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217",
                "booking_no": "20250324/HOTELDUMMY/0000000005",
                "booking_reference": null,
                "booking_by": "Mr. Anton Poernomo",
                "total_nights": 3,
                "total_adults": 2,
                "total_childrens": 0,
                "user_created": "Agus Bawa",
                "user_updated": null,
                "created_at": "2025-03-24T04:07:46.000000Z",
                "updated_at": "2025-03-24T04:07:46.000000Z",
                "status": {
                    "name": "In Hold",
                    "fg_color": "#000000",
                    "bg_color": "#ffc107"
                },
                "hold_date": "2025-03-24",
                "list_room": [
                    {
                        "id": "5caf7ef6-f0b1-45ab-9284-943b3016a64d",
                        "room_type": "Standard",
                        "room": "103",
                        "guest_in_room": "Mr. Anton Poernomo",
                        "guest_status_in_room": "No Status",
                        "arival": "2025-03-25",
                        "depature": "2025-03-28",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ],
                "booking_function": {
                    "cancel": null,
                    "confirm": {
                        "status": true,
                        "id": "ad430d5a-a2f1-4927-bb0a-926f00ebf8b6"
                    },
                    "update": {
                        "status": true,
                        "id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217"
                    }
                }
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 1,
            "total_item": 1,
            "total_item_current_page": 1
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/activity-logs/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

cm_active_list_id   string     

uuid of Cm Active List Example: architecto

activity_log_id   string     

uuid of Cm Activity Log Example: in

status   string  optional    

The language. Example: error

Must be one of:
  • debug
  • info
  • notice
  • warning
  • error
  • critical
  • alert
  • emergency
page_number   string  optional    

number of page Example: et

Option Activity Log Channel Manager list

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/activity-logs/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"cm_list\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/activity-logs/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "cm_list"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/activity-logs/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'cm_list',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/activity-logs/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: cm_list

Must be one of:
  • cm_list

CM - Agent Map

Add / Update Agent Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/agent/property/map" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"eveniet\",
    \"property_agent_list_id\": \"aspernatur\",
    \"cm_ota_list_id\": \"quasi\",
    \"map_id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/agent/property/map"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "eveniet",
    "property_agent_list_id": "aspernatur",
    "cm_ota_list_id": "quasi",
    "map_id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/agent/property/map';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'eveniet',
            'property_agent_list_id' => 'aspernatur',
            'cm_ota_list_id' => 'quasi',
            'map_id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/agent/property/map

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

UUID of Property Example: eveniet

property_agent_list_id   string     

UUID of Property Agent List Example: aspernatur

cm_ota_list_id   string     

UUID of CM OTA List Example: quasi

map_id   string  optional    

if need uuid for update Agent Mapping Channel Manager Input . Example: '********-****-****-****-************'

Agent Maping Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/cm/agent/property/map/detail/d50abb74-7612-3722-a6cf-51b97d30eccd" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/agent/property/map/detail/d50abb74-7612-3722-a6cf-51b97d30eccd"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/agent/property/map/detail/d50abb74-7612-3722-a6cf-51b97d30eccd';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"message":"Success get Feature Detail","data":{"id":"e1679215-52d3-49b2-b369-09e1496f759a","name":"System Features","category"{"id":"796b8a28-e184-49e8-be8c-19fe898e0439","name":"System Setup"}}}
 

Request   

GET api/v1/cm/agent/property/map/detail/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Agent Maping. Example: d50abb74-7612-3722-a6cf-51b97d30eccd

datatable Property Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/agent/property/map/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptas\",
    \"property_agent_list_id\": \"qui\",
    \"cm_ota_list_id\": \"in\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/agent/property/map/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptas",
    "property_agent_list_id": "qui",
    "cm_ota_list_id": "in"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/agent/property/map/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptas',
            'property_agent_list_id' => 'qui',
            'cm_ota_list_id' => 'in',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Booking Data",
    "data": {
        "item": [
            {
                "booking_id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217",
                "booking_no": "20250324/HOTELDUMMY/0000000005",
                "booking_reference": null,
                "booking_by": "Mr. Anton Poernomo",
                "total_nights": 3,
                "total_adults": 2,
                "total_childrens": 0,
                "user_created": "Agus Bawa",
                "user_updated": null,
                "created_at": "2025-03-24T04:07:46.000000Z",
                "updated_at": "2025-03-24T04:07:46.000000Z",
                "status": {
                    "name": "In Hold",
                    "fg_color": "#000000",
                    "bg_color": "#ffc107"
                },
                "hold_date": "2025-03-24",
                "list_room": [
                    {
                        "id": "5caf7ef6-f0b1-45ab-9284-943b3016a64d",
                        "room_type": "Standard",
                        "room": "103",
                        "guest_in_room": "Mr. Anton Poernomo",
                        "guest_status_in_room": "No Status",
                        "arival": "2025-03-25",
                        "depature": "2025-03-28",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ],
                "booking_function": {
                    "cancel": null,
                    "confirm": {
                        "status": true,
                        "id": "ad430d5a-a2f1-4927-bb0a-926f00ebf8b6"
                    },
                    "update": {
                        "status": true,
                        "id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217"
                    }
                }
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 1,
            "total_item": 1,
            "total_item_current_page": 1
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/agent/property/map/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: voluptas

property_agent_list_id   string     

uuid of Property Agent List Example: qui

cm_ota_list_id   string     

uuid of Cm OTA List Example: in

Option Agent Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/agent/property/map/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"eos\",
    \"mode\": \"property_agent_list\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/agent/property/map/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "eos",
    "mode": "property_agent_list"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/agent/property/map/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'eos',
            'mode' => 'property_agent_list',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/agent/property/map/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: eos

mode   string  optional    

The language. Example: property_agent_list

Must be one of:
  • property_agent_list
  • cm_ota_list

Remove Agent Mapping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/agent/property/map/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"map_id\": \"excepturi\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/agent/property/map/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "map_id": "excepturi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/agent/property/map/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'map_id' => 'excepturi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Agent Mapping",
    "data": []
}
 

Request   

POST api/v1/cm/agent/property/map/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

map_id   string     

uuid of Agent Mapping Example: excepturi

CM - Availability Update

Datatables update log

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/availability/update/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"enim\",
    \"room_type_id\": \"ut\",
    \"is_multiple_request\": false,
    \"status\": 12,
    \"filter_by\": \"from\",
    \"search_date_from\": \"fuga\",
    \"search_date_to\": \"quisquam\",
    \"page_no\": 14
}"
const url = new URL(
    "http://localhost/api/v1/cm/availability/update/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "enim",
    "room_type_id": "ut",
    "is_multiple_request": false,
    "status": 12,
    "filter_by": "from",
    "search_date_from": "fuga",
    "search_date_to": "quisquam",
    "page_no": 14
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/availability/update/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'enim',
            'room_type_id' => 'ut',
            'is_multiple_request' => false,
            'status' => 12,
            'filter_by' => 'from',
            'search_date_from' => 'fuga',
            'search_date_to' => 'quisquam',
            'page_no' => 14,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/availability/update/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: enim

room_type_id   string  optional    

optional uuid of Room Type Property if want filter by room Type Example: ut

is_multiple_request   boolean  optional    

this for get multiple request when not set room type and rate plan Example: false

status   integer  optional    

with value 1: inprogrees, 2: Success, 3: Errors Example: 12

filter_by   string  optional    

search by. Example: from

Must be one of:
  • from
  • to
search_date_from   string  optional    

with format date Y-m-d Example: fuga

search_date_to   string  optional    

with format date Y-m-d Example: quisquam

page_no   integer  optional    

number of pagination Example: 14

Option Update

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/availability/update/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"ut\",
    \"mode\": \"room_type_list\",
    \"room_type_id\": \"sit\",
    \"room_type_list\": [
        \"similique\"
    ],
    \"date_from\": \"earum\",
    \"date_to\": \"velit\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/availability/update/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "ut",
    "mode": "room_type_list",
    "room_type_id": "sit",
    "room_type_list": [
        "similique"
    ],
    "date_from": "earum",
    "date_to": "velit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/availability/update/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'ut',
            'mode' => 'room_type_list',
            'room_type_id' => 'sit',
            'room_type_list' => [
                'similique',
            ],
            'date_from' => 'earum',
            'date_to' => 'velit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/availability/update/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: ut

mode   string  optional    

The language. Example: room_type_list

Must be one of:
  • room_type_list
  • availability_list
  • availability_multi_list
room_type_id   string     

uuid of Room Type Property Example: sit

room_type_list   string[]     

list of room type property example: [{"room_type_id":"uuid","date_from":"Y-m-d","date_to":"Y-m-d"}]

date_from   string  optional    

with format date Y-m-d, this use when mode availability_list Example: earum

date_to   string  optional    

with format date Y-m-d, this use when mode availability_list Example: velit

Availability Update Request

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/availability/update/sync-request" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"libero\",
    \"room_type_id\": \"id\",
    \"date_request_list\": null
}"
const url = new URL(
    "http://localhost/api/v1/cm/availability/update/sync-request"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "libero",
    "room_type_id": "id",
    "date_request_list": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/availability/update/sync-request';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'libero',
            'room_type_id' => 'id',
            'date_request_list' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/availability/update/sync-request

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: libero

room_type_id   string     

uuid of Room Type Property Example: id

date_request_list   string[]  optional    

date avilable request.

Push Sync Multi Availability Update Request

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/availability/update/multi-sync-request" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"eos\",
    \"multi_sync_list\": [
        {
            \"room_type_id\": \"uuid\",
            \"rate_plan_id\": \"uuid\"
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/cm/availability/update/multi-sync-request"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "eos",
    "multi_sync_list": [
        {
            "room_type_id": "uuid",
            "rate_plan_id": "uuid"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/availability/update/multi-sync-request';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
            ],
            null,
            [
                'stdClass' => [
                    'room_type_id' => [
                        'uuid',
                    ],
                    'rate_plan_id' => [
                        'uuid',
                    ],
                ],
            ],
            [
                'property_id' => 'eos',
                'multi_sync_list' => [
                    $o[0],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/availability/update/multi-sync-request

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: eos

multi_sync_list   string[]     

list of Rate Plan Property.

Push Sync Availability Update Request

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/availability/update/push-sync-request" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"repellendus\",
    \"room_type_id\": [
        \"nihil\"
    ],
    \"date_start\": \"iusto\",
    \"date_end\": \"hic\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/availability/update/push-sync-request"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "repellendus",
    "room_type_id": [
        "nihil"
    ],
    "date_start": "iusto",
    "date_end": "hic"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/availability/update/push-sync-request';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'repellendus',
            'room_type_id' => [
                'nihil',
            ],
            'date_start' => 'iusto',
            'date_end' => 'hic',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/availability/update/push-sync-request

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: repellendus

room_type_id   string[]     

uuid of Room Type Property

date_start   string     

with format date Y-m-d Example: iusto

date_end   string     

with format date Y-m-d Example: hic

Datatables Push Sync Log

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/availability/update/push-sync/logs" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"sit\",
    \"status\": \"inprogress\",
    \"page_no\": 9
}"
const url = new URL(
    "http://localhost/api/v1/cm/availability/update/push-sync/logs"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "sit",
    "status": "inprogress",
    "page_no": 9
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/availability/update/push-sync/logs';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'sit',
            'status' => 'inprogress',
            'page_no' => 9,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/availability/update/push-sync/logs

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: sit

status   string     

with value Example: inprogress

Must be one of:
  • inprogress
  • done
page_no   integer  optional    

number of pagination Example: 9

CM - Booking List

Datatables booking list

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/booking-list/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"aut\",
    \"ota_reservation_code\": \"iure\",
    \"filter_by\": \"arrival\",
    \"search_date_from\": \"sunt\",
    \"search_date_to\": \"neque\",
    \"page_no\": 8
}"
const url = new URL(
    "http://localhost/api/v1/cm/booking-list/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "aut",
    "ota_reservation_code": "iure",
    "filter_by": "arrival",
    "search_date_from": "sunt",
    "search_date_to": "neque",
    "page_no": 8
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/booking-list/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'aut',
            'ota_reservation_code' => 'iure',
            'filter_by' => 'arrival',
            'search_date_from' => 'sunt',
            'search_date_to' => 'neque',
            'page_no' => 8,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/booking-list/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: aut

ota_reservation_code   string  optional    

optional reservation code from OTA Example: iure

filter_by   string  optional    

search by. Example: arrival

Must be one of:
  • arrival
  • departure
  • booking_date
search_date_from   string  optional    

with format date Y-m-d Example: sunt

search_date_to   string  optional    

with format date Y-m-d Example: neque

page_no   integer  optional    

number of pagination Example: 8

CM - Booking Receive

List Booking Sync Error (failed sync from Channel Manager)

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/booking-sync-error/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"search\": \"fugit\",
    \"page_number\": \"quo\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/booking-sync-error/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "search": "fugit",
    "page_number": "quo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/booking-sync-error/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'search' => 'fugit',
            'page_number' => 'quo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Booking Sync Error Data",
    "data": {
        "item": [
            {
                "distribution_id": "adf55f31-b769-48b0-bb6f-bed1daa5d0c4",
                "booking_id": "7342b731-0000-0000-0000-000000000000",
                "cm_booking_id": "b9b036da-0000-0000-0000-000000000000",
                "destination_system": "smartloka",
                "distribution_status": "failed",
                "http_status_code": 422,
                "attempt_count": 3,
                "max_attempts": 5,
                "last_error": "Property Not mapping",
                "failed_at": "2026-06-01T00:00:00.000000Z",
                "next_retry_at": null,
                "request_payload": {
                    "cm_booking_id": "b9b036da-0000-0000-0000-000000000000",
                    "cm_property_id": "prop-123"
                },
                "response_payload": null,
                "sent_at": "2026-06-01T00:00:00.000000Z",
                "completed_at": null,
                "created_at": "2026-06-01T00:00:00.000000Z",
                "updated_at": "2026-06-01T00:00:00.000000Z",
                "receive_id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
                "receive_sm_booking_id": null,
                "receive_is_sync": false,
                "receive_is_error": true,
                "receive_error_remark": {
                    "message": "Property Not maping or Not have active maping"
                },
                "receive_detail_booking": {},
                "receive_created_at": "2026-06-01T00:00:00.000000Z",
                "receive_updated_at": "2026-06-01T00:00:00.000000Z"
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 1,
            "total_item": 1,
            "total_item_current_page": 1
        }
    }
}
 

Example response (400):


{
    "message": "Channel Manager for this Property is not active",
    "data": []
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/booking-sync-error/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

UUID of Property Example: et

search   string  optional    

Pencarian berdasarkan Booking ID dari Channel Manager Example: fugit

page_number   numeric  optional    

number of page Example: quo

Retry Sync Booking from Channel Manager

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/booking-sync-error/retry" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"cm_booking_id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/booking-sync-error/retry"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cm_booking_id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/booking-sync-error/retry';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'cm_booking_id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (202):


{
    "message": "Distributions queued for retry successfully.",
    "data": {
        "status": "queued",
        "uuid": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
        "queued_count": 1,
        "distribution_uuids": [
            "adf55f31-b769-48b0-bb6f-bed1daa5d0c4"
        ]
    }
}
 

Example response (400):


{
    "message": "No eligible distributions found to retry.",
    "data": []
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (500):


{
    "message": "Lokaroute access config not set",
    "data": []
}
 

Request   

POST api/v1/cm/booking-sync-error/retry

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

cm_booking_id   string     

Booking ID from Channel Manager (cm_booking_id) Example: et

CM - Country Map

Maping Country Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/cm/country/map/details/4e680b9a-78b0-376b-9637-78c050da483a" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/country/map/details/4e680b9a-78b0-376b-9637-78c050da483a"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/country/map/details/4e680b9a-78b0-376b-9637-78c050da483a';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"message":"Success get Feature Detail","data":{"id":"e1679215-52d3-49b2-b369-09e1496f759a","name":"System Features","category"{"id":"796b8a28-e184-49e8-be8c-19fe898e0439","name":"System Setup"}}}
 

Request   

GET api/v1/cm/country/map/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Country. Example: 4e680b9a-78b0-376b-9637-78c050da483a

Add / Update Country Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/country/map" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"country_title\": \"eligendi\",
    \"country_id\": \"accusantium\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/country/map"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "country_title": "eligendi",
    "country_id": "accusantium",
    "id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/country/map';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'country_title' => 'eligendi',
            'country_id' => 'accusantium',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/country/map

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

country_title   string     

the name of country Maping. Example: eligendi

country_id   string     

UUID of Country Example: accusantium

id   string  optional    

if need uuid for update coutry title of country maping . Example: '********-****-****-****-************'

Remove Country Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/country/map/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"voluptatum\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/country/map/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "voluptatum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/country/map/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'voluptatum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Country",
    "data": []
}
 

Request   

POST api/v1/cm/country/map/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Country Example: voluptatum

Option Country Maping Smint Input

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/country/map/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"country_list\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/country/map/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "country_list"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/country/map/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'country_list',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/country/map/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: country_list

Must be one of:
  • country_list

CM - Price And Restriction Update

Datatables Price And Restriction Update Smint Log

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/price-restriction/update/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"veniam\",
    \"room_type_id\": \"ut\",
    \"rate_plan_id\": \"placeat\",
    \"status\": 10,
    \"filter_by\": \"from\",
    \"is_multiple_request\": false,
    \"search_date_from\": \"eos\",
    \"search_date_to\": \"hic\",
    \"page_no\": 2
}"
const url = new URL(
    "http://localhost/api/v1/cm/price-restriction/update/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "veniam",
    "room_type_id": "ut",
    "rate_plan_id": "placeat",
    "status": 10,
    "filter_by": "from",
    "is_multiple_request": false,
    "search_date_from": "eos",
    "search_date_to": "hic",
    "page_no": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/price-restriction/update/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'veniam',
            'room_type_id' => 'ut',
            'rate_plan_id' => 'placeat',
            'status' => 10,
            'filter_by' => 'from',
            'is_multiple_request' => false,
            'search_date_from' => 'eos',
            'search_date_to' => 'hic',
            'page_no' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/price-restriction/update/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: veniam

room_type_id   string  optional    

optional uuid of Room Type Property if want filter by room Type Example: ut

rate_plan_id   string  optional    

optional uuid of Rate Plan Property if want filter by Rate Plan Example: placeat

status   integer  optional    

with value 1: inprogrees, 2: Success, 3: Errors Example: 10

filter_by   string  optional    

search by. Example: from

Must be one of:
  • from
  • to
is_multiple_request   boolean  optional    

this for get multiple request when not set room type and rate plan Example: false

search_date_from   string  optional    

with format date Y-m-d Example: eos

search_date_to   string  optional    

with format date Y-m-d Example: hic

page_no   integer  optional    

number of pagination Example: 2

Option Price And Restriction

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/price-restriction/update/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nam\",
    \"mode\": \"room_type_list\",
    \"room_type_id\": \"reprehenderit\",
    \"rate_plan_id\": \"et\",
    \"room_type_and_rate_plan_list\": [
        \"in\"
    ],
    \"date_from\": \"architecto\",
    \"date_to\": \"quo\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/price-restriction/update/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nam",
    "mode": "room_type_list",
    "room_type_id": "reprehenderit",
    "rate_plan_id": "et",
    "room_type_and_rate_plan_list": [
        "in"
    ],
    "date_from": "architecto",
    "date_to": "quo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/price-restriction/update/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nam',
            'mode' => 'room_type_list',
            'room_type_id' => 'reprehenderit',
            'rate_plan_id' => 'et',
            'room_type_and_rate_plan_list' => [
                'in',
            ],
            'date_from' => 'architecto',
            'date_to' => 'quo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/price-restriction/update/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nam

mode   string  optional    

The language. Example: room_type_list

Must be one of:
  • room_type_list
  • rate_plan_list
  • price_restriction_list
  • price_restriction_multi_list
  • room_type_and_rate_plan_list
room_type_id   string     

uuid of Room Type Property Example: reprehenderit

rate_plan_id   string     

uuid of Rate Plan Property Example: et

room_type_and_rate_plan_list   string[]     

list of room type and rate plan property example: [{"room_type_id":"uuid","rate_plan_id":"uuid","date_from":"Y-m-d","date_to":"Y-m-d"}]

date_from   string  optional    

with format date Y-m-d, this use when mode availability_list Example: architecto

date_to   string  optional    

with format date Y-m-d, this use when mode availability_list Example: quo

Sync Request

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/price-restriction/update/sync-request" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"aspernatur\",
    \"room_type_id\": \"sapiente\",
    \"rate_plan_id\": \"dolores\",
    \"date_request_list\": null
}"
const url = new URL(
    "http://localhost/api/v1/cm/price-restriction/update/sync-request"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "aspernatur",
    "room_type_id": "sapiente",
    "rate_plan_id": "dolores",
    "date_request_list": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/price-restriction/update/sync-request';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'aspernatur',
            'room_type_id' => 'sapiente',
            'rate_plan_id' => 'dolores',
            'date_request_list' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/price-restriction/update/sync-request

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: aspernatur

room_type_id   string     

uuid of Room Type Property Example: sapiente

rate_plan_id   string     

uuid of Rate Plan Property Example: dolores

date_request_list   string[]  optional    

date avilable request.

Multi Sync Request

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/price-restriction/update/multi-sync-request" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolorem\",
    \"multi_sync_list\": [
        {
            \"room_type_id\": \"339519d3-9264-42f3-9e09-37a6fa18a91a\",
            \"room_type_name\": \"Twin Room\",
            \"rate_plan_id\": \"a5d4698b-4515-4b33-bcee-1425d24b12c2\",
            \"rate_plan_name\": \"Best Available Rate\",
            \"date_from\": \"2026-11-01\",
            \"date_to\": \"2026-11-10\",
            \"data_list\": [
                {
                    \"date\": \"2026-11-01\",
                    \"rate\": 110
                },
                {
                    \"date\": \"2026-11-02\",
                    \"rate\": 110,
                    \"stop_sell\": true
                },
                {
                    \"date\": \"2026-11-03\",
                    \"rate\": 110,
                    \"stop_sell\": true
                },
                {
                    \"date\": \"2026-11-04\",
                    \"rate\": 110
                },
                {
                    \"date\": \"2026-11-05\",
                    \"rate\": 110
                },
                {
                    \"date\": \"2026-11-06\",
                    \"rate\": 110,
                    \"stop_sell\": false
                },
                {
                    \"date\": \"2026-11-07\",
                    \"rate\": 110
                },
                {
                    \"date\": \"2026-11-08\",
                    \"rate\": 110
                },
                {
                    \"date\": \"2026-11-09\",
                    \"rate\": 110
                },
                {
                    \"date\": \"2026-11-10\",
                    \"rate\": 110
                }
            ]
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/cm/price-restriction/update/multi-sync-request"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolorem",
    "multi_sync_list": [
        {
            "room_type_id": "339519d3-9264-42f3-9e09-37a6fa18a91a",
            "room_type_name": "Twin Room",
            "rate_plan_id": "a5d4698b-4515-4b33-bcee-1425d24b12c2",
            "rate_plan_name": "Best Available Rate",
            "date_from": "2026-11-01",
            "date_to": "2026-11-10",
            "data_list": [
                {
                    "date": "2026-11-01",
                    "rate": 110
                },
                {
                    "date": "2026-11-02",
                    "rate": 110,
                    "stop_sell": true
                },
                {
                    "date": "2026-11-03",
                    "rate": 110,
                    "stop_sell": true
                },
                {
                    "date": "2026-11-04",
                    "rate": 110
                },
                {
                    "date": "2026-11-05",
                    "rate": 110
                },
                {
                    "date": "2026-11-06",
                    "rate": 110,
                    "stop_sell": false
                },
                {
                    "date": "2026-11-07",
                    "rate": 110
                },
                {
                    "date": "2026-11-08",
                    "rate": 110
                },
                {
                    "date": "2026-11-09",
                    "rate": 110
                },
                {
                    "date": "2026-11-10",
                    "rate": 110
                }
            ]
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/price-restriction/update/multi-sync-request';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
            ],
            null,
            [
                'stdClass' => [
                    'room_type_id' => [
                        '339519d3-9264-42f3-9e09-37a6fa18a91a',
                    ],
                    'room_type_name' => [
                        'Twin Room',
                    ],
                    'rate_plan_id' => [
                        'a5d4698b-4515-4b33-bcee-1425d24b12c2',
                    ],
                    'rate_plan_name' => [
                        'Best Available Rate',
                    ],
                    'date_from' => [
                        '2026-11-01',
                    ],
                    'date_to' => [
                        '2026-11-10',
                    ],
                    'data_list' => [
                        [
                            $o[1],
                            $o[2],
                            $o[3],
                            $o[4],
                            $o[5],
                            $o[6],
                            $o[7],
                            $o[8],
                            $o[9],
                            $o[10],
                        ],
                    ],
                    'date' => [
                        1 => '2026-11-01',
                        '2026-11-02',
                        '2026-11-03',
                        '2026-11-04',
                        '2026-11-05',
                        '2026-11-06',
                        '2026-11-07',
                        '2026-11-08',
                        '2026-11-09',
                        '2026-11-10',
                    ],
                    'rate' => [
                        1 => 110,
                        110,
                        110,
                        110,
                        110,
                        110,
                        110,
                        110,
                        110,
                        110,
                    ],
                    'stop_sell' => [
                        2 => true,
                        true,
                        6 => false,
                    ],
                ],
            ],
            [
                'property_id' => 'dolorem',
                'multi_sync_list' => [
                    $o[0],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/price-restriction/update/multi-sync-request

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: dolorem

multi_sync_list   string[]     

list of Rate Plan Property.

Push Sync Request

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/price-restriction/update/push-sync-request" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"minus\",
    \"rate_plan_list\": [
        {
            \"room_type_id\": \"uuid\",
            \"rate_plan_id\": \"uuid\"
        }
    ],
    \"date_start\": \"rem\",
    \"date_end\": \"enim\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/price-restriction/update/push-sync-request"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "minus",
    "rate_plan_list": [
        {
            "room_type_id": "uuid",
            "rate_plan_id": "uuid"
        }
    ],
    "date_start": "rem",
    "date_end": "enim"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/price-restriction/update/push-sync-request';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (\Symfony\Component\VarExporter\Internal\Registry::$prototypes['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
            ],
            null,
            [
                'stdClass' => [
                    'room_type_id' => [
                        'uuid',
                    ],
                    'rate_plan_id' => [
                        'uuid',
                    ],
                ],
            ],
            [
                'property_id' => 'minus',
                'rate_plan_list' => [
                    $o[0],
                ],
                'date_start' => 'rem',
                'date_end' => 'enim',
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/price-restriction/update/push-sync-request

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: minus

rate_plan_list   string[]     

list of Rate Plan Property.

date_start   string     

with format date Y-m-d Example: rem

date_end   string     

with format date Y-m-d Example: enim

Datatables Push Sync Log

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/price-restriction/update/push-sync/logs" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"omnis\",
    \"status\": \"inprogress\",
    \"page_no\": 14
}"
const url = new URL(
    "http://localhost/api/v1/cm/price-restriction/update/push-sync/logs"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "omnis",
    "status": "inprogress",
    "page_no": 14
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/price-restriction/update/push-sync/logs';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'omnis',
            'status' => 'inprogress',
            'page_no' => 14,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/cm/price-restriction/update/push-sync/logs

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: omnis

status   string     

with value Example: inprogress

Must be one of:
  • inprogress
  • done
page_no   integer  optional    

number of pagination Example: 14

CM - Property Map

Add / Update Property Maping Channel Manager Input

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/property/map" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"cm_active_list_id\": \"eos\",
    \"property_id\": \"esse\",
    \"cm_property_id\": \"repudiandae\",
    \"cm_property_code\": \"aut\",
    \"cm_property_name\": \"non\",
    \"credentials\": \"quos\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/property/map"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cm_active_list_id": "eos",
    "property_id": "esse",
    "cm_property_id": "repudiandae",
    "cm_property_code": "aut",
    "cm_property_name": "non",
    "credentials": "quos",
    "id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/property/map';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'cm_active_list_id' => 'eos',
            'property_id' => 'esse',
            'cm_property_id' => 'repudiandae',
            'cm_property_code' => 'aut',
            'cm_property_name' => 'non',
            'credentials' => 'quos',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/property/map

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

cm_active_list_id   string     

UUID of Channel Manager Active List Example: eos

property_id   string     

UUID of Property Example: esse

cm_property_id   string     

ID of Property on Channel Manager Example: repudiandae

cm_property_code   string  optional    

optional Code of Property on Channel Manager Example: aut

cm_property_name   string  optional    

optional Name of Property on Channel Manager Example: non

credentials   string     

Credentials need of Property on Channel Manager Example: quos

id   string  optional    

if need uuid for update Property Mapping Channel Manager Input . Example: '********-****-****-****-************'

Property Maping Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/cm/property/map/detail/cfba95c5-63b1-3f50-99a6-56f3f5602390" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/property/map/detail/cfba95c5-63b1-3f50-99a6-56f3f5602390"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/property/map/detail/cfba95c5-63b1-3f50-99a6-56f3f5602390';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"message":"Success get Feature Detail","data":{"id":"e1679215-52d3-49b2-b369-09e1496f759a","name":"System Features","category"{"id":"796b8a28-e184-49e8-be8c-19fe898e0439","name":"System Setup"}}}
 

Request   

GET api/v1/cm/property/map/detail/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property Maping. Example: cfba95c5-63b1-3f50-99a6-56f3f5602390

datatable Property Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/property/map/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"a\",
    \"cm_active_list_id\": \"possimus\",
    \"cm_property_id\": \"quis\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/property/map/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "a",
    "cm_active_list_id": "possimus",
    "cm_property_id": "quis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/property/map/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'a',
            'cm_active_list_id' => 'possimus',
            'cm_property_id' => 'quis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Booking Data",
    "data": {
        "item": [
            {
                "booking_id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217",
                "booking_no": "20250324/HOTELDUMMY/0000000005",
                "booking_reference": null,
                "booking_by": "Mr. Anton Poernomo",
                "total_nights": 3,
                "total_adults": 2,
                "total_childrens": 0,
                "user_created": "Agus Bawa",
                "user_updated": null,
                "created_at": "2025-03-24T04:07:46.000000Z",
                "updated_at": "2025-03-24T04:07:46.000000Z",
                "status": {
                    "name": "In Hold",
                    "fg_color": "#000000",
                    "bg_color": "#ffc107"
                },
                "hold_date": "2025-03-24",
                "list_room": [
                    {
                        "id": "5caf7ef6-f0b1-45ab-9284-943b3016a64d",
                        "room_type": "Standard",
                        "room": "103",
                        "guest_in_room": "Mr. Anton Poernomo",
                        "guest_status_in_room": "No Status",
                        "arival": "2025-03-25",
                        "depature": "2025-03-28",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ],
                "booking_function": {
                    "cancel": null,
                    "confirm": {
                        "status": true,
                        "id": "ad430d5a-a2f1-4927-bb0a-926f00ebf8b6"
                    },
                    "update": {
                        "status": true,
                        "id": "ebbe1188-5c63-444c-947f-3e1e1fa9e217"
                    }
                }
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 1,
            "total_item": 1,
            "total_item_current_page": 1
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/property/map/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: a

cm_active_list_id   string     

uuid of Cm Active List Example: possimus

cm_property_id   string     

uuid of Cm Property Example: quis

Option Property Maping Channel Manager Input

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/property/map/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"property_list\",
    \"cm_id\": \"commodi\",
    \"property_id\": \"qui\",
    \"credentials\": \"repellat\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/property/map/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "property_list",
    "cm_id": "commodi",
    "property_id": "qui",
    "credentials": "repellat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/property/map/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'property_list',
            'cm_id' => 'commodi',
            'property_id' => 'qui',
            'credentials' => 'repellat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/property/map/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: property_list

Must be one of:
  • cm_list
  • property_list
  • verify_cm
  • cm_property_list
cm_id   string  optional    

cm id this use when mode is verify_cm,cm_property_list Example: commodi

property_id   string  optional    

property id this use when mode is verify_cm,cm_property_list Example: qui

credentials   string  optional    

cnx user api key this use when mode is verify_cm,cm_property_list Example: repellat

Remove Property Maping Channel Manager Input

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/property/map/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"veniam\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/property/map/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "veniam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/property/map/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'veniam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Property Maping Channel Manager Input",
    "data": []
}
 

Request   

POST api/v1/cm/property/map/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property Maping Channel Manager Input Example: veniam

CM - Room Type and Rate Plan Mapping

Add / Update Property Maping Channel Manager Input

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/room-type-and-rate-plan/map" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"id\",
    \"room_type_and_rate_plan_list\": [
        \"in\"
    ]
}"
const url = new URL(
    "http://localhost/api/v1/cm/room-type-and-rate-plan/map"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "id",
    "room_type_and_rate_plan_list": [
        "in"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/room-type-and-rate-plan/map';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'id',
            'room_type_and_rate_plan_list' => [
                'in',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/cm/room-type-and-rate-plan/map

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

UUID of Property Example: id

room_type_and_rate_plan_list   string[]  optional    

list room type and rate plan will maping. example: [{"room_type_id":"024139d5-824d-4cbb-b591-f23e1c3b3201","room_type_name":"Twin Room","cm_room_type_id":null,"cm_room_type_name":null,"rate_plan_list":[{"rate_plan_id":"e1d50c5a-5a4f-43bb-a6bc-3e42c8016b12","rate_plan_name":"Best Available Rate","rate_plan_remark":"Best Available Rate","cm_rate_plan_id":null,"cm_rate_plan_name":null}]}]

Detail Maping Editor

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/room-type-and-rate-plan/map/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nisi\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/room-type-and-rate-plan/map/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nisi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/room-type-and-rate-plan/map/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nisi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Property Agent detail",
    "data": {
        "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
        "property": {
            "id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "name": "Hotel Dummy"
        },
        "agent_source_id": {
            "id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In"
        },
        "name": "Walk In",
        "address": null,
        "phone": null,
        "email": null,
        "website": null,
        "logo_path": null,
        "icon_path": null,
        "bg_color": null,
        "fg_color": null
    }
}
 

Request   

POST api/v1/cm/room-type-and-rate-plan/map/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   uuid     

this Property Example: nisi

Option Agent Maping

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/room-type-and-rate-plan/map/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"labore\",
    \"mode\": \"cm_room_type_list\",
    \"cm_room_type_id\": \"iste\"
}"
const url = new URL(
    "http://localhost/api/v1/cm/room-type-and-rate-plan/map/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "labore",
    "mode": "cm_room_type_list",
    "cm_room_type_id": "iste"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/cm/room-type-and-rate-plan/map/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'labore',
            'mode' => 'cm_room_type_list',
            'cm_room_type_id' => 'iste',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/cm/room-type-and-rate-plan/map/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: labore

mode   string  optional    

The language. Example: cm_room_type_list

Must be one of:
  • cm_room_type_list
  • cm_rate_plan_list
cm_room_type_id   string  optional    

optional this channel manager room type id Example: iste

Chart Of Account Default

COA Default List

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"query_search\": \"aliquam\",
    \"type_id\": \"qui\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "query_search": "aliquam",
    "type_id": "qui"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'query_search' => 'aliquam',
            'type_id' => 'qui',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 2,
    "recordsFiltered": 2,
    "data": [
        {
            "id": null,
            "name": "Full Chart Of Account",
            "total_account": 1274
        },
        {
            "id": null,
            "name": "Simple Chart Of Account",
            "total_account": 233
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"chart_of_account_default_templates\" where \"chart_of_account_default_templates\".\"deleted_at\" is null",
            "bindings": [],
            "time": 2.17
        },
        {
            "query": "select \"id\", \"name\" from \"chart_of_account_default_templates\" where \"chart_of_account_default_templates\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.31
        },
        {
            "query": "select * from \"chart_of_account_default_template_lists\" where \"chart_of_account_default_template_lists\".\"template_id\" = ? and \"chart_of_account_default_template_lists\".\"template_id\" is not null and \"chart_of_account_default_template_lists\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 4.58
        },
        {
            "query": "select * from \"chart_of_account_default_template_lists\" where \"chart_of_account_default_template_lists\".\"template_id\" = ? and \"chart_of_account_default_template_lists\".\"template_id\" is not null and \"chart_of_account_default_template_lists\".\"deleted_at\" is null",
            "bindings": [
                2
            ],
            "time": 1.03
        }
    ],
    "input": []
}
 

Request   

POST api/v1/master/chart-of-account-default/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

query_search   string     

name of coa finding Example: aliquam

type_id   string  optional    

uuid of COA type if want filter by type. Example: qui

Add / Update COA Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"coa_id\": \"vel\",
    \"parent_id\": \"dolorum\",
    \"type_id\": \"architecto\",
    \"department_id\": \"recusandae\",
    \"code\": \"tempore\",
    \"name\": \"est\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "coa_id": "vel",
    "parent_id": "dolorum",
    "type_id": "architecto",
    "department_id": "recusandae",
    "code": "tempore",
    "name": "est"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'coa_id' => 'vel',
            'parent_id' => 'dolorum',
            'type_id' => 'architecto',
            'department_id' => 'recusandae',
            'code' => 'tempore',
            'name' => 'est',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Chart Of Account Default Data",
    "data": {
        "id": "10889fad-a074-4c30-8b2c-ae4e1b81b209",
        "parent_id": "210b2362-d9f6-45e0-a25b-ead638df9b91",
        "code": "9999090000",
        "name": "test Chart Of Account Insert edit",
        "type": {
            "id": "0c02278f-ebee-49d2-9d1c-138af408a63f",
            "name": "REVENUE",
            "head_code": 1
        },
        "department": {
            "id": "134cdd02-f46d-4f0c-b273-2bd26a454356",
            "name": "FRONT OFFICE"
        }
    }
}
 

Request   

POST api/v1/master/chart-of-account-default/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

coa_id   string  optional    

uuid of Chart Of Account this required if update current data. Example: vel

parent_id   string  optional    

uuid of Chart Of Account required if coa is sub. Example: dolorum

type_id   string  optional    

uuid of COA type required if have coa type. Example: architecto

department_id   string  optional    

uuid of COA type required if have coa department. Example: recusandae

code   string     

Code COA Example: tempore

name   string     

Name COA Example: est

Remove COA Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"coa_id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "coa_id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'coa_id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/master/chart-of-account-default/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

coa_id   string     

uuid of COA Example: et

Option Input COA Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"parentcoa\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "parentcoa"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'parentcoa',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Parrent Chart Of Accounts Founds",
    "data": [
        {
            "key": "210b2362-d9f6-45e0-a25b-ead638df9b91",
            "label": "1101 - HOUSE BANK"
        },
        {
            "key": "4ca4727f-53b2-46b7-b075-d91d6e0b4cfe",
            "label": "1102 - BANK"
        },
        {
            "key": "8fc28675-351f-433a-a5db-5a1de3034372",
            "label": "1103 - CASH CLEARANCE"
        },
        {
            "key": "8830ca00-d308-4e6a-95d4-62ad01228e90",
            "label": "1200 - ACCOUNT RECEIVABLE"
        },
        {
            "key": "fd1c04d4-ff02-4dff-90aa-19af7117ba57",
            "label": "1202 - OTHER RECEIVABLE"
        },
        {
            "key": "b42ccf09-1d0e-41a3-8eab-21ae5d2e0f31",
            "label": "1205 - AFFILIATED COMP.RECEIVABLE"
        },
        {
            "key": "81646715-b856-468a-b043-139486a308ca",
            "label": "1206 - DEPOSIT AND ADVANCED"
        },
        {
            "key": "b2267586-3d5e-493b-8ab1-77a112e3e839",
            "label": "1300 - INVENTORY"
        },
        {
            "key": "4081e874-138d-458c-90cb-aa0393c3bd3b",
            "label": "1302 - PREPAID EXPENSES"
        },
        {
            "key": "803cb6c1-fce1-46b0-b17e-37c2de7d8b67",
            "label": "1500 - PROPERTY & EQUIPMENT"
        },
        {
            "key": "23b79ab7-6670-4bad-944a-94483d9bbc28",
            "label": "1503 - FURNITURE, FIXTURE & EQUIPMENT"
        },
        {
            "key": "fc6257ca-106a-4d9e-8a30-b7d0c2f6dab3",
            "label": "1505 - OPERATING EQUIPMENT"
        },
        {
            "key": "f6ee9426-57c4-4a73-a344-ec04dd5f68c2",
            "label": "1600 - FIXED ASSET LEASING"
        },
        {
            "key": "eff45872-f200-426a-8041-c11c064a7166",
            "label": "1700 - ACC. DEPRE PROPERTY & EQUIPMENT"
        },
        {
            "key": "5d020502-871e-4947-bc42-fe51ac519653",
            "label": "1701 - ACC. DEPRE FURNITURE, FIXTURE &"
        },
        {
            "key": "0b09c462-295b-434d-a5d2-9dadc6f239ee",
            "label": "1702 - ACC. DEPRE OPERATING EQUIPMENT"
        },
        {
            "key": "bcb9d228-589b-43a0-b6ed-59aa4568e95c",
            "label": "1703 - ACC. DEPRE FIXED ASSET LEASING"
        },
        {
            "key": "fc5c56af-55b9-4ed2-8bc2-f388e9001554",
            "label": "1800 - OTHER ASSET"
        },
        {
            "key": "06a1cbb6-6f5e-4cfd-80a1-207b580c4717",
            "label": "2100 - ACCOUNT PAYABLE"
        },
        {
            "key": "7a790a80-bd59-4e79-8869-ace6fa7a55e0",
            "label": "2200 - TAX PAYABLE"
        },
        {
            "key": "8c0fd310-cc35-4ace-94e2-deb37cc79aa2",
            "label": "2300 - ACCRUED EXPENSES"
        },
        {
            "key": "00a4706d-5d9e-4a08-ba6d-9caccf45bff0",
            "label": "2400 - GUEST DEPOSIT"
        },
        {
            "key": "23c40acd-12b8-4ba1-aab9-d054cd541b30",
            "label": "2500 - OTHER LIABILITIES"
        },
        {
            "key": "b647d91e-7061-4a12-af2f-6d6cc89a7139",
            "label": "2600 - AFFILIATED COMPANY PAYABLE"
        },
        {
            "key": "7d690279-16ba-4ab1-9903-8cb04e88030f",
            "label": "2700 - PROVISION"
        },
        {
            "key": "a5e8d2a9-9ce6-43db-8283-19b2f4068274",
            "label": "2800 - RESERVE"
        },
        {
            "key": "b5f2fac5-37ae-4e9b-bb6f-7fe3185bfd11",
            "label": "2900 - LONG TERM LIABILITIES"
        },
        {
            "key": "56c709ec-38ea-4def-8c96-5a5fd04946c2",
            "label": "3100 - CAPITAL"
        },
        {
            "key": "7e95b34b-f1e8-4f04-b23a-04e3f2be8187",
            "label": "3200 - RETAINED EARNING"
        },
        {
            "key": "5a5cb85b-1ad5-4da5-a291-f914204af921",
            "label": "4001 - ROOM REVENUE"
        },
        {
            "key": "5555087b-30be-4759-85f8-d8acd3220c05",
            "label": "4102 - RESTAURANT REVENUE"
        },
        {
            "key": "cd40bf4e-8bb0-4af0-a619-22fc8d08e952",
            "label": "4103 - POOL BAR REVENUE"
        },
        {
            "key": "d13274cb-3158-4389-b05e-200f4932e613",
            "label": "4104 - BANQUET REVENUE"
        },
        {
            "key": "1000d05d-6280-4dec-9e1f-3231b821dd96",
            "label": "4105 - ROOM SERVICE REVENUE"
        },
        {
            "key": "480b5176-37b9-4851-b6db-1da3c22a015c",
            "label": "4106 - MINI BAR"
        },
        {
            "key": "2c55fb76-5ea6-4d3a-8430-fa2bbcfd9869",
            "label": "4107 - TELEPHONE REVENUE"
        },
        {
            "key": "6e024e8d-8ead-4623-b9d1-9d3370320af5",
            "label": "4108 - BUSINESS CENTER REVENUE"
        },
        {
            "key": "601d1eec-00a2-4300-9ebf-517fce44cd39",
            "label": "4109 - LAUNDRY REVENUE"
        },
        {
            "key": "698a22e9-7e09-402a-9ddd-13e19140def3",
            "label": "4110 - SPA REVENUE"
        },
        {
            "key": "d25c9ab5-95f5-47d4-a47e-ba8147bb7053",
            "label": "4301 - MOD REVENUE"
        },
        {
            "key": "60a19460-3517-48e6-82cf-e6855fe276f8",
            "label": "4302 - OTHER INCOME"
        },
        {
            "key": "ee51d258-0c3e-4971-ac91-bca3dafb8537",
            "label": "5000 - COST OF RESTAURANT"
        },
        {
            "key": "17d2fd3c-55fa-4e59-8fc2-cba98b557be9",
            "label": "5101 - COST OF POOL BAR"
        },
        {
            "key": "8504db70-44d7-4e62-9510-1ffca276c4c2",
            "label": "5102 - COST OF BANQUET"
        },
        {
            "key": "d7e55854-cc2b-4d9a-a693-8c5ce9d65891",
            "label": "5103 - COST OF ROOM SERVICE"
        },
        {
            "key": "e1c8b321-ebd6-499d-9002-2abd99c8fe66",
            "label": "5104 - TELEPHONE COST OF SALES"
        },
        {
            "key": "e2415705-6352-4899-a164-129e20aaa4aa",
            "label": "5105 - BC COST OF SALES"
        },
        {
            "key": "59c308ac-df35-44fd-b562-1e63312a84ad",
            "label": "5106 - LAUNDRY COST OF SALES"
        },
        {
            "key": "d8ee2e0b-57ac-40a3-b5af-157d539093b7",
            "label": "5109 - SPA COST OF SALES"
        },
        {
            "key": "820d1acc-0efb-4de8-9172-44c62e001a0c",
            "label": "5110 - MOD COST OF SALES"
        },
        {
            "key": "2d243fe1-1cfd-4205-88cc-cac68ef3eb43",
            "label": "6100 - FO PAYROLL & RELATED"
        },
        {
            "key": "5a9f0e73-9aaf-4d19-8dde-7223ae74feeb",
            "label": "6101 - FO OTHER EXPENSES"
        },
        {
            "key": "f4013403-dc42-4c57-bd58-4566fa2647d1",
            "label": "6102 - FO PROVISION"
        },
        {
            "key": "4e58b804-17b3-4447-a1a6-0359d713be34",
            "label": "6110 - HK PAYROLL & RELATED"
        },
        {
            "key": "8d103cc4-73d9-41e1-a647-0003af126eb1",
            "label": "6111 - HK OTHER EXPENSES"
        },
        {
            "key": "700d17b7-a83c-4532-ad5a-a307035687cc",
            "label": "6112 - HK PROVISION"
        },
        {
            "key": "15901219-d41c-4a2f-8329-6c5737cc0b11",
            "label": "6120 - REST PAYROLL & RELATED"
        },
        {
            "key": "9142a74a-ea26-4f5a-a106-5a6a1b0e7df4",
            "label": "6121 - REST OTHER EXPENSES"
        },
        {
            "key": "9a2a4764-6f60-4633-96a4-332dd6571e46",
            "label": "6122 - REST PROVISION"
        },
        {
            "key": "e60ce86c-68b4-4cde-bc85-28231266cee4",
            "label": "6130 - POOL BAR PAYROLL & RELATED"
        },
        {
            "key": "e561a4f8-588d-43aa-8a20-188edd2ae811",
            "label": "6131 - POOL BAR OTHER EXPENSES"
        },
        {
            "key": "4ffa54ed-feaf-4ed4-b661-1cf72df33a31",
            "label": "6132 - POOL BAR PROVISION"
        },
        {
            "key": "1e542c97-b3ee-479e-9859-4a1975e87c52",
            "label": "6140 - RS PAYROLL & RELATED"
        },
        {
            "key": "a05037f3-b44d-489a-a097-837f581d106c",
            "label": "6141 - RS OTHER EXPENSES"
        },
        {
            "key": "2a7be2e9-2c2f-4c77-b6b2-4c83c5ffdf10",
            "label": "6142 - RS PROVISION"
        },
        {
            "key": "d6054b4f-b5b0-4946-b6d9-f05cab48e2f9",
            "label": "6150 - BQT PAYROLL & RELATED"
        },
        {
            "key": "5dfb17b7-644a-43d4-baa5-8f823d0f0abf",
            "label": "6151 - BQT OTHER EXPENSES"
        },
        {
            "key": "8aee3482-d98e-4574-9c62-409c055a2cb5",
            "label": "6152 - BQT PROVISION"
        },
        {
            "key": "97ff15af-1f9f-4b25-9425-8e5b3a0db63d",
            "label": "6160 - MB PAYROLL & RELATED"
        },
        {
            "key": "495d3064-00a5-4cb4-bb60-ca82950575ef",
            "label": "6161 - MB OTHER EXPENSES"
        },
        {
            "key": "4e7838a6-fedd-4db6-a456-0ceac8185a24",
            "label": "6162 - MB PROVISION"
        },
        {
            "key": "508580d4-445e-45a7-8447-9d111e6e0f8b",
            "label": "6170 - FBP PAYROLL & RELATED"
        },
        {
            "key": "7a24967c-4fb5-4864-a53a-4763131953d1",
            "label": "6171 - FBP OTHER EXPENSES"
        },
        {
            "key": "64f6f4e7-6caa-4530-9ffb-596c5c0a5cea",
            "label": "6172 - FBP PROVISION"
        },
        {
            "key": "f4dd92f5-3ef3-4d55-b1b1-253d95bbcf3b",
            "label": "6180 - TLP PAYROLL & RELATED"
        },
        {
            "key": "d9fa0a74-fcf2-45a9-a36a-efb43d5e75b5",
            "label": "6181 - TLP OTHER EXPENSES"
        },
        {
            "key": "255a250c-6b2e-491a-a4ee-8ad05f28adc4",
            "label": "6182 - TLP PROVISION"
        },
        {
            "key": "7d0178a5-6040-462b-9105-a183a4128bf6",
            "label": "6190 - BC PAYROLL & RELATED"
        },
        {
            "key": "a18b0837-5cc4-4742-9080-33cd4415556e",
            "label": "6191 - BC OTHER EXPENSES"
        },
        {
            "key": "6a948b29-0d86-46e8-8cb0-11b0f30b294a",
            "label": "6192 - BC PROVISION"
        },
        {
            "key": "42a8a678-5da8-4644-b26b-977350861f35",
            "label": "6200 - LDY PAYROLL & RELATED"
        },
        {
            "key": "a94ed02c-737f-4056-ae73-707f32e5abc0",
            "label": "6201 - LDY OTHER EXPENSES"
        },
        {
            "key": "fe2c9dba-908a-4435-b954-6ce2ebaec17c",
            "label": "6202 - LDY PROVISION"
        },
        {
            "key": "425639df-c5f6-47cd-88d8-7dd9b945cb2f",
            "label": "6210 - SPA PAYROLL & RELATED"
        },
        {
            "key": "fbd01d6b-377f-4379-8491-b483ed1ed76d",
            "label": "6211 - SPA OTHER EXPENSES"
        },
        {
            "key": "5156f809-0ca5-4421-83bd-e6951df9d9a0",
            "label": "6212 - SPA PROVISION"
        },
        {
            "key": "0d3c9d5b-f7cc-417a-a1eb-75d385f9d502",
            "label": "6230 - MOD PAYROLL & RELATED EXPENSES"
        },
        {
            "key": "26b4f9f7-9e9b-431b-a990-5ed7fead02be",
            "label": "6231 - MOD OTHER EXPENSES"
        },
        {
            "key": "0f681405-70ee-494e-80d9-46660a463c47",
            "label": "6232 - MOD PAYROLL & RELATED EXPENSES"
        },
        {
            "key": "55e203a3-c76b-4c65-864d-1aaf07fe93ba",
            "label": "7100 - A&G PAYROLL & RELATED"
        },
        {
            "key": "f4b92be1-a95a-46ca-a979-c2cf78456826",
            "label": "7101 - A&G OTHER EXPENSES"
        },
        {
            "key": "041c1a24-94a3-4e8e-8e71-38f5dc6bb26d",
            "label": "7200 - HRD PAYROLL & RELATED"
        },
        {
            "key": "55cc5a77-7315-49bb-aa3b-9347f9b206cb",
            "label": "7201 - HRD OTHER EXPENSES"
        },
        {
            "key": "6f36d345-6811-4ce1-9565-7e5aae6239ff",
            "label": "7300 - S&M PAYROLL & RELATED"
        },
        {
            "key": "473fe8e5-c982-443c-b247-841079b198ba",
            "label": "7301 - S&M OTHER EXPENSES"
        },
        {
            "key": "2bef6239-ed37-474e-a2a7-bda57da284f5",
            "label": "7400 - PMC PAYROLL & RELATED"
        },
        {
            "key": "5f558c00-7edb-4d51-9e16-e0c3a5bcfee9",
            "label": "7401 - PMC OTHER EXPENSES"
        },
        {
            "key": "52006a6e-3572-40d3-9a0b-eaa6001fc48b",
            "label": "7403 - PMC ENERGY COST"
        },
        {
            "key": "2246a00e-6edf-45ae-b28f-b26e3c942c30",
            "label": "8000 - OTHER DEDUCTION"
        },
        {
            "key": "72836a7f-caa3-46f0-bfe4-36eba0a4d565",
            "label": "9900 - STATISTIC"
        },
        {
            "key": "b520a39a-24a4-4b81-bfad-053e91218b49",
            "label": "9999090000 - test Chart Of Account Insert"
        },
        {
            "key": "b428bcd8-c55d-40bd-8847-4a59a288e1af",
            "label": "9999090000 - test Chart Of Account Insert"
        },
        {
            "key": "10889fad-a074-4c30-8b2c-ae4e1b81b209",
            "label": "9999090000 - test Chart Of Account Insert edit"
        }
    ]
}
 

Request   

POST api/v1/master/chart-of-account-default/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: parentcoa

Must be one of:
  • parentcoa
  • typecoa
  • departmentcoa

Copy And Setup Property COA Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default/property/setdefault" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"aut\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default/property/setdefault"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "aut"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default/property/setdefault';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'aut',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/master/chart-of-account-default/property/setdefault

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of COA Example: aut

Chart Of Account Property

Chart Of Account List

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"fuga\",
    \"query_search\": \"dolor\",
    \"type_id\": \"incidunt\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "fuga",
    "query_search": "dolor",
    "type_id": "incidunt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'fuga',
            'query_search' => 'dolor',
            'type_id' => 'incidunt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/master/chart-of-account/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of property id Example: fuga

query_search   string     

name of coa finding Example: dolor

type_id   string  optional    

uuid of COA type if want filter by type. Example: incidunt

Add / Update COA Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"minus\",
    \"coa_id\": \"blanditiis\",
    \"parent_id\": \"vel\",
    \"type_id\": \"dolorem\",
    \"department_id\": \"voluptatem\",
    \"code\": \"eius\",
    \"name\": \"pariatur\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "minus",
    "coa_id": "blanditiis",
    "parent_id": "vel",
    "type_id": "dolorem",
    "department_id": "voluptatem",
    "code": "eius",
    "name": "pariatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'minus',
            'coa_id' => 'blanditiis',
            'parent_id' => 'vel',
            'type_id' => 'dolorem',
            'department_id' => 'voluptatem',
            'code' => 'eius',
            'name' => 'pariatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/master/chart-of-account

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: minus

coa_id   string  optional    

uuid of Chart Of Account this required if update current data. Example: blanditiis

parent_id   string  optional    

uuid of Chart Of Account required if coa is sub. Example: vel

type_id   string  optional    

uuid of COA type required if have coa type. Example: dolorem

department_id   string  optional    

uuid of COA type required if have coa department. Example: voluptatem

code   string     

Code COA Example: eius

name   string     

Name COA Example: pariatur

Remove Property COA

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"coa_id\": \"neque\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "coa_id": "neque"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'coa_id' => 'neque',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/master/chart-of-account/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

coa_id   string     

uuid of COA Example: neque

Option Property Input COA

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nihil\",
    \"mode\": \"parentcoa\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nihil",
    "mode": "parentcoa"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nihil',
            'mode' => 'parentcoa',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/master/chart-of-account/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of COA Property Example: nihil

mode   string  optional    

The language. Example: parentcoa

Must be one of:
  • parentcoa
  • typecoa
  • departmentcoa

Chart Of Account Template

COA Default Template Datatable

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"parameter\": \"quas\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "parameter": "quas"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'parameter' => 'quas',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 2,
    "recordsFiltered": 2,
    "data": [
        {
            "id": null,
            "name": "Full Chart Of Account",
            "total_account": 1274
        },
        {
            "id": null,
            "name": "Simple Chart Of Account",
            "total_account": 233
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"chart_of_account_default_templates\" where \"chart_of_account_default_templates\".\"deleted_at\" is null",
            "bindings": [],
            "time": 2.17
        },
        {
            "query": "select \"id\", \"name\" from \"chart_of_account_default_templates\" where \"chart_of_account_default_templates\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.31
        },
        {
            "query": "select * from \"chart_of_account_default_template_lists\" where \"chart_of_account_default_template_lists\".\"template_id\" = ? and \"chart_of_account_default_template_lists\".\"template_id\" is not null and \"chart_of_account_default_template_lists\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 4.58
        },
        {
            "query": "select * from \"chart_of_account_default_template_lists\" where \"chart_of_account_default_template_lists\".\"template_id\" = ? and \"chart_of_account_default_template_lists\".\"template_id\" is not null and \"chart_of_account_default_template_lists\".\"deleted_at\" is null",
            "bindings": [
                2
            ],
            "time": 1.03
        }
    ],
    "input": []
}
 

Request   

POST api/v1/master/chart-of-account-default-template/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

parameter   using  optional    

default datatable parameter. Example: quas

COA Default Template Detail

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"template_id\": \"dolor\",
    \"type_id\": \"voluptatem\",
    \"query_search\": \"rerum\",
    \"page_no\": \"voluptates\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "template_id": "dolor",
    "type_id": "voluptatem",
    "query_search": "rerum",
    "page_no": "voluptates"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'dolor',
            'type_id' => 'voluptatem',
            'query_search' => 'rerum',
            'page_no' => 'voluptates',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "e54a9af0-f7fd-437d-a4fc-66dc8e8f4cb8",
    "name": "Full Chart Of Account",
    "list_coa": {
        "total_page": 59,
        "current_page": 3,
        "record": [
            {
                "id": "2092ad65-7839-442b-9007-526009093455",
                "code": "1206",
                "name": "DEPOSIT AND ADVANCED",
                "child": [
                    {
                        "template_item_id": "45267d7b-9c57-40bf-8726-b0ca44853dc4",
                        "id": "94e17aa0-e1f2-4629-b43e-44af1ba78b20",
                        "parent_id": "2092ad65-7839-442b-9007-526009093455",
                        "code": "120-60-999",
                        "name": "Other Advanced",
                        "type": {
                            "id": "157a1548-6ac8-430f-9c52-369a85c5c1a9",
                            "name": "CURRENT ASSETS",
                            "head_code": 31
                        }
                    }
                ]
            },
            {
                "id": "507f9aa8-7f8a-454e-97a3-ae208f3e97ba",
                "code": "1300",
                "name": "INVENTORY",
                "child": [
                    {
                        "template_item_id": "3722c7c7-b046-4620-9c96-27ad66bf5a8f",
                        "id": "773d8fa4-293d-4d8b-a515-fbbd6ba1e19f",
                        "parent_id": "507f9aa8-7f8a-454e-97a3-ae208f3e97ba",
                        "code": "130-00-002",
                        "name": "Inventory Beverage",
                        "type": {
                            "id": "157a1548-6ac8-430f-9c52-369a85c5c1a9",
                            "name": "CURRENT ASSETS",
                            "head_code": 31
                        }
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/master/chart-of-account-default-template/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

template_id   using  optional    

uuid coa tempalate id. Example: dolor

type_id   using  optional    

uuid coa type id. Example: voluptatem

query_search   using  optional    

for search coa By code or name. Example: rerum

page_no   using  optional    

for set current page. Example: voluptates

COA Default Template Update

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"template_id\": \"odit\",
    \"name\": \"dolor\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "template_id": "odit",
    "name": "dolor"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'odit',
            'name' => 'dolor',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "detail": {
        "name": "new template test",
        "list_coa": [],
        "id": "28edfa5a-08ab-40d0-ae27-72a487d51427"
    }
}
 

Request   

POST api/v1/master/chart-of-account-default-template/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

template_id   using  optional    

uuid coa tempalate id if this new please not set this parameter. Example: odit

name   this  optional    

name of coa template. Example: dolor

COA Default Template list Add new

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/addlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"template_id\": \"repudiandae\",
    \"coa_id\": \"corporis\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/addlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "template_id": "repudiandae",
    "coa_id": "corporis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/addlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'repudiandae',
            'coa_id' => 'corporis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "list_coa": [
        {
            "id": "210b2362-d9f6-45e0-a25b-ead638df9b91",
            "code": "1101",
            "name": "HOUSE BANK",
            "type": {
                "id": "6f2cff3c-3b18-4c6d-b543-f6fb4f55f284",
                "name": "ASSET",
                "head_code": 3
            },
            "child": [
                {
                    "id": "20bb1926-0ae9-4fe7-b445-69c8f5115f1a",
                    "parent_id": "210b2362-d9f6-45e0-a25b-ead638df9b91",
                    "code": "110-10-007",
                    "name": "House Bank Purchasing",
                    "type": {
                        "id": "55f46545-51d1-4c56-9da6-c6919d08e34c",
                        "name": "CURRENT ASSETS",
                        "head_code": 31
                    }
                }
            ]
        },
        {
            "id": "4ca4727f-53b2-46b7-b075-d91d6e0b4cfe",
            "code": "1102",
            "name": "BANK",
            "type": {
                "id": "6f2cff3c-3b18-4c6d-b543-f6fb4f55f284",
                "name": "ASSET",
                "head_code": 3
            },
            "child": [
                {
                    "id": "3877494f-01dc-458e-a90c-d4f158386c56",
                    "parent_id": "4ca4727f-53b2-46b7-b075-d91d6e0b4cfe",
                    "code": "110-20-001",
                    "name": "Bank CIMB (800-121-005-400)",
                    "type": {
                        "id": "55f46545-51d1-4c56-9da6-c6919d08e34c",
                        "name": "CURRENT ASSETS",
                        "head_code": 31
                    }
                }
            ]
        }
    ]
}
 

Request   

POST api/v1/master/chart-of-account-default-template/addlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

template_id   using  optional    

uuid coa tempalate id. Example: repudiandae

coa_id   using  optional    

uuid coa id. Example: corporis

COA Default Template Remove

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"template_id\": \"commodi\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "template_id": "commodi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'commodi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "msg": "success remove Chart Of Account Template"
}
 

Request   

POST api/v1/master/chart-of-account-default-template/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

template_id   using  optional    

uuid coa tempalate id if this new please not set this parameter. Example: commodi

COA Default Template list Remove

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/removelist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"template_id\": \"facilis\",
    \"coa_id\": \"mollitia\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/removelist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "template_id": "facilis",
    "coa_id": "mollitia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/removelist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'facilis',
            'coa_id' => 'mollitia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "msg": "Success remove default template list coa"
}
 

Request   

POST api/v1/master/chart-of-account-default-template/removelist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

template_id   using  optional    

uuid coa tempalate id. Example: facilis

coa_id   using  optional    

uuid coa id. Example: mollitia

Option Input COA Item Default

Example request:
curl --request POST \
    "http://localhost/api/v1/master/chart-of-account-default-template/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"parentcoa\",
    \"parent_id\": \"quaerat\"
}"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default-template/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "parentcoa",
    "parent_id": "quaerat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/chart-of-account-default-template/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'parentcoa',
            'parent_id' => 'quaerat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Parrent Chart Of Accounts Founds",
    "data": [
        {
            "key": "210b2362-d9f6-45e0-a25b-ead638df9b91",
            "label": "1101 - HOUSE BANK"
        },
        {
            "key": "4ca4727f-53b2-46b7-b075-d91d6e0b4cfe",
            "label": "1102 - BANK"
        },
        {
            "key": "8fc28675-351f-433a-a5db-5a1de3034372",
            "label": "1103 - CASH CLEARANCE"
        },
        {
            "key": "8830ca00-d308-4e6a-95d4-62ad01228e90",
            "label": "1200 - ACCOUNT RECEIVABLE"
        },
        {
            "key": "fd1c04d4-ff02-4dff-90aa-19af7117ba57",
            "label": "1202 - OTHER RECEIVABLE"
        },
        {
            "key": "b42ccf09-1d0e-41a3-8eab-21ae5d2e0f31",
            "label": "1205 - AFFILIATED COMP.RECEIVABLE"
        },
        {
            "key": "81646715-b856-468a-b043-139486a308ca",
            "label": "1206 - DEPOSIT AND ADVANCED"
        },
        {
            "key": "b2267586-3d5e-493b-8ab1-77a112e3e839",
            "label": "1300 - INVENTORY"
        },
        {
            "key": "4081e874-138d-458c-90cb-aa0393c3bd3b",
            "label": "1302 - PREPAID EXPENSES"
        },
        {
            "key": "803cb6c1-fce1-46b0-b17e-37c2de7d8b67",
            "label": "1500 - PROPERTY & EQUIPMENT"
        },
        {
            "key": "23b79ab7-6670-4bad-944a-94483d9bbc28",
            "label": "1503 - FURNITURE, FIXTURE & EQUIPMENT"
        },
        {
            "key": "fc6257ca-106a-4d9e-8a30-b7d0c2f6dab3",
            "label": "1505 - OPERATING EQUIPMENT"
        },
        {
            "key": "f6ee9426-57c4-4a73-a344-ec04dd5f68c2",
            "label": "1600 - FIXED ASSET LEASING"
        },
        {
            "key": "eff45872-f200-426a-8041-c11c064a7166",
            "label": "1700 - ACC. DEPRE PROPERTY & EQUIPMENT"
        },
        {
            "key": "5d020502-871e-4947-bc42-fe51ac519653",
            "label": "1701 - ACC. DEPRE FURNITURE, FIXTURE &"
        },
        {
            "key": "0b09c462-295b-434d-a5d2-9dadc6f239ee",
            "label": "1702 - ACC. DEPRE OPERATING EQUIPMENT"
        },
        {
            "key": "bcb9d228-589b-43a0-b6ed-59aa4568e95c",
            "label": "1703 - ACC. DEPRE FIXED ASSET LEASING"
        },
        {
            "key": "fc5c56af-55b9-4ed2-8bc2-f388e9001554",
            "label": "1800 - OTHER ASSET"
        },
        {
            "key": "06a1cbb6-6f5e-4cfd-80a1-207b580c4717",
            "label": "2100 - ACCOUNT PAYABLE"
        },
        {
            "key": "7a790a80-bd59-4e79-8869-ace6fa7a55e0",
            "label": "2200 - TAX PAYABLE"
        },
        {
            "key": "8c0fd310-cc35-4ace-94e2-deb37cc79aa2",
            "label": "2300 - ACCRUED EXPENSES"
        },
        {
            "key": "00a4706d-5d9e-4a08-ba6d-9caccf45bff0",
            "label": "2400 - GUEST DEPOSIT"
        },
        {
            "key": "23c40acd-12b8-4ba1-aab9-d054cd541b30",
            "label": "2500 - OTHER LIABILITIES"
        },
        {
            "key": "b647d91e-7061-4a12-af2f-6d6cc89a7139",
            "label": "2600 - AFFILIATED COMPANY PAYABLE"
        },
        {
            "key": "7d690279-16ba-4ab1-9903-8cb04e88030f",
            "label": "2700 - PROVISION"
        },
        {
            "key": "a5e8d2a9-9ce6-43db-8283-19b2f4068274",
            "label": "2800 - RESERVE"
        },
        {
            "key": "b5f2fac5-37ae-4e9b-bb6f-7fe3185bfd11",
            "label": "2900 - LONG TERM LIABILITIES"
        },
        {
            "key": "56c709ec-38ea-4def-8c96-5a5fd04946c2",
            "label": "3100 - CAPITAL"
        },
        {
            "key": "7e95b34b-f1e8-4f04-b23a-04e3f2be8187",
            "label": "3200 - RETAINED EARNING"
        },
        {
            "key": "5a5cb85b-1ad5-4da5-a291-f914204af921",
            "label": "4001 - ROOM REVENUE"
        },
        {
            "key": "5555087b-30be-4759-85f8-d8acd3220c05",
            "label": "4102 - RESTAURANT REVENUE"
        },
        {
            "key": "cd40bf4e-8bb0-4af0-a619-22fc8d08e952",
            "label": "4103 - POOL BAR REVENUE"
        },
        {
            "key": "d13274cb-3158-4389-b05e-200f4932e613",
            "label": "4104 - BANQUET REVENUE"
        },
        {
            "key": "1000d05d-6280-4dec-9e1f-3231b821dd96",
            "label": "4105 - ROOM SERVICE REVENUE"
        },
        {
            "key": "480b5176-37b9-4851-b6db-1da3c22a015c",
            "label": "4106 - MINI BAR"
        },
        {
            "key": "2c55fb76-5ea6-4d3a-8430-fa2bbcfd9869",
            "label": "4107 - TELEPHONE REVENUE"
        },
        {
            "key": "6e024e8d-8ead-4623-b9d1-9d3370320af5",
            "label": "4108 - BUSINESS CENTER REVENUE"
        },
        {
            "key": "601d1eec-00a2-4300-9ebf-517fce44cd39",
            "label": "4109 - LAUNDRY REVENUE"
        },
        {
            "key": "698a22e9-7e09-402a-9ddd-13e19140def3",
            "label": "4110 - SPA REVENUE"
        },
        {
            "key": "d25c9ab5-95f5-47d4-a47e-ba8147bb7053",
            "label": "4301 - MOD REVENUE"
        },
        {
            "key": "60a19460-3517-48e6-82cf-e6855fe276f8",
            "label": "4302 - OTHER INCOME"
        },
        {
            "key": "ee51d258-0c3e-4971-ac91-bca3dafb8537",
            "label": "5000 - COST OF RESTAURANT"
        },
        {
            "key": "17d2fd3c-55fa-4e59-8fc2-cba98b557be9",
            "label": "5101 - COST OF POOL BAR"
        },
        {
            "key": "8504db70-44d7-4e62-9510-1ffca276c4c2",
            "label": "5102 - COST OF BANQUET"
        },
        {
            "key": "d7e55854-cc2b-4d9a-a693-8c5ce9d65891",
            "label": "5103 - COST OF ROOM SERVICE"
        },
        {
            "key": "e1c8b321-ebd6-499d-9002-2abd99c8fe66",
            "label": "5104 - TELEPHONE COST OF SALES"
        },
        {
            "key": "e2415705-6352-4899-a164-129e20aaa4aa",
            "label": "5105 - BC COST OF SALES"
        },
        {
            "key": "59c308ac-df35-44fd-b562-1e63312a84ad",
            "label": "5106 - LAUNDRY COST OF SALES"
        },
        {
            "key": "d8ee2e0b-57ac-40a3-b5af-157d539093b7",
            "label": "5109 - SPA COST OF SALES"
        },
        {
            "key": "820d1acc-0efb-4de8-9172-44c62e001a0c",
            "label": "5110 - MOD COST OF SALES"
        },
        {
            "key": "2d243fe1-1cfd-4205-88cc-cac68ef3eb43",
            "label": "6100 - FO PAYROLL & RELATED"
        },
        {
            "key": "5a9f0e73-9aaf-4d19-8dde-7223ae74feeb",
            "label": "6101 - FO OTHER EXPENSES"
        },
        {
            "key": "f4013403-dc42-4c57-bd58-4566fa2647d1",
            "label": "6102 - FO PROVISION"
        },
        {
            "key": "4e58b804-17b3-4447-a1a6-0359d713be34",
            "label": "6110 - HK PAYROLL & RELATED"
        },
        {
            "key": "8d103cc4-73d9-41e1-a647-0003af126eb1",
            "label": "6111 - HK OTHER EXPENSES"
        },
        {
            "key": "700d17b7-a83c-4532-ad5a-a307035687cc",
            "label": "6112 - HK PROVISION"
        },
        {
            "key": "15901219-d41c-4a2f-8329-6c5737cc0b11",
            "label": "6120 - REST PAYROLL & RELATED"
        },
        {
            "key": "9142a74a-ea26-4f5a-a106-5a6a1b0e7df4",
            "label": "6121 - REST OTHER EXPENSES"
        },
        {
            "key": "9a2a4764-6f60-4633-96a4-332dd6571e46",
            "label": "6122 - REST PROVISION"
        },
        {
            "key": "e60ce86c-68b4-4cde-bc85-28231266cee4",
            "label": "6130 - POOL BAR PAYROLL & RELATED"
        },
        {
            "key": "e561a4f8-588d-43aa-8a20-188edd2ae811",
            "label": "6131 - POOL BAR OTHER EXPENSES"
        },
        {
            "key": "4ffa54ed-feaf-4ed4-b661-1cf72df33a31",
            "label": "6132 - POOL BAR PROVISION"
        },
        {
            "key": "1e542c97-b3ee-479e-9859-4a1975e87c52",
            "label": "6140 - RS PAYROLL & RELATED"
        },
        {
            "key": "a05037f3-b44d-489a-a097-837f581d106c",
            "label": "6141 - RS OTHER EXPENSES"
        },
        {
            "key": "2a7be2e9-2c2f-4c77-b6b2-4c83c5ffdf10",
            "label": "6142 - RS PROVISION"
        },
        {
            "key": "d6054b4f-b5b0-4946-b6d9-f05cab48e2f9",
            "label": "6150 - BQT PAYROLL & RELATED"
        },
        {
            "key": "5dfb17b7-644a-43d4-baa5-8f823d0f0abf",
            "label": "6151 - BQT OTHER EXPENSES"
        },
        {
            "key": "8aee3482-d98e-4574-9c62-409c055a2cb5",
            "label": "6152 - BQT PROVISION"
        },
        {
            "key": "97ff15af-1f9f-4b25-9425-8e5b3a0db63d",
            "label": "6160 - MB PAYROLL & RELATED"
        },
        {
            "key": "495d3064-00a5-4cb4-bb60-ca82950575ef",
            "label": "6161 - MB OTHER EXPENSES"
        },
        {
            "key": "4e7838a6-fedd-4db6-a456-0ceac8185a24",
            "label": "6162 - MB PROVISION"
        },
        {
            "key": "508580d4-445e-45a7-8447-9d111e6e0f8b",
            "label": "6170 - FBP PAYROLL & RELATED"
        },
        {
            "key": "7a24967c-4fb5-4864-a53a-4763131953d1",
            "label": "6171 - FBP OTHER EXPENSES"
        },
        {
            "key": "64f6f4e7-6caa-4530-9ffb-596c5c0a5cea",
            "label": "6172 - FBP PROVISION"
        },
        {
            "key": "f4dd92f5-3ef3-4d55-b1b1-253d95bbcf3b",
            "label": "6180 - TLP PAYROLL & RELATED"
        },
        {
            "key": "d9fa0a74-fcf2-45a9-a36a-efb43d5e75b5",
            "label": "6181 - TLP OTHER EXPENSES"
        },
        {
            "key": "255a250c-6b2e-491a-a4ee-8ad05f28adc4",
            "label": "6182 - TLP PROVISION"
        },
        {
            "key": "7d0178a5-6040-462b-9105-a183a4128bf6",
            "label": "6190 - BC PAYROLL & RELATED"
        },
        {
            "key": "a18b0837-5cc4-4742-9080-33cd4415556e",
            "label": "6191 - BC OTHER EXPENSES"
        },
        {
            "key": "6a948b29-0d86-46e8-8cb0-11b0f30b294a",
            "label": "6192 - BC PROVISION"
        },
        {
            "key": "42a8a678-5da8-4644-b26b-977350861f35",
            "label": "6200 - LDY PAYROLL & RELATED"
        },
        {
            "key": "a94ed02c-737f-4056-ae73-707f32e5abc0",
            "label": "6201 - LDY OTHER EXPENSES"
        },
        {
            "key": "fe2c9dba-908a-4435-b954-6ce2ebaec17c",
            "label": "6202 - LDY PROVISION"
        },
        {
            "key": "425639df-c5f6-47cd-88d8-7dd9b945cb2f",
            "label": "6210 - SPA PAYROLL & RELATED"
        },
        {
            "key": "fbd01d6b-377f-4379-8491-b483ed1ed76d",
            "label": "6211 - SPA OTHER EXPENSES"
        },
        {
            "key": "5156f809-0ca5-4421-83bd-e6951df9d9a0",
            "label": "6212 - SPA PROVISION"
        },
        {
            "key": "0d3c9d5b-f7cc-417a-a1eb-75d385f9d502",
            "label": "6230 - MOD PAYROLL & RELATED EXPENSES"
        },
        {
            "key": "26b4f9f7-9e9b-431b-a990-5ed7fead02be",
            "label": "6231 - MOD OTHER EXPENSES"
        },
        {
            "key": "0f681405-70ee-494e-80d9-46660a463c47",
            "label": "6232 - MOD PAYROLL & RELATED EXPENSES"
        },
        {
            "key": "55e203a3-c76b-4c65-864d-1aaf07fe93ba",
            "label": "7100 - A&G PAYROLL & RELATED"
        },
        {
            "key": "f4b92be1-a95a-46ca-a979-c2cf78456826",
            "label": "7101 - A&G OTHER EXPENSES"
        },
        {
            "key": "041c1a24-94a3-4e8e-8e71-38f5dc6bb26d",
            "label": "7200 - HRD PAYROLL & RELATED"
        },
        {
            "key": "55cc5a77-7315-49bb-aa3b-9347f9b206cb",
            "label": "7201 - HRD OTHER EXPENSES"
        },
        {
            "key": "6f36d345-6811-4ce1-9565-7e5aae6239ff",
            "label": "7300 - S&M PAYROLL & RELATED"
        },
        {
            "key": "473fe8e5-c982-443c-b247-841079b198ba",
            "label": "7301 - S&M OTHER EXPENSES"
        },
        {
            "key": "2bef6239-ed37-474e-a2a7-bda57da284f5",
            "label": "7400 - PMC PAYROLL & RELATED"
        },
        {
            "key": "5f558c00-7edb-4d51-9e16-e0c3a5bcfee9",
            "label": "7401 - PMC OTHER EXPENSES"
        },
        {
            "key": "52006a6e-3572-40d3-9a0b-eaa6001fc48b",
            "label": "7403 - PMC ENERGY COST"
        },
        {
            "key": "2246a00e-6edf-45ae-b28f-b26e3c942c30",
            "label": "8000 - OTHER DEDUCTION"
        },
        {
            "key": "72836a7f-caa3-46f0-bfe4-36eba0a4d565",
            "label": "9900 - STATISTIC"
        },
        {
            "key": "b520a39a-24a4-4b81-bfad-053e91218b49",
            "label": "9999090000 - test Chart Of Account Insert"
        },
        {
            "key": "b428bcd8-c55d-40bd-8847-4a59a288e1af",
            "label": "9999090000 - test Chart Of Account Insert"
        },
        {
            "key": "10889fad-a074-4c30-8b2c-ae4e1b81b209",
            "label": "9999090000 - test Chart Of Account Insert edit"
        }
    ]
}
 

Request   

POST api/v1/master/chart-of-account-default-template/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The mode. Example: parentcoa

Must be one of:
  • parentcoa
  • coa
parent_id   string  optional    

The Parent uuid need if mode coa. Example: quaerat

Current User Data

Update Current user

Example request:
curl --request POST \
    "http://localhost/api/v1/misc/currentuser" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"sit\",
    \"timezone_id\": \"necessitatibus\",
    \"language_id\": \"magni\",
    \"name\": \"et\",
    \"phone\": \"reiciendis\",
    \"password\": \"py^yjBcQi!N_Mw^a\",
    \"password_confirmation\": \"sit\"
}"
const url = new URL(
    "http://localhost/api/v1/misc/currentuser"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "sit",
    "timezone_id": "necessitatibus",
    "language_id": "magni",
    "name": "et",
    "phone": "reiciendis",
    "password": "py^yjBcQi!N_Mw^a",
    "password_confirmation": "sit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/misc/currentuser';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'sit',
            'timezone_id' => 'necessitatibus',
            'language_id' => 'magni',
            'name' => 'et',
            'phone' => 'reiciendis',
            'password' => 'py^yjBcQi!N_Mw^a',
            'password_confirmation' => 'sit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Current User Data",
    "data": {
        "id": "ca8afc19-1c45-468b-a522-047232f959f5",
        "name": "Agus Bawa Nadi Putra update",
        "shortname": "Agus Bawa...",
        "phone": "081805410047",
        "category": "System Admin",
        "timezone": {
            "id": "461ce532-c63f-4ada-8a3b-4a6317b8bff1",
            "name": "Africa/Abidjan"
        },
        "language": {
            "id": "50d954be-3b99-43bf-abf8-50b1462b9825",
            "name": "Afrikaans"
        },
        "email": "[email protected]",
        "google2fa_secret": null,
        "google2fa_is_active": false,
        "properties": [
            {
                "id": "5e1932e0-7d6c-49e4-989c-6c6512263d8f",
                "name": "Hotel Dummy"
            }
        ]
    }
}
 

Request   

POST api/v1/misc/currentuser

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Current User Example: sit

timezone_id   string     

uuid of Timezone Example: necessitatibus

language_id   string     

uuid of Timezone Example: magni

name   string     

Name of Amenities Example: et

phone   string     

User Phone Number Example: reiciendis

password   string     

if want change user password Example: py^yjBcQi!N_Mw^a

password_confirmation   string     

if want change user password must same with this Example: sit

User Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/misc/currentuser/detail" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/misc/currentuser/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/misc/currentuser/detail';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Current User Detail",
    "data": {
        "id": "edc19627-47c2-412c-8a75-1a879c3c03b6",
        "name": "Master User Api",
        "shortname": "Master Use...",
        "phone": null,
        "category": "System Admin",
        "timezone": null,
        "language": null,
        "email": "[email protected]",
        "google2fa_secret": null,
        "google2fa_is_active": false,
        "properties": [
            {
                "id": "31db6935-0f23-4939-b31f-d4bd1a1af828",
                "name": "Hotel Dummy"
            }
        ],
        "features": {
            "language_settings": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "currency_settings": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "timezone_settings": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "country_settings": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "region_settings": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "area_settings": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "features_categories": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "user_category_features_defaults": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "properties": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "users": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_status_default": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "amenities_list_default": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "chart_of_account_default": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "chart_of_account_template": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_amenities_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_status_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_bed_type_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_type": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "rooms_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_rates": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "reservation": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "room_available": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "night_audit": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "guest_profile": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "guest_list_daily": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "guest_payment": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "chart_of_account": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "tax_and_service_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "agent_property_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ],
            "payment_options_list": [
                "can_list",
                "can_view",
                "can_add",
                "can_edit",
                "can_delete"
            ]
        }
    }
}
 

Request   

GET api/v1/misc/currentuser/detail

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Amenities. Example: 824a7071-2e92-372d-803a-490b18c6d389

Enable / Disable google2fa

Example request:
curl --request POST \
    "http://localhost/api/v1/misc/currentuser/google2fa/setting" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"status\": 13
}"
const url = new URL(
    "http://localhost/api/v1/misc/currentuser/google2fa/setting"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "status": 13
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/misc/currentuser/google2fa/setting';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'status' => 13,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": true,
    "secret": "ROXTGX2RYNKYB7L5",
    "appname": "Loka Room",
    "qr_code_url": "otpauth://totp/Loka%20Room:master%40lokaroom.net?secret=ROXTGX2RYNKYB7L5&issuer=Loka%20Room&algorithm=SHA1&digits=6&period=30"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/misc/currentuser/google2fa/setting

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

status   integer     

value 1 for enable value 0 for disable Example: 13

Option Editor Current User Input

Example request:
curl --request POST \
    "http://localhost/api/v1/misc/currentuser/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"timezone\"
}"
const url = new URL(
    "http://localhost/api/v1/misc/currentuser/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "timezone"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/misc/currentuser/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'timezone',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Timezone Founds",
    "data": [
        {
            "id": "59af78ff-d35f-40e4-8220-ff67af5d07a3",
            "name": "Africa/Abidjan"
        },
        {
            "id": "f311336a-f1ee-4c7b-9e1e-7d6e61c67e41",
            "name": "Africa/Accra"
        },
        {
            "id": "a9454d6b-abe6-459b-8b97-e710df56c993",
            "name": "Africa/Addis_Ababa"
        }
    ]
}
 

Request   

POST api/v1/misc/currentuser/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: timezone

Must be one of:
  • timezone
  • language

Daily Revenue Report

Daily Revenue List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/daily-revenue/report" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"est\",
    \"days\": \"veniam\",
    \"list_type\": \"source_list.\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/daily-revenue/report"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "est",
    "days": "veniam",
    "list_type": "source_list."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/daily-revenue/report';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'est',
            'days' => 'veniam',
            'list_type' => 'source_list.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Daily Found",
    "data": {
        "in_house": [
            {
                "room_type_name": "Standard",
                "list": [
                    {
                        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
                        "booking_no": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "guest": {
                            "name": "Mr. Takayuki Nomoto",
                            "id": "2da48c55-2688-443f-99b3-47ab29616604"
                        },
                        "country": {
                            "name": "Japan",
                            "id": "72a89d6b-78a8-4db9-b66c-3a16af183567"
                        },
                        "room_type": {
                            "name": "Standard",
                            "id": "a880635a-810f-4f9b-b39a-3f49387ec7d5"
                        },
                        "room": {
                            "name": "101",
                            "id": "e7541067-7551-4905-b13a-e7f026a06a48"
                        },
                        "agent": {
                            "name": "Walk In",
                            "id": "e41961d9-620e-4290-9497-64ece423e82c"
                        },
                        "arival": "2024-09-17",
                        "depature": "2024-09-19",
                        "adult": 2,
                        "child": 2,
                        "special_request": null,
                        "remark": null
                    }
                ]
            }
        ]
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/backoffice/daily-revenue/report

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: est

days   string  optional    

date of date report date format Y-m-d. Example: veniam

list_type   string  optional    

required. Example: source_list.

Must be one of:
  • drr
  • macro

Future Booking Import

Upload & Import Booking File

Upload a CSV/XLSX/XLS file from an OTA or PMS and import it into the staging table. The source OTA is auto-detected from the file name (e.g. agoda_report.csv → Agoda), with fallback to heading-row fingerprint detection if the file name is not recognisable. A row is written to future_booking_import_logs for the request (log_id in the response).

Example request:
curl --request POST \
    "http://localhost/api/v1/property/future-booking-imports/store" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: multipart/form-data" \
    --form "property_id=1"\
    --form "file=@/tmp/phpNFikGE" 
const url = new URL(
    "http://localhost/api/v1/property/future-booking-imports/store"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('property_id', '1');
body.append('file', document.querySelector('input[name="file"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/future-booking-imports/store';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'multipart/form-data',
        ],
        'multipart' => [
            [
                'name' => 'property_id',
                'contents' => '1'
            ],
            [
                'name' => 'file',
                'contents' => fopen('/tmp/phpNFikGE', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Import successful.",
    "data": {
        "log_id": 1,
        "import_result": {
            "import_batch": "550e8400-e29b-41d4-a716-446655440000",
            "source": "agoda",
            "total_rows": 120,
            "imported_rows": 118,
            "skipped_rows": 2,
            "error_count": 0,
            "failure_count": 0
        },
        "db_summary": {
            "total_records": 118,
            "by_status": {
                "confirmed": 100,
                "cancelled": 10,
                "pending": 5,
                "no_show": 3,
                "unknown": 0
            },
            "by_payment_type": {
                "ota_collect": 90,
                "hotel_collect": 20,
                "virtual_credit_card": 5,
                "bank_transfer": 3,
                "unknown": 0
            },
            "revenue": {
                "total_amount": 50000000,
                "commission": 5000000,
                "net_amount": 45000000,
                "currency": "IDR"
            },
            "imported_data": []
        },
        "errors": [],
        "failures": []
    }
}
 

Example response (207):


{
    "message": "Import completed with 2 problematic rows.",
    "data": {
        "log_id": 1,
        "import_result": {
            "import_batch": "550e8400-e29b-41d4-a716-446655440000",
            "source": "agoda",
            "total_rows": 10,
            "imported_rows": 8,
            "skipped_rows": 0,
            "error_count": 2,
            "failure_count": 0
        },
        "db_summary": null,
        "errors": [],
        "failures": []
    }
}
 

Example response (400):


{
    "message": "Invalid request data.",
    "data": {}
}
 

Example response (500):


{
    "message": "Something went wrong. Please try again.",
    "data": []
}
 

Request   

POST api/v1/property/future-booking-imports/store

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: multipart/form-data

Body Parameters

file   file     

The booking file to import. Accepted: csv, xlsx, xls. Max 10240 KB (10 MB). Example: /tmp/phpNFikGE

property_id   integer     

Internal property primary key. Must exist in properties.id. Example: 1

List Future Booking Imports

Paginated list of imported rows for a property, with optional filters. Response shape matches the frontoffice booking list pattern: data.item and data.pagination.

Example request:
curl --request POST \
    "http://localhost/api/v1/property/future-booking-imports/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"cfc616bb-3145-4a98-bb6b-0efb5c8203ed\",
    \"search\": \"John\",
    \"check_in_start_date\": \"et\",
    \"check_in_end_date\": \"provident\",
    \"booking_id\": \"tenetur\",
    \"guest_name\": \"laborum\",
    \"ota_name\": \"officia\",
    \"import_batch\": \"dolores\",
    \"source\": \"qui\",
    \"status\": \"qui\",
    \"page_number\": 7,
    \"per_page\": 14
}"
const url = new URL(
    "http://localhost/api/v1/property/future-booking-imports/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
    "search": "John",
    "check_in_start_date": "et",
    "check_in_end_date": "provident",
    "booking_id": "tenetur",
    "guest_name": "laborum",
    "ota_name": "officia",
    "import_batch": "dolores",
    "source": "qui",
    "status": "qui",
    "page_number": 7,
    "per_page": 14
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/future-booking-imports/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'cfc616bb-3145-4a98-bb6b-0efb5c8203ed',
            'search' => 'John',
            'check_in_start_date' => 'et',
            'check_in_end_date' => 'provident',
            'booking_id' => 'tenetur',
            'guest_name' => 'laborum',
            'ota_name' => 'officia',
            'import_batch' => 'dolores',
            'source' => 'qui',
            'status' => 'qui',
            'page_number' => 7,
            'per_page' => 14,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Future booking import list retrieved successfully.",
    "data": {
        "item": [
            {
                "id": "550e8400-e29b-41d4-a716-446655440000",
                "booking_uuid": "550e8400-e29b-41d4-a716-446655440000",
                "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
                "import_batch": "650e8400-e29b-41d4-a716-446655440001",
                "source": "agoda",
                "booking_id": "AGD-123456",
                "ota_name": "Agoda",
                "ota_channel": "Direct",
                "ota_booking_reference": "REF-001",
                "confirmation_id": "CNF-001",
                "ota_commission_type": "GROSS",
                "ota_commission_pct": "15.00",
                "sm_agent_id": "8b8e2678-8179-40f5-973d-6824ced83590",
                "sm_agent_name": "Agoda",
                "guest_name": "John Doe",
                "sm_guest_id": null,
                "nationality": "ID",
                "sm_nationality_id": null,
                "country": null,
                "sm_country_id": null,
                "adults": 2,
                "children": 0,
                "check_in": "2026-05-01",
                "check_out": "2026-05-03",
                "nights": 2,
                "num_rooms": 1,
                "special_request": null,
                "room_type": "Standard Double",
                "room_type_id": "123",
                "rate_type": "Room Only",
                "room_number": null,
                "sm_room_type_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
                "sm_room_type_name": "Standard Double",
                "sm_room_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
                "sm_room_name": "101",
                "sm_rate_plan_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
                "sm_rate_plan_name": "Room Only",
                "sm_rate_type_id": "d4e5f6a7-b8c9-0123-def0-1234567890123",
                "sm_rate_type_name": "STANDAR",
                "payment_type": "ota_collect",
                "payment_type_raw": "OTA Collect",
                "payment_collect_type": "ota-collect",
                "status": "confirmed",
                "status_raw": "Confirmed",
                "sync_status": false,
                "already_inbooking": false,
                "currency": "IDR",
                "total_amount": "500000.00",
                "commission": "75000.00",
                "net_amount": "425000.00",
                "booked_at": "2026-04-01",
                "created_at": "2026-04-20T10:00:00.000000Z",
                "updated_at": "2026-04-20T10:00:00.000000Z"
            }
        ],
        "pagination": {
            "current_page": 1,
            "total_page": 4,
            "total_item": 118,
            "total_item_current_page": 30
        }
    }
}
 

Example response (400):


{
    "message": "Invalid request data.",
    "data": {}
}
 

Example response (500):


{
    "message": "Something went wrong. Please try again.",
    "data": []
}
 

Request   

POST api/v1/property/future-booking-imports/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

Property UUID. Example: cfc616bb-3145-4a98-bb6b-0efb5c8203ed

search   string  optional    

optional Keyword search (case-insensitive). Matches against guest name, booking ID, OTA name. Example: John

check_in_start_date   string  optional    

optional Check-in from (Y-m-d). Use together with check_in_end_date. Example: et

check_in_end_date   string  optional    

optional Check-in to (Y-m-d). Use together with check_in_start_date. Example: provident

booking_id   string  optional    

optional Partial match on booking ID. Example: tenetur

guest_name   string  optional    

optional Partial match (case-insensitive) on guest name. Example: laborum

ota_name   string  optional    

optional Partial match (case-insensitive) on OTA name. Example: officia

import_batch   string  optional    

optional Filter by import batch ID. Example: dolores

source   string  optional    

optional Exact source key (e.g. agoda). Example: qui

status   string  optional    

optional Partial match (case-insensitive) on booking status. Example: qui

page_number   integer  optional    

optional Page number (minimum 1). If omitted, page 1 is used. Example: 7

per_page   integer  optional    

optional Results per page. Default: 30, max: 100. Example: 14

Update SM Mapping (Bulk)

Update SM mapping fields on multiple future booking import records in one request. Each item must include an id. On each processed row, sync_status is reset to false and sync_response to null. All field changes are recorded in the change log.

Example request:
curl --request POST \
    "http://localhost/api/v1/property/future-booking-imports/mapping/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"updates\": [
        \"reprehenderit\"
    ]
}"
const url = new URL(
    "http://localhost/api/v1/property/future-booking-imports/mapping/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "updates": [
        "reprehenderit"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/future-booking-imports/mapping/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'updates' => [
                'reprehenderit',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Mapping updated successfully.",
    "data": {
        "updated": 2,
        "not_found": 1,
        "results": [
            {
                "id": "550e8400-e29b-41d4-a716-446655440010",
                "status": "updated",
                "changes": [
                    {
                        "field": "sm_room_type_id",
                        "old_value": null,
                        "new_value": 5
                    }
                ]
            },
            {
                "id": "550e8400-e29b-41d4-a716-446655440011",
                "status": "no_change",
                "changes": []
            },
            {
                "id": "550e8400-e29b-41d4-a716-446655440099",
                "status": "not_found"
            }
        ]
    }
}
 

Example response (400):


{
    "message": "Invalid request data.",
    "data": {
        "updates": []
    }
}
 

Example response (500):


{
    "message": "Something went wrong. Please try again.",
    "data": []
}
 

Request   

POST api/v1/property/future-booking-imports/mapping/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

updates   string[]     

Array of objects, each with a uuid and one or more SM fields.

id   string     

UUID of the record. Example: 550e8400-e29b-41d4-a716-446655440000

sm_agent_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440003

sm_room_type_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440005

sm_room_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440012

sm_rate_type_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440002

sm_rate_plan_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440007

sm_guest_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440009

sm_country_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440101

sm_nationality_id   string  optional    

optional UUID. Example: 550e8400-e29b-41d4-a716-446655440101

num_rooms   integer  optional    

optional Number of rooms. Minimum 1. Example: 2

total_amount   string  optional    

optional Numeric, up to 2 decimal places, >= 0. Example: 500000.00

commission   string  optional    

optional Numeric, up to 2 decimal places, >= 0. Example: 75000.00

net_amount   string  optional    

optional Numeric, up to 2 decimal places, >= 0. Example: 425000.00

deposit_amount   string  optional    

optional Numeric, up to 2 decimal places, >= 0. Example: `100000.00

Payload example:

{
  "updates": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "sm_agent_id": "550e8400-e29b-41d4-a716-446655440003",
      "sm_room_type_id": "550e8400-e29b-41d4-a716-446655440005",
      "sm_room_id": "550e8400-e29b-41d4-a716-446655440012",
      "sm_rate_type_id": "550e8400-e29b-41d4-a716-446655440002",
      "sm_rate_plan_id": "550e8400-e29b-41d4-a716-446655440007",
      "sm_guest_id": "550e8400-e29b-41d4-a716-446655440009",
      "sm_country_id": "550e8400-e29b-41d4-a716-446655440101",
      "sm_nationality_id": "550e8400-e29b-41d4-a716-446655440101",
      "num_rooms": 2,
      "total_amount": "500000.00",
      "commission": "75000.00",
      "net_amount": "425000.00",
      "deposit_amount": "100000.00"
    }
  ]
}

General Area

Remove Area

Example request:
curl --request POST \
    "http://localhost/api/v1/general/area/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"rerum\"
}"
const url = new URL(
    "http://localhost/api/v1/general/area/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "rerum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/area/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'rerum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Country",
    "data": []
}
 

Request   

POST api/v1/general/area/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Area Example: rerum

General Country

Country Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/country/details/ef4b248a-72c1-3672-94f6-e7aced8fd512" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/country/details/ef4b248a-72c1-3672-94f6-e7aced8fd512"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/country/details/ef4b248a-72c1-3672-94f6-e7aced8fd512';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"message":"Success get Feature Detail","data":{"id":"e1679215-52d3-49b2-b369-09e1496f759a","name":"System Features","category"{"id":"796b8a28-e184-49e8-be8c-19fe898e0439","name":"System Setup"}}}
 

Request   

GET api/v1/general/country/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Country. Example: ef4b248a-72c1-3672-94f6-e7aced8fd512

Add / Update Country

Example request:
curl --request POST \
    "http://localhost/api/v1/general/country" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"molestiae\",
    \"phonecode\": \"+62\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/general/country"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "molestiae",
    "phonecode": "+62",
    "id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/country';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'molestiae',
            'phonecode' => '+62',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/general/country

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of country. Example: molestiae

phonecode   string     

the name of country. Example: +62

id   string  optional    

if need uuid for update name of country. Example: '********-****-****-****-************'

Remove Country

Example request:
curl --request POST \
    "http://localhost/api/v1/general/country/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"autem\"
}"
const url = new URL(
    "http://localhost/api/v1/general/country/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "autem"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/country/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'autem',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Country",
    "data": []
}
 

Request   

POST api/v1/general/country/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Country Example: autem

General Currency

Currency Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/currency/details/19e1651d-bb6d-3da0-8215-bb8fa895aafc" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/currency/details/19e1651d-bb6d-3da0-8215-bb8fa895aafc"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/currency/details/19e1651d-bb6d-3da0-8215-bb8fa895aafc';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Currency Detail",
    "data": {
        "id": "3a80ca6a-d642-4bc2-8d1e-652bf99b4ad9",
        "name": "Euro",
        "code": "EUR",
        "symbol": "€",
        "country": {
            "id": "8f42c620-ab87-440a-b146-dd4d477a4ac5",
            "name": "Andorra"
        }
    }
}
 

Request   

GET api/v1/general/currency/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Currency. Example: 19e1651d-bb6d-3da0-8215-bb8fa895aafc

Get Datatables Currency

Example request:
curl --request POST \
    "http://localhost/api/v1/general/currency/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/currency/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/currency/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 217,
    "recordsFiltered": 217,
    "data": [
        {
            "id": "d2cb66bd-8705-411d-9818-96795a7d971b",
            "name": "Afghan afghani",
            "code": "AFN",
            "symbol": "؋",
            "country_name": "Afghanistan"
        }
    ]
}
 

Request   

POST api/v1/general/currency/datatables

Headers

Authorization        

Example: Bearer ***************************************

Add / Update Currency

Example request:
curl --request POST \
    "http://localhost/api/v1/general/currency" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"libero\",
    \"code\": \"soluta\",
    \"symbol\": \"sit\",
    \"country_id\": \"\'********-****-****-****-************\'\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/general/currency"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "libero",
    "code": "soluta",
    "symbol": "sit",
    "country_id": "'********-****-****-****-************'",
    "id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/currency';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'libero',
            'code' => 'soluta',
            'symbol' => 'sit',
            'country_id' => '\'********-****-****-****-************\'',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Currency Detail",
    "data": {
        "id": "3a80ca6a-d642-4bc2-8d1e-652bf99b4ad9",
        "name": "Euro",
        "code": "EUR",
        "symbol": "€",
        "country": {
            "id": "8f42c620-ab87-440a-b146-dd4d477a4ac5",
            "name": "Andorra"
        }
    }
}
 

Request   

POST api/v1/general/currency

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of Currency. Example: libero

code   string     

the code of Currency. Example: soluta

symbol   string     

the symbol of Currency. Example: sit

country_id   string     

the uuid of country. Example: '********-****-****-****-************'

id   string  optional    

if need uuid for update name of region. Example: '********-****-****-****-************'

Remove Currency

Example request:
curl --request POST \
    "http://localhost/api/v1/general/currency/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"ea\"
}"
const url = new URL(
    "http://localhost/api/v1/general/currency/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "ea"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/currency/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'ea',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Currency",
    "data": []
}
 

Request   

POST api/v1/general/currency/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Currency Example: ea

General Language

Remove Language

Example request:
curl --request POST \
    "http://localhost/api/v1/general/languages/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/general/languages/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/languages/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Language",
    "data": []
}
 

Request   

POST api/v1/general/languages/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Language Example: et

General Region

Regions Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/region/details/20acf5cf-7eef-3799-8999-3224a4829a34" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/region/details/20acf5cf-7eef-3799-8999-3224a4829a34"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/region/details/20acf5cf-7eef-3799-8999-3224a4829a34';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"message":"Success get Feature Detail","data":{"id":"e1679215-52d3-49b2-b369-09e1496f759a","name":"System Features","category"{"id":"796b8a28-e184-49e8-be8c-19fe898e0439","name":"System Setup"}}}
 

Request   

GET api/v1/general/region/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Regions. Example: 20acf5cf-7eef-3799-8999-3224a4829a34

Add / Update Region

Example request:
curl --request POST \
    "http://localhost/api/v1/general/region" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"ipsam\",
    \"country_id\": \"\'********-****-****-****-************\'\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/general/region"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "ipsam",
    "country_id": "'********-****-****-****-************'",
    "id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/region';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'ipsam',
            'country_id' => '\'********-****-****-****-************\'',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Region update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/general/region

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of Region. Example: ipsam

country_id   string     

the uuid of country. Example: '********-****-****-****-************'

id   string  optional    

if need uuid for update name of region. Example: '********-****-****-****-************'

Remove Region

Example request:
curl --request POST \
    "http://localhost/api/v1/general/region/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"provident\"
}"
const url = new URL(
    "http://localhost/api/v1/general/region/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "provident"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/region/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'provident',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Region",
    "data": []
}
 

Request   

POST api/v1/general/region/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Region Example: provident

General Timezone

TimeZone Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/timezone/details/509888bf-5c14-3901-ae56-58a5e97a5882" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/timezone/details/509888bf-5c14-3901-ae56-58a5e97a5882"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/timezone/details/509888bf-5c14-3901-ae56-58a5e97a5882';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Time Zone Detail",
    "data": {
        "id": "6a8d3106-a22e-4f63-a81f-e2464c9a1461",
        "name": "Africa/Algiers"
    }
}
 

Request   

GET api/v1/general/timezone/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of TimeZone. Example: 509888bf-5c14-3901-ae56-58a5e97a5882

Get Datatables Timezone

Example request:
curl --request POST \
    "http://localhost/api/v1/general/timezone/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/timezone/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/timezone/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 425,
    "recordsFiltered": 425,
    "data": [
        {
            "id": "59af78ff-d35f-40e4-8220-ff67af5d07a3",
            "name": "Africa/Abidjan"
        },
        {
            "id": "f311336a-f1ee-4c7b-9e1e-7d6e61c67e41",
            "name": "Africa/Accra"
        }
    ]
}
 

Request   

POST api/v1/general/timezone/datatables

Headers

Authorization        

Example: Bearer ***************************************

Add / Update Timezone

Example request:
curl --request POST \
    "http://localhost/api/v1/general/timezone" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/general/timezone"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "id": "'********-****-****-****-************'"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/timezone';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Time Zone Data",
    "data": {
        "id": "fdc4a74b-f837-40e2-bd2a-435c7603c7f3",
        "name": "Asia/banyuwangi"
    }
}
 

Request   

POST api/v1/general/timezone

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of Timezone. Example: consequatur

id   string  optional    

if need uuid for update name of Timezone. Example: '********-****-****-****-************'

Remove Timezone

Example request:
curl --request POST \
    "http://localhost/api/v1/general/timezone/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"labore\"
}"
const url = new URL(
    "http://localhost/api/v1/general/timezone/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "labore"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/general/timezone/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'labore',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Timezone",
    "data": []
}
 

Request   

POST api/v1/general/timezone/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Country Example: labore

Guest List Daily

Option Guest List Daily

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestdaily/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"pariatur\",
    \"mode\": \"show_by\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestdaily/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "pariatur",
    "mode": "show_by"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestdaily/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'pariatur',
            'mode' => 'show_by',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Type",
    "data": {
        "all": "All",
        "arival": "Arival",
        "in_house": "In House",
        "depature": "Depature"
    }
}
 

Request   

POST api/v1/property/guestdaily/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: pariatur

mode   string  optional    

The language. Example: show_by

Must be one of:
  • list_type
  • show_by

Detail List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestdaily/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quis\",
    \"days\": \"velit\",
    \"list_type\": \"source_list.\",
    \"show_by\": \"room_type.\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestdaily/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quis",
    "days": "velit",
    "list_type": "source_list.",
    "show_by": "room_type."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestdaily/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quis',
            'days' => 'velit',
            'list_type' => 'source_list.',
            'show_by' => 'room_type.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Daily Found",
    "data": {
        "in_house": [
            {
                "room_type_name": "Standard",
                "list": [
                    {
                        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
                        "booking_no": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "guest": {
                            "name": "Mr. Takayuki Nomoto",
                            "id": "2da48c55-2688-443f-99b3-47ab29616604"
                        },
                        "country": {
                            "name": "Japan",
                            "id": "72a89d6b-78a8-4db9-b66c-3a16af183567"
                        },
                        "room_type": {
                            "name": "Standard",
                            "id": "a880635a-810f-4f9b-b39a-3f49387ec7d5"
                        },
                        "room": {
                            "name": "101",
                            "id": "e7541067-7551-4905-b13a-e7f026a06a48"
                        },
                        "agent": {
                            "name": "Walk In",
                            "id": "e41961d9-620e-4290-9497-64ece423e82c"
                        },
                        "arival": "2024-09-17",
                        "depature": "2024-09-19",
                        "adult": 2,
                        "child": 2,
                        "special_request": null,
                        "remark": null
                    }
                ]
            }
        ]
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/guestdaily/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: quis

days   string  optional    

date of date report date format Y-m-d. Example: velit

list_type   string  optional    

required. Example: source_list.

Must be one of:
  • all
  • arival
  • in_house
  • depature
show_by   string  optional    

required. Example: room_type.

Must be one of:
  • room_type
  • booking

Print List

Example request:
curl --request GET \
    --get "http://localhost/api/v1/property/guestdaily/list/print/at" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"non\",
    \"days\": \"esse\",
    \"list_type\": \"source_list.\",
    \"show_by\": \"room_type.\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestdaily/list/print/at"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "non",
    "days": "esse",
    "list_type": "source_list.",
    "show_by": "room_type."
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestdaily/list/print/at';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'non',
            'days' => 'esse',
            'list_type' => 'source_list.',
            'show_by' => 'room_type.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Guest List Daily Found",
    "data": {
        "in_house": [
            {
                "room_type_name": "Standard",
                "list": [
                    {
                        "booking_id": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "booking_room_id": "7a35bc8f-1403-4d8a-9c05-7191ed8445e7",
                        "booking_no": "c75fe791-ec00-4687-9a7d-34734e8b38bd",
                        "guest": {
                            "name": "Mr. Takayuki Nomoto",
                            "id": "2da48c55-2688-443f-99b3-47ab29616604"
                        },
                        "country": {
                            "name": "Japan",
                            "id": "72a89d6b-78a8-4db9-b66c-3a16af183567"
                        },
                        "room_type": {
                            "name": "Standard",
                            "id": "a880635a-810f-4f9b-b39a-3f49387ec7d5"
                        },
                        "room": {
                            "name": "101",
                            "id": "e7541067-7551-4905-b13a-e7f026a06a48"
                        },
                        "agent": {
                            "name": "Walk In",
                            "id": "e41961d9-620e-4290-9497-64ece423e82c"
                        },
                        "arival": "2024-09-17",
                        "depature": "2024-09-19",
                        "adult": 2,
                        "child": 2,
                        "special_request": null,
                        "remark": null
                    }
                ]
            }
        ]
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

GET api/v1/property/guestdaily/list/print/{key}

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

URL Parameters

key   string     

Example: at

Body Parameters

property_id   string     

uuid of Property. Example: non

days   string  optional    

date of date report date format Y-m-d. Example: esse

list_type   string  optional    

required. Example: source_list.

Must be one of:
  • all
  • arival
  • in_house
  • depature
show_by   string  optional    

required. Example: room_type.

Must be one of:
  • room_type
  • booking

Master Property Groups

Property Groups Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/property-groups/details/a3da0798-b2e1-34f0-b96d-0dbdfc6fd80d" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property-groups/details/a3da0798-b2e1-34f0-b96d-0dbdfc6fd80d"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property-groups/details/a3da0798-b2e1-34f0-b96d-0dbdfc6fd80d';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Property Group Detail",
    "data": {
        "id": "c96fcd65-593a-4f6b-bc90-2f005f0e5652",
        "name": "Hotel Dummy Group"
    }
}
 

Request   

GET api/v1/master/property-groups/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property Groups. Example: a3da0798-b2e1-34f0-b96d-0dbdfc6fd80d

Miscellaneous Endpoint

Option Editor Input

Example request:
curl --request POST \
    "http://localhost/api/v1/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"parentcoa\"
}"
const url = new URL(
    "http://localhost/api/v1/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "parentcoa"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'parentcoa',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: parentcoa

Must be one of:
  • property
  • property-group
  • country-name
  • region-name
  • area-name
  • currency
  • language
  • timezone
  • user-category
  • amenities-category

Nightautdit

Detail Data

Example request:
curl --request POST \
    "http://localhost/api/v1/property/nightaudit/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"molestiae\"
}"
const url = new URL(
    "http://localhost/api/v1/property/nightaudit/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "molestiae"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/nightaudit/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'molestiae',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get Room Rate Detail",
    "data": {
        "option": {
            "tax_and_service_list": [
                {
                    "label": "Room Rate Tax 11 and Service 10",
                    "key": "5d80d7db-f029-44b8-9864-44f3607e2417"
                }
            ],
            "rate_plan_list": [
                {
                    "key": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "label": "Room And Breakfast Rate",
                    "start_date": "2024-08-03",
                    "end_date": "2024-08-03",
                    "min_night": 1,
                    "max_night": 1,
                    "max_adult": 2,
                    "max_pax": 4,
                    "room_rate": 100000,
                    "extra_adult_rate": 0,
                    "extra_child_rate": 0,
                    "rate_plan_type": {
                        "id": "2ec584a2-18a8-46ec-ac5a-51597eae3055",
                        "name": "STANDAR"
                    },
                    "tax_and_service": {
                        "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                        "name": "Room Rate Tax 11 and Service 10"
                    },
                    "currency": {
                        "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                        "name": "Indonesian rupiah",
                        "code": "IDR",
                        "symbol": "Rp"
                    }
                }
            ]
        },
        "detail": {
            "booking_id": "20116992-4e7d-46d6-8688-3bda65b5b782",
            "booking_room_id": "8b8f158b-263e-4244-a9d3-444b65dbe512",
            "room_type_id": "a880635a-810f-4f9b-b39a-3f49387ec7d5",
            "room_id": "e7541067-7551-4905-b13a-e7f026a06a48",
            "arival": "2024-09-23",
            "depature": "2024-09-26",
            "rate_plan_default": {
                "id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                "name": "Room And Breakfast Rate"
            },
            "tax_and_service_default": {
                "id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                "name": "Room Rate Tax 11 and Service 10"
            },
            "rate_list": [
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-23",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-24",
                    "rate": 200000
                },
                {
                    "rate_plan_id": "97b6b6fa-f6d0-4d96-9ad2-86561c59b673",
                    "tax_and_service_id": "5d80d7db-f029-44b8-9864-44f3607e2417",
                    "rate_date": "2024-09-25",
                    "rate": 200000
                }
            ],
            "total_amount": 485995.07999999996,
            "total_service": 54545.46,
            "total_tax": 59459.46,
            "total_rate": 0,
            "currency": {
                "id": "75dd1475-858b-46b4-9d17-80b9d0640057",
                "name": "Indonesian rupiah",
                "code": "IDR",
                "symbol": "Rp"
            }
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/nightaudit/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: molestiae

Process Nightautdit

Example request:
curl --request POST \
    "http://localhost/api/v1/property/nightaudit/process" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"sed\",
    \"nightaudit_process_date\": \"qui\",
    \"ignore_bill_outstanding\": \"aut\"
}"
const url = new URL(
    "http://localhost/api/v1/property/nightaudit/process"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "sed",
    "nightaudit_process_date": "qui",
    "ignore_bill_outstanding": "aut"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/nightaudit/process';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'sed',
            'nightaudit_process_date' => 'qui',
            'ignore_bill_outstanding' => 'aut',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Payment Option",
    "data": {
        "id": "d7b69ca5-9ee5-4edd-b3ec-0b7e9877cf1a",
        "name": "Cash"
    }
}
 

Request   

POST api/v1/property/nightaudit/process

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of booking Example: sed

nightaudit_process_date   string  optional    

add this value nightaudit date will process with format date Y-m-d. Exmp:2024-02-18 Example: qui

ignore_bill_outstanding   bolean  optional    

this value set if you want ignore outstanding bill Example: aut

Payment Collect Type Setup

Payment Collect Type Details

Example request:
curl --request POST \
    "http://localhost/api/v1/master/payment-collect-type/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"payment_collect_type_id\": \"quod\"
}"
const url = new URL(
    "http://localhost/api/v1/master/payment-collect-type/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "payment_collect_type_id": "quod"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/payment-collect-type/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'payment_collect_type_id' => 'quod',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Payment Collect Type detail",
    "data": {
        "id": "4ec7d72b-34c7-4390-9e78-71e0136221c8",
        "name": "Hotel Collect",
        "name_slug": "hotel-collect",
        "is_permanent": true
    }
}
 

Request   

POST api/v1/master/payment-collect-type/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

payment_collect_type_id   string     

uuid of Bill Type Example: quod

Datatables Payment Collect Type

Example request:
curl --request POST \
    "http://localhost/api/v1/master/payment-collect-type/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/payment-collect-type/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/payment-collect-type/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 4,
    "recordsFiltered": 4,
    "data": [
        {
            "id": "4ec7d72b-34c7-4390-9e78-71e0136221c8",
            "name": "Hotel Collect",
            "name_slug": "hotel-collect",
            "is_permanent": "Yes"
        },
        {
            "id": "9afb548f-77a9-4ad6-b528-651dfe856c6f",
            "name": "Channel Collect",
            "name_slug": "channel-collect",
            "is_permanent": "Yes"
        },
        {
            "id": "b89389e9-b007-437c-a45f-d24bdefa1276",
            "name": "Agent Collect",
            "name_slug": "agent-collect",
            "is_permanent": "Yes"
        },
        {
            "id": "273472fb-f27c-4b2a-8cf0-5d147946c2ff",
            "name": "Guest Collect",
            "name_slug": "guest-collect",
            "is_permanent": "Yes"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"payment_collect_types\" where \"payment_collect_types\".\"deleted_at\" is null",
            "bindings": [],
            "time": 1.13
        },
        {
            "query": "select * from \"payment_collect_types\" where \"payment_collect_types\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.2
        }
    ],
    "input": {
        "payment_collect_type_id": "4ec7d72b-34c7-4390-9e78-71e0136221c8"
    }
}
 

Request   

POST api/v1/master/payment-collect-type/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Payment Collect Type

Example request:
curl --request POST \
    "http://localhost/api/v1/master/payment-collect-type" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"labore\",
    \"name\": \"doloremque\",
    \"is_permanent\": \"consequatur\"
}"
const url = new URL(
    "http://localhost/api/v1/master/payment-collect-type"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "labore",
    "name": "doloremque",
    "is_permanent": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/payment-collect-type';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'labore',
            'name' => 'doloremque',
            'is_permanent' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room type",
    "data": {
        "id": "3696cda0-035d-4827-a406-c14e6fcdf264",
        "name": "Room Type baru",
        "description": "Room Type Baru Description",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
        "amenities": [
            {
                "category_id": "37b32a73-0c29-4d5a-80bd-1717901d015e",
                "category_name": "Room Amenities",
                "amenities_list": [
                    {
                        "id": "78e7914b-21b5-4bdd-b461-2d3cd72b8f67",
                        "name": "Adapter",
                        "is_select": false
                    },
                    {
                        "id": "05300f15-884d-409e-a396-536929d3cbcf",
                        "name": "Air conditioning",
                        "is_select": true
                    },
                    {
                        "id": "a7d9dedc-cf0b-4d68-9a48-37e14461fdf4",
                        "name": "Air conditioning single room",
                        "is_select": false
                    },
                    {
                        "id": "fd1f09c8-0aca-4f66-b071-cc030a76b36b",
                        "name": "Balcony",
                        "is_select": true
                    },
                    {
                        "id": "dba356b4-5d41-4546-84cf-b08f6585f457",
                        "name": "Bathtub",
                        "is_select": false
                    },
                    {
                        "id": "252b28a2-6add-4a37-85c5-d22598b5e2a1",
                        "name": "Carpeted",
                        "is_select": false
                    },
                    {
                        "id": "f214eca9-262c-4307-979d-3e4bd8de39b4",
                        "name": "Childrens cribs",
                        "is_select": true
                    },
                    {
                        "id": "dc05d273-baec-48b0-acdf-559c39a35f61",
                        "name": "Cleaning products",
                        "is_select": false
                    },
                    {
                        "id": "404dd22a-26e0-4931-b3b2-99333f1e968e",
                        "name": "Clothes rack",
                        "is_select": false
                    },
                    {
                        "id": "3c23f5bb-59ee-4f48-b88a-be1d94681df6",
                        "name": "Desk",
                        "is_select": false
                    },
                    {
                        "id": "bc0c5784-2809-4904-b4e0-bab8b9e1e3d0",
                        "name": "Dryer",
                        "is_select": true
                    },
                    {
                        "id": "99fedee9-ecef-4875-81ce-2a4b9f16cd0a",
                        "name": "Drying rack for clothing",
                        "is_select": false
                    },
                    {
                        "id": "7a8eee4a-155a-4214-b105-68705f2e381b",
                        "name": "Electric blankets",
                        "is_select": false
                    },
                    {
                        "id": "b7757b5e-fa8e-465b-8c3e-f481ed0aba66",
                        "name": "Electric kettle",
                        "is_select": false
                    },
                    {
                        "id": "ce91b7d8-afa1-466d-bfd2-cbc01d107aa8",
                        "name": "Extra long beds (> 6.5 ft)",
                        "is_select": false
                    },
                    {
                        "id": "d0de7cd0-bf27-416f-9317-d65ede231d2f",
                        "name": "Fan",
                        "is_select": false
                    },
                    {
                        "id": "ef8e700d-34cd-46f3-ad83-e40192ff2a8f",
                        "name": "Feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "68d1483f-999a-4155-b2e4-86e0edf8c3ab",
                        "name": "Fireplace",
                        "is_select": false
                    },
                    {
                        "id": "9c1b1920-b3c0-4ce6-8e76-e9a41ceb3b28",
                        "name": "Flat-screen TV",
                        "is_select": false
                    },
                    {
                        "id": "206d34a2-716d-4f08-8895-b18a152c5c5c",
                        "name": "Fold-up bed",
                        "is_select": false
                    },
                    {
                        "id": "feb09933-4210-4e53-a083-60e0ff5f2076",
                        "name": "Hardwood or parquet floors",
                        "is_select": false
                    },
                    {
                        "id": "2d83428c-67f0-424c-b3cf-7b64c7bbde4d",
                        "name": "Heated pool",
                        "is_select": false
                    },
                    {
                        "id": "0e457b6c-27f9-4170-9174-ddcc4a44dbbc",
                        "name": "Heating",
                        "is_select": false
                    },
                    {
                        "id": "a91728b8-4c62-4644-bfc3-8673cdd06c5e",
                        "name": "Hot tub",
                        "is_select": false
                    },
                    {
                        "id": "96fc900e-041f-454c-9aae-45dd06b9a142",
                        "name": "Hypoallergenic",
                        "is_select": false
                    },
                    {
                        "id": "daeea86a-79c0-45b8-81a7-e76333134b3d",
                        "name": "Hypoallergenic pillow",
                        "is_select": false
                    },
                    {
                        "id": "9f577ec2-34e9-4d5c-87df-868bb8ffae4d",
                        "name": "Infinity Pool",
                        "is_select": false
                    },
                    {
                        "id": "0897bc60-47b1-46dd-a822-2bcaeb07d8e8",
                        "name": "Interconnecting rooms",
                        "is_select": false
                    },
                    {
                        "id": "a662f19e-419c-41a9-a0a0-b0c2f00f24dd",
                        "name": "Iron",
                        "is_select": false
                    },
                    {
                        "id": "46a2ee4a-c711-4dd2-a99d-ce6c6ebf3a31",
                        "name": "Ironing facilities",
                        "is_select": false
                    },
                    {
                        "id": "6107ec89-e45a-43f5-ac25-598f20535951",
                        "name": "Mosquito net",
                        "is_select": false
                    },
                    {
                        "id": "1818a164-cfd0-435a-8398-f7ddc11401f4",
                        "name": "Non-feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "1ca6771c-37ae-4ff6-84d0-4277f27365b0",
                        "name": "Pajamas",
                        "is_select": false
                    },
                    {
                        "id": "3e611ae2-edf5-4473-ae7b-c6ab2d6ce946",
                        "name": "Plunge Pool",
                        "is_select": false
                    },
                    {
                        "id": "a13e0b46-0d5e-4503-bc11-af25b568609a",
                        "name": "Pool cover",
                        "is_select": false
                    },
                    {
                        "id": "86854195-b984-415f-925e-bee9172388dc",
                        "name": "Pool towels",
                        "is_select": false
                    },
                    {
                        "id": "b5687b9d-65b2-4d1a-aa22-b2ef72a26685",
                        "name": "Pool with a view",
                        "is_select": false
                    },
                    {
                        "id": "bc8c3d71-115f-45ff-8d98-6d6c7c1ad6b7",
                        "name": "Private pool",
                        "is_select": false
                    },
                    {
                        "id": "7ba1a081-d56b-4608-9d2e-1110fa4cd601",
                        "name": "Rooftop pool",
                        "is_select": false
                    },
                    {
                        "id": "b808b875-492d-458d-a6bc-720372622767",
                        "name": "Safe",
                        "is_select": false
                    },
                    {
                        "id": "d990b235-5121-4b63-ad8c-5ee1721196b4",
                        "name": "Saltwater pool",
                        "is_select": false
                    },
                    {
                        "id": "b38466d0-9e59-4736-8204-0b01d379faa0",
                        "name": "Shallow end",
                        "is_select": false
                    },
                    {
                        "id": "bc33df3d-9f0f-425b-a0df-46ab53e7aa83",
                        "name": "Sitting area",
                        "is_select": false
                    },
                    {
                        "id": "441d79fb-82a4-458a-8bd2-8f91f40f5e2b",
                        "name": "Socket near the bed",
                        "is_select": false
                    },
                    {
                        "id": "30d5b8ec-8f2e-4fc6-899a-5714a9d7be63",
                        "name": "Sofa",
                        "is_select": false
                    },
                    {
                        "id": "06b027ce-138e-4f61-bc25-10165e24cbfd",
                        "name": "Sofa bed",
                        "is_select": false
                    },
                    {
                        "id": "f2d7c256-4b44-48bf-a2a0-04917f773784",
                        "name": "Soundproof",
                        "is_select": false
                    },
                    {
                        "id": "f39be007-f9d0-413a-9434-335578838ac8",
                        "name": "Suit press",
                        "is_select": false
                    },
                    {
                        "id": "892e321b-5422-48d7-8c1d-950486a1ea57",
                        "name": "Tile/Marble floor",
                        "is_select": false
                    },
                    {
                        "id": "7bdbc02c-4cf0-487a-9faa-bbe25447795a",
                        "name": "Toilet paper",
                        "is_select": false
                    },
                    {
                        "id": "5f84000a-c63d-4234-93c7-dcf36434b1ff",
                        "name": "Towels",
                        "is_select": false
                    },
                    {
                        "id": "b8937943-2b2c-4818-8943-cea8f0754fe6",
                        "name": "Trash cans",
                        "is_select": false
                    },
                    {
                        "id": "26ad03ba-c55c-489a-a550-92f19982df53",
                        "name": "View",
                        "is_select": false
                    },
                    {
                        "id": "ec55c805-84d8-4457-b5b8-fec22adf8ec6",
                        "name": "Walk-in closet",
                        "is_select": false
                    },
                    {
                        "id": "8d560293-82fd-4135-99df-761aa540dbb7",
                        "name": "Wardrobe or closet",
                        "is_select": false
                    },
                    {
                        "id": "b0d7bf28-75d2-4f0a-8ad9-baabe2e50608",
                        "name": "Washing machine",
                        "is_select": false
                    },
                    {
                        "id": "17d5df9c-0bb9-4390-8177-9dc05b0ea92c",
                        "name": "Yukata",
                        "is_select": false
                    },
                    {
                        "id": "336a2aa5-fb92-432e-9d15-496f0638fd60",
                        "name": "Air purifiers",
                        "is_select": false
                    },
                    {
                        "id": "f822da69-c6d3-439d-aab2-58c28e09dc39",
                        "name": "Hand sanitizer",
                        "is_select": false
                    },
                    {
                        "id": "932710b6-8c27-4184-b3b3-7df86e2fb36f",
                        "name": "Bolsters",
                        "is_select": false
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/master/payment-collect-type

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Payment Collect Type id please not set param if you want create new Payment Collect Type Example: labore

name   string     

Name of Payment Collect Type Example: doloremque

is_permanent   bolean     

set true if Payment Collect Type permanent can't update or edit Example: consequatur

Remove Payment Collect Type

Example request:
curl --request POST \
    "http://localhost/api/v1/master/payment-collect-type/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"praesentium\"
}"
const url = new URL(
    "http://localhost/api/v1/master/payment-collect-type/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "praesentium"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/payment-collect-type/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'praesentium',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Room Type",
    "data": []
}
 

Request   

POST api/v1/master/payment-collect-type/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Bill Type Example: praesentium

Payment Recive List

Detail List

Example request:
curl --request POST \
    "http://localhost/api/v1/property/paymentreceive/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"quae\",
    \"start_date\": \"explicabo\",
    \"end_date\": \"natus\",
    \"payment_option_id\": \"cumque\",
    \"created_by_id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/property/paymentreceive/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "quae",
    "start_date": "explicabo",
    "end_date": "natus",
    "payment_option_id": "cumque",
    "created_by_id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/paymentreceive/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quae',
            'start_date' => 'explicabo',
            'end_date' => 'natus',
            'payment_option_id' => 'cumque',
            'created_by_id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Payment Receive List Found",
    "data": {
        "currency": {
            "name": "Indonesian rupiah",
            "code": "IDR",
            "symbol": "Rp"
        },
        "list": [
            {
                "payment_id": "e0de0fbd-e21c-4c0c-bb5b-da270a799270",
                "booking_id": "1ac58f56-1d2b-4020-8e3f-e7bba4c087a4",
                "booking_no": "20241107/HOTELDUMMY/0000000001",
                "booking_room_id": "b010c436-0833-43ca-857f-0ef395f9832a",
                "room_type": {
                    "id": "7736ad22-7de4-428d-8a8b-092e4cf87464",
                    "name": "Standard"
                },
                "room": {
                    "id": "f7876405-f036-4a9b-84ab-35689f2b9581",
                    "name": "101"
                },
                "guest": {
                    "id": "5f86d74d-89e3-454e-b541-fa4c87f540f7",
                    "name": "Mr. Agus Bawa I Nyoman"
                },
                "payment_date": "2024-11-08 10:38:23",
                "amount": 100000,
                "remark": "-",
                "payment_option": {
                    "id": "bcd4e196-88da-4e24-a5fa-ec94c6666b31",
                    "name": "Cash"
                },
                "coa": {
                    "id": "f9cd7c38-f694-4f5e-8a8a-b9ca92ded38c",
                    "code": "110-10-004",
                    "name": "House Bank Front Money Changer"
                },
                "payment_method_list": {
                    "list": [
                        {
                            "payment_option": {
                                "id": "bcd4e196-88da-4e24-a5fa-ec94c6666b31",
                                "name": "Cash"
                            },
                            "payment_option_methods": {
                                "id": "8fa223d1-0864-49c4-804a-84311468da6a",
                                "name": "Front Office Cash Clearance"
                            },
                            "coa": {
                                "id": "c59a97c4-ccbf-4a82-9eef-edbb89065280",
                                "code": "110-30-001",
                                "name": "F/O Cash Clearance"
                            },
                            "amount": 100000
                        }
                    ],
                    "total_amount": 100000
                },
                "bill_list": [
                    {
                        "bill_id": "1e4da49d-ee53-45cb-b87e-7e16dafb7094",
                        "bill_type": {
                            "id": "ede0a0bc-f1f9-489e-bb87-cd305ffdd0cb",
                            "name": "Room Charge"
                        },
                        "rate_plan": {
                            "id": "f196d387-9527-485c-8fc2-467e3fbfe289",
                            "name": "Room And Breakfast Rate"
                        },
                        "tax_and_service": {
                            "id": "a55185c0-de35-496f-b47e-5798b02bbbff",
                            "calculation_type": "INCLUDE",
                            "name": "Room Rate Tax 11 and Service 10",
                            "tax_percent": "11",
                            "service_percent": "10"
                        },
                        "bill_date": "2024-11-07",
                        "amount": 80999.18,
                        "tax_amount": 9909.91,
                        "service_amount": 9090.91,
                        "total": 100000
                    }
                ],
                "created_by": "Master User Api",
                "updated_by": null
            }
        ],
        "summary": {
            "total": 100000,
            "payment_option": [
                {
                    "name": "Cash - Front Office Cash Clearance",
                    "qty": 1,
                    "amount": 100000
                }
            ],
            "payment_option_total": 100000,
            "payment_option_total_qty": 1
        }
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/paymentreceive/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: quae

start_date   string  optional    

start date of date receive payment date format Y-m-d. Example: explicabo

end_date   string  optional    

end date of date receive payment date format Y-m-d. Example: natus

payment_option_id   string     

uuid of payment_option add this parameter if want for spesification method. Example: cumque

created_by_id   string     

uuid of user add this parameter if want for payment created by. Example: et

Option Payment Receive

Example request:
curl --request POST \
    "http://localhost/api/v1/property/paymentreceive/dropdownoptionlist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"mode\": \"roomavailable\"
}"
const url = new URL(
    "http://localhost/api/v1/property/paymentreceive/dropdownoptionlist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "mode": "roomavailable"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/paymentreceive/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'mode' => 'roomavailable',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List user Created",
    "data": [
        {
            "key": "0ad093e6-3587-4257-a118-0d6265d3347c",
            "label": "Master User Api"
        }
    ]
}
 

Request   

POST api/v1/property/paymentreceive/dropdownoptionlist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: et

mode   string  optional    

The language. Example: roomavailable

Must be one of:
  • payment_option
  • user_receive

Property Agent

Update Agent Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/agent" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: multipart/form-data" \
    --form "id=aut"\
    --form "property_id=velit"\
    --form "agent_source_id=optio"\
    --form "name=consequatur"\
    --form "address=fugit"\
    --form "phone=et"\
    --form "[email protected]"\
    --form "website=vitae"\
    --form "bg_color=quis"\
    --form "fg_color=et"\
    --form "logo_path=@/tmp/phpnOOBln" \
    --form "icon_path=@/tmp/phpMAdGln" 
const url = new URL(
    "http://localhost/api/v1/property/agent"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('id', 'aut');
body.append('property_id', 'velit');
body.append('agent_source_id', 'optio');
body.append('name', 'consequatur');
body.append('address', 'fugit');
body.append('phone', 'et');
body.append('email', '[email protected]');
body.append('website', 'vitae');
body.append('bg_color', 'quis');
body.append('fg_color', 'et');
body.append('logo_path', document.querySelector('input[name="logo_path"]').files[0]);
body.append('icon_path', document.querySelector('input[name="icon_path"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/agent';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'multipart/form-data',
        ],
        'multipart' => [
            [
                'name' => 'id',
                'contents' => 'aut'
            ],
            [
                'name' => 'property_id',
                'contents' => 'velit'
            ],
            [
                'name' => 'agent_source_id',
                'contents' => 'optio'
            ],
            [
                'name' => 'name',
                'contents' => 'consequatur'
            ],
            [
                'name' => 'address',
                'contents' => 'fugit'
            ],
            [
                'name' => 'phone',
                'contents' => 'et'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'website',
                'contents' => 'vitae'
            ],
            [
                'name' => 'bg_color',
                'contents' => 'quis'
            ],
            [
                'name' => 'fg_color',
                'contents' => 'et'
            ],
            [
                'name' => 'logo_path',
                'contents' => fopen('/tmp/phpnOOBln', 'r')
            ],
            [
                'name' => 'icon_path',
                'contents' => fopen('/tmp/phpMAdGln', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Agent Property",
    "data": {
        "id": "4aaf11d1-8008-48a9-a339-e76c0b8a55f6",
        "property": {
            "id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "name": "Hotel Dummy"
        },
        "agent_source_id": {
            "id": "2dae9823-80cc-4dac-aace-505cf5e406ea",
            "name": "Direct"
        },
        "name": "Property Agent Data update",
        "address": "Jl. Raya Andong.",
        "phone": "+6281805410047",
        "email": "[email protected]",
        "website": "www.agentdata.com",
        "logo_path": "https://lokaroom-api.lc/cdn/asset/83d515e0-626b-4c24-bae1-ba316ad9c8b1",
        "icon_path": "https://lokaroom-api.lc/cdn/asset/fc62dd9a-bb01-4681-aff7-8b4f67972580",
        "bg_color": "#000000",
        "fg_color": "#ffffff"
    }
}
 

Request   

POST api/v1/property/agent

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: multipart/form-data

Body Parameters

id   string     

uuid of Property agent Example: aut

property_id   string     

uuid of Property Example: velit

agent_source_id   string     

uuid of Property Example: optio

name   string     

Name of Agent Example: consequatur

address   string  optional    

Address of Agent Example: fugit

phone   string  optional    

Phone of Agent Example: et

email   string  optional    

E-mail of Agent Example: [email protected]

website   string  optional    

website of Agent Example: vitae

logo_path   file  optional    

logo dimension must width 1350 x height 750 Example: /tmp/phpnOOBln

icon_path   file  optional    

icon dimension ratio 1/1 Example: /tmp/phpMAdGln

bg_color   string  optional    

position on hex color text of Room Status Example: quis

fg_color   string  optional    

position on hex color text of Room Status Example: et

Detail Agent property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/agent/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptatem\",
    \"agent_id\": \"voluptas\"
}"
const url = new URL(
    "http://localhost/api/v1/property/agent/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptatem",
    "agent_id": "voluptas"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/agent/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptatem',
            'agent_id' => 'voluptas',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Property Agent detail",
    "data": {
        "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
        "property": {
            "id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "name": "Hotel Dummy"
        },
        "agent_source_id": {
            "id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In"
        },
        "name": "Walk In",
        "address": null,
        "phone": null,
        "email": null,
        "website": null,
        "logo_path": null,
        "icon_path": null,
        "bg_color": null,
        "fg_color": null
    }
}
 

Request   

POST api/v1/property/agent/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: voluptatem

agent_id   string     

uuid of Property Agent Example: voluptas

Datatables Agent Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/agent/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptas\"
}"
const url = new URL(
    "http://localhost/api/v1/property/agent/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptas"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/agent/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptas',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/property/agent/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: voluptas

Remove Agent Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/agent/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"itaque\"
}"
const url = new URL(
    "http://localhost/api/v1/property/agent/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "itaque"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/agent/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'itaque',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Property Agent",
    "data": []
}
 

Request   

POST api/v1/property/agent/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Agent Property Example: itaque

Option Agent Input

Example request:
curl --request POST \
    "http://localhost/api/v1/property/agent/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"officiis\",
    \"mode\": \"source_list\"
}"
const url = new URL(
    "http://localhost/api/v1/property/agent/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "officiis",
    "mode": "source_list"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/agent/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'officiis',
            'mode' => 'source_list',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/property/agent/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: officiis

mode   string  optional    

The language. Example: source_list

Must be one of:
  • source_list

Property Default Coa Mapping

List Default Coa Mapping

Example request:
curl --request POST \
    "http://localhost/api/v1/property/defaultcoamaping/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"sequi\"
}"
const url = new URL(
    "http://localhost/api/v1/property/defaultcoamaping/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "sequi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/defaultcoamaping/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'sequi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get list Coa",
    "data": {
        "id": "151f85bf-cb51-4aab-985c-8d451dcd901c",
        "name": "Room Rate Tax 11 and Service 10",
        "tax": "11",
        "service": "10",
        "use_service": true,
        "tax_coa": {
            "id": "563770be-ecf2-4f77-a717-46fcb69e90e9",
            "name": "220-00-060 | Recontruction Tax - PB 1"
        },
        "service_coa": {
            "id": "639fdb54-d802-442b-a19e-3bd5af5507ea",
            "name": "250-00-010 | A/P - Service Charge"
        }
    }
}
 

Request   

POST api/v1/property/defaultcoamaping/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: sequi

Option Input Default Coa Mapping

Example request:
curl --request POST \
    "http://localhost/api/v1/property/defaultcoamaping/dropdown" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"rerum\",
    \"mode\": \"coa_list\",
    \"coa_search\": \"nesciunt\"
}"
const url = new URL(
    "http://localhost/api/v1/property/defaultcoamaping/dropdown"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "rerum",
    "mode": "coa_list",
    "coa_search": "nesciunt"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/defaultcoamaping/dropdown';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'rerum',
            'mode' => 'coa_list',
            'coa_search' => 'nesciunt',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Caclculation Type Founds",
    "data": [
        {
            "key": "INCLUDE",
            "label": "Include on Rate"
        },
        {
            "key": "EXCLUDE",
            "label": "Exclude on Rate"
        }
    ]
}
 

Request   

POST api/v1/property/defaultcoamaping/dropdown

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: rerum

mode   string  optional    

The language. Example: coa_list

Must be one of:
  • coa_list
coa_search   string  optional    

name of Chart Account Example: nesciunt

Update Default Coa Mapping

Example request:
curl --request POST \
    "http://localhost/api/v1/property/defaultcoamaping" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"molestiae\",
    \"property_products\": [
        {
            \"id\": \"a1ba606b-4310-47f8-b94b-fd24a6049ea9\",
            \"name\": \"Room Charges\",
            \"sell_coa\": {
                \"id\": null,
                \"name\": null
            },
            \"cost_coa\": {
                \"id\": null,
                \"name\": null
            }
        }
    ],
    \"tax_and_services\": [
        {
            \"id\": \"99f5c5f5-4bdd-449f-950c-15ec32322a7d\",
            \"name\": \"Room Rate Tax 11 and Service 10\",
            \"tax_coa\": {
                \"id\": \"b6dd834c-1943-4996-89fe-fe98bd236ea4\",
                \"name\": \"220-00-060 | Recontruction Tax - PB 1\"
            },
            \"service_coa\": {
                \"id\": \"d928815a-2d1e-460d-af3d-4876edaa0fca\",
                \"name\": \"250-00-010 | A\\/P - Service Charge\"
            }
        }
    ],
    \"payment_options\": [
        {
            \"id\": \"fe3c8133-fb8b-4af2-8ac8-d74669daa7c1\",
            \"name\": \"Cash\",
            \"coa\": {
                \"id\": \"3427bc54-e123-4b13-84fb-3b05952bdb40\",
                \"name\": \"110-10-020 | Cash In Transit\"
            },
            \"payment_option_methods\": [
                {
                    \"id\": \"51a8722c-3e73-4dd3-99b9-67c842f53940\",
                    \"name\": \"Front Office Cash Clearance\",
                    \"coa\": {
                        \"id\": \"379d278f-df9a-4ac3-940e-9d889fa5f160\",
                        \"name\": \"110-30-001 | F\\/O Cash Clearance\"
                    }
                },
                {
                    \"id\": \"9e0b1d18-ed6f-440c-8ccc-735a203e03fb\",
                    \"name\": \"Outlet Cash Clearance\",
                    \"coa\": {
                        \"id\": \"7c477ddf-3247-4e9f-8b23-71bc35c5c6ff\",
                        \"name\": \"110-30-002 | Outlet Cash Clearance\"
                    }
                }
            ]
        }
    ],
    \"discount_options\": [
        {
            \"id\": \"7d2d649a-ddfd-4058-b9a2-f1d086d80b0b\",
            \"title\": \"Test Discount data\",
            \"coa\": {
                \"id\": \"f2a27621-3161-4bf2-ba7f-c19f58fe08c3\",
                \"name\": \"00001-01 | test Booking Discount\"
            }
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/property/defaultcoamaping"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "molestiae",
    "property_products": [
        {
            "id": "a1ba606b-4310-47f8-b94b-fd24a6049ea9",
            "name": "Room Charges",
            "sell_coa": {
                "id": null,
                "name": null
            },
            "cost_coa": {
                "id": null,
                "name": null
            }
        }
    ],
    "tax_and_services": [
        {
            "id": "99f5c5f5-4bdd-449f-950c-15ec32322a7d",
            "name": "Room Rate Tax 11 and Service 10",
            "tax_coa": {
                "id": "b6dd834c-1943-4996-89fe-fe98bd236ea4",
                "name": "220-00-060 | Recontruction Tax - PB 1"
            },
            "service_coa": {
                "id": "d928815a-2d1e-460d-af3d-4876edaa0fca",
                "name": "250-00-010 | A\/P - Service Charge"
            }
        }
    ],
    "payment_options": [
        {
            "id": "fe3c8133-fb8b-4af2-8ac8-d74669daa7c1",
            "name": "Cash",
            "coa": {
                "id": "3427bc54-e123-4b13-84fb-3b05952bdb40",
                "name": "110-10-020 | Cash In Transit"
            },
            "payment_option_methods": [
                {
                    "id": "51a8722c-3e73-4dd3-99b9-67c842f53940",
                    "name": "Front Office Cash Clearance",
                    "coa": {
                        "id": "379d278f-df9a-4ac3-940e-9d889fa5f160",
                        "name": "110-30-001 | F\/O Cash Clearance"
                    }
                },
                {
                    "id": "9e0b1d18-ed6f-440c-8ccc-735a203e03fb",
                    "name": "Outlet Cash Clearance",
                    "coa": {
                        "id": "7c477ddf-3247-4e9f-8b23-71bc35c5c6ff",
                        "name": "110-30-002 | Outlet Cash Clearance"
                    }
                }
            ]
        }
    ],
    "discount_options": [
        {
            "id": "7d2d649a-ddfd-4058-b9a2-f1d086d80b0b",
            "title": "Test Discount data",
            "coa": {
                "id": "f2a27621-3161-4bf2-ba7f-c19f58fe08c3",
                "name": "00001-01 | test Booking Discount"
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/defaultcoamaping';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'molestiae',
            'property_products' => [
                [
                    'id' => 'a1ba606b-4310-47f8-b94b-fd24a6049ea9',
                    'name' => 'Room Charges',
                    'sell_coa' => [
                        'id' => null,
                        'name' => null,
                    ],
                    'cost_coa' => [
                        'id' => null,
                        'name' => null,
                    ],
                ],
            ],
            'tax_and_services' => [
                [
                    'id' => '99f5c5f5-4bdd-449f-950c-15ec32322a7d',
                    'name' => 'Room Rate Tax 11 and Service 10',
                    'tax_coa' => [
                        'id' => 'b6dd834c-1943-4996-89fe-fe98bd236ea4',
                        'name' => '220-00-060 | Recontruction Tax - PB 1',
                    ],
                    'service_coa' => [
                        'id' => 'd928815a-2d1e-460d-af3d-4876edaa0fca',
                        'name' => '250-00-010 | A/P - Service Charge',
                    ],
                ],
            ],
            'payment_options' => [
                [
                    'id' => 'fe3c8133-fb8b-4af2-8ac8-d74669daa7c1',
                    'name' => 'Cash',
                    'coa' => [
                        'id' => '3427bc54-e123-4b13-84fb-3b05952bdb40',
                        'name' => '110-10-020 | Cash In Transit',
                    ],
                    'payment_option_methods' => [
                        [
                            'id' => '51a8722c-3e73-4dd3-99b9-67c842f53940',
                            'name' => 'Front Office Cash Clearance',
                            'coa' => [
                                'id' => '379d278f-df9a-4ac3-940e-9d889fa5f160',
                                'name' => '110-30-001 | F/O Cash Clearance',
                            ],
                        ],
                        [
                            'id' => '9e0b1d18-ed6f-440c-8ccc-735a203e03fb',
                            'name' => 'Outlet Cash Clearance',
                            'coa' => [
                                'id' => '7c477ddf-3247-4e9f-8b23-71bc35c5c6ff',
                                'name' => '110-30-002 | Outlet Cash Clearance',
                            ],
                        ],
                    ],
                ],
            ],
            'discount_options' => [
                [
                    'id' => '7d2d649a-ddfd-4058-b9a2-f1d086d80b0b',
                    'title' => 'Test Discount data',
                    'coa' => [
                        'id' => 'f2a27621-3161-4bf2-ba7f-c19f58fe08c3',
                        'name' => '00001-01 | test Booking Discount',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Tax and Service",
    "data": {
        "id": "ef9fd502-2b67-4ce2-a72c-2df489060659",
        "name": "tax and service test",
        "tax": "10",
        "service": "11",
        "use_service": true,
        "tax_coa": {
            "id": "6300fe91-d73e-49a2-a52a-59118078cf06",
            "name": "110-30-004 | FA Cash Clearnce"
        },
        "service_coa": {
            "id": "f57cfcf5-ef2f-4222-9476-f10f1822e0d5",
            "name": "120-00-007 | A/R JCB"
        }
    }
}
 

Request   

POST api/v1/property/defaultcoamaping

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: molestiae

property_products   object  optional    

list maping product

tax_and_services   object  optional    

list maping product

payment_options   object  optional    

list maping product

discount_options   object  optional    

list maping product

Property Department

Detail Department

Example request:
curl --request POST \
    "http://localhost/api/v1/property/department/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"minima\",
    \"department_id\": \"optio\"
}"
const url = new URL(
    "http://localhost/api/v1/property/department/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "minima",
    "department_id": "optio"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/department/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'minima',
            'department_id' => 'optio',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Bed Type detail",
    "data": {
        "id": "628af586-7e1e-438c-9f06-f32513ea0577",
        "name": "Twin",
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/department/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: minima

department_id   string     

uuid of Property Department Example: optio

Datatables Department

Example request:
curl --request POST \
    "http://localhost/api/v1/property/department/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/department/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/department/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 3,
    "recordsFiltered": 3,
    "data": [
        {
            "id": "e9954628-6ab7-4a55-8605-590e4db0754a",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Single",
            "property_name": "Hotel Dummy"
        },
        {
            "id": "628af586-7e1e-438c-9f06-f32513ea0577",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Twin",
            "property_name": "Hotel Dummy"
        },
        {
            "id": "a9d33065-8207-4c52-9cfa-b69a9c7753b3",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Twin",
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"room_bed_types\" where \"property_id\" = ? and \"room_bed_types\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 2.01
        },
        {
            "query": "select * from \"room_bed_types\" where \"property_id\" = ? and \"room_bed_types\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.49
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.9
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.82
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.67
        }
    ],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/department/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Department

Example request:
curl --request POST \
    "http://localhost/api/v1/property/department" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"aspernatur\",
    \"department_id\": \"temporibus\",
    \"department_name\": \"deleniti\"
}"
const url = new URL(
    "http://localhost/api/v1/property/department"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "aspernatur",
    "department_id": "temporibus",
    "department_name": "deleniti"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/department';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'aspernatur',
            'department_id' => 'temporibus',
            'department_name' => 'deleniti',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/property/department

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: aspernatur

department_id   string     

uuid of Department Example: temporibus

department_name   string     

Name of Department Example: deleniti

Property Expense

Update Expense Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/expense-invoice" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"exp_invoice_id\": \"qui\",
    \"property_id\": \"temporibus\",
    \"supplier_id\": \"quia\",
    \"coa_id\": \"voluptas\",
    \"trx_date\": \"harum\",
    \"total_amount\": 11,
    \"total_discount\": 4,
    \"total_commision\": 20,
    \"exp_details\": null,
    \"exp_payments\": null
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/expense-invoice"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "exp_invoice_id": "qui",
    "property_id": "temporibus",
    "supplier_id": "quia",
    "coa_id": "voluptas",
    "trx_date": "harum",
    "total_amount": 11,
    "total_discount": 4,
    "total_commision": 20,
    "exp_details": null,
    "exp_payments": null
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/expense-invoice';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'exp_invoice_id' => 'qui',
            'property_id' => 'temporibus',
            'supplier_id' => 'quia',
            'coa_id' => 'voluptas',
            'trx_date' => 'harum',
            'total_amount' => 11,
            'total_discount' => 4,
            'total_commision' => 20,
            'exp_details' => null,
            'exp_payments' => null,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Supplier Property",
    "data": {
        "id": "bbe093cb-9554-4d63-b91e-07ffc1a4caf8",
        "property": {
            "id": "ca301eec-832f-4154-99d7-7089a0ec941f",
            "name": "Hotel Dummy"
        },
        "supplier_no": "SUP-00002",
        "name": "Supplier Sayur",
        "address": "Jl Raya Umalas, kerobokan kelod, kuta utara, badung, bali",
        "phone": "081805410047",
        "email": "[email protected]",
        "website": "supplierdaging.com",
        "logo_path": null,
        "icon_path": null,
        "bg_color": "#000000",
        "fg_color": "#ffffff"
    }
}
 

Request   

POST api/v1/property/backoffice/expense-invoice

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

exp_invoice_id   string  optional    

uuid of Expense this parameter required if you want update expense Example: qui

property_id   string     

uuid of Property Example: temporibus

supplier_id   string     

uuid of Supplier Example: quia

coa_id   string     

uuid of Chart of Account Example: voluptas

trx_date   string  optional    

add this value expense date with format date Y-m-d H:i:s. Exmp:2024-02-18 Example: harum

total_amount   integer     

of expense amount Example: 11

total_discount   integer     

of expense amount Example: 4

total_commision   integer     

of expense amount Example: 20

exp_details   object[]  optional    

if have expense detail.

exp_payments   object[]  optional    

if have expense payment detail.

Remove Expense Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/expense-invoice/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"exp_invoice_id\": \"eum\",
    \"property_id\": \"omnis\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/expense-invoice/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "exp_invoice_id": "eum",
    "property_id": "omnis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/expense-invoice/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'exp_invoice_id' => 'eum',
            'property_id' => 'omnis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Supplier Property",
    "data": {
        "id": "bbe093cb-9554-4d63-b91e-07ffc1a4caf8",
        "property": {
            "id": "ca301eec-832f-4154-99d7-7089a0ec941f",
            "name": "Hotel Dummy"
        },
        "supplier_no": "SUP-00002",
        "name": "Supplier Sayur",
        "address": "Jl Raya Umalas, kerobokan kelod, kuta utara, badung, bali",
        "phone": "081805410047",
        "email": "[email protected]",
        "website": "supplierdaging.com",
        "logo_path": null,
        "icon_path": null,
        "bg_color": "#000000",
        "fg_color": "#ffffff"
    }
}
 

Request   

POST api/v1/property/backoffice/expense-invoice/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

exp_invoice_id   string  optional    

uuid of Expense this parameter required if you want update expense Example: eum

property_id   string     

uuid of Property Example: omnis

Reconcile Expense Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/expense-invoice/close" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"exp_invoice_id\": \"quo\",
    \"property_id\": \"aut\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/expense-invoice/close"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "exp_invoice_id": "quo",
    "property_id": "aut"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/expense-invoice/close';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'exp_invoice_id' => 'quo',
            'property_id' => 'aut',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Supplier Property",
    "data": {
        "id": "bbe093cb-9554-4d63-b91e-07ffc1a4caf8",
        "property": {
            "id": "ca301eec-832f-4154-99d7-7089a0ec941f",
            "name": "Hotel Dummy"
        },
        "supplier_no": "SUP-00002",
        "name": "Supplier Sayur",
        "address": "Jl Raya Umalas, kerobokan kelod, kuta utara, badung, bali",
        "phone": "081805410047",
        "email": "[email protected]",
        "website": "supplierdaging.com",
        "logo_path": null,
        "icon_path": null,
        "bg_color": "#000000",
        "fg_color": "#ffffff"
    }
}
 

Request   

POST api/v1/property/backoffice/expense-invoice/close

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

exp_invoice_id   string  optional    

uuid of Expense this parameter required if you want update expense Example: quo

property_id   string     

uuid of Property Example: aut

Option Property Expense

Example request:
curl --request POST \
    "http://localhost/api/v1/property/backoffice/expense-invoice/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"coa\",
    \"property_id\": \"quia\",
    \"supplier_search\": \"quo\",
    \"coa_search\": \"ut\",
    \"default_value\": \"eveniet\",
    \"payment_option_id\": \"voluptatum\",
    \"payment_option_search\": \"ab\",
    \"payment_method_search\": \"placeat\"
}"
const url = new URL(
    "http://localhost/api/v1/property/backoffice/expense-invoice/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "coa",
    "property_id": "quia",
    "supplier_search": "quo",
    "coa_search": "ut",
    "default_value": "eveniet",
    "payment_option_id": "voluptatum",
    "payment_option_search": "ab",
    "payment_method_search": "placeat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/backoffice/expense-invoice/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'quia',
            'supplier_search' => 'quo',
            'coa_search' => 'ut',
            'default_value' => 'eveniet',
            'payment_option_id' => 'voluptatum',
            'payment_option_search' => 'ab',
            'payment_method_search' => 'placeat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart of Account Founds",
    "data": [
        {
            "key": null,
            "label": "1200 | ACCOUNT RECEIVABLE",
            "sub": [
                {
                    "key": "3c94c024-c6a6-4207-b091-d6fb893e8396",
                    "label": "--120-00-009 | A/R Other Credit Cards"
                }
            ]
        }
    ]
}
 

Request   

POST api/v1/property/backoffice/expense-invoice/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • supplier
property_id   string     

uuid of Room Type Example: quia

supplier_search   string     

supplier name Example: quo

coa_search   string     

name of coa finding Example: ut

default_value   string     

name of coa default value Example: eveniet

payment_option_id   string     

uuid of payment option Example: voluptatum

payment_option_search   string     

name of Payment option Example: ab

payment_method_search   string     

name of Payment method Example: placeat

Property Groups

Property Groups Datatables

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property-groups/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property-groups/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property-groups/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": 1,
            "name": "Hotel Dummy Group"
        }
    ]
}
 

Request   

POST api/v1/master/property-groups/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Property Groups

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property-groups" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"reiciendis\",
    \"name\": \"quaerat\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property-groups"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "reiciendis",
    "name": "quaerat"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property-groups';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'reiciendis',
            'name' => 'quaerat',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Property Groups",
    "data": {
        "id": "d495d56f-3db7-46c9-a468-e94153ad1a06",
        "name": "New Group Property"
    }
}
 

Request   

POST api/v1/master/property-groups

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property Groups Example: reiciendis

name   string     

Name of Amenities Example: quaerat

Remove Property Groups

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property-groups/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"asperiores\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property-groups/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "asperiores"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property-groups/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'asperiores',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Property Groups",
    "data": []
}
 

Request   

POST api/v1/master/property-groups/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Country Example: asperiores

Property Guest Profile

Datatables Guest Profile

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestprofile/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"at\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestprofile/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "at"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestprofile/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'at',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 9,
    "recordsFiltered": 9,
    "data": [
        {
            "id": "36db5f75-a1d3-4fa7-9aae-2d7588ce4079",
            "first_name": "Rai Octa Vioni",
            "last_name": "Ni Luh",
            "identity_no": "20234560000000",
            "email": "[email protected]",
            "phone": "+6281805410047",
            "address": "jl Raya Umalas 1, gg surya no 2 kerobokan kelod, kuta utara, badung bali",
            "guest_name": "Mrs. Rai Octa Vioni Ni Luh",
            "country_name": "Indonesia",
            "nationality_name": "Netherlands"
        }
    ],
    "input": {
        "property_id": "b8bc912c-ad4b-4419-8850-04347fd90c09"
    }
}
 

Request   

POST api/v1/property/guestprofile/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: at

Get detail Guest Profile Data

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestprofile/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"et\",
    \"guest_id\": \"et\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestprofile/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "et",
    "guest_id": "et"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestprofile/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'et',
            'guest_id' => 'et',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/guestprofile/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: et

guest_id   string     

uuid of Property Guest Profile Example: et

Create Or Update

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestprofile/save" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"guest_id\": \"commodi\",
    \"property_id\": \"consequatur\",
    \"guest_prefix_id\": \"et\",
    \"first_name\": \"autem\",
    \"last_name\": \"accusamus\",
    \"country_id\": \"et\",
    \"national_id\": \"neque\",
    \"identity_type_id\": \"quasi\",
    \"identity_no\": \"ut\",
    \"email\": \"[email protected]\",
    \"phone\": \"et\",
    \"address\": \"cumque\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestprofile/save"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "guest_id": "commodi",
    "property_id": "consequatur",
    "guest_prefix_id": "et",
    "first_name": "autem",
    "last_name": "accusamus",
    "country_id": "et",
    "national_id": "neque",
    "identity_type_id": "quasi",
    "identity_no": "ut",
    "email": "[email protected]",
    "phone": "et",
    "address": "cumque"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestprofile/save';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'guest_id' => 'commodi',
            'property_id' => 'consequatur',
            'guest_prefix_id' => 'et',
            'first_name' => 'autem',
            'last_name' => 'accusamus',
            'country_id' => 'et',
            'national_id' => 'neque',
            'identity_type_id' => 'quasi',
            'identity_no' => 'ut',
            'email' => '[email protected]',
            'phone' => 'et',
            'address' => 'cumque',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "0090c2a3-79b6-4e8d-94d1-84fc01bc3eb9",
    "name": "New Country update",
    "phonecode": "+6200"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/guestprofile/save

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

guest_id   string     

uuid of Property Guest Profile this parameter just need if want update detail profile Example: commodi

property_id   string     

uuid of Property Example: consequatur

guest_prefix_id   string     

uuid of Guest Prefix Example: et

first_name   string     

First Name Of Guest Profile Example: autem

last_name   string     

Last Name Of Guest Profile Example: accusamus

country_id   string     

uuid of Country Example: et

national_id   string     

uuid of National same use country data Example: neque

identity_type_id   string     

uuid of Guest Identity Type Example: quasi

identity_no   string     

Identity Number Of Guest Profile Example: ut

email   string     

Email Of Guest Profile Example: [email protected]

phone   string     

Phone Of Guest Profile Example: et

address   string     

Address Of Guest Profile Example: cumque

Option Property Guest Input

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestprofile/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"consequuntur\",
    \"mode\": \"guestprefix\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestprofile/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "consequuntur",
    "mode": "guestprefix"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestprofile/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'consequuntur',
            'mode' => 'guestprefix',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/property/guestprofile/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: consequuntur

mode   string  optional    

The language. Example: guestprefix

Must be one of:
  • guestprefix
  • guestcountry
  • guestnationality
  • guestidentitytype

Duplicate Guest Profile

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestprofile/duplicate/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"hic\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestprofile/duplicate/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "hic"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestprofile/duplicate/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'hic',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Have Guest Profile Duplicate",
    "data": [
        {
            "main_profile": {
                "id": "f0c07a03-0e9c-4cf2-a362-a29ac4f28bbd",
                "guest_prefix": "Mrs.",
                "first_name": "Ernawati",
                "last_name": "Ni Luh",
                "country": null,
                "national": null,
                "identity_type": null,
                "identity_no": null,
                "email": null,
                "phone": null,
                "address": null
            },
            "duplicate_profile": [
                {
                    "id": "6dca87d1-bbe1-4255-9f54-df139399eb3a",
                    "guest_prefix": "Mrs.",
                    "first_name": "Ernawati",
                    "last_name": "Ni Luh",
                    "country": null,
                    "national": null,
                    "identity_type": null,
                    "identity_no": null,
                    "email": null,
                    "phone": null,
                    "address": null
                }
            ]
        }
    ]
}
 

Request   

POST api/v1/property/guestprofile/duplicate/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: hic

Duplicate Guest Merge

Example request:
curl --request POST \
    "http://localhost/api/v1/property/guestprofile/duplicate/merge" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"error\",
    \"guest_id\": [
        []
    ]
}"
const url = new URL(
    "http://localhost/api/v1/property/guestprofile/duplicate/merge"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "error",
    "guest_id": [
        []
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/guestprofile/duplicate/merge';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'error',
            'guest_id' => [
                [],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Merge Guest Profile",
    "data": []
}
 

Request   

POST api/v1/property/guestprofile/duplicate/merge

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: error

guest_id   object[]     

uuid of Property Guest Profile

Property Night Audit Settings

Option Property Night Audit Settings

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/night-audit-setting/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"excepturi\",
    \"mode\": \"detail\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property/night-audit-setting/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "excepturi",
    "mode": "detail"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/night-audit-setting/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'excepturi',
            'mode' => 'detail',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart Of Account Template Options Founds",
    "data": [
        {
            "id": "6fe39895-7805-4e41-a241-f19b80ebf6f5",
            "name": "Full Chart Of Account"
        },
        {
            "id": "460a784a-e3d0-4fe1-b699-a55c52d03b69",
            "name": "Simple Chart Of Account"
        }
    ]
}
 

Request   

POST api/v1/master/property/night-audit-setting/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   uuid  optional    

string required id of Property id, if not set group please not set this parameter Example: excepturi

mode   string  optional    

The property. Example: detail

Must be one of:
  • detail

Add / Update Property

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/night-audit-setting" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"repellat\",
    \"is_auto\": true,
    \"run_time_schedule\": \"eum\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property/night-audit-setting"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "repellat",
    "is_auto": true,
    "run_time_schedule": "eum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/night-audit-setting';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'repellat',
            'is_auto' => true,
            'run_time_schedule' => 'eum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Property",
    "data": {
        "id": "4ad856b3-a493-487d-88e7-7c9d67b378bb",
        "prefix_booking_code": "nagata-booking",
        "name": "Nagata Resort And Retreat",
        "address": "Jl Bisma 20010 tegallang ubud",
        "zip_code": "80361",
        "phone": "+6281805410047",
        "email_primary": "[email protected]",
        "logo_path": "https://lokaroom-api.lc/cdn/asset/e7b2f9d5-71d8-4cc0-9b43-afcf7a80751f",
        "website": "https://nagata.com",
        "longitude": "-8.6425998",
        "latitude": "115.1770584",
        "google_map_url": "https://maps.app.goo.gl/Nruid5SG9R1ekhwR9",
        "sosmed_facebook_url": "facebok",
        "sosmed_instagram_url": "instagram",
        "sosmed_youtube_url": "youtube",
        "sosmed_twitter_url": "twiter",
        "description": null,
        "property_group": {
            "id": "d0988d1d-a3d0-4494-807d-e9777345d4a4",
            "name": "Hotel Dummy Group"
        },
        "area": {
            "id": "5f8e34b9-0207-48b5-af11-1fc90e84d0e4",
            "area_name": "Aceh Selatan",
            "region_name": "Aceh",
            "country_name": "Indonesia"
        },
        "currency": {
            "id": "99ebc31c-bcec-42a3-940c-d586c20558c9",
            "name": "Afghan afghani"
        },
        "timezone": {
            "id": "461ce532-c63f-4ada-8a3b-4a6317b8bff1",
            "name": "Africa/Abidjan"
        }
    }
}
 

Request   

POST api/v1/master/property/night-audit-setting

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   uuid  optional    

string required id of Property id, if not set group please not set this parameter Example: repellat

is_auto   boolean  optional    

if you want automatic run nightaudit please set this to true Example: true

run_time_schedule   string     

if set auto night audit true format time H:i:s Example: eum

Property Product Category

Detail Product Category

Example request:
curl --request POST \
    "http://localhost/api/v1/property/product-category/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"vel\",
    \"poduct_category_id\": \"sapiente\"
}"
const url = new URL(
    "http://localhost/api/v1/property/product-category/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "vel",
    "poduct_category_id": "sapiente"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/product-category/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'vel',
            'poduct_category_id' => 'sapiente',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Bed Type detail",
    "data": {
        "id": "628af586-7e1e-438c-9f06-f32513ea0577",
        "name": "Twin",
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/product-category/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: vel

poduct_category_id   string     

uuid of Property Product Category Example: sapiente

Datatables Product Category

Example request:
curl --request POST \
    "http://localhost/api/v1/property/product-category/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/product-category/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/product-category/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 3,
    "recordsFiltered": 3,
    "data": [
        {
            "id": "e9954628-6ab7-4a55-8605-590e4db0754a",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Single",
            "property_name": "Hotel Dummy"
        },
        {
            "id": "628af586-7e1e-438c-9f06-f32513ea0577",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Twin",
            "property_name": "Hotel Dummy"
        },
        {
            "id": "a9d33065-8207-4c52-9cfa-b69a9c7753b3",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Twin",
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"room_bed_types\" where \"property_id\" = ? and \"room_bed_types\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 2.01
        },
        {
            "query": "select * from \"room_bed_types\" where \"property_id\" = ? and \"room_bed_types\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.49
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.9
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.82
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.67
        }
    ],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/product-category/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Product Category

Example request:
curl --request POST \
    "http://localhost/api/v1/property/product-category" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"itaque\",
    \"product_category_id\": \"aut\",
    \"name\": \"dolores\"
}"
const url = new URL(
    "http://localhost/api/v1/property/product-category"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "itaque",
    "product_category_id": "aut",
    "name": "dolores"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/product-category';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'itaque',
            'product_category_id' => 'aut',
            'name' => 'dolores',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/property/product-category

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: itaque

product_category_id   string     

uuid of Product Category Example: aut

name   string     

Name of Product Category Example: dolores

Remove Product Category

Example request:
curl --request POST \
    "http://localhost/api/v1/property/product-category/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"product_category_id\": \"velit\"
}"
const url = new URL(
    "http://localhost/api/v1/property/product-category/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "product_category_id": "velit"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/product-category/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'product_category_id' => 'velit',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/property/product-category/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

product_category_id   string     

uuid of Property Product Category Example: velit

Property Products

Detail Products

Example request:
curl --request POST \
    "http://localhost/api/v1/property/property-product/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptas\",
    \"product_id\": \"quo\"
}"
const url = new URL(
    "http://localhost/api/v1/property/property-product/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "voluptas",
    "product_id": "quo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/property-product/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'voluptas',
            'product_id' => 'quo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Type detail",
    "data": {
        "id": "054cd951-626c-400d-8764-3f28e266d806",
        "name": "Standard Balcony",
        "description": "Standard Balcony Room",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/property-product/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: voluptas

product_id   string     

uuid of Property Room Status Example: quo

Datatables Products

Example request:
curl --request POST \
    "http://localhost/api/v1/property/property-product/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/property-product/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/property-product/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 5,
    "recordsFiltered": 5,
    "data": [
        {
            "id": "214310a1-f98b-4edb-9e55-5a1616875318",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Standard",
            "description": "Standar Room",
            "position_order": 1,
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/property-product/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Products

Example request:
curl --request POST \
    "http://localhost/api/v1/property/property-product" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"numquam\",
    \"property_id\": \"quia\",
    \"category_id\": \"dicta\",
    \"department_id\": \"provident\",
    \"sell_coa_id\": \"sed\",
    \"cost_coa_id\": \"expedita\",
    \"name\": \"sit\",
    \"remark\": \"neque\",
    \"sell_amount\": 17,
    \"cost_amount\": 18,
    \"is_active\": \"sed\"
}"
const url = new URL(
    "http://localhost/api/v1/property/property-product"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "numquam",
    "property_id": "quia",
    "category_id": "dicta",
    "department_id": "provident",
    "sell_coa_id": "sed",
    "cost_coa_id": "expedita",
    "name": "sit",
    "remark": "neque",
    "sell_amount": 17,
    "cost_amount": 18,
    "is_active": "sed"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/property-product';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'numquam',
            'property_id' => 'quia',
            'category_id' => 'dicta',
            'department_id' => 'provident',
            'sell_coa_id' => 'sed',
            'cost_coa_id' => 'expedita',
            'name' => 'sit',
            'remark' => 'neque',
            'sell_amount' => 17,
            'cost_amount' => 18,
            'is_active' => 'sed',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room type",
    "data": {
        "id": "3696cda0-035d-4827-a406-c14e6fcdf264",
        "name": "Room Type baru",
        "description": "Room Type Baru Description",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
        "amenities": [
            {
                "category_id": "37b32a73-0c29-4d5a-80bd-1717901d015e",
                "category_name": "Room Amenities",
                "amenities_list": [
                    {
                        "id": "78e7914b-21b5-4bdd-b461-2d3cd72b8f67",
                        "name": "Adapter",
                        "is_select": false
                    },
                    {
                        "id": "05300f15-884d-409e-a396-536929d3cbcf",
                        "name": "Air conditioning",
                        "is_select": true
                    },
                    {
                        "id": "a7d9dedc-cf0b-4d68-9a48-37e14461fdf4",
                        "name": "Air conditioning single room",
                        "is_select": false
                    },
                    {
                        "id": "fd1f09c8-0aca-4f66-b071-cc030a76b36b",
                        "name": "Balcony",
                        "is_select": true
                    },
                    {
                        "id": "dba356b4-5d41-4546-84cf-b08f6585f457",
                        "name": "Bathtub",
                        "is_select": false
                    },
                    {
                        "id": "252b28a2-6add-4a37-85c5-d22598b5e2a1",
                        "name": "Carpeted",
                        "is_select": false
                    },
                    {
                        "id": "f214eca9-262c-4307-979d-3e4bd8de39b4",
                        "name": "Childrens cribs",
                        "is_select": true
                    },
                    {
                        "id": "dc05d273-baec-48b0-acdf-559c39a35f61",
                        "name": "Cleaning products",
                        "is_select": false
                    },
                    {
                        "id": "404dd22a-26e0-4931-b3b2-99333f1e968e",
                        "name": "Clothes rack",
                        "is_select": false
                    },
                    {
                        "id": "3c23f5bb-59ee-4f48-b88a-be1d94681df6",
                        "name": "Desk",
                        "is_select": false
                    },
                    {
                        "id": "bc0c5784-2809-4904-b4e0-bab8b9e1e3d0",
                        "name": "Dryer",
                        "is_select": true
                    },
                    {
                        "id": "99fedee9-ecef-4875-81ce-2a4b9f16cd0a",
                        "name": "Drying rack for clothing",
                        "is_select": false
                    },
                    {
                        "id": "7a8eee4a-155a-4214-b105-68705f2e381b",
                        "name": "Electric blankets",
                        "is_select": false
                    },
                    {
                        "id": "b7757b5e-fa8e-465b-8c3e-f481ed0aba66",
                        "name": "Electric kettle",
                        "is_select": false
                    },
                    {
                        "id": "ce91b7d8-afa1-466d-bfd2-cbc01d107aa8",
                        "name": "Extra long beds (> 6.5 ft)",
                        "is_select": false
                    },
                    {
                        "id": "d0de7cd0-bf27-416f-9317-d65ede231d2f",
                        "name": "Fan",
                        "is_select": false
                    },
                    {
                        "id": "ef8e700d-34cd-46f3-ad83-e40192ff2a8f",
                        "name": "Feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "68d1483f-999a-4155-b2e4-86e0edf8c3ab",
                        "name": "Fireplace",
                        "is_select": false
                    },
                    {
                        "id": "9c1b1920-b3c0-4ce6-8e76-e9a41ceb3b28",
                        "name": "Flat-screen TV",
                        "is_select": false
                    },
                    {
                        "id": "206d34a2-716d-4f08-8895-b18a152c5c5c",
                        "name": "Fold-up bed",
                        "is_select": false
                    },
                    {
                        "id": "feb09933-4210-4e53-a083-60e0ff5f2076",
                        "name": "Hardwood or parquet floors",
                        "is_select": false
                    },
                    {
                        "id": "2d83428c-67f0-424c-b3cf-7b64c7bbde4d",
                        "name": "Heated pool",
                        "is_select": false
                    },
                    {
                        "id": "0e457b6c-27f9-4170-9174-ddcc4a44dbbc",
                        "name": "Heating",
                        "is_select": false
                    },
                    {
                        "id": "a91728b8-4c62-4644-bfc3-8673cdd06c5e",
                        "name": "Hot tub",
                        "is_select": false
                    },
                    {
                        "id": "96fc900e-041f-454c-9aae-45dd06b9a142",
                        "name": "Hypoallergenic",
                        "is_select": false
                    },
                    {
                        "id": "daeea86a-79c0-45b8-81a7-e76333134b3d",
                        "name": "Hypoallergenic pillow",
                        "is_select": false
                    },
                    {
                        "id": "9f577ec2-34e9-4d5c-87df-868bb8ffae4d",
                        "name": "Infinity Pool",
                        "is_select": false
                    },
                    {
                        "id": "0897bc60-47b1-46dd-a822-2bcaeb07d8e8",
                        "name": "Interconnecting rooms",
                        "is_select": false
                    },
                    {
                        "id": "a662f19e-419c-41a9-a0a0-b0c2f00f24dd",
                        "name": "Iron",
                        "is_select": false
                    },
                    {
                        "id": "46a2ee4a-c711-4dd2-a99d-ce6c6ebf3a31",
                        "name": "Ironing facilities",
                        "is_select": false
                    },
                    {
                        "id": "6107ec89-e45a-43f5-ac25-598f20535951",
                        "name": "Mosquito net",
                        "is_select": false
                    },
                    {
                        "id": "1818a164-cfd0-435a-8398-f7ddc11401f4",
                        "name": "Non-feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "1ca6771c-37ae-4ff6-84d0-4277f27365b0",
                        "name": "Pajamas",
                        "is_select": false
                    },
                    {
                        "id": "3e611ae2-edf5-4473-ae7b-c6ab2d6ce946",
                        "name": "Plunge Pool",
                        "is_select": false
                    },
                    {
                        "id": "a13e0b46-0d5e-4503-bc11-af25b568609a",
                        "name": "Pool cover",
                        "is_select": false
                    },
                    {
                        "id": "86854195-b984-415f-925e-bee9172388dc",
                        "name": "Pool towels",
                        "is_select": false
                    },
                    {
                        "id": "b5687b9d-65b2-4d1a-aa22-b2ef72a26685",
                        "name": "Pool with a view",
                        "is_select": false
                    },
                    {
                        "id": "bc8c3d71-115f-45ff-8d98-6d6c7c1ad6b7",
                        "name": "Private pool",
                        "is_select": false
                    },
                    {
                        "id": "7ba1a081-d56b-4608-9d2e-1110fa4cd601",
                        "name": "Rooftop pool",
                        "is_select": false
                    },
                    {
                        "id": "b808b875-492d-458d-a6bc-720372622767",
                        "name": "Safe",
                        "is_select": false
                    },
                    {
                        "id": "d990b235-5121-4b63-ad8c-5ee1721196b4",
                        "name": "Saltwater pool",
                        "is_select": false
                    },
                    {
                        "id": "b38466d0-9e59-4736-8204-0b01d379faa0",
                        "name": "Shallow end",
                        "is_select": false
                    },
                    {
                        "id": "bc33df3d-9f0f-425b-a0df-46ab53e7aa83",
                        "name": "Sitting area",
                        "is_select": false
                    },
                    {
                        "id": "441d79fb-82a4-458a-8bd2-8f91f40f5e2b",
                        "name": "Socket near the bed",
                        "is_select": false
                    },
                    {
                        "id": "30d5b8ec-8f2e-4fc6-899a-5714a9d7be63",
                        "name": "Sofa",
                        "is_select": false
                    },
                    {
                        "id": "06b027ce-138e-4f61-bc25-10165e24cbfd",
                        "name": "Sofa bed",
                        "is_select": false
                    },
                    {
                        "id": "f2d7c256-4b44-48bf-a2a0-04917f773784",
                        "name": "Soundproof",
                        "is_select": false
                    },
                    {
                        "id": "f39be007-f9d0-413a-9434-335578838ac8",
                        "name": "Suit press",
                        "is_select": false
                    },
                    {
                        "id": "892e321b-5422-48d7-8c1d-950486a1ea57",
                        "name": "Tile/Marble floor",
                        "is_select": false
                    },
                    {
                        "id": "7bdbc02c-4cf0-487a-9faa-bbe25447795a",
                        "name": "Toilet paper",
                        "is_select": false
                    },
                    {
                        "id": "5f84000a-c63d-4234-93c7-dcf36434b1ff",
                        "name": "Towels",
                        "is_select": false
                    },
                    {
                        "id": "b8937943-2b2c-4818-8943-cea8f0754fe6",
                        "name": "Trash cans",
                        "is_select": false
                    },
                    {
                        "id": "26ad03ba-c55c-489a-a550-92f19982df53",
                        "name": "View",
                        "is_select": false
                    },
                    {
                        "id": "ec55c805-84d8-4457-b5b8-fec22adf8ec6",
                        "name": "Walk-in closet",
                        "is_select": false
                    },
                    {
                        "id": "8d560293-82fd-4135-99df-761aa540dbb7",
                        "name": "Wardrobe or closet",
                        "is_select": false
                    },
                    {
                        "id": "b0d7bf28-75d2-4f0a-8ad9-baabe2e50608",
                        "name": "Washing machine",
                        "is_select": false
                    },
                    {
                        "id": "17d5df9c-0bb9-4390-8177-9dc05b0ea92c",
                        "name": "Yukata",
                        "is_select": false
                    },
                    {
                        "id": "336a2aa5-fb92-432e-9d15-496f0638fd60",
                        "name": "Air purifiers",
                        "is_select": false
                    },
                    {
                        "id": "f822da69-c6d3-439d-aab2-58c28e09dc39",
                        "name": "Hand sanitizer",
                        "is_select": false
                    },
                    {
                        "id": "932710b6-8c27-4184-b3b3-7df86e2fb36f",
                        "name": "Bolsters",
                        "is_select": false
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/property/property-product

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Type id please not set param if you want create new room type Example: numquam

property_id   string     

uuid of Property Example: quia

category_id   string     

uuid of Category Example: dicta

department_id   string     

uuid of Department Example: provident

sell_coa_id   string     

uuid of Selling Chart Of Account Example: sed

cost_coa_id   string     

uuid of Cost Chart Of Account Example: expedita

name   string     

Name of Product Example: sit

remark   string  optional    

Remark Of Product Example: neque

sell_amount   integer     

sell amount price Example: 17

cost_amount   integer     

cost amount price Example: 18

is_active   bolean  optional    

uuid of room amenities Example: sed

Remove Products

Example request:
curl --request POST \
    "http://localhost/api/v1/property/property-product/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"necessitatibus\"
}"
const url = new URL(
    "http://localhost/api/v1/property/property-product/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "necessitatibus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/property-product/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'necessitatibus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Property Product",
    "data": []
}
 

Request   

POST api/v1/property/property-product/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property Product Example: necessitatibus

Option Products Input

Example request:
curl --request POST \
    "http://localhost/api/v1/property/property-product/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"category\",
    \"property_id\": \"dolor\"
}"
const url = new URL(
    "http://localhost/api/v1/property/property-product/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "category",
    "property_id": "dolor"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/property-product/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'category',
            'property_id' => 'dolor',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/property/property-product/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: category

Must be one of:
  • category
  • department
  • coa
  • property_currency
property_id   string     

uuid of Property Example: dolor

Property Room

Detail Room

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"at\",
    \"room_type_id\": \"ut\",
    \"room_id\": \"perspiciatis\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "at",
    "room_type_id": "ut",
    "room_id": "perspiciatis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'at',
            'room_type_id' => 'ut',
            'room_id' => 'perspiciatis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Type detail",
    "data": {
        "id": "054cd951-626c-400d-8764-3f28e266d806",
        "name": "Standard Balcony",
        "description": "Standard Balcony Room",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/room/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: at

room_type_id   string     

uuid of Property Room Type Example: ut

room_id   string     

uuid of Property Room Example: perspiciatis

Datatables Room Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"est\",
    \"room_type_id\": \"nemo\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "est",
    "room_type_id": "nemo"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'est',
            'room_type_id' => 'nemo',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 4,
    "recordsFiltered": 4,
    "data": [
        {
            "id": "594c67d4-6dff-4315-aa48-afb5139ab8ee",
            "room_type_id": "214310a1-f98b-4edb-9e55-5a1616875318",
            "room_bed_type_id": "e9954628-6ab7-4a55-8605-590e4db0754a",
            "name": "101",
            "description": "101",
            "room_status_id": "",
            "room_status_name": "",
            "room_status_text_color": "",
            "room_status_background": "",
            "room_type_name": "Standard",
            "room_bed_type_name": "Single"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
        "room_type_id": "214310a1-f98b-4edb-9e55-5a1616875318"
    }
}
 

Request   

POST api/v1/property/room/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: est

room_type_id   string     

uuid of Property Room Status Example: nemo

Create / Update Room

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"doloribus\",
    \"property_id\": \"eos\",
    \"room_type_id\": \"quasi\",
    \"room_bed_type_id\": \"dolores\",
    \"name\": \"magni\",
    \"description\": \"Est autem aspernatur quos nulla quia.\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "doloribus",
    "property_id": "eos",
    "room_type_id": "quasi",
    "room_bed_type_id": "dolores",
    "name": "magni",
    "description": "Est autem aspernatur quos nulla quia."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'doloribus',
            'property_id' => 'eos',
            'room_type_id' => 'quasi',
            'room_bed_type_id' => 'dolores',
            'name' => 'magni',
            'description' => 'Est autem aspernatur quos nulla quia.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room",
    "data": {
        "id": "8ee6a1e8-a3c0-4f91-8035-38cfcdd88131",
        "room_type": {
            "id": "c6f2e4e0-6b99-409b-bb48-e65e377dbbec",
            "name": "Standard Balcony"
        },
        "room_bed_type": {
            "id": "075c9027-3d6b-4a79-9e3c-3cb8d6cba34b",
            "name": "Twin"
        },
        "latest_status": [],
        "name": "Kamar Baru 101 update",
        "description": "kamar Terletak Di lantai 3",
        "position_order": 10
    }
}
 

Request   

POST api/v1/property/room

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room please ingnore this parameter if you want create new room Example: doloribus

property_id   string     

uuid of Property Example: eos

room_type_id   string     

uuid of Room Type Example: quasi

room_bed_type_id   string     

uuid of Room Bed Type Example: dolores

name   string     

Name of Room Example: magni

description   string     

Description of Room Example: Est autem aspernatur quos nulla quia.

Remove Room

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"laboriosam\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "laboriosam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'laboriosam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Room",
    "data": []
}
 

Request   

POST api/v1/property/room/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Example: laboriosam

Option Input Rooms

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"nobis\",
    \"mode\": \"bed_type\",
    \"room_id\": \"quasi\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "nobis",
    "mode": "bed_type",
    "room_id": "quasi"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'nobis',
            'mode' => 'bed_type',
            'room_id' => 'quasi',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Parrent Chart Of Accounts Founds",
    "data": [
        {
            "key": "210b2362-d9f6-45e0-a25b-ead638df9b91",
            "label": "1101 - HOUSE BANK"
        },
        {
            "key": "4ca4727f-53b2-46b7-b075-d91d6e0b4cfe",
            "label": "1102 - BANK"
        },
        {
            "key": "8fc28675-351f-433a-a5db-5a1de3034372",
            "label": "1103 - CASH CLEARANCE"
        },
        {
            "key": "8830ca00-d308-4e6a-95d4-62ad01228e90",
            "label": "1200 - ACCOUNT RECEIVABLE"
        },
        {
            "key": "fd1c04d4-ff02-4dff-90aa-19af7117ba57",
            "label": "1202 - OTHER RECEIVABLE"
        },
        {
            "key": "b42ccf09-1d0e-41a3-8eab-21ae5d2e0f31",
            "label": "1205 - AFFILIATED COMP.RECEIVABLE"
        },
        {
            "key": "81646715-b856-468a-b043-139486a308ca",
            "label": "1206 - DEPOSIT AND ADVANCED"
        },
        {
            "key": "b2267586-3d5e-493b-8ab1-77a112e3e839",
            "label": "1300 - INVENTORY"
        },
        {
            "key": "4081e874-138d-458c-90cb-aa0393c3bd3b",
            "label": "1302 - PREPAID EXPENSES"
        },
        {
            "key": "803cb6c1-fce1-46b0-b17e-37c2de7d8b67",
            "label": "1500 - PROPERTY & EQUIPMENT"
        },
        {
            "key": "23b79ab7-6670-4bad-944a-94483d9bbc28",
            "label": "1503 - FURNITURE, FIXTURE & EQUIPMENT"
        },
        {
            "key": "fc6257ca-106a-4d9e-8a30-b7d0c2f6dab3",
            "label": "1505 - OPERATING EQUIPMENT"
        },
        {
            "key": "f6ee9426-57c4-4a73-a344-ec04dd5f68c2",
            "label": "1600 - FIXED ASSET LEASING"
        },
        {
            "key": "eff45872-f200-426a-8041-c11c064a7166",
            "label": "1700 - ACC. DEPRE PROPERTY & EQUIPMENT"
        },
        {
            "key": "5d020502-871e-4947-bc42-fe51ac519653",
            "label": "1701 - ACC. DEPRE FURNITURE, FIXTURE &"
        },
        {
            "key": "0b09c462-295b-434d-a5d2-9dadc6f239ee",
            "label": "1702 - ACC. DEPRE OPERATING EQUIPMENT"
        },
        {
            "key": "bcb9d228-589b-43a0-b6ed-59aa4568e95c",
            "label": "1703 - ACC. DEPRE FIXED ASSET LEASING"
        },
        {
            "key": "fc5c56af-55b9-4ed2-8bc2-f388e9001554",
            "label": "1800 - OTHER ASSET"
        },
        {
            "key": "06a1cbb6-6f5e-4cfd-80a1-207b580c4717",
            "label": "2100 - ACCOUNT PAYABLE"
        },
        {
            "key": "7a790a80-bd59-4e79-8869-ace6fa7a55e0",
            "label": "2200 - TAX PAYABLE"
        },
        {
            "key": "8c0fd310-cc35-4ace-94e2-deb37cc79aa2",
            "label": "2300 - ACCRUED EXPENSES"
        },
        {
            "key": "00a4706d-5d9e-4a08-ba6d-9caccf45bff0",
            "label": "2400 - GUEST DEPOSIT"
        },
        {
            "key": "23c40acd-12b8-4ba1-aab9-d054cd541b30",
            "label": "2500 - OTHER LIABILITIES"
        },
        {
            "key": "b647d91e-7061-4a12-af2f-6d6cc89a7139",
            "label": "2600 - AFFILIATED COMPANY PAYABLE"
        },
        {
            "key": "7d690279-16ba-4ab1-9903-8cb04e88030f",
            "label": "2700 - PROVISION"
        },
        {
            "key": "a5e8d2a9-9ce6-43db-8283-19b2f4068274",
            "label": "2800 - RESERVE"
        },
        {
            "key": "b5f2fac5-37ae-4e9b-bb6f-7fe3185bfd11",
            "label": "2900 - LONG TERM LIABILITIES"
        },
        {
            "key": "56c709ec-38ea-4def-8c96-5a5fd04946c2",
            "label": "3100 - CAPITAL"
        },
        {
            "key": "7e95b34b-f1e8-4f04-b23a-04e3f2be8187",
            "label": "3200 - RETAINED EARNING"
        },
        {
            "key": "5a5cb85b-1ad5-4da5-a291-f914204af921",
            "label": "4001 - ROOM REVENUE"
        },
        {
            "key": "5555087b-30be-4759-85f8-d8acd3220c05",
            "label": "4102 - RESTAURANT REVENUE"
        },
        {
            "key": "cd40bf4e-8bb0-4af0-a619-22fc8d08e952",
            "label": "4103 - POOL BAR REVENUE"
        },
        {
            "key": "d13274cb-3158-4389-b05e-200f4932e613",
            "label": "4104 - BANQUET REVENUE"
        },
        {
            "key": "1000d05d-6280-4dec-9e1f-3231b821dd96",
            "label": "4105 - ROOM SERVICE REVENUE"
        },
        {
            "key": "480b5176-37b9-4851-b6db-1da3c22a015c",
            "label": "4106 - MINI BAR"
        },
        {
            "key": "2c55fb76-5ea6-4d3a-8430-fa2bbcfd9869",
            "label": "4107 - TELEPHONE REVENUE"
        },
        {
            "key": "6e024e8d-8ead-4623-b9d1-9d3370320af5",
            "label": "4108 - BUSINESS CENTER REVENUE"
        },
        {
            "key": "601d1eec-00a2-4300-9ebf-517fce44cd39",
            "label": "4109 - LAUNDRY REVENUE"
        },
        {
            "key": "698a22e9-7e09-402a-9ddd-13e19140def3",
            "label": "4110 - SPA REVENUE"
        },
        {
            "key": "d25c9ab5-95f5-47d4-a47e-ba8147bb7053",
            "label": "4301 - MOD REVENUE"
        },
        {
            "key": "60a19460-3517-48e6-82cf-e6855fe276f8",
            "label": "4302 - OTHER INCOME"
        },
        {
            "key": "ee51d258-0c3e-4971-ac91-bca3dafb8537",
            "label": "5000 - COST OF RESTAURANT"
        },
        {
            "key": "17d2fd3c-55fa-4e59-8fc2-cba98b557be9",
            "label": "5101 - COST OF POOL BAR"
        },
        {
            "key": "8504db70-44d7-4e62-9510-1ffca276c4c2",
            "label": "5102 - COST OF BANQUET"
        },
        {
            "key": "d7e55854-cc2b-4d9a-a693-8c5ce9d65891",
            "label": "5103 - COST OF ROOM SERVICE"
        },
        {
            "key": "e1c8b321-ebd6-499d-9002-2abd99c8fe66",
            "label": "5104 - TELEPHONE COST OF SALES"
        },
        {
            "key": "e2415705-6352-4899-a164-129e20aaa4aa",
            "label": "5105 - BC COST OF SALES"
        },
        {
            "key": "59c308ac-df35-44fd-b562-1e63312a84ad",
            "label": "5106 - LAUNDRY COST OF SALES"
        },
        {
            "key": "d8ee2e0b-57ac-40a3-b5af-157d539093b7",
            "label": "5109 - SPA COST OF SALES"
        },
        {
            "key": "820d1acc-0efb-4de8-9172-44c62e001a0c",
            "label": "5110 - MOD COST OF SALES"
        },
        {
            "key": "2d243fe1-1cfd-4205-88cc-cac68ef3eb43",
            "label": "6100 - FO PAYROLL & RELATED"
        },
        {
            "key": "5a9f0e73-9aaf-4d19-8dde-7223ae74feeb",
            "label": "6101 - FO OTHER EXPENSES"
        },
        {
            "key": "f4013403-dc42-4c57-bd58-4566fa2647d1",
            "label": "6102 - FO PROVISION"
        },
        {
            "key": "4e58b804-17b3-4447-a1a6-0359d713be34",
            "label": "6110 - HK PAYROLL & RELATED"
        },
        {
            "key": "8d103cc4-73d9-41e1-a647-0003af126eb1",
            "label": "6111 - HK OTHER EXPENSES"
        },
        {
            "key": "700d17b7-a83c-4532-ad5a-a307035687cc",
            "label": "6112 - HK PROVISION"
        },
        {
            "key": "15901219-d41c-4a2f-8329-6c5737cc0b11",
            "label": "6120 - REST PAYROLL & RELATED"
        },
        {
            "key": "9142a74a-ea26-4f5a-a106-5a6a1b0e7df4",
            "label": "6121 - REST OTHER EXPENSES"
        },
        {
            "key": "9a2a4764-6f60-4633-96a4-332dd6571e46",
            "label": "6122 - REST PROVISION"
        },
        {
            "key": "e60ce86c-68b4-4cde-bc85-28231266cee4",
            "label": "6130 - POOL BAR PAYROLL & RELATED"
        },
        {
            "key": "e561a4f8-588d-43aa-8a20-188edd2ae811",
            "label": "6131 - POOL BAR OTHER EXPENSES"
        },
        {
            "key": "4ffa54ed-feaf-4ed4-b661-1cf72df33a31",
            "label": "6132 - POOL BAR PROVISION"
        },
        {
            "key": "1e542c97-b3ee-479e-9859-4a1975e87c52",
            "label": "6140 - RS PAYROLL & RELATED"
        },
        {
            "key": "a05037f3-b44d-489a-a097-837f581d106c",
            "label": "6141 - RS OTHER EXPENSES"
        },
        {
            "key": "2a7be2e9-2c2f-4c77-b6b2-4c83c5ffdf10",
            "label": "6142 - RS PROVISION"
        },
        {
            "key": "d6054b4f-b5b0-4946-b6d9-f05cab48e2f9",
            "label": "6150 - BQT PAYROLL & RELATED"
        },
        {
            "key": "5dfb17b7-644a-43d4-baa5-8f823d0f0abf",
            "label": "6151 - BQT OTHER EXPENSES"
        },
        {
            "key": "8aee3482-d98e-4574-9c62-409c055a2cb5",
            "label": "6152 - BQT PROVISION"
        },
        {
            "key": "97ff15af-1f9f-4b25-9425-8e5b3a0db63d",
            "label": "6160 - MB PAYROLL & RELATED"
        },
        {
            "key": "495d3064-00a5-4cb4-bb60-ca82950575ef",
            "label": "6161 - MB OTHER EXPENSES"
        },
        {
            "key": "4e7838a6-fedd-4db6-a456-0ceac8185a24",
            "label": "6162 - MB PROVISION"
        },
        {
            "key": "508580d4-445e-45a7-8447-9d111e6e0f8b",
            "label": "6170 - FBP PAYROLL & RELATED"
        },
        {
            "key": "7a24967c-4fb5-4864-a53a-4763131953d1",
            "label": "6171 - FBP OTHER EXPENSES"
        },
        {
            "key": "64f6f4e7-6caa-4530-9ffb-596c5c0a5cea",
            "label": "6172 - FBP PROVISION"
        },
        {
            "key": "f4dd92f5-3ef3-4d55-b1b1-253d95bbcf3b",
            "label": "6180 - TLP PAYROLL & RELATED"
        },
        {
            "key": "d9fa0a74-fcf2-45a9-a36a-efb43d5e75b5",
            "label": "6181 - TLP OTHER EXPENSES"
        },
        {
            "key": "255a250c-6b2e-491a-a4ee-8ad05f28adc4",
            "label": "6182 - TLP PROVISION"
        },
        {
            "key": "7d0178a5-6040-462b-9105-a183a4128bf6",
            "label": "6190 - BC PAYROLL & RELATED"
        },
        {
            "key": "a18b0837-5cc4-4742-9080-33cd4415556e",
            "label": "6191 - BC OTHER EXPENSES"
        },
        {
            "key": "6a948b29-0d86-46e8-8cb0-11b0f30b294a",
            "label": "6192 - BC PROVISION"
        },
        {
            "key": "42a8a678-5da8-4644-b26b-977350861f35",
            "label": "6200 - LDY PAYROLL & RELATED"
        },
        {
            "key": "a94ed02c-737f-4056-ae73-707f32e5abc0",
            "label": "6201 - LDY OTHER EXPENSES"
        },
        {
            "key": "fe2c9dba-908a-4435-b954-6ce2ebaec17c",
            "label": "6202 - LDY PROVISION"
        },
        {
            "key": "425639df-c5f6-47cd-88d8-7dd9b945cb2f",
            "label": "6210 - SPA PAYROLL & RELATED"
        },
        {
            "key": "fbd01d6b-377f-4379-8491-b483ed1ed76d",
            "label": "6211 - SPA OTHER EXPENSES"
        },
        {
            "key": "5156f809-0ca5-4421-83bd-e6951df9d9a0",
            "label": "6212 - SPA PROVISION"
        },
        {
            "key": "0d3c9d5b-f7cc-417a-a1eb-75d385f9d502",
            "label": "6230 - MOD PAYROLL & RELATED EXPENSES"
        },
        {
            "key": "26b4f9f7-9e9b-431b-a990-5ed7fead02be",
            "label": "6231 - MOD OTHER EXPENSES"
        },
        {
            "key": "0f681405-70ee-494e-80d9-46660a463c47",
            "label": "6232 - MOD PAYROLL & RELATED EXPENSES"
        },
        {
            "key": "55e203a3-c76b-4c65-864d-1aaf07fe93ba",
            "label": "7100 - A&G PAYROLL & RELATED"
        },
        {
            "key": "f4b92be1-a95a-46ca-a979-c2cf78456826",
            "label": "7101 - A&G OTHER EXPENSES"
        },
        {
            "key": "041c1a24-94a3-4e8e-8e71-38f5dc6bb26d",
            "label": "7200 - HRD PAYROLL & RELATED"
        },
        {
            "key": "55cc5a77-7315-49bb-aa3b-9347f9b206cb",
            "label": "7201 - HRD OTHER EXPENSES"
        },
        {
            "key": "6f36d345-6811-4ce1-9565-7e5aae6239ff",
            "label": "7300 - S&M PAYROLL & RELATED"
        },
        {
            "key": "473fe8e5-c982-443c-b247-841079b198ba",
            "label": "7301 - S&M OTHER EXPENSES"
        },
        {
            "key": "2bef6239-ed37-474e-a2a7-bda57da284f5",
            "label": "7400 - PMC PAYROLL & RELATED"
        },
        {
            "key": "5f558c00-7edb-4d51-9e16-e0c3a5bcfee9",
            "label": "7401 - PMC OTHER EXPENSES"
        },
        {
            "key": "52006a6e-3572-40d3-9a0b-eaa6001fc48b",
            "label": "7403 - PMC ENERGY COST"
        },
        {
            "key": "2246a00e-6edf-45ae-b28f-b26e3c942c30",
            "label": "8000 - OTHER DEDUCTION"
        },
        {
            "key": "72836a7f-caa3-46f0-bfe4-36eba0a4d565",
            "label": "9900 - STATISTIC"
        },
        {
            "key": "b520a39a-24a4-4b81-bfad-053e91218b49",
            "label": "9999090000 - test Chart Of Account Insert"
        },
        {
            "key": "b428bcd8-c55d-40bd-8847-4a59a288e1af",
            "label": "9999090000 - test Chart Of Account Insert"
        },
        {
            "key": "10889fad-a074-4c30-8b2c-ae4e1b81b209",
            "label": "9999090000 - test Chart Of Account Insert edit"
        }
    ]
}
 

Request   

POST api/v1/property/room/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nobis

mode   string  optional    

The language. Example: bed_type

Must be one of:
  • room_type
  • bed_type
  • room_status
room_id   string     

uuid of Room use this parameter when get room status list Example: quasi

Update Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room/status/update" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"deserunt\",
    \"room_id\": \"blanditiis\",
    \"room_status_id\": \"aliquam\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room/status/update"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "deserunt",
    "room_id": "blanditiis",
    "room_status_id": "aliquam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room/status/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'deserunt',
            'room_id' => 'blanditiis',
            'room_status_id' => 'aliquam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room Status",
    "data": {
        "id": "8ee6a1e8-a3c0-4f91-8035-38cfcdd88131",
        "room_type": {
            "id": "c6f2e4e0-6b99-409b-bb48-e65e377dbbec",
            "name": "Standard Balcony"
        },
        "room_bed_type": {
            "id": "075c9027-3d6b-4a79-9e3c-3cb8d6cba34b",
            "name": "Twin"
        },
        "latest_status": {
            "id": "cbe6826b-7b1e-4fd7-a91c-0c6afb415253",
            "name": "Sleep Out"
        },
        "name": "Kamar Baru 101 update",
        "description": "kamar Terletak Di lantai 3",
        "position_order": 10
    }
}
 

Request   

POST api/v1/property/room/status/update

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Room Example: deserunt

room_id   string     

uuid of Room Example: blanditiis

room_status_id   string     

uuid of Room Status list Example: aliquam

Property Room Bed Type

Detail Room Bed Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-bed-type/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"non\",
    \"room_bed_type_id\": \"possimus\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-bed-type/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "non",
    "room_bed_type_id": "possimus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-bed-type/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'non',
            'room_bed_type_id' => 'possimus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Bed Type detail",
    "data": {
        "id": "628af586-7e1e-438c-9f06-f32513ea0577",
        "name": "Twin",
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/room-bed-type/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: non

room_bed_type_id   string     

uuid of Property Room Status Example: possimus

Datatables Room Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-bed-type/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-bed-type/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-bed-type/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 3,
    "recordsFiltered": 3,
    "data": [
        {
            "id": "e9954628-6ab7-4a55-8605-590e4db0754a",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Single",
            "property_name": "Hotel Dummy"
        },
        {
            "id": "628af586-7e1e-438c-9f06-f32513ea0577",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Twin",
            "property_name": "Hotel Dummy"
        },
        {
            "id": "a9d33065-8207-4c52-9cfa-b69a9c7753b3",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Twin",
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"room_bed_types\" where \"property_id\" = ? and \"room_bed_types\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 2.01
        },
        {
            "query": "select * from \"room_bed_types\" where \"property_id\" = ? and \"room_bed_types\".\"deleted_at\" is null",
            "bindings": [
                1
            ],
            "time": 0.49
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.9
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.82
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"id\" = ? and \"properties\".\"id\" is not null and \"properties\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.67
        }
    ],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/room-bed-type/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Room Bed Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-bed-type" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"facere\",
    \"name\": \"consequatur\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-bed-type"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "facere",
    "name": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-bed-type';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'facere',
            'name' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/property/room-bed-type

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: facere

name   string     

Name of Room Type Example: consequatur

Remove Room Bed Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-bed-type/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"id\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-bed-type/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "id"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-bed-type/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'id',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

POST api/v1/property/room-bed-type/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Bed Type Example: id

Property Room Maintenance

Detail Room Maintenance

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-maintenance/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"adipisci\",
    \"id\": \"officia\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-maintenance/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "adipisci",
    "id": "officia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-maintenance/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'adipisci',
            'id' => 'officia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Maintenance detail",
    "data": {
        "id": "...",
        "property_id": "...",
        "room_type": {
            "id": "...",
            "name": "Standard"
        },
        "room": {
            "id": "...",
            "name": "101"
        },
        "start_date": "2026-05-20",
        "end_date": "2026-05-22",
        "remark": "AC repair"
    }
}
 

Request   

POST api/v1/property/room-maintenance/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: adipisci

id   string     

uuid of Room Maintenance. Example: officia

Save / Update / Remove Room Maintenance

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-maintenance/save" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"id\",
    \"is_remove\": false,
    \"property_id\": \"in\",
    \"room_type_id\": \"quis\",
    \"room_id\": \"quae\",
    \"start_date\": \"2026-05-20\",
    \"end_date\": \"2026-05-22\",
    \"remark\": \"tempore\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-maintenance/save"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "id",
    "is_remove": false,
    "property_id": "in",
    "room_type_id": "quis",
    "room_id": "quae",
    "start_date": "2026-05-20",
    "end_date": "2026-05-22",
    "remark": "tempore"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-maintenance/save';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'id',
            'is_remove' => false,
            'property_id' => 'in',
            'room_type_id' => 'quis',
            'room_id' => 'quae',
            'start_date' => '2026-05-20',
            'end_date' => '2026-05-22',
            'remark' => 'tempore',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Save Room Maintenance",
    "data": {
        "id": "...",
        "property_id": "...",
        "room_type": {
            "id": "...",
            "name": "Standard"
        },
        "room": {
            "id": "...",
            "name": "101"
        },
        "start_date": "2026-05-20",
        "end_date": "2026-05-22",
        "remark": "AC repair"
    }
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/property/room-maintenance/save

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string  optional    

uuid of Room Maintenance. Required when update or remove. Ignore for new record. Example: id

is_remove   boolean  optional    

set true together with id to remove existing maintenance. Example: false

property_id   string     

uuid of Property. Example: in

room_type_id   string     

uuid of Room Type. Required for save. Example: quis

room_id   string     

uuid of Room. Required for save. Example: quae

start_date   string     

maintenance start date with format Y-m-d. Example: 2026-05-20

end_date   string     

maintenance end date with format Y-m-d. Example: 2026-05-22

remark   string  optional    

optional note about the maintenance. Example: tempore

Dropdown Option List for Room Maintenance Editor

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-maintenance/dropdownoptionlist/roomtypelist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"consequuntur\",
    \"room_type_id\": \"accusantium\",
    \"start_date\": \"2026-05-20\",
    \"end_date\": \"2026-05-22\",
    \"id\": \"maiores\",
    \"query\": \"omnis\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-maintenance/dropdownoptionlist/roomtypelist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "consequuntur",
    "room_type_id": "accusantium",
    "start_date": "2026-05-20",
    "end_date": "2026-05-22",
    "id": "maiores",
    "query": "omnis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-maintenance/dropdownoptionlist/roomtypelist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'consequuntur',
            'room_type_id' => 'accusantium',
            'start_date' => '2026-05-20',
            'end_date' => '2026-05-22',
            'id' => 'maiores',
            'query' => 'omnis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Room Type Founds",
    "data": [
        {
            "key": "...",
            "label": "Standard"
        }
    ]
}
 

Request   

POST api/v1/property/room-maintenance/dropdownoptionlist/{mode?}

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

URL Parameters

mode   string     

option list mode. Example: roomtypelist

Must be one of:
  • roomtypelist
  • roomlist

Body Parameters

property_id   string     

uuid of Property. Example: consequuntur

room_type_id   string     

when mode=roomlist, uuid of Room Type. Example: accusantium

start_date   string     

when mode=roomlist, format Y-m-d. Example: 2026-05-20

end_date   string     

when mode=roomlist, format Y-m-d. Example: 2026-05-22

id   string  optional    

optional when mode=roomlist, uuid of Room Maintenance being edited. The room currently assigned to this maintenance will always be included regardless of availability. Example: maiores

query   string  optional    

optional keyword filter. Example: omnis

Property Room Status

Detail Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-status-list/details" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"unde\",
    \"status_id\": \"consequuntur\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-status-list/details"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "unde",
    "status_id": "consequuntur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-status-list/details';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'unde',
            'status_id' => 'consequuntur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room status detail",
    "data": {
        "id": "d264e801-8f11-45ed-a52a-773641ffeec8",
        "code": "OC",
        "name": "Occupied Clean",
        "remark": "Occupied Clean",
        "text_color": "#ffffff",
        "background": "#3f9e29",
        "property_id": "77d2db97-2bf9-4192-9205-6002f3ad8339"
    }
}
 

Request   

POST api/v1/property/room-status-list/details

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: unde

status_id   string     

uuid of Property Room Status Example: consequuntur

Datatables Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-status-list/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-status-list/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-status-list/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 11,
    "recordsFiltered": 11,
    "data": [
        {
            "id": "bc1b283d-e530-4459-8fb1-f8dd18a94725",
            "uuid": "bc1b283d-e530-4459-8fb1-f8dd18a94725",
            "property_id": "77d2db97-2bf9-4192-9205-6002f3ad8339",
            "code": "DND",
            "name": "Do not Disturb",
            "remark": "A guest is currently occupied in the room",
            "text_color": "#ffffff",
            "background": "#c68700",
            "is_available": true,
            "created_at": "2024-06-05T04:19:01.000000Z",
            "updated_at": "2024-06-05T04:19:01.000000Z",
            "deleted_at": null,
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "77d2db97-2bf9-4192-9205-6002f3ad8339"
    }
}
 

Request   

POST api/v1/property/room-status-list/datatables

Headers

Authorization        

Example: Bearer ***************************************

Create / Update Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-status-list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"eum\",
    \"property_id\": \"in\",
    \"code\": \"molestiae\",
    \"name\": \"eveniet\",
    \"remark\": \"consequatur\",
    \"text_color\": \"tenetur\",
    \"background\": \"ad\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-status-list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "eum",
    "property_id": "in",
    "code": "molestiae",
    "name": "eveniet",
    "remark": "consequatur",
    "text_color": "tenetur",
    "background": "ad"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-status-list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'eum',
            'property_id' => 'in',
            'code' => 'molestiae',
            'name' => 'eveniet',
            'remark' => 'consequatur',
            'text_color' => 'tenetur',
            'background' => 'ad',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room status",
    "data": {
        "id": "3ff26234-a650-4913-a164-b615f7924024",
        "code": "TES",
        "name": "Test Room Status",
        "remark": "Test Room Status Remark",
        "text_color": "#000000",
        "background": "#ffffff",
        "property_id": "77d2db97-2bf9-4192-9205-6002f3ad8339"
    }
}
 

Request   

POST api/v1/property/room-status-list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property Room Status please don't set parameter if want create new Example: eum

property_id   string     

uuid of Property Example: in

code   string     

Code of Room Status Example: molestiae

name   string     

Name of Room Status Example: eveniet

remark   string     

Description of Room Status Example: consequatur

text_color   string  optional    

position on hex color text of Room Status Example: tenetur

background   string  optional    

position on hex color background of Room Status Example: ad

Remove Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-status-list/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"nam\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-status-list/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "nam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-status-list/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'nam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Room Status Default",
    "data": []
}
 

Request   

POST api/v1/property/room-status-list/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Status Example: nam

Property Room Type

Detail Room Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-type/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"libero\",
    \"room_type_id\": \"repellendus\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-type/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "libero",
    "room_type_id": "repellendus"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'libero',
            'room_type_id' => 'repellendus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room Type detail",
    "data": {
        "id": "054cd951-626c-400d-8764-3f28e266d806",
        "name": "Standard Balcony",
        "description": "Standard Balcony Room",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/room-type/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: libero

room_type_id   string     

uuid of Property Room Status Example: repellendus

Datatables Room Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-type/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-type/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 5,
    "recordsFiltered": 5,
    "data": [
        {
            "id": "214310a1-f98b-4edb-9e55-5a1616875318",
            "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
            "name": "Standard",
            "description": "Standar Room",
            "position_order": 1,
            "property_name": "Hotel Dummy"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c"
    }
}
 

Request   

POST api/v1/property/room-type/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Room Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-type" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"repudiandae\",
    \"property_id\": \"laboriosam\",
    \"name\": \"id\",
    \"description\": \"Unde voluptas quam consequuntur veniam quo.\",
    \"position_order\": 1,
    \"room_amenities\": [
        \"et\"
    ],
    \"occ_adult\": 1,
    \"occ_child\": 17,
    \"occ_infant\": 10,
    \"occ_default\": 3
}"
const url = new URL(
    "http://localhost/api/v1/property/room-type"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "repudiandae",
    "property_id": "laboriosam",
    "name": "id",
    "description": "Unde voluptas quam consequuntur veniam quo.",
    "position_order": 1,
    "room_amenities": [
        "et"
    ],
    "occ_adult": 1,
    "occ_child": 17,
    "occ_infant": 10,
    "occ_default": 3
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'repudiandae',
            'property_id' => 'laboriosam',
            'name' => 'id',
            'description' => 'Unde voluptas quam consequuntur veniam quo.',
            'position_order' => 1,
            'room_amenities' => [
                'et',
            ],
            'occ_adult' => 1,
            'occ_child' => 17,
            'occ_infant' => 10,
            'occ_default' => 3,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room type",
    "data": {
        "id": "3696cda0-035d-4827-a406-c14e6fcdf264",
        "name": "Room Type baru",
        "description": "Room Type Baru Description",
        "position_order": 1,
        "property_id": "a10103ae-5162-46c8-a94c-43b8c579e11c",
        "amenities": [
            {
                "category_id": "37b32a73-0c29-4d5a-80bd-1717901d015e",
                "category_name": "Room Amenities",
                "amenities_list": [
                    {
                        "id": "78e7914b-21b5-4bdd-b461-2d3cd72b8f67",
                        "name": "Adapter",
                        "is_select": false
                    },
                    {
                        "id": "05300f15-884d-409e-a396-536929d3cbcf",
                        "name": "Air conditioning",
                        "is_select": true
                    },
                    {
                        "id": "a7d9dedc-cf0b-4d68-9a48-37e14461fdf4",
                        "name": "Air conditioning single room",
                        "is_select": false
                    },
                    {
                        "id": "fd1f09c8-0aca-4f66-b071-cc030a76b36b",
                        "name": "Balcony",
                        "is_select": true
                    },
                    {
                        "id": "dba356b4-5d41-4546-84cf-b08f6585f457",
                        "name": "Bathtub",
                        "is_select": false
                    },
                    {
                        "id": "252b28a2-6add-4a37-85c5-d22598b5e2a1",
                        "name": "Carpeted",
                        "is_select": false
                    },
                    {
                        "id": "f214eca9-262c-4307-979d-3e4bd8de39b4",
                        "name": "Childrens cribs",
                        "is_select": true
                    },
                    {
                        "id": "dc05d273-baec-48b0-acdf-559c39a35f61",
                        "name": "Cleaning products",
                        "is_select": false
                    },
                    {
                        "id": "404dd22a-26e0-4931-b3b2-99333f1e968e",
                        "name": "Clothes rack",
                        "is_select": false
                    },
                    {
                        "id": "3c23f5bb-59ee-4f48-b88a-be1d94681df6",
                        "name": "Desk",
                        "is_select": false
                    },
                    {
                        "id": "bc0c5784-2809-4904-b4e0-bab8b9e1e3d0",
                        "name": "Dryer",
                        "is_select": true
                    },
                    {
                        "id": "99fedee9-ecef-4875-81ce-2a4b9f16cd0a",
                        "name": "Drying rack for clothing",
                        "is_select": false
                    },
                    {
                        "id": "7a8eee4a-155a-4214-b105-68705f2e381b",
                        "name": "Electric blankets",
                        "is_select": false
                    },
                    {
                        "id": "b7757b5e-fa8e-465b-8c3e-f481ed0aba66",
                        "name": "Electric kettle",
                        "is_select": false
                    },
                    {
                        "id": "ce91b7d8-afa1-466d-bfd2-cbc01d107aa8",
                        "name": "Extra long beds (> 6.5 ft)",
                        "is_select": false
                    },
                    {
                        "id": "d0de7cd0-bf27-416f-9317-d65ede231d2f",
                        "name": "Fan",
                        "is_select": false
                    },
                    {
                        "id": "ef8e700d-34cd-46f3-ad83-e40192ff2a8f",
                        "name": "Feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "68d1483f-999a-4155-b2e4-86e0edf8c3ab",
                        "name": "Fireplace",
                        "is_select": false
                    },
                    {
                        "id": "9c1b1920-b3c0-4ce6-8e76-e9a41ceb3b28",
                        "name": "Flat-screen TV",
                        "is_select": false
                    },
                    {
                        "id": "206d34a2-716d-4f08-8895-b18a152c5c5c",
                        "name": "Fold-up bed",
                        "is_select": false
                    },
                    {
                        "id": "feb09933-4210-4e53-a083-60e0ff5f2076",
                        "name": "Hardwood or parquet floors",
                        "is_select": false
                    },
                    {
                        "id": "2d83428c-67f0-424c-b3cf-7b64c7bbde4d",
                        "name": "Heated pool",
                        "is_select": false
                    },
                    {
                        "id": "0e457b6c-27f9-4170-9174-ddcc4a44dbbc",
                        "name": "Heating",
                        "is_select": false
                    },
                    {
                        "id": "a91728b8-4c62-4644-bfc3-8673cdd06c5e",
                        "name": "Hot tub",
                        "is_select": false
                    },
                    {
                        "id": "96fc900e-041f-454c-9aae-45dd06b9a142",
                        "name": "Hypoallergenic",
                        "is_select": false
                    },
                    {
                        "id": "daeea86a-79c0-45b8-81a7-e76333134b3d",
                        "name": "Hypoallergenic pillow",
                        "is_select": false
                    },
                    {
                        "id": "9f577ec2-34e9-4d5c-87df-868bb8ffae4d",
                        "name": "Infinity Pool",
                        "is_select": false
                    },
                    {
                        "id": "0897bc60-47b1-46dd-a822-2bcaeb07d8e8",
                        "name": "Interconnecting rooms",
                        "is_select": false
                    },
                    {
                        "id": "a662f19e-419c-41a9-a0a0-b0c2f00f24dd",
                        "name": "Iron",
                        "is_select": false
                    },
                    {
                        "id": "46a2ee4a-c711-4dd2-a99d-ce6c6ebf3a31",
                        "name": "Ironing facilities",
                        "is_select": false
                    },
                    {
                        "id": "6107ec89-e45a-43f5-ac25-598f20535951",
                        "name": "Mosquito net",
                        "is_select": false
                    },
                    {
                        "id": "1818a164-cfd0-435a-8398-f7ddc11401f4",
                        "name": "Non-feather pillow",
                        "is_select": false
                    },
                    {
                        "id": "1ca6771c-37ae-4ff6-84d0-4277f27365b0",
                        "name": "Pajamas",
                        "is_select": false
                    },
                    {
                        "id": "3e611ae2-edf5-4473-ae7b-c6ab2d6ce946",
                        "name": "Plunge Pool",
                        "is_select": false
                    },
                    {
                        "id": "a13e0b46-0d5e-4503-bc11-af25b568609a",
                        "name": "Pool cover",
                        "is_select": false
                    },
                    {
                        "id": "86854195-b984-415f-925e-bee9172388dc",
                        "name": "Pool towels",
                        "is_select": false
                    },
                    {
                        "id": "b5687b9d-65b2-4d1a-aa22-b2ef72a26685",
                        "name": "Pool with a view",
                        "is_select": false
                    },
                    {
                        "id": "bc8c3d71-115f-45ff-8d98-6d6c7c1ad6b7",
                        "name": "Private pool",
                        "is_select": false
                    },
                    {
                        "id": "7ba1a081-d56b-4608-9d2e-1110fa4cd601",
                        "name": "Rooftop pool",
                        "is_select": false
                    },
                    {
                        "id": "b808b875-492d-458d-a6bc-720372622767",
                        "name": "Safe",
                        "is_select": false
                    },
                    {
                        "id": "d990b235-5121-4b63-ad8c-5ee1721196b4",
                        "name": "Saltwater pool",
                        "is_select": false
                    },
                    {
                        "id": "b38466d0-9e59-4736-8204-0b01d379faa0",
                        "name": "Shallow end",
                        "is_select": false
                    },
                    {
                        "id": "bc33df3d-9f0f-425b-a0df-46ab53e7aa83",
                        "name": "Sitting area",
                        "is_select": false
                    },
                    {
                        "id": "441d79fb-82a4-458a-8bd2-8f91f40f5e2b",
                        "name": "Socket near the bed",
                        "is_select": false
                    },
                    {
                        "id": "30d5b8ec-8f2e-4fc6-899a-5714a9d7be63",
                        "name": "Sofa",
                        "is_select": false
                    },
                    {
                        "id": "06b027ce-138e-4f61-bc25-10165e24cbfd",
                        "name": "Sofa bed",
                        "is_select": false
                    },
                    {
                        "id": "f2d7c256-4b44-48bf-a2a0-04917f773784",
                        "name": "Soundproof",
                        "is_select": false
                    },
                    {
                        "id": "f39be007-f9d0-413a-9434-335578838ac8",
                        "name": "Suit press",
                        "is_select": false
                    },
                    {
                        "id": "892e321b-5422-48d7-8c1d-950486a1ea57",
                        "name": "Tile/Marble floor",
                        "is_select": false
                    },
                    {
                        "id": "7bdbc02c-4cf0-487a-9faa-bbe25447795a",
                        "name": "Toilet paper",
                        "is_select": false
                    },
                    {
                        "id": "5f84000a-c63d-4234-93c7-dcf36434b1ff",
                        "name": "Towels",
                        "is_select": false
                    },
                    {
                        "id": "b8937943-2b2c-4818-8943-cea8f0754fe6",
                        "name": "Trash cans",
                        "is_select": false
                    },
                    {
                        "id": "26ad03ba-c55c-489a-a550-92f19982df53",
                        "name": "View",
                        "is_select": false
                    },
                    {
                        "id": "ec55c805-84d8-4457-b5b8-fec22adf8ec6",
                        "name": "Walk-in closet",
                        "is_select": false
                    },
                    {
                        "id": "8d560293-82fd-4135-99df-761aa540dbb7",
                        "name": "Wardrobe or closet",
                        "is_select": false
                    },
                    {
                        "id": "b0d7bf28-75d2-4f0a-8ad9-baabe2e50608",
                        "name": "Washing machine",
                        "is_select": false
                    },
                    {
                        "id": "17d5df9c-0bb9-4390-8177-9dc05b0ea92c",
                        "name": "Yukata",
                        "is_select": false
                    },
                    {
                        "id": "336a2aa5-fb92-432e-9d15-496f0638fd60",
                        "name": "Air purifiers",
                        "is_select": false
                    },
                    {
                        "id": "f822da69-c6d3-439d-aab2-58c28e09dc39",
                        "name": "Hand sanitizer",
                        "is_select": false
                    },
                    {
                        "id": "932710b6-8c27-4184-b3b3-7df86e2fb36f",
                        "name": "Bolsters",
                        "is_select": false
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/property/room-type

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Type id please not set param if you want create new room type Example: repudiandae

property_id   string     

uuid of Property Example: laboriosam

name   string     

Name of Room Type Example: id

description   string     

Description of Room Type Example: Unde voluptas quam consequuntur veniam quo.

position_order   integer  optional    

position on order of room type Example: 1

room_amenities   string[]  optional    

uuid of room amenities

occ_adult   integer  optional    

this amount of max occupancy adult for this room type Example: 1

occ_child   integer  optional    

this amount of max occupancy child for this room type Example: 17

occ_infant   integer  optional    

this amount of max occupancy infant for this room type Example: 10

occ_default   integer  optional    

this amount of max occupancy default for this room type Example: 3

Remove Room Type

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-type/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"assumenda\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-type/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "assumenda"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'assumenda',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Room Type",
    "data": []
}
 

Request   

POST api/v1/property/room-type/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Type Example: assumenda

Option Room Type Input

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-type/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"amenities\",
    \"room_type_id\": \"qui\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room-type/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "amenities",
    "room_type_id": "qui"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'amenities',
            'room_type_id' => 'qui',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/property/room-type/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: amenities

Must be one of:
  • amenities
room_type_id   string     

uuid of Room Type Example: qui

Get Room type Images

Example request:
curl --request GET \
    --get "http://localhost/api/v1/property/room-type/image/c4af142a-5164-3686-92ef-75069f10d858" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-type/image/c4af142a-5164-3686-92ef-75069f10d858"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/image/c4af142a-5164-3686-92ef-75069f10d858';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{}
 

Request   

GET api/v1/property/room-type/image/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Room Type. Example: c4af142a-5164-3686-92ef-75069f10d858

delete Room Type Images

Example request:
curl --request GET \
    --get "http://localhost/api/v1/property/room-type/image/6d54c4f7-bb7f-37bf-9488-68a3e87dd579/delete" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-type/image/6d54c4f7-bb7f-37bf-9488-68a3e87dd579/delete"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/image/6d54c4f7-bb7f-37bf-9488-68a3e87dd579/delete';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "msg": "success delete image"
}
 

Request   

GET api/v1/property/room-type/image/{uuid}/delete

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property Images. Example: 6d54c4f7-bb7f-37bf-9488-68a3e87dd579

Upload Room Type Images

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room-type/image/upload" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: multipart/form-data" \
    --form "id=libero"\
    --form "image_path[]=@/tmp/phpEjolil" 
const url = new URL(
    "http://localhost/api/v1/property/room-type/image/upload"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('id', 'libero');
body.append('image_path[]', document.querySelector('input[name="image_path[]"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/room-type/image/upload';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'multipart/form-data',
        ],
        'multipart' => [
            [
                'name' => 'id',
                'contents' => 'libero'
            ],
            [
                'name' => 'image_path[]',
                'contents' => fopen('/tmp/phpEjolil', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "msg": "success upload image"
}
 

Request   

POST api/v1/property/room-type/image/upload

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: multipart/form-data

Body Parameters

id   string     

uuid of room type Example: libero

image_path[]   file  optional    

Example: /tmp/phpEjolil

Property Setup

Datatables Property

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "5e1932e0-7d6c-49e4-989c-6c6512263d8f",
            "property_group_id": "d0988d1d-a3d0-4494-807d-e9777345d4a4",
            "prefix_booking_code": "hotel_dummy-",
            "name": "Hotel Dummy",
            "address": "Jl. Raya Kedampang Gg Loka No.8, Kerobokan Kelod, Kec. Kuta, Kabupaten Badung, Bali 80361",
            "zip_code": "80361",
            "phone": "0817-7689-9998",
            "email_primary": "[email protected]",
            "timezone_id": "204e5eab-01a6-43ae-b93c-983037af6577",
            "area_id": "c71e56f2-f74c-4913-9846-a5998a0e536f",
            "currency_id": "5138063c-f71f-4433-8350-a66d2429a592",
            "logo_path": "",
            "area_name": "Sukawati, Bali, Indonesia",
            "website": "https://www.dummyhotel.com",
            "longitude": "-8.597327",
            "latitude": "115.319776",
            "google_map_url": "https://goo.gl/maps/q9CqJMQFvZ7WYLdH6",
            "sosmed_facebook_url": "#",
            "sosmed_instagram_url": "#",
            "sosmed_youtube_url": "#",
            "sosmed_twitter_url": "#",
            "description": "Welcome to Dummy Hotel, located in the picturesque village of Dummy in dummy. Our boutique hotel features 18 elegantly appointed rooms, each one offering a comfortable and relaxing stay. Our rooms are equipped with modern amenities including air conditioning, flat-screen TV, and complimentary Wi-Fi to ensure a seamless and enjoyable stay. The room has a private balcony with breathtaking views of the surrounding rice paddies and gardens."
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"properties\" where \"properties\".\"deleted_at\" is null",
            "bindings": [],
            "time": 1.78
        },
        {
            "query": "select * from \"properties\" where \"properties\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.57
        },
        {
            "query": "select * from \"areas\" where \"areas\".\"id\" = ? and \"areas\".\"id\" is not null and \"areas\".\"deleted_at\" is null limit 1",
            "bindings": [
                509
            ],
            "time": 1.67
        },
        {
            "query": "select * from \"regions\" where \"regions\".\"id\" = ? and \"regions\".\"id\" is not null and \"regions\".\"deleted_at\" is null limit 1",
            "bindings": [
                17
            ],
            "time": 1.98
        },
        {
            "query": "select * from \"countries\" where \"countries\".\"id\" = ? and \"countries\".\"id\" is not null and \"countries\".\"deleted_at\" is null limit 1",
            "bindings": [
                100
            ],
            "time": 2.12
        },
        {
            "query": "select * from \"property_details\" where \"property_details\".\"property_id\" = ? and \"property_details\".\"property_id\" is not null and \"property_details\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 1.86
        },
        {
            "query": "select * from \"timezones\" where \"timezones\".\"id\" = ? and \"timezones\".\"id\" is not null and \"timezones\".\"deleted_at\" is null limit 1",
            "bindings": [
                243
            ],
            "time": 1.93
        },
        {
            "query": "select * from \"currencies\" where \"currencies\".\"id\" = ? and \"currencies\".\"id\" is not null and \"currencies\".\"deleted_at\" is null limit 1",
            "bindings": [
                90
            ],
            "time": 1.92
        },
        {
            "query": "select * from \"property_groups\" where \"property_groups\".\"id\" = ? and \"property_groups\".\"id\" is not null and \"property_groups\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 1.43
        }
    ],
    "input": []
}
 

Request   

POST api/v1/master/property/datatables

Headers

Authorization        

Example: Bearer ***************************************

Add / Update Property

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: multipart/form-data" \
    --form "id=voluptatum"\
    --form "property_group_id=et"\
    --form "prefix_booking_code=optio"\
    --form "name=non"\
    --form "address=maiores"\
    --form "zip_code=et"\
    --form "phone=eos"\
    --form "email_primary=mollitia"\
    --form "website=sed"\
    --form "area_id=veniam"\
    --form "longitude=laborum"\
    --form "latitude=qui"\
    --form "google_map_url=http://www.price.com/aspernatur-nobis-in-sit-ullam-praesentium-iusto-et"\
    --form "currency_id=minus"\
    --form "timezone_id=consequuntur"\
    --form "sosmed_facebook_url=http://stehr.org/"\
    --form "sosmed_instagram_url=http://www.johns.com/itaque-maiores-sed-sit-quibusdam-provident-cumque-facere-voluptatem"\
    --form "sosmed_youtube_url=http://www.emard.org/"\
    --form "sosmed_twitter_url=http://daugherty.com/repudiandae-accusantium-aut-nostrum-numquam-adipisci-distinctio-ad"\
    --form "description=Deleniti placeat quisquam et est."\
    --form "coa_default_template_id=ab"\
    --form "room_status_template=yes"\
    --form "logo_path=@/tmp/phpPhBAmh" 
const url = new URL(
    "http://localhost/api/v1/master/property"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('id', 'voluptatum');
body.append('property_group_id', 'et');
body.append('prefix_booking_code', 'optio');
body.append('name', 'non');
body.append('address', 'maiores');
body.append('zip_code', 'et');
body.append('phone', 'eos');
body.append('email_primary', 'mollitia');
body.append('website', 'sed');
body.append('area_id', 'veniam');
body.append('longitude', 'laborum');
body.append('latitude', 'qui');
body.append('google_map_url', 'http://www.price.com/aspernatur-nobis-in-sit-ullam-praesentium-iusto-et');
body.append('currency_id', 'minus');
body.append('timezone_id', 'consequuntur');
body.append('sosmed_facebook_url', 'http://stehr.org/');
body.append('sosmed_instagram_url', 'http://www.johns.com/itaque-maiores-sed-sit-quibusdam-provident-cumque-facere-voluptatem');
body.append('sosmed_youtube_url', 'http://www.emard.org/');
body.append('sosmed_twitter_url', 'http://daugherty.com/repudiandae-accusantium-aut-nostrum-numquam-adipisci-distinctio-ad');
body.append('description', 'Deleniti placeat quisquam et est.');
body.append('coa_default_template_id', 'ab');
body.append('room_status_template', 'yes');
body.append('logo_path', document.querySelector('input[name="logo_path"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'multipart/form-data',
        ],
        'multipart' => [
            [
                'name' => 'id',
                'contents' => 'voluptatum'
            ],
            [
                'name' => 'property_group_id',
                'contents' => 'et'
            ],
            [
                'name' => 'prefix_booking_code',
                'contents' => 'optio'
            ],
            [
                'name' => 'name',
                'contents' => 'non'
            ],
            [
                'name' => 'address',
                'contents' => 'maiores'
            ],
            [
                'name' => 'zip_code',
                'contents' => 'et'
            ],
            [
                'name' => 'phone',
                'contents' => 'eos'
            ],
            [
                'name' => 'email_primary',
                'contents' => 'mollitia'
            ],
            [
                'name' => 'website',
                'contents' => 'sed'
            ],
            [
                'name' => 'area_id',
                'contents' => 'veniam'
            ],
            [
                'name' => 'longitude',
                'contents' => 'laborum'
            ],
            [
                'name' => 'latitude',
                'contents' => 'qui'
            ],
            [
                'name' => 'google_map_url',
                'contents' => 'http://www.price.com/aspernatur-nobis-in-sit-ullam-praesentium-iusto-et'
            ],
            [
                'name' => 'currency_id',
                'contents' => 'minus'
            ],
            [
                'name' => 'timezone_id',
                'contents' => 'consequuntur'
            ],
            [
                'name' => 'sosmed_facebook_url',
                'contents' => 'http://stehr.org/'
            ],
            [
                'name' => 'sosmed_instagram_url',
                'contents' => 'http://www.johns.com/itaque-maiores-sed-sit-quibusdam-provident-cumque-facere-voluptatem'
            ],
            [
                'name' => 'sosmed_youtube_url',
                'contents' => 'http://www.emard.org/'
            ],
            [
                'name' => 'sosmed_twitter_url',
                'contents' => 'http://daugherty.com/repudiandae-accusantium-aut-nostrum-numquam-adipisci-distinctio-ad'
            ],
            [
                'name' => 'description',
                'contents' => 'Deleniti placeat quisquam et est.'
            ],
            [
                'name' => 'coa_default_template_id',
                'contents' => 'ab'
            ],
            [
                'name' => 'room_status_template',
                'contents' => 'yes'
            ],
            [
                'name' => 'logo_path',
                'contents' => fopen('/tmp/phpPhBAmh', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Property",
    "data": {
        "id": "4ad856b3-a493-487d-88e7-7c9d67b378bb",
        "prefix_booking_code": "nagata-booking",
        "name": "Nagata Resort And Retreat",
        "address": "Jl Bisma 20010 tegallang ubud",
        "zip_code": "80361",
        "phone": "+6281805410047",
        "email_primary": "[email protected]",
        "logo_path": "https://lokaroom-api.lc/cdn/asset/e7b2f9d5-71d8-4cc0-9b43-afcf7a80751f",
        "website": "https://nagata.com",
        "longitude": "-8.6425998",
        "latitude": "115.1770584",
        "google_map_url": "https://maps.app.goo.gl/Nruid5SG9R1ekhwR9",
        "sosmed_facebook_url": "facebok",
        "sosmed_instagram_url": "instagram",
        "sosmed_youtube_url": "youtube",
        "sosmed_twitter_url": "twiter",
        "description": null,
        "property_group": {
            "id": "d0988d1d-a3d0-4494-807d-e9777345d4a4",
            "name": "Hotel Dummy Group"
        },
        "area": {
            "id": "5f8e34b9-0207-48b5-af11-1fc90e84d0e4",
            "area_name": "Aceh Selatan",
            "region_name": "Aceh",
            "country_name": "Indonesia"
        },
        "currency": {
            "id": "99ebc31c-bcec-42a3-940c-d586c20558c9",
            "name": "Afghan afghani"
        },
        "timezone": {
            "id": "461ce532-c63f-4ada-8a3b-4a6317b8bff1",
            "name": "Africa/Abidjan"
        }
    }
}
 

Request   

POST api/v1/master/property

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: multipart/form-data

Body Parameters

id   uuid  optional    

value need if want update Property Example: voluptatum

property_group_id   string     

id of Property Groups, if not set group please not set this parameter Example: et

prefix_booking_code   string  optional    

set null if not use booking prefix, if not set booking prefix please not set this parameter Example: optio

name   string     

Name of Property Example: non

address   string     

Address of Property Example: maiores

zip_code   string  optional    

zip code of Property Example: et

phone   string  optional    

phone of Property Example: eos

email_primary   string  optional    

email_primary of Property Example: mollitia

website   string  optional    

website of Property if not have website please not set parameter Example: sed

area_id   string  optional    

area id of Property Example: veniam

longitude   string  optional    

longitude of Property Example: laborum

latitude   string  optional    

latitude of Property Example: qui

google_map_url   string  optional    

google map url of Property Example: http://www.price.com/aspernatur-nobis-in-sit-ullam-praesentium-iusto-et

currency_id   string  optional    

currency uuid of Property Example: minus

timezone_id   string  optional    

timezone id of Property Example: consequuntur

sosmed_facebook_url   string  optional    

Example: http://stehr.org/

sosmed_instagram_url   string  optional    

Example: http://www.johns.com/itaque-maiores-sed-sit-quibusdam-provident-cumque-facere-voluptatem

sosmed_youtube_url   string  optional    

Example: http://www.emard.org/

sosmed_twitter_url   string  optional    

Example: http://daugherty.com/repudiandae-accusantium-aut-nostrum-numquam-adipisci-distinctio-ad

description   string  optional    

Example: Deleniti placeat quisquam et est.

logo_path   file  optional    

Example: /tmp/phpPhBAmh

coa_default_template_id   string  optional    

use uuid COA template ID, if update data property please not set this parameter. Example: ab

room_status_template   string  optional    

The property set yes if want install default room status. Example: yes

Must be one of:
  • yes
  • no

Remove Property

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"dolor\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "dolor"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'dolor',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Property",
    "data": []
}
 

Request   

POST api/v1/master/property/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property Example: dolor

Property Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/property/details/f5410836-3e45-35e0-9575-e9a1d38e2097" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/details/f5410836-3e45-35e0-9575-e9a1d38e2097"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/details/f5410836-3e45-35e0-9575-e9a1d38e2097';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Feature Detail",
    "data": {
        "id": "5e1932e0-7d6c-49e4-989c-6c6512263d8f",
        "prefix_booking_code": "hotel_dummy-",
        "name": "Hotel Dummy",
        "address": "Jl. Raya Kedampang Gg Loka No.8, Kerobokan Kelod, Kec. Kuta, Kabupaten Badung, Bali 80361",
        "zip_code": "80361",
        "phone": "0817-7689-9998",
        "email_primary": "[email protected]",
        "logo_path": null,
        "website": "https://www.dummyhotel.com",
        "longitude": "-8.597327",
        "latitude": "115.319776",
        "google_map_url": "https://goo.gl/maps/q9CqJMQFvZ7WYLdH6",
        "sosmed_facebook_url": "#",
        "sosmed_instagram_url": "#",
        "sosmed_youtube_url": "#",
        "sosmed_twitter_url": "#",
        "description": null,
        "property_group": {
            "id": "d0988d1d-a3d0-4494-807d-e9777345d4a4",
            "name": "Hotel Dummy Group"
        },
        "area": {
            "id": "c71e56f2-f74c-4913-9846-a5998a0e536f",
            "area_name": "Sukawati",
            "region_name": "Bali",
            "country_name": "Indonesia"
        },
        "currency": {
            "id": "5138063c-f71f-4433-8350-a66d2429a592",
            "name": "Indonesian rupiah"
        },
        "timezone": {
            "id": "204e5eab-01a6-43ae-b93c-983037af6577",
            "name": "Asia/Jakarta"
        }
    }
}
 

Request   

GET api/v1/master/property/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property. Example: f5410836-3e45-35e0-9575-e9a1d38e2097

Option Property Input

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"group\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "group"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'group',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart Of Account Template Options Founds",
    "data": [
        {
            "id": "6fe39895-7805-4e41-a241-f19b80ebf6f5",
            "name": "Full Chart Of Account"
        },
        {
            "id": "460a784a-e3d0-4fe1-b699-a55c52d03b69",
            "name": "Simple Chart Of Account"
        }
    ]
}
 

Request   

POST api/v1/master/property/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The property. Example: group

Must be one of:
  • group
  • area
  • currency
  • timezone
  • coa_template

Property Image List

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/property/image/8a806dc1-50a0-3d66-97a1-970078625aa6" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/image/8a806dc1-50a0-3d66-97a1-970078625aa6"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/image/8a806dc1-50a0-3d66-97a1-970078625aa6';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


[
    {
        "imageUrl": "https://lokaroom-api.lc/cdn/asset/546d8d46-2f91-42f2-a09d-2cec099724dc",
        "imageName": "property-images-uokvrytrz2.jpg",
        "mime_type": "image/jpeg"
    },
    {
        "imageUrl": "https://lokaroom-api.lc/cdn/asset/d328834e-5654-462e-8075-ddb87ce40134",
        "imageName": "property-images-ygz96nnq73.jpeg",
        "mime_type": "image/jpeg"
    }
]
 

Request   

GET api/v1/master/property/image/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property. Example: 8a806dc1-50a0-3d66-97a1-970078625aa6

Remove Property Images

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/image/delete" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"molestiae\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property/image/delete"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "molestiae"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/image/delete';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'molestiae',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "msg": "success delete image"
}
 

Request   

POST api/v1/master/property/image/delete

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property Image Example: molestiae

Upload Property Images

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/image/upload" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: multipart/form-data" \
    --form "id=debitis"\
    --form "image_path[]=@/tmp/phpKBDfOi" 
const url = new URL(
    "http://localhost/api/v1/master/property/image/upload"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('id', 'debitis');
body.append('image_path[]', document.querySelector('input[name="image_path[]"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/image/upload';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'multipart/form-data',
        ],
        'multipart' => [
            [
                'name' => 'id',
                'contents' => 'debitis'
            ],
            [
                'name' => 'image_path[]',
                'contents' => fopen('/tmp/phpKBDfOi', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "msg": "success upload image"
}
 

Request   

POST api/v1/master/property/image/upload

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: multipart/form-data

Body Parameters

id   string     

uuid of Property Example: debitis

image_path[]   file  optional    

Example: /tmp/phpKBDfOi

Property Email List

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/property/email/13d2469d-a7ee-34fc-8628-be513ad95595" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/email/13d2469d-a7ee-34fc-8628-be513ad95595"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/email/13d2469d-a7ee-34fc-8628-be513ad95595';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


[
    {
        "imageUrl": "https://lokaroom-api.lc/cdn/asset/546d8d46-2f91-42f2-a09d-2cec099724dc",
        "imageName": "property-images-uokvrytrz2.jpg",
        "mime_type": "image/jpeg"
    },
    {
        "imageUrl": "https://lokaroom-api.lc/cdn/asset/d328834e-5654-462e-8075-ddb87ce40134",
        "imageName": "property-images-ygz96nnq73.jpeg",
        "mime_type": "image/jpeg"
    }
]
 

Request   

GET api/v1/master/property/email/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property. Example: 13d2469d-a7ee-34fc-8628-be513ad95595

Remove Property Email

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/email/delete" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/email/delete"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/email/delete';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "msg": "success delete email"
}
 

Request   

POST api/v1/master/property/email/delete

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Property Images. Example: a3b374eb-cd88-335c-81bc-86a569436f89

Add / Update Property email

Example request:
curl --request POST \
    "http://localhost/api/v1/master/property/email" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"velit\",
    \"property_id\": \"sed\",
    \"email\": \"[email protected]\",
    \"recepient_name\": \"eos\"
}"
const url = new URL(
    "http://localhost/api/v1/master/property/email"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "velit",
    "property_id": "sed",
    "email": "[email protected]",
    "recepient_name": "eos"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/property/email';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'velit',
            'property_id' => 'sed',
            'email' => '[email protected]',
            'recepient_name' => 'eos',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "msg": "success update email"
}
 

Request   

POST api/v1/master/property/email

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Property email, please not set if you not update your current list email Example: velit

property_id   string     

uuid of Property Example: sed

email   string  optional    

email of Property Example: [email protected]

recepient_name   string  optional    

recepient name of Property email Example: eos

Property Supplier

Update Supplier Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/supplier" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: multipart/form-data" \
    --form "id=fugit"\
    --form "property_id=rem"\
    --form "name=et"\
    --form "address=aliquam"\
    --form "phone=consequatur"\
    --form "[email protected]"\
    --form "website=quo"\
    --form "bg_color=delectus"\
    --form "fg_color=magni"\
    --form "logo_path=@/tmp/phpBfIAap" \
    --form "icon_path=@/tmp/phpFhDAcp" 
const url = new URL(
    "http://localhost/api/v1/property/supplier"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('id', 'fugit');
body.append('property_id', 'rem');
body.append('name', 'et');
body.append('address', 'aliquam');
body.append('phone', 'consequatur');
body.append('email', '[email protected]');
body.append('website', 'quo');
body.append('bg_color', 'delectus');
body.append('fg_color', 'magni');
body.append('logo_path', document.querySelector('input[name="logo_path"]').files[0]);
body.append('icon_path', document.querySelector('input[name="icon_path"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/supplier';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'multipart/form-data',
        ],
        'multipart' => [
            [
                'name' => 'id',
                'contents' => 'fugit'
            ],
            [
                'name' => 'property_id',
                'contents' => 'rem'
            ],
            [
                'name' => 'name',
                'contents' => 'et'
            ],
            [
                'name' => 'address',
                'contents' => 'aliquam'
            ],
            [
                'name' => 'phone',
                'contents' => 'consequatur'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'website',
                'contents' => 'quo'
            ],
            [
                'name' => 'bg_color',
                'contents' => 'delectus'
            ],
            [
                'name' => 'fg_color',
                'contents' => 'magni'
            ],
            [
                'name' => 'logo_path',
                'contents' => fopen('/tmp/phpBfIAap', 'r')
            ],
            [
                'name' => 'icon_path',
                'contents' => fopen('/tmp/phpFhDAcp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Supplier Property",
    "data": {
        "id": "bbe093cb-9554-4d63-b91e-07ffc1a4caf8",
        "property": {
            "id": "ca301eec-832f-4154-99d7-7089a0ec941f",
            "name": "Hotel Dummy"
        },
        "supplier_no": "SUP-00002",
        "name": "Supplier Sayur",
        "address": "Jl Raya Umalas, kerobokan kelod, kuta utara, badung, bali",
        "phone": "081805410047",
        "email": "[email protected]",
        "website": "supplierdaging.com",
        "logo_path": null,
        "icon_path": null,
        "bg_color": "#000000",
        "fg_color": "#ffffff"
    }
}
 

Request   

POST api/v1/property/supplier

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: multipart/form-data

Body Parameters

id   string     

uuid of Property Supplier Example: fugit

property_id   string     

uuid of Property Example: rem

name   string     

Name of Supplier Example: et

address   string  optional    

Address of Supplier Example: aliquam

phone   string  optional    

Phone of Supplier Example: consequatur

email   string  optional    

E-mail of Supplier Example: [email protected]

website   string  optional    

website of Supplier Example: quo

logo_path   file  optional    

logo dimension must width 1350 x height 750 Example: /tmp/phpBfIAap

icon_path   file  optional    

icon dimension ratio 1/1 Example: /tmp/phpFhDAcp

bg_color   string  optional    

position on hex color text of Supplier background Example: delectus

fg_color   string  optional    

position on hex color text of Supplier Text Example: magni

Detail Supplier property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/supplier/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"magnam\",
    \"supplier_id\": \"voluptas\"
}"
const url = new URL(
    "http://localhost/api/v1/property/supplier/detail"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "magnam",
    "supplier_id": "voluptas"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/supplier/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'magnam',
            'supplier_id' => 'voluptas',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Property Agent detail",
    "data": {
        "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
        "property": {
            "id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "name": "Hotel Dummy"
        },
        "agent_source_id": {
            "id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In"
        },
        "name": "Walk In",
        "address": null,
        "phone": null,
        "email": null,
        "website": null,
        "logo_path": null,
        "icon_path": null,
        "bg_color": null,
        "fg_color": null
    }
}
 

Request   

POST api/v1/property/supplier/detail

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: magnam

supplier_id   string     

uuid of Property Agent Example: voluptas

Datatables Supplier Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/supplier/datatables" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"reiciendis\"
}"
const url = new URL(
    "http://localhost/api/v1/property/supplier/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "reiciendis"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/supplier/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'reiciendis',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 12,
    "recordsFiltered": 12,
    "data": [
        {
            "id": "df1c867c-7d63-4a20-9615-ec5df4a406ac",
            "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed",
            "agent_source_id": "8b8e2678-8179-40f5-973d-6824ced83590",
            "name": "Walk In",
            "address": null,
            "phone": null,
            "email": null,
            "website": null,
            "logo_path": null,
            "icon_path": null,
            "bg_color": null,
            "fg_color": null,
            "property_name": "Hotel Dummy",
            "source_name": "Walk In"
        }
    ],
    "queries": [],
    "input": {
        "property_id": "cfc616bb-3145-4a98-bb6b-0efb5c8203ed"
    }
}
 

Request   

POST api/v1/property/supplier/datatables

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: reiciendis

Remove Supplier Property

Example request:
curl --request POST \
    "http://localhost/api/v1/property/supplier/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"porro\"
}"
const url = new URL(
    "http://localhost/api/v1/property/supplier/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "porro"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/supplier/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'porro',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Property Supplier",
    "data": []
}
 

Request   

POST api/v1/property/supplier/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Supplier Property Example: porro

Option Supplier Input

Example request:
curl --request POST \
    "http://localhost/api/v1/property/supplier/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"ut\",
    \"mode\": \"source_list\"
}"
const url = new URL(
    "http://localhost/api/v1/property/supplier/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "ut",
    "mode": "source_list"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/supplier/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'ut',
            'mode' => 'source_list',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Category Amenities Founds",
    "data": [
        {
            "id": "312df64f-1f9a-4633-b8fe-df8d3188449d",
            "name": "Accessibility"
        },
        {
            "id": "c138c2e9-c743-488d-ad71-2a80beea9625",
            "name": "Bathroom"
        },
        {
            "id": "a7f809eb-8874-43a0-93eb-0c9a35cf59ae",
            "name": "Child and Babies"
        },
        {
            "id": "6ca029cd-d7e4-4f91-bb2d-27a4c506e7a3",
            "name": "Entertainment and Multimedia"
        },
        {
            "id": "6ff7ba3a-7c71-473f-934b-d0bfcf75ebc0",
            "name": "Food and Beverages"
        },
        {
            "id": "ffed46c7-290c-4dcf-a608-4cfaa423560e",
            "name": "Room Amenities"
        },
        {
            "id": "a38a243e-0731-4d46-99bd-a3e7ef05ae55",
            "name": "Room and Views"
        },
        {
            "id": "a3fbc0f5-44e7-4dbb-a898-34c69656a887",
            "name": "Safety"
        },
        {
            "id": "984c82da-bbf7-4dd2-b979-2a3fe49834f9",
            "name": "Services & Extras"
        }
    ]
}
 

Request   

POST api/v1/property/supplier/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: ut

mode   string  optional    

The language. Example: source_list

Must be one of:
  • source_list

Room Status Default Setup

Detail Room Status

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/room-status-default-list/details/0968eb7d-6f6c-3210-ac9e-832fe4e4f7ab" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/room-status-default-list/details/0968eb7d-6f6c-3210-ac9e-832fe4e4f7ab"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/room-status-default-list/details/0968eb7d-6f6c-3210-ac9e-832fe4e4f7ab';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Room status default detail",
    "data": {
        "id": "1afc4aef-5cc2-4d48-bf3f-42c96309a2db",
        "code": "DND",
        "name": "Do not Disturb",
        "remark": "A guest is currently occupied in the room",
        "text_color": "#ffffff",
        "background": "#c68700",
        "is_available": true
    }
}
 

Request   

GET api/v1/master/room-status-default-list/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Detail Room Status Default. Example: 0968eb7d-6f6c-3210-ac9e-832fe4e4f7ab

Datatables Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/master/room-status-default-list/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/room-status-default-list/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/room-status-default-list/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 11,
    "recordsFiltered": 11,
    "data": [
        {
            "id": "1afc4aef-5cc2-4d48-bf3f-42c96309a2db",
            "code": "DND",
            "name": "Do not Disturb",
            "remark": "A guest is currently occupied in the room",
            "text_color": "#ffffff",
            "background": "#c68700",
            "is_available": true
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"room_status_defaults\" where \"room_status_defaults\".\"deleted_at\" is null",
            "bindings": [],
            "time": 2.05
        },
        {
            "query": "select * from \"room_status_defaults\" where \"room_status_defaults\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.42
        }
    ],
    "input": {
        "mode": "category"
    }
}
 

Request   

POST api/v1/master/room-status-default-list/datatables

Headers

Authorization        

Example: Bearer ***************************************

Create / Update Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/master/room-status-default-list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"ullam\",
    \"code\": \"dolore\",
    \"name\": \"doloribus\",
    \"remark\": \"assumenda\",
    \"text_color\": \"commodi\",
    \"background\": \"deserunt\",
    \"is_available\": true
}"
const url = new URL(
    "http://localhost/api/v1/master/room-status-default-list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "ullam",
    "code": "dolore",
    "name": "doloribus",
    "remark": "assumenda",
    "text_color": "commodi",
    "background": "deserunt",
    "is_available": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/room-status-default-list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'ullam',
            'code' => 'dolore',
            'name' => 'doloribus',
            'remark' => 'assumenda',
            'text_color' => 'commodi',
            'background' => 'deserunt',
            'is_available' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update Room status default",
    "data": {
        "id": "90284ad8-37fa-4113-8055-0e933f975899",
        "code": "TES",
        "name": "Tes Status Room Default update",
        "remark": "Tes Status Room Default remark update",
        "text_color": "#FFFFFF",
        "background": "#000000",
        "is_available": true
    }
}
 

Request   

POST api/v1/master/room-status-default-list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string  optional    

if you want update the data please set uuid Room Status Default Example: ullam

code   string     

Code of Room Status Example: dolore

name   string     

Name of Room Status Example: doloribus

remark   string     

Description of Room Status Example: assumenda

text_color   string  optional    

position on hex color text of Room Status Example: commodi

background   string  optional    

position on hex color background of Room Status Example: deserunt

is_available   boolean  optional    

position on is available of Room Status on allotment Example: true

Remove Room Status

Example request:
curl --request POST \
    "http://localhost/api/v1/master/room-status-default-list/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"error\"
}"
const url = new URL(
    "http://localhost/api/v1/master/room-status-default-list/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "error"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/room-status-default-list/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'error',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Room Status Default",
    "data": []
}
 

Request   

POST api/v1/master/room-status-default-list/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Room Status Example: error

Setup Feature

Feature Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/feature/details/d4cb1f4d-780e-361d-8395-ad9c66f192a9" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/feature/details/d4cb1f4d-780e-361d-8395-ad9c66f192a9"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature/details/d4cb1f4d-780e-361d-8395-ad9c66f192a9';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Feature Detail",
    "data": {
        "id": "11808366-f178-4924-a10a-457816950e4b",
        "name": "Reservation",
        "meta_access_content": [
            "can_list",
            "can_view",
            "can_add",
            "can_edit"
        ],
        "category": {
            "id": "081650bb-ca78-4112-94e5-ff2c9b9ccffb",
            "name": "General Settings"
        }
    }
}
 

Request   

GET api/v1/master/feature/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Feature Category. Example: d4cb1f4d-780e-361d-8395-ad9c66f192a9

Datatables Feature

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/feature/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 28,
    "recordsFiltered": 28,
    "data": [
        {
            "id": "e1679215-52d3-49b2-b369-09e1496f759a",
            "name": "System Features",
            "feature_category": "System Setup",
            "category_id": "796b8a28-e184-49e8-be8c-19fe898e0439"
        },
        {
            "id": "cf9c2145-0575-43fa-b883-906187fe87e6",
            "name": "System Properties",
            "feature_category": "System Setup",
            "category_id": "796b8a28-e184-49e8-be8c-19fe898e0439"
        },
        {
            "id": "aee65784-bc21-4fb4-aebf-da794c21c152",
            "name": "System Users",
            "feature_category": "System Setup",
            "category_id": "796b8a28-e184-49e8-be8c-19fe898e0439"
        },
        {
            "id": "e5278177-69be-4f49-85e6-9dadcd3e0cb5",
            "name": "Room Status Default",
            "feature_category": "System Setup",
            "category_id": "796b8a28-e184-49e8-be8c-19fe898e0439"
        },
        {
            "id": "ef079c02-9e1f-4bd6-9c6b-b8df2e084409",
            "name": "Amenities List Default",
            "feature_category": "System Setup",
            "category_id": "796b8a28-e184-49e8-be8c-19fe898e0439"
        },
        {
            "id": "c89b2f14-77d7-4f9d-9902-860828e2a531",
            "name": "Chart Of Account Default",
            "feature_category": "System Setup",
            "category_id": "796b8a28-e184-49e8-be8c-19fe898e0439"
        },
        {
            "id": "e365e67c-38c5-4e35-9902-0bc41314f5aa",
            "name": "Language Settings",
            "feature_category": "General Settings",
            "category_id": "ca3e1eae-d52b-4708-b10f-6a169ae062ef"
        },
        {
            "id": "1055f92f-79cc-4a48-bfd7-b45583e53592",
            "name": "Currency Settings",
            "feature_category": "General Settings",
            "category_id": "ca3e1eae-d52b-4708-b10f-6a169ae062ef"
        },
        {
            "id": "15ae0de3-b225-4eef-aa61-6363b0b65952",
            "name": "Timezone Settings",
            "feature_category": "General Settings",
            "category_id": "ca3e1eae-d52b-4708-b10f-6a169ae062ef"
        },
        {
            "id": "1128682d-4b65-4c42-a669-0af6834da5d4",
            "name": "Country Settings",
            "feature_category": "General Settings",
            "category_id": "ca3e1eae-d52b-4708-b10f-6a169ae062ef"
        },
        {
            "id": "a8d83be1-e9a7-48ee-8ece-d9b85330ef69",
            "name": "Region Settings",
            "feature_category": "General Settings",
            "category_id": "ca3e1eae-d52b-4708-b10f-6a169ae062ef"
        },
        {
            "id": "72e4fa06-7a4c-4174-960a-56e99013e1dd",
            "name": "Area Settings",
            "feature_category": "General Settings",
            "category_id": "ca3e1eae-d52b-4708-b10f-6a169ae062ef"
        },
        {
            "id": "4e500f6d-a1a9-40b5-94ac-2c5e9467859d",
            "name": "Room Amenities List",
            "feature_category": "Rooms Setup",
            "category_id": "ea87f6ce-0943-478c-8487-ed54e5f74d71"
        },
        {
            "id": "a7ebb4f1-b0bb-49cf-8cdb-cf76e444f753",
            "name": "Room Status List",
            "feature_category": "Rooms Setup",
            "category_id": "ea87f6ce-0943-478c-8487-ed54e5f74d71"
        },
        {
            "id": "f2e1e3eb-dc44-442d-9692-7de0ed0752c5",
            "name": "Room Bed Type List",
            "feature_category": "Rooms Setup",
            "category_id": "ea87f6ce-0943-478c-8487-ed54e5f74d71"
        },
        {
            "id": "8b8c9b65-90b1-4552-99a7-e4d351d3abeb",
            "name": "Room Type",
            "feature_category": "Rooms Setup",
            "category_id": "ea87f6ce-0943-478c-8487-ed54e5f74d71"
        },
        {
            "id": "851cecd1-618d-4210-b4c5-99c8d87d1fcc",
            "name": "Rooms List",
            "feature_category": "Rooms Setup",
            "category_id": "ea87f6ce-0943-478c-8487-ed54e5f74d71"
        },
        {
            "id": "5edbdcdc-0a0b-41d0-9e7e-359a1d060992",
            "name": "Room Rates",
            "feature_category": "Rooms Setup",
            "category_id": "ea87f6ce-0943-478c-8487-ed54e5f74d71"
        },
        {
            "id": "a942fc45-1e20-4163-ae74-28e2d5975234",
            "name": "Reservation",
            "feature_category": "Front Office",
            "category_id": "13efa3ea-6460-484a-b5fa-ce60fceaeb73"
        },
        {
            "id": "e266ea00-5e1a-4ea2-b2b7-bff12285d085",
            "name": "Room Available",
            "feature_category": "Front Office",
            "category_id": "13efa3ea-6460-484a-b5fa-ce60fceaeb73"
        },
        {
            "id": "5d2a339a-4d38-44d5-b7a2-e6e4e50a8899",
            "name": "Night Audit",
            "feature_category": "Front Office",
            "category_id": "13efa3ea-6460-484a-b5fa-ce60fceaeb73"
        },
        {
            "id": "35195a52-30ed-4268-99c4-f4bf612d5153",
            "name": "Guest Profile",
            "feature_category": "Front Office",
            "category_id": "13efa3ea-6460-484a-b5fa-ce60fceaeb73"
        },
        {
            "id": "d1e504cc-d1a5-4031-86c6-b1d4a00a9a26",
            "name": "Guest List Daily",
            "feature_category": "Front Office",
            "category_id": "13efa3ea-6460-484a-b5fa-ce60fceaeb73"
        },
        {
            "id": "01c4381a-a87d-4882-80cd-34dc70ca06f6",
            "name": "Guest Payment",
            "feature_category": "Front Office",
            "category_id": "13efa3ea-6460-484a-b5fa-ce60fceaeb73"
        },
        {
            "id": "4bb6ed49-36bb-4ba4-ab4c-c6c61e426c01",
            "name": "Chart Of Account",
            "feature_category": "Back Office",
            "category_id": "45923ada-0ef0-4d61-a063-87785a2d10ea"
        },
        {
            "id": "b98d6249-98c1-4f11-9cbb-074a1e8d1f61",
            "name": "Tax And Service List",
            "feature_category": "Back Office",
            "category_id": "45923ada-0ef0-4d61-a063-87785a2d10ea"
        },
        {
            "id": "46526085-2782-4dfc-9739-0527c39cdd2f",
            "name": "Agent Property List",
            "feature_category": "Back Office",
            "category_id": "45923ada-0ef0-4d61-a063-87785a2d10ea"
        },
        {
            "id": "ebff526a-c417-42ab-91ad-bda1bc440e75",
            "name": "Payment Options List",
            "feature_category": "Back Office",
            "category_id": "45923ada-0ef0-4d61-a063-87785a2d10ea"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"features\" where \"features\".\"deleted_at\" is null",
            "bindings": [],
            "time": 1.9
        },
        {
            "query": "select * from \"features\" where \"features\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.55
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 2.02
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.5
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.43
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.38
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                1
            ],
            "time": 0.57
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                2
            ],
            "time": 0.47
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                2
            ],
            "time": 0.41
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                2
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                2
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                2
            ],
            "time": 0.76
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                2
            ],
            "time": 0.7
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                3
            ],
            "time": 0.6
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                3
            ],
            "time": 0.5
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                3
            ],
            "time": 0.51
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                3
            ],
            "time": 0.4
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                3
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                3
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                4
            ],
            "time": 0.36
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                4
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                4
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                4
            ],
            "time": 0.37
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                4
            ],
            "time": 0.36
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                4
            ],
            "time": 0.36
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                5
            ],
            "time": 0.36
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                5
            ],
            "time": 0.36
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                5
            ],
            "time": 0.36
        },
        {
            "query": "select * from \"feature_categories\" where \"feature_categories\".\"id\" = ? and \"feature_categories\".\"id\" is not null and \"feature_categories\".\"deleted_at\" is null limit 1",
            "bindings": [
                5
            ],
            "time": 0.81
        }
    ],
    "input": []
}
 

Request   

POST api/v1/master/feature/datatables

Headers

Authorization        

Example: Bearer ***************************************

Add / Update Feature

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"et\",
    \"category_id\": 10,
    \"meta_access_content\": [
        []
    ],
    \"id\": \"nostrum\"
}"
const url = new URL(
    "http://localhost/api/v1/master/feature"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "et",
    "category_id": 10,
    "meta_access_content": [
        []
    ],
    "id": "nostrum"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'et',
            'category_id' => 10,
            'meta_access_content' => [
                [],
            ],
            'id' => 'nostrum',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Feature Data",
    "data": {
        "id": "11808366-f178-4924-a10a-457816950e4b",
        "name": "Reservation",
        "meta_access_content": [
            "can_list",
            "can_view",
            "can_add",
            "can_edit"
        ],
        "category": {
            "id": "081650bb-ca78-4112-94e5-ff2c9b9ccffb",
            "name": "General Settings"
        }
    }
}
 

Request   

POST api/v1/master/feature

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of feature Example: et

category_id   integer     

valid of feature category id Example: 10

meta_access_content   object[]  optional    

requeired. Examp:["can_list","can_view","can_add","can_edit"]

id   uuid  optional    

value need if want update name of feature Example: nostrum

Remove Feature

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"a\"
}"
const url = new URL(
    "http://localhost/api/v1/master/feature/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "a"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'a',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Feature",
    "data": []
}
 

Request   

POST api/v1/master/feature/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Feature Example: a

Option Editor feature Input

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"category\",
    \"query\": \"nihil\"
}"
const url = new URL(
    "http://localhost/api/v1/master/feature/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "category",
    "query": "nihil"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'category',
            'query' => 'nihil',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Timezone Founds",
    "data": [
        {
            "id": "59af78ff-d35f-40e4-8220-ff67af5d07a3",
            "name": "Africa/Abidjan"
        },
        {
            "id": "f311336a-f1ee-4c7b-9e1e-7d6e61c67e41",
            "name": "Africa/Accra"
        },
        {
            "id": "a9454d6b-abe6-459b-8b97-e710df56c993",
            "name": "Africa/Addis_Ababa"
        }
    ]
}
 

Request   

POST api/v1/master/feature/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: category

Must be one of:
  • category
query   string  optional    

this using for in case option have filter Example: nihil

Setup Feature Category

Feature Category Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/feature-category/details/035d3807-b3ca-31d6-be12-f0ca2c07ccdb" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/feature-category/details/035d3807-b3ca-31d6-be12-f0ca2c07ccdb"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature-category/details/035d3807-b3ca-31d6-be12-f0ca2c07ccdb';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get Feature Category Detail",
    "data": {
        "id": "9814fe6b-1e6a-4f67-8b16-892a18ccfa9e",
        "name": "General Settings",
        "feature": [
            {
                "id": "269bed18-0f45-43da-ab94-6c4e8bf0d2a1",
                "name": "Language Settings"
            },
            {
                "id": "0841438a-ee90-4a9b-bb3f-e653a08c9363",
                "name": "Currency Settings"
            },
            {
                "id": "8c05e2fc-0f09-414d-953e-f57b80d5d798",
                "name": "Timezone Settings"
            },
            {
                "id": "4f4f4b1e-16fb-4227-854c-9fd439c7df22",
                "name": "Country Settings"
            },
            {
                "id": "b29c1382-db2a-4db7-8e89-30ccdf520830",
                "name": "Region Settings"
            },
            {
                "id": "c5ae438b-1e5a-4c8d-a6c0-2988b70ee922",
                "name": "Area Settings"
            }
        ]
    }
}
 

Request   

GET api/v1/master/feature-category/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of Feature Category. Example: 035d3807-b3ca-31d6-be12-f0ca2c07ccdb

Datatables Feature Category

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature-category/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/feature-category/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature-category/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 6,
    "recordsFiltered": 6,
    "data": [
        {
            "id": "0689f1a6-0fc3-401d-a689-bb3b0f37bc84",
            "name": "System Setup"
        },
        {
            "id": "9814fe6b-1e6a-4f67-8b16-892a18ccfa9e",
            "name": "General Settings"
        },
        {
            "id": "fd38d08f-7926-4f38-95e2-bb69bdc00b20",
            "name": "Rooms Setup"
        },
        {
            "id": "7485a2dc-ada0-4bdf-894f-9f58c867e7ae",
            "name": "Front Office"
        },
        {
            "id": "50ad4d03-740f-436d-ba28-5bb11c2cd657",
            "name": "Back Office"
        },
        {
            "id": "6f675faa-dbd1-420f-9620-e73eb2b8046a",
            "name": "Others"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"feature_categories\"",
            "bindings": [],
            "time": 1.9
        },
        {
            "query": "select \"id\", \"uuid\", \"name\" from \"feature_categories\"",
            "bindings": [],
            "time": 0.47
        }
    ],
    "input": []
}
 

Request   

POST api/v1/master/feature-category/datatables

Headers

Authorization        

Example: Bearer ***************************************

Update Feature Category

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature-category" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"similique\",
    \"id\": \"quod\"
}"
const url = new URL(
    "http://localhost/api/v1/master/feature-category"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "similique",
    "id": "quod"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature-category';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'similique',
            'id' => 'quod',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update Feature Caategory Data",
    "data": {
        "id": "7b4e994f-55b3-4585-95aa-7c84eb373035",
        "name": "Test Feature Category Data edit",
        "feature": []
    }
}
 

Request   

POST api/v1/master/feature-category

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of feature category Example: similique

id   string  optional    

uuid if need update or remove name of feature category Example: quod

Remove Feature Category

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature-category/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"mollitia\"
}"
const url = new URL(
    "http://localhost/api/v1/master/feature-category/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "mollitia"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/feature-category/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'mollitia',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success remove Feature Category",
    "data": []
}
 

Request   

POST api/v1/master/feature-category/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of Feature Category Example: mollitia

Setup User Category Feature Default

Category Feature Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/user-category-feature-default/details/95ce183a-fa6d-326e-b19e-09660980f63e" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/user-category-feature-default/details/95ce183a-fa6d-326e-b19e-09660980f63e"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/user-category-feature-default/details/95ce183a-fa6d-326e-b19e-09660980f63e';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "User Category Feature Found",
    "data": {
        "id": "133bb77d-8c09-44e2-a485-6314a1525b33",
        "name": "Corporate Admin",
        "feature_list": [
            {
                "id": "ff5bfbae-3fba-4c19-b232-7fd0be304d22",
                "name": "Properties",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit"
                ]
            },
            {
                "id": "1a7ad5d6-8228-466a-97e8-89930e864ad2",
                "name": "Users",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit"
                ]
            },
            {
                "id": "0c415b9a-c407-4f31-b30b-08a064abf4c2",
                "name": "Room Amenities List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "47c27a0e-f7f2-4953-b214-6b4a25abc221",
                "name": "Room Status List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "7d2f46c4-2589-4c7e-a6bd-151e2dc6fbba",
                "name": "Room Bed Type List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "95c44f89-fc12-47a7-b267-eb1d74c47571",
                "name": "Room Type",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "13a6db9c-7c15-4b99-a4bf-209856459d61",
                "name": "Rooms List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "9e261752-53f1-4842-a2a2-5d065b270e92",
                "name": "Room Rates",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "11808366-f178-4924-a10a-457816950e4b",
                "name": "Reservation",
                "meta_access": [
                    "can_list",
                    "can_reservation_chart",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "f2ccb171-6658-44b5-8dbc-69e73993df92",
                "name": "Room Available",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "4ad4e368-eb1b-4ed3-b43d-4bbc5c7cf5ef",
                "name": "Night Audit",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "6f9edce2-82a1-477e-b664-66d59dbf84c0",
                "name": "Guest Profile",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "28be0f1b-9be9-41bf-903a-8636d8ff0c11",
                "name": "Guest List Daily",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "829072fb-8605-435b-bede-f3acb937a074",
                "name": "Guest Payment",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "04adb9e4-73ee-45f8-91d8-e5c8455e7db0",
                "name": "Chart Of Account",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "c2277eb7-3a07-49b0-a47e-b3e1ecb91aa3",
                "name": "Tax And Service List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "daf52f12-7e9a-497c-b928-9fa76786ecd8",
                "name": "Agent Property List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            },
            {
                "id": "8e1c9feb-b165-4b62-81f8-84a9da48cef2",
                "name": "Payment Options List",
                "meta_access": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            }
        ]
    }
}
 

Request   

GET api/v1/master/user-category-feature-default/details/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of User Category. Example: 95ce183a-fa6d-326e-b19e-09660980f63e

Update User Category Feature Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/user-category-feature-default" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"user_category_id\": 1,
    \"feature_list\": [
        {
            \"id\": \"b0df0b1b-5776-4074-bb2b-0a4263962449\",
            \"name\": \"Language Settings\",
            \"meta_access\": {
                \"can_list\": false,
                \"can_view\": false,
                \"can_add\": false,
                \"can_edit\": false,
                \"can_delete\": false
            }
        },
        {
            \"id\": \"0663f8b2-f815-4826-a68b-8606f0475c00\",
            \"name\": \"Currency Settings\",
            \"meta_access\": {
                \"can_list\": false,
                \"can_view\": false,
                \"can_add\": false,
                \"can_edit\": false,
                \"can_delete\": false
            }
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/master/user-category-feature-default"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "user_category_id": 1,
    "feature_list": [
        {
            "id": "b0df0b1b-5776-4074-bb2b-0a4263962449",
            "name": "Language Settings",
            "meta_access": {
                "can_list": false,
                "can_view": false,
                "can_add": false,
                "can_edit": false,
                "can_delete": false
            }
        },
        {
            "id": "0663f8b2-f815-4826-a68b-8606f0475c00",
            "name": "Currency Settings",
            "meta_access": {
                "can_list": false,
                "can_view": false,
                "can_add": false,
                "can_edit": false,
                "can_delete": false
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/user-category-feature-default';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
            ],
            null,
            [
                'stdClass' => [
                    'id' => [
                        'b0df0b1b-5776-4074-bb2b-0a4263962449',
                        2 => '0663f8b2-f815-4826-a68b-8606f0475c00',
                    ],
                    'name' => [
                        'Language Settings',
                        2 => 'Currency Settings',
                    ],
                    'meta_access' => [
                        $o[1],
                        2 => $o[3],
                    ],
                    'can_list' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_view' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_add' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_edit' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_delete' => [
                        1 => false,
                        3 => false,
                    ],
                ],
            ],
            [
                'user_category_id' => 1,
                'feature_list' => [
                    $o[0],
                    $o[2],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update User Category Feature Default",
    "data": {
        "id": "2ec686f7-f2d6-4762-8adf-4565ab89dd4e",
        "name": "Property User",
        "feature_list": [
            {
                "id": "2d0b8954-c8e1-4460-b0f3-d5ab153d487c",
                "name": "Language Settings",
                "meta_access": [
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/master/user-category-feature-default

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

user_category_id   integer     

valid of User category id Example: 1

feature_list   object[]  optional    

list of feature

Option Input User Category Feature Defaults

Example request:
curl --request POST \
    "http://localhost/api/v1/master/user-category-feature-default/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"featurelist\",
    \"id\": \"inventore\"
}"
const url = new URL(
    "http://localhost/api/v1/master/user-category-feature-default/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "featurelist",
    "id": "inventore"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/master/user-category-feature-default/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'featurelist',
            'id' => 'inventore',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{"message":"Feature Option List Founds","data":[{"id":"66c3f94d-acbd-41fc-9b7c-89759573323e","name":"General Settings","feature_list":[{"id":"465dffb2-b3f0-4d7d-8b44-b220bd271377","name":"Language Settings","meta_access":{"can_list":false,"can_view":false,"can_add":false,"can_edit":false,"can_delete":false}},{"id":"adb5ea32-9488-411f-9627-7f4498708384","name":"Currency Settings","meta_access":{"can_list":false,"can_view":false,"can_add":false,"can_edit":false,"can_delete":false}},{"id":"558910e7-6973-40c9-bdeb-111083d7c4d1","name":"Timezone Settings","meta_access":{"can_list":false,"can_view":false,"can_add":false,"can_edit":false,"can_delete":false}},{"id":"b94f8433-fb85-4cde-984e-f0b0e69c04cb","name":"Country Settings","meta_access":{"can_list":false,"can_view":false,"can_add":false,"can_edit":false,"can_delete":false}},{"id":"f1fbe937-445e-4a69-992f-a2a2d8f26995","name":"Region Settings","meta_access":{"can_list":false,"can_view":false,"can_add":false,"can_edit":false,"can_delete":false}},{"id":"e0c623f1-84fb-4d7d-b50b-97910ae333dd","name":"Area Settings","meta_access":{"can_list":false,"can_view":false,"can_add":false,"can_edit":false,"can_delete":false}}]},]}
 

Request   

POST api/v1/master/user-category-feature-default/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: featurelist

Must be one of:
  • category
  • featurelist
id   string  optional    

uuid User Category required if mode featurelist Example: inventore

System Dashboard

Dashboard Detail

Example request:
curl --request POST \
    "http://localhost/api/v1/misc/dashboard/data" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"all\",
    \"property_id\": \"veniam\"
}"
const url = new URL(
    "http://localhost/api/v1/misc/dashboard/data"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "all",
    "property_id": "veniam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/misc/dashboard/data';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'all',
            'property_id' => 'veniam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Timezone Founds",
    "data": [
        {
            "id": "59af78ff-d35f-40e4-8220-ff67af5d07a3",
            "name": "Africa/Abidjan"
        },
        {
            "id": "f311336a-f1ee-4c7b-9e1e-7d6e61c67e41",
            "name": "Africa/Accra"
        },
        {
            "id": "a9454d6b-abe6-459b-8b97-e710df56c993",
            "name": "Africa/Addis_Ababa"
        }
    ]
}
 

Request   

POST api/v1/misc/dashboard/data

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: all

Must be one of:
  • all
property_id   string     

uuid of Property Example: veniam

Dashboard Detail Light

Example request:
curl --request POST \
    "http://localhost/api/v1/misc/dashboard/data-light" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"all\",
    \"property_id\": \"atque\"
}"
const url = new URL(
    "http://localhost/api/v1/misc/dashboard/data-light"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "all",
    "property_id": "atque"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/misc/dashboard/data-light';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'all',
            'property_id' => 'atque',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Timezone Founds",
    "data": [
        {
            "id": "59af78ff-d35f-40e4-8220-ff67af5d07a3",
            "name": "Africa/Abidjan"
        },
        {
            "id": "f311336a-f1ee-4c7b-9e1e-7d6e61c67e41",
            "name": "Africa/Accra"
        },
        {
            "id": "a9454d6b-abe6-459b-8b97-e710df56c993",
            "name": "Africa/Addis_Ababa"
        }
    ]
}
 

Request   

POST api/v1/misc/dashboard/data-light

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The language. Example: all

Must be one of:
  • all
property_id   string     

uuid of Property Example: atque

User Authentication

Get User Authentication Token

Example request:
curl --request POST \
    "http://localhost/api/v1/auth/gettoken" \
    --header "Content-Type: application/json" \
    --data "{
    \"email\": \"\'[email protected]\'\",
    \"password\": \"C$9ICr\'HeNJ::b|}\"
}"
const url = new URL(
    "http://localhost/api/v1/auth/gettoken"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "email": "'[email protected]'",
    "password": "C$9ICr'HeNJ::b|}"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/auth/gettoken';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'email' => '\'[email protected]\'',
            'password' => 'C$9ICr\'HeNJ::b|}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": true,
    "message": "Successfully get token access",
    "token": "4|zXDYofbLV9hgotCyc3TzNnx6wWnFuQNbCckDZGe8"
}
 

Example response (401):


{
    "status": false,
    "message": "Email & Password does not match with our record."
}
 

Request   

POST api/v1/auth/gettoken

Headers

Content-Type        

Example: application/json

Body Parameters

email   string     

The email of the user. Example: '[email protected]'

password   string     

The password of the user. Example: C$9ICr'HeNJ::b|}

User Check Validation token

Example request:
curl --request GET \
    --get "http://localhost/api/v1/auth/checkvalidtoken" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/auth/checkvalidtoken"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/auth/checkvalidtoken';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": true,
    "message": "success access via token"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

GET api/v1/auth/checkvalidtoken

Headers

Authorization        

Example: Bearer ***************************************

User Enable / Disable google2fa

Example request:
curl --request POST \
    "http://localhost/api/v1/auth/google2fa" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"status\": 12
}"
const url = new URL(
    "http://localhost/api/v1/auth/google2fa"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "status": 12
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/auth/google2fa';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'status' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": true,
    "secret": "ROXTGX2RYNKYB7L5",
    "appname": "Loka Room",
    "qr_code_url": "otpauth://totp/Loka%20Room:master%40lokaroom.net?secret=ROXTGX2RYNKYB7L5&issuer=Loka%20Room&algorithm=SHA1&digits=6&period=30"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/auth/google2fa

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

status   integer     

value 1 for enable value 0 for disable Example: 12

Get User Authenticated Detail

Example request:
curl --request GET \
    --get "http://localhost/api/v1/auth/getaccount" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/auth/getaccount"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/auth/getaccount';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success get user Account login",
    "data": {
        "detail": {
            "name": "Master User Api",
            "shortname": "Master Use...",
            "phone": null,
            "category": "System Admin",
            "timezone": null,
            "language": null,
            "email": "[email protected]",
            "google2fa_secret": null,
            "google2fa_is_active": false,
            "properties": [
                {
                    "id": "31db6935-0f23-4939-b31f-d4bd1a1af828",
                    "name": "Hotel Dummy"
                }
            ],
            "features": {
                "language_settings": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "currency_settings": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "timezone_settings": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "country_settings": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "region_settings": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "area_settings": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "features_categories": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "user_category_features_defaults": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "properties": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "users": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_status_default": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "amenities_list_default": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "chart_of_account_default": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "chart_of_account_template": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_amenities_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_status_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_bed_type_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_type": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "rooms_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_rates": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "reservation": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "room_available": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "night_audit": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "guest_profile": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "guest_list_daily": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "guest_payment": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "chart_of_account": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "tax_and_service_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "agent_property_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ],
                "payment_options_list": [
                    "can_list",
                    "can_view",
                    "can_add",
                    "can_edit",
                    "can_delete"
                ]
            }
        }
    }
}
 

Request   

GET api/v1/auth/getaccount

Headers

Authorization        

Example: Bearer ***************************************

active Current Property

Example request:
curl --request POST \
    "http://localhost/api/v1/auth/active-current-property" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"aliquam\"
}"
const url = new URL(
    "http://localhost/api/v1/auth/active-current-property"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "aliquam"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/auth/active-current-property';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'aliquam',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": true,
    "secret": "ROXTGX2RYNKYB7L5",
    "appname": "Loka Room",
    "qr_code_url": "otpauth://totp/Loka%20Room:master%40lokaroom.net?secret=ROXTGX2RYNKYB7L5&issuer=Loka%20Room&algorithm=SHA1&digits=6&period=30"
}
 

Example response (401):


{
    "message": "Unauthenticated."
}
 

Request   

POST api/v1/auth/active-current-property

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: aliquam

User Setup

Datatables User

Example request:
curl --request POST \
    "http://localhost/api/v1/user/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/datatables"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "7342b731-c0fc-44c0-a55e-73f7ecc9958b",
            "name": "Master User Api",
            "email": "[email protected]",
            "user_googletwofa": "Not Active",
            "user_category": "System Admin",
            "user_status": "Active"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"users\" where \"users\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.74
        },
        {
            "query": "select * from \"users\" where \"users\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.51
        },
        {
            "query": "select * from \"user_categories\" where \"user_categories\".\"id\" = ? and \"user_categories\".\"id\" is not null limit 1",
            "bindings": [
                1
            ],
            "time": 1.9
        }
    ],
    "input": []
}
 

Request   

POST api/v1/user/datatables

Headers

Authorization        

Example: Bearer ***************************************

List User

Example request:
curl --request POST \
    "http://localhost/api/v1/user/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"dolores\",
    \"user_search\": \"ut\",
    \"is_active\": \"true\",
    \"page_no\": 1
}"
const url = new URL(
    "http://localhost/api/v1/user/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "property_id": "dolores",
    "user_search": "ut",
    "is_active": "true",
    "page_no": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'dolores',
            'user_search' => 'ut',
            'is_active' => 'true',
            'page_no' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "draw": 0,
    "recordsTotal": 1,
    "recordsFiltered": 1,
    "data": [
        {
            "id": "7342b731-c0fc-44c0-a55e-73f7ecc9958b",
            "name": "Master User Api",
            "email": "[email protected]",
            "user_googletwofa": "Not Active",
            "user_category": "System Admin",
            "user_status": "Active"
        }
    ],
    "queries": [
        {
            "query": "select count(*) as aggregate from \"users\" where \"users\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.74
        },
        {
            "query": "select * from \"users\" where \"users\".\"deleted_at\" is null",
            "bindings": [],
            "time": 0.51
        },
        {
            "query": "select * from \"user_categories\" where \"user_categories\".\"id\" = ? and \"user_categories\".\"id\" is not null limit 1",
            "bindings": [
                1
            ],
            "time": 1.9
        }
    ],
    "input": []
}
 

Request   

POST api/v1/user/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: dolores

user_search   string     

query of name or email. Example: ut

is_active   string  optional    

required. Example: true

Must be one of:
  • true
  • false
page_no   integer  optional    

number of pagination Example: 1

Option User list Filter

Example request:
curl --request POST \
    "http://localhost/api/v1/user/list/dropdown/filter" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"group\"
}"
const url = new URL(
    "http://localhost/api/v1/user/list/dropdown/filter"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "group"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/list/dropdown/filter';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'group',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart Of Account Template Options Founds",
    "data": [
        {
            "id": "6fe39895-7805-4e41-a241-f19b80ebf6f5",
            "name": "Full Chart Of Account"
        },
        {
            "id": "460a784a-e3d0-4fe1-b699-a55c52d03b69",
            "name": "Simple Chart Of Account"
        }
    ]
}
 

Request   

POST api/v1/user/list/dropdown/filter

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The property. Example: group

Must be one of:
  • property

Detail User

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/detail/61cd980c-64e7-3cd2-a095-ca1353d2e2c0" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"voluptatibus\"
}"
const url = new URL(
    "http://localhost/api/v1/user/detail/61cd980c-64e7-3cd2-a095-ca1353d2e2c0"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "voluptatibus"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/detail/61cd980c-64e7-3cd2-a095-ca1353d2e2c0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'voluptatibus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "f17e0571-1c0e-45bf-a67f-0160613c5e23",
    "name": "Master User Api",
    "email": "[email protected]",
    "google2fa_is_active": true,
    "google2fa_secret": "ROXTGX2RYNKYB7L5",
    "is_active": true,
    "user_categories": {
        "id": 1,
        "name": "System Admin"
    },
    "features": [
        {
            "id": 1,
            "feature_name": "System Features"
        },
        {
            "id": 2,
            "feature_name": "System Properties"
        },
        {
            "id": 3,
            "feature_name": "System Users"
        }
    ],
    "properties": [],
    "detail": []
}
 

Request   

GET api/v1/user/detail/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

URL Parameters

uuid   string     

Example: 61cd980c-64e7-3cd2-a095-ca1353d2e2c0

Body Parameters

id   string     

UUID of User Example: voluptatibus

Create / Update User

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"incidunt\",
    \"name\": \"temporibus\",
    \"email\": \"[email protected]\",
    \"password\": \"vB1i\\\\#xPw5LhiJL>+\",
    \"user_category_id\": \"pariatur\",
    \"status\": false,
    \"phone\": \"porro\",
    \"timezone_id\": 19,
    \"language_id\": 12
}"
const url = new URL(
    "http://localhost/api/v1/user/editor"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "incidunt",
    "name": "temporibus",
    "email": "[email protected]",
    "password": "vB1i\\#xPw5LhiJL>+",
    "user_category_id": "pariatur",
    "status": false,
    "phone": "porro",
    "timezone_id": 19,
    "language_id": 12
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/editor';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'incidunt',
            'name' => 'temporibus',
            'email' => '[email protected]',
            'password' => 'vB1i\\#xPw5LhiJL>+',
            'user_category_id' => 'pariatur',
            'status' => false,
            'phone' => 'porro',
            'timezone_id' => 19,
            'language_id' => 12,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update User",
    "data": {
        "id": "deb3c983-a749-4f61-8257-3d2b3683efd5",
        "name": "Agus Bawa Nadi Putra update",
        "email": "[email protected]",
        "google2fa_is_active": false,
        "is_active": true,
        "user_categories": {
            "id": 1,
            "name": "System Admin"
        },
        "phone": "+6281805410047",
        "language": {
            "id": 1,
            "name": "Afrikaans"
        },
        "timezone": {
            "id": 1,
            "name": "Africa/Abidjan"
        },
        "features": [],
        "properties": [],
        "detail": {
            "id": 4,
            "user_id": 5,
            "email_verification_code": null,
            "email_verified_at": null,
            "phone": "eyJpdiI6IlkvR1h4aVI0OEtjQTFIR2F4NTVDd2c9PSIsInZhbHVlIjoicCtUR1FYeGZiemxxOEIyYWhVQS9OQT09IiwibWFjIjoiMmRmNmQ5YmY5ZGNiY2Q5Y2Q4MGYxZTcwY2NlNzJlNGZhNDA3YzA5ZGExZTU3MjBlZjlhZGRlYzMyM2ZmN2EwOCIsInRhZyI6IiJ9",
            "phone_verified_at": null,
            "timezone_id": 1,
            "language_id": 1,
            "created_at": "2024-05-31 15:57:57",
            "updated_at": "2024-05-31 15:57:57",
            "deleted_at": null
        }
    }
}
 

Request   

POST api/v1/user/editor

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

The uuid of the user, if want update the data user please add di parameter. Example: incidunt

name   string     

name of User Example: temporibus

email   string     

email of User Example: [email protected]

password   string     

Password of User, set this parameter if want change the password Example: vB1i\#xPw5LhiJL>+

user_category_id   string     

uuid user categories of User Example: pariatur

status   boolean     

status of User if true is active and false deactive Example: false

phone   string     

phone number of User use format +620890090990 Example: porro

timezone_id   integer     

timezone uuid of User Example: 19

language_id   integer     

language uuid of User Example: 12

Option User Editor Input

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"mode\": \"group\"
}"
const url = new URL(
    "http://localhost/api/v1/user/editor/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "mode": "group"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/editor/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'group',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Chart Of Account Template Options Founds",
    "data": [
        {
            "id": "6fe39895-7805-4e41-a241-f19b80ebf6f5",
            "name": "Full Chart Of Account"
        },
        {
            "id": "460a784a-e3d0-4fe1-b699-a55c52d03b69",
            "name": "Simple Chart Of Account"
        }
    ]
}
 

Request   

POST api/v1/user/editor/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

mode   string  optional    

The property. Example: group

Must be one of:
  • category
  • timezone
  • language

Remove User

Example request:
curl --request POST \
    "http://localhost/api/v1/user/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": false
}"
const url = new URL(
    "http://localhost/api/v1/user/remove"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Remove Property",
    "data": []
}
 

Request   

POST api/v1/user/remove

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   boolean     

The uuid of the user. Example: false

Update User Feature

Example request:
curl --request POST \
    "http://localhost/api/v1/user/update/feature" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"est\",
    \"feature_list\": [
        {
            \"id\": \"b0df0b1b-5776-4074-bb2b-0a4263962449\",
            \"name\": \"Language Settings\",
            \"meta_access\": {
                \"can_list\": false,
                \"can_view\": false,
                \"can_add\": false,
                \"can_edit\": false,
                \"can_delete\": false
            }
        },
        {
            \"id\": \"0663f8b2-f815-4826-a68b-8606f0475c00\",
            \"name\": \"Currency Settings\",
            \"meta_access\": {
                \"can_list\": false,
                \"can_view\": false,
                \"can_add\": false,
                \"can_edit\": false,
                \"can_delete\": false
            }
        }
    ]
}"
const url = new URL(
    "http://localhost/api/v1/user/update/feature"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "est",
    "feature_list": [
        {
            "id": "b0df0b1b-5776-4074-bb2b-0a4263962449",
            "name": "Language Settings",
            "meta_access": {
                "can_list": false,
                "can_view": false,
                "can_add": false,
                "can_edit": false,
                "can_delete": false
            }
        },
        {
            "id": "0663f8b2-f815-4826-a68b-8606f0475c00",
            "name": "Currency Settings",
            "meta_access": {
                "can_list": false,
                "can_view": false,
                "can_add": false,
                "can_edit": false,
                "can_delete": false
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/update/feature';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => \Symfony\Component\VarExporter\Internal\Hydrator::hydrate(
            $o = [
                clone (($p = &\Symfony\Component\VarExporter\Internal\Registry::$prototypes)['stdClass'] ?? \Symfony\Component\VarExporter\Internal\Registry::p('stdClass')),
                clone $p['stdClass'],
                clone $p['stdClass'],
                clone $p['stdClass'],
            ],
            null,
            [
                'stdClass' => [
                    'id' => [
                        'b0df0b1b-5776-4074-bb2b-0a4263962449',
                        2 => '0663f8b2-f815-4826-a68b-8606f0475c00',
                    ],
                    'name' => [
                        'Language Settings',
                        2 => 'Currency Settings',
                    ],
                    'meta_access' => [
                        $o[1],
                        2 => $o[3],
                    ],
                    'can_list' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_view' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_add' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_edit' => [
                        1 => false,
                        3 => false,
                    ],
                    'can_delete' => [
                        1 => false,
                        3 => false,
                    ],
                ],
            ],
            [
                'id' => 'est',
                'feature_list' => [
                    $o[0],
                    $o[2],
                ],
            ],
            []
        ),
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success update User Category Feature Default",
    "data": {
        "id": "5fdf1e50-c125-4db1-bcbc-a02439054a39",
        "name": "Agus Bawa Nadi Putra",
        "user_categories_id": "30738b69-5a51-43cc-a678-d3a0301d82fe",
        "feature_list": [
            {
                "id": "9c8918af-9db2-4f04-b51d-7bdb2c62661e",
                "name": "General Settings",
                "feature_list": [
                    {
                        "id": "a95bf984-8842-4e7f-807e-e8462bb28cdf",
                        "name": "Language Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": false,
                            "can_edit": true,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "c901bdea-94d6-413b-83bf-db8d72384182",
                        "name": "Currency Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": false,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "6ebda416-fed0-42df-a475-b031e60033b8",
                        "name": "Timezone Settings",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "57793c0f-b525-4d71-9649-9d00e0aa9c1b",
                        "name": "Country Settings",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "2ba3ade1-3ddc-4f62-b7c6-5bc4f317bc46",
                        "name": "Region Settings",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "4a81c333-0277-4a78-8759-b778c7a7a860",
                        "name": "Area Settings",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    }
                ]
            },
            {
                "id": "7d49fc3c-e41e-487b-beb2-f764caf21a58",
                "name": "System Setup",
                "feature_list": [
                    {
                        "id": "22251f3b-ff7d-4c86-9657-a96e0e90e2e1",
                        "name": "Features Categories",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "0cff66cc-d0ce-4b6c-9723-f46d5e8fca29",
                        "name": "User Category Features Defaults",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "2ab7ad36-3f81-4863-a578-3657b2d5d153",
                        "name": "Properties Settings",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "e306a2c6-d101-46f0-bf85-0868e3201ea9",
                        "name": "Users Settings",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "cb04628f-381f-47bc-b8ad-75c7ea8e8bba",
                        "name": "Room Status Default",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "23486475-dd2e-434b-bb6e-2f5ddab042dd",
                        "name": "Amenities List Default",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "daeca237-fbe2-4a87-90b9-7b3aea028846",
                        "name": "Chart Of Account Default",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "6311cf9f-e96e-4d83-be03-3da126200157",
                        "name": "Chart Of Account Template",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    }
                ]
            },
            {
                "id": "feaeee14-cda1-435c-af28-88e5465c7884",
                "name": "Property Setup",
                "feature_list": [
                    {
                        "id": "1bcacebd-d3c7-4288-b012-d1894ddc43a1",
                        "name": "Room Amenities List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "4bc141ca-07ea-4c31-a50c-9c848fdc95cb",
                        "name": "Room Status List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "510d1643-582b-42f4-bcc1-a94cff3e29a9",
                        "name": "Room Bed Type List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "d815b27b-c4b0-472e-8b4c-1e2b98877e03",
                        "name": "Room Type",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "34fb3ff1-3d48-4a6e-aaf3-242a43d26b0e",
                        "name": "Rooms List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "1c686e55-aa5c-4879-a276-e15abb103b36",
                        "name": "Room Rates",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    }
                ]
            },
            {
                "id": "9c189c4e-165b-4107-895f-c3c216e0022f",
                "name": "Front Office",
                "feature_list": [
                    {
                        "id": "1ebc1e9b-8077-481c-b434-643bbb8c2e58",
                        "name": "Reservation",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "4bdbbea0-224c-4713-bae8-6eab7b99918c",
                        "name": "Room Available",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "e53c8448-19b3-434d-99d8-2bfb3d00fce0",
                        "name": "Night Audit",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "80a2d514-de3b-48a8-b6c1-7f7f46a6bab7",
                        "name": "Guest Profile",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "8b5351c6-f64a-4d54-81d6-0665a0859153",
                        "name": "Guest List Daily",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "298b6766-3472-4415-8ff6-671760e15636",
                        "name": "Guest Payment",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    }
                ]
            },
            {
                "id": "fc711b7f-050d-4a79-86d6-76f29bcceb6c",
                "name": "Back Office",
                "feature_list": [
                    {
                        "id": "de19014a-4c5a-496a-9781-4ccbb240369d",
                        "name": "Chart Of Account",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "91b8e800-fedc-4e49-9724-a462dd3b2525",
                        "name": "Tax And Service List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "f9bfa10c-a87c-4c25-b1df-11cd6cb12550",
                        "name": "Agent Property List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    },
                    {
                        "id": "d7496a07-7d69-4332-ac6a-a5f3ddfc0d9c",
                        "name": "Payment Options List",
                        "meta_access": {
                            "can_list": false,
                            "can_view": false,
                            "can_add": false,
                            "can_edit": false,
                            "can_delete": false
                        }
                    }
                ]
            }
        ]
    }
}
 

Request   

POST api/v1/user/update/feature

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of User Example: est

feature_list   object[]  optional    

list of feature

List User features

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/feature/detail/c8031c73-00ea-3e7d-9477-6d38336cfea6" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/feature/detail/c8031c73-00ea-3e7d-9477-6d38336cfea6"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/feature/detail/c8031c73-00ea-3e7d-9477-6d38336cfea6';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get User Feature",
    "data": {
        "id": "69fe1eb9-d32d-41b7-be3b-832f16b5cd8d",
        "name": "Master User Api",
        "user_categories_id": "5dc3b91d-c354-40d0-b747-6ee4b8a3d992",
        "feature_list": [
            {
                "id": "9c8918af-9db2-4f04-b51d-7bdb2c62661e",
                "name": "General Settings",
                "feature_list": [
                    {
                        "id": "a95bf984-8842-4e7f-807e-e8462bb28cdf",
                        "name": "Language Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "c901bdea-94d6-413b-83bf-db8d72384182",
                        "name": "Currency Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "6ebda416-fed0-42df-a475-b031e60033b8",
                        "name": "Timezone Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "57793c0f-b525-4d71-9649-9d00e0aa9c1b",
                        "name": "Country Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "2ba3ade1-3ddc-4f62-b7c6-5bc4f317bc46",
                        "name": "Region Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "4a81c333-0277-4a78-8759-b778c7a7a860",
                        "name": "Area Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    }
                ]
            },
            {
                "id": "7d49fc3c-e41e-487b-beb2-f764caf21a58",
                "name": "System Setup",
                "feature_list": [
                    {
                        "id": "22251f3b-ff7d-4c86-9657-a96e0e90e2e1",
                        "name": "Features Categories",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "0cff66cc-d0ce-4b6c-9723-f46d5e8fca29",
                        "name": "User Category Features Defaults",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "2ab7ad36-3f81-4863-a578-3657b2d5d153",
                        "name": "Properties Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "e306a2c6-d101-46f0-bf85-0868e3201ea9",
                        "name": "Users Settings",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "cb04628f-381f-47bc-b8ad-75c7ea8e8bba",
                        "name": "Room Status Default",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "23486475-dd2e-434b-bb6e-2f5ddab042dd",
                        "name": "Amenities List Default",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "daeca237-fbe2-4a87-90b9-7b3aea028846",
                        "name": "Chart Of Account Default",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "6311cf9f-e96e-4d83-be03-3da126200157",
                        "name": "Chart Of Account Template",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    }
                ]
            },
            {
                "id": "feaeee14-cda1-435c-af28-88e5465c7884",
                "name": "Property Setup",
                "feature_list": [
                    {
                        "id": "1bcacebd-d3c7-4288-b012-d1894ddc43a1",
                        "name": "Room Amenities List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "4bc141ca-07ea-4c31-a50c-9c848fdc95cb",
                        "name": "Room Status List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "510d1643-582b-42f4-bcc1-a94cff3e29a9",
                        "name": "Room Bed Type List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "d815b27b-c4b0-472e-8b4c-1e2b98877e03",
                        "name": "Room Type",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "34fb3ff1-3d48-4a6e-aaf3-242a43d26b0e",
                        "name": "Rooms List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "1c686e55-aa5c-4879-a276-e15abb103b36",
                        "name": "Room Rates",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    }
                ]
            },
            {
                "id": "9c189c4e-165b-4107-895f-c3c216e0022f",
                "name": "Front Office",
                "feature_list": [
                    {
                        "id": "1ebc1e9b-8077-481c-b434-643bbb8c2e58",
                        "name": "Reservation",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "4bdbbea0-224c-4713-bae8-6eab7b99918c",
                        "name": "Room Available",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "e53c8448-19b3-434d-99d8-2bfb3d00fce0",
                        "name": "Night Audit",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "80a2d514-de3b-48a8-b6c1-7f7f46a6bab7",
                        "name": "Guest Profile",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "8b5351c6-f64a-4d54-81d6-0665a0859153",
                        "name": "Guest List Daily",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "298b6766-3472-4415-8ff6-671760e15636",
                        "name": "Guest Payment",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    }
                ]
            },
            {
                "id": "fc711b7f-050d-4a79-86d6-76f29bcceb6c",
                "name": "Back Office",
                "feature_list": [
                    {
                        "id": "de19014a-4c5a-496a-9781-4ccbb240369d",
                        "name": "Chart Of Account",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "91b8e800-fedc-4e49-9724-a462dd3b2525",
                        "name": "Tax And Service List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "f9bfa10c-a87c-4c25-b1df-11cd6cb12550",
                        "name": "Agent Property List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    },
                    {
                        "id": "d7496a07-7d69-4332-ac6a-a5f3ddfc0d9c",
                        "name": "Payment Options List",
                        "meta_access": {
                            "can_list": true,
                            "can_view": true,
                            "can_add": true,
                            "can_edit": true,
                            "can_delete": true
                        }
                    }
                ]
            }
        ]
    }
}
 

Request   

GET api/v1/user/feature/detail/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of User. Example: c8031c73-00ea-3e7d-9477-6d38336cfea6

Update User Property

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor/property" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"autem\",
    \"property_list\": [
        \"1dce3106-2edb-4c56-956d-3987785080c2\",
        \"70b6a5bd-fa17-4072-ac38-8dcb81f16f81\"
    ]
}"
const url = new URL(
    "http://localhost/api/v1/user/editor/property"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "autem",
    "property_list": [
        "1dce3106-2edb-4c56-956d-3987785080c2",
        "70b6a5bd-fa17-4072-ac38-8dcb81f16f81"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/editor/property';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'autem',
            'property_list' => [
                '1dce3106-2edb-4c56-956d-3987785080c2',
                '70b6a5bd-fa17-4072-ac38-8dcb81f16f81',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update User",
    "data": {
        "id": "deb3c983-a749-4f61-8257-3d2b3683efd5",
        "name": "Agus Bawa Nadi Putra update",
        "email": "[email protected]",
        "google2fa_is_active": false,
        "is_active": true,
        "user_categories": {
            "id": 1,
            "name": "System Admin"
        },
        "phone": "+6281805410047",
        "language": {
            "id": 1,
            "name": "Afrikaans"
        },
        "timezone": {
            "id": 1,
            "name": "Africa/Abidjan"
        },
        "features": [],
        "properties": [
            {
                "id": "3aae9ad7-19cf-4cdc-959f-dd43558c712c",
                "name": "Hotel Dummy"
            }
        ],
        "detail": {
            "id": 4,
            "user_id": 5,
            "email_verification_code": null,
            "email_verified_at": null,
            "phone": "eyJpdiI6IlkvR1h4aVI0OEtjQTFIR2F4NTVDd2c9PSIsInZhbHVlIjoicCtUR1FYeGZiemxxOEIyYWhVQS9OQT09IiwibWFjIjoiMmRmNmQ5YmY5ZGNiY2Q5Y2Q4MGYxZTcwY2NlNzJlNGZhNDA3YzA5ZGExZTU3MjBlZjlhZGRlYzMyM2ZmN2EwOCIsInRhZyI6IiJ9",
            "phone_verified_at": null,
            "timezone_id": 1,
            "language_id": 1,
            "created_at": "2024-05-31 15:57:57",
            "updated_at": "2024-05-31 15:57:57",
            "deleted_at": null
        }
    }
}
 

Request   

POST api/v1/user/editor/property

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of User Example: autem

property_list   string[]  optional    

This is a feature list uuid.

Option User Property Editor Input

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor/property/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": false
}"
const url = new URL(
    "http://localhost/api/v1/user/editor/property/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/editor/property/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Properties Options Founds",
    "data": [
        {
            "id": "3aae9ad7-19cf-4cdc-959f-dd43558c712c",
            "name": "Hotel Dummy"
        }
    ]
}
 

Request   

POST api/v1/user/editor/property/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   boolean     

The uuid of the user. Example: false

List User Property

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/property/lists/229b2098-f990-3cdb-aa64-7f8a4e5c3add" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/property/lists/229b2098-f990-3cdb-aa64-7f8a4e5c3add"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/property/lists/229b2098-f990-3cdb-aa64-7f8a4e5c3add';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Property",
    "data": [
        {
            "uuid": "3aae9ad7-19cf-4cdc-959f-dd43558c712c",
            "name": "Hotel Dummy"
        }
    ]
}
 

Request   

GET api/v1/user/property/lists/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

Example: 229b2098-f990-3cdb-aa64-7f8a4e5c3add

id   string     

uuid of User. Example: laborum

Update User Property Groups

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor/propertygroups" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"blanditiis\",
    \"property_group_list\": [
        \"1dce3106-2edb-4c56-956d-3987785080c2\",
        \"70b6a5bd-fa17-4072-ac38-8dcb81f16f81\"
    ]
}"
const url = new URL(
    "http://localhost/api/v1/user/editor/propertygroups"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "blanditiis",
    "property_group_list": [
        "1dce3106-2edb-4c56-956d-3987785080c2",
        "70b6a5bd-fa17-4072-ac38-8dcb81f16f81"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/editor/propertygroups';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'blanditiis',
            'property_group_list' => [
                '1dce3106-2edb-4c56-956d-3987785080c2',
                '70b6a5bd-fa17-4072-ac38-8dcb81f16f81',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Update User",
    "data": {
        "id": "deb3c983-a749-4f61-8257-3d2b3683efd5",
        "name": "Agus Bawa Nadi Putra update",
        "email": "[email protected]",
        "google2fa_is_active": false,
        "is_active": true,
        "user_categories": {
            "id": 1,
            "name": "System Admin"
        },
        "phone": "+6281805410047",
        "language": {
            "id": 1,
            "name": "Afrikaans"
        },
        "timezone": {
            "id": 1,
            "name": "Africa/Abidjan"
        },
        "features": [],
        "properties": [
            {
                "id": "3aae9ad7-19cf-4cdc-959f-dd43558c712c",
                "name": "Hotel Dummy"
            }
        ],
        "detail": {
            "id": 4,
            "user_id": 5,
            "email_verification_code": null,
            "email_verified_at": null,
            "phone": "eyJpdiI6IlkvR1h4aVI0OEtjQTFIR2F4NTVDd2c9PSIsInZhbHVlIjoicCtUR1FYeGZiemxxOEIyYWhVQS9OQT09IiwibWFjIjoiMmRmNmQ5YmY5ZGNiY2Q5Y2Q4MGYxZTcwY2NlNzJlNGZhNDA3YzA5ZGExZTU3MjBlZjlhZGRlYzMyM2ZmN2EwOCIsInRhZyI6IiJ9",
            "phone_verified_at": null,
            "timezone_id": 1,
            "language_id": 1,
            "created_at": "2024-05-31 15:57:57",
            "updated_at": "2024-05-31 15:57:57",
            "deleted_at": null
        }
    }
}
 

Request   

POST api/v1/user/editor/propertygroups

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of User Example: blanditiis

property_group_list   string[]  optional    

This is a feature list uuid.

Option User Property Group Editor Input

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor/propertygroups/dropdown/list" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": false
}"
const url = new URL(
    "http://localhost/api/v1/user/editor/propertygroups/dropdown/list"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/editor/propertygroups/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Properties Groups Options Founds",
    "data": [
        {
            "id": "3aae9ad7-19cf-4cdc-959f-dd43558c712c",
            "name": "Hotel Dummy"
        }
    ]
}
 

Request   

POST api/v1/user/editor/propertygroups/dropdown/list

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   boolean     

The uuid of the user. Example: false

List User Property Groups

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/propertygroups/lists/2f62432e-ce8a-3b52-8e74-8788d29b6096" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/propertygroups/lists/2f62432e-ce8a-3b52-8e74-8788d29b6096"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/propertygroups/lists/2f62432e-ce8a-3b52-8e74-8788d29b6096';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Success Get List Property",
    "data": [
        {
            "uuid": "3aae9ad7-19cf-4cdc-959f-dd43558c712c",
            "name": "Hotel Dummy"
        }
    ]
}
 

Request   

GET api/v1/user/propertygroups/lists/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

Example: 2f62432e-ce8a-3b52-8e74-8788d29b6096

id   string     

uuid of User. Example: veritatis

Update User Ip Whitelist

Example request:
curl --request POST \
    "http://localhost/api/v1/user/update/ipwhitelist" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"iusto\",
    \"ip_list\": [
        \"127.0.0.1\",
        \"127.0.0.2\"
    ]
}"
const url = new URL(
    "http://localhost/api/v1/user/update/ipwhitelist"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "id": "iusto",
    "ip_list": [
        "127.0.0.1",
        "127.0.0.2"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/update/ipwhitelist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'iusto',
            'ip_list' => [
                '127.0.0.1',
                '127.0.0.2',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "id": "65665b19-80f8-4333-b228-46786077101c",
    "name": "Agus Bawa Nadi Putra",
    "email": "[email protected]",
    "google2fa_is_active": false,
    "is_active": true,
    "user_categories": {
        "id": 1,
        "name": "System Admin"
    },
    "features": [
        {
            "id": 1,
            "feature_name": "System Features"
        },
        {
            "id": 3,
            "feature_name": "System Users"
        }
    ],
    "properties": [
        {
            "id": "1dce3106-2edb-4c56-956d-3987785080c2",
            "name": "Satria Cotages"
        },
        {
            "id": "70b6a5bd-fa17-4072-ac38-8dcb81f16f81",
            "name": "Satria Cotages"
        }
    ],
    "detail": []
}
 

Request   

POST api/v1/user/update/ipwhitelist

Headers

Authorization        

Example: Bearer ***************************************

Content-Type        

Example: application/json

Body Parameters

id   string     

uuid of User Example: iusto

ip_list   string[]  optional    

This is a ip list uuid.

List User Ip Whitelist

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/ipwhitelist/lists/dad1e45b-8341-3bc2-9e10-3bcfbd22b2b0" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/ipwhitelist/lists/dad1e45b-8341-3bc2-9e10-3bcfbd22b2b0"
);

const headers = {
    "Authorization": "Bearer ***************************************",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/ipwhitelist/lists/dad1e45b-8341-3bc2-9e10-3bcfbd22b2b0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


[
    {
        "key": "1-system-setup",
        "label": "System Setup",
        "active_all": true,
        "feature": [
            {
                "id": 1,
                "name": "System Features",
                "is_active": true
            },
            {
                "id": 2,
                "name": "System Properties",
                "is_active": true
            },
            {
                "id": 3,
                "name": "System Users",
                "is_active": true
            }
        ]
    }
]
 

Request   

GET api/v1/user/ipwhitelist/lists/{uuid}

Headers

Authorization        

Example: Bearer ***************************************

URL Parameters

uuid   string     

uuid of User. Example: dad1e45b-8341-3bc2-9e10-3bcfbd22b2b0