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/e9872ac4-1684-394b-b417-9c3018d0c4a9" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/amenities/details/e9872ac4-1684-394b-b417-9c3018d0c4a9"
);

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/e9872ac4-1684-394b-b417-9c3018d0c4a9';
$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: e9872ac4-1684-394b-b417-9c3018d0c4a9

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\": \"qui\",
    \"name\": \"illo\",
    \"description\": \"Veniam non tenetur error nihil qui.\"
}"
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": "qui",
    "name": "illo",
    "description": "Veniam non tenetur error nihil qui."
};

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' => 'qui',
            'name' => 'illo',
            'description' => 'Veniam non tenetur error nihil qui.',
        ],
    ]
);
$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: qui

name   string     

Name of Amenities Example: illo

description   string     

Description of Amenities Example: Veniam non tenetur error nihil qui.

Remove Amenities

Example request:
curl --request POST \
    "http://localhost/api/v1/master/amenities/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"sint\"
}"
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": "sint"
};

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' => 'sint',
        ],
    ]
);
$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: sint

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\": \"adipisci\",
    \"reference_no\": \"modi\",
    \"start_date\": \"non\",
    \"end_date\": \"ea\",
    \"page_no\": 4
}"
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": "adipisci",
    "reference_no": "modi",
    "start_date": "non",
    "end_date": "ea",
    "page_no": 4
};

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' => 'adipisci',
            'reference_no' => 'modi',
            'start_date' => 'non',
            'end_date' => 'ea',
            'page_no' => 4,
        ],
    ]
);
$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: adipisci

reference_no   string  optional    

no of refrence trx Example: modi

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: ea

page_no   integer  optional    

number of pagination Example: 4

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\": \"quaerat\",
    \"mode\": \"ap_aging_list\",
    \"reference_no\": \"fuga\",
    \"start_date\": \"nam\",
    \"end_date\": \"deleniti\",
    \"page_no\": 17,
    \"list_current_reconcile\": \"est\"
}"
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": "quaerat",
    "mode": "ap_aging_list",
    "reference_no": "fuga",
    "start_date": "nam",
    "end_date": "deleniti",
    "page_no": 17,
    "list_current_reconcile": "est"
};

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' => 'quaerat',
            'mode' => 'ap_aging_list',
            'reference_no' => 'fuga',
            'start_date' => 'nam',
            'end_date' => 'deleniti',
            'page_no' => 17,
            'list_current_reconcile' => 'est',
        ],
    ]
);
$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: quaerat

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: fuga

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 17

list_current_reconcile   array.  optional    

Example: est

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\": \"qui\",
    \"ap_payment_id\": \"cupiditate\"
}"
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": "qui",
    "ap_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-payable/payment/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'qui',
            'ap_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-payable/payment/remove

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: qui

ap_payment_id   string     

uuid of Trx Property Ap Payment Example: cupiditate

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\": \"in\",
    \"reference_no\": \"quo\",
    \"start_date\": \"reprehenderit\",
    \"end_date\": \"odio\",
    \"page_no\": 3
}"
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": "in",
    "reference_no": "quo",
    "start_date": "reprehenderit",
    "end_date": "odio",
    "page_no": 3
};

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' => 'in',
            'reference_no' => 'quo',
            'start_date' => 'reprehenderit',
            'end_date' => 'odio',
            'page_no' => 3,
        ],
    ]
);
$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: in

reference_no   string  optional    

no of refrence trx Example: quo

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 3

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\": \"et\",
    \"trx_date\": \"mollitia\",
    \"list_journal\": \"explicabo\"
}"
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": "et",
    "trx_date": "mollitia",
    "list_journal": "explicabo"
};

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' => 'et',
            'trx_date' => 'mollitia',
            'list_journal' => 'explicabo',
        ],
    ]
);
$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: et

trx_date   string  optional    

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

list_journal   array.  optional    

Example: explicabo

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\": \"sint\",
    \"mode\": \"coa\",
    \"coa_search\": \"veniam\",
    \"default_value\": \"hic\"
}"
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": "sint",
    "mode": "coa",
    "coa_search": "veniam",
    "default_value": "hic"
};

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' => 'sint',
            'mode' => 'coa',
            'coa_search' => 'veniam',
            'default_value' => 'hic',
        ],
    ]
);
$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: sint

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • journal_type
coa_search   string     

name of coa finding Example: veniam

default_value   string     

name of coa default value Example: hic

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\": \"qui\",
    \"start_date\": \"aut\",
    \"end_date\": \"officiis\",
    \"page_no\": 18
}"
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": "qui",
    "start_date": "aut",
    "end_date": "officiis",
    "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/journal/manual/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'qui',
            'start_date' => 'aut',
            'end_date' => 'officiis',
            '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/journal/manual/list

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property. Example: qui

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 18

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\": \"aut\",
    \"reference_no\": \"mollitia\",
    \"start_date\": \"perspiciatis\",
    \"end_date\": \"molestiae\",
    \"page_no\": 3
}"
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": "aut",
    "reference_no": "mollitia",
    "start_date": "perspiciatis",
    "end_date": "molestiae",
    "page_no": 3
};

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' => 'aut',
            'reference_no' => 'mollitia',
            'start_date' => 'perspiciatis',
            'end_date' => 'molestiae',
            'page_no' => 3,
        ],
    ]
);
$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: aut

reference_no   string  optional    

no of refrence trx Example: mollitia

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 3

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\": \"culpa\",
    \"mode\": \"ar_aging_list\",
    \"reference_no\": \"optio\",
    \"start_date\": \"mollitia\",
    \"end_date\": \"nihil\",
    \"page_no\": 10,
    \"list_current_reconcile\": \"et\"
}"
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": "culpa",
    "mode": "ar_aging_list",
    "reference_no": "optio",
    "start_date": "mollitia",
    "end_date": "nihil",
    "page_no": 10,
    "list_current_reconcile": "et"
};

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' => 'culpa',
            'mode' => 'ar_aging_list',
            'reference_no' => 'optio',
            'start_date' => 'mollitia',
            'end_date' => 'nihil',
            'page_no' => 10,
            'list_current_reconcile' => 'et',
        ],
    ]
);
$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: culpa

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: optio

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 10

list_current_reconcile   array.  optional    

Example: et

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\": \"voluptas\",
    \"ar_payment_id\": \"exercitationem\"
}"
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": "voluptas",
    "ar_payment_id": "exercitationem"
};

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' => 'voluptas',
            'ar_payment_id' => 'exercitationem',
        ],
    ]
);
$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: voluptas

ar_payment_id   string     

uuid of Trx Property Ar Payment Example: exercitationem

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\": \"ducimus\",
    \"reference_no\": \"sunt\",
    \"start_date\": \"accusamus\",
    \"end_date\": \"quod\",
    \"page_no\": 10
}"
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": "ducimus",
    "reference_no": "sunt",
    "start_date": "accusamus",
    "end_date": "quod",
    "page_no": 10
};

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' => 'ducimus',
            'reference_no' => 'sunt',
            'start_date' => 'accusamus',
            'end_date' => 'quod',
            'page_no' => 10,
        ],
    ]
);
$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: ducimus

reference_no   string  optional    

no of refrence trx Example: sunt

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 10

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\": \"est\",
    \"remark\": \"est\",
    \"trx_date\": \"ullam\",
    \"list_journal\": \"qui\"
}"
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": "est",
    "remark": "est",
    "trx_date": "ullam",
    "list_journal": "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-receivable/journal/manual';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'est',
            'remark' => 'est',
            'trx_date' => 'ullam',
            'list_journal' => '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-receivable/journal/manual

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: est

remark   string     

remark of AR Payment Example: est

trx_date   string  optional    

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

list_journal   array.  optional    

Example: qui

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\": \"quis\",
    \"mode\": \"coa\",
    \"coa_search\": \"aspernatur\",
    \"default_value\": \"voluptas\"
}"
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": "quis",
    "mode": "coa",
    "coa_search": "aspernatur",
    "default_value": "voluptas"
};

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' => 'quis',
            'mode' => 'coa',
            'coa_search' => 'aspernatur',
            'default_value' => 'voluptas',
        ],
    ]
);
$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: quis

mode   string  optional    

The language. Example: coa

Must be one of:
  • coa
  • journal_type
coa_search   string     

name of coa finding Example: aspernatur

default_value   string     

name of coa default value Example: voluptas

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\": \"omnis\",
    \"start_date\": \"nulla\",
    \"end_date\": \"corrupti\",
    \"page_no\": 2
}"
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": "omnis",
    "start_date": "nulla",
    "end_date": "corrupti",
    "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/property/backoffice/account-receivable/journal/manual/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'omnis',
            'start_date' => 'nulla',
            'end_date' => 'corrupti',
            'page_no' => 2,
        ],
    ]
);
$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: omnis

start_date   string  optional    

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

end_date   string  optional    

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

page_no   integer  optional    

number of pagination Example: 2

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\": \"possimus\"
}"
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": "possimus"
};

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' => 'possimus',
        ],
    ]
);
$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: possimus

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\": \"aspernatur\",
    \"coa_search\": \"tempora\",
    \"default_value\": \"officiis\"
}"
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": "aspernatur",
    "coa_search": "tempora",
    "default_value": "officiis"
};

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' => 'aspernatur',
            'coa_search' => 'tempora',
            'default_value' => 'officiis',
        ],
    ]
);
$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: aspernatur

coa_search   string     

name of coa finding Example: tempora

default_value   string     

name of coa default value Example: officiis

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\": \"rerum\",
    \"discount_option_id\": \"similique\"
}"
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": "rerum",
    "discount_option_id": "similique"
};

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' => 'rerum',
            'discount_option_id' => 'similique',
        ],
    ]
);
$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: rerum

discount_option_id   string     

uuid of Discount Option Example: similique

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\": \"recusandae\"
}"
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": "recusandae"
};

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' => 'recusandae',
        ],
    ]
);
$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: recusandae

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\": \"quasi\",
    \"property_id\": \"voluptas\",
    \"coa_id\": \"officiis\",
    \"department_id\": \"natus\",
    \"title\": \"omnis\",
    \"remark\": \"maiores\"
}"
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": "quasi",
    "property_id": "voluptas",
    "coa_id": "officiis",
    "department_id": "natus",
    "title": "omnis",
    "remark": "maiores"
};

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' => 'quasi',
            'property_id' => 'voluptas',
            'coa_id' => 'officiis',
            'department_id' => 'natus',
            'title' => 'omnis',
            'remark' => 'maiores',
        ],
    ]
);
$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: quasi

property_id   string     

uuid of Property Example: voluptas

coa_id   string     

uuid of Chart of Account Payment Method Example: officiis

department_id   string     

uuid of Department Example: natus

title   string     

title of Discount Example: omnis

remark   string  optional    

remark of discount can nullable Example: maiores

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\": \"minus\"
}"
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": "minus"
};

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' => 'minus',
        ],
    ]
);
$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: minus

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\": \"saepe\",
    \"coa_search\": \"voluptate\",
    \"default_value\": \"aspernatur\"
}"
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": "saepe",
    "coa_search": "voluptate",
    "default_value": "aspernatur"
};

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' => 'saepe',
            'coa_search' => 'voluptate',
            'default_value' => 'aspernatur',
        ],
    ]
);
$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: saepe

coa_search   string     

name of coa finding Example: voluptate

default_value   string     

name of coa default value Example: aspernatur

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\": \"quae\",
    \"payment_method_id\": \"cupiditate\"
}"
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": "quae",
    "payment_method_id": "cupiditate"
};

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' => 'quae',
            'payment_method_id' => 'cupiditate',
        ],
    ]
);
$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: quae

payment_method_id   string     

uuid of Payment Method Example: cupiditate

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\": \"qui\",
    \"payment_option_id\": \"ex\"
}"
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": "qui",
    "payment_option_id": "ex"
};

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' => 'qui',
            'payment_option_id' => 'ex',
        ],
    ]
);
$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: qui

payment_option_id   string     

uuid of Payment Options Example: ex

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\": \"animi\",
    \"payment_option_id\": \"iste\",
    \"coa_id\": \"harum\",
    \"name\": \"molestiae\"
}"
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": "animi",
    "payment_option_id": "iste",
    "coa_id": "harum",
    "name": "molestiae"
};

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' => 'animi',
            'payment_option_id' => 'iste',
            'coa_id' => 'harum',
            'name' => 'molestiae',
        ],
    ]
);
$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: animi

payment_option_id   string     

uuid of Payment Option Example: iste

coa_id   string     

uuid of Chart of Account Payment Method Example: harum

name   string     

Name Payment Method Example: molestiae

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\": \"sed\"
}"
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": "sed"
};

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' => 'sed',
        ],
    ]
);
$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: sed

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\": \"dolorum\",
    \"coa_search\": \"rem\",
    \"default_value\": \"ipsum\"
}"
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": "dolorum",
    "coa_search": "rem",
    "default_value": "ipsum"
};

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' => 'dolorum',
            'coa_search' => 'rem',
            'default_value' => 'ipsum',
        ],
    ]
);
$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: dolorum

coa_search   string     

name of coa finding Example: rem

default_value   string     

name of coa default value Example: ipsum

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\": \"et\",
    \"payment_option_id\": \"sequi\"
}"
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": "et",
    "payment_option_id": "sequi"
};

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' => 'et',
            'payment_option_id' => 'sequi',
        ],
    ]
);
$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: et

payment_option_id   string     

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

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\": \"facere\"
}"
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": "facere"
};

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' => 'facere',
        ],
    ]
);
$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: facere

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\": \"consequatur\",
    \"name\": \"est\",
    \"agent_id\": \"voluptates\",
    \"coa_id\": \"placeat\"
}"
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": "consequatur",
    "name": "est",
    "agent_id": "voluptates",
    "coa_id": "placeat"
};

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' => 'consequatur',
            'name' => 'est',
            'agent_id' => 'voluptates',
            'coa_id' => 'placeat',
        ],
    ]
);
$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: consequatur

name   string     

Name of Tax and Service Example: est

agent_id   string     

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

coa_id   string     

uuid of Chart of Account Payment Method Example: placeat

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\": \"voluptatem\"
}"
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": "voluptatem"
};

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' => 'voluptatem',
        ],
    ]
);
$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: voluptatem

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\": \"vel\",
    \"coa_search\": \"qui\",
    \"default_value\": \"est\"
}"
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": "vel",
    "coa_search": "qui",
    "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/payment-options/dropdown/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'mode' => 'coa',
            'property_id' => 'vel',
            'coa_search' => 'qui',
            '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/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: vel

coa_search   string     

name of coa finding Example: qui

default_value   string     

name of coa default value Example: est

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\": \"ut\",
    \"rate_plan_id\": \"harum\"
}"
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": "ut",
    "rate_plan_id": "harum"
};

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' => 'ut',
            'rate_plan_id' => 'harum',
        ],
    ]
);
$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: ut

rate_plan_id   string     

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

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\": \"aliquam\",
    \"page_no\": 6,
    \"rate_plan_name\": \"accusamus\",
    \"rate_type_id\": \"veniam\",
    \"room_type_id\": \"earum\",
    \"active_start_date\": \"aspernatur\",
    \"active_end_date\": \"ratione\",
    \"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": "aliquam",
    "page_no": 6,
    "rate_plan_name": "accusamus",
    "rate_type_id": "veniam",
    "room_type_id": "earum",
    "active_start_date": "aspernatur",
    "active_end_date": "ratione",
    "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' => 'aliquam',
            'page_no' => 6,
            'rate_plan_name' => 'accusamus',
            'rate_type_id' => 'veniam',
            'room_type_id' => 'earum',
            'active_start_date' => 'aspernatur',
            'active_end_date' => 'ratione',
            '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: aliquam

page_no   integer  optional    

number of pagination Example: 6

rate_plan_name   string  optional    

filter of rate plan name Example: accusamus

rate_type_id   string  optional    

uuid of rate plan type Example: veniam

room_type_id   string  optional    

uuid of room type Example: earum

active_start_date   string  optional    

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

active_end_date   string  optional    

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

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\": \"hic\",
    \"property_id\": \"quia\",
    \"rate_plan_type_id\": \"non\",
    \"tax_and_service_id\": \"tempora\",
    \"room_type_id\": \"quia\",
    \"room_type_multi\": null,
    \"open_rate\": \"est\",
    \"name\": \"sit\",
    \"remark\": \"rerum\",
    \"start_date\": \"optio\",
    \"end_date\": \"rerum\",
    \"min_night\": 2,
    \"max_night\": 7,
    \"max_adult\": 8,
    \"max_child\": 14,
    \"max_pax\": 14,
    \"rate\": 8,
    \"extra_adult_rate\": 4,
    \"extra_child_rate\": 13,
    \"daily_rate_period_start_date\": \"quaerat\",
    \"daily_rate_period_end_date\": \"praesentium\",
    \"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": "hic",
    "property_id": "quia",
    "rate_plan_type_id": "non",
    "tax_and_service_id": "tempora",
    "room_type_id": "quia",
    "room_type_multi": null,
    "open_rate": "est",
    "name": "sit",
    "remark": "rerum",
    "start_date": "optio",
    "end_date": "rerum",
    "min_night": 2,
    "max_night": 7,
    "max_adult": 8,
    "max_child": 14,
    "max_pax": 14,
    "rate": 8,
    "extra_adult_rate": 4,
    "extra_child_rate": 13,
    "daily_rate_period_start_date": "quaerat",
    "daily_rate_period_end_date": "praesentium",
    "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' => 'hic',
            'property_id' => 'quia',
            'rate_plan_type_id' => 'non',
            'tax_and_service_id' => 'tempora',
            'room_type_id' => 'quia',
            'room_type_multi' => null,
            'open_rate' => 'est',
            'name' => 'sit',
            'remark' => 'rerum',
            'start_date' => 'optio',
            'end_date' => 'rerum',
            'min_night' => 2,
            'max_night' => 7,
            'max_adult' => 8,
            'max_child' => 14,
            'max_pax' => 14,
            'rate' => 8,
            'extra_adult_rate' => 4,
            'extra_child_rate' => 13,
            'daily_rate_period_start_date' => 'quaerat',
            'daily_rate_period_end_date' => 'praesentium',
            '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: hic

property_id   string     

uuid of Property Example: quia

rate_plan_type_id   string     

uuid of Rate Plan Type Example: non

tax_and_service_id   string     

uuid of Tax and Service Example: tempora

room_type_id   string  optional    

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

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: est

name   string     

name Of Rate Plan Example: sit

remark   string     

remark Of Rate Plan Example: rerum

start_date   string     

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

end_date   string     

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

min_night   integer     

minimum night stay rate plan Example: 2

max_night   integer     

maximum night stay rate plan Example: 7

max_adult   integer     

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

max_child   integer     

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

max_pax   integer     

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

rate   integer     

value of Rate Example: 8

extra_adult_rate   integer  optional    

value of Extra Adult Rate Example: 4

extra_child_rate   integer  optional    

value of Extra child Rate Example: 13

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: quaerat

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: praesentium

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\": \"officia\"
}"
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": "officia"
};

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' => 'officia',
        ],
    ]
);
$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: officia

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\": \"recusandae\",
    \"rate_plan_type_id\": \"et\",
    \"product_category_id\": \"mollitia\"
}"
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": "recusandae",
    "rate_plan_type_id": "et",
    "product_category_id": "mollitia"
};

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' => 'recusandae',
            'rate_plan_type_id' => 'et',
            'product_category_id' => 'mollitia',
        ],
    ]
);
$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: recusandae

rate_plan_type_id   string     

uuid of Property if mode rate_plan_detail_default Example: et

product_category_id   string     

uuid of Product Category if mode product Example: mollitia

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\": \"esse\",
    \"property_id\": \"cum\",
    \"start_date\": \"autem\",
    \"end_date\": \"voluptas\",
    \"adjust_start_date\": \"doloribus\",
    \"adjust_end_date\": \"possimus\",
    \"rate\": 14,
    \"extra_adult_rate\": 17,
    \"extra_child_rate\": 18,
    \"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": "esse",
    "property_id": "cum",
    "start_date": "autem",
    "end_date": "voluptas",
    "adjust_start_date": "doloribus",
    "adjust_end_date": "possimus",
    "rate": 14,
    "extra_adult_rate": 17,
    "extra_child_rate": 18,
    "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' => 'esse',
            'property_id' => 'cum',
            'start_date' => 'autem',
            'end_date' => 'voluptas',
            'adjust_start_date' => 'doloribus',
            'adjust_end_date' => 'possimus',
            'rate' => 14,
            'extra_adult_rate' => 17,
            'extra_child_rate' => 18,
            '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: esse

property_id   string     

uuid of Property Example: cum

start_date   string     

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

end_date   string     

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

adjust_start_date   string     

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

adjust_end_date   string     

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

rate   integer     

value of Rate adjustment Example: 14

extra_adult_rate   integer  optional    

value of Extra Adult Rate adjustment Example: 17

extra_child_rate   integer  optional    

value of Extra child Rate adjustment Example: 18

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\": \"odit\",
    \"tax_and_service_id\": \"doloribus\"
}"
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": "odit",
    "tax_and_service_id": "doloribus"
};

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' => 'odit',
            'tax_and_service_id' => 'doloribus',
        ],
    ]
);
$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: odit

tax_and_service_id   string     

uuid of Tax And Service Example: doloribus

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\": \"corporis\"
}"
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": "corporis"
};

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' => 'corporis',
        ],
    ]
);
$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: corporis

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\": \"dicta\",
    \"tax_coa_id\": \"est\",
    \"service_coa_id\": \"odit\",
    \"name\": \"corrupti\",
    \"calculation_type\": \"ut\",
    \"tax\": 8.1092,
    \"service\": 782.76,
    \"use_service\": \"voluptas\",
    \"is_default\": \"aut\"
}"
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": "dicta",
    "tax_coa_id": "est",
    "service_coa_id": "odit",
    "name": "corrupti",
    "calculation_type": "ut",
    "tax": 8.1092,
    "service": 782.76,
    "use_service": "voluptas",
    "is_default": "aut"
};

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' => 'dicta',
            'tax_coa_id' => 'est',
            'service_coa_id' => 'odit',
            'name' => 'corrupti',
            'calculation_type' => 'ut',
            'tax' => 8.1092,
            'service' => 782.76,
            'use_service' => 'voluptas',
            'is_default' => 'aut',
        ],
    ]
);
$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: dicta

tax_coa_id   string     

uuid of Char Of Account for tax Example: est

service_coa_id   string     

uuid of Char Of Account for service Example: odit

name   string     

Name of Tax and Service Example: corrupti

calculation_type   string     

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

tax   number     

Value of Tax Example: 8.1092

service   number  optional    

Value of Service Example: 782.76

use_service   bolean  optional    

if use service please set true Example: voluptas

is_default   bolean  optional    

if this default on option set true Example: aut

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\": \"sint\"
}"
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": "sint"
};

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' => 'sint',
        ],
    ]
);
$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: sint

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\": \"vitae\",
    \"mode\": \"coa_list\",
    \"coa_search\": \"et\"
}"
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": "vitae",
    "mode": "coa_list",
    "coa_search": "et"
};

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' => 'vitae',
            'mode' => 'coa_list',
            'coa_search' => 'et',
        ],
    ]
);
$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: vitae

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: et

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\": \"occaecati\"
}"
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": "occaecati"
};

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' => 'occaecati',
        ],
    ]
);
$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: occaecati

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\": \"quisquam\",
    \"name\": \"nostrum\",
    \"is_permanent\": \"voluptatibus\"
}"
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": "quisquam",
    "name": "nostrum",
    "is_permanent": "voluptatibus"
};

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' => 'quisquam',
            'name' => 'nostrum',
            'is_permanent' => 'voluptatibus',
        ],
    ]
);
$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: quisquam

name   string     

Name of Room Type Example: nostrum

is_permanent   bolean     

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

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\": \"odit\"
}"
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": "odit"
};

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' => 'odit',
        ],
    ]
);
$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: odit

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\": \"sunt\",
    \"booking_room_id\": \"laudantium\",
    \"property_product_id\": \"omnis\",
    \"rate_plan_id\": \"inventore\",
    \"tax_and_service_id\": \"dolores\",
    \"guest_id\": \"aut\",
    \"agent_id\": \"ut\",
    \"bill_date\": \"eos\",
    \"bill_date_start\": \"dolor\",
    \"bill_date_end\": \"autem\",
    \"amount\": 7,
    \"remark\": \"similique\",
    \"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": "sunt",
    "booking_room_id": "laudantium",
    "property_product_id": "omnis",
    "rate_plan_id": "inventore",
    "tax_and_service_id": "dolores",
    "guest_id": "aut",
    "agent_id": "ut",
    "bill_date": "eos",
    "bill_date_start": "dolor",
    "bill_date_end": "autem",
    "amount": 7,
    "remark": "similique",
    "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' => 'sunt',
            'booking_room_id' => 'laudantium',
            'property_product_id' => 'omnis',
            'rate_plan_id' => 'inventore',
            'tax_and_service_id' => 'dolores',
            'guest_id' => 'aut',
            'agent_id' => 'ut',
            'bill_date' => 'eos',
            'bill_date_start' => 'dolor',
            'bill_date_end' => 'autem',
            'amount' => 7,
            'remark' => 'similique',
            '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: sunt

booking_room_id   string     

uuid of booking room Example: laudantium

property_product_id   string     

uuid of Property Product Example: omnis

rate_plan_id   string     

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

tax_and_service_id   string     

uuid of tax and service Example: dolores

guest_id   string     

if provide guest need uuid guest profile Example: aut

agent_id   string     

if provide agent name need uuid agent property Example: ut

bill_date   string  optional    

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

bill_date_start   string  optional    

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

bill_date_end   string  optional    

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

amount   integer     

of bill amount Example: 7

remark   string     

remark Of bill Example: similique

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\": \"et\",
    \"query\": \"eaque\"
}"
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": "et",
    "query": "eaque"
};

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' => 'et',
            'query' => 'eaque',
        ],
    ]
);
$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: et

query   string  optional    

this use for guest Example: eaque

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\": \"eos\",
    \"booking_room_id\": \"impedit\",
    \"booking_bill_id\": \"est\"
}"
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": "eos",
    "booking_room_id": "impedit",
    "booking_bill_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/bill/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'eos',
            'booking_room_id' => 'impedit',
            'booking_bill_id' => 'est',
        ],
    ]
);
$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: eos

booking_room_id   string     

uuid of booking room Example: impedit

booking_bill_id   string     

uuid of booking Bill Example: est

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\": \"corporis\",
    \"booking_room_id\": \"quae\",
    \"comm_remark\": \"magnam\",
    \"comm_date\": \"ea\",
    \"amount\": 20,
    \"booking_commision_id\": \"dolorem\"
}"
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": "corporis",
    "booking_room_id": "quae",
    "comm_remark": "magnam",
    "comm_date": "ea",
    "amount": 20,
    "booking_commision_id": "dolorem"
};

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' => 'corporis',
            'booking_room_id' => 'quae',
            'comm_remark' => 'magnam',
            'comm_date' => 'ea',
            'amount' => 20,
            'booking_commision_id' => 'dolorem',
        ],
    ]
);
$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: corporis

booking_room_id   string     

uuid of booking room Example: quae

comm_remark   string     

remark Of bill Example: magnam

comm_date   string  optional    

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

amount   integer     

of bill amount Example: 20

booking_commision_id   string     

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

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\": \"dolor\",
    \"booking_room_id\": \"architecto\",
    \"booking_commision_id\": \"placeat\"
}"
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": "dolor",
    "booking_room_id": "architecto",
    "booking_commision_id": "placeat"
};

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' => 'dolor',
            'booking_room_id' => 'architecto',
            'booking_commision_id' => 'placeat',
        ],
    ]
);
$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: dolor

booking_room_id   string     

uuid of booking room Example: architecto

booking_commision_id   string     

uuid of booking Payment Example: placeat

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\": \"et\",
    \"query\": \"minus\"
}"
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": "et",
    "query": "minus"
};

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' => 'et',
            'query' => 'minus',
        ],
    ]
);
$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: et

query   string  optional    

this use for guest Example: minus

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\": \"et\",
    \"booking_room_id\": \"facilis\",
    \"discount_option_id\": \"fugit\",
    \"discount_for\": \"agent\",
    \"discount_remark\": \"quae\",
    \"discount_date\": \"sit\",
    \"amount\": 1,
    \"booking_discount_id\": \"voluptatem\"
}"
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": "et",
    "booking_room_id": "facilis",
    "discount_option_id": "fugit",
    "discount_for": "agent",
    "discount_remark": "quae",
    "discount_date": "sit",
    "amount": 1,
    "booking_discount_id": "voluptatem"
};

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' => 'et',
            'booking_room_id' => 'facilis',
            'discount_option_id' => 'fugit',
            'discount_for' => 'agent',
            'discount_remark' => 'quae',
            'discount_date' => 'sit',
            'amount' => 1,
            'booking_discount_id' => 'voluptatem',
        ],
    ]
);
$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: et

booking_room_id   string     

uuid of booking room Example: facilis

discount_option_id   string     

uuid of Discount options Example: fugit

discount_for   string  optional    

The discount. Example: agent

Must be one of:
  • agent
  • guest
discount_remark   string     

remark Of Discount Example: quae

discount_date   string  optional    

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

amount   integer     

of bill amount Example: 1

booking_discount_id   string     

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

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\": \"tenetur\",
    \"booking_room_id\": \"impedit\",
    \"booking_discount_id\": \"quae\"
}"
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": "tenetur",
    "booking_room_id": "impedit",
    "booking_discount_id": "quae"
};

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' => 'tenetur',
            'booking_room_id' => 'impedit',
            'booking_discount_id' => 'quae',
        ],
    ]
);
$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: tenetur

booking_room_id   string     

uuid of booking room Example: impedit

booking_discount_id   string     

uuid of booking Discount Example: quae

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\": \"omnis\",
    \"query\": \"quia\"
}"
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": "omnis",
    "query": "quia"
};

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' => 'omnis',
            'query' => 'quia',
        ],
    ]
);
$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: omnis

query   string  optional    

this use for guest Example: quia

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\": \"delectus\",
    \"booking_room_id\": \"voluptas\",
    \"payment_option_id\": \"et\",
    \"payment_date\": \"facilis\",
    \"amount\": 16,
    \"remark\": \"optio\",
    \"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": "delectus",
    "booking_room_id": "voluptas",
    "payment_option_id": "et",
    "payment_date": "facilis",
    "amount": 16,
    "remark": "optio",
    "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' => 'delectus',
            'booking_room_id' => 'voluptas',
            'payment_option_id' => 'et',
            'payment_date' => 'facilis',
            'amount' => 16,
            'remark' => 'optio',
            '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: delectus

booking_room_id   string     

uuid of booking room Example: voluptas

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: facilis

amount   integer     

of payment amount Example: 16

remark   string     

remark Of bill Example: optio

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\": \"eaque\",
    \"booking_room_id\": \"aut\",
    \"booking_payment_id\": \"qui\"
}"
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": "eaque",
    "booking_room_id": "aut",
    "booking_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/booking/payment/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'eaque',
            'booking_room_id' => 'aut',
            'booking_payment_id' => 'qui',
        ],
    ]
);
$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: eaque

booking_room_id   string     

uuid of booking room Example: aut

booking_payment_id   string     

uuid of booking Payment Example: qui

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\": \"amet\",
    \"payment_id\": \"modi\",
    \"booking_room_id\": \"aut\",
    \"query\": \"quidem\"
}"
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": "amet",
    "payment_id": "modi",
    "booking_room_id": "aut",
    "query": "quidem"
};

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' => 'amet',
            'payment_id' => 'modi',
            'booking_room_id' => 'aut',
            'query' => 'quidem',
        ],
    ]
);
$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: amet

payment_id   string     

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

booking_room_id   string     

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

query   string  optional    

this use for guest Example: quidem

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\": \"itaque\",
    \"start_date\": \"debitis\",
    \"end_date\": \"et\",
    \"room_type_id\": \"deleniti\",
    \"bed_type_id\": \"et\",
    \"booking_no\": \"praesentium\",
    \"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": "itaque",
    "start_date": "debitis",
    "end_date": "et",
    "room_type_id": "deleniti",
    "bed_type_id": "et",
    "booking_no": "praesentium",
    "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' => 'itaque',
            'start_date' => 'debitis',
            'end_date' => 'et',
            'room_type_id' => 'deleniti',
            'bed_type_id' => 'et',
            'booking_no' => 'praesentium',
            '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: itaque

start_date   string     

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

end_date   string     

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

room_type_id   string  optional    

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

bed_type_id   string  optional    

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

booking_no   string  optional    

Booking number. Example: praesentium

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\": \"soluta\",
    \"periode\": \"autem\"
}"
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": "soluta",
    "periode": "autem"
};

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' => 'soluta',
            'periode' => 'autem',
        ],
    ]
);
$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: soluta

periode   string     

chart start date format Y-m Example: autem

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\": \"facilis\"
}"
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": "facilis"
};

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' => 'facilis',
        ],
    ]
);
$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: facilis

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\": \"et\"
}"
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": "et"
};

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' => '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/booking/summary/bookingoutstanding

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: et

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\": \"quisquam\",
    \"query\": \"sit\",
    \"findby\": \"first_name\",
    \"findvalue\": \"magni\",
    \"room_type_id\": \"error\",
    \"arival_date\": \"eaque\",
    \"depature_date\": \"nihil\",
    \"total_adult\": \"sapiente\",
    \"total_child\": \"voluptatibus\",
    \"default_rate\": \"ut\",
    \"default_extra_adult_rate\": \"est\",
    \"default_extra_child_rate\": \"ut\",
    \"default_rate_detail\": \"molestias\"
}"
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": "quisquam",
    "query": "sit",
    "findby": "first_name",
    "findvalue": "magni",
    "room_type_id": "error",
    "arival_date": "eaque",
    "depature_date": "nihil",
    "total_adult": "sapiente",
    "total_child": "voluptatibus",
    "default_rate": "ut",
    "default_extra_adult_rate": "est",
    "default_extra_child_rate": "ut",
    "default_rate_detail": "molestias"
};

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' => 'quisquam',
            'query' => 'sit',
            'findby' => 'first_name',
            'findvalue' => 'magni',
            'room_type_id' => 'error',
            'arival_date' => 'eaque',
            'depature_date' => 'nihil',
            'total_adult' => 'sapiente',
            'total_child' => 'voluptatibus',
            'default_rate' => 'ut',
            'default_extra_adult_rate' => 'est',
            'default_extra_child_rate' => 'ut',
            'default_rate_detail' => 'molestias',
        ],
    ]
);
$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
  • guestprefix
  • guestcountry
  • guestnationality
  • guestidentitytype
  • guestexistingfind
  • gueststatusoption
  • propertycurrency
  • taxandservice
  • roomratedaily
  • roomrateplan
  • bookingstatus
  • paymentcollecttype

Body Parameters

property_id   string     

uuid of Property Example: quisquam

query   string  optional    

this using for in case option have filter Example: sit

findby   string  optional    

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

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

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

room_type_id   string  optional    

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

arival_date   string  optional    

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

depature_date   string  optional    

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

total_adult   string  optional    

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

total_child   string  optional    

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

default_rate   string  optional    

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

default_extra_adult_rate   string  optional    

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

default_extra_child_rate   string  optional    

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

default_rate_detail   string  optional    

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

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\": \"atque\",
    \"property_agent_id\": \"ullam\",
    \"booking_status_id\": \"aut\",
    \"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\": \"consequatur\",
    \"hold_date\": \"molestias\",
    \"total_adults\": 19,
    \"total_childrens\": 13,
    \"remark\": \"provident\",
    \"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": "atque",
    "property_agent_id": "ullam",
    "booking_status_id": "aut",
    "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": "consequatur",
    "hold_date": "molestias",
    "total_adults": 19,
    "total_childrens": 13,
    "remark": "provident",
    "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' => 'atque',
            'property_agent_id' => 'ullam',
            'booking_status_id' => 'aut',
            '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' => 'consequatur',
            'hold_date' => 'molestias',
            'total_adults' => 19,
            'total_childrens' => 13,
            'remark' => 'provident',
            '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: atque

property_agent_id   string     

uuid of Property Agent. Example: ullam

booking_status_id   string     

uuid of Booking Status. Example: aut

guest_booking   object     

detail of Guest make Bookig.

booking_reference   string  optional    

add this value if hafe booking reference. Example: consequatur

hold_date   string  optional    

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

total_adults   integer  optional    

total Adult Guest on this booking Example: 19

total_childrens   integer  optional    

total Childrens Guest on this booking Example: 13

remark   string  optional    

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

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\": \"culpa\",
    \"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": "culpa",
    "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' => 'culpa',
            '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: culpa

room_lists   object     

detail Room List.

Detail Booking

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/detail" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"sit\",
    \"booking_id\": \"ut\"
}"
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": "sit",
    "booking_id": "ut"
};

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' => 'sit',
            'booking_id' => 'ut',
        ],
    ]
);
$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: sit

booking_id   string     

uuid of Booking. Example: ut

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\": \"harum\",
    \"booking_room_id\": \"quis\",
    \"mode\": \"\'guesthistory\'\"
}"
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": "harum",
    "booking_room_id": "quis",
    "mode": "'guesthistory'"
};

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' => 'harum',
            'booking_room_id' => 'quis',
            'mode' => '\'guesthistory\'',
        ],
    ]
);
$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: harum

booking_room_id   string     

uuid of Booking. Example: quis

mode   string  optional    

mode result. Example: 'guesthistory'

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\": \"iure\",
    \"booking_id\": \"sint\",
    \"booking_room_id\": \"autem\",
    \"cancel_status_id\": \"sapiente\"
}"
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": "iure",
    "booking_id": "sint",
    "booking_room_id": "autem",
    "cancel_status_id": "sapiente"
};

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' => 'iure',
            'booking_id' => 'sint',
            'booking_room_id' => 'autem',
            'cancel_status_id' => 'sapiente',
        ],
    ]
);
$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: iure

booking_id   string     

uuid of booking Example: sint

booking_room_id   string  optional    

optional uuid of booking room Example: autem

cancel_status_id   string     

uuid of Cancel Status Example: sapiente

Confirm Booking

Example request:
curl --request POST \
    "http://localhost/api/v1/booking/confirm" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"voluptas\",
    \"booking_id\": \"non\",
    \"confirm_status_id\": \"aut\"
}"
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": "voluptas",
    "booking_id": "non",
    "confirm_status_id": "aut"
};

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' => 'voluptas',
            'booking_id' => 'non',
            'confirm_status_id' => 'aut',
        ],
    ]
);
$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: voluptas

booking_id   string     

uuid of booking Example: non

confirm_status_id   string     

uuid of Confirm Status Example: aut

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\": \"officia\",
    \"booking_id\": \"voluptatibus\",
    \"property_agent_id\": \"molestias\",
    \"booking_reference\": \"aliquam\",
    \"remark\": \"ex\"
}"
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": "officia",
    "booking_id": "voluptatibus",
    "property_agent_id": "molestias",
    "booking_reference": "aliquam",
    "remark": "ex"
};

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' => 'officia',
            'booking_id' => 'voluptatibus',
            'property_agent_id' => 'molestias',
            'booking_reference' => 'aliquam',
            'remark' => 'ex',
        ],
    ]
);
$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: officia

booking_id   string     

uuid of booking Example: voluptatibus

property_agent_id   string     

uuid of Property Agent. Example: molestias

booking_reference   string  optional    

add this value if hafe booking reference. Example: aliquam

remark   string  optional    

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

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\": \"a\",
    \"guest_id\": \"quia\",
    \"booking_id\": \"doloribus\",
    \"booking_room_id\": \"iste\",
    \"history_remark\": \"omnis\"
}"
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": "a",
    "guest_id": "quia",
    "booking_id": "doloribus",
    "booking_room_id": "iste",
    "history_remark": "omnis"
};

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' => 'a',
            'guest_id' => 'quia',
            'booking_id' => 'doloribus',
            'booking_room_id' => 'iste',
            'history_remark' => 'omnis',
        ],
    ]
);
$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: a

guest_id   string     

uuid of Guest ID Example: quia

booking_id   string     

uuid of Booking ID Example: doloribus

booking_room_id   string     

uuid of Booking Room ID Example: iste

history_remark   string     

Name Payment Method Example: omnis

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\": \"error\",
    \"guest_history_id\": \"sequi\"
}"
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": "error",
    "guest_history_id": "sequi"
};

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' => 'error',
            'guest_history_id' => 'sequi',
        ],
    ]
);
$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: error

guest_history_id   string     

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

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\": \"maiores\",
    \"booking_id\": \"doloribus\",
    \"booking_room_id\": \"et\",
    \"special_request\": \"quisquam\"
}"
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": "maiores",
    "booking_id": "doloribus",
    "booking_room_id": "et",
    "special_request": "quisquam"
};

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' => 'maiores',
            'booking_id' => 'doloribus',
            'booking_room_id' => 'et',
            'special_request' => 'quisquam',
        ],
    ]
);
$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: maiores

booking_id   string     

uuid of booking Example: doloribus

booking_room_id   string     

uuid of booking room Example: et

special_request   string     

remark Of Special Request Example: quisquam

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\": \"nisi\",
    \"booking_id\": \"rem\",
    \"booking_room_id\": \"ipsum\"
}"
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": "nisi",
    "booking_id": "rem",
    "booking_room_id": "ipsum"
};

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' => 'nisi',
            'booking_id' => 'rem',
            'booking_room_id' => 'ipsum',
        ],
    ]
);
$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: nisi

booking_id   string     

uuid of booking Example: rem

booking_room_id   string     

uuid of booking room Example: ipsum

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\": \"ex\",
    \"booking_room_id\": \"maxime\",
    \"guest_id\": \"sed\",
    \"guest_prefix_id\": \"rerum\",
    \"first_name\": \"possimus\",
    \"last_name\": \"quaerat\",
    \"country_id\": \"adipisci\",
    \"national_id\": \"suscipit\",
    \"identity_type_id\": \"optio\",
    \"identity_no\": \"autem\",
    \"email\": \"[email protected]\",
    \"phone\": \"similique\",
    \"address\": \"molestias\"
}"
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": "ex",
    "booking_room_id": "maxime",
    "guest_id": "sed",
    "guest_prefix_id": "rerum",
    "first_name": "possimus",
    "last_name": "quaerat",
    "country_id": "adipisci",
    "national_id": "suscipit",
    "identity_type_id": "optio",
    "identity_no": "autem",
    "email": "[email protected]",
    "phone": "similique",
    "address": "molestias"
};

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' => 'ex',
            'booking_room_id' => 'maxime',
            'guest_id' => 'sed',
            'guest_prefix_id' => 'rerum',
            'first_name' => 'possimus',
            'last_name' => 'quaerat',
            'country_id' => 'adipisci',
            'national_id' => 'suscipit',
            'identity_type_id' => 'optio',
            'identity_no' => 'autem',
            'email' => '[email protected]',
            'phone' => 'similique',
            'address' => 'molestias',
        ],
    ]
);
$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: ex

booking_room_id   string     

uuid of booking room Example: maxime

guest_id   string     

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

guest_prefix_id   string     

uuid of Guest Prefix Example: rerum

first_name   string     

First Name Of Guest Profile Example: possimus

last_name   string     

Last Name Of Guest Profile Example: quaerat

country_id   string     

uuid of Country Example: adipisci

national_id   string     

uuid of National same use country data Example: suscipit

identity_type_id   string     

uuid of Guest Identity Type Example: optio

identity_no   string     

Identity Number Of Guest Profile Example: autem

email   string     

Email Of Guest Profile Example: [email protected]

phone   string     

Phone Of Guest Profile Example: similique

address   string     

Address Of Guest Profile Example: molestias

Download Register form

Example request:
curl --request GET \
    --get "http://localhost/api/v1/booking/guest-registration/form/nihil" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/booking/guest-registration/form/nihil"
);

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/booking/guest-registration/form/nihil';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

GET api/v1/booking/guest-registration/form/{key}

Headers

Authorization        

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

URL Parameters

key   string  optional    

this value must encrypt with base64. parameter value {"property_id":null, "booking_room_id":null, "form":(blank,withdetail)}.

responseFile Example: nihil

Download Booking Bill

Example request:
curl --request GET \
    --get "http://localhost/api/v1/booking/bill/print/a" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/booking/bill/print/a"
);

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/booking/bill/print/a';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

GET api/v1/booking/bill/print/{key}

Headers

Authorization        

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

URL Parameters

key   string  optional    

this value must encrypt with base64. parameter value {"property_id":null, "booking_room_id":null, "bill_model":(master,agent,guest)}.

responseFile Example: a

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\": \"suscipit\",
    \"booking_room_id\": \"qui\",
    \"guest_status_id\": \"omnis\"
}"
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": "suscipit",
    "booking_room_id": "qui",
    "guest_status_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/guest-status-inroom/update';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'booking_id' => 'suscipit',
            'booking_room_id' => 'qui',
            'guest_status_id' => 'omnis',
        ],
    ]
);
$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: suscipit

booking_room_id   string     

uuid of booking room Example: qui

guest_status_id   string     

uuid of Guest Status Example: omnis

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\": \"aut\"
}"
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": "aut"
};

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' => 'aut',
        ],
    ]
);
$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: aut

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\": \"quisquam\",
    \"arival_start_date\": \"et\",
    \"arival_end_date\": \"aut\",
    \"booking_no\": \"ducimus\"
}"
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": "quisquam",
    "arival_start_date": "et",
    "arival_end_date": "aut",
    "booking_no": "ducimus"
};

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' => 'quisquam',
            'arival_start_date' => 'et',
            'arival_end_date' => 'aut',
            'booking_no' => 'ducimus',
        ],
    ]
);
$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,
                "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
                    },
                    {
                        "id": "6fec5ea7-10e0-44af-aac6-15b0c8179b6d",
                        "room_type": "Deluxe",
                        "room": "109",
                        "guest_in_room": "Mrs. Rai Octa Vioni 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
                    },
                    {
                        "id": "8bcb8434-67fe-4240-a2d2-9ed86f6d440b",
                        "room_type": "Standard Balcony",
                        "room": "Not-Assigned",
                        "guest_in_room": "Mrs. Rai Octa Vioni 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_id": "dbf0007a-6f1b-4cd7-82c2-efcd0369061f",
                "booking_no": "20240705/HOTELDUMMY/0000000002",
                "booking_reference": "Rai Bali Family Trip",
                "booking_by": "Mrs. Rai Octa Vioni Ni Luh",
                "total_nights": 5,
                "total_adults": 0,
                "total_childrens": 0,
                "user_created": "Master User Api",
                "user_updated": null,
                "created_at": "2024-07-05T07:18:48.000000Z",
                "updated_at": "2024-07-05T07:18:48.000000Z",
                "status": {
                    "name": "Confirm",
                    "fg_color": "#ffffff",
                    "bg_color": "#0d6efd"
                },
                "list_room": [
                    {
                        "id": "51f7b71a-05f6-44a3-af09-79d669301826",
                        "room_type": "Standard Balcony",
                        "room": "112",
                        "guest_in_room": "Mrs. Rai Octa Vioni Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-15",
                        "depature": "2024-07-20",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    },
                    {
                        "id": "b52e5bad-0e74-4de1-ae84-68599860db46",
                        "room_type": "Junior Suite",
                        "room": "207",
                        "guest_in_room": "Mrs. Ernawati Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-15",
                        "depature": "2024-07-20",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    },
                    {
                        "id": "b2c7a6f0-0b57-47a1-8790-2eda46c6108c",
                        "room_type": "Deluxe",
                        "room": "109",
                        "guest_in_room": "Mrs. Rai Octa Vioni Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-15",
                        "depature": "2024-07-20",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ]
            },
            {
                "booking_id": "8e643bde-06e8-4b00-8b74-4c66030738a4",
                "booking_no": "20240705/HOTELDUMMY/0000000003",
                "booking_reference": "Rai Bali Family Trip",
                "booking_by": "Mrs. Rai Octa Vioni Ni Luh",
                "total_nights": 1,
                "total_adults": 0,
                "total_childrens": 0,
                "user_created": "Master User Api",
                "user_updated": null,
                "created_at": "2024-07-05T08:10:51.000000Z",
                "updated_at": "2024-07-05T08:10:51.000000Z",
                "status": {
                    "name": "Confirm",
                    "fg_color": "#ffffff",
                    "bg_color": "#0d6efd"
                },
                "list_room": [
                    {
                        "id": "c3aba6b7-68b6-46e8-945a-4665e20f230e",
                        "room_type": "Standard Balcony",
                        "room": "112",
                        "guest_in_room": "Mrs. Rai Octa Vioni Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-20",
                        "depature": "2024-07-21",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    },
                    {
                        "id": "1ea7a559-fdba-4b38-a357-bd61e26e4808",
                        "room_type": "Junior Suite",
                        "room": "207",
                        "guest_in_room": "Mrs. Ernawati Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-20",
                        "depature": "2024-07-21",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    },
                    {
                        "id": "7ebb5f51-ff37-489c-a756-3c85e8cf7382",
                        "room_type": "Deluxe",
                        "room": "109",
                        "guest_in_room": "Mrs. Rai Octa Vioni Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-20",
                        "depature": "2024-07-21",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ]
            },
            {
                "booking_id": "5f9cd08e-dc40-4f4e-8fdf-fdfa08bf1bd5",
                "booking_no": "20240711/HOTELDUMMY/0000000004",
                "booking_reference": "Rai Bali Family Trip",
                "booking_by": "Mrs. Rai Octa Vioni Ni Luh",
                "total_nights": 4,
                "total_adults": 0,
                "total_childrens": 0,
                "user_created": "Master User Api",
                "user_updated": null,
                "created_at": "2024-07-11T00:25:37.000000Z",
                "updated_at": "2024-07-11T00:25:37.000000Z",
                "status": {
                    "name": "Confirm",
                    "fg_color": "#ffffff",
                    "bg_color": "#0d6efd"
                },
                "list_room": [
                    {
                        "id": "eed0cfcb-01d8-4a3c-9d86-868714eb0e36",
                        "room_type": "Standard Balcony",
                        "room": "111",
                        "guest_in_room": "Mrs. Rai Octa Vioni Ni Luh",
                        "guest_status_in_room": "No Status",
                        "arival": "2024-07-11",
                        "depature": "2024-07-15",
                        "check_in": null,
                        "check_out": null,
                        "check_in_by": null,
                        "check_out_by": null
                    }
                ]
            }
        ],
        "pagination": {
            "curren_page": 1,
            "total_page": 1,
            "total_item": 4,
            "total_item_current_page": 4
        }
    }
}
 

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: quisquam

arival_start_date   string  optional    

add this value Arrival Start Date with format date Y-m-d. Exmp:2024-02-18 Example: et

arival_end_date   string  optional    

add this value Arrival End Date with format date Y-m-d. Exmp:2024-02-18 Example: aut

booking_no   string     

Booking Number Example: ducimus

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\": \"nihil\",
    \"hold_start_date\": \"voluptas\",
    \"hold_end_date\": \"est\",
    \"booking_no\": \"qui\"
}"
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": "nihil",
    "hold_start_date": "voluptas",
    "hold_end_date": "est",
    "booking_no": "qui"
};

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' => 'nihil',
            'hold_start_date' => 'voluptas',
            'hold_end_date' => 'est',
            'booking_no' => 'qui',
        ],
    ]
);
$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/booking/list/onhold

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: nihil

hold_start_date   string  optional    

add this value Hold Start Date with format date Y-m-d. Exmp:2024-02-18 Example: voluptas

hold_end_date   string  optional    

add this value Hold End Date with format date Y-m-d. Exmp:2024-02-18 Example: est

booking_no   string     

Booking Number Example: qui

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\": \"adipisci\",
    \"booking_room_id\": \"nihil\",
    \"mode\": \"roomavailable\",
    \"room_type_id\": \"pariatur\",
    \"arival_date\": \"fugiat\",
    \"depature_date\": \"sit\",
    \"rate_plan_id\": \"et\",
    \"tax_and_service_id\": \"sunt\",
    \"use_rate_before\": true
}"
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": "adipisci",
    "booking_room_id": "nihil",
    "mode": "roomavailable",
    "room_type_id": "pariatur",
    "arival_date": "fugiat",
    "depature_date": "sit",
    "rate_plan_id": "et",
    "tax_and_service_id": "sunt",
    "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/dropdownoptionlist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'adipisci',
            'booking_room_id' => 'nihil',
            'mode' => 'roomavailable',
            'room_type_id' => 'pariatur',
            'arival_date' => 'fugiat',
            'depature_date' => 'sit',
            'rate_plan_id' => 'et',
            'tax_and_service_id' => 'sunt',
            'use_rate_before' => true,
        ],
    ]
);
$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: adipisci

booking_room_id   string     

uuid of Booking Room. Example: nihil

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: pariatur

arival_date   string  optional    

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

depature_date   string  optional    

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

rate_plan_id   string  optional    

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

tax_and_service_id   string  optional    

use this parameter when mode "roomratedaily". Example: sunt

use_rate_before   boolean  optional    

set true if use current rate. Example: true

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\": \"pariatur\",
    \"booking_room_id\": \"molestiae\",
    \"room_id\": \"sed\",
    \"arival\": \"velit\",
    \"depature\": \"sapiente\",
    \"use_rate_before\": false
}"
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": "pariatur",
    "booking_room_id": "molestiae",
    "room_id": "sed",
    "arival": "velit",
    "depature": "sapiente",
    "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/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'pariatur',
            'booking_room_id' => 'molestiae',
            'room_id' => 'sed',
            'arival' => 'velit',
            'depature' => 'sapiente',
            'use_rate_before' => false,
        ],
    ]
);
$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: pariatur

booking_room_id   string     

uuid of Booking. Example: molestiae

room_id   string     

uuid of new Room id if have new room please provide id. Example: sed

arival   string     

uuid of new arival date format Y-m-d if have new arival date. Example: velit

depature   string     

uuid of new depature date format Y-m-d if have new depature date. Example: sapiente

use_rate_before   boolean  optional    

set true if use current rate. Example: false

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\": \"fugit\",
    \"booking_room_id\": \"et\",
    \"room_type_id\": \"saepe\",
    \"room_id\": \"fuga\",
    \"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": "fugit",
    "booking_room_id": "et",
    "room_type_id": "saepe",
    "room_id": "fuga",
    "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' => 'fugit',
            'booking_room_id' => 'et',
            'room_type_id' => 'saepe',
            'room_id' => 'fuga',
            '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: fugit

booking_room_id   string     

uuid of Booking Room. Example: et

room_type_id   string     

uuid of Room type. Example: saepe

room_id   string     

uuid of Room. Example: fuga

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\": \"est\"
}"
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": "est"
};

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' => 'est',
        ],
    ]
);
$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: est

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\": \"distinctio\",
    \"booking_id\": \"et\",
    \"booking_room_id\": \"eos\",
    \"payment_collect_type_id\": \"eum\"
}"
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": "distinctio",
    "booking_id": "et",
    "booking_room_id": "eos",
    "payment_collect_type_id": "eum"
};

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' => 'distinctio',
            'booking_id' => 'et',
            'booking_room_id' => 'eos',
            'payment_collect_type_id' => 'eum',
        ],
    ]
);
$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: distinctio

booking_id   string     

uuid of booking Example: et

booking_room_id   string     

uuid of booking room Example: eos

payment_collect_type_id   string     

uuid of Payment Collect Type Example: eum

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\": \"doloremque\",
    \"booking_id\": \"praesentium\",
    \"booking_room_id\": \"quam\"
}"
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": "doloremque",
    "booking_id": "praesentium",
    "booking_room_id": "quam"
};

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' => 'doloremque',
            'booking_id' => 'praesentium',
            'booking_room_id' => 'quam',
        ],
    ]
);
$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: doloremque

booking_id   string     

uuid of booking Example: praesentium

booking_room_id   string     

uuid of booking room Example: quam

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\": \"laborum\",
    \"booking_id\": \"non\",
    \"booking_room_id\": \"assumenda\"
}"
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": "laborum",
    "booking_id": "non",
    "booking_room_id": "assumenda"
};

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' => 'laborum',
            'booking_id' => 'non',
            'booking_room_id' => 'assumenda',
        ],
    ]
);
$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: laborum

booking_id   string     

uuid of Booking. Example: non

booking_room_id   string     

uuid of Booking Room ID. Example: assumenda

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\": \"praesentium\",
    \"booking_id\": \"inventore\",
    \"booking_room_id\": \"impedit\",
    \"rate_plan_id\": \"quia\",
    \"tax_and_service_id\": \"maiores\",
    \"total_adult\": \"recusandae\",
    \"total_child\": \"accusantium\",
    \"default_rate\": \"blanditiis\",
    \"default_extra_adult_rate\": \"laudantium\",
    \"default_extra_child_rate\": \"nemo\",
    \"default_rate_detail\": \"commodi\",
    \"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": "praesentium",
    "booking_id": "inventore",
    "booking_room_id": "impedit",
    "rate_plan_id": "quia",
    "tax_and_service_id": "maiores",
    "total_adult": "recusandae",
    "total_child": "accusantium",
    "default_rate": "blanditiis",
    "default_extra_adult_rate": "laudantium",
    "default_extra_child_rate": "nemo",
    "default_rate_detail": "commodi",
    "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' => 'praesentium',
            'booking_id' => 'inventore',
            'booking_room_id' => 'impedit',
            'rate_plan_id' => 'quia',
            'tax_and_service_id' => 'maiores',
            'total_adult' => 'recusandae',
            'total_child' => 'accusantium',
            'default_rate' => 'blanditiis',
            'default_extra_adult_rate' => 'laudantium',
            'default_extra_child_rate' => 'nemo',
            'default_rate_detail' => 'commodi',
            '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: praesentium

booking_id   string     

uuid of Booking. Example: inventore

booking_room_id   string     

uuid of Booking Room ID. Example: impedit

rate_plan_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: quia

tax_and_service_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: maiores

total_adult   string  optional    

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

total_child   string  optional    

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

default_rate   string  optional    

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

default_extra_adult_rate   string  optional    

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

default_extra_child_rate   string  optional    

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

default_rate_detail   string  optional    

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

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\": \"exercitationem\",
    \"booking_id\": \"quis\",
    \"booking_room_id\": \"et\",
    \"rate_plan_id\": \"saepe\",
    \"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": "exercitationem",
    "booking_id": "quis",
    "booking_room_id": "et",
    "rate_plan_id": "saepe",
    "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' => 'exercitationem',
                'booking_id' => 'quis',
                'booking_room_id' => 'et',
                'rate_plan_id' => 'saepe',
                '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: exercitationem

booking_id   string     

uuid of Booking. Example: quis

booking_room_id   string     

uuid of Booking Room ID. Example: et

rate_plan_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: saepe

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\": \"praesentium\",
    \"booking_id\": \"consectetur\",
    \"booking_room_id\": \"porro\",
    \"rate_plan_id\": \"et\",
    \"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": "praesentium",
    "booking_id": "consectetur",
    "booking_room_id": "porro",
    "rate_plan_id": "et",
    "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' => 'praesentium',
                'booking_id' => 'consectetur',
                'booking_room_id' => 'porro',
                'rate_plan_id' => 'et',
                '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: praesentium

booking_id   string     

uuid of Booking. Example: consectetur

booking_room_id   string     

uuid of Booking Room ID. Example: porro

rate_plan_id   string     

uuid of Rate Plan ID if use mode roomratedaily. Example: et

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\": \"deserunt\",
    \"is_test_detail_voucher\": false
}"
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": "deserunt",
    "is_test_detail_voucher": false
};

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' => 'deserunt',
            'is_test_detail_voucher' => false,
        ],
    ]
);
$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: deserunt

is_test_detail_voucher   boolean  optional    

if you want get testing booking voucher you could set this with true. Example: false

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\": \"placeat\",
    \"activity_log_id\": \"harum\",
    \"status\": \"error\",
    \"page_number\": \"magni\"
}"
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": "placeat",
    "activity_log_id": "harum",
    "status": "error",
    "page_number": "magni"
};

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' => 'placeat',
            'activity_log_id' => 'harum',
            'status' => 'error',
            'page_number' => 'magni',
        ],
    ]
);
$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: placeat

activity_log_id   string     

uuid of Cm Activity Log Example: harum

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: magni

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\": \"voluptatibus\",
    \"property_agent_list_id\": \"ut\",
    \"cm_ota_list_id\": \"autem\",
    \"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": "voluptatibus",
    "property_agent_list_id": "ut",
    "cm_ota_list_id": "autem",
    "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' => 'voluptatibus',
            'property_agent_list_id' => 'ut',
            'cm_ota_list_id' => 'autem',
            '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: voluptatibus

property_agent_list_id   string     

UUID of Property Agent List Example: ut

cm_ota_list_id   string     

UUID of CM OTA List Example: autem

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/6d5b839e-400e-315f-bada-d16578764e5c" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/agent/property/map/detail/6d5b839e-400e-315f-bada-d16578764e5c"
);

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/6d5b839e-400e-315f-bada-d16578764e5c';
$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: 6d5b839e-400e-315f-bada-d16578764e5c

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\": \"doloremque\",
    \"property_agent_list_id\": \"et\",
    \"cm_ota_list_id\": \"laudantium\"
}"
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": "doloremque",
    "property_agent_list_id": "et",
    "cm_ota_list_id": "laudantium"
};

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' => 'doloremque',
            'property_agent_list_id' => 'et',
            'cm_ota_list_id' => 'laudantium',
        ],
    ]
);
$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: doloremque

property_agent_list_id   string     

uuid of Property Agent List Example: et

cm_ota_list_id   string     

uuid of Cm OTA List Example: laudantium

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\": \"eum\",
    \"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": "eum",
    "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' => 'eum',
            '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: eum

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\": \"tempora\"
}"
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": "tempora"
};

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' => 'tempora',
        ],
    ]
);
$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: tempora

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\": \"ut\",
    \"room_type_id\": \"hic\",
    \"is_multiple_request\": true,
    \"status\": 10,
    \"filter_by\": \"from\",
    \"search_date_from\": \"beatae\",
    \"search_date_to\": \"sed\",
    \"page_no\": 17
}"
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": "ut",
    "room_type_id": "hic",
    "is_multiple_request": true,
    "status": 10,
    "filter_by": "from",
    "search_date_from": "beatae",
    "search_date_to": "sed",
    "page_no": 17
};

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' => 'ut',
            'room_type_id' => 'hic',
            'is_multiple_request' => true,
            'status' => 10,
            'filter_by' => 'from',
            'search_date_from' => 'beatae',
            'search_date_to' => 'sed',
            'page_no' => 17,
        ],
    ]
);
$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: ut

room_type_id   string  optional    

optional uuid of Room Type Property if want filter by room Type Example: hic

is_multiple_request   boolean  optional    

this for get multiple request when not set room type and rate plan Example: true

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
search_date_from   string  optional    

with format date Y-m-d Example: beatae

search_date_to   string  optional    

with format date Y-m-d Example: sed

page_no   integer  optional    

number of pagination Example: 17

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\": \"veniam\",
    \"mode\": \"room_type_list\",
    \"room_type_id\": \"dolores\",
    \"room_type_list\": [
        \"reiciendis\"
    ],
    \"date_from\": \"quas\",
    \"date_to\": \"quam\"
}"
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": "veniam",
    "mode": "room_type_list",
    "room_type_id": "dolores",
    "room_type_list": [
        "reiciendis"
    ],
    "date_from": "quas",
    "date_to": "quam"
};

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' => 'veniam',
            'mode' => 'room_type_list',
            'room_type_id' => 'dolores',
            'room_type_list' => [
                'reiciendis',
            ],
            'date_from' => 'quas',
            'date_to' => 'quam',
        ],
    ]
);
$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: veniam

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: dolores

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: quas

date_to   string  optional    

with format date Y-m-d, this use when mode availability_list Example: quam

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\": \"culpa\",
    \"room_type_id\": \"suscipit\",
    \"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": "culpa",
    "room_type_id": "suscipit",
    "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' => 'culpa',
            'room_type_id' => 'suscipit',
            '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: culpa

room_type_id   string     

uuid of Room Type Property Example: suscipit

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\": \"enim\",
    \"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": "enim",
    "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' => 'enim',
                '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: enim

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\": \"et\",
    \"room_type_id\": [
        \"nulla\"
    ],
    \"date_start\": \"numquam\",
    \"date_end\": \"eum\"
}"
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": "et",
    "room_type_id": [
        "nulla"
    ],
    "date_start": "numquam",
    "date_end": "eum"
};

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' => 'et',
            'room_type_id' => [
                'nulla',
            ],
            'date_start' => 'numquam',
            'date_end' => 'eum',
        ],
    ]
);
$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: et

room_type_id   string[]     

uuid of Room Type Property

date_start   string     

with format date Y-m-d Example: numquam

date_end   string     

with format date Y-m-d Example: eum

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\": \"sint\",
    \"status\": \"inprogress\",
    \"page_no\": 4
}"
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": "sint",
    "status": "inprogress",
    "page_no": 4
};

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' => 'sint',
            'status' => 'inprogress',
            'page_no' => 4,
        ],
    ]
);
$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: sint

status   string     

with value Example: inprogress

Must be one of:
  • inprogress
  • done
page_no   integer  optional    

number of pagination Example: 4

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\": \"accusantium\",
    \"ota_reservation_code\": \"asperiores\",
    \"filter_by\": \"arrival\",
    \"search_date_from\": \"fugit\",
    \"search_date_to\": \"numquam\",
    \"page_no\": 15
}"
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": "accusantium",
    "ota_reservation_code": "asperiores",
    "filter_by": "arrival",
    "search_date_from": "fugit",
    "search_date_to": "numquam",
    "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/cm/booking-list/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'accusantium',
            'ota_reservation_code' => 'asperiores',
            'filter_by' => 'arrival',
            'search_date_from' => 'fugit',
            'search_date_to' => 'numquam',
            'page_no' => 15,
        ],
    ]
);
$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: accusantium

ota_reservation_code   string  optional    

optional reservation code from OTA Example: asperiores

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: fugit

search_date_to   string  optional    

with format date Y-m-d Example: numquam

page_no   integer  optional    

number of pagination Example: 15

CM - Country Map

Maping Country Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/cm/country/map/details/cbce4550-26b9-3430-94e0-11da057a23bc" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/country/map/details/cbce4550-26b9-3430-94e0-11da057a23bc"
);

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/cbce4550-26b9-3430-94e0-11da057a23bc';
$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: cbce4550-26b9-3430-94e0-11da057a23bc

Maping Country Datatable

Example request:
curl --request POST \
    "http://localhost/api/v1/cm/country/map/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/country/map/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/cm/country/map/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/cm/country/map/datatables

Headers

Authorization        

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

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\": \"et\",
    \"country_id\": \"eos\",
    \"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": "et",
    "country_id": "eos",
    "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' => 'et',
            'country_id' => 'eos',
            '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: et

country_id   string     

UUID of Country Example: eos

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\": \"aperiam\"
}"
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": "aperiam"
};

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' => 'aperiam',
        ],
    ]
);
$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: aperiam

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\": \"quod\",
    \"room_type_id\": \"dicta\",
    \"rate_plan_id\": \"qui\",
    \"status\": 3,
    \"filter_by\": \"from\",
    \"is_multiple_request\": true,
    \"search_date_from\": \"est\",
    \"search_date_to\": \"at\",
    \"page_no\": 17
}"
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": "quod",
    "room_type_id": "dicta",
    "rate_plan_id": "qui",
    "status": 3,
    "filter_by": "from",
    "is_multiple_request": true,
    "search_date_from": "est",
    "search_date_to": "at",
    "page_no": 17
};

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' => 'quod',
            'room_type_id' => 'dicta',
            'rate_plan_id' => 'qui',
            'status' => 3,
            'filter_by' => 'from',
            'is_multiple_request' => true,
            'search_date_from' => 'est',
            'search_date_to' => 'at',
            'page_no' => 17,
        ],
    ]
);
$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: quod

room_type_id   string  optional    

optional uuid of Room Type Property if want filter by room Type Example: dicta

rate_plan_id   string  optional    

optional uuid of Rate Plan Property if want filter by Rate Plan Example: qui

status   integer  optional    

with value 1: inprogrees, 2: Success, 3: Errors Example: 3

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: true

search_date_from   string  optional    

with format date Y-m-d Example: est

search_date_to   string  optional    

with format date Y-m-d Example: at

page_no   integer  optional    

number of pagination Example: 17

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\": \"autem\",
    \"mode\": \"room_type_list\",
    \"room_type_id\": \"omnis\",
    \"rate_plan_id\": \"laudantium\",
    \"room_type_and_rate_plan_list\": [
        \"rerum\"
    ],
    \"date_from\": \"esse\",
    \"date_to\": \"aperiam\"
}"
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": "autem",
    "mode": "room_type_list",
    "room_type_id": "omnis",
    "rate_plan_id": "laudantium",
    "room_type_and_rate_plan_list": [
        "rerum"
    ],
    "date_from": "esse",
    "date_to": "aperiam"
};

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' => 'autem',
            'mode' => 'room_type_list',
            'room_type_id' => 'omnis',
            'rate_plan_id' => 'laudantium',
            'room_type_and_rate_plan_list' => [
                'rerum',
            ],
            'date_from' => 'esse',
            'date_to' => 'aperiam',
        ],
    ]
);
$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: autem

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: omnis

rate_plan_id   string     

uuid of Rate Plan Property Example: laudantium

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: esse

date_to   string  optional    

with format date Y-m-d, this use when mode availability_list Example: aperiam

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\": \"exercitationem\",
    \"room_type_id\": \"velit\",
    \"rate_plan_id\": \"odit\",
    \"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": "exercitationem",
    "room_type_id": "velit",
    "rate_plan_id": "odit",
    "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' => 'exercitationem',
            'room_type_id' => 'velit',
            'rate_plan_id' => 'odit',
            '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: exercitationem

room_type_id   string     

uuid of Room Type Property Example: velit

rate_plan_id   string     

uuid of Rate Plan Property Example: odit

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\": \"recusandae\",
    \"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": "recusandae",
    "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' => 'recusandae',
                '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: recusandae

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\": \"deleniti\",
    \"rate_plan_list\": [
        {
            \"room_type_id\": \"uuid\",
            \"rate_plan_id\": \"uuid\"
        }
    ],
    \"date_start\": \"aut\",
    \"date_end\": \"officia\"
}"
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": "deleniti",
    "rate_plan_list": [
        {
            "room_type_id": "uuid",
            "rate_plan_id": "uuid"
        }
    ],
    "date_start": "aut",
    "date_end": "officia"
};

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' => 'deleniti',
                'rate_plan_list' => [
                    $o[0],
                ],
                'date_start' => 'aut',
                'date_end' => 'officia',
            ],
            []
        ),
    ]
);
$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: deleniti

rate_plan_list   string[]     

list of Rate Plan Property.

date_start   string     

with format date Y-m-d Example: aut

date_end   string     

with format date Y-m-d Example: officia

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\": \"qui\",
    \"status\": \"inprogress\",
    \"page_no\": 3
}"
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": "qui",
    "status": "inprogress",
    "page_no": 3
};

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' => 'qui',
            'status' => 'inprogress',
            'page_no' => 3,
        ],
    ]
);
$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: qui

status   string     

with value Example: inprogress

Must be one of:
  • inprogress
  • done
page_no   integer  optional    

number of pagination Example: 3

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\": \"magni\",
    \"property_id\": \"in\",
    \"cm_property_id\": \"repudiandae\",
    \"cm_property_code\": \"recusandae\",
    \"cm_property_name\": \"voluptatem\",
    \"credentials\": \"consequuntur\",
    \"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": "magni",
    "property_id": "in",
    "cm_property_id": "repudiandae",
    "cm_property_code": "recusandae",
    "cm_property_name": "voluptatem",
    "credentials": "consequuntur",
    "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' => 'magni',
            'property_id' => 'in',
            'cm_property_id' => 'repudiandae',
            'cm_property_code' => 'recusandae',
            'cm_property_name' => 'voluptatem',
            'credentials' => 'consequuntur',
            '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: magni

property_id   string     

UUID of Property Example: in

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: recusandae

cm_property_name   string  optional    

optional Name of Property on Channel Manager Example: voluptatem

credentials   string     

Credentials need of Property on Channel Manager Example: consequuntur

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/922c14f3-4dc6-3159-b3b9-efffbbff0594" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/cm/property/map/detail/922c14f3-4dc6-3159-b3b9-efffbbff0594"
);

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/922c14f3-4dc6-3159-b3b9-efffbbff0594';
$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: 922c14f3-4dc6-3159-b3b9-efffbbff0594

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\": \"quisquam\",
    \"cm_active_list_id\": \"nisi\",
    \"cm_property_id\": \"quas\"
}"
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": "quisquam",
    "cm_active_list_id": "nisi",
    "cm_property_id": "quas"
};

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' => 'quisquam',
            'cm_active_list_id' => 'nisi',
            'cm_property_id' => 'quas',
        ],
    ]
);
$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: quisquam

cm_active_list_id   string     

uuid of Cm Active List Example: nisi

cm_property_id   string     

uuid of Cm Property Example: quas

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\": \"aperiam\",
    \"property_id\": \"et\",
    \"credentials\": \"ut\"
}"
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": "aperiam",
    "property_id": "et",
    "credentials": "ut"
};

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' => 'aperiam',
            'property_id' => 'et',
            'credentials' => 'ut',
        ],
    ]
);
$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: aperiam

property_id   string  optional    

property id this use when mode is verify_cm,cm_property_list Example: et

credentials   string  optional    

cnx user api key this use when mode is verify_cm,cm_property_list Example: ut

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\": \"quae\"
}"
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": "quae"
};

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' => 'quae',
        ],
    ]
);
$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: quae

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\": \"delectus\",
    \"room_type_and_rate_plan_list\": [
        \"est\"
    ]
}"
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": "delectus",
    "room_type_and_rate_plan_list": [
        "est"
    ]
};

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' => 'delectus',
            'room_type_and_rate_plan_list' => [
                'est',
            ],
        ],
    ]
);
$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: delectus

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\": \"sint\"
}"
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": "sint"
};

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' => 'sint',
        ],
    ]
);
$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: sint

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\": \"voluptatum\",
    \"mode\": \"cm_room_type_list\",
    \"cm_room_type_id\": \"nostrum\"
}"
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": "voluptatum",
    "mode": "cm_room_type_list",
    "cm_room_type_id": "nostrum"
};

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' => 'voluptatum',
            'mode' => 'cm_room_type_list',
            'cm_room_type_id' => 'nostrum',
        ],
    ]
);
$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: voluptatum

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: nostrum

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\": \"cum\",
    \"type_id\": \"pariatur\"
}"
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": "cum",
    "type_id": "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-default/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'query_search' => 'cum',
            'type_id' => 'pariatur',
        ],
    ]
);
$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: cum

type_id   string  optional    

uuid of COA type if want filter by type. Example: pariatur

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\": \"iusto\",
    \"parent_id\": \"quis\",
    \"type_id\": \"laudantium\",
    \"department_id\": \"velit\",
    \"code\": \"veritatis\",
    \"name\": \"ratione\"
}"
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": "iusto",
    "parent_id": "quis",
    "type_id": "laudantium",
    "department_id": "velit",
    "code": "veritatis",
    "name": "ratione"
};

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' => 'iusto',
            'parent_id' => 'quis',
            'type_id' => 'laudantium',
            'department_id' => 'velit',
            'code' => 'veritatis',
            'name' => 'ratione',
        ],
    ]
);
$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: iusto

parent_id   string  optional    

uuid of Chart Of Account required if coa is sub. Example: quis

type_id   string  optional    

uuid of COA type required if have coa type. Example: laudantium

department_id   string  optional    

uuid of COA type required if have coa department. Example: velit

code   string     

Code COA Example: veritatis

name   string     

Name COA Example: ratione

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\": \"in\"
}"
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": "in"
};

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' => 'in',
        ],
    ]
);
$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: in

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\": \"at\"
}"
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": "at"
};

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' => 'at',
        ],
    ]
);
$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: at

Download COA List Default

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/chart-of-account-default/list/print/necessitatibus" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/chart-of-account-default/list/print/necessitatibus"
);

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/chart-of-account-default/list/print/necessitatibus';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (400):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

GET api/v1/master/chart-of-account-default/list/print/{key}

Headers

Authorization        

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

URL Parameters

key   string  optional    

this value must encrypt with base64. parameter value {"property_id":null, "booking_room_id":null, "bill_model":(master,agent,guest)}.

responseFile Example: necessitatibus

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\": \"voluptatem\",
    \"query_search\": \"aliquam\",
    \"type_id\": \"quidem\"
}"
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": "voluptatem",
    "query_search": "aliquam",
    "type_id": "quidem"
};

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' => 'voluptatem',
            'query_search' => 'aliquam',
            'type_id' => 'quidem',
        ],
    ]
);
$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: voluptatem

query_search   string     

name of coa finding Example: aliquam

type_id   string  optional    

uuid of COA type if want filter by type. Example: quidem

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\": \"modi\",
    \"coa_id\": \"ut\",
    \"parent_id\": \"qui\",
    \"type_id\": \"quis\",
    \"department_id\": \"rerum\",
    \"code\": \"sint\",
    \"name\": \"et\"
}"
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": "modi",
    "coa_id": "ut",
    "parent_id": "qui",
    "type_id": "quis",
    "department_id": "rerum",
    "code": "sint",
    "name": "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';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'modi',
            'coa_id' => 'ut',
            'parent_id' => 'qui',
            'type_id' => 'quis',
            'department_id' => 'rerum',
            'code' => 'sint',
            'name' => 'et',
        ],
    ]
);
$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: modi

coa_id   string  optional    

uuid of Chart Of Account this required if update current data. Example: ut

parent_id   string  optional    

uuid of Chart Of Account required if coa is sub. Example: qui

type_id   string  optional    

uuid of COA type required if have coa type. Example: quis

department_id   string  optional    

uuid of COA type required if have coa department. Example: rerum

code   string     

Code COA Example: sint

name   string     

Name COA Example: et

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\": \"soluta\"
}"
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": "soluta"
};

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' => 'soluta',
        ],
    ]
);
$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: soluta

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\": \"quo\",
    \"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": "quo",
    "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' => 'quo',
            '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: quo

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\": \"minima\"
}"
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": "minima"
};

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' => 'minima',
        ],
    ]
);
$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: minima

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\": \"laboriosam\",
    \"type_id\": \"aut\",
    \"query_search\": \"et\",
    \"page_no\": \"sunt\"
}"
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": "laboriosam",
    "type_id": "aut",
    "query_search": "et",
    "page_no": "sunt"
};

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' => 'laboriosam',
            'type_id' => 'aut',
            'query_search' => 'et',
            'page_no' => 'sunt',
        ],
    ]
);
$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: laboriosam

type_id   using  optional    

uuid coa type id. Example: aut

query_search   using  optional    

for search coa By code or name. Example: et

page_no   using  optional    

for set current page. Example: sunt

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\": \"ducimus\",
    \"name\": \"quod\"
}"
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": "ducimus",
    "name": "quod"
};

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' => 'ducimus',
            'name' => 'quod',
        ],
    ]
);
$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: ducimus

name   this  optional    

name of coa template. Example: quod

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\": \"corporis\",
    \"coa_id\": \"ut\"
}"
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": "corporis",
    "coa_id": "ut"
};

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' => 'corporis',
            'coa_id' => 'ut',
        ],
    ]
);
$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: corporis

coa_id   using  optional    

uuid coa id. Example: ut

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\": \"aut\"
}"
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": "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-template/remove';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'aut',
        ],
    ]
);
$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: aut

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\": \"labore\",
    \"coa_id\": \"et\"
}"
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": "labore",
    "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-template/removelist';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'template_id' => 'labore',
            'coa_id' => 'et',
        ],
    ]
);
$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: labore

coa_id   using  optional    

uuid coa id. Example: et

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\": \"ipsa\"
}"
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": "ipsa"
};

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' => 'ipsa',
        ],
    ]
);
$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: ipsa

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\": \"voluptates\",
    \"timezone_id\": \"omnis\",
    \"language_id\": \"quae\",
    \"name\": \"odio\",
    \"phone\": \"sint\",
    \"password\": \"a$XpS\\/\\/7(x\",
    \"password_confirmation\": \"dolorum\"
}"
const url = new URL(
    "http://localhost/api/v1/misc/currentuser"
);

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

let body = {
    "id": "voluptates",
    "timezone_id": "omnis",
    "language_id": "quae",
    "name": "odio",
    "phone": "sint",
    "password": "a$XpS\/\/7(x",
    "password_confirmation": "dolorum"
};

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' => 'voluptates',
            'timezone_id' => 'omnis',
            'language_id' => 'quae',
            'name' => 'odio',
            'phone' => 'sint',
            'password' => 'a$XpS//7(x',
            'password_confirmation' => 'dolorum',
        ],
    ]
);
$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: voluptates

timezone_id   string     

uuid of Timezone Example: omnis

language_id   string     

uuid of Timezone Example: quae

name   string     

Name of Amenities Example: odio

phone   string     

User Phone Number Example: sint

password   string     

if want change user password Example: a$XpS//7(x

password_confirmation   string     

if want change user password must same with this Example: dolorum

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: 82e7f840-3459-3eae-b67d-73a25b7dd51d

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\": 12
}"
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": 12
};

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' => 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/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: 12

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\": \"debitis\",
    \"days\": \"sunt\",
    \"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": "debitis",
    "days": "sunt",
    "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' => 'debitis',
            'days' => 'sunt',
            '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: debitis

days   string  optional    

date of date report date format Y-m-d. Example: sunt

list_type   string  optional    

required. Example: source_list.

Must be one of:
  • drr
  • macro

Endpoints

POST api/v1/property/trx/test

Example request:
curl --request POST \
    "http://localhost/api/v1/property/trx/test"
const url = new URL(
    "http://localhost/api/v1/property/trx/test"
);

fetch(url, {
    method: "POST",
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/property/trx/test';
$response = $client->post($url);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/property/trx/test

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=@C:\Users\agusb\AppData\Local\Temp\php32B7.tmp" 
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('C:\Users\agusb\AppData\Local\Temp\php32B7.tmp', '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: C:\Users\agusb\AppData\Local\Temp\php32B7.tmp

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\": \"corporis\",
    \"check_in_end_date\": \"qui\",
    \"booking_id\": \"temporibus\",
    \"guest_name\": \"maxime\",
    \"ota_name\": \"est\",
    \"import_batch\": \"est\",
    \"source\": \"quaerat\",
    \"status\": \"necessitatibus\",
    \"page_number\": 4,
    \"per_page\": 20
}"
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": "corporis",
    "check_in_end_date": "qui",
    "booking_id": "temporibus",
    "guest_name": "maxime",
    "ota_name": "est",
    "import_batch": "est",
    "source": "quaerat",
    "status": "necessitatibus",
    "page_number": 4,
    "per_page": 20
};

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' => 'corporis',
            'check_in_end_date' => 'qui',
            'booking_id' => 'temporibus',
            'guest_name' => 'maxime',
            'ota_name' => 'est',
            'import_batch' => 'est',
            'source' => 'quaerat',
            'status' => 'necessitatibus',
            'page_number' => 4,
            'per_page' => 20,
        ],
    ]
);
$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: corporis

check_in_end_date   string  optional    

optional Check-in to (Y-m-d). Use together with check_in_start_date. Example: qui

booking_id   string  optional    

optional Partial match on booking ID. Example: temporibus

guest_name   string  optional    

optional Partial match (case-insensitive) on guest name. Example: maxime

ota_name   string  optional    

optional Partial match (case-insensitive) on OTA name. Example: est

import_batch   string  optional    

optional Filter by import batch ID. Example: est

source   string  optional    

optional Exact source key (e.g. agoda). Example: quaerat

status   string  optional    

optional Partial match (case-insensitive) on booking status. Example: necessitatibus

page_number   integer  optional    

optional Page number (minimum 1). If omitted, page 1 is used. Example: 4

per_page   integer  optional    

optional Results per page. Default: 30, max: 100. Example: 20

Future Booking Import Dropdown Options

Get dropdown options for future booking import mapping needs.

Example request:
curl --request POST \
    "http://localhost/api/v1/property/future-booking-imports/dropdown/guestexistingfind" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"eum\",
    \"query\": \"eum\",
    \"arival_date\": \"delectus\",
    \"depature_date\": \"provident\",
    \"room_type_id\": \"et\",
    \"total_adult\": 3,
    \"total_child\": 14,
    \"findby\": \"email\",
    \"findvalue\": \"doloribus\"
}"
const url = new URL(
    "http://localhost/api/v1/property/future-booking-imports/dropdown/guestexistingfind"
);

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

let body = {
    "property_id": "eum",
    "query": "eum",
    "arival_date": "delectus",
    "depature_date": "provident",
    "room_type_id": "et",
    "total_adult": 3,
    "total_child": 14,
    "findby": "email",
    "findvalue": "doloribus"
};

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/dropdown/guestexistingfind';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'eum',
            'query' => 'eum',
            'arival_date' => 'delectus',
            'depature_date' => 'provident',
            'room_type_id' => 'et',
            'total_adult' => 3,
            'total_child' => 14,
            'findby' => 'email',
            'findvalue' => 'doloribus',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/property/future-booking-imports/dropdown/{mode?}

Headers

Authorization        

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

Content-Type        

Example: application/json

URL Parameters

mode   string     

Dropdown mode. Example: guestexistingfind

Must be one of:
  • sources
  • agent
  • room
  • room_type
  • rate_plan
  • guestcountry
  • guestnationality
  • guestexistingfind

Body Parameters

property_id   string  optional    

optional Required for agent, room, room_type, rate_plan, and guestexistingfind modes. Property UUID. Example: eum

query   string  optional    

optional Search keyword for agent, room_type, and rate_plan. Example: eum

arival_date   string  optional    

optional Required for room and rate_plan. Format: Y-m-d. Example: delectus

depature_date   string  optional    

optional Required for room and rate_plan. Format: Y-m-d. Example: provident

room_type_id   string  optional    

optional Required for rate_plan. Room type UUID. Example: et

total_adult   integer  optional    

optional Additional filter for rate_plan. Example: 3

total_child   integer  optional    

optional Additional filter for rate_plan. Example: 14

findby   string  optional    

optional Required for guestexistingfind. Example: email

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

optional Required for guestexistingfind. Value to search by. Example: doloribus

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\": [
        \"voluptatem\"
    ]
}"
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": [
        "voluptatem"
    ]
};

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' => [
                'voluptatem',
            ],
        ],
    ]
);
$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"
    }
  ]
}

Sync Import data to Smartloka

Example request:
curl --request POST \
    "http://localhost/api/v1/property/future-booking-imports/syncdata" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"illum\",
    \"future_booking_import_id\": [
        \"aut\"
    ],
    \"import_batch_id\": \"aut\"
}"
const url = new URL(
    "http://localhost/api/v1/property/future-booking-imports/syncdata"
);

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

let body = {
    "property_id": "illum",
    "future_booking_import_id": [
        "aut"
    ],
    "import_batch_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/future-booking-imports/syncdata';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'illum',
            'future_booking_import_id' => [
                'aut',
            ],
            'import_batch_id' => 'aut',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/property/future-booking-imports/syncdata

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

property_id   string     

uuid of Property Example: illum

future_booking_import_id   string[]     

uuid of future booking import

import_batch_id   string  optional    

this batch id of import batch, this required if import by batch Example: aut

General Area

Area Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/area/details/11542fbb-6446-36c9-869d-611bfe022d5d" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/area/details/11542fbb-6446-36c9-869d-611bfe022d5d"
);

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/area/details/11542fbb-6446-36c9-869d-611bfe022d5d';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

GET api/v1/general/area/details/{uuid}

Headers

Authorization        

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

URL Parameters

uuid   string     

uuid of Regions. Example: 11542fbb-6446-36c9-869d-611bfe022d5d

Area Datatables

Example request:
curl --request POST \
    "http://localhost/api/v1/general/area/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/area/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/area/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/general/area/datatables

Headers

Authorization        

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

Add / Update Area

Example request:
curl --request POST \
    "http://localhost/api/v1/general/area" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"tempora\",
    \"region_id\": \"\'********-****-****-****-************\'\",
    \"id\": \"\'********-****-****-****-************\'\"
}"
const url = new URL(
    "http://localhost/api/v1/general/area"
);

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

let body = {
    "name": "tempora",
    "region_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/area';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'name' => 'tempora',
            'region_id' => '\'********-****-****-****-************\'',
            'id' => '\'********-****-****-****-************\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/general/area

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of Area. Example: tempora

region_id   string     

the uuid of Region. Example: '********-****-****-****-************'

id   string  optional    

if need uuid for update name of Area. Example: '********-****-****-****-************'

Remove Area

Example request:
curl --request POST \
    "http://localhost/api/v1/general/area/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"eos\"
}"
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": "eos"
};

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' => 'eos',
        ],
    ]
);
$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: eos

General Country

Country Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/country/details/8c516d36-2ebf-3761-a083-203ff995dd50" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/country/details/8c516d36-2ebf-3761-a083-203ff995dd50"
);

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/8c516d36-2ebf-3761-a083-203ff995dd50';
$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: 8c516d36-2ebf-3761-a083-203ff995dd50

Country Datatable

Example request:
curl --request POST \
    "http://localhost/api/v1/general/country/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/country/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/country/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/general/country/datatables

Headers

Authorization        

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

Add / Update Country

Example request:
curl --request POST \
    "http://localhost/api/v1/general/country" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"qui\",
    \"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": "qui",
    "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' => 'qui',
            '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: qui

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\": \"dicta\"
}"
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": "dicta"
};

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' => 'dicta',
        ],
    ]
);
$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: dicta

General Currency

Currency Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/currency/details/89fbf7af-4d29-3ddf-b0d8-d531f368d9d0" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/currency/details/89fbf7af-4d29-3ddf-b0d8-d531f368d9d0"
);

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/89fbf7af-4d29-3ddf-b0d8-d531f368d9d0';
$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: 89fbf7af-4d29-3ddf-b0d8-d531f368d9d0

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\": \"vel\",
    \"code\": \"ut\",
    \"symbol\": \"eos\",
    \"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": "vel",
    "code": "ut",
    "symbol": "eos",
    "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' => 'vel',
            'code' => 'ut',
            'symbol' => 'eos',
            '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: vel

code   string     

the code of Currency. Example: ut

symbol   string     

the symbol of Currency. Example: eos

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\": \"corrupti\"
}"
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": "corrupti"
};

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' => 'corrupti',
        ],
    ]
);
$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: corrupti

General Language

Language Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/languages/details/e7802c73-f6ea-3b32-b791-795eeb234ed0" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/languages/details/e7802c73-f6ea-3b32-b791-795eeb234ed0"
);

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/languages/details/e7802c73-f6ea-3b32-b791-795eeb234ed0';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

GET api/v1/general/languages/details/{uuid}

Headers

Authorization        

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

URL Parameters

uuid   string     

uuid of Language. Example: e7802c73-f6ea-3b32-b791-795eeb234ed0

Languages Datatables

Example request:
curl --request POST \
    "http://localhost/api/v1/general/languages/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/languages/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/languages/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/general/languages/datatables

Headers

Authorization        

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

Add / Update Region

Example request:
curl --request POST \
    "http://localhost/api/v1/general/languages" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"accusantium\",
    \"id\": 12,
    \"remove\": \"true\"
}"
const url = new URL(
    "http://localhost/api/v1/general/languages"
);

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

let body = {
    "name": "accusantium",
    "id": 12,
    "remove": "true"
};

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

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/general/languages

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

name   string     

the name of Languages. Example: accusantium

id   integer  optional    

if need id for update name of Languages. Example: 12

remove   bolean     

if want remove Languages. Example: true

Remove Language

Example request:
curl --request POST \
    "http://localhost/api/v1/general/languages/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"non\"
}"
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": "non"
};

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' => 'non',
        ],
    ]
);
$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: non

General Region

Regions Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/region/details/0c77ebe3-2b1e-381f-bd36-34f2c4d13532" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/region/details/0c77ebe3-2b1e-381f-bd36-34f2c4d13532"
);

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/0c77ebe3-2b1e-381f-bd36-34f2c4d13532';
$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: 0c77ebe3-2b1e-381f-bd36-34f2c4d13532

Regions Datatables

Example request:
curl --request POST \
    "http://localhost/api/v1/general/region/datatables" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/region/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/region/datatables';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):


{
    "message": "Unauthenticated."
}
 

Example response (404):

Show headers
cache-control: no-cache, private
content-type: text/html; charset=utf-8
access-control-allow-origin: *
 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Not Found</title>

        <style>
            /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-300 { --text-opacity: 1; color: #e2e8f0; color: rgba(226,232,240,var(--text-opacity)) }}
        </style>

        <style>
            body {
                font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
            }
        </style>
    </head>
    <body class="antialiased">
        <div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center sm:pt-0" role="main">
            <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
                <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
                    <h1 class="px-4 text-lg dark:text-gray-300 text-gray-700 border-r border-gray-400 tracking-wider">
                        404                    </h1>

                    <div class="ml-4 text-lg dark:text-gray-300 text-gray-700 uppercase tracking-wider">
                        Not Found                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

 

Request   

POST api/v1/general/region/datatables

Headers

Authorization        

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

Add / Update Region

Example request:
curl --request POST \
    "http://localhost/api/v1/general/region" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"name\": \"facere\",
    \"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": "facere",
    "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' => 'facere',
            '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: facere

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\": \"qui\"
}"
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": "qui"
};

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' => 'qui',
        ],
    ]
);
$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: qui

General Timezone

TimeZone Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/general/timezone/details/c51e88ef-9c20-3842-bc91-c6a137122cd4" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/general/timezone/details/c51e88ef-9c20-3842-bc91-c6a137122cd4"
);

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/c51e88ef-9c20-3842-bc91-c6a137122cd4';
$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: c51e88ef-9c20-3842-bc91-c6a137122cd4

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\": \"odio\",
    \"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": "odio",
    "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' => 'odio',
            '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: odio

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\": \"veritatis\"
}"
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": "veritatis"
};

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' => 'veritatis',
        ],
    ]
);
$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: veritatis

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\": \"impedit\",
    \"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": "impedit",
    "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' => 'impedit',
            '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: impedit

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\": \"est\",
    \"days\": \"commodi\",
    \"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": "est",
    "days": "commodi",
    "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' => 'est',
            'days' => 'commodi',
            '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: est

days   string  optional    

date of date report date format Y-m-d. Example: commodi

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/dolor" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"property_id\": \"corporis\",
    \"days\": \"quia\",
    \"list_type\": \"source_list.\",
    \"show_by\": \"room_type.\"
}"
const url = new URL(
    "http://localhost/api/v1/property/guestdaily/list/print/dolor"
);

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

let body = {
    "property_id": "corporis",
    "days": "quia",
    "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/dolor';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'corporis',
            'days' => 'quia',
            '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: dolor

Body Parameters

property_id   string     

uuid of Property. Example: corporis

days   string  optional    

date of date report date format Y-m-d. Example: quia

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/4e17b2e3-d673-3981-8462-cdfd3c235846" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property-groups/details/4e17b2e3-d673-3981-8462-cdfd3c235846"
);

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/4e17b2e3-d673-3981-8462-cdfd3c235846';
$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: 4e17b2e3-d673-3981-8462-cdfd3c235846

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\": \"explicabo\"
}"
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": "explicabo"
};

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' => 'explicabo',
        ],
    ]
);
$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: explicabo

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\": \"ut\",
    \"nightaudit_process_date\": \"delectus\",
    \"ignore_bill_outstanding\": \"aperiam\"
}"
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": "ut",
    "nightaudit_process_date": "delectus",
    "ignore_bill_outstanding": "aperiam"
};

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' => 'ut',
            'nightaudit_process_date' => 'delectus',
            'ignore_bill_outstanding' => 'aperiam',
        ],
    ]
);
$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: ut

nightaudit_process_date   string  optional    

add this value nightaudit date will process with format date Y-m-d. Exmp:2024-02-18 Example: delectus

ignore_bill_outstanding   bolean  optional    

this value set if you want ignore outstanding bill Example: aperiam

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\": \"soluta\"
}"
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": "soluta"
};

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' => 'soluta',
        ],
    ]
);
$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: soluta

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\": \"iure\",
    \"name\": \"odio\",
    \"is_permanent\": \"sunt\"
}"
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": "iure",
    "name": "odio",
    "is_permanent": "sunt"
};

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' => 'iure',
            'name' => 'odio',
            'is_permanent' => 'sunt',
        ],
    ]
);
$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: iure

name   string     

Name of Payment Collect Type Example: odio

is_permanent   bolean     

set true if Payment Collect Type permanent can't update or edit Example: sunt

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\": \"provident\"
}"
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": "provident"
};

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' => 'provident',
        ],
    ]
);
$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: provident

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\": \"voluptatem\",
    \"start_date\": \"quo\",
    \"end_date\": \"temporibus\",
    \"payment_option_id\": \"et\",
    \"created_by_id\": \"sed\"
}"
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": "voluptatem",
    "start_date": "quo",
    "end_date": "temporibus",
    "payment_option_id": "et",
    "created_by_id": "sed"
};

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' => 'voluptatem',
            'start_date' => 'quo',
            'end_date' => 'temporibus',
            'payment_option_id' => 'et',
            'created_by_id' => 'sed',
        ],
    ]
);
$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: voluptatem

start_date   string  optional    

start date of date receive payment date format Y-m-d. Example: quo

end_date   string  optional    

end date of date receive payment date format Y-m-d. Example: temporibus

payment_option_id   string     

uuid of payment_option add this parameter if want for spesification method. Example: et

created_by_id   string     

uuid of user add this parameter if want for payment created by. Example: sed

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\": \"sint\",
    \"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": "sint",
    "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' => 'sint',
            '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: sint

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=fugit"\
    --form "property_id=alias"\
    --form "agent_source_id=totam"\
    --form "name=asperiores"\
    --form "address=non"\
    --form "phone=et"\
    --form "[email protected]"\
    --form "website=ut"\
    --form "bg_color=velit"\
    --form "fg_color=quia"\
    --form "logo_path=@C:\Users\agusb\AppData\Local\Temp\php2E3D.tmp" \
    --form "icon_path=@C:\Users\agusb\AppData\Local\Temp\php2E3E.tmp" 
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', 'fugit');
body.append('property_id', 'alias');
body.append('agent_source_id', 'totam');
body.append('name', 'asperiores');
body.append('address', 'non');
body.append('phone', 'et');
body.append('email', '[email protected]');
body.append('website', 'ut');
body.append('bg_color', 'velit');
body.append('fg_color', 'quia');
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' => 'fugit'
            ],
            [
                'name' => 'property_id',
                'contents' => 'alias'
            ],
            [
                'name' => 'agent_source_id',
                'contents' => 'totam'
            ],
            [
                'name' => 'name',
                'contents' => 'asperiores'
            ],
            [
                'name' => 'address',
                'contents' => 'non'
            ],
            [
                'name' => 'phone',
                'contents' => 'et'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'website',
                'contents' => 'ut'
            ],
            [
                'name' => 'bg_color',
                'contents' => 'velit'
            ],
            [
                'name' => 'fg_color',
                'contents' => 'quia'
            ],
            [
                'name' => 'logo_path',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php2E3D.tmp', 'r')
            ],
            [
                'name' => 'icon_path',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php2E3E.tmp', '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: fugit

property_id   string     

uuid of Property Example: alias

agent_source_id   string     

uuid of Property Example: totam

name   string     

Name of Agent Example: asperiores

address   string  optional    

Address of Agent Example: non

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: ut

logo_path   file  optional    

logo dimension must width 1350 x height 750 Example: C:\Users\agusb\AppData\Local\Temp\php2E3D.tmp

icon_path   file  optional    

icon dimension ratio 1/1 Example: C:\Users\agusb\AppData\Local\Temp\php2E3E.tmp

bg_color   string  optional    

position on hex color text of Room Status Example: velit

fg_color   string  optional    

position on hex color text of Room Status Example: quia

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\": \"impedit\",
    \"agent_id\": \"cupiditate\"
}"
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": "impedit",
    "agent_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/agent/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'impedit',
            'agent_id' => 'cupiditate',
        ],
    ]
);
$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: impedit

agent_id   string     

uuid of Property Agent Example: cupiditate

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\": \"magni\"
}"
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": "magni"
};

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' => 'magni',
        ],
    ]
);
$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: magni

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\": \"eligendi\"
}"
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": "eligendi"
};

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' => 'eligendi',
        ],
    ]
);
$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: eligendi

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\": \"exercitationem\",
    \"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": "exercitationem",
    "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' => 'exercitationem',
            '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: exercitationem

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\": \"consectetur\"
}"
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": "consectetur"
};

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' => 'consectetur',
        ],
    ]
);
$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: consectetur

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\": \"odit\",
    \"mode\": \"coa_list\",
    \"coa_search\": \"voluptatibus\"
}"
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": "odit",
    "mode": "coa_list",
    "coa_search": "voluptatibus"
};

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' => 'odit',
            'mode' => 'coa_list',
            'coa_search' => 'voluptatibus',
        ],
    ]
);
$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: odit

mode   string  optional    

The language. Example: coa_list

Must be one of:
  • coa_list
coa_search   string  optional    

name of Chart Account Example: voluptatibus

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\": \"placeat\",
    \"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": "placeat",
    "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' => 'placeat',
            '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: placeat

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\": \"assumenda\",
    \"department_id\": \"ipsa\"
}"
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": "assumenda",
    "department_id": "ipsa"
};

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' => 'assumenda',
            'department_id' => 'ipsa',
        ],
    ]
);
$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: assumenda

department_id   string     

uuid of Property Department Example: ipsa

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\": \"nemo\",
    \"department_id\": \"esse\",
    \"department_name\": \"minus\"
}"
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": "nemo",
    "department_id": "esse",
    "department_name": "minus"
};

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' => 'nemo',
            'department_id' => 'esse',
            'department_name' => 'minus',
        ],
    ]
);
$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: nemo

department_id   string     

uuid of Department Example: esse

department_name   string     

Name of Department Example: minus

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\": \"iste\",
    \"property_id\": \"culpa\",
    \"supplier_id\": \"aut\",
    \"coa_id\": \"fugiat\",
    \"trx_date\": \"fugiat\",
    \"total_amount\": 19,
    \"total_discount\": 18,
    \"total_commision\": 19,
    \"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": "iste",
    "property_id": "culpa",
    "supplier_id": "aut",
    "coa_id": "fugiat",
    "trx_date": "fugiat",
    "total_amount": 19,
    "total_discount": 18,
    "total_commision": 19,
    "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' => 'iste',
            'property_id' => 'culpa',
            'supplier_id' => 'aut',
            'coa_id' => 'fugiat',
            'trx_date' => 'fugiat',
            'total_amount' => 19,
            'total_discount' => 18,
            'total_commision' => 19,
            '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: iste

property_id   string     

uuid of Property Example: culpa

supplier_id   string     

uuid of Supplier Example: aut

coa_id   string     

uuid of Chart of Account Example: fugiat

trx_date   string  optional    

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

total_amount   integer     

of expense amount Example: 19

total_discount   integer     

of expense amount Example: 18

total_commision   integer     

of expense amount Example: 19

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\": \"est\",
    \"property_id\": \"soluta\"
}"
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": "est",
    "property_id": "soluta"
};

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' => 'est',
            'property_id' => 'soluta',
        ],
    ]
);
$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: est

property_id   string     

uuid of Property Example: soluta

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\": \"asperiores\",
    \"property_id\": \"aperiam\"
}"
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": "asperiores",
    "property_id": "aperiam"
};

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' => 'asperiores',
            'property_id' => 'aperiam',
        ],
    ]
);
$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: asperiores

property_id   string     

uuid of Property Example: aperiam

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\": \"et\",
    \"supplier_search\": \"possimus\",
    \"coa_search\": \"et\",
    \"default_value\": \"temporibus\",
    \"payment_option_id\": \"quis\",
    \"payment_option_search\": \"numquam\",
    \"payment_method_search\": \"non\"
}"
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": "et",
    "supplier_search": "possimus",
    "coa_search": "et",
    "default_value": "temporibus",
    "payment_option_id": "quis",
    "payment_option_search": "numquam",
    "payment_method_search": "non"
};

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' => 'et',
            'supplier_search' => 'possimus',
            'coa_search' => 'et',
            'default_value' => 'temporibus',
            'payment_option_id' => 'quis',
            'payment_option_search' => 'numquam',
            'payment_method_search' => 'non',
        ],
    ]
);
$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: et

supplier_search   string     

supplier name Example: possimus

coa_search   string     

name of coa finding Example: et

default_value   string     

name of coa default value Example: temporibus

payment_option_id   string     

uuid of payment option Example: quis

payment_option_search   string     

name of Payment option Example: numquam

payment_method_search   string     

name of Payment method Example: non

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\": \"non\",
    \"name\": \"sit\"
}"
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": "non",
    "name": "sit"
};

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' => 'non',
            'name' => 'sit',
        ],
    ]
);
$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: non

name   string     

Name of Amenities Example: sit

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\": \"et\"
}"
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": "et"
};

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' => 'et',
        ],
    ]
);
$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: et

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\": \"rerum\"
}"
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": "rerum"
};

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' => 'rerum',
        ],
    ]
);
$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: rerum

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\": \"ullam\",
    \"guest_id\": \"blanditiis\"
}"
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": "ullam",
    "guest_id": "blanditiis"
};

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' => 'ullam',
            'guest_id' => 'blanditiis',
        ],
    ]
);
$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: ullam

guest_id   string     

uuid of Property Guest Profile Example: blanditiis

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\": \"iste\",
    \"property_id\": \"enim\",
    \"guest_prefix_id\": \"dolorem\",
    \"first_name\": \"quasi\",
    \"last_name\": \"iste\",
    \"country_id\": \"consequatur\",
    \"national_id\": \"corporis\",
    \"identity_type_id\": \"eaque\",
    \"identity_no\": \"sed\",
    \"email\": \"[email protected]\",
    \"phone\": \"ipsum\",
    \"address\": \"alias\"
}"
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": "iste",
    "property_id": "enim",
    "guest_prefix_id": "dolorem",
    "first_name": "quasi",
    "last_name": "iste",
    "country_id": "consequatur",
    "national_id": "corporis",
    "identity_type_id": "eaque",
    "identity_no": "sed",
    "email": "[email protected]",
    "phone": "ipsum",
    "address": "alias"
};

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' => 'iste',
            'property_id' => 'enim',
            'guest_prefix_id' => 'dolorem',
            'first_name' => 'quasi',
            'last_name' => 'iste',
            'country_id' => 'consequatur',
            'national_id' => 'corporis',
            'identity_type_id' => 'eaque',
            'identity_no' => 'sed',
            'email' => '[email protected]',
            'phone' => 'ipsum',
            'address' => 'alias',
        ],
    ]
);
$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: iste

property_id   string     

uuid of Property Example: enim

guest_prefix_id   string     

uuid of Guest Prefix Example: dolorem

first_name   string     

First Name Of Guest Profile Example: quasi

last_name   string     

Last Name Of Guest Profile Example: iste

country_id   string     

uuid of Country Example: consequatur

national_id   string     

uuid of National same use country data Example: corporis

identity_type_id   string     

uuid of Guest Identity Type Example: eaque

identity_no   string     

Identity Number Of Guest Profile Example: sed

email   string     

Email Of Guest Profile Example: [email protected]

phone   string     

Phone Of Guest Profile Example: ipsum

address   string     

Address Of Guest Profile Example: alias

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\": \"dolores\",
    \"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": "dolores",
    "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' => 'dolores',
            '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: dolores

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\": \"dolores\"
}"
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": "dolores"
};

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' => 'dolores',
        ],
    ]
);
$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: dolores

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\": \"sed\",
    \"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": "sed",
    "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' => 'sed',
            '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: sed

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\": \"consequatur\",
    \"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": "consequatur",
    "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' => 'consequatur',
            '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: consequatur

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\": \"optio\",
    \"is_auto\": false,
    \"run_time_schedule\": \"fuga\"
}"
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": "optio",
    "is_auto": false,
    "run_time_schedule": "fuga"
};

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' => 'optio',
            'is_auto' => false,
            'run_time_schedule' => 'fuga',
        ],
    ]
);
$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: optio

is_auto   boolean  optional    

if you want automatic run nightaudit please set this to true Example: false

run_time_schedule   string     

if set auto night audit true format time H:i:s Example: fuga

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\": \"odio\",
    \"poduct_category_id\": \"neque\"
}"
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": "odio",
    "poduct_category_id": "neque"
};

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' => 'odio',
            'poduct_category_id' => 'neque',
        ],
    ]
);
$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: odio

poduct_category_id   string     

uuid of Property Product Category Example: neque

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\": \"sint\",
    \"product_category_id\": \"minima\",
    \"name\": \"quis\"
}"
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": "sint",
    "product_category_id": "minima",
    "name": "quis"
};

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' => 'sint',
            'product_category_id' => 'minima',
            'name' => 'quis',
        ],
    ]
);
$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: sint

product_category_id   string     

uuid of Product Category Example: minima

name   string     

Name of Product Category Example: quis

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\": \"repellat\"
}"
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": "repellat"
};

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' => 'repellat',
        ],
    ]
);
$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: repellat

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\": \"numquam\",
    \"product_id\": \"aut\"
}"
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": "numquam",
    "product_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/property-product/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'numquam',
            'product_id' => 'aut',
        ],
    ]
);
$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: numquam

product_id   string     

uuid of Property Room Status Example: aut

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\": \"sint\",
    \"property_id\": \"aliquid\",
    \"category_id\": \"qui\",
    \"department_id\": \"et\",
    \"sell_coa_id\": \"incidunt\",
    \"cost_coa_id\": \"repellat\",
    \"name\": \"esse\",
    \"remark\": \"in\",
    \"sell_amount\": 4,
    \"cost_amount\": 16,
    \"is_active\": \"reprehenderit\"
}"
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": "sint",
    "property_id": "aliquid",
    "category_id": "qui",
    "department_id": "et",
    "sell_coa_id": "incidunt",
    "cost_coa_id": "repellat",
    "name": "esse",
    "remark": "in",
    "sell_amount": 4,
    "cost_amount": 16,
    "is_active": "reprehenderit"
};

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' => 'sint',
            'property_id' => 'aliquid',
            'category_id' => 'qui',
            'department_id' => 'et',
            'sell_coa_id' => 'incidunt',
            'cost_coa_id' => 'repellat',
            'name' => 'esse',
            'remark' => 'in',
            'sell_amount' => 4,
            'cost_amount' => 16,
            'is_active' => 'reprehenderit',
        ],
    ]
);
$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: sint

property_id   string     

uuid of Property Example: aliquid

category_id   string     

uuid of Category Example: qui

department_id   string     

uuid of Department Example: et

sell_coa_id   string     

uuid of Selling Chart Of Account Example: incidunt

cost_coa_id   string     

uuid of Cost Chart Of Account Example: repellat

name   string     

Name of Product Example: esse

remark   string  optional    

Remark Of Product Example: in

sell_amount   integer     

sell amount price Example: 4

cost_amount   integer     

cost amount price Example: 16

is_active   bolean  optional    

uuid of room amenities Example: reprehenderit

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\": \"ratione\"
}"
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": "ratione"
};

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' => 'ratione',
        ],
    ]
);
$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: ratione

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\": \"qui\"
}"
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": "qui"
};

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' => '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/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: qui

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\": \"quam\",
    \"room_type_id\": \"corrupti\",
    \"room_id\": \"hic\"
}"
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": "quam",
    "room_type_id": "corrupti",
    "room_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/room/detail';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'quam',
            'room_type_id' => 'corrupti',
            'room_id' => 'hic',
        ],
    ]
);
$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: quam

room_type_id   string     

uuid of Property Room Type Example: corrupti

room_id   string     

uuid of Property Room Example: hic

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\": \"iste\",
    \"room_type_id\": \"rerum\"
}"
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": "iste",
    "room_type_id": "rerum"
};

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' => 'iste',
            'room_type_id' => 'rerum',
        ],
    ]
);
$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: iste

room_type_id   string     

uuid of Property Room Status Example: rerum

Create / Update Room

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"reiciendis\",
    \"property_id\": \"ut\",
    \"room_type_id\": \"odit\",
    \"room_bed_type_id\": \"sint\",
    \"name\": \"adipisci\",
    \"description\": \"Ducimus ut quas quaerat qui ducimus velit est odio.\"
}"
const url = new URL(
    "http://localhost/api/v1/property/room"
);

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

let body = {
    "id": "reiciendis",
    "property_id": "ut",
    "room_type_id": "odit",
    "room_bed_type_id": "sint",
    "name": "adipisci",
    "description": "Ducimus ut quas quaerat qui ducimus velit est odio."
};

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' => 'reiciendis',
            'property_id' => 'ut',
            'room_type_id' => 'odit',
            'room_bed_type_id' => 'sint',
            'name' => 'adipisci',
            'description' => 'Ducimus ut quas quaerat qui ducimus velit est odio.',
        ],
    ]
);
$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: reiciendis

property_id   string     

uuid of Property Example: ut

room_type_id   string     

uuid of Room Type Example: odit

room_bed_type_id   string     

uuid of Room Bed Type Example: sint

name   string     

Name of Room Example: adipisci

description   string     

Description of Room Example: Ducimus ut quas quaerat qui ducimus velit est odio.

Remove Room

Example request:
curl --request POST \
    "http://localhost/api/v1/property/room/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"aut\"
}"
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": "aut"
};

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' => 'aut',
        ],
    ]
);
$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: aut

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\": \"labore\",
    \"mode\": \"bed_type\",
    \"room_id\": \"architecto\"
}"
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": "labore",
    "mode": "bed_type",
    "room_id": "architecto"
};

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' => 'labore',
            'mode' => 'bed_type',
            'room_id' => 'architecto',
        ],
    ]
);
$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: labore

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: architecto

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\": \"est\",
    \"room_id\": \"dolor\",
    \"room_status_id\": \"voluptatem\"
}"
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": "est",
    "room_id": "dolor",
    "room_status_id": "voluptatem"
};

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' => 'est',
            'room_id' => 'dolor',
            'room_status_id' => 'voluptatem',
        ],
    ]
);
$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: est

room_id   string     

uuid of Room Example: dolor

room_status_id   string     

uuid of Room Status list Example: voluptatem

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\": \"sunt\",
    \"room_bed_type_id\": \"illum\"
}"
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": "sunt",
    "room_bed_type_id": "illum"
};

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' => 'sunt',
            'room_bed_type_id' => 'illum',
        ],
    ]
);
$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: sunt

room_bed_type_id   string     

uuid of Property Room Status Example: illum

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\": \"deserunt\",
    \"name\": \"blanditiis\"
}"
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": "deserunt",
    "name": "blanditiis"
};

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' => 'deserunt',
            'name' => 'blanditiis',
        ],
    ]
);
$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: deserunt

name   string     

Name of Room Type Example: blanditiis

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\": \"delectus\"
}"
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": "delectus"
};

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' => 'delectus',
        ],
    ]
);
$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: delectus

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\": \"eos\",
    \"status_id\": \"commodi\"
}"
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": "eos",
    "status_id": "commodi"
};

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' => 'eos',
            'status_id' => 'commodi',
        ],
    ]
);
$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: eos

status_id   string     

uuid of Property Room Status Example: commodi

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\": \"consequuntur\",
    \"property_id\": \"dolores\",
    \"code\": \"natus\",
    \"name\": \"enim\",
    \"remark\": \"omnis\",
    \"text_color\": \"iure\",
    \"background\": \"impedit\"
}"
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": "consequuntur",
    "property_id": "dolores",
    "code": "natus",
    "name": "enim",
    "remark": "omnis",
    "text_color": "iure",
    "background": "impedit"
};

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' => 'consequuntur',
            'property_id' => 'dolores',
            'code' => 'natus',
            'name' => 'enim',
            'remark' => 'omnis',
            'text_color' => 'iure',
            'background' => 'impedit',
        ],
    ]
);
$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: consequuntur

property_id   string     

uuid of Property Example: dolores

code   string     

Code of Room Status Example: natus

name   string     

Name of Room Status Example: enim

remark   string     

Description of Room Status Example: omnis

text_color   string  optional    

position on hex color text of Room Status Example: iure

background   string  optional    

position on hex color background of Room Status Example: impedit

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\": \"aut\"
}"
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": "aut"
};

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' => 'aut',
        ],
    ]
);
$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: aut

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\": \"nemo\",
    \"room_type_id\": \"adipisci\"
}"
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": "nemo",
    "room_type_id": "adipisci"
};

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' => 'nemo',
            'room_type_id' => 'adipisci',
        ],
    ]
);
$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: nemo

room_type_id   string     

uuid of Property Room Status Example: adipisci

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\": \"explicabo\",
    \"property_id\": \"ab\",
    \"name\": \"sequi\",
    \"description\": \"Numquam est qui nihil saepe eveniet et.\",
    \"position_order\": 15,
    \"room_amenities\": [
        \"reiciendis\"
    ],
    \"occ_adult\": 8,
    \"occ_child\": 8,
    \"occ_infant\": 13,
    \"occ_default\": 18
}"
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": "explicabo",
    "property_id": "ab",
    "name": "sequi",
    "description": "Numquam est qui nihil saepe eveniet et.",
    "position_order": 15,
    "room_amenities": [
        "reiciendis"
    ],
    "occ_adult": 8,
    "occ_child": 8,
    "occ_infant": 13,
    "occ_default": 18
};

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' => 'explicabo',
            'property_id' => 'ab',
            'name' => 'sequi',
            'description' => 'Numquam est qui nihil saepe eveniet et.',
            'position_order' => 15,
            'room_amenities' => [
                'reiciendis',
            ],
            'occ_adult' => 8,
            'occ_child' => 8,
            'occ_infant' => 13,
            'occ_default' => 18,
        ],
    ]
);
$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: explicabo

property_id   string     

uuid of Property Example: ab

name   string     

Name of Room Type Example: sequi

description   string     

Description of Room Type Example: Numquam est qui nihil saepe eveniet et.

position_order   integer  optional    

position on order of room type Example: 15

room_amenities   string[]  optional    

uuid of room amenities

occ_adult   integer  optional    

this amount of max occupancy adult for this room type Example: 8

occ_child   integer  optional    

this amount of max occupancy child for this room type Example: 8

occ_infant   integer  optional    

this amount of max occupancy infant for this room type Example: 13

occ_default   integer  optional    

this amount of max occupancy default for this room type Example: 18

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\": \"sint\"
}"
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": "sint"
};

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' => 'sint',
        ],
    ]
);
$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: sint

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\": \"blanditiis\"
}"
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": "blanditiis"
};

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' => 'blanditiis',
        ],
    ]
);
$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: blanditiis

Get Room type Images

Example request:
curl --request GET \
    --get "http://localhost/api/v1/property/room-type/image/e74f7a1c-de34-360c-b6e6-bd637a51b7e1" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-type/image/e74f7a1c-de34-360c-b6e6-bd637a51b7e1"
);

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/e74f7a1c-de34-360c-b6e6-bd637a51b7e1';
$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: e74f7a1c-de34-360c-b6e6-bd637a51b7e1

delete Room Type Images

Example request:
curl --request GET \
    --get "http://localhost/api/v1/property/room-type/image/61104bcb-1939-39d6-b13a-c48a83368d9d/delete" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/property/room-type/image/61104bcb-1939-39d6-b13a-c48a83368d9d/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/61104bcb-1939-39d6-b13a-c48a83368d9d/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: 61104bcb-1939-39d6-b13a-c48a83368d9d

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=voluptatibus"\
    --form "image_path[]=@C:\Users\agusb\AppData\Local\Temp\php2DEE.tmp" 
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', 'voluptatibus');
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' => 'voluptatibus'
            ],
            [
                'name' => 'image_path[]',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php2DEE.tmp', '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: voluptatibus

image_path[]   file  optional    

Example: C:\Users\agusb\AppData\Local\Temp\php2DEE.tmp

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=rerum"\
    --form "property_group_id=et"\
    --form "prefix_booking_code=facilis"\
    --form "name=provident"\
    --form "address=placeat"\
    --form "zip_code=vel"\
    --form "phone=ea"\
    --form "email_primary=magnam"\
    --form "website=quisquam"\
    --form "area_id=accusamus"\
    --form "longitude=voluptatem"\
    --form "latitude=voluptatem"\
    --form "google_map_url=http://www.mckenzie.com/et-enim-ipsam-corporis-perferendis-rerum"\
    --form "currency_id=sit"\
    --form "timezone_id=qui"\
    --form "sosmed_facebook_url=http://sawayn.org/tempore-voluptas-similique-est-qui"\
    --form "sosmed_instagram_url=http://cole.com/"\
    --form "sosmed_youtube_url=http://www.blanda.org/expedita-nemo-rerum-cupiditate-tempora-nisi-pariatur"\
    --form "sosmed_twitter_url=http://www.abshire.biz/voluptatem-eius-dolorum-enim-officia.html"\
    --form "description=Et incidunt aliquid at quia."\
    --form "coa_default_template_id=voluptatem"\
    --form "room_status_template=yes"\
    --form "logo_path=@C:\Users\agusb\AppData\Local\Temp\php2D02.tmp" 
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', 'rerum');
body.append('property_group_id', 'et');
body.append('prefix_booking_code', 'facilis');
body.append('name', 'provident');
body.append('address', 'placeat');
body.append('zip_code', 'vel');
body.append('phone', 'ea');
body.append('email_primary', 'magnam');
body.append('website', 'quisquam');
body.append('area_id', 'accusamus');
body.append('longitude', 'voluptatem');
body.append('latitude', 'voluptatem');
body.append('google_map_url', 'http://www.mckenzie.com/et-enim-ipsam-corporis-perferendis-rerum');
body.append('currency_id', 'sit');
body.append('timezone_id', 'qui');
body.append('sosmed_facebook_url', 'http://sawayn.org/tempore-voluptas-similique-est-qui');
body.append('sosmed_instagram_url', 'http://cole.com/');
body.append('sosmed_youtube_url', 'http://www.blanda.org/expedita-nemo-rerum-cupiditate-tempora-nisi-pariatur');
body.append('sosmed_twitter_url', 'http://www.abshire.biz/voluptatem-eius-dolorum-enim-officia.html');
body.append('description', 'Et incidunt aliquid at quia.');
body.append('coa_default_template_id', 'voluptatem');
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' => 'rerum'
            ],
            [
                'name' => 'property_group_id',
                'contents' => 'et'
            ],
            [
                'name' => 'prefix_booking_code',
                'contents' => 'facilis'
            ],
            [
                'name' => 'name',
                'contents' => 'provident'
            ],
            [
                'name' => 'address',
                'contents' => 'placeat'
            ],
            [
                'name' => 'zip_code',
                'contents' => 'vel'
            ],
            [
                'name' => 'phone',
                'contents' => 'ea'
            ],
            [
                'name' => 'email_primary',
                'contents' => 'magnam'
            ],
            [
                'name' => 'website',
                'contents' => 'quisquam'
            ],
            [
                'name' => 'area_id',
                'contents' => 'accusamus'
            ],
            [
                'name' => 'longitude',
                'contents' => 'voluptatem'
            ],
            [
                'name' => 'latitude',
                'contents' => 'voluptatem'
            ],
            [
                'name' => 'google_map_url',
                'contents' => 'http://www.mckenzie.com/et-enim-ipsam-corporis-perferendis-rerum'
            ],
            [
                'name' => 'currency_id',
                'contents' => 'sit'
            ],
            [
                'name' => 'timezone_id',
                'contents' => 'qui'
            ],
            [
                'name' => 'sosmed_facebook_url',
                'contents' => 'http://sawayn.org/tempore-voluptas-similique-est-qui'
            ],
            [
                'name' => 'sosmed_instagram_url',
                'contents' => 'http://cole.com/'
            ],
            [
                'name' => 'sosmed_youtube_url',
                'contents' => 'http://www.blanda.org/expedita-nemo-rerum-cupiditate-tempora-nisi-pariatur'
            ],
            [
                'name' => 'sosmed_twitter_url',
                'contents' => 'http://www.abshire.biz/voluptatem-eius-dolorum-enim-officia.html'
            ],
            [
                'name' => 'description',
                'contents' => 'Et incidunt aliquid at quia.'
            ],
            [
                'name' => 'coa_default_template_id',
                'contents' => 'voluptatem'
            ],
            [
                'name' => 'room_status_template',
                'contents' => 'yes'
            ],
            [
                'name' => 'logo_path',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php2D02.tmp', '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: rerum

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: facilis

name   string     

Name of Property Example: provident

address   string     

Address of Property Example: placeat

zip_code   string  optional    

zip code of Property Example: vel

phone   string  optional    

phone of Property Example: ea

email_primary   string  optional    

email_primary of Property Example: magnam

website   string  optional    

website of Property if not have website please not set parameter Example: quisquam

area_id   string  optional    

area id of Property Example: accusamus

longitude   string  optional    

longitude of Property Example: voluptatem

latitude   string  optional    

latitude of Property Example: voluptatem

google_map_url   string  optional    

google map url of Property Example: http://www.mckenzie.com/et-enim-ipsam-corporis-perferendis-rerum

currency_id   string  optional    

currency uuid of Property Example: sit

timezone_id   string  optional    

timezone id of Property Example: qui

sosmed_facebook_url   string  optional    

Example: http://sawayn.org/tempore-voluptas-similique-est-qui

sosmed_instagram_url   string  optional    

Example: http://cole.com/

sosmed_youtube_url   string  optional    

Example: http://www.blanda.org/expedita-nemo-rerum-cupiditate-tempora-nisi-pariatur

sosmed_twitter_url   string  optional    

Example: http://www.abshire.biz/voluptatem-eius-dolorum-enim-officia.html

description   string  optional    

Example: Et incidunt aliquid at quia.

logo_path   file  optional    

Example: C:\Users\agusb\AppData\Local\Temp\php2D02.tmp

coa_default_template_id   string  optional    

use uuid COA template ID, if update data property please not set this parameter. Example: voluptatem

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\": \"est\"
}"
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": "est"
};

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' => 'est',
        ],
    ]
);
$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: est

Property Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/property/details/23718b74-4c56-3446-9ae0-017b0950dd7c" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/details/23718b74-4c56-3446-9ae0-017b0950dd7c"
);

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/23718b74-4c56-3446-9ae0-017b0950dd7c';
$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: 23718b74-4c56-3446-9ae0-017b0950dd7c

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/7c67ca13-f3c4-372b-82d6-71cc14aba621" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/image/7c67ca13-f3c4-372b-82d6-71cc14aba621"
);

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/7c67ca13-f3c4-372b-82d6-71cc14aba621';
$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: 7c67ca13-f3c4-372b-82d6-71cc14aba621

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\": \"aperiam\"
}"
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": "aperiam"
};

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' => 'aperiam',
        ],
    ]
);
$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: aperiam

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=et"\
    --form "image_path[]=@C:\Users\agusb\AppData\Local\Temp\php2D51.tmp" 
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', 'et');
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' => 'et'
            ],
            [
                'name' => 'image_path[]',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php2D51.tmp', '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: et

image_path[]   file  optional    

Example: C:\Users\agusb\AppData\Local\Temp\php2D51.tmp

Property Email List

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/property/email/cbb85656-2f77-349f-8f19-81f297b3807f" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/property/email/cbb85656-2f77-349f-8f19-81f297b3807f"
);

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/cbb85656-2f77-349f-8f19-81f297b3807f';
$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: cbb85656-2f77-349f-8f19-81f297b3807f

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: 38f37055-9107-35c8-8c17-e1e6f5b859fb

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\": \"accusamus\",
    \"property_id\": \"eos\",
    \"email\": \"[email protected]\",
    \"recepient_name\": \"cum\"
}"
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": "accusamus",
    "property_id": "eos",
    "email": "[email protected]",
    "recepient_name": "cum"
};

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' => 'accusamus',
            'property_id' => 'eos',
            'email' => '[email protected]',
            'recepient_name' => 'cum',
        ],
    ]
);
$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: accusamus

property_id   string     

uuid of Property Example: eos

email   string  optional    

email of Property Example: [email protected]

recepient_name   string  optional    

recepient name of Property email Example: cum

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=similique"\
    --form "property_id=aut"\
    --form "name=magni"\
    --form "address=consequatur"\
    --form "phone=voluptatem"\
    --form "[email protected]"\
    --form "website=nam"\
    --form "bg_color=autem"\
    --form "fg_color=odit"\
    --form "logo_path=@C:\Users\agusb\AppData\Local\Temp\php3072.tmp" \
    --form "icon_path=@C:\Users\agusb\AppData\Local\Temp\php3073.tmp" 
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', 'similique');
body.append('property_id', 'aut');
body.append('name', 'magni');
body.append('address', 'consequatur');
body.append('phone', 'voluptatem');
body.append('email', '[email protected]');
body.append('website', 'nam');
body.append('bg_color', 'autem');
body.append('fg_color', 'odit');
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' => 'similique'
            ],
            [
                'name' => 'property_id',
                'contents' => 'aut'
            ],
            [
                'name' => 'name',
                'contents' => 'magni'
            ],
            [
                'name' => 'address',
                'contents' => 'consequatur'
            ],
            [
                'name' => 'phone',
                'contents' => 'voluptatem'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'website',
                'contents' => 'nam'
            ],
            [
                'name' => 'bg_color',
                'contents' => 'autem'
            ],
            [
                'name' => 'fg_color',
                'contents' => 'odit'
            ],
            [
                'name' => 'logo_path',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php3072.tmp', 'r')
            ],
            [
                'name' => 'icon_path',
                'contents' => fopen('C:\Users\agusb\AppData\Local\Temp\php3073.tmp', '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: similique

property_id   string     

uuid of Property Example: aut

name   string     

Name of Supplier Example: magni

address   string  optional    

Address of Supplier Example: consequatur

phone   string  optional    

Phone of Supplier Example: voluptatem

email   string  optional    

E-mail of Supplier Example: [email protected]

website   string  optional    

website of Supplier Example: nam

logo_path   file  optional    

logo dimension must width 1350 x height 750 Example: C:\Users\agusb\AppData\Local\Temp\php3072.tmp

icon_path   file  optional    

icon dimension ratio 1/1 Example: C:\Users\agusb\AppData\Local\Temp\php3073.tmp

bg_color   string  optional    

position on hex color text of Supplier background Example: autem

fg_color   string  optional    

position on hex color text of Supplier Text Example: odit

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\": \"sequi\",
    \"supplier_id\": \"sed\"
}"
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": "sequi",
    "supplier_id": "sed"
};

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' => 'sequi',
            'supplier_id' => 'sed',
        ],
    ]
);
$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: sequi

supplier_id   string     

uuid of Property Agent Example: sed

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\": \"recusandae\"
}"
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": "recusandae"
};

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' => 'recusandae',
        ],
    ]
);
$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: recusandae

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\": \"corrupti\"
}"
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": "corrupti"
};

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' => 'corrupti',
        ],
    ]
);
$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: corrupti

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\": \"nobis\",
    \"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": "nobis",
    "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' => 'nobis',
            '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: nobis

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/6289ec2e-1f69-31e1-a6c8-3fdb5c2088b4" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/room-status-default-list/details/6289ec2e-1f69-31e1-a6c8-3fdb5c2088b4"
);

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/6289ec2e-1f69-31e1-a6c8-3fdb5c2088b4';
$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: 6289ec2e-1f69-31e1-a6c8-3fdb5c2088b4

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\": \"ut\",
    \"code\": \"quia\",
    \"name\": \"optio\",
    \"remark\": \"velit\",
    \"text_color\": \"enim\",
    \"background\": \"labore\",
    \"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": "ut",
    "code": "quia",
    "name": "optio",
    "remark": "velit",
    "text_color": "enim",
    "background": "labore",
    "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' => 'ut',
            'code' => 'quia',
            'name' => 'optio',
            'remark' => 'velit',
            'text_color' => 'enim',
            'background' => 'labore',
            '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: ut

code   string     

Code of Room Status Example: quia

name   string     

Name of Room Status Example: optio

remark   string     

Description of Room Status Example: velit

text_color   string  optional    

position on hex color text of Room Status Example: enim

background   string  optional    

position on hex color background of Room Status Example: labore

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\": \"incidunt\"
}"
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": "incidunt"
};

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' => 'incidunt',
        ],
    ]
);
$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: incidunt

Setup Feature

Feature Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/feature/details/d71dc837-9bfd-3dfb-a125-db9521b1f2f1" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/feature/details/d71dc837-9bfd-3dfb-a125-db9521b1f2f1"
);

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/d71dc837-9bfd-3dfb-a125-db9521b1f2f1';
$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: d71dc837-9bfd-3dfb-a125-db9521b1f2f1

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\": \"autem\",
    \"category_id\": 20,
    \"meta_access_content\": [
        []
    ],
    \"id\": \"accusamus\"
}"
const url = new URL(
    "http://localhost/api/v1/master/feature"
);

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

let body = {
    "name": "autem",
    "category_id": 20,
    "meta_access_content": [
        []
    ],
    "id": "accusamus"
};

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' => 'autem',
            'category_id' => 20,
            'meta_access_content' => [
                [],
            ],
            'id' => 'accusamus',
        ],
    ]
);
$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: autem

category_id   integer     

valid of feature category id Example: 20

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: accusamus

Remove Feature

Example request:
curl --request POST \
    "http://localhost/api/v1/master/feature/remove" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"eligendi\"
}"
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": "eligendi"
};

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' => 'eligendi',
        ],
    ]
);
$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: eligendi

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\": \"repellendus\"
}"
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": "repellendus"
};

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' => 'repellendus',
        ],
    ]
);
$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: repellendus

Setup Feature Category

Feature Category Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/feature-category/details/6f3db538-b6ab-31a6-a064-25cb08916685" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/feature-category/details/6f3db538-b6ab-31a6-a064-25cb08916685"
);

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/6f3db538-b6ab-31a6-a064-25cb08916685';
$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: 6f3db538-b6ab-31a6-a064-25cb08916685

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\": \"dolorum\",
    \"id\": \"dolorem\"
}"
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": "dolorum",
    "id": "dolorem"
};

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' => 'dolorum',
            'id' => 'dolorem',
        ],
    ]
);
$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: dolorum

id   string  optional    

uuid if need update or remove name of feature category Example: dolorem

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\": \"laborum\"
}"
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": "laborum"
};

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' => 'laborum',
        ],
    ]
);
$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: laborum

Setup User Category Feature Default

Category Feature Details

Example request:
curl --request GET \
    --get "http://localhost/api/v1/master/user-category-feature-default/details/a0dff416-1a8e-30f5-9499-b1b80e71e816" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/master/user-category-feature-default/details/a0dff416-1a8e-30f5-9499-b1b80e71e816"
);

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/a0dff416-1a8e-30f5-9499-b1b80e71e816';
$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: a0dff416-1a8e-30f5-9499-b1b80e71e816

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\": 4,
    \"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": 4,
    "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' => 4,
                '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: 4

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\": \"facilis\"
}"
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": "facilis"
};

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' => 'facilis',
        ],
    ]
);
$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: facilis

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\": \"quia\"
}"
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": "quia"
};

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' => 'quia',
        ],
    ]
);
$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: quia

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\": \"WSeY\\\"_#\"
}"
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": "WSeY\"_#"
};

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' => 'WSeY"_#',
        ],
    ]
);
$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: WSeY"_#

User Google 2 FA Validation

Example request:
curl --request POST \
    "http://localhost/api/v1/auth/google2fa/validation" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"email\": \"\'[email protected]\'\",
    \"secret\": \"ab\"
}"
const url = new URL(
    "http://localhost/api/v1/auth/google2fa/validation"
);

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

let body = {
    "email": "'[email protected]'",
    "secret": "ab"
};

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

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
x-ratelimit-limit: 5
x-ratelimit-remaining: 4
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Sorry You Unauthenticated Access.."
}
 

Request   

POST api/v1/auth/google2fa/validation

Headers

Authorization        

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

Content-Type        

Example: application/json

Body Parameters

email   string     

The email of the user. Example: '[email protected]'

secret   string     

The google OTP Code of the user. Example: ab

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\": 3
}"
const url = new URL(
    "http://localhost/api/v1/auth/google2fa"
);

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

let body = {
    "status": 3
};

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' => 3,
        ],
    ]
);
$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: 3

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\": \"autem\"
}"
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": "autem"
};

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' => 'autem',
        ],
    ]
);
$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: autem

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\": \"optio\",
    \"user_search\": \"sed\",
    \"is_active\": \"false\",
    \"page_no\": 2
}"
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": "optio",
    "user_search": "sed",
    "is_active": "false",
    "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/user/list';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'property_id' => 'optio',
            'user_search' => 'sed',
            'is_active' => 'false',
            'page_no' => 2,
        ],
    ]
);
$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: optio

user_search   string     

query of name or email. Example: sed

is_active   string  optional    

required. Example: false

Must be one of:
  • true
  • false
page_no   integer  optional    

number of pagination Example: 2

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/3e7011ee-04c2-37bf-a041-1099e9a611f4" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"reiciendis\"
}"
const url = new URL(
    "http://localhost/api/v1/user/detail/3e7011ee-04c2-37bf-a041-1099e9a611f4"
);

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

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

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'http://localhost/api/v1/user/detail/3e7011ee-04c2-37bf-a041-1099e9a611f4';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer ***************************************',
            'Content-Type' => 'application/json',
        ],
        'json' => [
            'id' => 'reiciendis',
        ],
    ]
);
$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: 3e7011ee-04c2-37bf-a041-1099e9a611f4

Body Parameters

id   string     

UUID of User Example: reiciendis

Create / Update User

Example request:
curl --request POST \
    "http://localhost/api/v1/user/editor" \
    --header "Authorization: Bearer ***************************************" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"dolores\",
    \"name\": \"ut\",
    \"email\": \"[email protected]\",
    \"password\": \"l#M:y]*JXCJV\",
    \"user_category_id\": \"aut\",
    \"status\": true,
    \"phone\": \"est\",
    \"timezone_id\": 1,
    \"language_id\": 1
}"
const url = new URL(
    "http://localhost/api/v1/user/editor"
);

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

let body = {
    "id": "dolores",
    "name": "ut",
    "email": "[email protected]",
    "password": "l#M:y]*JXCJV",
    "user_category_id": "aut",
    "status": true,
    "phone": "est",
    "timezone_id": 1,
    "language_id": 1
};

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' => 'dolores',
            'name' => 'ut',
            'email' => '[email protected]',
            'password' => 'l#M:y]*JXCJV',
            'user_category_id' => 'aut',
            'status' => true,
            'phone' => 'est',
            'timezone_id' => 1,
            'language_id' => 1,
        ],
    ]
);
$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: dolores

name   string     

name of User Example: ut

email   string     

email of User Example: [email protected]

password   string     

Password of User, set this parameter if want change the password Example: l#M:y]*JXCJV

user_category_id   string     

uuid user categories of User Example: aut

status   boolean     

status of User if true is active and false deactive Example: true

phone   string     

phone number of User use format +620890090990 Example: est

timezone_id   integer     

timezone uuid of User Example: 1

language_id   integer     

language uuid of User Example: 1

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\": true
}"
const url = new URL(
    "http://localhost/api/v1/user/remove"
);

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

let body = {
    "id": true
};

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' => true,
        ],
    ]
);
$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: true

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\": \"voluptatem\",
    \"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": "voluptatem",
    "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' => 'voluptatem',
                '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: voluptatem

feature_list   object[]  optional    

list of feature

List User features

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/feature/detail/f9273cf7-e17b-3341-ad78-046f93df1461" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/feature/detail/f9273cf7-e17b-3341-ad78-046f93df1461"
);

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/f9273cf7-e17b-3341-ad78-046f93df1461';
$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: f9273cf7-e17b-3341-ad78-046f93df1461

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\": \"deleniti\",
    \"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": "deleniti",
    "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' => 'deleniti',
            '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: deleniti

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/5ada61ec-2fb3-3a61-992a-f313e782b8fa" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/property/lists/5ada61ec-2fb3-3a61-992a-f313e782b8fa"
);

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/5ada61ec-2fb3-3a61-992a-f313e782b8fa';
$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: 5ada61ec-2fb3-3a61-992a-f313e782b8fa

id   string     

uuid of User. Example: et

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\": \"aliquam\",
    \"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": "aliquam",
    "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' => 'aliquam',
            '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: aliquam

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\": true
}"
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": true
};

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' => true,
        ],
    ]
);
$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: true

List User Property Groups

Example request:
curl --request GET \
    --get "http://localhost/api/v1/user/propertygroups/lists/19b3c170-4ef9-37f7-ba34-2976158dc845" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/propertygroups/lists/19b3c170-4ef9-37f7-ba34-2976158dc845"
);

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/19b3c170-4ef9-37f7-ba34-2976158dc845';
$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: 19b3c170-4ef9-37f7-ba34-2976158dc845

id   string     

uuid of User. Example: inventore

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\": \"excepturi\",
    \"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": "excepturi",
    "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' => 'excepturi',
            '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: excepturi

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/c272dd89-77bb-33cf-a7aa-496f5a0c3d73" \
    --header "Authorization: Bearer ***************************************"
const url = new URL(
    "http://localhost/api/v1/user/ipwhitelist/lists/c272dd89-77bb-33cf-a7aa-496f5a0c3d73"
);

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/c272dd89-77bb-33cf-a7aa-496f5a0c3d73';
$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: c272dd89-77bb-33cf-a7aa-496f5a0c3d73