MENU navbar-image

Introduction

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

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

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 visiting your dashboard and clicking Generate API token.

Admin

APIs for Admin Management

Roles

APIs for interacting with roles

Show all permissions to specific rule

requires authentication

This endpoint lets you show all permissions to specific rule

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605/permissions?page=16&per_page=16&filter=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605/permissions"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605/permissions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "019bc852-9579-71b0-9b79-271fe874f88c",
            "name": "Manuela Bode",
            "description": null
        },
        {
            "id": "019bc852-9575-7070-a814-d8133dd1272f",
            "name": "Dr. Brooklyn Stanton",
            "description": null
        },
        {
            "id": "019bc852-956d-71b5-898c-a6e742383056",
            "name": "Nolan Harvey",
            "description": null
        },
        {
            "id": "019bc852-9560-7301-85ab-ff07d0d7093b",
            "name": "Ethyl Legros",
            "description": null
        },
        {
            "id": "019bc852-954e-730a-88c3-8f57623e9de3",
            "name": "Summer Gaylord",
            "description": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/roles/{role_id}/permissions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_id   string   

The ID of the role. Example: 019bc854-7c37-7026-887d-055fa7393605

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter   string  optional  

Field to filter by id,name,description. Example: architecto

sort   string  optional  

Field to sort items by id,name,description. Example: architecto

Edit rule's permissions

requires authentication

This endpoint lets you edit rule's permissions (add,update,delete)

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605/permissions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"permissionIds\": [
        16
    ]
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605/permissions"
);

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

let body = {
    "permissionIds": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605/permissions';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'permissionIds' => [
                16,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The role's permissions updated successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/admin/roles/{role_id}/permissions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

role_id   string   

The ID of the role. Example: 019bc854-7c37-7026-887d-055fa7393605

Body Parameters

permissionIds   integer[]  optional  

List of the permissions Ids.

Show All

requires authentication

This endpoint lets you show all roles

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "019bc852-94c0-7183-81af-bf4a9c9a6380",
            "name": "Kenyatta Olson",
            "description": "Non ipsum laborum libero quia ut ullam accusamus."
        },
        {
            "id": "019bc852-94b7-704d-895f-9bf682ce0a8d",
            "name": "Kamryn Goldner",
            "description": "Excepturi omnis mollitia magni libero qui."
        },
        {
            "id": "019bc852-94aa-721f-b7f3-d7ce563349bb",
            "name": "Mr. Dejon Lowe III",
            "description": "Consequuntur illum sint aut ea."
        },
        {
            "id": "019bc852-949f-716c-a363-e507a09bd923",
            "name": "Miss Mariana Lebsack PhD",
            "description": "Nesciunt aspernatur hic nostrum."
        },
        {
            "id": "019bc852-9498-7232-a35b-3120b3a87c6a",
            "name": "Dr. Olen Parisian Sr.",
            "description": "Voluptas perferendis ab recusandae atque odio."
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/roles

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Add role

requires authentication

This endpoint lets you add role

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles"
);

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

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'description' => 'Et animi quos velit et fugiat.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-99f1-7276-88a4-608e429d926c",
        "name": "Name role",
        "description": "Description role"
    },
    "message": "The role added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/roles

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

description   string  optional  

Must not be greater than 255 characters. Example: Et animi quos velit et fugiat.

Show specific role

requires authentication

This endpoint lets you show specific role

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-968e-700d-a843-e5f98fc84ba6",
        "name": "Gaylord White",
        "description": "Officiis rerum eveniet non."
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/roles/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the role. Example: 019bc854-7c37-7026-887d-055fa7393605

Update specific role

requires authentication

This endpoint lets you update specific role

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"description\": \"Et animi quos velit et fugiat.\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605"
);

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

let body = {
    "name": "b",
    "description": "Et animi quos velit et fugiat."
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'description' => 'Et animi quos velit et fugiat.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-9a71-7100-97de-9aa437e0a860",
        "name": "New Name",
        "description": "New description"
    },
    "message": "The role updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/roles/{id}

PATCH api/v1/admin/roles/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the role. Example: 019bc854-7c37-7026-887d-055fa7393605

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

description   string  optional  

Must not be greater than 255 characters. Example: Et animi quos velit et fugiat.

Delete specific role

requires authentication

This endpoint lets you delete specific role

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/roles/019bc854-7c37-7026-887d-055fa7393605';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The role deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/roles/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the role. Example: 019bc854-7c37-7026-887d-055fa7393605

Users

APIs for user Management

Show all roles to specific user

requires authentication

This endpoint lets you show all roles to specific user

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a/roles?page=16&per_page=16&filter=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a/roles"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a/roles';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "019bc852-af77-7242-82ea-aacee0fccfd1",
            "name": "Mr. Lindsey McGlynn IV",
            "description": "Quos velit corrupti qui."
        },
        {
            "id": "019bc852-af72-7176-ad77-33ab3b08e165",
            "name": "Mrs. Kavon Crist I",
            "description": "Quis et in hic sit."
        },
        {
            "id": "019bc852-af6c-733a-bbec-b4b62429f728",
            "name": "Adela Raynor",
            "description": "Qui ipsum et molestias aut."
        },
        {
            "id": "019bc852-af67-70b0-a02e-073276c1c910",
            "name": "Darrell Bergnaum",
            "description": "Quam doloremque et non reiciendis rem minus."
        },
        {
            "id": "019bc852-af62-710e-8cab-5632d881bd60",
            "name": "Name Jast",
            "description": "Non beatae ea officia temporibus aperiam."
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/users/{user_id}/roles

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter   string  optional  

Field to filter items by id,name,description. Example: architecto

sort   string  optional  

Field to sort items by id,name,description. Example: architecto

Edit user's roles

requires authentication

This endpoint lets you edit user's roles (add,update,delete)

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a/roles" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"role_ids\": [
        16
    ]
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a/roles"
);

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

let body = {
    "role_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a/roles';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'role_ids' => [
                16,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The user's roles updated successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/admin/users/{user_id}/roles

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Body Parameters

role_ids   integer[]  optional  

List of the roles Ids.

Show user's profile

requires authentication

This endpoint lets you show user's authenticated profile

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/profile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/profile"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/profile';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "70f4a9df-1cb9-3112-97c4-52da7c96abb4",
        "name": "Joe Doe",
        "first_name": "joe",
        "last_name": "doe",
        "username": "Test1",
        "email": "[email protected]",
        "phone": "+9639487222",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "type": {
            "key": 1,
            "value": "ADMIN"
        },
        "notes": "Additional notes",
        "image": "http://localhost/storage/users/s38GTpWZUiRmEmckxugmMEwsMOsXLWbM32uqYad3.jpg",
        "has_verified_email": true,
        "has_verified_phone": true,
        "roles": null,
        "company": {
            "id": "bad30cb1-5e12-4e5c-8470-2d5eb6a31fde",
            "name": "Lelah Lakin"
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/profile

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Show all users

requires authentication

This endpoint lets you show all users

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/users?page=16&per_page=16&filter%5Bname%5D=architecto&filter%5Busername%5D=architecto&filter%5Btype%5D=architecto&filter%5Bstatus%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[name]": "architecto",
    "filter[username]": "architecto",
    "filter[type]": "architecto",
    "filter[status]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[name]' => 'architecto',
            'filter[username]' => 'architecto',
            'filter[type]' => 'architecto',
            'filter[status]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "ad245f18-f8ce-360d-8e67-1dcc9d1b7133",
            "name": "Delaney Nolan Prof. Eloy Torphy",
            "first_name": "Delaney Nolan",
            "last_name": "Prof. Eloy Torphy",
            "username": "Mrs. Zula Jones",
            "email": "[email protected]",
            "phone": "+1.810.958.7546",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": null,
            "company": null
        },
        {
            "id": "9fc1059d-96ba-3822-9569-eb99e9d4c362",
            "name": "Dr. Caitlyn Brekke Carmelo Rath",
            "first_name": "Dr. Caitlyn Brekke",
            "last_name": "Carmelo Rath",
            "username": "Jacquelyn Miller",
            "email": "[email protected]",
            "phone": "+1-954-628-2610",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "type": {
                "key": 5,
                "value": "LABORATORY_SUBADMIN"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": null,
            "company": null
        },
        {
            "id": "8eab7d7c-5713-3130-a7bd-78fa732e0124",
            "name": "Prof. Moshe Heidenreich III Miss Nakia Hegmann",
            "first_name": "Prof. Moshe Heidenreich III",
            "last_name": "Miss Nakia Hegmann",
            "username": "Patsy O'Connell",
            "email": "[email protected]",
            "phone": "+1.947.608.3190",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "type": {
                "key": 1,
                "value": "ADMIN"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": null,
            "company": null
        },
        {
            "id": "86de328a-5951-3de5-b97f-560531b895da",
            "name": "Julius Senger Mr. Cornell Wolff",
            "first_name": "Julius Senger",
            "last_name": "Mr. Cornell Wolff",
            "username": "Amy Hegmann",
            "email": "[email protected]",
            "phone": "+1-757-753-2433",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": null,
            "company": null
        },
        {
            "id": "8137ea4c-29fc-3bef-b50b-6cf88ec1726c",
            "name": "Ferne Larson Dr. Westley Nienow II",
            "first_name": "Ferne Larson",
            "last_name": "Dr. Westley Nienow II",
            "username": "Miss Margret Strosin",
            "email": "[email protected]",
            "phone": "+1-650-328-6098",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": null,
            "company": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[name]   string  optional  

Field to filter items by name. Example: architecto

filter[username]   string  optional  

Field to filter items by username. Example: architecto

filter[type]   string  optional  

Field to filter items by type. Example: architecto

filter[status]   string  optional  

Field to filter items by status. Example: architecto

filter[search]   string  optional  

Field to filter items by name, username,type,status. Example: architecto

sort   string  optional  

Field to sort items by status,type. Example: architecto

Add user

requires authentication

This endpoint lets you add user

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "first_name=b"\
    --form "last_name=n"\
    --form "username=g"\
    --form "[email protected]"\
    --form "password=BNvYgxwmi/#iw/kX"\
    --form "type=5"\
    --form "status=1"\
    --form "notes=w"\
    --form "company_id=architecto"\
    --form "is_owner=1"\
    --form "image=@/tmp/phpooGpMl" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users"
);

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

const body = new FormData();
body.append('first_name', 'b');
body.append('last_name', 'n');
body.append('username', 'g');
body.append('email', '[email protected]');
body.append('password', 'BNvYgxwmi/#iw/kX');
body.append('type', '5');
body.append('status', '1');
body.append('notes', 'w');
body.append('company_id', 'architecto');
body.append('is_owner', '1');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'first_name',
                'contents' => 'b'
            ],
            [
                'name' => 'last_name',
                'contents' => 'n'
            ],
            [
                'name' => 'username',
                'contents' => 'g'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'password',
                'contents' => 'BNvYgxwmi/#iw/kX'
            ],
            [
                'name' => 'type',
                'contents' => '5'
            ],
            [
                'name' => 'status',
                'contents' => '1'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'company_id',
                'contents' => 'architecto'
            ],
            [
                'name' => 'is_owner',
                'contents' => '1'
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phpooGpMl', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-be6a-72d6-a49a-923ce72cb921",
        "name": "Test Test",
        "first_name": "Test",
        "last_name": "Test",
        "username": "test_test",
        "email": "[email protected]",
        "phone": "+963994622354",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "type": {
            "key": 3,
            "value": "DOCTOR"
        },
        "notes": null,
        "image": "http://localhost/storage/users/user.png",
        "has_verified_email": false,
        "has_verified_phone": false,
        "roles": [
            {
                "id": "019bc852-bde6-7166-a48b-762d1cde39cc",
                "name": "CLINIC_ADMIN",
                "description": "Aperiam soluta neque exercitationem."
            }
        ],
        "company": {
            "id": "ae027806-1445-4711-bf27-560e94429e3d",
            "name": "Jesse Skiles"
        }
    },
    "message": "The User has been added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

Body Parameters

first_name   string   

Must not be greater than 255 characters. Example: b

last_name   string   

Must not be greater than 255 characters. Example: n

username   string   

Must not be greater than 255 characters. Example: g

email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

phone   string  optional  
password   string   

Must be at least 6 characters. Example: BNvYgxwmi/#iw/kX

image   file  optional  

Must be an image. Must not be greater than 2048 kilobytes. Example: /tmp/phpooGpMl

type   integer   

Example: 5

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
status   integer   

Example: 1

Must be one of:
  • 1
  • 2
notes   string  optional  

Must not be greater than 255 characters. Example: w

company_id   string   

The id of an existing record in the companies table. Example: architecto

is_owner   boolean  optional  

Example: true

Show specific user

requires authentication

This endpoint lets you show specific user

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "f6ed93b4-5a4b-3d67-8931-f370392b69e1",
        "name": "Prof. Eveline Predovic II Bernardo Nicolas",
        "first_name": "Prof. Eveline Predovic II",
        "last_name": "Bernardo Nicolas",
        "username": "Kaylie Reilly PhD",
        "email": "[email protected]",
        "phone": "+1-424-530-7463",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "type": {
            "key": 1,
            "value": "ADMIN"
        },
        "notes": null,
        "image": "http://localhost/storage/users/user.png",
        "has_verified_email": true,
        "has_verified_phone": true,
        "roles": null,
        "company": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Update specific user

requires authentication

This endpoint lets you update specific user

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "first_name=b"\
    --form "last_name=n"\
    --form "username=g"\
    --form "[email protected]"\
    --form "password=BNvYgxwmi/#iw/kX"\
    --form "type=4"\
    --form "status=2"\
    --form "notes=w"\
    --form "is_owner=1"\
    --form "image=@/tmp/phpGCmlCJ" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a"
);

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

const body = new FormData();
body.append('first_name', 'b');
body.append('last_name', 'n');
body.append('username', 'g');
body.append('email', '[email protected]');
body.append('password', 'BNvYgxwmi/#iw/kX');
body.append('type', '4');
body.append('status', '2');
body.append('notes', 'w');
body.append('is_owner', '1');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "PUT",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'first_name',
                'contents' => 'b'
            ],
            [
                'name' => 'last_name',
                'contents' => 'n'
            ],
            [
                'name' => 'username',
                'contents' => 'g'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'password',
                'contents' => 'BNvYgxwmi/#iw/kX'
            ],
            [
                'name' => 'type',
                'contents' => '4'
            ],
            [
                'name' => 'status',
                'contents' => '2'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'is_owner',
                'contents' => '1'
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phpGCmlCJ', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "1dcd0cb4-a213-34de-8541-a80411ae5ee7",
        "name": "Test Test",
        "first_name": "Test",
        "last_name": "test",
        "username": "test_test",
        "email": "[email protected]",
        "phone": "+963994622354",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "type": {
            "key": 3,
            "value": "DOCTOR"
        },
        "notes": null,
        "image": "http://localhost/storage/users/696a942759151.jpg",
        "has_verified_email": true,
        "has_verified_phone": true,
        "roles": null,
        "company": {
            "id": "eccd323d-122e-4cfb-b4b4-3cde250c3c58",
            "name": "Nikolas Lang III"
        }
    },
    "message": "User's information updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/users/{id}

PATCH api/v1/admin/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Body Parameters

first_name   string  optional  

Must not be greater than 255 characters. Example: b

last_name   string  optional  

Must not be greater than 255 characters. Example: n

username   string  optional  

Must not be greater than 255 characters. Example: g

email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

phone   string  optional  
password   string  optional  

Must be at least 6 characters. Example: BNvYgxwmi/#iw/kX

image   file  optional  

Must be an image. Must not be greater than 2048 kilobytes. Example: /tmp/phpGCmlCJ

type   integer  optional  

Example: 4

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
notes   string  optional  

Must not be greater than 255 characters. Example: w

company_id   string  optional  

The id of an existing record in the companies table.

is_owner   boolean  optional  

Example: true

Delete specific user

requires authentication

This endpoint lets you user specific user

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/users/019bc854-81e7-7297-adbc-20ee9bca508a';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The user deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Permissions

APIs for getting permissions

Show All

requires authentication

This endpoint lets you show all permissions

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/permissions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/permissions"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/permissions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "group": "User Management",
            "permissions": [
                {
                    "id": "019bc852-8b5c-73a8-9ca0-8a794d0c4126",
                    "name": "Demond D'Amore"
                },
                {
                    "id": "019bc852-8b72-70e5-ba83-d0c57f2ff682",
                    "name": "Dr. Alexzander Krajcik I"
                },
                {
                    "id": "019bc852-8b80-726d-85b0-cdd1123710c8",
                    "name": "Prof. Valentina Gutmann DVM"
                },
                {
                    "id": "019bc852-8b8e-734c-9764-acfb535e2109",
                    "name": "Vicenta Bahringer"
                },
                {
                    "id": "019bc852-8bae-712c-9bf2-4a9d51784902",
                    "name": "Dr. Santina Rosenbaum"
                }
            ]
        },
        {
            "group": "Role Management",
            "permissions": [
                {
                    "id": "019bc852-8bd2-730a-8ad1-d400a0346e36",
                    "name": "Prof. Janelle Prosacco"
                },
                {
                    "id": "019bc852-8be0-7163-90f4-8fdb57d80db0",
                    "name": "Leonel Walter"
                },
                {
                    "id": "019bc852-8be5-71b9-9a51-c62e207af4b9",
                    "name": "Mabelle Monahan I"
                },
                {
                    "id": "019bc852-8bec-73cb-b7f2-ef58f558ae82",
                    "name": "Demario Huels"
                },
                {
                    "id": "019bc852-8bf0-7069-ac0d-566101086427",
                    "name": "Heber Rempel"
                }
            ]
        },
        {
            "group": "Table Management",
            "permissions": [
                {
                    "id": "019bc852-8c00-7046-969d-4a7b90a0f25b",
                    "name": "Lisette Mohr"
                },
                {
                    "id": "019bc852-8c05-712a-93c5-0ed864554ff0",
                    "name": "Nyah Konopelski"
                },
                {
                    "id": "019bc852-8c09-7046-9310-5ac8e103e4ea",
                    "name": "Isabelle Will"
                },
                {
                    "id": "019bc852-8c0d-71e4-846f-88f58e1f8f23",
                    "name": "Dr. Bradford Howe"
                },
                {
                    "id": "019bc852-8c12-7202-a6a8-da92ce594182",
                    "name": "Jewell Klocko"
                }
            ]
        },
        {
            "group": "",
            "permissions": [
                {
                    "id": "019bc852-8da6-7001-8a54-1f650c5e4c9c",
                    "name": "SHOW_PERMISSIONS"
                }
            ]
        }
    ]
}
 

Request      

GET api/v1/admin/permissions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Show specific permission

requires authentication

This endpoint lets you show specific permission

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/permissions/019bc854-75f5-73e4-9299-2a87938fa0fd" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/permissions/019bc854-75f5-73e4-9299-2a87938fa0fd"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/permissions/019bc854-75f5-73e4-9299-2a87938fa0fd';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-8a4b-72b7-aea7-19a36ee92a2d",
        "name": "Herbert Shields Jr.",
        "description": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/permissions/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the permission. Example: 019bc854-75f5-73e4-9299-2a87938fa0fd

Company

APIs for Company Management

Show all companies

requires authentication

This endpoint lets you show all companies

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/companies?page=16&per_page=16&filter%5Bid%5D=architecto&filter%5Bname%5D=architecto&filter%5Bstatus%5D=architecto&sort=architecto&filter%5Bsearch%5D=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[id]": "architecto",
    "filter[name]": "architecto",
    "filter[status]": "architecto",
    "sort": "architecto",
    "filter[search]": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/companies';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[id]' => 'architecto',
            'filter[name]' => 'architecto',
            'filter[status]' => 'architecto',
            'sort' => 'architecto',
            'filter[search]' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "8a1968e4-9553-43f5-85b7-d87eee08ca03",
            "name": "Desiree Jerde I",
            "name_ar": "Prof. Aimee Rice",
            "url": "[email protected]",
            "abbreviation": "Et voluptas at magni pariatur debitis sed.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "+1-408-430-7910",
            "status": {
                "key": 3,
                "value": "ON_HOLD"
            },
            "email": "[email protected]",
            "address": "2643 Rolfson Lights\nOmerland, AK 60914",
            "address_ar": "540 Cummings Lodge\nPort Javier, CT 05398",
            "users": null
        },
        {
            "id": "89a39668-8975-4281-8f55-c6124a5a8670",
            "name": "Lois Reynolds I",
            "name_ar": "Eleonore O'Conner",
            "url": "[email protected]",
            "abbreviation": "Corporis odit aut vitae et.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "+1-239-217-8978",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "email": "[email protected]",
            "address": "70218 Carlotta Squares Suite 418\nMileshaven, SD 20446",
            "address_ar": "345 Dane Locks Apt. 578\nSonyaland, AL 70503-5731",
            "users": null
        },
        {
            "id": "8007b606-e100-4d86-80f2-b35a0c041df0",
            "name": "Prof. Carli Feeney",
            "name_ar": "Trycia Hilpert",
            "url": "[email protected]",
            "abbreviation": "Facilis natus in eveniet quos.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "+13194389404",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "email": "[email protected]",
            "address": "1520 Chase Course\nCormierhaven, IA 53557",
            "address_ar": "45551 Zachery Common Suite 062\nJudahhaven, HI 65259-8044",
            "users": null
        },
        {
            "id": "78f68792-3dae-4687-abf4-bdc429cc5715",
            "name": "Alene Wisoky V",
            "name_ar": "Kaci Flatley",
            "url": "[email protected]",
            "abbreviation": "Voluptatem iusto vitae qui minus.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "956.578.5337",
            "status": {
                "key": 3,
                "value": "ON_HOLD"
            },
            "email": "[email protected]",
            "address": "5074 Kristin Tunnel Suite 206\nImamouth, AL 82770-5256",
            "address_ar": "297 Hansen Extension\nNorth Justus, WV 83909-5172",
            "users": null
        },
        {
            "id": "74b92b11-3780-4b98-b37d-975ced87b03b",
            "name": "Isai Rice",
            "name_ar": "Sydney Kub",
            "url": "[email protected]",
            "abbreviation": "Hic quam vitae optio delectus architecto.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "+1-386-318-5430",
            "status": {
                "key": 3,
                "value": "ON_HOLD"
            },
            "email": "[email protected]",
            "address": "184 Alyce Manor\nKenyaborough, DE 89017",
            "address_ar": "86543 Madilyn Islands\nEast Hallie, CA 92385",
            "users": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/companies

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[id]   string  optional  

Field to filter items by id. Example: architecto

filter[name]   string  optional  

Field to filter items by name. Example: architecto

filter[status]   string  optional  

Field to filter items by status. Example: architecto

sort   string  optional  

Field to sort items by name,created_at,updated_at. Example: architecto

filter[search]   string  optional  

Field to perform a custom search. Example: architecto

Add Company

requires authentication

This endpoint lets you add company

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=b"\
    --form "name_ar=n"\
    --form "abbreviation=g"\
    --form "url=http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html"\
    --form "[email protected]"\
    --form "phone=architecto"\
    --form "status=3"\
    --form "address=n"\
    --form "address_ar=g"\
    --form "logo=@/tmp/phpcKmbCe" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies"
);

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

const body = new FormData();
body.append('name', 'b');
body.append('name_ar', 'n');
body.append('abbreviation', 'g');
body.append('url', 'http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html');
body.append('email', '[email protected]');
body.append('phone', 'architecto');
body.append('status', '3');
body.append('address', 'n');
body.append('address_ar', 'g');
body.append('logo', document.querySelector('input[name="logo"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/companies';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'name',
                'contents' => 'b'
            ],
            [
                'name' => 'name_ar',
                'contents' => 'n'
            ],
            [
                'name' => 'abbreviation',
                'contents' => 'g'
            ],
            [
                'name' => 'url',
                'contents' => 'http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'phone',
                'contents' => 'architecto'
            ],
            [
                'name' => 'status',
                'contents' => '3'
            ],
            [
                'name' => 'address',
                'contents' => 'n'
            ],
            [
                'name' => 'address_ar',
                'contents' => 'g'
            ],
            [
                'name' => 'logo',
                'contents' => fopen('/tmp/phpcKmbCe', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-6185-7341-b842-98c7ffb648b4",
        "name": "Company Name",
        "name_ar": "Company Name",
        "url": "CompanyName.com",
        "abbreviation": "Company abbreviation",
        "logo": "http://localhost/storage/companies/696a9410b95ba.jpg",
        "phone": "+971555422373",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "email": "[email protected]",
        "address": "Damas",
        "address_ar": "دمشق",
        "users": null
    },
    "message": "The Company added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/companies

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

name_ar   string   

Must not be greater than 255 characters. Example: n

abbreviation   string   

Must not be greater than 255 characters. Example: g

url   string  optional  

Must not be greater than 255 characters. Example: http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html

email   string   

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

phone   string   

Example: architecto

status   integer  optional  

Example: 3

Must be one of:
  • 1
  • 2
  • 3
logo   file  optional  

Must be an image. Must not be greater than 2048 kilobytes. Example: /tmp/phpcKmbCe

address   string  optional  

Must not be greater than 255 characters. Example: n

address_ar   string  optional  

Must not be greater than 255 characters. Example: g

Show Specific Company

requires authentication

This endpoint lets you show specific company

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "0142d4ba-bfd9-4180-b9be-2d924ebcc45b",
        "name": "Dortha Brakus PhD",
        "name_ar": "Dr. Brice Hirthe",
        "url": "[email protected]",
        "abbreviation": "Numquam eius et nisi velit.",
        "logo": "http://localhost/storage/companies/logo.png",
        "phone": "813-762-0285",
        "status": {
            "key": 3,
            "value": "ON_HOLD"
        },
        "email": "[email protected]",
        "address": "1250 Jarret Keys Apt. 426\nCierrafort, MI 31489",
        "address_ar": "5482 Bogan Course Apt. 766\nHintzville, AL 17382",
        "users": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/companies/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Update specific company

requires authentication

This endpoint lets you update specific company

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=b"\
    --form "name_ar=n"\
    --form "abbreviation=g"\
    --form "url=http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html"\
    --form "[email protected]"\
    --form "status=3"\
    --form "address=k"\
    --form "address_ar=c"\
    --form "logo=@/tmp/phpjalLgO" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908"
);

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

const body = new FormData();
body.append('name', 'b');
body.append('name_ar', 'n');
body.append('abbreviation', 'g');
body.append('url', 'http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html');
body.append('email', '[email protected]');
body.append('status', '3');
body.append('address', 'k');
body.append('address_ar', 'c');
body.append('logo', document.querySelector('input[name="logo"]').files[0]);

fetch(url, {
    method: "PUT",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'name',
                'contents' => 'b'
            ],
            [
                'name' => 'name_ar',
                'contents' => 'n'
            ],
            [
                'name' => 'abbreviation',
                'contents' => 'g'
            ],
            [
                'name' => 'url',
                'contents' => 'http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'status',
                'contents' => '3'
            ],
            [
                'name' => 'address',
                'contents' => 'k'
            ],
            [
                'name' => 'address_ar',
                'contents' => 'c'
            ],
            [
                'name' => 'logo',
                'contents' => fopen('/tmp/phpjalLgO', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "a3920376-88c4-4455-8f36-40cabf60a4a2",
        "name": "Company Name",
        "name_ar": "Ms. Sonya Lesch",
        "url": "CompanyName.com",
        "abbreviation": "Company abbreviation",
        "logo": "http://localhost/storage/companies/logo.png",
        "phone": "+971555422373",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "email": "[email protected]",
        "address": "9643 Michel Vista\nSouth Harmon, IL 64015-7360",
        "address_ar": "850 Madilyn Mission Suite 218\nLake Dock, WV 14313",
        "users": null
    },
    "message": "The Company updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/companies/{id}

PATCH api/v1/admin/companies/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

name_ar   string  optional  

Must not be greater than 255 characters. Example: n

abbreviation   string  optional  

Must not be greater than 255 characters. Example: g

url   string  optional  

Must not be greater than 255 characters. Example: http://www.okuneva.com/fugiat-sunt-nihil-accusantium-harum-mollitia.html

email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

phone   string  optional  
status   integer  optional  

Example: 3

Must be one of:
  • 1
  • 2
  • 3
logo   file  optional  

Must be an image. Must not be greater than 2048 kilobytes. Example: /tmp/phpjalLgO

address   string  optional  

Must not be greater than 255 characters. Example: k

address_ar   string  optional  

Must not be greater than 255 characters. Example: c

Delete specific company

requires authentication

This endpoint lets you delete specific company

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019bc854-807c-720a-876a-05ababdfb908';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Company deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/companies/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Plans

APIs for Plans Management

Show all Plans

requires authentication

This endpoint lets you show all plans

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/plans?page=16&per_page=16&filter%5Bid%5D=architecto&filter%5Bname%5D=architecto&filter%5Bperiod%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[id]": "architecto",
    "filter[name]": "architecto",
    "filter[period]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/plans';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[id]' => 'architecto',
            'filter[name]' => 'architecto',
            'filter[period]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "8ba784d7-234c-4f59-b448-4cff8ff5988d",
            "code": "PLANPVV",
            "name": "deleniti dolor",
            "period": {
                "key": 2,
                "value": "YEARLY"
            },
            "price_cents": 18048,
            "currency": {
                "key": 3,
                "value": "AED"
            },
            "features": "{\"users\":2,\"storage\":\"1TB\",\"support\":\"Email only\"}",
            "created_at": "2026-01-16T19:40:12.000000Z"
        },
        {
            "id": "7750db67-87dc-49dc-ac77-55bcc1ada6dc",
            "code": "PLANCUQ",
            "name": "corporis aliquam",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            },
            "price_cents": 14997,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "features": "{\"users\":35,\"storage\":\"1TB\",\"support\":\"Email only\"}",
            "created_at": "2026-01-16T19:40:12.000000Z"
        },
        {
            "id": "7544fd8e-3b4e-48fe-b451-be9884d8ced4",
            "code": "PLANSDH",
            "name": "quo iusto",
            "period": {
                "key": 2,
                "value": "YEARLY"
            },
            "price_cents": 29634,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "features": "{\"users\":31,\"storage\":\"10GB\",\"support\":\"24\\/7 Support\"}",
            "created_at": "2026-01-16T19:40:12.000000Z"
        },
        {
            "id": "607df49f-9924-4971-afb2-168f7f0528e8",
            "code": "PLANBLU",
            "name": "cupiditate soluta",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            },
            "price_cents": 16744,
            "currency": {
                "key": 3,
                "value": "AED"
            },
            "features": "{\"users\":45,\"storage\":\"100GB\",\"support\":\"Email only\"}",
            "created_at": "2026-01-16T19:40:12.000000Z"
        },
        {
            "id": "5ab1777f-5fc5-4669-962c-f4adaad01ee1",
            "code": "PLANGWM",
            "name": "velit impedit",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            },
            "price_cents": 42221,
            "currency": {
                "key": 3,
                "value": "AED"
            },
            "features": "{\"users\":25,\"storage\":\"1TB\",\"support\":\"Email only\"}",
            "created_at": "2026-01-16T19:40:12.000000Z"
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/plans

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[id]   string  optional  

Field to filter items by id. Example: architecto

filter[name]   string  optional  

Field to filter items by name. Example: architecto

filter[period]   string  optional  

Field to filter items by period. Example: architecto

filter[search]   string  optional  

Field to filter items by name. Example: architecto

sort   string  optional  

Field to sort items by period. Example: architecto

Add Plan

requires authentication

This endpoint lets you add plan

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"b\",
    \"name\": \"n\",
    \"period\": 1,
    \"price_cents\": 84,
    \"currency\": 2
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans"
);

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

let body = {
    "code": "b",
    "name": "n",
    "period": 1,
    "price_cents": 84,
    "currency": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/plans';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'code' => 'b',
            'name' => 'n',
            'period' => 1,
            'price_cents' => 84,
            'currency' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-931c-700c-a823-cf00888475e7",
        "code": "TESTPLAN",
        "name": "Test Plan",
        "period": {
            "key": 2,
            "value": "YEARLY"
        },
        "price_cents": 10000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "features": {
            "users": 5,
            "storage": "10GB"
        },
        "created_at": "2026-01-16T19:40:13.000000Z"
    },
    "message": "The Plan added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/plans

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

code   string   

Must not be greater than 50 characters. Example: b

name   string   

Must not be greater than 255 characters. Example: n

period   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
price_cents   integer   

Must be at least 0. Example: 84

currency   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
  • 3
features_json   object  optional  

Show specific Plan

requires authentication

This endpoint lets you show specific plan

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "5a337f94-e559-4b15-bd06-3f24f64dbf63",
        "code": "PLANPVL",
        "name": "aliquid architecto",
        "period": {
            "key": 2,
            "value": "YEARLY"
        },
        "price_cents": 31160,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "features": "{\"users\":4,\"storage\":\"50GB\",\"support\":\"Priority support\"}",
        "created_at": "2026-01-16T19:40:13.000000Z"
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/plans/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the plan. Example: 019bc854-94ae-702e-b101-a5080cb38b62

Update specific plan

requires authentication

This endpoint lets you update specific plan

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"b\",
    \"name\": \"n\",
    \"period\": 2,
    \"price_cents\": 84,
    \"currency\": 1
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62"
);

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

let body = {
    "code": "b",
    "name": "n",
    "period": 2,
    "price_cents": 84,
    "currency": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'code' => 'b',
            'name' => 'n',
            'period' => 2,
            'price_cents' => 84,
            'currency' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "21ed6c98-42c3-4cad-9133-ec0c148c7613",
        "code": "new TESTPLAN",
        "name": "Updated Test Plan",
        "period": {
            "key": 1,
            "value": "MONTHLY"
        },
        "price_cents": 20000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "features": {
            "users": 6,
            "storage": "100GB"
        },
        "created_at": "2026-01-16T19:40:13.000000Z"
    },
    "message": "The Plan updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/plans/{id}

PATCH api/v1/admin/plans/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the plan. Example: 019bc854-94ae-702e-b101-a5080cb38b62

Body Parameters

code   string  optional  

Must not be greater than 50 characters. Example: b

name   string  optional  

Must not be greater than 255 characters. Example: n

period   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
price_cents   integer  optional  

Must be at least 0. Example: 84

currency   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
  • 3
features_json   object  optional  

Delete specific Plan

requires authentication

This endpoint lets you delete specific plan

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/plans/019bc854-94ae-702e-b101-a5080cb38b62';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Plan deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/plans/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the plan. Example: 019bc854-94ae-702e-b101-a5080cb38b62

Subscriptions

APIs for Subscriptions Management

Show all subscriptions

requires authentication

This endpoint lets you show all subscriptions

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions?page=16&per_page=16&filter%5Bid%5D=architecto&filter%5Bsubscription_id%5D=architecto&filter%5Bcompany_id%5D=architecto&filter%5Bend_date%5D=architecto&filter%5Bstart_date%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[id]": "architecto",
    "filter[subscription_id]": "architecto",
    "filter[company_id]": "architecto",
    "filter[end_date]": "architecto",
    "filter[start_date]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[id]' => 'architecto',
            'filter[subscription_id]' => 'architecto',
            'filter[company_id]' => 'architecto',
            'filter[end_date]' => 'architecto',
            'filter[start_date]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "cb855caa-be64-4d0d-a361-1b7e98df3c76",
            "company": {
                "id": "a1048e35-6d56-4b9d-9a75-457fa5491051",
                "name": "Bartholome Braun Jr."
            },
            "plan": {
                "id": "86ed80c7-371e-4906-b939-40af7db66388",
                "code": "PLANNAI",
                "name": "illum fuga",
                "period": {
                    "key": 2,
                    "value": "YEARLY"
                }
            },
            "status": {
                "key": 2,
                "value": "ACTIVE"
            },
            "start_date": "2026-01-17T08:35:38.000000Z",
            "end_date": "2026-05-06T10:48:17.000000Z",
            "next_renewal": null
        },
        {
            "id": "c603ed91-6569-4929-b9fd-bb5caf65e9cf",
            "company": {
                "id": "8711f1fa-5f38-434f-966e-98dce5670b7e",
                "name": "Anastasia Koepp"
            },
            "plan": {
                "id": "f748bc61-353a-4568-8859-74029feadba8",
                "code": "PLANVDC",
                "name": "illum cum",
                "period": {
                    "key": 1,
                    "value": "MONTHLY"
                }
            },
            "status": {
                "key": 1,
                "value": "TRIAL"
            },
            "start_date": "2026-01-17T07:49:21.000000Z",
            "end_date": "2026-12-20T18:55:24.000000Z",
            "next_renewal": null
        },
        {
            "id": "88be17e5-0025-4b63-bf6f-33ae268e8da1",
            "company": {
                "id": "59573e1a-c25d-4f6f-8400-3897e23a65d0",
                "name": "Prof. Ellis Bradtke IV"
            },
            "plan": {
                "id": "d313f0e6-f1a1-42f6-b3e8-35a3c9547cec",
                "code": "PLANGJE",
                "name": "iure et",
                "period": {
                    "key": 2,
                    "value": "YEARLY"
                }
            },
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "start_date": "2026-01-17T15:43:52.000000Z",
            "end_date": "2026-10-25T01:34:14.000000Z",
            "next_renewal": null
        },
        {
            "id": "62158ca1-3ef6-447a-a5f8-0d6b4629d640",
            "company": {
                "id": "c25df808-eaaa-4e6d-962e-d426d0200bdf",
                "name": "Kraig Kreiger DDS"
            },
            "plan": {
                "id": "3e09347e-7b60-4f89-981a-4f5a22039710",
                "code": "PLANGFZ",
                "name": "quisquam commodi",
                "period": {
                    "key": 1,
                    "value": "MONTHLY"
                }
            },
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2026-01-17T15:56:48.000000Z",
            "end_date": "2026-09-13T17:41:42.000000Z",
            "next_renewal": null
        },
        {
            "id": "5659f77d-0ef8-45d6-ba4e-dc5c05f07734",
            "company": {
                "id": "e303d488-24e9-4e40-8ccc-0e454b595e75",
                "name": "Ellen Graham"
            },
            "plan": {
                "id": "e62bcf6c-0762-472d-bbec-9d34cf76f4ed",
                "code": "PLANTHF",
                "name": "enim aliquam",
                "period": {
                    "key": 2,
                    "value": "YEARLY"
                }
            },
            "status": {
                "key": 2,
                "value": "ACTIVE"
            },
            "start_date": "2026-01-17T04:39:02.000000Z",
            "end_date": "2026-09-20T07:36:55.000000Z",
            "next_renewal": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/subscriptions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[id]   string  optional  

Field to filter items by id. Example: architecto

filter[subscription_id]   string  optional  

Field to filter items by subscription id. Example: architecto

filter[company_id]   string  optional  

Field to filter items by company id. Example: architecto

filter[end_date]   string  optional  

Field to filter items by end_date. Example: architecto

filter[start_date]   string  optional  

Field to filter items by start_date. Example: architecto

filter[search]   string  optional  

Field to filter items by name. Example: architecto

sort   string  optional  

Field to sort items by start_date,end_date. Example: architecto

Add subscription

requires authentication

This endpoint lets you add subscription

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"company_id\": \"architecto\",
    \"plan_id\": \"architecto\",
    \"start_date\": \"2052-02-09\",
    \"end_date\": \"2052-02-09\",
    \"next_renewal\": \"2052-02-09\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions"
);

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

let body = {
    "company_id": "architecto",
    "plan_id": "architecto",
    "start_date": "2052-02-09",
    "end_date": "2052-02-09",
    "next_renewal": "2052-02-09"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'company_id' => 'architecto',
            'plan_id' => 'architecto',
            'start_date' => '2052-02-09',
            'end_date' => '2052-02-09',
            'next_renewal' => '2052-02-09',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-a9ea-7216-a1ce-d0aeba0eca57",
        "company": {
            "id": "b1cfb4be-1ec0-4d27-a942-e1bea39ee793",
            "name": "Dr. Justyn Yundt"
        },
        "plan": {
            "id": "07ca33f8-455d-437f-8459-c4a66f5e7243",
            "code": "PLANOXF",
            "name": "cumque non",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            }
        },
        "status": {
            "key": 1,
            "value": "TRIAL"
        },
        "start_date": "2026-01-16T00:00:00.000000Z",
        "end_date": "2027-01-16T00:00:00.000000Z",
        "next_renewal": null
    },
    "message": "The Subscription added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/subscriptions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

company_id   string   

The id of an existing record in the companies table. Example: architecto

plan_id   string   

The id of an existing record in the plans table. Example: architecto

start_date   string   

Must be a valid date. Must be a date after or equal to today. Example: 2052-02-09

end_date   string  optional  

Must be a valid date. Must be a date after start_date. Example: 2052-02-09

next_renewal   string  optional  

Must be a valid date. Must be a date after or equal to start_date. Example: 2052-02-09

Show specific subscription

requires authentication

This endpoint lets you show specific subscription

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "f420b3b7-0bb9-4bdb-a662-f822bf4b0ce1",
        "company": {
            "id": "48f29644-b7bb-4dad-8f6c-5fd1f3848439",
            "name": "Jaden Spencer DVM"
        },
        "plan": {
            "id": "ebf9ba49-02d0-4c48-b956-8cdbd59cb818",
            "code": "PLANOBE",
            "name": "mollitia neque",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            }
        },
        "status": {
            "key": 1,
            "value": "TRIAL"
        },
        "start_date": "2026-01-17T10:01:40.000000Z",
        "end_date": "2027-01-13T10:11:48.000000Z",
        "next_renewal": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/subscriptions/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

Update specific subscription

requires authentication

This endpoint lets you update specific subscription

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2052-02-09\",
    \"end_date\": \"2052-02-09\",
    \"status\": 3
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26"
);

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

let body = {
    "start_date": "2052-02-09",
    "end_date": "2052-02-09",
    "status": 3
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'start_date' => '2052-02-09',
            'end_date' => '2052-02-09',
            'status' => 3,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "e2e6cab5-ae7c-4982-b4f8-59dff1e87231",
        "company": {
            "id": "e4763c7c-4337-47c7-a191-50ca154304c1",
            "name": "Jaclyn Walker DVM"
        },
        "plan": {
            "id": "d113170e-4143-4dee-b199-89b769062285",
            "code": "PLANIJA",
            "name": "dolorem repellat",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            }
        },
        "status": {
            "key": 2,
            "value": "ACTIVE"
        },
        "start_date": "2026-01-16T00:00:00.000000Z",
        "end_date": "2027-01-16T00:00:00.000000Z",
        "next_renewal": null
    },
    "message": "The Subscription updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/subscriptions/{id}

PATCH api/v1/admin/subscriptions/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

Body Parameters

company_id   string  optional  

The id of an existing record in the companies table.

plan_id   string  optional  

The id of an existing record in the plans table.

start_date   string  optional  

Must be a valid date. Must be a date after or equal to today. Example: 2052-02-09

end_date   string  optional  

Must be a valid date. Must be a date after start_date. Example: 2052-02-09

status   integer  optional  

Example: 3

Must be one of:
  • 1
  • 2
  • 3
  • 4

Delete specific subscription

requires authentication

This endpoint lets you delete specific subscription

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Subscription deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/subscriptions/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

Invoices

APIs for Invoices Management

Show all invoices in a specific subscription

requires authentication

This endpoint lets you show all invoices in a specific subscription.

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices?page=16&per_page=16&filter%5Bid%5D=architecto&filter%5Bsubscription_id%5D=architecto&filter%5Bcompany_id%5D=architecto&filter%5Bperiod_start%5D=architecto&filter%5Bperiod_end%5D=architecto&filter%5Bamount_cents%5D=16&filter%5Bstatus%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[id]": "architecto",
    "filter[subscription_id]": "architecto",
    "filter[company_id]": "architecto",
    "filter[period_start]": "architecto",
    "filter[period_end]": "architecto",
    "filter[amount_cents]": "16",
    "filter[status]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[id]' => 'architecto',
            'filter[subscription_id]' => 'architecto',
            'filter[company_id]' => 'architecto',
            'filter[period_start]' => 'architecto',
            'filter[period_end]' => 'architecto',
            'filter[amount_cents]' => '16',
            'filter[status]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "019bc852-79ed-737b-bcd8-e98ff3f6b5ac",
            "period_start": "2026-01-16T19:40:06.000000Z",
            "period_end": "2026-02-16T19:40:06.000000Z",
            "amount_cents": 77629,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2026-01-16T19:40:06.000000Z",
            "due_at": "2026-01-23T19:40:06.000000Z",
            "company": {
                "id": "2eaa740e-aa0b-4f33-a04a-249d1bc0e1bb",
                "name": "Jerald Nolan"
            },
            "subscription": {
                "id": "11638634-2758-4050-afb7-6f103f113f32",
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                },
                "start_date": "2026-01-16T23:53:34.000000Z",
                "end_date": "2026-04-14T12:01:19.000000Z"
            },
            "payments": null
        },
        {
            "id": "019bc852-79e7-7154-b6a3-c0ddd4517bd6",
            "period_start": "2026-01-16T19:40:06.000000Z",
            "period_end": "2026-02-16T19:40:06.000000Z",
            "amount_cents": 69979,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2026-01-16T19:40:06.000000Z",
            "due_at": "2026-01-23T19:40:06.000000Z",
            "company": {
                "id": "72228029-156a-4d4c-86b0-71e143f5c577",
                "name": "Jamey Jones"
            },
            "subscription": {
                "id": "11638634-2758-4050-afb7-6f103f113f32",
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                },
                "start_date": "2026-01-16T23:53:34.000000Z",
                "end_date": "2026-04-14T12:01:19.000000Z"
            },
            "payments": null
        },
        {
            "id": "019bc852-79e3-7332-a618-29492d44137d",
            "period_start": "2026-01-16T19:40:06.000000Z",
            "period_end": "2026-02-16T19:40:06.000000Z",
            "amount_cents": 2582,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2026-01-16T19:40:06.000000Z",
            "due_at": "2026-01-23T19:40:06.000000Z",
            "company": {
                "id": "9ed4443e-6ac1-4884-98b6-29190275c6d8",
                "name": "Prof. Adrianna O'Keefe"
            },
            "subscription": {
                "id": "11638634-2758-4050-afb7-6f103f113f32",
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                },
                "start_date": "2026-01-16T23:53:34.000000Z",
                "end_date": "2026-04-14T12:01:19.000000Z"
            },
            "payments": null
        },
        {
            "id": "019bc852-79dd-73bf-949b-b0a11cf8559a",
            "period_start": "2026-01-16T19:40:06.000000Z",
            "period_end": "2026-02-16T19:40:06.000000Z",
            "amount_cents": 74064,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2026-01-16T19:40:06.000000Z",
            "due_at": "2026-01-23T19:40:06.000000Z",
            "company": {
                "id": "44f6fc07-56ee-490a-bc02-57327d80b8c7",
                "name": "Francisca Nader"
            },
            "subscription": {
                "id": "11638634-2758-4050-afb7-6f103f113f32",
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                },
                "start_date": "2026-01-16T23:53:34.000000Z",
                "end_date": "2026-04-14T12:01:19.000000Z"
            },
            "payments": null
        },
        {
            "id": "019bc852-79d8-707e-ab6e-9aff1a8b1a57",
            "period_start": "2026-01-16T19:40:06.000000Z",
            "period_end": "2026-02-16T19:40:06.000000Z",
            "amount_cents": 41194,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2026-01-16T19:40:06.000000Z",
            "due_at": "2026-01-23T19:40:06.000000Z",
            "company": {
                "id": "4cc8581b-3972-4662-8569-b7668616e024",
                "name": "Ruth O'Connell DDS"
            },
            "subscription": {
                "id": "11638634-2758-4050-afb7-6f103f113f32",
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                },
                "start_date": "2026-01-16T23:53:34.000000Z",
                "end_date": "2026-04-14T12:01:19.000000Z"
            },
            "payments": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/subscriptions/{subscription_id}/invoices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Items per page. Defaults to 15. Example: 16

filter[id]   string  optional  

Filter invoices by id. Example: architecto

filter[subscription_id]   string  optional  

Filter invoices by subscription id. Example: architecto

filter[company_id]   string  optional  

Filter invoices by company id. Example: architecto

filter[period_start]   string  optional  

date Filter invoices by start date. Example: architecto

filter[period_end]   string  optional  

date Filter invoices by end date. Example: architecto

filter[amount_cents]   integer  optional  

Filter invoices by amount in cents. Example: 16

filter[status]   string  optional  

Filter invoices by status. Example: architecto

filter[search]   string  optional  

Search by company name. Example: architecto

sort   string  optional  

Sort by period_start, period_end, amount_cents, or status. Example: architecto

Add invoice in specific subscription

requires authentication

This endpoint lets you add invoice in specific subscription

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"subscription_id\": \"architecto\",
    \"company_id\": \"architecto\",
    \"period_start\": \"2026-01-16T19:42:26\",
    \"period_end\": \"2052-02-09\",
    \"amount_cents\": 39,
    \"currency\": \"architecto\",
    \"issued_at\": \"2026-01-16T19:42:26\",
    \"due_at\": \"2052-02-09\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices"
);

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

let body = {
    "subscription_id": "architecto",
    "company_id": "architecto",
    "period_start": "2026-01-16T19:42:26",
    "period_end": "2052-02-09",
    "amount_cents": 39,
    "currency": "architecto",
    "issued_at": "2026-01-16T19:42:26",
    "due_at": "2052-02-09"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'subscription_id' => 'architecto',
            'company_id' => 'architecto',
            'period_start' => '2026-01-16T19:42:26',
            'period_end' => '2052-02-09',
            'amount_cents' => 39,
            'currency' => 'architecto',
            'issued_at' => '2026-01-16T19:42:26',
            'due_at' => '2052-02-09',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-8123-739c-b732-93d5f1659c58",
        "period_start": "2026-01-16T00:00:00.000000Z",
        "period_end": "2026-02-16T00:00:00.000000Z",
        "amount_cents": 15000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 1,
            "value": "DRAFT"
        },
        "issued_at": "2026-01-16T19:40:08.000000Z",
        "due_at": null,
        "company": {
            "id": "26367d47-5e32-49c4-bb95-7c2396fda0b6",
            "name": "Beatrice Welch"
        },
        "subscription": {
            "id": "fac608b7-35d6-4065-86c3-e50c112ab1aa",
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "start_date": "2026-01-16T23:18:44.000000Z",
            "end_date": "2027-01-12T05:34:30.000000Z"
        },
        "payments": null
    },
    "message": "The Invoice added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/subscriptions/{subscription_id}/invoices

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

Body Parameters

subscription_id   string   

The id of an existing record in the subscriptions table. Example: architecto

company_id   string   

The id of an existing record in the companies table. Example: architecto

period_start   string   

Must be a valid date. Example: 2026-01-16T19:42:26

period_end   string   

Must be a valid date. Must be a date after or equal to period_start. Example: 2052-02-09

amount_cents   integer   

Must be at least 0. Example: 39

currency   string   

Example: architecto

issued_at   string  optional  

Must be a valid date. Example: 2026-01-16T19:42:26

due_at   string  optional  

Must be a valid date. Must be a date after or equal to period_start. Example: 2052-02-09

Show specific invoice

requires authentication

This endpoint lets you show specific subscription

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-7ae5-70ad-9477-70cfedd36bf1",
        "period_start": "2026-01-16T19:40:07.000000Z",
        "period_end": "2026-02-16T19:40:07.000000Z",
        "amount_cents": 91009,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 1,
            "value": "DRAFT"
        },
        "issued_at": "2026-01-16T19:40:07.000000Z",
        "due_at": "2026-01-23T19:40:07.000000Z",
        "company": {
            "id": "c33f61b2-9231-4a83-a2a6-c9969b7b5e88",
            "name": "Marilou Kessler"
        },
        "subscription": {
            "id": "a3f79900-906a-4b99-9737-f09b32810e8b",
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "start_date": "2026-01-17T05:27:23.000000Z",
            "end_date": "2026-04-01T01:35:21.000000Z"
        },
        "payments": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/subscriptions/{subscription_id}/invoices/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

Update specific invoice in specific subscription

requires authentication

This endpoint lets you update invoice in specific subscription

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"period_start\": \"2026-01-16T19:42:26\",
    \"period_end\": \"2052-02-09\",
    \"amount_cents\": 39,
    \"currency\": 2,
    \"status\": 1,
    \"issued_at\": \"2026-01-16T19:42:26\",
    \"due_at\": \"2052-02-09\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c"
);

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

let body = {
    "period_start": "2026-01-16T19:42:26",
    "period_end": "2052-02-09",
    "amount_cents": 39,
    "currency": 2,
    "status": 1,
    "issued_at": "2026-01-16T19:42:26",
    "due_at": "2052-02-09"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'period_start' => '2026-01-16T19:42:26',
            'period_end' => '2052-02-09',
            'amount_cents' => 39,
            'currency' => 2,
            'status' => 1,
            'issued_at' => '2026-01-16T19:42:26',
            'due_at' => '2052-02-09',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-7d34-70f6-8cb1-dc3ab9c6e0f5",
        "period_start": "2026-01-16T19:40:07.000000Z",
        "period_end": "2026-02-16T19:40:07.000000Z",
        "amount_cents": 10000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 3,
            "value": "PAID"
        },
        "issued_at": "2026-01-16T19:40:07.000000Z",
        "due_at": "2026-01-23T19:40:07.000000Z",
        "company": {
            "id": "a9af1608-b054-46df-a96f-95767d79dfae",
            "name": "Glenda Stanton DVM"
        },
        "subscription": {
            "id": "e811d015-27cd-4d74-8f83-05db66afad2b",
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2026-01-17T04:15:54.000000Z",
            "end_date": "2026-11-15T16:12:36.000000Z"
        },
        "payments": null
    },
    "message": "The Invoice updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/subscriptions/{subscription_id}/invoices/{id}

PATCH api/v1/admin/subscriptions/{subscription_id}/invoices/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

Body Parameters

period_start   string  optional  

Must be a valid date. Example: 2026-01-16T19:42:26

period_end   string  optional  

Must be a valid date. Must be a date after or equal to period_start. Example: 2052-02-09

amount_cents   integer  optional  

Must be at least 0. Example: 39

currency   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
  • 3
status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
issued_at   string  optional  

Must be a valid date. Example: 2026-01-16T19:42:26

due_at   string  optional  

Must be a valid date. Must be a date after or equal to period_start. Example: 2052-02-09

Delete specific invoice in specific subscription

requires authentication

This endpoint lets you delete specific invoice in specific subscription

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Invoice deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/subscriptions/{subscription_id}/invoices/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

Show all payments for a specific invoice

requires authentication

This endpoint lets you list all payments for a specific invoice.

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments?page=16&per_page=16&filter%5Bid%5D=architecto&filter%5Binvoice_id%5D=architecto&filter%5Bcompany_id%5D=architecto&filter%5Bamount_cents%5D=16&filter%5Bcurrency%5D=architecto&filter%5Bmethod%5D=architecto&filter%5Bpaid_at%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[id]": "architecto",
    "filter[invoice_id]": "architecto",
    "filter[company_id]": "architecto",
    "filter[amount_cents]": "16",
    "filter[currency]": "architecto",
    "filter[method]": "architecto",
    "filter[paid_at]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[id]' => 'architecto',
            'filter[invoice_id]' => 'architecto',
            'filter[company_id]' => 'architecto',
            'filter[amount_cents]' => '16',
            'filter[currency]' => 'architecto',
            'filter[method]' => 'architecto',
            'filter[paid_at]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "019bc852-8796-721d-9459-3f36998b7b6e",
            "invoice": {
                "id": "019bc852-8177-71cc-b795-3f56862bbc3a",
                "period_start": "2026-01-16T19:40:08.000000Z",
                "period_end": "2026-02-16T19:40:08.000000Z",
                "amount_cents": 13407,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "84bac8f0-819b-411a-825e-68f4c913d5f6",
                "name": "Norval Hane III"
            },
            "amount_cents": 99520,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2026-01-16T19:40:09.000000Z",
            "reference": "totam",
            "created_at": "2026-01-16T19:40:10.000000Z"
        },
        {
            "id": "019bc852-878b-71c6-b15c-8229fbde4bf1",
            "invoice": {
                "id": "019bc852-8177-71cc-b795-3f56862bbc3a",
                "period_start": "2026-01-16T19:40:08.000000Z",
                "period_end": "2026-02-16T19:40:08.000000Z",
                "amount_cents": 13407,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "6ec94017-4048-426c-9eda-b44e16ebaadd",
                "name": "Antonio Weissnat DVM"
            },
            "amount_cents": 16383,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2026-01-16T19:40:09.000000Z",
            "reference": "molestiae",
            "created_at": "2026-01-16T19:40:10.000000Z"
        },
        {
            "id": "019bc852-8782-72a9-9e62-37cdd56837bd",
            "invoice": {
                "id": "019bc852-8177-71cc-b795-3f56862bbc3a",
                "period_start": "2026-01-16T19:40:08.000000Z",
                "period_end": "2026-02-16T19:40:08.000000Z",
                "amount_cents": 13407,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "6096ae1c-4003-4a37-89eb-7cff477e17c6",
                "name": "Morris Howe"
            },
            "amount_cents": 3097,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2026-01-16T19:40:09.000000Z",
            "reference": "sed",
            "created_at": "2026-01-16T19:40:10.000000Z"
        },
        {
            "id": "019bc852-8779-70ac-a919-59c2149a0cea",
            "invoice": {
                "id": "019bc852-8177-71cc-b795-3f56862bbc3a",
                "period_start": "2026-01-16T19:40:08.000000Z",
                "period_end": "2026-02-16T19:40:08.000000Z",
                "amount_cents": 13407,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "282dbb48-2683-476a-8cf4-9a1ce8f2c840",
                "name": "Sonny Rath"
            },
            "amount_cents": 65678,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2026-01-16T19:40:09.000000Z",
            "reference": "adipisci",
            "created_at": "2026-01-16T19:40:10.000000Z"
        },
        {
            "id": "019bc852-8772-7351-ab40-669dd15de8eb",
            "invoice": {
                "id": "019bc852-8177-71cc-b795-3f56862bbc3a",
                "period_start": "2026-01-16T19:40:08.000000Z",
                "period_end": "2026-02-16T19:40:08.000000Z",
                "amount_cents": 13407,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "3f7dd8b6-e958-4450-b38b-05293f7fb920",
                "name": "Prof. Jarvis Treutel"
            },
            "amount_cents": 92165,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2026-01-16T19:40:09.000000Z",
            "reference": "minima",
            "created_at": "2026-01-16T19:40:10.000000Z"
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/subscriptions/{subscription_id}/invoices/{invoice_id}/invoice_payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

invoice_id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Items per page. Defaults to 15. Example: 16

filter[id]   string  optional  

Filter payments by id. Example: architecto

filter[invoice_id]   string  optional  

Filter payments by invoice id. Example: architecto

filter[company_id]   string  optional  

Filter payments by company id. Example: architecto

filter[amount_cents]   integer  optional  

Filter payments by amount in cents. Example: 16

filter[currency]   string  optional  

Filter payments by currency. Example: architecto

filter[method]   string  optional  

Filter payments by payment method. Example: architecto

filter[paid_at]   string  optional  

date Filter payments by paid_at. Example: architecto

filter[search]   string  optional  

Search by company name. Example: architecto

sort   string  optional  

Sort by amount_cents, currency, method, or paid_at. Example: architecto

Store a new payment for an invoice

requires authentication

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount_cents\": 16,
    \"currency\": \"architecto\",
    \"method\": \"architecto\",
    \"paid_at\": \"architecto\",
    \"reference\": \"architecto\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments"
);

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

let body = {
    "amount_cents": 16,
    "currency": "architecto",
    "method": "architecto",
    "paid_at": "architecto",
    "reference": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount_cents' => 16,
            'currency' => 'architecto',
            'method' => 'architecto',
            'paid_at' => 'architecto',
            'reference' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-8640-7134-abff-a923a80da221",
        "invoice": {
            "id": "019bc852-85d2-7277-92eb-41910e424643",
            "period_start": "2026-01-16T19:40:10.000000Z",
            "period_end": "2026-02-16T19:40:10.000000Z",
            "amount_cents": 70975,
            "status": {
                "key": 1,
                "value": "DRAFT"
            }
        },
        "company": {
            "id": "edcbae64-c598-48f5-9028-64dd27f4f675",
            "name": "Prof. Brendon Boyle"
        },
        "amount_cents": 20000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "method": {
            "key": 2,
            "value": "BANK"
        },
        "paid_at": "2026-01-16T19:40:10.000000Z",
        "reference": "TXN-696a941a1151e",
        "created_at": "2026-01-16T19:40:10.000000Z"
    },
    "message": "The Invoice Payment added successfully",
    "status_code": 200
}
 

Request      

POST api/v1/admin/subscriptions/{subscription_id}/invoices/{invoice_id}/invoice_payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

invoice_id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

Body Parameters

amount_cents   integer   

Payment amount in cents. Example: 16

currency   string  optional  

Currency code. Example: architecto

method   string  optional  

Payment method (cash, card, bank, transfer) required. Example: architecto

paid_at   datetime  optional  

Payment date. Example: architecto

reference   string  optional  

Payment reference. Example: architecto

Show specific payment for a specific invoice

requires authentication

This endpoint lets you show payment for a specific invoice

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-7ae5-70ad-9477-70cfedd36bf1",
        "period_start": "2026-01-16T19:40:07.000000Z",
        "period_end": "2026-02-16T19:40:07.000000Z",
        "amount_cents": 91009,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 1,
            "value": "DRAFT"
        },
        "issued_at": "2026-01-16T19:40:07.000000Z",
        "due_at": "2026-01-23T19:40:07.000000Z",
        "company": {
            "id": "c33f61b2-9231-4a83-a2a6-c9969b7b5e88",
            "name": "Marilou Kessler"
        },
        "subscription": {
            "id": "a3f79900-906a-4b99-9737-f09b32810e8b",
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "start_date": "2026-01-17T05:27:23.000000Z",
            "end_date": "2026-04-01T01:35:21.000000Z"
        },
        "payments": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/subscriptions/{subscription_id}/invoices/{invoice_id}/invoice_payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

invoice_id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

id   string   

The ID of the invoice payment. Example: 019bc854-95cf-715a-aaae-e24d94f35f29

Update specific payment for a specific invoice

requires authentication

This endpoint lets you update payment for a specific invoice

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount_cents\": 16,
    \"currency\": 1,
    \"method\": 3,
    \"paid_at\": \"2026-01-16T19:42:26\",
    \"reference\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29"
);

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

let body = {
    "amount_cents": 16,
    "currency": 1,
    "method": 3,
    "paid_at": "2026-01-16T19:42:26",
    "reference": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount_cents' => 16,
            'currency' => 1,
            'method' => 3,
            'paid_at' => '2026-01-16T19:42:26',
            'reference' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-8989-728e-b1d0-83fd4edba554",
        "invoice": {
            "id": "019bc852-88c1-701c-b5fe-3f603ffeddea",
            "period_start": "2026-01-16T19:40:10.000000Z",
            "period_end": "2026-02-16T19:40:10.000000Z",
            "amount_cents": 62352,
            "status": {
                "key": 1,
                "value": "DRAFT"
            }
        },
        "company": {
            "id": "570eda5f-871b-4baa-a7f4-11451895007f",
            "name": "Christophe Zieme"
        },
        "amount_cents": 20000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "method": {
            "key": 4,
            "value": "TRANSFER"
        },
        "paid_at": "2026-01-16T19:40:11.000000Z",
        "reference": "UPDATED-REF-123",
        "created_at": "2026-01-16T19:40:11.000000Z"
    },
    "message": "The Invoice Payment updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/subscriptions/{subscription_id}/invoices/{invoice_id}/invoice_payments/{id}

PATCH api/v1/admin/subscriptions/{subscription_id}/invoices/{invoice_id}/invoice_payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

invoice_id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

id   string   

The ID of the invoice payment. Example: 019bc854-95cf-715a-aaae-e24d94f35f29

Body Parameters

amount_cents   integer  optional  

Must be at least 1. Example: 16

currency   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
  • 3
method   integer  optional  

Example: 3

Must be one of:
  • 1
  • 2
  • 3
  • 4
paid_at   string  optional  

Must be a valid date. Example: 2026-01-16T19:42:26

reference   string  optional  

Must not be greater than 100 characters. Example: n

Delete specific payment for a specific invoice

requires authentication

This endpoint lets you delete specific payment for a specific invoice

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019bc854-94df-72f6-a38a-46c3eb651d26/invoices/019bc854-9518-72f7-9187-87099034763c/invoice_payments/019bc854-95cf-715a-aaae-e24d94f35f29';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Payment deleted successfully",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/subscriptions/{subscription_id}/invoices/{invoice_id}/invoice_payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

subscription_id   string   

The ID of the subscription. Example: 019bc854-94df-72f6-a38a-46c3eb651d26

invoice_id   string   

The ID of the invoice. Example: 019bc854-9518-72f7-9187-87099034763c

id   string   

The ID of the invoice payment. Example: 019bc854-95cf-715a-aaae-e24d94f35f29

Appointment

APIs for Appointment Management

Payments

APIs for Payments Management

Add Payment for specific appointment

requires authentication

This endpoint lets you add payment payment

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e/payments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e/payments"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e/payments';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-cc8b-736b-8b63-f69bee83c877",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "82c1ffdb-d1dc-3bd2-925f-7c475d4006b3",
            "name": "Kirk Orn Elenora Jast"
        },
        "created_at": "2026-01-16T19:40:28.000000Z",
        "patient": {
            "id": "ddccfbf0-aca7-4ff6-8b1e-56f9abcc898a",
            "name": "Danielle Gerhold Karine Bosco",
            "balance": 200
        },
        "appointment": {
            "id": "b7465fbb-3b2e-4de6-b234-810e43f3e51c",
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "total_amount": 250,
            "paid_amount": 200,
            "remaining_amount": 50
        }
    },
    "message": "The Payment has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/appointments/{appointment_id}/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

appointment_id   string   

The ID of the appointment. Example: 019bc854-9398-70f6-931d-0aaa7efaca2e

Body Parameters

amount   integer   

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Update Payment for specific appointment

requires authentication

This endpoint lets you update specific payment

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "6d27696d-83d2-4311-aba3-8b88df08a3ae",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "d09c3d26-2117-3528-899c-6cb63072ba01",
            "name": "Ms. Katharina Dach Douglas Friesen"
        },
        "created_at": "2026-01-16T19:40:28.000000Z",
        "patient": {
            "id": "85503ed4-b470-451c-a3b2-a3220cbfdd5b",
            "name": "Adella McLaughlin Waylon Vandervort",
            "balance": 0
        },
        "appointment": {
            "id": "2f1ba478-5042-42c8-8074-06c03df48223",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 250,
            "paid_amount": 200,
            "remaining_amount": 50
        }
    },
    "message": "The Payment has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/appointments/{appointment_id}/payments/{payment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

appointment_id   string   

The ID of the appointment. Example: 019bc854-9398-70f6-931d-0aaa7efaca2e

payment_id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Body Parameters

amount   integer  optional  

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Company

APIs for Company Management

payments

APIs for payments Management

Show all payments in specific company

requires authentication

This endpoint lets you show all payments in specific company

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/payments?page=16&per_page=16&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/payments"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/payments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "936a7dd3-07a4-4a38-a1a8-610cf63b3104",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "68ac338d-3bf0-3e51-b7c8-c4c85db7719b",
                "name": "Noelia Ruecker Sydni Schumm"
            },
            "created_at": "2026-01-16T19:40:54.000000Z",
            "patient": {
                "id": "591d5583-c000-47f7-8eae-da07382ae0f6",
                "name": "Miss Madelynn Reilly II Jamil Kovacek II",
                "balance": 0
            },
            "appointment": {
                "id": "a610ccae-9a17-4a05-8373-84de3f107e5c",
                "status": {
                    "key": 2,
                    "value": "SCHEDULED"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "80f1e510-9e27-412f-8891-67e0d1536f11",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "ff9ffcc8-54d1-3b63-81d6-c24a01b0c038",
                "name": "Cindy Hartmann III Marielle Bins DVM"
            },
            "created_at": "2026-01-16T19:40:55.000000Z",
            "patient": {
                "id": "eaecb06f-e459-4bbb-b5b7-4d7bcf5382a5",
                "name": "Shanel Funk Nikita Purdy II",
                "balance": 0
            },
            "appointment": {
                "id": "3bb7349e-ad56-4cc6-b9d7-b49b1ad65b20",
                "status": {
                    "key": 3,
                    "value": "PROCESSING"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "6b046dcb-cb26-4a9c-a865-337cdf597351",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "f2db0b5e-61bb-3321-8a62-d0dab0d817e8",
                "name": "Kaley Strosin Sr. Lurline Blick IV"
            },
            "created_at": "2026-01-16T19:40:54.000000Z",
            "patient": {
                "id": "e9e1bc69-929c-4bf3-908d-442657675647",
                "name": "Kameron Will Kelly Wolff",
                "balance": 0
            },
            "appointment": {
                "id": "6dfd6ede-6220-4864-b0f2-f4423e90774c",
                "status": {
                    "key": 3,
                    "value": "PROCESSING"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "683d3a52-380b-4438-8b85-a1633bfc228f",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "a6ebef28-6563-36bb-8549-782582786e02",
                "name": "Savion Bauch V Ms. Alvina Kautzer"
            },
            "created_at": "2026-01-16T19:40:55.000000Z",
            "patient": {
                "id": "e9e1bc69-929c-4bf3-908d-442657675647",
                "name": "Kameron Will Kelly Wolff",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "37be11c0-b142-4f93-8581-6066886e88a3",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "f83dfb44-cf52-3a36-9ce2-4ab2cfbd9207",
                "name": "Prof. Andy Smitham Ms. Alana Schamberger IV"
            },
            "created_at": "2026-01-16T19:40:56.000000Z",
            "patient": {
                "id": "eaecb06f-e459-4bbb-b5b7-4d7bcf5382a5",
                "name": "Shanel Funk Nikita Purdy II",
                "balance": 0
            },
            "appointment": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[search]   string  optional  

Field to filter items by first_name,last_name for patient. Example: architecto

sort   string  optional  

Field to sort items by created_at. Example: architecto

Show Specific Payment

requires authentication

This endpoint lets you show specific payment

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "c891304b-0098-4595-a47d-e08fcc903f2d",
        "amount": 100,
        "notes": "No thing",
        "created_by": {
            "id": "dd5c0ab9-527b-3e19-82a6-cb26bf069741",
            "name": "Madisyn McGlynn Mrs. Tianna Okuneva IV"
        },
        "created_at": "2026-01-16T19:40:54.000000Z",
        "patient": {
            "id": "430feff0-eb03-4fac-99ff-c1eb64bb4d5a",
            "name": "Montana Deckow MD Ms. Kaci Gislason",
            "balance": 0
        },
        "appointment": {
            "id": "f63e9e68-0272-487f-a6a5-df680b9fcf63",
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "total_amount": 250,
            "paid_amount": 100,
            "remaining_amount": 150
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/admin/payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Update Specific Payment

requires authentication

This endpoint lets you update specific payment

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "b90b6e38-5421-4096-8b2a-fa698c4ca3bc",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "c8a1a2f8-d929-33cc-832e-00c46995664f",
            "name": "Cheyanne McDermott II Devin McGlynn"
        },
        "created_at": "2026-01-16T19:40:56.000000Z",
        "patient": {
            "id": "76c08a02-c807-467c-ade0-53e8e9fe5398",
            "name": "Kassandra Cummings Domenic Abshire",
            "balance": 0
        },
        "appointment": {
            "id": "b8143790-df55-4cf1-9d51-ae392de3ddec",
            "status": {
                "key": 5,
                "value": "CANCELLED"
            },
            "total_amount": 250,
            "paid_amount": 200,
            "remaining_amount": 50
        }
    },
    "message": "The Payment has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/admin/payments/{id}

PATCH api/v1/admin/payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Body Parameters

amount   integer  optional  

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Delete Specific Payment

requires authentication

This endpoint lets you delete specific payment

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/admin/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Payment has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/admin/payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Show all payments in specific company

requires authentication

This endpoint lets you show all payments in specific company

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments?page=16&per_page=16&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "936a7dd3-07a4-4a38-a1a8-610cf63b3104",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "68ac338d-3bf0-3e51-b7c8-c4c85db7719b",
                "name": "Noelia Ruecker Sydni Schumm"
            },
            "created_at": "2026-01-16T19:40:54.000000Z",
            "patient": {
                "id": "591d5583-c000-47f7-8eae-da07382ae0f6",
                "name": "Miss Madelynn Reilly II Jamil Kovacek II",
                "balance": 0
            },
            "appointment": {
                "id": "a610ccae-9a17-4a05-8373-84de3f107e5c",
                "status": {
                    "key": 2,
                    "value": "SCHEDULED"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "80f1e510-9e27-412f-8891-67e0d1536f11",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "ff9ffcc8-54d1-3b63-81d6-c24a01b0c038",
                "name": "Cindy Hartmann III Marielle Bins DVM"
            },
            "created_at": "2026-01-16T19:40:55.000000Z",
            "patient": {
                "id": "eaecb06f-e459-4bbb-b5b7-4d7bcf5382a5",
                "name": "Shanel Funk Nikita Purdy II",
                "balance": 0
            },
            "appointment": {
                "id": "3bb7349e-ad56-4cc6-b9d7-b49b1ad65b20",
                "status": {
                    "key": 3,
                    "value": "PROCESSING"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "6b046dcb-cb26-4a9c-a865-337cdf597351",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "f2db0b5e-61bb-3321-8a62-d0dab0d817e8",
                "name": "Kaley Strosin Sr. Lurline Blick IV"
            },
            "created_at": "2026-01-16T19:40:54.000000Z",
            "patient": {
                "id": "e9e1bc69-929c-4bf3-908d-442657675647",
                "name": "Kameron Will Kelly Wolff",
                "balance": 0
            },
            "appointment": {
                "id": "6dfd6ede-6220-4864-b0f2-f4423e90774c",
                "status": {
                    "key": 3,
                    "value": "PROCESSING"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "683d3a52-380b-4438-8b85-a1633bfc228f",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "a6ebef28-6563-36bb-8549-782582786e02",
                "name": "Savion Bauch V Ms. Alvina Kautzer"
            },
            "created_at": "2026-01-16T19:40:55.000000Z",
            "patient": {
                "id": "e9e1bc69-929c-4bf3-908d-442657675647",
                "name": "Kameron Will Kelly Wolff",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "37be11c0-b142-4f93-8581-6066886e88a3",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "f83dfb44-cf52-3a36-9ce2-4ab2cfbd9207",
                "name": "Prof. Andy Smitham Ms. Alana Schamberger IV"
            },
            "created_at": "2026-01-16T19:40:56.000000Z",
            "patient": {
                "id": "eaecb06f-e459-4bbb-b5b7-4d7bcf5382a5",
                "name": "Shanel Funk Nikita Purdy II",
                "balance": 0
            },
            "appointment": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[search]   string  optional  

Field to filter items by first_name,last_name for patient. Example: architecto

sort   string  optional  

Field to sort items by created_at. Example: architecto

Show Specific Payment

requires authentication

This endpoint lets you show specific payment

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "c891304b-0098-4595-a47d-e08fcc903f2d",
        "amount": 100,
        "notes": "No thing",
        "created_by": {
            "id": "dd5c0ab9-527b-3e19-82a6-cb26bf069741",
            "name": "Madisyn McGlynn Mrs. Tianna Okuneva IV"
        },
        "created_at": "2026-01-16T19:40:54.000000Z",
        "patient": {
            "id": "430feff0-eb03-4fac-99ff-c1eb64bb4d5a",
            "name": "Montana Deckow MD Ms. Kaci Gislason",
            "balance": 0
        },
        "appointment": {
            "id": "f63e9e68-0272-487f-a6a5-df680b9fcf63",
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "total_amount": 250,
            "paid_amount": 100,
            "remaining_amount": 150
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Update Specific Payment

requires authentication

This endpoint lets you update specific payment

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "b90b6e38-5421-4096-8b2a-fa698c4ca3bc",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "c8a1a2f8-d929-33cc-832e-00c46995664f",
            "name": "Cheyanne McDermott II Devin McGlynn"
        },
        "created_at": "2026-01-16T19:40:56.000000Z",
        "patient": {
            "id": "76c08a02-c807-467c-ade0-53e8e9fe5398",
            "name": "Kassandra Cummings Domenic Abshire",
            "balance": 0
        },
        "appointment": {
            "id": "b8143790-df55-4cf1-9d51-ae392de3ddec",
            "status": {
                "key": 5,
                "value": "CANCELLED"
            },
            "total_amount": 250,
            "paid_amount": 200,
            "remaining_amount": 50
        }
    },
    "message": "The Payment has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/payments/{id}

PATCH api/v1/companies/{company_id}/payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Body Parameters

amount   integer  optional  

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Delete Specific Payment

requires authentication

This endpoint lets you delete specific payment

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Payment has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/payments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Patients

APIs for patient Management

Show all patients in specific branch

requires authentication

This endpoint lets you show all patients in specific branch

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients?page=16&per_page=16&filter%5Bstatus%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[status]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[status]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "c6c9b925-5c8e-4dfb-8aa1-a9c596f7819e",
            "name": "Mr. Saul McClure Jr. Cade Will",
            "first_name": "Mr. Saul McClure Jr.",
            "last_name": "Cade Will",
            "age": 6,
            "address": "56273 Zieme Circles Suite 452\nGordonside, MS 75990-3974",
            "phone": "678.952.0626",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2026-01-16T19:40:49.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "908ea585-de5c-4dd7-874e-aeda57b2687c",
                "name": "Jarrell Effertz"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "bd2a4689-bf3f-4c96-8ec9-01d5b0c6519a",
            "name": "Cruz Lowe Sr. Miss Haylie Harvey MD",
            "first_name": "Cruz Lowe Sr.",
            "last_name": "Miss Haylie Harvey MD",
            "age": 89,
            "address": "6700 Demarco Fields Suite 186\nJedidiahborough, CO 18007",
            "phone": "1-757-937-6409",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2026-01-16T19:40:49.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "908ea585-de5c-4dd7-874e-aeda57b2687c",
                "name": "Jarrell Effertz"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "a237a02b-27b8-4399-bc34-10d912ed0988",
            "name": "Miss Shanelle Effertz IV Keely Treutel",
            "first_name": "Miss Shanelle Effertz IV",
            "last_name": "Keely Treutel",
            "age": 67,
            "address": "3883 Shayne Trail Apt. 034\nKasandrachester, SC 99678-7799",
            "phone": "+1-484-440-8892",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2026-01-16T19:40:49.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "908ea585-de5c-4dd7-874e-aeda57b2687c",
                "name": "Jarrell Effertz"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "87c525af-fc5c-49bf-90a6-e56e7d722424",
            "name": "Lisa Spinka Sterling Lueilwitz",
            "first_name": "Lisa Spinka",
            "last_name": "Sterling Lueilwitz",
            "age": 100,
            "address": "908 Connelly Fort Suite 635\nLake Vernie, IL 55263-5526",
            "phone": "1-445-379-3108",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2026-01-16T19:40:49.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "908ea585-de5c-4dd7-874e-aeda57b2687c",
                "name": "Jarrell Effertz"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "760f656e-848e-43ad-96fb-d369c4578461",
            "name": "Lue Roob Prof. Ramon Collier Sr.",
            "first_name": "Lue Roob",
            "last_name": "Prof. Ramon Collier Sr.",
            "age": 100,
            "address": "232 Mac Centers Suite 711\nEast Johannaview, WY 67920",
            "phone": "805-222-6816",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2026-01-16T19:40:49.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "908ea585-de5c-4dd7-874e-aeda57b2687c",
                "name": "Jarrell Effertz"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/patients

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[status]   string  optional  

Field to filter items by status. Example: architecto

filter[search]   string  optional  

Field to filter items by username,first_name,last_name. Example: architecto

sort   string  optional  

Field to sort items by status. Example: architecto

Add Patient

requires authentication

This endpoint lets you add patient

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"b\",
    \"last_name\": \"n\",
    \"gender\": 1,
    \"age\": 84,
    \"address\": \"z\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients"
);

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

let body = {
    "first_name": "b",
    "last_name": "n",
    "gender": 1,
    "age": 84,
    "address": "z"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'first_name' => 'b',
            'last_name' => 'n',
            'gender' => 1,
            'age' => 84,
            'address' => 'z',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-2b22-7379-bd56-38f3a3394b49",
        "name": "John Doe",
        "first_name": "John",
        "last_name": "Doe",
        "age": 20,
        "address": null,
        "phone": "+971581234567",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "created_by": {
            "id": "1d3f7857-08af-363c-8554-4d1dd66b784c",
            "name": "Owen Padberg DVM Sandra Grady"
        },
        "created_at": "2026-01-16T19:40:52.000000Z",
        "balance": 0,
        "paid_amount": 0,
        "remaining": 0,
        "total_amount": 0,
        "company": {
            "id": "f1003be6-0bdf-4241-89b2-25518d77acb9",
            "name": "Clint Pacocha III"
        },
        "payments": null,
        "appointments": null,
        "tooth_history": null
    },
    "message": "The Patient has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/patients

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

first_name   string   

Must not be greater than 255 characters. Example: b

last_name   string   

Must not be greater than 255 characters. Example: n

phone   string  optional  
gender   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
age   number  optional  

Must be at least 0. Example: 84

address   string  optional  

Must not be greater than 255 characters. Example: z

Show Specific Patient

requires authentication

This endpoint lets you show specific patient

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "439ca668-0717-4d8e-870b-01fe67697835",
        "name": "Mr. Ethan Leannon MD Dr. Michel Fadel",
        "first_name": "Mr. Ethan Leannon MD",
        "last_name": "Dr. Michel Fadel",
        "age": 7,
        "address": "633 Jayson Rue\nEast Cornelius, OR 60191-8204",
        "phone": "1-913-594-0202",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "created_by": {
            "id": null,
            "name": null
        },
        "created_at": "2026-01-16T19:40:52.000000Z",
        "balance": 0,
        "paid_amount": 0,
        "remaining": 0,
        "total_amount": 0,
        "company": {
            "id": "47f055b5-0db3-4d4e-a286-e00d8bea61fd",
            "name": "Sophie Kessler"
        },
        "payments": null,
        "appointments": null,
        "tooth_history": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/patients/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Update Specific Patient

requires authentication

This endpoint lets you update specific patient

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"first_name\": \"b\",
    \"last_name\": \"n\",
    \"gender\": 2,
    \"age\": 84,
    \"address\": \"z\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d"
);

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

let body = {
    "first_name": "b",
    "last_name": "n",
    "gender": 2,
    "age": 84,
    "address": "z"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'first_name' => 'b',
            'last_name' => 'n',
            'gender' => 2,
            'age' => 84,
            'address' => 'z',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "7402dc83-b9b1-4f24-95c3-75066012eeb6",
        "name": "Razan Khoulani",
        "first_name": "Razan",
        "last_name": "Khoulani",
        "age": 20,
        "address": "Damascus",
        "phone": "+963945345844",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "created_by": {
            "id": null,
            "name": null
        },
        "created_at": "2026-01-16T19:40:54.000000Z",
        "balance": 0,
        "paid_amount": 0,
        "remaining": 0,
        "total_amount": 0,
        "company": {
            "id": "5d0c4869-4746-4fe0-aee6-fb2da607570c",
            "name": "Torrance Weber"
        },
        "payments": null,
        "appointments": null,
        "tooth_history": null
    },
    "message": "The Patient has been updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/patients/{id}

PATCH api/v1/companies/{company_id}/patients/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Body Parameters

first_name   string  optional  

Must not be greater than 255 characters. Example: b

last_name   string  optional  

Must not be greater than 255 characters. Example: n

phone   string  optional  
gender   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
age   number  optional  

Must be at least 0. Example: 84

address   string  optional  

Must not be greater than 255 characters. Example: z

Delete Specific Patient

requires authentication

This endpoint lets you delete specific patient

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Patient has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/patients/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Appointment

APIs for appointments Management

Show all appointments in specific branch

requires authentication

This endpoint lets you show all appointments in specific branch

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments?page=16&per_page=16&filter%5Bstatus%5D=architecto&filter%5Bpatient_id%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[status]": "architecto",
    "filter[patient_id]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[status]' => 'architecto',
            'filter[patient_id]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "8339764c-3269-48eb-95da-69d5bd4de807",
            "start_at": "2026-01-16T23:25:31.000000Z",
            "end_at": "2026-02-12T14:50:55.000000Z",
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "total_amount": 6848,
            "created_by": {
                "id": "da0641a2-4075-351f-8208-40c27566c2f4",
                "name": "Lavon Mills MD Darron Ratke"
            },
            "created_at": "2026-01-16T19:40:31.000000Z",
            "company": {
                "id": "c18dddbd-f47b-4d8b-9f19-d7b3ba7e9357",
                "name": "Oswald Krajcik"
            },
            "patient": {
                "id": "74379b3c-9785-44b1-a7f4-2a692931ce07",
                "name": "Isom Littel Dr. Lexus Glover I",
                "balance": 0
            },
            "doctor": {
                "id": "3a328c6b-5a08-36fb-b294-526c517a5563",
                "name": "Neha Zulauf Mr. Hailey Carroll",
                "username": "Xavier Kuphal",
                "phone": "+1.765.868.9617"
            },
            "notes": "Eveniet animi enim cupiditate.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "6d7c8629-7444-4613-801e-5aaef803296e",
            "start_at": "2026-01-16T21:25:29.000000Z",
            "end_at": "2026-02-14T05:53:04.000000Z",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 4874,
            "created_by": {
                "id": "d5bb42e9-cad8-323d-8a81-19c2bdb4984e",
                "name": "Maximilian Rath Cathrine Schimmel"
            },
            "created_at": "2026-01-16T19:40:29.000000Z",
            "company": {
                "id": "c18dddbd-f47b-4d8b-9f19-d7b3ba7e9357",
                "name": "Oswald Krajcik"
            },
            "patient": {
                "id": "fbbbfaf5-25a2-4cb1-a7dc-0abbbf0b6896",
                "name": "Mr. Reid Willms PhD Jace Lehner",
                "balance": 0
            },
            "doctor": {
                "id": "3cf8a24f-1137-3983-aabd-89be5109e174",
                "name": "Milton Powlowski Mrs. Hettie Reichert Sr.",
                "username": "Marianne Paucek",
                "phone": "+16785283051"
            },
            "notes": "Voluptas et consectetur sit rem.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "55b90903-b623-42e4-9839-34d61de65691",
            "start_at": "2026-01-16T20:10:29.000000Z",
            "end_at": "2026-02-05T22:36:17.000000Z",
            "status": {
                "key": 4,
                "value": "COMPLETED"
            },
            "total_amount": 1276,
            "created_by": {
                "id": "d451cdbc-a503-38c6-a152-fb446aea157c",
                "name": "Henriette Harber Dr. Damian Osinski"
            },
            "created_at": "2026-01-16T19:40:29.000000Z",
            "company": {
                "id": "c18dddbd-f47b-4d8b-9f19-d7b3ba7e9357",
                "name": "Oswald Krajcik"
            },
            "patient": {
                "id": "8ad7fe66-34ec-4508-994d-47348b7cd2a9",
                "name": "Dr. Nat Klocko I Felicita Konopelski",
                "balance": 0
            },
            "doctor": {
                "id": "4aab3850-a89e-3fda-8170-027ac3a61748",
                "name": "Dr. Maiya Koss Thomas Borer",
                "username": "Dr. Samir Upton",
                "phone": "+1-714-663-8739"
            },
            "notes": "Accusantium earum et unde vero quod incidunt rem sit.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "55a617eb-74d6-4838-bf04-b44f2d1d5540",
            "start_at": "2026-01-16T22:10:30.000000Z",
            "end_at": "2026-01-24T02:48:51.000000Z",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 6841,
            "created_by": {
                "id": "bacc25c9-097f-34bd-99f7-9da04eaaf646",
                "name": "Clyde Stracke Kenyon Boyle Jr."
            },
            "created_at": "2026-01-16T19:40:30.000000Z",
            "company": {
                "id": "c18dddbd-f47b-4d8b-9f19-d7b3ba7e9357",
                "name": "Oswald Krajcik"
            },
            "patient": {
                "id": "df6fc81c-96dd-45d2-bcb2-811d8df6ea55",
                "name": "Mrs. Asa Adams Finn Frami",
                "balance": 0
            },
            "doctor": {
                "id": "0c1ff5d0-1c0d-3173-bed4-38b270b0567f",
                "name": "Miss Noemi Nolan MD Edd Kihn",
                "username": "Lyric Schumm V",
                "phone": "+1-276-573-7430"
            },
            "notes": "Inventore laborum illo non et repellat.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "4c9d88f2-b0d7-40a6-a296-fd1a4ea6ad08",
            "start_at": "2026-01-16T20:25:29.000000Z",
            "end_at": "2026-02-16T13:50:39.000000Z",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 4053,
            "created_by": {
                "id": "2bb0b101-fa29-3d3e-abd0-bf36c5ba7ccf",
                "name": "Mr. Ernesto Beahan Chesley Prosacco"
            },
            "created_at": "2026-01-16T19:40:29.000000Z",
            "company": {
                "id": "c18dddbd-f47b-4d8b-9f19-d7b3ba7e9357",
                "name": "Oswald Krajcik"
            },
            "patient": {
                "id": "e1f96994-de3f-4446-8b3e-5eb4a039b466",
                "name": "Aracely Auer Horacio Parker",
                "balance": 0
            },
            "doctor": {
                "id": "faa67f55-208b-379e-81c3-626f9aadd073",
                "name": "Miss Lizeth Hettinger Hayley Rolfson",
                "username": "Ahmad Satterfield Sr.",
                "phone": "+1 (463) 534-6270"
            },
            "notes": "Laboriosam eum perspiciatis quo nam officiis non.",
            "is_current": false,
            "is_next": false
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/appointments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[status]   string  optional  

Field to filter items by status. Example: architecto

filter[patient_id]   string  optional  

Field to filter items by patient_id. Example: architecto

filter[search]   string  optional  

Field to filter items by first_name,last_name for patient Example: architecto

sort   string  optional  

Field to sort items by status,start_at. Example: architecto

Add Appointment

requires authentication

This endpoint lets you add appointment

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"patient_id\": \"architecto\",
    \"doctor_id\": \"architecto\",
    \"start_at\": \"2052-02-10\",
    \"end_at\": \"2052-02-09\",
    \"total_amount\": 39,
    \"notes\": \"g\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments"
);

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

let body = {
    "patient_id": "architecto",
    "doctor_id": "architecto",
    "start_at": "2052-02-10",
    "end_at": "2052-02-09",
    "total_amount": 39,
    "notes": "g"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'patient_id' => 'architecto',
            'doctor_id' => 'architecto',
            'start_at' => '2052-02-10',
            'end_at' => '2052-02-09',
            'total_amount' => 39,
            'notes' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-d4aa-731d-abe5-3e865a5e989b",
        "start_at": "2026-01-16T21:40:30.000000Z",
        "end_at": "2026-01-16T22:10:30.000000Z",
        "status": {
            "key": 1,
            "value": "PENDING"
        },
        "total_amount": 200,
        "created_by": {
            "id": "da4cbd77-a033-38c6-a29c-a3824be4aa06",
            "name": "Mylene Moore Margarita Grant II"
        },
        "created_at": "2026-01-16T19:40:30.000000Z",
        "company": {
            "id": "ff0af266-580d-4a52-9d9a-68a45bd0e94a",
            "name": "Miss Amber Bailey"
        },
        "patient": {
            "id": "e24cb83f-3584-4c91-94b8-659c0d86e8e4",
            "name": "Daija Conroy Haley Schoen",
            "balance": 0
        },
        "doctor": {
            "id": "87fbfdcf-062e-311c-a6cd-c4b152c9c8c2",
            "name": "Buster Bailey Herta Stokes",
            "username": "Mrs. Mona Cartwright",
            "phone": "+1-470-235-4846"
        },
        "notes": null,
        "is_current": false,
        "is_next": false
    },
    "message": "The Appointment has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/appointments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

patient_id   string   

The id of an existing record in the patients table. Example: architecto

doctor_id   string   

The id of an existing record in the users table. Example: architecto

start_at   string   

Must be a valid date. Must be a date after now. Example: 2052-02-10

end_at   string   

Must be a valid date. Must be a date after start_at. Example: 2052-02-09

total_amount   number  optional  

Must be at least 0. Example: 39

notes   string  optional  

Must not be greater than 255 characters. Example: g

Show Specific Appointment

requires authentication

This endpoint lets you show specific appointment

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "56071510-5375-4749-82a1-6d16b51b773a",
        "start_at": "2026-01-23T19:10:47.000000Z",
        "end_at": "2026-01-23T20:36:47.000000Z",
        "status": {
            "key": 3,
            "value": "PROCESSING"
        },
        "total_amount": 3729,
        "created_by": {
            "id": "73044bd8-4d69-3681-abef-4c8f0bfef717",
            "name": "Ms. Kelli O'Connell V Moses Reichel"
        },
        "created_at": "2026-01-16T19:40:29.000000Z",
        "company": {
            "id": "0efe53fd-1364-4cd0-b29c-fa7ac1e51157",
            "name": "Marlin Schroeder"
        },
        "patient": {
            "id": "2b12408a-82e4-4bf8-983d-f24b92f99a3b",
            "name": "Johnathon Waelchi III Andrew Raynor MD",
            "balance": 0
        },
        "doctor": {
            "id": "86d46bfd-edec-342c-a2ac-02b69f1800cf",
            "name": "Braxton Rodriguez Kacie Veum I",
            "username": "Laverne Hessel",
            "phone": "+1 (361) 205-7315"
        },
        "notes": "Ut sed nobis distinctio ea distinctio placeat ipsum.",
        "is_current": false,
        "is_next": false
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/appointments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the appointment. Example: 019bc854-9398-70f6-931d-0aaa7efaca2e

Update Specific Appointment

requires authentication

This endpoint lets you update specific appointment

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_at\": \"2052-02-10\",
    \"end_at\": \"2052-02-09\",
    \"total_amount\": 39,
    \"status\": 4,
    \"notes\": \"g\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e"
);

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

let body = {
    "start_at": "2052-02-10",
    "end_at": "2052-02-09",
    "total_amount": 39,
    "status": 4,
    "notes": "g"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'start_at' => '2052-02-10',
            'end_at' => '2052-02-09',
            'total_amount' => 39,
            'status' => 4,
            'notes' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "fd2c8d29-2712-49cf-86f6-f82e1f62e2d3",
        "start_at": "2026-01-16T23:40:30.000000Z",
        "end_at": "2026-01-17T00:25:30.000000Z",
        "status": {
            "key": 4,
            "value": "COMPLETED"
        },
        "total_amount": 400,
        "created_by": {
            "id": "a1bde79f-b007-3a08-ba81-2f70466e8519",
            "name": "Dr. Edgardo Luettgen DDS Adam Kassulke"
        },
        "created_at": "2026-01-16T19:40:30.000000Z",
        "company": {
            "id": "bed19826-3e7c-4dcc-9808-696362b7ce39",
            "name": "Rosemary Oberbrunner"
        },
        "patient": {
            "id": "5cffbf72-2254-4905-a567-8fd65d979094",
            "name": "Mackenzie D'Amore Miss Wava Parker",
            "balance": 0
        },
        "doctor": {
            "id": "340f4134-2458-358a-8348-7f29bb641d85",
            "name": "Brooke Rogahn Blanca Ankunding",
            "username": "Garry Kilback",
            "phone": "+1-828-514-4174"
        },
        "notes": "Impedit sunt alias beatae.",
        "is_current": false,
        "is_next": false
    },
    "message": "The Appointment has been updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/appointments/{id}

PATCH api/v1/companies/{company_id}/appointments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the appointment. Example: 019bc854-9398-70f6-931d-0aaa7efaca2e

Body Parameters

patient_id   string  optional  

The id of an existing record in the patients table.

doctor_id   string  optional  

The id of an existing record in the users table.

start_at   string  optional  

Must be a valid date. Must be a date after now. Example: 2052-02-10

end_at   string  optional  

Must be a valid date. Must be a date after start_at. Example: 2052-02-09

total_amount   number  optional  

Must be at least 0. Example: 39

status   integer  optional  

Example: 4

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
notes   string  optional  

Must not be greater than 255 characters. Example: g

Delete Specific Appointment

requires authentication

This endpoint lets you delete specific appointment

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/appointments/019bc854-9398-70f6-931d-0aaa7efaca2e';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Appointment has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/appointments/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the appointment. Example: 019bc854-9398-70f6-931d-0aaa7efaca2e

Suppliers

APIs for Suppliers Management

Show all suppliers in specific company

requires authentication

This endpoint lets you show all suppliers in specific company

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers?page=16&per_page=16&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "d2ed42b3-2714-4d1b-b519-fed954ee562b",
            "name": "Ms. Kristy Stehr Jr.",
            "name_ar": "Haylee Hane",
            "phone": "573.875.6444",
            "email": "[email protected]",
            "notes": "Ea tempore assumenda dolor soluta enim ullam qui.",
            "company": {
                "id": "6c0a8dc6-695e-4bc5-bdba-6a060319845e",
                "name": "Aubrey Price"
            }
        },
        {
            "id": "c13d422e-a6d3-4272-85bf-5521fec36303",
            "name": "Luna Weber",
            "name_ar": "Federico Ruecker",
            "phone": "+1 (808) 677-3155",
            "email": "[email protected]",
            "notes": "Aut vel omnis earum velit id.",
            "company": {
                "id": "6c0a8dc6-695e-4bc5-bdba-6a060319845e",
                "name": "Aubrey Price"
            }
        },
        {
            "id": "b43a69aa-cbf4-483f-8ad0-3223dd186fd4",
            "name": "Franz Heidenreich",
            "name_ar": "Frank Kuvalis",
            "phone": "+1.504.673.9391",
            "email": "[email protected]",
            "notes": "Quae neque magnam eaque eos libero.",
            "company": {
                "id": "6c0a8dc6-695e-4bc5-bdba-6a060319845e",
                "name": "Aubrey Price"
            }
        },
        {
            "id": "6d473fdb-8e83-4d89-8356-81670312ae55",
            "name": "Brooklyn O'Kon",
            "name_ar": "Prof. Claire West I",
            "phone": "304-623-8156",
            "email": "[email protected]",
            "notes": "Optio commodi architecto exercitationem doloremque doloremque repudiandae.",
            "company": {
                "id": "6c0a8dc6-695e-4bc5-bdba-6a060319845e",
                "name": "Aubrey Price"
            }
        },
        {
            "id": "56b71e6c-67ca-4cf3-954e-32d16f6a15ef",
            "name": "Adelbert Ondricka",
            "name_ar": "Bert Langosh",
            "phone": "(539) 732-2284",
            "email": "[email protected]",
            "notes": "Iusto mollitia et et dolor exercitationem voluptas.",
            "company": {
                "id": "6c0a8dc6-695e-4bc5-bdba-6a060319845e",
                "name": "Aubrey Price"
            }
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/suppliers

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[search]   string  optional  

Field to filter items by name,name_ar. Example: architecto

sort   string  optional  

Field to sort items by created_at. Example: architecto

Add Supplier

requires authentication

This endpoint lets you add supplier

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"name_ar\": \"n\",
    \"email\": \"[email protected]\",
    \"notes\": \"v\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers"
);

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

let body = {
    "name": "b",
    "name_ar": "n",
    "email": "[email protected]",
    "notes": "v"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'name_ar' => 'n',
            'email' => '[email protected]',
            'notes' => 'v',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-54d2-7341-8f0e-466809d0e2bc",
        "name": "Test",
        "name_ar": "Test",
        "phone": "+963945345844",
        "email": "[email protected]",
        "notes": "this test test",
        "company": {
            "id": "453af658-71e4-48b7-8450-63fb84889ea3",
            "name": "Dana Leffler"
        }
    },
    "message": "The Supplier has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/suppliers

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

name_ar   string   

Must not be greater than 255 characters. Example: n

phone   string  optional  
email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

notes   string  optional  

Must not be greater than 255 characters. Example: v

Show Specific Supplier

requires authentication

This endpoint lets you show specific supplier

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "6655de00-906a-4db6-a202-9de7c9dec74f",
        "name": "Carmella Koch",
        "name_ar": "Sigurd D'Amore II",
        "phone": "712-560-8015",
        "email": "[email protected]",
        "notes": "Ut praesentium neque at et quae.",
        "company": {
            "id": "dede6676-c753-46b3-a3d8-7ae522b6e512",
            "name": "Annetta Carroll"
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/suppliers/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

Update Specific Supplier

requires authentication

This endpoint lets you update specific supplier

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"name_ar\": \"n\",
    \"email\": \"[email protected]\",
    \"notes\": \"v\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68"
);

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

let body = {
    "name": "b",
    "name_ar": "n",
    "email": "[email protected]",
    "notes": "v"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'name_ar' => 'n',
            'email' => '[email protected]',
            'notes' => 'v',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "f11459de-7605-4d28-9506-35d755a1cabe",
        "name": "Laboratory",
        "name_ar": "Test",
        "phone": "+963945345845",
        "email": "[email protected]",
        "notes": "this test test",
        "company": {
            "id": "07574aee-58f0-48ce-b35c-63a5e7381ea3",
            "name": "Hattie Grady"
        }
    },
    "message": "The Supplier has been updated successfully",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/suppliers/{id}

PATCH api/v1/companies/{company_id}/suppliers/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

name_ar   string  optional  

Must not be greater than 255 characters. Example: n

phone   string  optional  
email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

notes   string  optional  

Must not be greater than 255 characters. Example: v

Delete Specific Supplier

requires authentication

This endpoint lets you delete specific supplier

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Supplier has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/suppliers/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

Meta Tests

APIs for Meta Tests Management

Show all Meta Tests in specific company

requires authentication

This endpoint allows you to retrieve a paginated list of meta tests that belong to the given company.

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests?page=16&per_page=16&filter%5Bstatus%5D=16&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[status]": "16",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[status]' => '16',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "c1aa548b-ff73-43e8-a61d-61e952a80ec2",
            "display_name_ar": "distinctio officiis",
            "display_name_en": "ea sunt",
            "short_name_ar": "ratione",
            "short_name_en": "rerum",
            "door": "LAB",
            "unit_number": 10,
            "lab_unit_price": 185,
            "high_life_range": "5.7",
            "low_life_range": null,
            "sample_ar": "aliquid",
            "sample_en": "nesciunt",
            "discipline_ar": "vel",
            "discipline_en": "aut",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:42.000000Z",
            "company": {
                "id": "94518cba-af3e-4f39-8fcb-b5b6d9584b51",
                "name": "Norval Blick"
            }
        },
        {
            "id": "ba0cf7eb-e22e-467a-a4d1-9e9b071b1b96",
            "display_name_ar": "est velit",
            "display_name_en": "voluptates quaerat",
            "short_name_ar": "nam",
            "short_name_en": "porro",
            "door": "LAB",
            "unit_number": 4,
            "lab_unit_price": 491,
            "high_life_range": null,
            "low_life_range": "3.8",
            "sample_ar": "ea",
            "sample_en": "ipsum",
            "discipline_ar": "consequatur",
            "discipline_en": "qui",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:42.000000Z",
            "company": {
                "id": "94518cba-af3e-4f39-8fcb-b5b6d9584b51",
                "name": "Norval Blick"
            }
        },
        {
            "id": "b0949334-2b11-4077-94da-80ee80811ca3",
            "display_name_ar": "minima quasi",
            "display_name_en": "ratione nulla",
            "short_name_ar": "quia",
            "short_name_en": "nihil",
            "door": "XRAY",
            "unit_number": 5,
            "lab_unit_price": 401,
            "high_life_range": "14.1",
            "low_life_range": null,
            "sample_ar": "culpa",
            "sample_en": "nihil",
            "discipline_ar": "vel",
            "discipline_en": "repellendus",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:42.000000Z",
            "company": {
                "id": "94518cba-af3e-4f39-8fcb-b5b6d9584b51",
                "name": "Norval Blick"
            }
        },
        {
            "id": "a3c69d99-9b4c-4492-b2f2-d44ab6487ccc",
            "display_name_ar": "nulla est",
            "display_name_en": "sit minus",
            "short_name_ar": "autem",
            "short_name_en": "tempora",
            "door": "CLINIC",
            "unit_number": 10,
            "lab_unit_price": 322,
            "high_life_range": null,
            "low_life_range": null,
            "sample_ar": "et",
            "sample_en": "excepturi",
            "discipline_ar": "dolorum",
            "discipline_en": "dolorem",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:42.000000Z",
            "company": {
                "id": "94518cba-af3e-4f39-8fcb-b5b6d9584b51",
                "name": "Norval Blick"
            }
        },
        {
            "id": "7d8f3c47-e261-465b-b6e8-94a9faaf4781",
            "display_name_ar": "sit rem",
            "display_name_en": "error necessitatibus",
            "short_name_ar": "consequatur",
            "short_name_en": "id",
            "door": "XRAY",
            "unit_number": 5,
            "lab_unit_price": 351,
            "high_life_range": "14",
            "low_life_range": null,
            "sample_ar": "voluptatum",
            "sample_en": "aspernatur",
            "discipline_ar": "sequi",
            "discipline_en": "voluptas",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:42.000000Z",
            "company": {
                "id": "94518cba-af3e-4f39-8fcb-b5b6d9584b51",
                "name": "Norval Blick"
            }
        }
    ],
    "meta": {
        "pagination": {
            "total": 16,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/meta-tests

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

company   string  optional  

uuid required The ID of the company. Example: architecto

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Number of items per page. Defaults to 15. Example: 16

filter[status]   integer  optional  

Filter meta tests by status. Example: 16

filter[search]   string  optional  

Field to filter items by short_name_ar,short_name_en,display_name_en,display_name_ar Example: architecto

sort   string  optional  

Sort by unit_number or created_at. Example: architecto

Add Meta Test

requires authentication

This endpoint lets you add MetaTest

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"display_name_ar\": \"b\",
    \"display_name_en\": \"n\",
    \"short_name_ar\": \"g\",
    \"short_name_en\": \"z\",
    \"for_minis_ar\": \"m\",
    \"for_minis_en\": \"i\",
    \"door\": \"y\",
    \"unit_number\": 16,
    \"lab_unit_price\": 16,
    \"high_life_range\": \"n\",
    \"low_life_range\": \"g\",
    \"sample_ar\": \"z\",
    \"sample_en\": \"m\",
    \"discipline_ar\": \"i\",
    \"discipline_en\": \"y\",
    \"status\": 2
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests"
);

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

let body = {
    "display_name_ar": "b",
    "display_name_en": "n",
    "short_name_ar": "g",
    "short_name_en": "z",
    "for_minis_ar": "m",
    "for_minis_en": "i",
    "door": "y",
    "unit_number": 16,
    "lab_unit_price": 16,
    "high_life_range": "n",
    "low_life_range": "g",
    "sample_ar": "z",
    "sample_en": "m",
    "discipline_ar": "i",
    "discipline_en": "y",
    "status": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'display_name_ar' => 'b',
            'display_name_en' => 'n',
            'short_name_ar' => 'g',
            'short_name_en' => 'z',
            'for_minis_ar' => 'm',
            'for_minis_en' => 'i',
            'door' => 'y',
            'unit_number' => 16,
            'lab_unit_price' => 16,
            'high_life_range' => 'n',
            'low_life_range' => 'g',
            'sample_ar' => 'z',
            'sample_en' => 'm',
            'discipline_ar' => 'i',
            'discipline_en' => 'y',
            'status' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-0a75-72ee-923a-2094332ba701",
        "display_name_ar": "فحص دم",
        "display_name_en": "Blood Test",
        "short_name_ar": null,
        "short_name_en": null,
        "door": "A1",
        "unit_number": 1,
        "lab_unit_price": null,
        "high_life_range": null,
        "low_life_range": null,
        "sample_ar": null,
        "sample_en": null,
        "discipline_ar": null,
        "discipline_en": null,
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:44.000000Z",
        "company": {
            "id": "0e617e88-7e1b-4fb8-b881-9195a16aaab3",
            "name": "Justen O'Reilly"
        }
    },
    "message": "The Meta Test has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/meta-tests

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

display_name_ar   string   

Must not be greater than 255 characters. Example: b

display_name_en   string   

Must not be greater than 255 characters. Example: n

short_name_ar   string  optional  

Must not be greater than 255 characters. Example: g

short_name_en   string  optional  

Must not be greater than 255 characters. Example: z

for_minis_ar   string  optional  

Must not be greater than 255 characters. Example: m

for_minis_en   string  optional  

Must not be greater than 255 characters. Example: i

door   string   

Must not be greater than 255 characters. Example: y

unit_number   integer   

Example: 16

lab_unit_price   integer  optional  

Example: 16

high_life_range   string  optional  

Must not be greater than 255 characters. Example: n

low_life_range   string  optional  

Must not be greater than 255 characters. Example: g

sample_ar   string  optional  

Must not be greater than 255 characters. Example: z

sample_en   string  optional  

Must not be greater than 255 characters. Example: m

discipline_ar   string  optional  

Must not be greater than 255 characters. Example: i

discipline_en   string  optional  

Must not be greater than 255 characters. Example: y

status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2

Show Specific Meta Test

requires authentication

This endpoint lets you show specific Meta Test

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "4fa45707-3c07-45b7-b121-43af833f4c95",
        "display_name_ar": "voluptatem quibusdam",
        "display_name_en": "molestias enim",
        "short_name_ar": "autem",
        "short_name_en": "aliquam",
        "door": "CLINIC",
        "unit_number": 8,
        "lab_unit_price": 229,
        "high_life_range": "9.8",
        "low_life_range": null,
        "sample_ar": "et",
        "sample_en": "ratione",
        "discipline_ar": "vel",
        "discipline_en": "voluptates",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:42.000000Z",
        "company": {
            "id": "6dde75a7-2efd-495f-bdd0-d169f31c64b8",
            "name": "Olin Paucek MD"
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/meta-tests/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

Update Meta Test

requires authentication

This endpoint lets you update MetaTest

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"display_name_ar\": \"b\",
    \"display_name_en\": \"n\",
    \"short_name_ar\": \"g\",
    \"short_name_en\": \"z\",
    \"for_minis_ar\": \"m\",
    \"for_minis_en\": \"i\",
    \"door\": \"y\",
    \"unit_number\": 16,
    \"lab_unit_price\": 16,
    \"high_life_range\": \"n\",
    \"low_life_range\": \"g\",
    \"sample_ar\": \"z\",
    \"sample_en\": \"m\",
    \"discipline_ar\": \"i\",
    \"discipline_en\": \"y\",
    \"status\": 1
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023"
);

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

let body = {
    "display_name_ar": "b",
    "display_name_en": "n",
    "short_name_ar": "g",
    "short_name_en": "z",
    "for_minis_ar": "m",
    "for_minis_en": "i",
    "door": "y",
    "unit_number": 16,
    "lab_unit_price": 16,
    "high_life_range": "n",
    "low_life_range": "g",
    "sample_ar": "z",
    "sample_en": "m",
    "discipline_ar": "i",
    "discipline_en": "y",
    "status": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'display_name_ar' => 'b',
            'display_name_en' => 'n',
            'short_name_ar' => 'g',
            'short_name_en' => 'z',
            'for_minis_ar' => 'm',
            'for_minis_en' => 'i',
            'door' => 'y',
            'unit_number' => 16,
            'lab_unit_price' => 16,
            'high_life_range' => 'n',
            'low_life_range' => 'g',
            'sample_ar' => 'z',
            'sample_en' => 'm',
            'discipline_ar' => 'i',
            'discipline_en' => 'y',
            'status' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-0a75-72ee-923a-2094332ba701",
        "display_name_ar": "فحص دم",
        "display_name_en": "Blood Test",
        "short_name_ar": null,
        "short_name_en": null,
        "door": "A1",
        "unit_number": 1,
        "lab_unit_price": null,
        "high_life_range": null,
        "low_life_range": null,
        "sample_ar": null,
        "sample_en": null,
        "discipline_ar": null,
        "discipline_en": null,
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:44.000000Z",
        "company": {
            "id": "0e617e88-7e1b-4fb8-b881-9195a16aaab3",
            "name": "Justen O'Reilly"
        }
    },
    "message": "The Meta Test has been added successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/meta-tests/{id}

PATCH api/v1/companies/{company_id}/meta-tests/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

Body Parameters

display_name_ar   string  optional  

Must not be greater than 255 characters. Example: b

display_name_en   string  optional  

Must not be greater than 255 characters. Example: n

short_name_ar   string  optional  

Must not be greater than 255 characters. Example: g

short_name_en   string  optional  

Must not be greater than 255 characters. Example: z

for_minis_ar   string  optional  

Must not be greater than 255 characters. Example: m

for_minis_en   string  optional  

Must not be greater than 255 characters. Example: i

door   string  optional  

Must not be greater than 255 characters. Example: y

unit_number   integer  optional  

Example: 16

lab_unit_price   integer  optional  

Example: 16

high_life_range   string  optional  

Must not be greater than 255 characters. Example: n

low_life_range   string  optional  

Must not be greater than 255 characters. Example: g

sample_ar   string  optional  

Must not be greater than 255 characters. Example: z

sample_en   string  optional  

Must not be greater than 255 characters. Example: m

discipline_ar   string  optional  

Must not be greater than 255 characters. Example: i

discipline_en   string  optional  

Must not be greater than 255 characters. Example: y

status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2

Delete Specific Meta Test

requires authentication

This endpoint allows you to delete a specific meta test that belongs to the given company.

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Meta Test has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/meta-tests/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

company   string  optional  

uuid required The ID of the company. Example: architecto

metaTest   string  optional  

uuid required The ID of the meta test. Example: architecto

Disable Meta Test

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/disable" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/disable"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/disable';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/meta-tests/{meta_test_id}/disable

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

company   string  optional  

uuid required The ID of the company. Example: architecto

meta_test   string  optional  

uuid required The ID of the meta test. Example: architecto

Restore Meta Test

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/restore" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/restore"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/restore';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/meta-tests/{meta_test_id}/restore

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

company   string  optional  

uuid required The ID of the company. Example: architecto

meta_test   string  optional  

uuid required The ID of the meta test. Example: architecto

Medical Reports

APIs for managing medical reports

Show all Medical Reports for a company

requires authentication

Paginated list of reports that belong to the given company.

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports?page=16&per_page=16&filter%5Bstatus%5D=16&filter%5Btype%5D=16&filter%5Bsearch%5D=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[status]": "16",
    "filter[type]": "16",
    "filter[search]": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[status]' => '16',
            'filter[type]' => '16',
            'filter[search]' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "adb30d12-a057-4bb4-9961-89ee41c5047d",
            "created_at": "2026-01-16T19:40:32.000000Z",
            "updated_at": "2026-01-16T19:40:32.000000Z",
            "patient": {
                "name": "John Doe",
                "age": null
            },
            "laboratory": {
                "id": "d5f25686-92b2-3565-a85a-78b91d3809a8",
                "name": "Adrian Connelly Evie Skiles"
            },
            "notes": null,
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "sample_number": "SAMPLE-21635",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "medical_tests": []
        },
        {
            "id": "1ee9dd3f-ab61-4d14-a660-b8378333edd7",
            "created_at": "2026-01-16T19:40:32.000000Z",
            "updated_at": "2026-01-16T19:40:32.000000Z",
            "patient": {
                "name": "John Doe",
                "age": 55
            },
            "laboratory": {
                "id": "d5f25686-92b2-3565-a85a-78b91d3809a8",
                "name": "Adrian Connelly Evie Skiles"
            },
            "notes": "Qui sed nesciunt in sit.",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "sample_number": null,
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "medical_tests": []
        },
        {
            "id": "130a6cf5-7ee4-4afa-8995-b21dabdc544b",
            "created_at": "2026-01-16T19:40:32.000000Z",
            "updated_at": "2026-01-16T19:40:32.000000Z",
            "patient": {
                "name": "John Doe",
                "age": null
            },
            "laboratory": {
                "id": "d5f25686-92b2-3565-a85a-78b91d3809a8",
                "name": "Adrian Connelly Evie Skiles"
            },
            "notes": "Nostrum praesentium earum totam.",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "sample_number": "SAMPLE-79343",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "medical_tests": []
        }
    ],
    "meta": {
        "pagination": {
            "total": 3,
            "per_page": 15,
            "count": 3,
            "current_page": 1
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/medical-reports

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

company   string  optional  

uuid required The ID of the company. Example: architecto

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Items per page. Defaults to 15. Example: 16

filter[status]   integer  optional  

Filter by status. Example: 16

filter[type]   integer  optional  

Filter by report type. Example: 16

filter[search]   string  optional  

Search by sample_number or notes. Example: architecto

Add Medical Report

requires authentication

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"patient_name\": \"b\",
    \"patient_age\": 39,
    \"gender\": 2,
    \"user_id\": \"architecto\",
    \"notes\": \"architecto\",
    \"status\": 1,
    \"type\": 1,
    \"sample_number\": \"n\",
    \"medical_tests\": [
        {
            \"meta_test_id\": \"architecto\",
            \"result\": \"architecto\",
            \"notes\": \"architecto\",
            \"result_status\": 2,
            \"status\": 2
        }
    ]
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports"
);

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

let body = {
    "patient_name": "b",
    "patient_age": 39,
    "gender": 2,
    "user_id": "architecto",
    "notes": "architecto",
    "status": 1,
    "type": 1,
    "sample_number": "n",
    "medical_tests": [
        {
            "meta_test_id": "architecto",
            "result": "architecto",
            "notes": "architecto",
            "result_status": 2,
            "status": 2
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'patient_name' => 'b',
            'patient_age' => 39,
            'gender' => 2,
            'user_id' => 'architecto',
            'notes' => 'architecto',
            'status' => 1,
            'type' => 1,
            'sample_number' => 'n',
            'medical_tests' => [
                [
                    'meta_test_id' => 'architecto',
                    'result' => 'architecto',
                    'notes' => 'architecto',
                    'result_status' => 2,
                    'status' => 2,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-fd74-7061-adad-8b3b32f317af",
        "created_at": "2026-01-16T19:40:40.000000Z",
        "updated_at": "2026-01-16T19:40:40.000000Z",
        "patient": {
            "name": "John Doe",
            "age": 32
        },
        "laboratory": {
            "id": "40a0a057-e27c-3714-b65e-90a206714fde",
            "name": "Jackson Raynor Mr. Gerson Fritsch"
        },
        "notes": "Report notes",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "sample_number": "S-1234",
        "gender": {
            "key": 1,
            "value": "MALE"
        },
        "medical_tests": []
    },
    "message": "The Medical Report has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/medical-reports

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

patient_name   string   

Must not be greater than 255 characters. Example: b

patient_age   integer  optional  

Must be at least 0. Example: 39

gender   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
user_id   string   

The id of an existing record in the users table. Example: architecto

notes   string  optional  

Example: architecto

status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
type   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
sample_number   string  optional  

Must not be greater than 255 characters. Example: n

medical_tests   object[]  optional  
meta_test_id   string   

The id of an existing record in the meta_tests table. Example: architecto

result   string  optional  

Example: architecto

notes   string  optional  

Example: architecto

result_status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2

Show Specific Medical Report

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "64453b5b-b883-41e3-9454-0cf6518346a4",
        "created_at": "2026-01-16T19:40:38.000000Z",
        "updated_at": "2026-01-16T19:40:38.000000Z",
        "patient": {
            "name": "John Doe",
            "age": null
        },
        "laboratory": {
            "id": "cf68ae36-a756-3496-b6fe-2544c14c2efe",
            "name": "Mr. Paxton Graham PhD Alana Hoppe I"
        },
        "notes": null,
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "sample_number": "SAMPLE-11278",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "medical_tests": []
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/medical-reports/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

Update Medical Report

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"patient_name\": \"b\",
    \"patient_age\": 39,
    \"gender\": 2,
    \"notes\": \"architecto\",
    \"status\": 2,
    \"type\": 1,
    \"sample_number\": \"n\",
    \"medical_tests\": [
        {
            \"result\": \"architecto\",
            \"notes\": \"architecto\",
            \"result_status\": 1,
            \"status\": 1
        }
    ]
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195"
);

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

let body = {
    "patient_name": "b",
    "patient_age": 39,
    "gender": 2,
    "notes": "architecto",
    "status": 2,
    "type": 1,
    "sample_number": "n",
    "medical_tests": [
        {
            "result": "architecto",
            "notes": "architecto",
            "result_status": 1,
            "status": 1
        }
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'patient_name' => 'b',
            'patient_age' => 39,
            'gender' => 2,
            'notes' => 'architecto',
            'status' => 2,
            'type' => 1,
            'sample_number' => 'n',
            'medical_tests' => [
                [
                    'result' => 'architecto',
                    'notes' => 'architecto',
                    'result_status' => 1,
                    'status' => 1,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "971e8dcd-de9d-4d7b-8c98-3bcabcfb3c2b",
        "created_at": "2026-01-16T19:40:40.000000Z",
        "updated_at": "2026-01-16T19:40:40.000000Z",
        "patient": {
            "name": "Jane Doe",
            "age": null
        },
        "laboratory": {
            "id": "b96ef9c8-c2d2-3c3e-8a88-d8b700f197af",
            "name": "Charlene Rolfson Dora Kunze"
        },
        "notes": "Updated notes",
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "sample_number": "SAMPLE-69231",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "medical_tests": []
    },
    "message": "The Medical Report has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/medical-reports/{id}

PATCH api/v1/companies/{company_id}/medical-reports/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

Body Parameters

patient_name   string  optional  

Must not be greater than 255 characters. Example: b

patient_age   integer  optional  

Must be at least 0. Example: 39

gender   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
user_id   string  optional  

The id of an existing record in the users table.

notes   string  optional  

Example: architecto

status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
type   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
sample_number   string  optional  

Must not be greater than 255 characters. Example: n

medical_tests   object[]  optional  
id   string  optional  

The id of an existing record in the medical_tests table.

meta_test_id   string  optional  

This field is required when medical_tests.*.id is not present. The id of an existing record in the meta_tests table.

result   string  optional  

Example: architecto

notes   string  optional  

Example: architecto

result_status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
deleted_medical_test_ids   string[]  optional  

The id of an existing record in the medical_tests table.

Delete Medical Report

requires authentication

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Medical Report has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/medical-reports/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

Disable Medical Report

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/disable" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/disable"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/disable';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "b7098cb0-00d1-4e48-82a1-c4ffbbdda85f",
        "created_at": "2026-01-16T19:40:38.000000Z",
        "updated_at": "2026-01-16T19:40:39.000000Z",
        "patient": {
            "name": "John Doe",
            "age": null
        },
        "laboratory": {
            "id": "45a36566-6c40-3842-8614-00df6ce7379a",
            "name": "Ignacio Davis Prof. Sydney Kemmer"
        },
        "notes": "Laudantium odit quo qui nihil eveniet exercitationem.",
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "sample_number": null,
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "medical_tests": []
    },
    "message": "The Medical Report has been disabled successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/medical-reports/{medical_report_id}/disable

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

Restore Medical Report

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/restore" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/restore"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/restore';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "b7098cb0-00d1-4e48-82a1-c4ffbbdda85f",
        "created_at": "2026-01-16T19:40:38.000000Z",
        "updated_at": "2026-01-16T19:40:39.000000Z",
        "patient": {
            "name": "John Doe",
            "age": null
        },
        "laboratory": {
            "id": "45a36566-6c40-3842-8614-00df6ce7379a",
            "name": "Ignacio Davis Prof. Sydney Kemmer"
        },
        "notes": "Laudantium odit quo qui nihil eveniet exercitationem.",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "sample_number": null,
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "medical_tests": []
    },
    "message": "The Medical Report has been restored successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/medical-reports/{medical_report_id}/restore

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

Medical Tests

APIs for managing medical tests within a medical report

Show all Medical Tests for a Medical Report

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests?page=16&per_page=16&filter%5Bstatus%5D=16&filter%5Bresult_status%5D=16&filter%5Bsearch%5D=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[status]": "16",
    "filter[result_status]": "16",
    "filter[search]": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[status]' => '16',
            'filter[result_status]' => '16',
            'filter[search]' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "c0d3a21b-f7bb-4d7d-92d4-024db9b4c675",
            "meta_test": {
                "id": "6ba39597-4c88-47c9-8bfe-428156c6396b",
                "display_name_ar": "dolores esse",
                "display_name_en": "qui vitae",
                "short_name_ar": "accusamus",
                "short_name_en": "autem",
                "door": "XRAY",
                "unit_number": 9,
                "lab_unit_price": 475,
                "high_life_range": "5.3",
                "low_life_range": null,
                "sample_ar": "qui",
                "sample_en": "natus",
                "discipline_ar": "dolores",
                "discipline_en": "voluptatibus",
                "status": {
                    "key": 1,
                    "value": "ACTIVE"
                },
                "created_at": "2026-01-16T19:40:34.000000Z",
                "company": {
                    "id": "729f1997-332e-40fa-90d3-691a8835a5ae",
                    "name": "Keeley Gulgowski"
                }
            },
            "result": "Voluptates et ducimus error.",
            "notes": "Ab corrupti cum autem suscipit.",
            "result_status": {
                "key": 2,
                "value": "HIDDEN"
            },
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:35.000000Z"
        },
        {
            "id": "bedea784-f1e9-4f49-b66d-dee8334aaadd",
            "meta_test": {
                "id": "6ba39597-4c88-47c9-8bfe-428156c6396b",
                "display_name_ar": "dolores esse",
                "display_name_en": "qui vitae",
                "short_name_ar": "accusamus",
                "short_name_en": "autem",
                "door": "XRAY",
                "unit_number": 9,
                "lab_unit_price": 475,
                "high_life_range": "5.3",
                "low_life_range": null,
                "sample_ar": "qui",
                "sample_en": "natus",
                "discipline_ar": "dolores",
                "discipline_en": "voluptatibus",
                "status": {
                    "key": 1,
                    "value": "ACTIVE"
                },
                "created_at": "2026-01-16T19:40:34.000000Z",
                "company": {
                    "id": "729f1997-332e-40fa-90d3-691a8835a5ae",
                    "name": "Keeley Gulgowski"
                }
            },
            "result": null,
            "notes": "Et nisi asperiores vitae et quod quia optio.",
            "result_status": {
                "key": 2,
                "value": "HIDDEN"
            },
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "created_at": "2026-01-16T19:40:35.000000Z"
        },
        {
            "id": "863daa70-9b7a-49fb-aa3b-c8edb3222762",
            "meta_test": {
                "id": "6ba39597-4c88-47c9-8bfe-428156c6396b",
                "display_name_ar": "dolores esse",
                "display_name_en": "qui vitae",
                "short_name_ar": "accusamus",
                "short_name_en": "autem",
                "door": "XRAY",
                "unit_number": 9,
                "lab_unit_price": 475,
                "high_life_range": "5.3",
                "low_life_range": null,
                "sample_ar": "qui",
                "sample_en": "natus",
                "discipline_ar": "dolores",
                "discipline_en": "voluptatibus",
                "status": {
                    "key": 1,
                    "value": "ACTIVE"
                },
                "created_at": "2026-01-16T19:40:34.000000Z",
                "company": {
                    "id": "729f1997-332e-40fa-90d3-691a8835a5ae",
                    "name": "Keeley Gulgowski"
                }
            },
            "result": "Delectus rem est facilis.",
            "notes": null,
            "result_status": {
                "key": 2,
                "value": "HIDDEN"
            },
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "created_at": "2026-01-16T19:40:35.000000Z"
        }
    ],
    "meta": {
        "pagination": {
            "total": 3,
            "per_page": 15,
            "count": 3,
            "current_page": 1
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Items per page. Defaults to 15. Example: 16

filter[status]   integer  optional  

Filter by status. Example: 16

filter[result_status]   integer  optional  

Filter by result status. Example: 16

filter[search]   string  optional  

Search by result or notes. Example: architecto

Add Medical Test

requires authentication

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"meta_test_id\": \"architecto\",
    \"result\": \"architecto\",
    \"notes\": \"architecto\",
    \"result_status\": 2,
    \"status\": 2
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests"
);

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

let body = {
    "meta_test_id": "architecto",
    "result": "architecto",
    "notes": "architecto",
    "result_status": 2,
    "status": 2
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'meta_test_id' => 'architecto',
            'result' => 'architecto',
            'notes' => 'architecto',
            'result_status' => 2,
            'status' => 2,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc852-f3b6-7196-98ed-f5c041902030",
        "meta_test": {
            "id": "319aa6a6-d873-4157-b132-8e865d7f1470",
            "display_name_ar": "temporibus molestiae",
            "display_name_en": "eveniet aut",
            "short_name_ar": "voluptatem",
            "short_name_en": "dolorem",
            "door": "CLINIC",
            "unit_number": 2,
            "lab_unit_price": null,
            "high_life_range": null,
            "low_life_range": null,
            "sample_ar": "deserunt",
            "sample_en": "consequatur",
            "discipline_ar": "voluptate",
            "discipline_en": "aut",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:37.000000Z",
            "company": {
                "id": "395ea759-b063-4323-9f95-4f34dd4b9a1f",
                "name": "Prof. Theron Hane"
            }
        },
        "result": "Positive",
        "notes": "Initial note",
        "result_status": {
            "key": 1,
            "value": "VISIBLE"
        },
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:38.000000Z"
    },
    "message": "The Medical Test has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

Body Parameters

meta_test_id   string   

The id of an existing record in the meta_tests table. Example: architecto

result   string  optional  

Example: architecto

notes   string  optional  

Example: architecto

result_status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2

Show Specific Medical Test

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "7f11cd86-f152-4ecb-a09e-8278699e8b9b",
        "meta_test": {
            "id": "bc2a8b7c-22b9-4364-93a5-f1ef192892a9",
            "display_name_ar": "perspiciatis omnis",
            "display_name_en": "vel atque",
            "short_name_ar": "culpa",
            "short_name_en": "provident",
            "door": "LAB",
            "unit_number": 9,
            "lab_unit_price": null,
            "high_life_range": null,
            "low_life_range": null,
            "sample_ar": "fuga",
            "sample_en": "debitis",
            "discipline_ar": "qui",
            "discipline_en": "cum",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:36.000000Z",
            "company": {
                "id": "02ba0630-fdfc-41b2-90cd-6f66186cd187",
                "name": "Dudley Mitchell"
            }
        },
        "result": "Aut natus ipsum.",
        "notes": "Illo autem incidunt ut optio.",
        "result_status": {
            "key": 2,
            "value": "HIDDEN"
        },
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "created_at": "2026-01-16T19:40:36.000000Z"
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

id   string   

The ID of the medical test. Example: 019bc854-9259-720e-ad3b-a8c43cb846f5

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

medical_test   string  optional  

uuid required The ID of the medical test. Example: architecto

Update Medical Test

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"result\": \"architecto\",
    \"notes\": \"architecto\",
    \"result_status\": 2,
    \"status\": 1
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5"
);

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

let body = {
    "result": "architecto",
    "notes": "architecto",
    "result_status": 2,
    "status": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'result' => 'architecto',
            'notes' => 'architecto',
            'result_status' => 2,
            'status' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "1eb11d17-4845-4192-b436-eedeb551ac64",
        "meta_test": {
            "id": "2768808f-4625-4213-a7b0-3e0829afc6ae",
            "display_name_ar": "omnis quibusdam",
            "display_name_en": "amet sed",
            "short_name_ar": "ea",
            "short_name_en": "omnis",
            "door": "XRAY",
            "unit_number": 7,
            "lab_unit_price": null,
            "high_life_range": "12.8",
            "low_life_range": "4.5",
            "sample_ar": "voluptatem",
            "sample_en": "eveniet",
            "discipline_ar": "dicta",
            "discipline_en": "sint",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:38.000000Z",
            "company": {
                "id": "e93b30db-b224-4bd8-b4f0-589ffa42cf6e",
                "name": "Sidney West"
            }
        },
        "result": "Rerum architecto.",
        "notes": "Updated note",
        "result_status": {
            "key": 1,
            "value": "VISIBLE"
        },
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:38.000000Z"
    },
    "message": "The Medical Test has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests/{id}

PATCH api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

id   string   

The ID of the medical test. Example: 019bc854-9259-720e-ad3b-a8c43cb846f5

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

medical_test   string  optional  

uuid required The ID of the medical test. Example: architecto

Body Parameters

result   string  optional  

Example: architecto

notes   string  optional  

Example: architecto

result_status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2

Delete Medical Test

requires authentication

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Medical Test has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

id   string   

The ID of the medical test. Example: 019bc854-9259-720e-ad3b-a8c43cb846f5

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

medical_test   string  optional  

uuid required The ID of the medical test. Example: architecto

Disable Medical Test

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5/disable" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5/disable"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5/disable';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests/{medical_test_id}/disable

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

medical_test_id   string   

The ID of the medical test. Example: 019bc854-9259-720e-ad3b-a8c43cb846f5

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

medical_test   string  optional  

uuid required The ID of the medical test. Example: architecto

Restore Medical Test

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5/restore" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5/restore"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/medical-reports/019bc854-9138-7155-b4d3-388228d6b195/medical-tests/019bc854-9259-720e-ad3b-a8c43cb846f5/restore';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/medical-reports/{medical_report_id}/medical-tests/{medical_test_id}/restore

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: 019bc854-9138-7155-b4d3-388228d6b195

medical_test_id   string   

The ID of the medical test. Example: 019bc854-9259-720e-ad3b-a8c43cb846f5

company   string  optional  

uuid required The ID of the company. Example: architecto

medical_report   string  optional  

uuid required The ID of the medical report. Example: architecto

medical_test   string  optional  

uuid required The ID of the medical test. Example: architecto

Normal Ranges

APIs for Normal Ranges Management

Show all Normal Ranges for specific Meta Test

requires authentication

This endpoint lets you show all normal ranges for a given meta test.

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges?page=16&per_page=16&filter%5Bgender%5D=16&filter%5Bstatus%5D=16&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[gender]": "16",
    "filter[status]": "16",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[gender]' => '16',
            'filter[status]' => '16',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "4db3e14f-a961-4ecd-b91e-38c795a2926a",
            "meta_test_id": "19de041e-b2d6-40f3-8bf3-e58dd254d58f",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "from_age": 8,
            "to_age": 18,
            "value": null,
            "unit": "mg/dL",
            "low_result": "9.87",
            "high_result": "12.71",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:46.000000Z"
        },
        {
            "id": "44b187a7-27ff-4b43-9dcb-60c91dbc9096",
            "meta_test_id": "19de041e-b2d6-40f3-8bf3-e58dd254d58f",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "from_age": 3,
            "to_age": 15,
            "value": "5.88",
            "unit": "g/dL",
            "low_result": "2.27",
            "high_result": "11.12",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:46.000000Z"
        },
        {
            "id": "1d1d04f8-c6fa-4875-ac0d-39d54c2b2f61",
            "meta_test_id": "19de041e-b2d6-40f3-8bf3-e58dd254d58f",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "from_age": 45,
            "to_age": 60,
            "value": null,
            "unit": "mg/dL",
            "low_result": "8.01",
            "high_result": "18.63",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "created_at": "2026-01-16T19:40:46.000000Z"
        }
    ],
    "meta": {
        "pagination": {
            "total": 8,
            "per_page": 5,
            "count": 3,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[gender]   integer  optional  

Field to filter items by gender. Example: 16

filter[status]   integer  optional  

Field to filter items by status. Example: 16

filter[search]   string  optional  

Field to filter items by value, unit, low_result, or high_result. Example: architecto

sort   string  optional  

Field to sort items by from_age,to_age,created_at. Example: architecto

Add Normal Range for specific Meta Test

requires authentication

This endpoint lets you add normal range for specific meta test

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"gender\": 1,
    \"from_age\": 27,
    \"to_age\": 16,
    \"value\": \"architecto\",
    \"unit\": \"n\",
    \"low_result\": \"g\",
    \"high_result\": \"z\",
    \"status\": 1
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges"
);

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

let body = {
    "gender": 1,
    "from_age": 27,
    "to_age": 16,
    "value": "architecto",
    "unit": "n",
    "low_result": "g",
    "high_result": "z",
    "status": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'gender' => 1,
            'from_age' => 27,
            'to_age' => 16,
            'value' => 'architecto',
            'unit' => 'n',
            'low_result' => 'g',
            'high_result' => 'z',
            'status' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-1de9-7340-881c-0273dfaca141",
        "meta_test_id": "e6af60eb-b7d3-4454-885d-a6e78253c04a",
        "gender": {
            "key": 1,
            "value": "MALE"
        },
        "from_age": 5,
        "to_age": 15,
        "value": "5.5",
        "unit": "mg/dL",
        "low_result": "4.0",
        "high_result": "6.5",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:49.000000Z"
    },
    "message": "The Normal Range has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

Body Parameters

gender   integer   

Example: 1

Must be one of:
  • 1
  • 2
from_age   integer   

Must be at least 0. Example: 27

to_age   integer   

Example: 16

value   string  optional  

Example: architecto

unit   string   

Must not be greater than 255 characters. Example: n

low_result   string   

Must not be greater than 255 characters. Example: g

high_result   string   

Must not be greater than 255 characters. Example: z

status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2

Show Specific Normal Range

requires authentication

This endpoint lets you show specific Normal Range

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "bc063afd-1255-49cf-b125-d6b2f7f83068",
        "meta_test_id": "6a076596-902d-454d-97fd-3bc98ffda75e",
        "gender": {
            "key": 1,
            "value": "MALE"
        },
        "from_age": 22,
        "to_age": 23,
        "value": "18.73",
        "unit": "mmol/L",
        "low_result": "9.75",
        "high_result": "17.21",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "created_at": "2026-01-16T19:40:46.000000Z"
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

id   string   

The ID of the normal range. Example: 019bc854-90a8-71ed-9f49-5aad1b5b0f49

Update Normal Range

requires authentication

This endpoint lets you update specific normal range

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"gender\": 1,
    \"from_age\": 27,
    \"to_age\": 16,
    \"value\": \"architecto\",
    \"unit\": \"n\",
    \"low_result\": \"g\",
    \"high_result\": \"z\",
    \"status\": 1
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49"
);

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

let body = {
    "gender": 1,
    "from_age": 27,
    "to_age": 16,
    "value": "architecto",
    "unit": "n",
    "low_result": "g",
    "high_result": "z",
    "status": 1
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'gender' => 1,
            'from_age' => 27,
            'to_age' => 16,
            'value' => 'architecto',
            'unit' => 'n',
            'low_result' => 'g',
            'high_result' => 'z',
            'status' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "ff600633-73a1-4377-8436-cd3b5c748284",
        "meta_test_id": "a62a69d3-4a61-4476-9f8c-d7bc63a8c4ab",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "from_age": 5,
        "to_age": 20,
        "value": null,
        "unit": "g/dL",
        "low_result": "2.0",
        "high_result": "8.0",
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "created_at": "2026-01-16T19:40:47.000000Z"
    },
    "message": "The Normal Range has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges/{id}

PATCH api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

id   string   

The ID of the normal range. Example: 019bc854-90a8-71ed-9f49-5aad1b5b0f49

Body Parameters

gender   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
from_age   integer  optional  

Must be at least 0. Example: 27

to_age   integer  optional  

Example: 16

value   string  optional  

Example: architecto

unit   string  optional  

Must not be greater than 255 characters. Example: n

low_result   string  optional  

Must not be greater than 255 characters. Example: g

high_result   string  optional  

Must not be greater than 255 characters. Example: z

status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2

Delete Specific Normal Range

requires authentication

This endpoint lets you delete specific normal range

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Normal Range has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

id   string   

The ID of the normal range. Example: 019bc854-90a8-71ed-9f49-5aad1b5b0f49

Disable Normal Range

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49/disable" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49/disable"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49/disable';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges/{normal_range_id}/disable

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

normal_range_id   string   

The ID of the normal range. Example: 019bc854-90a8-71ed-9f49-5aad1b5b0f49

company   string  optional  

uuid required The ID of the company. Example: architecto

meta_test   string  optional  

uuid required The ID of the meta test. Example: architecto

normal_range   string  optional  

uuid required The ID of the normal range. Example: architecto

Restore Normal Range

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49/restore" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49/restore"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/meta-tests/019bc854-9074-73ec-9eb2-75a3d5893023/normal-ranges/019bc854-90a8-71ed-9f49-5aad1b5b0f49/restore';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/meta-tests/{meta_test_id}/normal-ranges/{normal_range_id}/restore

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

meta_test_id   string   

The ID of the meta test. Example: 019bc854-9074-73ec-9eb2-75a3d5893023

normal_range_id   string   

The ID of the normal range. Example: 019bc854-90a8-71ed-9f49-5aad1b5b0f49

company   string  optional  

uuid required The ID of the company. Example: architecto

meta_test   string  optional  

uuid required The ID of the meta test. Example: architecto

normal_range   string  optional  

uuid required The ID of the normal range. Example: architecto

Users

APIs for users Management

Show all users for specific company

requires authentication

This endpoint lets you show all users in specific company

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users?page=16&per_page=16&filter%5Busername%5D=architecto&filter%5Btype%5D=architecto&filter%5Bstatus%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[username]": "architecto",
    "filter[type]": "architecto",
    "filter[status]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[username]' => 'architecto',
            'filter[type]' => 'architecto',
            'filter[status]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "c175c99e-0682-326c-913f-ba88fdce0c3b",
            "name": "Johanna Champlin I Leanna Lind",
            "first_name": "Johanna Champlin I",
            "last_name": "Leanna Lind",
            "username": "Cordie Lockman",
            "email": "[email protected]",
            "phone": "+16305079733",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true
        },
        {
            "id": "af742b1d-d97b-3842-8760-bb2e6e24f43b",
            "name": "Kyle Hayes Tyrese Zulauf",
            "first_name": "Kyle Hayes",
            "last_name": "Tyrese Zulauf",
            "username": "Stephon Konopelski PhD",
            "email": "[email protected]",
            "phone": "+1.574.398.9276",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "type": {
                "key": 2,
                "value": "LABORATORY"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true
        },
        {
            "id": "883349a5-7500-372b-a8c0-d0ae0f1b7ad2",
            "name": "Violette Crist Mr. Derick Trantow",
            "first_name": "Violette Crist",
            "last_name": "Mr. Derick Trantow",
            "username": "Marlen Beier",
            "email": "[email protected]",
            "phone": "+1.769.847.1686",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true
        },
        {
            "id": "615bf601-962d-3133-9c01-187f35fb5d48",
            "name": "Carlee Moen Mrs. Andreane Oberbrunner DVM",
            "first_name": "Carlee Moen",
            "last_name": "Mrs. Andreane Oberbrunner DVM",
            "username": "Fermin Reichel",
            "email": "[email protected]",
            "phone": "+13463924530",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true
        },
        {
            "id": "4cf719db-9c57-3888-be2e-7b571d722af2",
            "name": "Mr. Noel Hammes Esther Johnson",
            "first_name": "Mr. Noel Hammes",
            "last_name": "Esther Johnson",
            "username": "Hermann Stamm",
            "email": "[email protected]",
            "phone": "+1.602.981.9211",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 4,
                "value": "DATA_ENTRY"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true
        }
    ],
    "meta": {
        "pagination": {
            "total": 15,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[username]   string  optional  

Field to filter items by username. Example: architecto

filter[type]   string  optional  

Field to filter items by type. Example: architecto

filter[status]   string  optional  

Field to filter items by status. Example: architecto

filter[search]   string  optional  

Field to filter items by username,first_name,last_name. Example: architecto

sort   string  optional  

Field to sort items by status,type. Example: architecto

Show Specific User

requires authentication

This endpoint lets you show specific user in specific company

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "0fc3ddf2-109c-3eb9-b495-a2f1afc81b8c",
        "name": "Dimitri Thompson Lance Greenfelder",
        "first_name": "Dimitri Thompson",
        "last_name": "Lance Greenfelder",
        "username": "Mrs. Sandrine Murray",
        "email": "[email protected]",
        "phone": "+1 (504) 971-6965",
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "type": {
            "key": 2,
            "value": "LABORATORY"
        },
        "notes": null,
        "image": "http://localhost/storage/users/user.png",
        "has_verified_email": true,
        "has_verified_phone": true
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/users/{user_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Add User in specific company

requires authentication

This endpoint lets you add user in specific company

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "first_name=b"\
    --form "last_name=n"\
    --form "username=g"\
    --form "[email protected]"\
    --form "password=BNvYgxwmi/#iw/kX"\
    --form "type=4"\
    --form "status=2"\
    --form "notes=w"\
    --form "image=@/tmp/phphjHMHC" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users"
);

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

const body = new FormData();
body.append('first_name', 'b');
body.append('last_name', 'n');
body.append('username', 'g');
body.append('email', '[email protected]');
body.append('password', 'BNvYgxwmi/#iw/kX');
body.append('type', '4');
body.append('status', '2');
body.append('notes', 'w');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'first_name',
                'contents' => 'b'
            ],
            [
                'name' => 'last_name',
                'contents' => 'n'
            ],
            [
                'name' => 'username',
                'contents' => 'g'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'password',
                'contents' => 'BNvYgxwmi/#iw/kX'
            ],
            [
                'name' => 'type',
                'contents' => '4'
            ],
            [
                'name' => 'status',
                'contents' => '2'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phphjHMHC', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-666e-7189-9c3f-3778352aa228",
        "name": "Test Test",
        "first_name": "Test",
        "last_name": "Test",
        "username": "test_test",
        "email": "[email protected]",
        "phone": "+963994622354",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "type": {
            "key": 4,
            "value": "DATA_ENTRY"
        },
        "notes": null,
        "image": "http://localhost/storage/users/user.png",
        "has_verified_email": false,
        "has_verified_phone": false
    },
    "message": "The User has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Body Parameters

first_name   string   

Must not be greater than 255 characters. Example: b

last_name   string   

Must not be greater than 255 characters. Example: n

username   string   

Must not be greater than 255 characters. Example: g

email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

phone   string  optional  
password   string   

Must be at least 6 characters. Example: BNvYgxwmi/#iw/kX

image   file  optional  

Must be an image. Must not be greater than 2048 kilobytes. Example: /tmp/phphjHMHC

type   integer  optional  

Example: 4

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
status   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
notes   string  optional  

Must not be greater than 255 characters. Example: w

Update User in specific company

requires authentication

This endpoint lets you update specific user in specific company

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "first_name=b"\
    --form "last_name=n"\
    --form "username=g"\
    --form "[email protected]"\
    --form "password=BNvYgxwmi/#iw/kX"\
    --form "type=3"\
    --form "status=1"\
    --form "notes=w"\
    --form "image=@/tmp/phpamAbEl" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a"
);

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

const body = new FormData();
body.append('first_name', 'b');
body.append('last_name', 'n');
body.append('username', 'g');
body.append('email', '[email protected]');
body.append('password', 'BNvYgxwmi/#iw/kX');
body.append('type', '3');
body.append('status', '1');
body.append('notes', 'w');
body.append('image', document.querySelector('input[name="image"]').files[0]);

fetch(url, {
    method: "PUT",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'first_name',
                'contents' => 'b'
            ],
            [
                'name' => 'last_name',
                'contents' => 'n'
            ],
            [
                'name' => 'username',
                'contents' => 'g'
            ],
            [
                'name' => 'email',
                'contents' => '[email protected]'
            ],
            [
                'name' => 'password',
                'contents' => 'BNvYgxwmi/#iw/kX'
            ],
            [
                'name' => 'type',
                'contents' => '3'
            ],
            [
                'name' => 'status',
                'contents' => '1'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phpamAbEl', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "df43c671-88c9-38c1-9b52-4a57819c824d",
        "name": "Test Test",
        "first_name": "Test",
        "last_name": "test",
        "username": "test_test",
        "email": "[email protected]",
        "phone": "+963994622354",
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "type": {
            "key": 4,
            "value": "DATA_ENTRY"
        },
        "notes": null,
        "image": "http://localhost/storage/users/user.png",
        "has_verified_email": true,
        "has_verified_phone": true
    },
    "message": "The User has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/users/{user_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Body Parameters

first_name   string  optional  

Must not be greater than 255 characters. Example: b

last_name   string  optional  

Must not be greater than 255 characters. Example: n

username   string  optional  

Must not be greater than 255 characters. Example: g

email   string  optional  

Must be a valid email address. Must not be greater than 255 characters. Example: [email protected]

phone   string  optional  
password   string  optional  

Must be at least 6 characters. Example: BNvYgxwmi/#iw/kX

image   file  optional  

Must be an image. Must not be greater than 2048 kilobytes. Example: /tmp/phpamAbEl

type   integer  optional  

Example: 3

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
status   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
notes   string  optional  

Must not be greater than 255 characters. Example: w

Disable User in specific company

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a/disable" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a/disable"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a/disable';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/users/{user_id}/disable

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Restore User in specific company

requires authentication

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a/restore" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a/restore"
);

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

fetch(url, {
    method: "PUT",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a/restore';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/v1/companies/{company_id}/users/{user_id}/restore

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Delete Specific User

requires authentication

This endpoint lets you delete specific user

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/users/019bc854-81e7-7297-adbc-20ee9bca508a';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The User has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/users/{user_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

user_id   string   

The ID of the user. Example: 019bc854-81e7-7297-adbc-20ee9bca508a

Endpoints

GET api/v1

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

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


 

Request      

GET api/v1

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Patient

APIs for Patient Management

Teeth

APIs for Teeth Management

Add note to specific tooth

requires authentication

This endpoint lets you add note to specific tooth

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tooth_number\": 14,
    \"message\": \"b\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes"
);

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

let body = {
    "tooth_number": 14,
    "message": "b"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tooth_number' => 14,
            'message' => 'b',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-2dcc-70bb-bbc2-16b826427f58",
        "patient_id": "c1b347b5-25cc-46dc-ba59-4b19081cae77",
        "tooth_number": {
            "key": 8,
            "value": "TOOTH_8"
        },
        "tooth_label": "Upper Right Central Incisor",
        "message": "This is my first note for this tooth",
        "created_by": {
            "id": "43ac9b91-d04c-34fa-b168-2c23571a2491",
            "name": "Mrs. Tina Sawayn Reyna Simonis"
        },
        "created_at": "2026-01-16T19:40:53.000000Z"
    },
    "message": "The message has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/patients/{patient_id}/notes

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Body Parameters

tooth_number   integer  optional  

Example: 14

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
message   string   

Must not be greater than 1000 characters. Example: b

Show All Notes to Patient

requires authentication

This endpoint lets you show all notes

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "019bc853-32b5-729a-bb9c-3f5e164fff23",
            "patient_id": "2fb5aa3e-7baa-4d29-8c9e-3742f0bb0407",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "a0ea7b72-9d32-3810-8e15-386e19c98eb3",
                "name": "Mr. Edwin Lehner III Jaleel Klein"
            },
            "created_at": "2026-01-16T19:40:54.000000Z"
        },
        {
            "id": "019bc853-32b9-71c4-81a3-90bdf11538df",
            "patient_id": "2fb5aa3e-7baa-4d29-8c9e-3742f0bb0407",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "a0ea7b72-9d32-3810-8e15-386e19c98eb3",
                "name": "Mr. Edwin Lehner III Jaleel Klein"
            },
            "created_at": "2026-01-16T19:40:54.000000Z"
        },
        {
            "id": "019bc853-32bd-7155-ad30-d8322a55277c",
            "patient_id": "2fb5aa3e-7baa-4d29-8c9e-3742f0bb0407",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "a0ea7b72-9d32-3810-8e15-386e19c98eb3",
                "name": "Mr. Edwin Lehner III Jaleel Klein"
            },
            "created_at": "2026-01-16T19:40:54.000000Z"
        },
        {
            "id": "019bc853-32c1-72bb-8cf0-4981b1e6e364",
            "patient_id": "2fb5aa3e-7baa-4d29-8c9e-3742f0bb0407",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "a0ea7b72-9d32-3810-8e15-386e19c98eb3",
                "name": "Mr. Edwin Lehner III Jaleel Klein"
            },
            "created_at": "2026-01-16T19:40:54.000000Z"
        },
        {
            "id": "019bc853-32c6-73ce-a385-fae6e5e6112e",
            "patient_id": "2fb5aa3e-7baa-4d29-8c9e-3742f0bb0407",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "a0ea7b72-9d32-3810-8e15-386e19c98eb3",
                "name": "Mr. Edwin Lehner III Jaleel Klein"
            },
            "created_at": "2026-01-16T19:40:54.000000Z"
        }
    ],
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/patients/{patient_id}/notes

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Update specific note

requires authentication

This endpoint lets you update specific note

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes/019bc854-9385-730d-b50e-ad6d68adee22" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tooth_number\": 32,
    \"message\": \"b\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes/019bc854-9385-730d-b50e-ad6d68adee22"
);

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

let body = {
    "tooth_number": 32,
    "message": "b"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes/019bc854-9385-730d-b50e-ad6d68adee22';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tooth_number' => 32,
            'message' => 'b',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-2f17-70ed-ae57-b9ab68630070",
        "patient_id": "3a12a8f8-1d4b-43c1-85a8-a11a3b2cf4bc",
        "tooth_number": {
            "key": 9,
            "value": "TOOTH_9"
        },
        "tooth_label": "Upper Left Central Incisor",
        "message": "تم تعديل الملاحظة",
        "created_by": {
            "id": "07cca6e4-59da-3f94-9d3f-b6a0c6147793",
            "name": "Ms. Itzel Kuhn Taryn Kiehn"
        },
        "created_at": "2026-01-16T19:40:53.000000Z"
    },
    "message": "The message has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/patients/{patient_id}/notes/{note_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

note_id   string   

The ID of the note. Example: 019bc854-9385-730d-b50e-ad6d68adee22

Body Parameters

tooth_number   integer  optional  

Example: 32

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
message   string  optional  

Must not be greater than 1000 characters. Example: b

Delete specific note

requires authentication

This endpoint lets you delete specific note

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes/019bc854-9385-730d-b50e-ad6d68adee22" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes/019bc854-9385-730d-b50e-ad6d68adee22"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/notes/019bc854-9385-730d-b50e-ad6d68adee22';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The note has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/patients/{patient_id}/notes/{note_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

note_id   string   

The ID of the note. Example: 019bc854-9385-730d-b50e-ad6d68adee22

payments

APIs for payments Management

Show all payments for specific patient

requires authentication

This endpoint lets you show all payments for specific patient

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments?page=16&per_page=16&filter%5Bamount%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[amount]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[amount]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "aab40997-5f88-4868-804a-231341596c05",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "ae6fca18-9789-3fe7-9897-b3e8cd10e202",
                "name": "Miss Ruth Goldner Cornell Kshlerin"
            },
            "created_at": "2026-01-16T19:40:50.000000Z",
            "patient": {
                "id": "4a3a60d5-7c23-468c-bc1c-b9b7b80e837a",
                "name": "Ellen Lockman Birdie Franecki",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "7ffaa578-dce4-4805-ab81-68645927f90c",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "f5fe4761-529a-3313-81d6-ff038aa6e3f6",
                "name": "Zackery Gerlach Dr. Zoe Dibbert III"
            },
            "created_at": "2026-01-16T19:40:50.000000Z",
            "patient": {
                "id": "4a3a60d5-7c23-468c-bc1c-b9b7b80e837a",
                "name": "Ellen Lockman Birdie Franecki",
                "balance": 0
            },
            "appointment": {
                "id": "babb9cb3-8e1e-42d8-a8c0-4778770cc00d",
                "status": {
                    "key": 5,
                    "value": "CANCELLED"
                },
                "total_amount": 3000,
                "paid_amount": 500,
                "remaining_amount": 2500
            }
        },
        {
            "id": "55f89cac-50e2-4fad-b326-81fb1b80dc6a",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "a068a5eb-47e1-346b-ba91-4ef51e088752",
                "name": "Madisyn Botsford Prof. Aaliyah Bartoletti"
            },
            "created_at": "2026-01-16T19:40:50.000000Z",
            "patient": {
                "id": "4a3a60d5-7c23-468c-bc1c-b9b7b80e837a",
                "name": "Ellen Lockman Birdie Franecki",
                "balance": 0
            },
            "appointment": {
                "id": "babb9cb3-8e1e-42d8-a8c0-4778770cc00d",
                "status": {
                    "key": 5,
                    "value": "CANCELLED"
                },
                "total_amount": 3000,
                "paid_amount": 500,
                "remaining_amount": 2500
            }
        },
        {
            "id": "4b5ebe90-1223-4d54-a384-ee96d7a3d0f1",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "b5fdd801-6f89-383e-b4bc-5ae700cf1347",
                "name": "Alessia Veum Corbin Orn"
            },
            "created_at": "2026-01-16T19:40:50.000000Z",
            "patient": {
                "id": "4a3a60d5-7c23-468c-bc1c-b9b7b80e837a",
                "name": "Ellen Lockman Birdie Franecki",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "0a682cc6-b369-4de3-9005-3fe1d627d75a",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "e51802e3-44d0-3d9c-8da3-762857b93148",
                "name": "Caleb Stoltenberg Sr. Maximilian Wintheiser"
            },
            "created_at": "2026-01-16T19:40:50.000000Z",
            "patient": {
                "id": "4a3a60d5-7c23-468c-bc1c-b9b7b80e837a",
                "name": "Ellen Lockman Birdie Franecki",
                "balance": 0
            },
            "appointment": {
                "id": "babb9cb3-8e1e-42d8-a8c0-4778770cc00d",
                "status": {
                    "key": 5,
                    "value": "CANCELLED"
                },
                "total_amount": 3000,
                "paid_amount": 500,
                "remaining_amount": 2500
            }
        }
    ],
    "meta": {
        "pagination": {
            "total": 10,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/patients/{patient_id}/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[amount]   string  optional  

Field to filter items by amount. Example: architecto

sort   string  optional  

Field to sort items by created_at. Example: architecto

Show Specific Payment

requires authentication

This endpoint lets you show specific payment

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "fd9a4f26-6b57-4a91-b142-59fae3d606d8",
        "amount": 100,
        "notes": "No thing",
        "created_by": {
            "id": "99d95082-d484-3d8c-b407-7d6f724c1dfa",
            "name": "Carleton Friesen Skye Mueller"
        },
        "created_at": "2026-01-16T19:40:50.000000Z",
        "patient": {
            "id": "bcddd945-9669-4f54-9494-609ceff165a6",
            "name": "Edmund White Prof. Loma Kilback",
            "balance": 0
        },
        "appointment": {
            "id": "9886c2fc-f114-4639-9d0b-ac2070248cde",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 250,
            "paid_amount": 100,
            "remaining_amount": 150
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/patients/{patient_id}/payments/{payment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

payment_id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Add Payment for specific patient

requires authentication

This endpoint lets you add payment for specific patient

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-2739-739d-9ff8-1d85ff53d4f0",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "cd96d02c-758c-3f77-b678-ad33496692bb",
            "name": "Jaquelin Windler IV Dr. Eliza Vandervort Sr."
        },
        "created_at": "2026-01-16T19:40:51.000000Z",
        "patient": {
            "id": "00387de9-83db-42c7-8df4-e980c686d109",
            "name": "Alexys Skiles Dariana Littel",
            "balance": 200
        },
        "appointment": null
    },
    "message": "The Payment has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/patients/{patient_id}/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

Body Parameters

amount   integer   

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Update Payment for specific patient

requires authentication

This endpoint lets you update specific payment

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "8d3de8a7-8161-4201-9464-83f198208bd2",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "2dba04c1-381e-35f5-bb71-41abb7f19d2c",
            "name": "Oswaldo Stracke Khalil Jacobson"
        },
        "created_at": "2026-01-16T19:40:51.000000Z",
        "patient": {
            "id": "8f9b0973-2bce-487b-8e41-15a1691dbb5c",
            "name": "Mrs. Maegan Walter Precious Aufderhar",
            "balance": 0
        },
        "appointment": {
            "id": "8dcc5366-d27d-4b17-9329-a22e62c3ccb6",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 250,
            "paid_amount": 200,
            "remaining_amount": 50
        }
    },
    "message": "The Payment has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/patients/{patient_id}/payments/{payment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

payment_id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Body Parameters

amount   integer  optional  

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Delete Specific Payment

requires authentication

This endpoint lets you delete specific payment

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/patients/019bc854-90ed-71ee-8e19-2d06e4fae55d/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Payment has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/patients/{patient_id}/payments/{payment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

patient_id   string   

The ID of the patient. Example: 019bc854-90ed-71ee-8e19-2d06e4fae55d

payment_id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Suppliers

APIs for Suppliers Management

Orders

APIs for Orders Management

Show all orders for specific supplier

requires authentication

This endpoint lets you show all orders for specific supplier

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders?page=16&per_page=16&filter%5Bstatus%5D=architecto&filter%5Bid%5D=architecto&filter%5Bpatient_id%5D=architecto&filter%5Bclient_id%5D=architecto&filter%5Bcompensation_type%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[status]": "architecto",
    "filter[id]": "architecto",
    "filter[patient_id]": "architecto",
    "filter[client_id]": "architecto",
    "filter[compensation_type]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[status]' => 'architecto',
            'filter[id]' => 'architecto',
            'filter[patient_id]' => 'architecto',
            'filter[client_id]' => 'architecto',
            'filter[compensation_type]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "7ef5d934-86c5-42d7-826b-1b73fa3a1dff",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 2,
                "value": "BRIDGE"
            },
            "tooth_number": {
                "key": 22,
                "value": "TOOTH_22"
            },
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "created_by": {
                "id": "8ecd628b-3322-3420-bb96-1245d163da3a",
                "name": "Lucy Bosco PhD Tianna Volkman"
            },
            "created_at": "2026-01-16T19:40:57.000000Z",
            "patient": {
                "id": "a21a3955-3782-45a5-9840-005439014f5d",
                "name": "Miss Shyanne Brakus Dr. Patricia Lubowitz",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "7e9a8104-1ac3-4ad5-b19f-a22ccec2df65",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 8,
                "value": "ONLAY"
            },
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "status": {
                "key": 2,
                "value": "IN_PROGRESS"
            },
            "created_by": {
                "id": "c42af601-e19f-3ef2-b153-24e5c81ac94e",
                "name": "Ms. Shannon Wisoky Mrs. Haven Parisian"
            },
            "created_at": "2026-01-16T19:40:58.000000Z",
            "patient": {
                "id": "ba0cbd36-4997-4e69-89e5-78d200f3bf53",
                "name": "Dr. Michelle Schimmel Toney Little Jr.",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "7e0c3310-440f-4d8b-b02d-bd764edc483c",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 2,
                "value": "BRIDGE"
            },
            "tooth_number": {
                "key": 4,
                "value": "TOOTH_4"
            },
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "created_by": {
                "id": "bf9275af-fc76-3bfe-8b37-1bab5677f251",
                "name": "Alejandra Simonis Mr. Jaylon O'Conner"
            },
            "created_at": "2026-01-16T19:40:57.000000Z",
            "patient": {
                "id": "38fdcda0-9842-4e9f-8afc-fac87dcc3ea3",
                "name": "Ethan Beier Mrs. June Klocko",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "6f912028-4856-4bf1-a8b7-1fdfc731fe90",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 3,
                "value": "FILLING"
            },
            "tooth_number": {
                "key": 32,
                "value": "TOOTH_32"
            },
            "status": {
                "key": 2,
                "value": "IN_PROGRESS"
            },
            "created_by": {
                "id": "e0b83b67-8344-3f1e-b035-a9de1b88e76f",
                "name": "Kathleen Leuschke Prof. Rusty Torp"
            },
            "created_at": "2026-01-16T19:40:58.000000Z",
            "patient": {
                "id": "e4f83a60-1202-4aa7-bc2f-173d0ad56fbc",
                "name": "Darrion Lynch Mrs. Magali Moore",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "61c77895-5a2b-4246-9b38-9b6e0ae18c67",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 6,
                "value": "DENTURE"
            },
            "tooth_number": {
                "key": 9,
                "value": "TOOTH_9"
            },
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "created_by": {
                "id": "919cc61f-b810-3b8c-99bb-5b18c9f0face",
                "name": "Dr. Dean Kautzer IV Prof. Domenico Wyman"
            },
            "created_at": "2026-01-16T19:40:58.000000Z",
            "patient": {
                "id": "e4f83a60-1202-4aa7-bc2f-173d0ad56fbc",
                "name": "Darrion Lynch Mrs. Magali Moore",
                "balance": 0
            },
            "supplier": null
        }
    ],
    "meta": {
        "pagination": {
            "total": 11,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/suppliers/{supplier_id}/orders

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[status]   string  optional  

Field to filter items by status. Example: architecto

filter[id]   string  optional  

Field to filter items by id. Example: architecto

filter[patient_id]   string  optional  

Field to filter items by patient id. @queryParam filter[compensation_type] string Field to filter items by compensation type. Example: architecto

filter[client_id]   string  optional  

Field to filter items by client id. Example: architecto

filter[compensation_type]   string  optional  

Field to filter items by compensation type. Example: architecto

sort   string  optional  

Field to sort items by status,created_at. Example: architecto

Show Specific Order

requires authentication

This endpoint lets you show specific Order

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "465459c3-c9bb-4d46-948a-ae704e18d953",
        "notes": "No thing",
        "amount": 100,
        "compensation_type": {
            "key": 8,
            "value": "ONLAY"
        },
        "tooth_number": {
            "key": 30,
            "value": "TOOTH_30"
        },
        "status": {
            "key": 2,
            "value": "IN_PROGRESS"
        },
        "created_by": {
            "id": "7ae631b6-a9e7-3fd2-906e-1de795262c04",
            "name": "Miss Ima Nienow II Deja Brekke"
        },
        "created_at": "2026-01-16T19:40:58.000000Z",
        "patient": {
            "id": "00308547-1f70-45e0-9c5a-fb59b0866c7a",
            "name": "Carolyn Brekke III Pierre Bosco",
            "balance": 0
        },
        "supplier": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

Add Order for specific Supplier

requires authentication

This endpoint lets you add order for specific Supplier

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"patient_id\": \"architecto\",
    \"tooth_number\": 2,
    \"compensation_type\": 8,
    \"amount\": 39,
    \"notes\": \"g\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders"
);

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

let body = {
    "patient_id": "architecto",
    "tooth_number": 2,
    "compensation_type": 8,
    "amount": 39,
    "notes": "g"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'patient_id' => 'architecto',
            'tooth_number' => 2,
            'compensation_type' => 8,
            'amount' => 39,
            'notes' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-44d7-7216-bf72-096860e0d1c9",
        "notes": "this order",
        "amount": 50,
        "compensation_type": {
            "key": 1,
            "value": "CROWN"
        },
        "tooth_number": {
            "key": 11,
            "value": "TOOTH_11"
        },
        "status": {
            "key": 1,
            "value": "PENDING"
        },
        "created_by": {
            "id": "1983d830-fe65-3b66-8933-7cbb1f19228a",
            "name": "Bennett Kohler DDS Roosevelt Cruickshank"
        },
        "created_at": "2026-01-16T19:40:58.000000Z",
        "patient": {
            "id": "d971f9e0-4aeb-4695-8948-467d477ed68f",
            "name": "Dr. Troy Hamill Dr. Bonita Jacobson IV",
            "balance": 0
        },
        "supplier": null
    },
    "message": "The Order has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/suppliers/{supplier_id}/orders

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

Body Parameters

patient_id   string   

The id of an existing record in the patients table. Example: architecto

tooth_number   integer  optional  

Example: 2

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
compensation_type   integer  optional  

Example: 8

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
amount   number  optional  

Must be at least 0. Example: 39

notes   string  optional  

Must not be greater than 255 characters. Example: g

Update Order for specific Supplier

requires authentication

This endpoint lets you update specific order

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tooth_number\": 10,
    \"compensation_type\": 1,
    \"amount\": 27,
    \"notes\": \"n\",
    \"status\": 3
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945"
);

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

let body = {
    "tooth_number": 10,
    "compensation_type": 1,
    "amount": 27,
    "notes": "n",
    "status": 3
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tooth_number' => 10,
            'compensation_type' => 1,
            'amount' => 27,
            'notes' => 'n',
            'status' => 3,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "e54925c6-7d93-4b36-9058-5cbc4b703488",
        "notes": "new notes",
        "amount": 100,
        "compensation_type": {
            "key": 3,
            "value": "FILLING"
        },
        "tooth_number": {
            "key": 10,
            "value": "TOOTH_10"
        },
        "status": {
            "key": 3,
            "value": "COMPLETED"
        },
        "created_by": {
            "id": "b36c6d72-34bb-3ffe-84c1-b6521d53121b",
            "name": "Tommie Bradtke PhD Donnie Trantow"
        },
        "created_at": "2026-01-16T19:40:59.000000Z",
        "patient": {
            "id": "a1d81021-2fdc-42e4-a730-cca41428cc2b",
            "name": "Dr. Zora Sanford Lina White",
            "balance": 0
        },
        "supplier": null
    },
    "message": "The Order has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

Body Parameters

patient_id   string  optional  

The id of an existing record in the patients table.

tooth_number   integer  optional  

Example: 10

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
compensation_type   integer  optional  

Example: 1

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
amount   number  optional  

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

status   integer  optional  

Example: 3

Must be one of:
  • 1
  • 2
  • 3
  • 4

Delete Specific Order

requires authentication

This endpoint lets you delete specific Order

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Order has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

Show all payments for specific order

requires authentication

This endpoint lets you show all payments for specific order

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments?page=16&per_page=16&filter%5Bid%5D=architecto&filter%5Bpatient_id%5D=architecto&filter%5Border_id%5D=architecto&filter%5Bsearch%5D=architecto&sort=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[id]": "architecto",
    "filter[patient_id]": "architecto",
    "filter[order_id]": "architecto",
    "filter[search]": "architecto",
    "sort": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[id]' => 'architecto',
            'filter[patient_id]' => 'architecto',
            'filter[order_id]' => 'architecto',
            'filter[search]' => 'architecto',
            'sort' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "49ed4553-1600-4f3e-96d4-c9cc656ac2bb",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "37283e6f-48d5-3437-a9b1-59bc8405630a",
                "name": "Mrs. Janiya Barrows III Dr. Grace Herzog DDS"
            },
            "created_at": "2026-01-16T19:41:01.000000Z",
            "patient": {
                "id": "d2ef0dc9-976c-4712-9646-4dde786d1a5f",
                "name": "Mrs. Destinee Keebler Shany McDermott",
                "balance": 0
            },
            "order": {
                "id": "11a5297d-c486-4f27-a07b-093d7f6e851b",
                "amount": 300,
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                }
            }
        },
        {
            "id": "3f475073-3d51-4345-ba99-005107c2cd4b",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "7b265b62-ecb0-3c5e-9734-d03654e605cd",
                "name": "Prof. Allen Pagac Danielle Jast"
            },
            "created_at": "2026-01-16T19:41:01.000000Z",
            "patient": {
                "id": "d2ef0dc9-976c-4712-9646-4dde786d1a5f",
                "name": "Mrs. Destinee Keebler Shany McDermott",
                "balance": 0
            },
            "order": {
                "id": "11a5297d-c486-4f27-a07b-093d7f6e851b",
                "amount": 300,
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                }
            }
        },
        {
            "id": "334f49b3-8653-496d-b62a-f9ba5574dd75",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "312cb8b5-74d7-3880-99af-69c2a9519cfb",
                "name": "Prof. Ken Breitenberg II Cordia Dickinson"
            },
            "created_at": "2026-01-16T19:41:01.000000Z",
            "patient": {
                "id": "d2ef0dc9-976c-4712-9646-4dde786d1a5f",
                "name": "Mrs. Destinee Keebler Shany McDermott",
                "balance": 0
            },
            "order": {
                "id": "11a5297d-c486-4f27-a07b-093d7f6e851b",
                "amount": 300,
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                }
            }
        },
        {
            "id": "30a53fb5-faea-4dab-acba-a34d84bf9d30",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "5291ddc1-d5cc-3dec-8d07-764b9838c29d",
                "name": "Lilly Leuschke Cora Zieme"
            },
            "created_at": "2026-01-16T19:41:01.000000Z",
            "patient": {
                "id": "d2ef0dc9-976c-4712-9646-4dde786d1a5f",
                "name": "Mrs. Destinee Keebler Shany McDermott",
                "balance": 0
            },
            "order": {
                "id": "11a5297d-c486-4f27-a07b-093d7f6e851b",
                "amount": 300,
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                }
            }
        },
        {
            "id": "3044c2b2-d46e-44fe-ae3c-9d2bcba13587",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "523b3f2e-649c-31ea-8917-00321975cd3f",
                "name": "Elmore Heathcote Ms. Carli Emard II"
            },
            "created_at": "2026-01-16T19:41:01.000000Z",
            "patient": {
                "id": "d2ef0dc9-976c-4712-9646-4dde786d1a5f",
                "name": "Mrs. Destinee Keebler Shany McDermott",
                "balance": 0
            },
            "order": {
                "id": "11a5297d-c486-4f27-a07b-093d7f6e851b",
                "amount": 300,
                "status": {
                    "key": 4,
                    "value": "CANCELED"
                }
            }
        }
    ],
    "meta": {
        "pagination": {
            "total": 10,
            "per_page": 5,
            "count": 5,
            "current_page": 2
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

Query Parameters

page   integer  optional  

Field to select page. Defaults to '1'. Example: 16

per_page   integer  optional  

Field to select items per page. Defaults to '15'. Example: 16

filter[id]   string  optional  

Field to filter items by id. Example: architecto

filter[patient_id]   string  optional  

Field to filter items by patient id. Example: architecto

filter[order_id]   string  optional  

Field to filter items by order id . Example: architecto

filter[search]   string  optional  

Field to filter items by first_name,last_name for patient. Example: architecto

sort   string  optional  

Field to sort items by created_at. Example: architecto

Add Payment for specific Order

requires authentication

This endpoint lets you add payment for specific order

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019bc853-4a14-71fc-a872-3992a050f289",
        "amount": -200,
        "notes": "this payment",
        "created_by": {
            "id": "894b189f-cd9e-3394-90f4-0d3177bb611d",
            "name": "Sarina Strosin II Jaydon Mante"
        },
        "created_at": "2026-01-16T19:41:00.000000Z",
        "patient": {
            "id": "302fd2e5-6567-4e82-86ca-f3f4150aad04",
            "name": "Dr. Darwin Bergstrom Dovie Miller",
            "balance": 0
        },
        "order": {
            "id": "b4129c74-f468-46cc-90d5-777635132831",
            "amount": 100,
            "status": {
                "key": 4,
                "value": "CANCELED"
            }
        }
    },
    "message": "The Payment has been added successfully.",
    "status_code": 200
}
 

Request      

POST api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}/payments

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

Body Parameters

amount   integer   

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Update Payment for specific Order

requires authentication

This endpoint lets you update specific order

Example request:
curl --request PUT \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount\": 27,
    \"notes\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

let body = {
    "amount": 27,
    "notes": "n"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount' => 27,
            'notes' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "ca154dfb-10de-4b3a-a1c3-390cde9613b6",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "1ebd17c2-b19a-3e40-bc0f-08098b437d71",
            "name": "Miss Melba Balistreri MD Odessa Strosin III"
        },
        "created_at": "2026-01-16T19:41:00.000000Z",
        "patient": {
            "id": "1c401a9c-20e6-4c6b-97c5-6752be33dffb",
            "name": "Alisha Beer Dr. Claud Runolfsdottir MD",
            "balance": 0
        },
        "order": {
            "id": "0fa80e8b-fcba-4a6e-8dab-e86386a8b641",
            "amount": 100,
            "status": {
                "key": 4,
                "value": "CANCELED"
            }
        }
    },
    "message": "The Payment has been updated successfully.",
    "status_code": 200
}
 

Request      

PUT api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}/payments/{payment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

payment_id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

Body Parameters

amount   integer  optional  

Must be at least 0. Example: 27

notes   string  optional  

Must not be greater than 255 characters. Example: n

Delete Specific Payment

requires authentication

This endpoint lets you delete specific Payment

Example request:
curl --request DELETE \
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments/019bc854-93c1-7134-aeba-bb80d579f130" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments/019bc854-93c1-7134-aeba-bb80d579f130"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/suppliers/019bc854-9454-71b5-919d-f889d7ed7f68/orders/019bc854-9463-73ea-8429-e67eed465945/payments/019bc854-93c1-7134-aeba-bb80d579f130';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "The Payment has been deleted successfully.",
    "status_code": 200
}
 

Request      

DELETE api/v1/companies/{company_id}/suppliers/{supplier_id}/orders/{order_id}/payments/{payment_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

supplier_id   string   

The ID of the supplier. Example: 019bc854-9454-71b5-919d-f889d7ed7f68

order_id   string   

The ID of the order. Example: 019bc854-9463-73ea-8429-e67eed465945

payment_id   string   

The ID of the payment. Example: 019bc854-93c1-7134-aeba-bb80d579f130

User

APIs for User Management

Auth management

APIs for login, register and all about auth

Validate phone

requires authentication

This endpoint lets you verify phone using otp code

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/auth/verify-otp/phone" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"otp_code\": \"architecto\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/auth/verify-otp/phone"
);

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

let body = {
    "otp_code": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/auth/verify-otp/phone';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'otp_code' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "token_type": "bearer",
        "access_token": "KST9t02RtoedjlWanWWk5sNzVIRaNzzm352xeuac",
        "access_expires_at": "2026-02-15T19:40:27.000000Z",
        "profile": {
            "id": "7a3f72c7-9436-3fff-a10d-b15525dbb2e6",
            "name": "Kaela Kihn Kaycee Cremin",
            "username": "Emiliano Lehner",
            "email": "[email protected]",
            "phone": "+963994635477",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 3,
                "value": "DOCTOR"
            },
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": null,
            "permissions": null,
            "company": null
        }
    },
    "message": "Phone verified successfully",
    "status_code": 200
}
 

Request      

POST api/v1/auth/verify-otp/phone

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

otp_code   string   

Example: architecto

Show user's profile

requires authentication

This endpoint lets you show user's authenticated profile

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/auth/profile" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/auth/profile"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/auth/profile';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "9bc245ec-2aaa-4c28-a301-95d779757251",
        "name": "Test Test",
        "username": "test_test",
        "email": "[email protected]",
        "phone": "+9639487222",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "type": {
            "key": 1,
            "value": "ADMIN"
        },
        "image": "http://localhost/storage/users/user.png",
        "has_verified_email": true,
        "has_verified_phone": true,
        "roles": null,
        "permissions": null,
        "company": null
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/auth/profile

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Login

This endpoint lets you log in with specific user

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/auth/login" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"username\": \"b\",
    \"password\": \"]|{+-0pBNvYg\",
    \"udid\": \"architecto\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/auth/login"
);

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

let body = {
    "username": "b",
    "password": "]|{+-0pBNvYg",
    "udid": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/auth/login';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'username' => 'b',
            'password' => ']|{+-0pBNvYg',
            'udid' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "token_type": "bearer",
        "access_token": "tS7lwXRs1NCYiFPU0rgea1yODABPvBNMT3CV5DWs",
        "access_expires_at": "2026-02-15T19:40:26.000000Z",
        "profile": {
            "id": "feb87bf2-9c75-3ec0-b238-33c31bfefd9e",
            "name": "Al Wintheiser Demetrius Kessler DVM",
            "username": "root",
            "email": "[email protected]",
            "phone": "+1 (830) 880-6589",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 2,
                "value": "LABORATORY"
            },
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": [
                {
                    "id": "019bc852-c7a1-70da-96ed-d10ed4cf336f",
                    "name": "ADMINISTRATOR",
                    "description": "Et enim veniam fugit natus dolor."
                }
            ],
            "permissions": [
                {
                    "name": "INDEX_USER"
                }
            ],
            "company": {
                "id": "3f352999-61c4-486f-8fdf-8ed933275736",
                "name": "Maximo Stracke"
            }
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

POST api/v1/auth/login

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

username   string   

Must not be greater than 255 characters. Example: b

password   string   

Must be at least 6 characters. Example: ]|{+-0pBNvYg

udid   string  optional  

Example: architecto

fcm_token   string  optional  

This field is required when udid is present.

Logout

requires authentication

This endpoint lets you log out

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/auth/logout?token=architecto&udid=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/auth/logout"
);

const params = {
    "token": "architecto",
    "udid": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/auth/logout';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'token' => 'architecto',
            'udid' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Successfully logged out",
    "status_code": 200
}
 

Request      

GET api/v1/auth/logout

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

token   string   

User's token. Example: architecto

udid   string  optional  

User's device udid. Example: architecto

Body Parameters

udid   string  optional  

Request forget password

This endpoint lets you update request forget password OTP

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/auth/request-forget-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"phone\": \"architecto\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/auth/request-forget-password"
);

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

let body = {
    "phone": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/auth/request-forget-password';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'phone' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Password reset Code sent successfully",
    "status_code": 200
}
 

Request      

POST api/v1/auth/request-forget-password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

phone   string   

The phone of an existing record in the users table. Example: architecto

Forget password

This endpoint lets you update user password with OTP verification

Example request:
curl --request POST \
    "https://api-dev-medlab.qomratech.com/api/v1/auth/forget-password" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"otp_code\": \"569775\",
    \"password\": \"]|{+-0pBNvYg\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/auth/forget-password"
);

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

let body = {
    "otp_code": "569775",
    "password": "]|{+-0pBNvYg"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/auth/forget-password';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'otp_code' => '569775',
            'password' => ']|{+-0pBNvYg',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Password reset successful",
    "status_code": 200
}
 

Request      

POST api/v1/auth/forget-password

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

phone   string  optional  

The phone of an existing record in the users table.

otp_code   string   

Must be 6 digits. Example: 569775

password   string   

Must be at least 6 characters. Example: ]|{+-0pBNvYg

My Medical Reports

Access to the authenticated user's medical reports and exports

List user's laboratory medical reports

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports?page=16&per_page=16&filter%5Bsearch%5D=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[search]": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[search]' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "2d54f3dd-b290-4940-9a76-3b9e42d7e52d",
            "patient": {
                "name": "John Doe",
                "age": null
            },
            "laboratory": {
                "id": "531fb492-9d1a-3357-bb81-0eef75af3715",
                "name": "Clare Beer Ettie Lockman"
            },
            "sample_number": "SAMPLE-95997",
            "notes": "Necessitatibus eveniet cumque dolorum nemo.",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "type": {
                "key": 2,
                "value": "LABORATORY"
            },
            "created_at": "2026-01-16T19:41:10.000000Z"
        }
    ],
    "meta": {
        "pagination": {
            "total": 1,
            "per_page": 15,
            "count": 1,
            "current_page": 1
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/my/lab-medical-reports

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Items per page. Defaults to 15. Example: 16

filter[search]   string  optional  

Search by sample_number or notes. Example: architecto

Show a specific laboratory medical report for the user

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports/architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports/architecto"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports/architecto';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "f6037a54-9d1d-4ecf-8550-fafe9d50dcd0",
        "patient": {
            "name": "John Doe",
            "age": null
        },
        "laboratory": {
            "id": "d9462532-20ec-33a1-8f20-965374bd3a75",
            "name": "Sister Barrows Elaina Renner"
        },
        "sample_number": null,
        "notes": null,
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "gender": {
            "key": 1,
            "value": "MALE"
        },
        "type": {
            "key": 2,
            "value": "LABORATORY"
        },
        "created_at": "2026-01-16T19:41:10.000000Z",
        "medical_tests": [
            {
                "id": "f3f6a38d-5b83-4b57-a652-7ae5a3108e7f",
                "meta_test": {
                    "id": "d5f40888-dde2-4a30-b8f6-89b72204fb3c",
                    "display_name_ar": "et harum",
                    "display_name_en": "rem nihil",
                    "short_name_ar": "saepe",
                    "short_name_en": "et",
                    "door": "CLINIC",
                    "unit_number": 1,
                    "lab_unit_price": 86,
                    "high_life_range": "7.1",
                    "low_life_range": null,
                    "sample_ar": "rerum",
                    "sample_en": "quia",
                    "discipline_ar": "dolorem",
                    "discipline_en": "sint",
                    "status": {
                        "key": 1,
                        "value": "ACTIVE"
                    },
                    "created_at": "2026-01-16T19:41:10.000000Z",
                    "company": {
                        "id": "92102e1f-8996-4bf0-9767-e26918091a93",
                        "name": "Emely Koss"
                    }
                },
                "normal_ranges": [
                    {
                        "id": "c356b386-504b-4314-a5fd-673e937cab52",
                        "meta_test_id": "d5f40888-dde2-4a30-b8f6-89b72204fb3c",
                        "gender": {
                            "key": 1,
                            "value": "MALE"
                        },
                        "from_age": 40,
                        "to_age": 59,
                        "value": "2.82",
                        "unit": "mmol/L",
                        "low_result": "1.42",
                        "high_result": "15.71",
                        "status": {
                            "key": 2,
                            "value": "INACTIVE"
                        },
                        "created_at": "2026-01-16T19:41:10.000000Z"
                    }
                ],
                "result": "-",
                "notes": null,
                "result_status": {
                    "key": 2,
                    "value": "HIDDEN"
                },
                "status": {
                    "key": 1,
                    "value": "ACTIVE"
                },
                "created_at": "2026-01-16T19:41:10.000000Z"
            }
        ]
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/my/lab-medical-reports/{medical_report_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: architecto

Export user's laboratory medical report as a file

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports/architecto/export" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports/architecto/export"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/lab-medical-reports/architecto/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthorized",
    "status_code": 401
}
 

Request      

GET api/v1/companies/{company_id}/my/lab-medical-reports/{medical_report_id}/export

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: architecto

List user's client medical reports (PDF)

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/client-medical-reports?page=16&per_page=16&filter%5Bsearch%5D=architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/client-medical-reports"
);

const params = {
    "page": "16",
    "per_page": "16",
    "filter[search]": "architecto",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/client-medical-reports';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'page' => '16',
            'per_page' => '16',
            'filter[search]' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": "0dd051f3-7730-45f6-b642-4c290a736b5d",
            "patient": {
                "name": "John Doe",
                "age": 6
            },
            "laboratory": {
                "id": "ba9696ff-006b-35f5-a81b-ddb9694b228d",
                "name": "Mrs. Wava Deckow Jr. Dr. Syble Friesen"
            },
            "sample_number": "SAMPLE-77847",
            "notes": null,
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "type": {
                "key": 1,
                "value": "CLIENT"
            },
            "created_at": "2026-01-16T19:41:09.000000Z"
        }
    ],
    "meta": {
        "pagination": {
            "total": 1,
            "per_page": 15,
            "count": 1,
            "current_page": 1
        }
    },
    "message": "success",
    "status_code": 200
}
 

Request      

GET api/v1/companies/{company_id}/my/client-medical-reports

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

Query Parameters

page   integer  optional  

Page number. Defaults to 1. Example: 16

per_page   integer  optional  

Items per page. Defaults to 15. Example: 16

filter[search]   string  optional  

Search by sample_number or notes. Example: architecto

Export user's client medical report as a file

requires authentication

Example request:
curl --request GET \
    --get "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/client-medical-reports/architecto/export" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/client-medical-reports/architecto/export"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019bc854-807c-720a-876a-05ababdfb908/my/client-medical-reports/architecto/export';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Unauthorized",
    "status_code": 401
}
 

Request      

GET api/v1/companies/{company_id}/my/client-medical-reports/{medical_report_id}/export

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string   

The ID of the company. Example: 019bc854-807c-720a-876a-05ababdfb908

medical_report_id   string   

The ID of the medical report. Example: architecto

Enums

Appointment Status

PENDING: 1

SCHEDULED: 2

PROCESSING: 3

COMPLETED: 4

CANCELLED: 5

Company Status

ACTIVE: 1

INACTIVE: 2

ON_HOLD: 3

Company Type

CLINIC: 1

LABORATORY: 2

Compensation Type

CROWN: 1

BRIDGE: 2

FILLING: 3

VENEER: 4

IMPLANT: 5

DENTURE: 6

INLAY: 7

ONLAY: 8

WHITENING: 9

Currency Enum

USD: 1

EUR: 2

AED: 3

Gender Enum

MALE: 1

FEMALE: 2

Invoice Status

DRAFT: 1

OPEN: 2

PAID: 3

VOID: 4

OVERDUE: 5

Medical Report Type

CLIENT: 1

LABORATORY: 2

Order Status

PENDING: 1

IN_PROGRESS: 2

COMPLETED: 3

CANCELED: 4

Payment Method

CASH: 1

BANK: 2

CARD: 3

TRANSFER: 4

Permission Type

INDEX_USER: INDEX_USER

SHOW_USER: SHOW_USER

STORE_USER: STORE_USER

UPDATE_USER: UPDATE_USER

DELETE_USER: DELETE_USER

SHOW_ROLE: SHOW_ROLE

STORE_ROLE: STORE_ROLE

DELETE_ROLE: DELETE_ROLE

UPDATE_ROLE: UPDATE_ROLE

INDEX_ROLE: INDEX_ROLE

EDIT_ROLE_PERMISSION: EDIT_ROLE_PERMISSION

SHOW_ROLE_PERMISSION: SHOW_ROLE_PERMISSION

SHOW_USER_ROLE: SHOW_USER_ROLE

EDIT_USER_ROLE: EDIT_USER_ROLE

SHOW_PERMISSIONS: SHOW_PERMISSIONS

SEND_USER_EMAIL_OTP: SEND_USER_EMAIL_OTP

INDEX_COMPANY: INDEX_COMPANY

SHOW_COMPANY: SHOW_COMPANY

STORE_COMPANY: STORE_COMPANY

DELETE_COMPANY: DELETE_COMPANY

UPDATE_COMPANY: UPDATE_COMPANY

INDEX_APPOINTMENT: INDEX_APPOINTMENT

SHOW_APPOINTMENT: SHOW_APPOINTMENT

STORE_APPOINTMENT: STORE_APPOINTMENT

UPDATE_APPOINTMENT: UPDATE_APPOINTMENT

DELETE_APPOINTMENT: DELETE_APPOINTMENT

INDEX_CLIENT: INDEX_CLIENT

SHOW_CLIENT: SHOW_CLIENT

STORE_CLIENT: STORE_CLIENT

UPDATE_CLIENT: UPDATE_CLIENT

DELETE_CLIENT: DELETE_CLIENT

INDEX_PAYMENT: INDEX_PAYMENT

SHOW_PAYMENT: SHOW_PAYMENT

STORE_PAYMENT: STORE_PAYMENT

UPDATE_PAYMENT: UPDATE_PAYMENT

DELETE_PAYMENT: DELETE_PAYMENT

DELETE_CLIENT_PAYMENT: DELETE_CLIENT_PAYMENT

INDEX_CLIENT_PAYMENT: INDEX_CLIENT_PAYMENT

SHOW_CLIENT_PAYMENT: SHOW_CLIENT_PAYMENT

STORE_CLIENT_PAYMENT: STORE_CLIENT_PAYMENT

UPDATE_CLIENT_PAYMENT: UPDATE_CLIENT_PAYMENT

INDEX_USER_COMPANY: INDEX_USER_COMPANY

SHOW_USER_COMPANY: SHOW_USER_COMPANY

STORE_USER_COMPANY: STORE_USER_COMPANY

UPDATE_USER_COMPANY: UPDATE_USER_COMPANY

DELETE_USER_COMPANY: DELETE_USER_COMPANY

ADD_NOTE_TO_TOOTH: ADD_NOTE_TO_TOOTH

INDEX_NOTES: INDEX_NOTES

UPDATE_NOTE: UPDATE_NOTE

DELETE_NOTES: DELETE_NOTES

INDEX_SUPPLIER: INDEX_SUPPLIER

SHOW_SUPPLIER: SHOW_SUPPLIER

STORE_SUPPLIER: STORE_SUPPLIER

UPDATE_SUPPLIER: UPDATE_SUPPLIER

DELETE_SUPPLIER: DELETE_SUPPLIER

INDEX_ORDER: INDEX_ORDER

SHOW_ORDER: SHOW_ORDER

STORE_ORDER: STORE_ORDER

UPDATE_ORDER: UPDATE_ORDER

DELETE_ORDER: DELETE_ORDER

INDEX_ORDER_PAYMENT: INDEX_ORDER_PAYMENT

STORE_ORDER_PAYMENT: STORE_ORDER_PAYMENT

UPDATE_ORDER_PAYMENT: UPDATE_ORDER_PAYMENT

DELETE_ORDER_PAYMENT: DELETE_ORDER_PAYMENT

INDEX_META_TEST: INDEX_META_TEST

SHOW_META_TEST: SHOW_META_TEST

STORE_META_TEST: STORE_META_TEST

UPDATE_META_TEST: UPDATE_META_TEST

DELETE_META_TEST: DELETE_META_TEST

INDEX_NORMAL_RANGE: INDEX_NORMAL_RANGE

SHOW_NORMAL_RANGE: SHOW_NORMAL_RANGE

STORE_NORMAL_RANGE: STORE_NORMAL_RANGE

UPDATE_NORMAL_RANGE: UPDATE_NORMAL_RANGE

DELETE_NORMAL_RANGE: DELETE_NORMAL_RANGE

INDEX_MEDICAL_REPORT: INDEX_MEDICAL_REPORT

SHOW_MEDICAL_REPORT: SHOW_MEDICAL_REPORT

STORE_MEDICAL_REPORT: STORE_MEDICAL_REPORT

UPDATE_MEDICAL_REPORT: UPDATE_MEDICAL_REPORT

DELETE_MEDICAL_REPORT: DELETE_MEDICAL_REPORT

INDEX_MEDICAL_TEST: INDEX_MEDICAL_TEST

SHOW_MEDICAL_TEST: SHOW_MEDICAL_TEST

STORE_MEDICAL_TEST: STORE_MEDICAL_TEST

UPDATE_MEDICAL_TEST: UPDATE_MEDICAL_TEST

DELETE_MEDICAL_TEST: DELETE_MEDICAL_TEST

INDEX_PLAN: INDEX_PLAN

SHOW_PLAN: SHOW_PLAN

STORE_PLAN: STORE_PLAN

UPDATE_PLAN: UPDATE_PLAN

DELETE_PLAN: DELETE_PLAN

INDEX_SUBSCRIPTION: INDEX_SUBSCRIPTION

SHOW_SUBSCRIPTION: SHOW_SUBSCRIPTION

STORE_SUBSCRIPTION: STORE_SUBSCRIPTION

UPDATE_SUBSCRIPTION: UPDATE_SUBSCRIPTION

DELETE_SUBSCRIPTION: DELETE_SUBSCRIPTION

INDEX_INVOICE: INDEX_INVOICE

SHOW_INVOICE: SHOW_INVOICE

STORE_INVOICE: STORE_INVOICE

UPDATE_INVOICE: UPDATE_INVOICE

DELETE_INVOICE: DELETE_INVOICE

INDEX_INVOICE_PAYMENT: INDEX_INVOICE_PAYMENT

SHOW_INVOICE_PAYMENT: SHOW_INVOICE_PAYMENT

STORE_INVOICE_PAYMENT: STORE_INVOICE_PAYMENT

UPDATE_INVOICE_PAYMENT: UPDATE_INVOICE_PAYMENT

DELETE_INVOICE_PAYMENT: DELETE_INVOICE_PAYMENT

Plan Period Enum

MONTHLY: 1

YEARLY: 2

Result Status Enum

VISIBLE: 1

HIDDEN: 2

Role Type

SYSTEM_ADMINISTRATOR: SYSTEM_ADMINISTRATOR

ADMINISTRATOR: ADMINISTRATOR

CLINIC_ADMIN: CLINIC_ADMIN

DATA_ENTRY: DATA_ENTRY

LABORATORY_ADMIN: LABORATORY_ADMIN

LABORATORY_SUBADMIN: LABORATORY_SUBADMIN

Status Enum

ACTIVE: 1

INACTIVE: 2

Subscription Status

TRIAL: 1

ACTIVE: 2

PAST_DUE: 3

CANCELED: 4

Tooth Number

TOOTH_1: 1

TOOTH_2: 2

TOOTH_3: 3

TOOTH_4: 4

TOOTH_5: 5

TOOTH_6: 6

TOOTH_7: 7

TOOTH_8: 8

TOOTH_9: 9

TOOTH_10: 10

TOOTH_11: 11

TOOTH_12: 12

TOOTH_13: 13

TOOTH_14: 14

TOOTH_15: 15

TOOTH_16: 16

TOOTH_17: 17

TOOTH_18: 18

TOOTH_19: 19

TOOTH_20: 20

TOOTH_21: 21

TOOTH_22: 22

TOOTH_23: 23

TOOTH_24: 24

TOOTH_25: 25

TOOTH_26: 26

TOOTH_27: 27

TOOTH_28: 28

TOOTH_29: 29

TOOTH_30: 30

TOOTH_31: 31

TOOTH_32: 32

User Type Enum

ADMIN: 1

LABORATORY: 2

DOCTOR: 3

DATA_ENTRY: 4

LABORATORY_SUBADMIN: 5