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/019990ce-ab0c-709d-a753-daad779c0287/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/019990ce-ab0c-709d-a753-daad779c0287/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/019990ce-ab0c-709d-a753-daad779c0287/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": "019990cd-63d0-7188-83db-f30b9e97dc1d",
            "name": "Kenya Kuhlman",
            "description": null
        },
        {
            "id": "019990cd-63b9-7121-a668-56862da00db9",
            "name": "Mrs. Lavinia Balistreri",
            "description": null
        },
        {
            "id": "019990cd-63a9-7115-9d2a-569fe29531ab",
            "name": "Pablo Dach",
            "description": null
        },
        {
            "id": "019990cd-6398-7379-9ea6-4202bef1a870",
            "name": "Edyth Beer",
            "description": null
        },
        {
            "id": "019990cd-6387-71e5-83fa-d5af811be750",
            "name": "Cielo Dach MD",
            "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: 019990ce-ab0c-709d-a753-daad779c0287

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/019990ce-ab0c-709d-a753-daad779c0287/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/019990ce-ab0c-709d-a753-daad779c0287/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/019990ce-ab0c-709d-a753-daad779c0287/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: 019990ce-ab0c-709d-a753-daad779c0287

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": "019990cd-6436-722a-a0c1-040b1c92beae",
            "name": "Percival Parisian",
            "description": "Ab iusto vel magni sit sint."
        },
        {
            "id": "019990cd-642d-7230-8e02-1a818ffc5170",
            "name": "Katherine Marquardt",
            "description": "Deleniti ut qui sit beatae iure quas."
        },
        {
            "id": "019990cd-641a-73d4-a5b1-e070ca84a66c",
            "name": "Mrs. Alaina Tromp",
            "description": "Quod magni voluptate qui facere iste consequatur."
        },
        {
            "id": "019990cd-63f8-7091-a5c0-16dac28e8d2b",
            "name": "Trisha Kozey",
            "description": "In qui veniam nam tempora ipsum et."
        },
        {
            "id": "019990cd-63d6-7089-87a6-1962b23a574d",
            "name": "Jamar Okuneva",
            "description": "Id et officia numquam in veniam."
        }
    ],
    "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": "019990cd-686c-70f2-8da4-3394f757559e",
        "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/019990ce-ab0c-709d-a753-daad779c0287" \
    --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/019990ce-ab0c-709d-a753-daad779c0287"
);

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/019990ce-ab0c-709d-a753-daad779c0287';
$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": "019990cd-64fb-720c-8b01-47e5631e2923",
        "name": "Isaias Sipes Jr.",
        "description": "Et repellendus ea dolorum et quas."
    },
    "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: 019990ce-ab0c-709d-a753-daad779c0287

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/019990ce-ab0c-709d-a753-daad779c0287" \
    --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/019990ce-ab0c-709d-a753-daad779c0287"
);

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/019990ce-ab0c-709d-a753-daad779c0287';
$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": "019990cd-68ed-72d7-8c15-7d24ce01dba5",
        "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: 019990ce-ab0c-709d-a753-daad779c0287

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/019990ce-ab0c-709d-a753-daad779c0287" \
    --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/019990ce-ab0c-709d-a753-daad779c0287"
);

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/019990ce-ab0c-709d-a753-daad779c0287';
$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: 019990ce-ab0c-709d-a753-daad779c0287

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/019990ce-ae94-7379-8c99-96169fc5b566/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/019990ce-ae94-7379-8c99-96169fc5b566/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/019990ce-ae94-7379-8c99-96169fc5b566/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": "019990cd-7c69-7365-80db-159c2774b11e",
            "name": "Jillian Powlowski",
            "description": "Quam eos dolorem ducimus voluptas."
        },
        {
            "id": "019990cd-7c64-7005-94e0-7b65defb8199",
            "name": "Ms. Maude Berge",
            "description": "Sed tempora at veniam totam adipisci."
        },
        {
            "id": "019990cd-7c60-72e7-8f23-d1b80754f7f9",
            "name": "Arvid Rempel",
            "description": "Laborum vel id iure dolor reiciendis."
        },
        {
            "id": "019990cd-7c5b-720f-b348-f4006b1eb506",
            "name": "Prof. Lavinia Shanahan",
            "description": "Consectetur dolor nostrum aut unde."
        },
        {
            "id": "019990cd-7c57-73df-8a0c-e0b715eaef40",
            "name": "Fausto Skiles",
            "description": "Minima autem in autem."
        }
    ],
    "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: 019990ce-ae94-7379-8c99-96169fc5b566

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/019990ce-ae94-7379-8c99-96169fc5b566/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/019990ce-ae94-7379-8c99-96169fc5b566/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/019990ce-ae94-7379-8c99-96169fc5b566/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: 019990ce-ae94-7379-8c99-96169fc5b566

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": "2e9265ca-649f-385b-8c4e-7a246ddff7d2",
        "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/RmJPHNMGCXfWLR9PYELXuIFwNqNo71lGflDGlwDv.jpg",
        "has_verified_email": true,
        "has_verified_phone": true,
        "roles": null,
        "company": {
            "id": "4b110387-bfe6-4382-8555-846fbe8dfc1b",
            "name": "Rebeka Altenwerth PhD"
        }
    },
    "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": "a180f5a3-9386-3523-9516-7660ed6016e2",
            "name": "Linnea O'Reilly Zoey Ferry",
            "first_name": "Linnea O'Reilly",
            "last_name": "Zoey Ferry",
            "username": "Ofelia Kiehn",
            "email": "[email protected]",
            "phone": "+1-910-238-4846",
            "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": "9c80edca-02b7-378e-b41e-e09b76648bc2",
            "name": "Ernestine Heaney Winona Morar",
            "first_name": "Ernestine Heaney",
            "last_name": "Winona Morar",
            "username": "Vito Strosin",
            "email": "[email protected]",
            "phone": "+1.608.780.0474",
            "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,
            "roles": null,
            "company": null
        },
        {
            "id": "92312fee-a78d-390c-b2a0-3ac8b720d5ad",
            "name": "Dr. Luis Haley Prof. Dudley Mueller V",
            "first_name": "Dr. Luis Haley",
            "last_name": "Prof. Dudley Mueller V",
            "username": "Rey Ebert",
            "email": "[email protected]",
            "phone": "+1.518.554.0466",
            "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": "76ceff51-437c-312f-b44a-17072d0e8a53",
            "name": "Ron Ruecker I Terry Wiza",
            "first_name": "Ron Ruecker I",
            "last_name": "Terry Wiza",
            "username": "Roma Beatty",
            "email": "[email protected]",
            "phone": "+17708161488",
            "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,
            "roles": null,
            "company": null
        },
        {
            "id": "66577e87-9a43-3505-aa34-bfd0bfc435d7",
            "name": "Dillon Zboncak Kris Volkman",
            "first_name": "Dillon Zboncak",
            "last_name": "Kris Volkman",
            "username": "Norene McCullough",
            "email": "[email protected]",
            "phone": "+1-678-549-9869",
            "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
        }
    ],
    "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=3"\
    --form "status=1"\
    --form "notes=w"\
    --form "company_id=architecto"\
    --form "is_owner="\
    --form "image=@/tmp/phpcCEAIN" 
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', '3');
body.append('status', '1');
body.append('notes', 'w');
body.append('company_id', 'architecto');
body.append('is_owner', '');
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' => '3'
            ],
            [
                'name' => 'status',
                'contents' => '1'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'company_id',
                'contents' => 'architecto'
            ],
            [
                'name' => 'is_owner',
                'contents' => ''
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phpcCEAIN', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-83bf-70e6-bcfc-32ea9d633e4a",
        "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/68d94b23bc1d0.jpg",
        "has_verified_email": false,
        "has_verified_phone": false,
        "roles": null,
        "company": {
            "id": "d2eafda9-7e29-4957-b59f-934c95b2694a",
            "name": "Okey Bogisich"
        }
    },
    "message": "The user 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/phpcCEAIN

type   integer   

Example: 3

Must be one of:
  • 1
  • 2
  • 3
  • 4
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: false

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/019990ce-ae94-7379-8c99-96169fc5b566" \
    --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/019990ce-ae94-7379-8c99-96169fc5b566"
);

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/019990ce-ae94-7379-8c99-96169fc5b566';
$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": "20f43f32-0388-3a23-8c0b-25574ec20ee9",
        "name": "Miss Malinda Graham IV Jarret Erdman",
        "first_name": "Miss Malinda Graham IV",
        "last_name": "Jarret Erdman",
        "username": "Spencer Keebler",
        "email": "[email protected]",
        "phone": "+1-580-560-6925",
        "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,
        "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: 019990ce-ae94-7379-8c99-96169fc5b566

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/019990ce-ae94-7379-8c99-96169fc5b566" \
    --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=1"\
    --form "notes=w"\
    --form "is_owner=1"\
    --form "image=@/tmp/phpKIdCEe" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/users/019990ce-ae94-7379-8c99-96169fc5b566"
);

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', '1');
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/019990ce-ae94-7379-8c99-96169fc5b566';
$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' => '1'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'is_owner',
                'contents' => '1'
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phpKIdCEe', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "a7264f3b-b3b4-3cff-8632-55b541e90dc0",
        "name": "Test Test",
        "first_name": "Test",
        "last_name": "test",
        "username": "test_test",
        "email": "[email protected]",
        "phone": "+963994622354",
        "status": {
            "key": 2,
            "value": "INACTIVE"
        },
        "type": {
            "key": 1,
            "value": "ADMIN"
        },
        "notes": null,
        "image": "http://localhost/storage/users/68d94b23b5c16.jpg",
        "has_verified_email": true,
        "has_verified_phone": true,
        "roles": null,
        "company": {
            "id": "5236ee35-53f9-4c3e-aeff-621623f5d630",
            "name": "Mrs. Shanelle Lang"
        }
    },
    "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: 019990ce-ae94-7379-8c99-96169fc5b566

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/phpKIdCEe

type   integer  optional  

Example: 4

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

Example: 1

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/019990ce-ae94-7379-8c99-96169fc5b566" \
    --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/019990ce-ae94-7379-8c99-96169fc5b566"
);

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/019990ce-ae94-7379-8c99-96169fc5b566';
$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: 019990ce-ae94-7379-8c99-96169fc5b566

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": "019990cd-5b39-7186-8029-605c4c84a47b",
                    "name": "Dora Kozey II"
                },
                {
                    "id": "019990cd-5b40-735e-b1c1-159c9c23b926",
                    "name": "Gage Sporer"
                },
                {
                    "id": "019990cd-5b45-7215-83ce-287d78516ef9",
                    "name": "Kaela Flatley III"
                },
                {
                    "id": "019990cd-5b49-73ee-9025-39b5ade83a83",
                    "name": "Dr. Clyde Weber V"
                },
                {
                    "id": "019990cd-5b4e-7387-9cca-aeb488ae8dfd",
                    "name": "Ms. Rosalinda Balistreri"
                }
            ]
        },
        {
            "group": "Role Management",
            "permissions": [
                {
                    "id": "019990cd-5b59-73e9-9833-4a3d683836ad",
                    "name": "Sabina Ebert"
                },
                {
                    "id": "019990cd-5b5e-71e0-a770-bd2ddcf6af93",
                    "name": "Salvatore Quigley"
                },
                {
                    "id": "019990cd-5b62-7014-90db-1da18f7827f7",
                    "name": "Davon Reilly"
                },
                {
                    "id": "019990cd-5b66-7222-ab10-1918c8c1cd16",
                    "name": "Okey Vandervort III"
                },
                {
                    "id": "019990cd-5b6b-7349-872e-bd89085f00f2",
                    "name": "Dr. Valentina Jenkins Jr."
                }
            ]
        },
        {
            "group": "Table Management",
            "permissions": [
                {
                    "id": "019990cd-5b75-716b-9a4a-ba4153b30748",
                    "name": "Ms. Bonnie Kunde Jr."
                },
                {
                    "id": "019990cd-5b7a-73f9-9e7a-9d55c9bc6385",
                    "name": "Prof. Destini Botsford"
                },
                {
                    "id": "019990cd-5b7f-706d-8d8d-0f18ee6da798",
                    "name": "Abe Wolff PhD"
                },
                {
                    "id": "019990cd-5b8f-701e-a082-9adeb665e358",
                    "name": "Prof. Zoie Hoeger"
                },
                {
                    "id": "019990cd-5b94-7388-b55f-1ffe013e1fe6",
                    "name": "Kory Erdman"
                }
            ]
        },
        {
            "group": "",
            "permissions": [
                {
                    "id": "019990cd-5bad-72a1-89f3-8efa99263a64",
                    "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/019990ce-a812-72a2-b9f5-98918b61f022" \
    --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/019990ce-a812-72a2-b9f5-98918b61f022"
);

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/019990ce-a812-72a2-b9f5-98918b61f022';
$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": "019990cd-5987-7318-a4ba-a95f988f1adb",
        "name": "Lisette Brakus PhD",
        "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: 019990ce-a812-72a2-b9f5-98918b61f022

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": "9892d29f-64b6-400d-948d-808422ad94e4",
            "name": "Mr. Amos Reichel DVM",
            "name_ar": "Garett White",
            "url": "[email protected]",
            "abbreviation": "Ut molestias eveniet architecto dolor totam illo commodi et.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "848-918-7499",
            "status": {
                "key": 3,
                "value": "ON_HOLD"
            },
            "email": "[email protected]",
            "address": "7255 Lesly Meadows Apt. 530\nKurtville, OK 11324-9141",
            "address_ar": "631 Wintheiser Neck\nVidashire, IL 41689-4079",
            "users": null
        },
        {
            "id": "90c55f15-40fe-49ec-9cf4-36c2861742a8",
            "name": "Tate West",
            "name_ar": "Annette Homenick DVM",
            "url": "[email protected]",
            "abbreviation": "Est delectus mollitia et.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "(380) 444-5498",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "email": "[email protected]",
            "address": "370 Harvey Mountains Suite 202\nSouth Blazeshire, NJ 79034",
            "address_ar": "973 Taya Ville Apt. 462\nNorth Dianahaven, MS 40810",
            "users": null
        },
        {
            "id": "77310d24-fbbf-4349-93d3-b02371199747",
            "name": "Emilia Prosacco",
            "name_ar": "Dianna Kilback",
            "url": "[email protected]",
            "abbreviation": "Qui vero quo ipsa illum unde.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "1-985-679-1656",
            "status": {
                "key": 3,
                "value": "ON_HOLD"
            },
            "email": "[email protected]",
            "address": "895 Wilkinson Overpass\nNew Tanyaview, KY 32261-7389",
            "address_ar": "6406 Ankunding Plaza Suite 649\nMissouriland, IL 56986",
            "users": null
        },
        {
            "id": "72068ea8-0757-42c0-93d6-f5ab02de2283",
            "name": "Mrs. Emilie Krajcik",
            "name_ar": "Brook Fahey I",
            "url": "[email protected]",
            "abbreviation": "Voluptatem nemo nesciunt consequatur suscipit provident.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "+1-854-217-1307",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "email": "[email protected]",
            "address": "643 Hackett Estates Suite 445\nWest Louveniachester, KS 69739",
            "address_ar": "391 Josie Forges\nSouth Deontae, PA 30362-6743",
            "users": null
        },
        {
            "id": "5786cf9e-fd99-4db5-b7b5-f2caf5dcd38d",
            "name": "Sid Considine",
            "name_ar": "Robert Ankunding",
            "url": "[email protected]",
            "abbreviation": "Provident minima eum provident ducimus.",
            "logo": "http://localhost/storage/companies/logo.png",
            "phone": "352.296.0889",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "email": "[email protected]",
            "address": "495 West Junctions Apt. 596\nLake Clarabelleshire, FL 55519",
            "address_ar": "463 Blanda Dam\nSkilesburgh, IN 56383-7748",
            "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/phpddGpPb" 
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/phpddGpPb', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-4cc5-729a-9d90-28ff6b1e0185",
        "name": "Company Name",
        "name_ar": "Company Name",
        "url": "CompanyName.com",
        "abbreviation": "Company abbreviation",
        "logo": "http://localhost/storage/companies/68d94b15aa327.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/phpddGpPb

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/019990ce-ad68-7013-9041-d91c2b1b369d" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d';
$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": "88ca8580-6b9c-4799-bc85-f7a9012f5373",
        "name": "Leanne Schulist",
        "name_ar": "Brandi Bailey",
        "url": "[email protected]",
        "abbreviation": "Eos quibusdam alias eaque.",
        "logo": "http://localhost/storage/companies/logo.png",
        "phone": "+1-703-668-5485",
        "status": {
            "key": 3,
            "value": "ON_HOLD"
        },
        "email": "[email protected]",
        "address": "382 Champlin Lane\nNew Trycia, KY 53683",
        "address_ar": "7655 Brekke Landing\nSchimmelside, IN 14204",
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d" \
    --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=1"\
    --form "address=k"\
    --form "address_ar=c"\
    --form "logo=@/tmp/phpmDcpGp" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/companies/019990ce-ad68-7013-9041-d91c2b1b369d"
);

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', '1');
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/019990ce-ad68-7013-9041-d91c2b1b369d';
$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' => '1'
            ],
            [
                'name' => 'address',
                'contents' => 'k'
            ],
            [
                'name' => 'address_ar',
                'contents' => 'c'
            ],
            [
                'name' => 'logo',
                'contents' => fopen('/tmp/phpmDcpGp', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "309cd4e0-93b7-46fb-9a75-fe9a872765ac",
        "name": "Company Name",
        "name_ar": "Dr. Hayden Marvin DVM",
        "url": "CompanyName.com",
        "abbreviation": "Company abbreviation",
        "logo": "http://localhost/storage/companies/logo.png",
        "phone": "+971555422373",
        "status": {
            "key": 1,
            "value": "ACTIVE"
        },
        "email": "[email protected]",
        "address": "476 Friesen View Apt. 525\nPort Wilford, CT 04307",
        "address_ar": "48684 Legros Stream\nAlessandrachester, MA 57600",
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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

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

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

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/019990ce-ad68-7013-9041-d91c2b1b369d" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

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": "a2d91307-4c2c-463a-bd2d-db20dff5228a",
            "code": "PLANCYI",
            "name": "vel nam",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            },
            "price_cents": 46932,
            "currency": {
                "key": 2,
                "value": "EUR"
            },
            "features": "{\"users\":43,\"storage\":\"10GB\",\"support\":\"Priority support\"}",
            "created_at": "2025-09-28T14:50:02.000000Z"
        },
        {
            "id": "98556ed3-ba42-4663-9b1e-e247227ffb7c",
            "code": "PLANNGK",
            "name": "ut aliquid",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            },
            "price_cents": 10227,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "features": "{\"users\":22,\"storage\":\"1TB\",\"support\":\"24\\/7 Support\"}",
            "created_at": "2025-09-28T14:50:02.000000Z"
        },
        {
            "id": "927014fc-514d-455c-92ec-775e65544de1",
            "code": "PLANTNX",
            "name": "ea sit",
            "period": {
                "key": 2,
                "value": "YEARLY"
            },
            "price_cents": 48139,
            "currency": {
                "key": 3,
                "value": "AED"
            },
            "features": "{\"users\":36,\"storage\":\"50GB\",\"support\":\"Email only\"}",
            "created_at": "2025-09-28T14:50:02.000000Z"
        },
        {
            "id": "71d0c6e1-21e5-4a02-92f2-50b0923b769b",
            "code": "PLANGLW",
            "name": "facilis voluptatem",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            },
            "price_cents": 11655,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "features": "{\"users\":44,\"storage\":\"100GB\",\"support\":\"Email only\"}",
            "created_at": "2025-09-28T14:50:02.000000Z"
        },
        {
            "id": "342001d2-46b5-44cf-9a22-59b80859fdcc",
            "code": "PLANPDB",
            "name": "quo et",
            "period": {
                "key": 2,
                "value": "YEARLY"
            },
            "price_cents": 20748,
            "currency": {
                "key": 3,
                "value": "AED"
            },
            "features": "{\"users\":31,\"storage\":\"100GB\",\"support\":\"Email only\"}",
            "created_at": "2025-09-28T14:50:02.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\": 2,
    \"price_cents\": 84,
    \"currency\": 3
}"
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": 2,
    "price_cents": 84,
    "currency": 3
};

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' => 2,
            'price_cents' => 84,
            'currency' => 3,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-61a0-706a-994d-24e806325d53",
        "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": "2025-09-28T14:50:03.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: 2

Must be one of:
  • 1
  • 2
price_cents   integer   

Must be at least 0. Example: 84

currency   integer  optional  

Example: 3

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/019990ce-b949-7182-865d-87c340ed18d9" \
    --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/019990ce-b949-7182-865d-87c340ed18d9"
);

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/019990ce-b949-7182-865d-87c340ed18d9';
$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": "a989c39a-b94e-4aeb-a43d-61256f12d964",
        "code": "PLANMJM",
        "name": "impedit debitis",
        "period": {
            "key": 2,
            "value": "YEARLY"
        },
        "price_cents": 30866,
        "currency": {
            "key": 2,
            "value": "EUR"
        },
        "features": "{\"users\":39,\"storage\":\"100GB\",\"support\":\"Email only\"}",
        "created_at": "2025-09-28T14:50:02.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: 019990ce-b949-7182-865d-87c340ed18d9

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/019990ce-b949-7182-865d-87c340ed18d9" \
    --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/019990ce-b949-7182-865d-87c340ed18d9"
);

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: "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/019990ce-b949-7182-865d-87c340ed18d9';
$response = $client->put(
    $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": "84cf4d86-5db5-41a9-8043-dec5deaad667",
        "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": "2025-09-28T14:50:03.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: 019990ce-b949-7182-865d-87c340ed18d9

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

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

Must be at least 0. Example: 84

currency   integer  optional  

Example: 2

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/019990ce-b949-7182-865d-87c340ed18d9" \
    --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/019990ce-b949-7182-865d-87c340ed18d9"
);

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/019990ce-b949-7182-865d-87c340ed18d9';
$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: 019990ce-b949-7182-865d-87c340ed18d9

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": "ae55310b-df14-40a4-ad81-5525ea0bab5c",
            "company": {
                "id": "5e716810-c084-4c9e-a8cb-cff47c01c857",
                "name": "Prof. Aleen Bergstrom DDS"
            },
            "plan": {
                "id": "4c2c7769-46c1-48a2-8855-a96e0d07e524",
                "code": "PLANLHE",
                "name": "vel cum",
                "period": {
                    "key": 1,
                    "value": "MONTHLY"
                }
            },
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2025-09-29T02:29:24.000000Z",
            "end_date": "2026-04-15T21:21:09.000000Z",
            "next_renewal": null
        },
        {
            "id": "aba4fca3-83a4-486f-8679-d7dc6092c4e6",
            "company": {
                "id": "2372ff76-01d7-40bf-bb47-da4b46bc574b",
                "name": "Augustine Smith"
            },
            "plan": {
                "id": "9a3038c6-9ed7-4330-9df5-f9f5cb4ec0dc",
                "code": "PLANPRC",
                "name": "enim et",
                "period": {
                    "key": 2,
                    "value": "YEARLY"
                }
            },
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2025-09-28T19:23:32.000000Z",
            "end_date": "2026-01-13T12:57:58.000000Z",
            "next_renewal": null
        },
        {
            "id": "a813f557-62e3-48c0-a453-62b1c530eb49",
            "company": {
                "id": "87122317-51be-404f-b4e9-7e9aaba4677a",
                "name": "Dr. Kaleb Grady"
            },
            "plan": {
                "id": "5e6acffa-bd56-4f47-9e0c-f1dccec5fca7",
                "code": "PLANDYA",
                "name": "aut magnam",
                "period": {
                    "key": 1,
                    "value": "MONTHLY"
                }
            },
            "status": {
                "key": 2,
                "value": "ACTIVE"
            },
            "start_date": "2025-09-29T04:01:00.000000Z",
            "end_date": "2026-05-26T05:29:49.000000Z",
            "next_renewal": null
        },
        {
            "id": "8560e4ec-1112-489c-b8c9-dc53f8f1738d",
            "company": {
                "id": "51667a12-b6e9-4634-a70b-e7475c1666a0",
                "name": "Nicholaus Tremblay"
            },
            "plan": {
                "id": "8eb3e594-231e-4124-861f-ff4ef6c76a5d",
                "code": "PLANTIZ",
                "name": "qui nulla",
                "period": {
                    "key": 1,
                    "value": "MONTHLY"
                }
            },
            "status": {
                "key": 1,
                "value": "TRIAL"
            },
            "start_date": "2025-09-28T23:46:26.000000Z",
            "end_date": "2026-03-25T05:36:42.000000Z",
            "next_renewal": null
        },
        {
            "id": "832f9ac6-2ec3-44a6-996b-86ebf8795d2f",
            "company": {
                "id": "186161f3-be1e-4e6f-a59a-5b6c0b9c6aee",
                "name": "Mrs. Lola Rodriguez Jr."
            },
            "plan": {
                "id": "a0e687fd-206c-46b1-ba23-f465c12fef33",
                "code": "PLANHPX",
                "name": "totam similique",
                "period": {
                    "key": 2,
                    "value": "YEARLY"
                }
            },
            "status": {
                "key": 2,
                "value": "ACTIVE"
            },
            "start_date": "2025-09-28T22:26:23.000000Z",
            "end_date": "2026-02-14T18:01:58.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\": \"2051-10-22\",
    \"end_date\": \"2051-10-22\",
    \"next_renewal\": \"2051-10-22\"
}"
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": "2051-10-22",
    "end_date": "2051-10-22",
    "next_renewal": "2051-10-22"
};

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' => '2051-10-22',
            'end_date' => '2051-10-22',
            'next_renewal' => '2051-10-22',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-77eb-7033-8e2a-001e4be35fdc",
        "company": {
            "id": "ab5d6a73-16e9-4f39-881e-8ed71b83926e",
            "name": "Nyasia Corwin"
        },
        "plan": {
            "id": "5ff4f91d-6121-4341-a8ed-24dfdaafe5df",
            "code": "PLANCZP",
            "name": "et vel",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            }
        },
        "status": {
            "key": 1,
            "value": "TRIAL"
        },
        "start_date": "2025-09-28T00:00:00.000000Z",
        "end_date": "2026-09-28T00: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: 2051-10-22

end_date   string  optional  

Must be a valid date. Must be a date after start_date. Example: 2051-10-22

next_renewal   string  optional  

Must be a valid date. Must be a date after or equal to start_date. Example: 2051-10-22

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0" \
    --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/019990ce-b96b-73bd-aee2-b5ca92ce57d0"
);

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0';
$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": "e7d52471-12b0-4c26-968b-37780b2e7a31",
        "company": {
            "id": "8e8a1b2c-aeca-4e43-bb89-d9cd89eb71f0",
            "name": "Astrid Effertz"
        },
        "plan": {
            "id": "e148ca48-e734-4c98-bef4-b18a99509d79",
            "code": "PLANADX",
            "name": "sint consequuntur",
            "period": {
                "key": 2,
                "value": "YEARLY"
            }
        },
        "status": {
            "key": 1,
            "value": "TRIAL"
        },
        "start_date": "2025-09-29T14:40:28.000000Z",
        "end_date": "2026-05-04T22:59:58.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_date\": \"2051-10-22\",
    \"end_date\": \"2051-10-22\",
    \"status\": 3
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019990ce-b96b-73bd-aee2-b5ca92ce57d0"
);

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

let body = {
    "start_date": "2051-10-22",
    "end_date": "2051-10-22",
    "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/019990ce-b96b-73bd-aee2-b5ca92ce57d0';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'start_date' => '2051-10-22',
            'end_date' => '2051-10-22',
            'status' => 3,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "d0e4396d-a229-4b59-be11-28cc2f89b812",
        "company": {
            "id": "d1f6dd94-7872-4e77-8e7b-0778960d23a2",
            "name": "Dr. Tina Heaney"
        },
        "plan": {
            "id": "62921a35-bbf2-497b-bb9d-e439efd0e4b9",
            "code": "PLANTWX",
            "name": "et iste",
            "period": {
                "key": 1,
                "value": "MONTHLY"
            }
        },
        "status": {
            "key": 2,
            "value": "ACTIVE"
        },
        "start_date": "2025-09-28T14:50:08.000000Z",
        "end_date": "2026-09-28T14:50:08.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

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: 2051-10-22

end_date   string  optional  

Must be a valid date. Must be a date after start_date. Example: 2051-10-22

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0" \
    --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/019990ce-b96b-73bd-aee2-b5ca92ce57d0"
);

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0';
$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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/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": "019990cd-5206-73e0-972f-de783b16e394",
            "period_start": "2025-09-28T14:49:58.000000Z",
            "period_end": "2025-10-28T14:49:58.000000Z",
            "amount_cents": 5062,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2025-09-28T14:49:58.000000Z",
            "due_at": "2025-10-05T14:49:58.000000Z",
            "company": {
                "id": "50243424-56a3-4ac7-a6b9-015c7ff3bd25",
                "name": "Howell Mohr DVM"
            },
            "subscription": {
                "id": "e88d8667-1c72-4174-9613-9145e3698d0f",
                "status": {
                    "key": 1,
                    "value": "TRIAL"
                },
                "start_date": "2025-09-29T03:56:54.000000Z",
                "end_date": "2026-06-19T14:51:22.000000Z"
            },
            "payments": null
        },
        {
            "id": "019990cd-5203-7067-bb9d-14ba23a895a2",
            "period_start": "2025-09-28T14:49:58.000000Z",
            "period_end": "2025-10-28T14:49:58.000000Z",
            "amount_cents": 75864,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2025-09-28T14:49:58.000000Z",
            "due_at": "2025-10-05T14:49:58.000000Z",
            "company": {
                "id": "c191f986-e89d-4e01-95b3-0374233cc76b",
                "name": "Dr. Gisselle Berge"
            },
            "subscription": {
                "id": "e88d8667-1c72-4174-9613-9145e3698d0f",
                "status": {
                    "key": 1,
                    "value": "TRIAL"
                },
                "start_date": "2025-09-29T03:56:54.000000Z",
                "end_date": "2026-06-19T14:51:22.000000Z"
            },
            "payments": null
        },
        {
            "id": "019990cd-5200-7156-9337-f321d36f17b4",
            "period_start": "2025-09-28T14:49:58.000000Z",
            "period_end": "2025-10-28T14:49:58.000000Z",
            "amount_cents": 66811,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2025-09-28T14:49:58.000000Z",
            "due_at": "2025-10-05T14:49:58.000000Z",
            "company": {
                "id": "54b1be9d-e45a-4bf5-8a2d-239c50873571",
                "name": "Betty Kautzer"
            },
            "subscription": {
                "id": "e88d8667-1c72-4174-9613-9145e3698d0f",
                "status": {
                    "key": 1,
                    "value": "TRIAL"
                },
                "start_date": "2025-09-29T03:56:54.000000Z",
                "end_date": "2026-06-19T14:51:22.000000Z"
            },
            "payments": null
        },
        {
            "id": "019990cd-51fc-73f6-a262-a7604aefffd2",
            "period_start": "2025-09-28T14:49:58.000000Z",
            "period_end": "2025-10-28T14:49:58.000000Z",
            "amount_cents": 39482,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2025-09-28T14:49:58.000000Z",
            "due_at": "2025-10-05T14:49:58.000000Z",
            "company": {
                "id": "940682d1-e2a6-4faf-bc25-7bc233966b92",
                "name": "Sienna Thompson"
            },
            "subscription": {
                "id": "e88d8667-1c72-4174-9613-9145e3698d0f",
                "status": {
                    "key": 1,
                    "value": "TRIAL"
                },
                "start_date": "2025-09-29T03:56:54.000000Z",
                "end_date": "2026-06-19T14:51:22.000000Z"
            },
            "payments": null
        },
        {
            "id": "019990cd-51f8-7228-b777-42838e445b96",
            "period_start": "2025-09-28T14:49:58.000000Z",
            "period_end": "2025-10-28T14:49:58.000000Z",
            "amount_cents": 93337,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "status": {
                "key": 1,
                "value": "DRAFT"
            },
            "issued_at": "2025-09-28T14:49:58.000000Z",
            "due_at": "2025-10-05T14:49:58.000000Z",
            "company": {
                "id": "0e5b140f-a1c3-48c1-aec6-552217825ec1",
                "name": "Miss Talia Rempel II"
            },
            "subscription": {
                "id": "e88d8667-1c72-4174-9613-9145e3698d0f",
                "status": {
                    "key": 1,
                    "value": "TRIAL"
                },
                "start_date": "2025-09-29T03:56:54.000000Z",
                "end_date": "2026-06-19T14:51:22.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/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\": \"2025-09-28T14:51:32\",
    \"period_end\": \"2051-10-22\",
    \"amount_cents\": 39,
    \"currency\": \"architecto\",
    \"issued_at\": \"2025-09-28T14:51:32\",
    \"due_at\": \"2051-10-22\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019990ce-b96b-73bd-aee2-b5ca92ce57d0/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": "2025-09-28T14:51:32",
    "period_end": "2051-10-22",
    "amount_cents": 39,
    "currency": "architecto",
    "issued_at": "2025-09-28T14:51:32",
    "due_at": "2051-10-22"
};

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/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' => '2025-09-28T14:51:32',
            'period_end' => '2051-10-22',
            'amount_cents' => 39,
            'currency' => 'architecto',
            'issued_at' => '2025-09-28T14:51:32',
            'due_at' => '2051-10-22',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-531d-7092-a5dd-ec1fe7002bdd",
        "period_start": "2025-09-28T00:00:00.000000Z",
        "period_end": "2025-10-28T00:00:00.000000Z",
        "amount_cents": 15000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 1,
            "value": "DRAFT"
        },
        "issued_at": "2025-09-28T14:49:59.000000Z",
        "due_at": null,
        "company": {
            "id": "f090d978-dbab-4d2b-abb2-81e680224b4a",
            "name": "Toby Rohan"
        },
        "subscription": {
            "id": "8631c16d-7fc2-4260-a525-fde07200e1ed",
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2025-09-28T23:15:22.000000Z",
            "end_date": "2026-08-02T10:13:44.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

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: 2025-09-28T14:51:32

period_end   string   

Must be a valid date. Must be a date after or equal to period_start. Example: 2051-10-22

amount_cents   integer   

Must be at least 0. Example: 39

currency   string   

Example: architecto

issued_at   string  optional  

Must be a valid date. Example: 2025-09-28T14:51:32

due_at   string  optional  

Must be a valid date. Must be a date after or equal to period_start. Example: 2051-10-22

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5" \
    --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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5"
);

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5';
$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": "019990cd-5211-70e6-b507-84560be06d2d",
        "period_start": "2025-09-28T14:49:59.000000Z",
        "period_end": "2025-10-28T14:49:59.000000Z",
        "amount_cents": 75051,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 1,
            "value": "DRAFT"
        },
        "issued_at": "2025-09-28T14:49:59.000000Z",
        "due_at": "2025-10-05T14:49:59.000000Z",
        "company": {
            "id": "3296de68-dd50-46f7-a588-ee997aab4b1c",
            "name": "Shanon Bauch DDS"
        },
        "subscription": {
            "id": "dc51ab44-8653-440a-a161-4755f035940e",
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2025-09-28T23:31:33.000000Z",
            "end_date": "2025-10-31T02:26:36.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"period_start\": \"2025-09-28T14:51:32\",
    \"period_end\": \"2051-10-22\",
    \"amount_cents\": 39,
    \"currency\": 3,
    \"status\": 2,
    \"issued_at\": \"2025-09-28T14:51:32\",
    \"due_at\": \"2051-10-22\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5"
);

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

let body = {
    "period_start": "2025-09-28T14:51:32",
    "period_end": "2051-10-22",
    "amount_cents": 39,
    "currency": 3,
    "status": 2,
    "issued_at": "2025-09-28T14:51:32",
    "due_at": "2051-10-22"
};

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'period_start' => '2025-09-28T14:51:32',
            'period_end' => '2051-10-22',
            'amount_cents' => 39,
            'currency' => 3,
            'status' => 2,
            'issued_at' => '2025-09-28T14:51:32',
            'due_at' => '2051-10-22',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-538e-7378-8949-cd550890f971",
        "period_start": "2025-09-28T14:49:59.000000Z",
        "period_end": "2025-10-28T14:49:59.000000Z",
        "amount_cents": 10000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 3,
            "value": "PAID"
        },
        "issued_at": "2025-09-28T14:49:59.000000Z",
        "due_at": "2025-10-05T14:49:59.000000Z",
        "company": {
            "id": "33bd133a-58d7-449a-ae4e-2bc6086afe99",
            "name": "Terrence Pagac I"
        },
        "subscription": {
            "id": "ed9773d3-b26e-46f9-bb84-68b8b68637ff",
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2025-09-28T21:46:12.000000Z",
            "end_date": "2026-09-06T19:09:07.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

Body Parameters

period_start   string  optional  

Must be a valid date. Example: 2025-09-28T14:51:32

period_end   string  optional  

Must be a valid date. Must be a date after or equal to period_start. Example: 2051-10-22

amount_cents   integer  optional  

Must be at least 0. Example: 39

currency   integer  optional  

Example: 3

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

Example: 2

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

Must be a valid date. Example: 2025-09-28T14:51:32

due_at   string  optional  

Must be a valid date. Must be a date after or equal to period_start. Example: 2051-10-22

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5" \
    --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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5"
);

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5';
$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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/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": "019990cd-5751-73e9-9b61-be3ba2119808",
            "invoice": {
                "id": "019990cd-549e-7156-8ad8-792d3e66a175",
                "period_start": "2025-09-28T14:49:59.000000Z",
                "period_end": "2025-10-28T14:49:59.000000Z",
                "amount_cents": 4899,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "c0f3b926-bdd2-4e5f-b079-f51a140804bd",
                "name": "Dr. Gregg Batz I"
            },
            "amount_cents": 76341,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2025-09-28T14:50:00.000000Z",
            "reference": "eligendi",
            "created_at": "2025-09-28T14:50:00.000000Z"
        },
        {
            "id": "019990cd-574c-726a-a255-c4e4efaf1357",
            "invoice": {
                "id": "019990cd-549e-7156-8ad8-792d3e66a175",
                "period_start": "2025-09-28T14:49:59.000000Z",
                "period_end": "2025-10-28T14:49:59.000000Z",
                "amount_cents": 4899,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "a71306c0-6a43-482b-bfe5-5b580a6eb1c7",
                "name": "Cathryn Bergnaum DDS"
            },
            "amount_cents": 1112,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2025-09-28T14:50:00.000000Z",
            "reference": "iste",
            "created_at": "2025-09-28T14:50:00.000000Z"
        },
        {
            "id": "019990cd-5748-7387-a09b-1e528057d559",
            "invoice": {
                "id": "019990cd-549e-7156-8ad8-792d3e66a175",
                "period_start": "2025-09-28T14:49:59.000000Z",
                "period_end": "2025-10-28T14:49:59.000000Z",
                "amount_cents": 4899,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "dc46bca3-7a11-4a48-bb9e-e26e99813a12",
                "name": "Antone Carter"
            },
            "amount_cents": 24906,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2025-09-28T14:50:00.000000Z",
            "reference": "dolores",
            "created_at": "2025-09-28T14:50:00.000000Z"
        },
        {
            "id": "019990cd-5744-72f5-82d5-bd0600b2c8d8",
            "invoice": {
                "id": "019990cd-549e-7156-8ad8-792d3e66a175",
                "period_start": "2025-09-28T14:49:59.000000Z",
                "period_end": "2025-10-28T14:49:59.000000Z",
                "amount_cents": 4899,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "22130796-d89e-45f6-8fa1-83494465a933",
                "name": "Prof. Baron Schmidt I"
            },
            "amount_cents": 98474,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2025-09-28T14:50:00.000000Z",
            "reference": "et",
            "created_at": "2025-09-28T14:50:00.000000Z"
        },
        {
            "id": "019990cd-5740-705d-93de-4213348063b6",
            "invoice": {
                "id": "019990cd-549e-7156-8ad8-792d3e66a175",
                "period_start": "2025-09-28T14:49:59.000000Z",
                "period_end": "2025-10-28T14:49:59.000000Z",
                "amount_cents": 4899,
                "status": {
                    "key": 1,
                    "value": "DRAFT"
                }
            },
            "company": {
                "id": "10494ab5-c5fe-4b54-b04f-cd41494171e0",
                "name": "Carson Stark"
            },
            "amount_cents": 16146,
            "currency": {
                "key": 1,
                "value": "USD"
            },
            "method": {
                "key": 1,
                "value": "CASH"
            },
            "paid_at": "2025-09-28T14:50:00.000000Z",
            "reference": "quis",
            "created_at": "2025-09-28T14:50:00.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

invoice_id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/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": "019990cd-57bb-72fb-b0ec-fc23a3806bde",
        "invoice": {
            "id": "019990cd-5764-7130-aa98-b8df49f404fd",
            "period_start": "2025-09-28T14:50:00.000000Z",
            "period_end": "2025-10-28T14:50:00.000000Z",
            "amount_cents": 35956,
            "status": {
                "key": 1,
                "value": "DRAFT"
            }
        },
        "company": {
            "id": "bdd8d38e-a569-4a25-9add-26ce97a3f407",
            "name": "Prof. Rusty Sauer"
        },
        "amount_cents": 20000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "method": {
            "key": 2,
            "value": "BANK"
        },
        "paid_at": "2025-09-28T14:50:00.000000Z",
        "reference": "TXN-68d94b18678f0",
        "created_at": "2025-09-28T14:50:00.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

invoice_id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/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/admin/subscriptions/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/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": "019990cd-5211-70e6-b507-84560be06d2d",
        "period_start": "2025-09-28T14:49:59.000000Z",
        "period_end": "2025-10-28T14:49:59.000000Z",
        "amount_cents": 75051,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "status": {
            "key": 1,
            "value": "DRAFT"
        },
        "issued_at": "2025-09-28T14:49:59.000000Z",
        "due_at": "2025-10-05T14:49:59.000000Z",
        "company": {
            "id": "3296de68-dd50-46f7-a588-ee997aab4b1c",
            "name": "Shanon Bauch DDS"
        },
        "subscription": {
            "id": "dc51ab44-8653-440a-a161-4755f035940e",
            "status": {
                "key": 3,
                "value": "PAST_DUE"
            },
            "start_date": "2025-09-28T23:31:33.000000Z",
            "end_date": "2025-10-31T02:26:36.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

invoice_id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

id   string   

The ID of the invoice payment. Example: architecto

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/architecto" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"amount_cents\": 16,
    \"currency\": 2,
    \"method\": 4,
    \"paid_at\": \"2025-09-28T14:51:32\",
    \"reference\": \"n\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/admin/subscriptions/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/architecto"
);

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

let body = {
    "amount_cents": 16,
    "currency": 2,
    "method": 4,
    "paid_at": "2025-09-28T14:51:32",
    "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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/architecto';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'amount_cents' => 16,
            'currency' => 2,
            'method' => 4,
            'paid_at' => '2025-09-28T14:51:32',
            'reference' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-5971-7099-9d34-60b6229fd5b7",
        "invoice": {
            "id": "019990cd-591d-7116-b3ea-ce7fb38845fb",
            "period_start": "2025-09-28T14:50:00.000000Z",
            "period_end": "2025-10-28T14:50:00.000000Z",
            "amount_cents": 21297,
            "status": {
                "key": 1,
                "value": "DRAFT"
            }
        },
        "company": {
            "id": "232c31e5-2518-4a99-8b61-148045293fd1",
            "name": "Shea Reichert"
        },
        "amount_cents": 20000,
        "currency": {
            "key": 1,
            "value": "USD"
        },
        "method": {
            "key": 4,
            "value": "TRANSFER"
        },
        "paid_at": "2025-09-28T14:50:00.000000Z",
        "reference": "UPDATED-REF-123",
        "created_at": "2025-09-28T14:50:00.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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

invoice_id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

id   string   

The ID of the invoice payment. Example: architecto

Body Parameters

amount_cents   integer  optional  

Must be at least 1. Example: 16

currency   integer  optional  

Example: 2

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

Example: 4

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

Must be a valid date. Example: 2025-09-28T14:51:32

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/architecto"
);

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/019990ce-b96b-73bd-aee2-b5ca92ce57d0/invoices/019990ce-b98b-71cb-b6c2-070b5e311bf5/invoice_payments/architecto';
$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: 019990ce-b96b-73bd-aee2-b5ca92ce57d0

invoice_id   string   

The ID of the invoice. Example: 019990ce-b98b-71cb-b6c2-070b5e311bf5

id   string   

The ID of the invoice payment. Example: architecto

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3/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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3/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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3/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": "019990cd-9438-72a7-8ade-10a3fea7d812",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "06f2fef3-b823-31fc-9eda-b4d03cbf24ad",
            "name": "Jessika Wyman Dr. Dorian Runolfsdottir MD"
        },
        "created_at": "2025-09-28T14:50:15.000000Z",
        "patient": {
            "id": "34980645-04fe-4425-9acf-b9ddc8051bdf",
            "name": "Felicia Gerlach Zita Bechtelar Sr.",
            "balance": 200
        },
        "appointment": {
            "id": "37556dd3-39ea-450f-b7c6-94f11c416671",
            "status": {
                "key": 5,
                "value": "CANCELLED"
            },
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

appointment_id   string   

The ID of the appointment. Example: 019990ce-b877-73a3-89bd-f8a6eba38cf3

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "202a1ef2-5129-4e46-9f1e-f9d703cd3e0e",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "716e5011-a736-3242-b3e6-84bd13a35ce4",
            "name": "Dr. Berenice Haag Prof. Walker Mayert"
        },
        "created_at": "2025-09-28T14:50:16.000000Z",
        "patient": {
            "id": "49c627e4-ffa9-4dca-9273-c6b1a187a57c",
            "name": "Ruby Zboncak Mr. Chet Klein",
            "balance": 0
        },
        "appointment": {
            "id": "445e94d6-5f92-4e60-9f79-891e0b1e9474",
            "status": {
                "key": 2,
                "value": "SCHEDULED"
            },
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

appointment_id   string   

The ID of the appointment. Example: 019990ce-b877-73a3-89bd-f8a6eba38cf3

payment_id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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": "96ccdc02-ae16-4600-8647-8207bb5dab43",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "6877c736-4a31-3fe8-b54e-1b1af0bfa44c",
                "name": "Dr. Jovanny Kilback Kaleb Reynolds"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "de171931-eb46-44ee-83d2-135858bdafaa",
                "name": "Schuyler O'Connell Prof. Jennifer Langworth",
                "balance": 0
            },
            "appointment": {
                "id": "7cf73ad6-fef6-4bd3-9c89-fc4cb73e4013",
                "status": {
                    "key": 2,
                    "value": "SCHEDULED"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "6249efa5-26f1-4a67-b9de-f647d48c406f",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "507cfad8-39d1-3c97-8b06-a966da4d31d7",
                "name": "Mrs. Birdie Watsica PhD Kenneth Kub"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "3797a20b-9f7e-4562-9940-0d924f3bf954",
                "name": "Lacey Bode Jimmy Kerluke",
                "balance": 0
            },
            "appointment": {
                "id": "cbba32d0-dddb-4e54-81d0-d95799a252ec",
                "status": {
                    "key": 2,
                    "value": "SCHEDULED"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "5db2a673-36b3-475b-9973-47296112d783",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "1697824e-44bc-39d1-a5e3-f15640b093ce",
                "name": "Dr. Zackery Upton Eliza Conn"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "3c0e423a-cb82-41d5-b4c1-406ee1f83077",
                "name": "Dr. Hertha Osinski Dr. Keyshawn Breitenberg",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "41a5aa8a-53f3-4296-ab05-2098a221f8eb",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "335e7710-8379-3687-8eed-c4ff244d18b3",
                "name": "Prof. Meghan Abshire Eladio Yost"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "de171931-eb46-44ee-83d2-135858bdafaa",
                "name": "Schuyler O'Connell Prof. Jennifer Langworth",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "37566653-699d-4c27-a842-bcdf32747e60",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "b2a0fe85-6cca-3ba0-b8c6-397490dd1eea",
                "name": "Jaylin Erdman Zander Rath"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "3797a20b-9f7e-4562-9940-0d924f3bf954",
                "name": "Lacey Bode Jimmy Kerluke",
                "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/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "2f656f4d-0516-4f19-bfd1-51a300865ad8",
        "amount": 100,
        "notes": "No thing",
        "created_by": {
            "id": "e27ac8d2-781f-342d-ac1e-35a8ac2e5d30",
            "name": "Linnea Schuster Kiley Wiegand"
        },
        "created_at": "2025-09-28T14:50:25.000000Z",
        "patient": {
            "id": "72f75dde-b8e7-42f1-adfd-e44f99137093",
            "name": "Dr. Bernie Champlin Mittie Bernier II",
            "balance": 0
        },
        "appointment": {
            "id": "106f185b-27e3-4adf-a4ce-faf635455700",
            "status": {
                "key": 5,
                "value": "CANCELLED"
            },
            "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: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "d14de54c-7f34-4586-be78-46fdb77b7328",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "438fef6b-772e-31e4-a20f-21a1fcad6e7d",
            "name": "Chester Schuppe V Taylor Luettgen"
        },
        "created_at": "2025-09-28T14:50:26.000000Z",
        "patient": {
            "id": "12cb7e45-0356-4fdb-b2e8-a06dd487f094",
            "name": "Ms. Pearlie Gusikowski V Rebeka Pfannerstill DVM",
            "balance": 0
        },
        "appointment": {
            "id": "9f68e801-6c0f-4287-bded-c8e4d9a77b6a",
            "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: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-b8a8-725a-8a61-42797e32200a';
$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: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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": "96ccdc02-ae16-4600-8647-8207bb5dab43",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "6877c736-4a31-3fe8-b54e-1b1af0bfa44c",
                "name": "Dr. Jovanny Kilback Kaleb Reynolds"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "de171931-eb46-44ee-83d2-135858bdafaa",
                "name": "Schuyler O'Connell Prof. Jennifer Langworth",
                "balance": 0
            },
            "appointment": {
                "id": "7cf73ad6-fef6-4bd3-9c89-fc4cb73e4013",
                "status": {
                    "key": 2,
                    "value": "SCHEDULED"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "6249efa5-26f1-4a67-b9de-f647d48c406f",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "507cfad8-39d1-3c97-8b06-a966da4d31d7",
                "name": "Mrs. Birdie Watsica PhD Kenneth Kub"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "3797a20b-9f7e-4562-9940-0d924f3bf954",
                "name": "Lacey Bode Jimmy Kerluke",
                "balance": 0
            },
            "appointment": {
                "id": "cbba32d0-dddb-4e54-81d0-d95799a252ec",
                "status": {
                    "key": 2,
                    "value": "SCHEDULED"
                },
                "total_amount": 250,
                "paid_amount": 200,
                "remaining_amount": 50
            }
        },
        {
            "id": "5db2a673-36b3-475b-9973-47296112d783",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "1697824e-44bc-39d1-a5e3-f15640b093ce",
                "name": "Dr. Zackery Upton Eliza Conn"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "3c0e423a-cb82-41d5-b4c1-406ee1f83077",
                "name": "Dr. Hertha Osinski Dr. Keyshawn Breitenberg",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "41a5aa8a-53f3-4296-ab05-2098a221f8eb",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "335e7710-8379-3687-8eed-c4ff244d18b3",
                "name": "Prof. Meghan Abshire Eladio Yost"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "de171931-eb46-44ee-83d2-135858bdafaa",
                "name": "Schuyler O'Connell Prof. Jennifer Langworth",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "37566653-699d-4c27-a842-bcdf32747e60",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "b2a0fe85-6cca-3ba0-b8c6-397490dd1eea",
                "name": "Jaylin Erdman Zander Rath"
            },
            "created_at": "2025-09-28T14:50:25.000000Z",
            "patient": {
                "id": "3797a20b-9f7e-4562-9940-0d924f3bf954",
                "name": "Lacey Bode Jimmy Kerluke",
                "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "2f656f4d-0516-4f19-bfd1-51a300865ad8",
        "amount": 100,
        "notes": "No thing",
        "created_by": {
            "id": "e27ac8d2-781f-342d-ac1e-35a8ac2e5d30",
            "name": "Linnea Schuster Kiley Wiegand"
        },
        "created_at": "2025-09-28T14:50:25.000000Z",
        "patient": {
            "id": "72f75dde-b8e7-42f1-adfd-e44f99137093",
            "name": "Dr. Bernie Champlin Mittie Bernier II",
            "balance": 0
        },
        "appointment": {
            "id": "106f185b-27e3-4adf-a4ce-faf635455700",
            "status": {
                "key": 5,
                "value": "CANCELLED"
            },
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "d14de54c-7f34-4586-be78-46fdb77b7328",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "438fef6b-772e-31e4-a20f-21a1fcad6e7d",
            "name": "Chester Schuppe V Taylor Luettgen"
        },
        "created_at": "2025-09-28T14:50:26.000000Z",
        "patient": {
            "id": "12cb7e45-0356-4fdb-b2e8-a06dd487f094",
            "name": "Ms. Pearlie Gusikowski V Rebeka Pfannerstill DVM",
            "balance": 0
        },
        "appointment": {
            "id": "9f68e801-6c0f-4287-bded-c8e4d9a77b6a",
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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": "c8fec124-d301-4258-9197-1156a38c3673",
            "name": "Miss Imelda Schuppe DVM Richard Pacocha",
            "first_name": "Miss Imelda Schuppe DVM",
            "last_name": "Richard Pacocha",
            "age": 68,
            "address": "354 Zboncak Locks Apt. 988\nEast Penelope, NJ 96937",
            "phone": "+15079649132",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2025-09-28T14:50:19.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "92a31bf2-f2a7-4daf-9d12-b4fdbd4bfe8e",
                "name": "Waino Pouros"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "91aa0343-3e86-4a23-9822-f20ebae6dded",
            "name": "Kaia Kuphal Dr. Dillon Streich",
            "first_name": "Kaia Kuphal",
            "last_name": "Dr. Dillon Streich",
            "age": 84,
            "address": "2149 Rebecca Crossroad Suite 267\nNorth Lloyd, NC 74473-1705",
            "phone": "920-259-0237",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2025-09-28T14:50:19.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "92a31bf2-f2a7-4daf-9d12-b4fdbd4bfe8e",
                "name": "Waino Pouros"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "63e0fe94-84b9-4d82-8bd0-a7a0515c8535",
            "name": "Millie Mitchell DVM Rachel Mayert Jr.",
            "first_name": "Millie Mitchell DVM",
            "last_name": "Rachel Mayert Jr.",
            "age": 12,
            "address": "6135 Hessel Mountain\nNew Edisonchester, WY 63524-2334",
            "phone": "636.340.6369",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2025-09-28T14:50:19.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "92a31bf2-f2a7-4daf-9d12-b4fdbd4bfe8e",
                "name": "Waino Pouros"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "626efb0a-46ed-46bf-9a08-72067b44306d",
            "name": "Viola Rau Erik Gutkowski PhD",
            "first_name": "Viola Rau",
            "last_name": "Erik Gutkowski PhD",
            "age": 32,
            "address": "9567 Raegan Corners Apt. 148\nStoltenbergfort, MT 81818",
            "phone": "817.294.0504",
            "gender": {
                "key": 1,
                "value": "MALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2025-09-28T14:50:19.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "92a31bf2-f2a7-4daf-9d12-b4fdbd4bfe8e",
                "name": "Waino Pouros"
            },
            "payments": null,
            "appointments": null,
            "tooth_history": null
        },
        {
            "id": "532ffc17-8ea1-493a-97eb-c93b8efce3bc",
            "name": "Guy Kunde Zoila Runolfsdottir",
            "first_name": "Guy Kunde",
            "last_name": "Zoila Runolfsdottir",
            "age": 58,
            "address": "73544 Prohaska Corners Suite 436\nEast Reina, NY 35564",
            "phone": "(743) 700-3340",
            "gender": {
                "key": 2,
                "value": "FEMALE"
            },
            "created_by": {
                "id": null,
                "name": null
            },
            "created_at": "2025-09-28T14:50:19.000000Z",
            "balance": 0,
            "paid_amount": 0,
            "remaining": 0,
            "total_amount": 0,
            "company": {
                "id": "92a31bf2-f2a7-4daf-9d12-b4fdbd4bfe8e",
                "name": "Waino Pouros"
            },
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients"
);

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: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/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' => 2,
            'age' => 84,
            'address' => 'z',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-ae07-72a5-99bd-3970202edccf",
        "name": "John Doe",
        "first_name": "John",
        "last_name": "Doe",
        "age": 20,
        "address": null,
        "phone": "+971581234567",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "created_by": {
            "id": "d643886c-5e1a-353a-85b3-3a4a60843c02",
            "name": "Dr. Jett Weissnat PhD Miss Alexa Willms PhD"
        },
        "created_at": "2025-09-28T14:50:22.000000Z",
        "balance": 0,
        "paid_amount": 0,
        "remaining": 0,
        "total_amount": 0,
        "company": {
            "id": "bca2bf72-e7f0-4838-8963-4cd16cc39745",
            "name": "Dr. Karianne Hamill V"
        },
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a';
$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": "d3c69697-a861-47e7-8098-5b7dc8ce2fe3",
        "name": "Grady Ledner PhD Mr. Theo Abshire I",
        "first_name": "Grady Ledner PhD",
        "last_name": "Mr. Theo Abshire I",
        "age": 92,
        "address": "7836 Blanda Wells\nKohlerchester, WA 60347-0580",
        "phone": "+1 (561) 556-4995",
        "gender": {
            "key": 2,
            "value": "FEMALE"
        },
        "created_by": {
            "id": null,
            "name": null
        },
        "created_at": "2025-09-28T14:50:22.000000Z",
        "balance": 0,
        "paid_amount": 0,
        "remaining": 0,
        "total_amount": 0,
        "company": {
            "id": "1ac1f377-aefb-4040-82ef-80a8824881e9",
            "name": "Margot O'Kon"
        },
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a"
);

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: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a';
$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' => 1,
            'age' => 84,
            'address' => 'z',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "2eeb89e1-bc20-4ea6-8398-2458e3764631",
        "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": "2025-09-28T14:50:24.000000Z",
        "balance": 0,
        "paid_amount": 0,
        "remaining": 0,
        "total_amount": 0,
        "company": {
            "id": "b61c0364-6dc3-48d7-aab4-280b3d7373f9",
            "name": "Macey Wiegand IV"
        },
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

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

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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": "a25559d1-4510-4b90-8b36-7e1a747547b1",
            "start_at": "2025-09-28T17:20:17.000000Z",
            "end_at": "2025-10-15T07:03:47.000000Z",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 9718,
            "created_by": {
                "id": "9a9c06ef-7101-3c5e-a2bb-92bfc6babfdd",
                "name": "Mr. Arnold Stroman Dr. Ross Nienow"
            },
            "created_at": "2025-09-28T14:50:17.000000Z",
            "company": {
                "id": "4924409e-b85c-4495-a5c3-fdebfa347913",
                "name": "Javier Adams"
            },
            "patient": {
                "id": "f4cecd6c-c4d5-4e2e-b04e-529ecbd8606c",
                "name": "Dejon Vandervort Ara Jakubowski",
                "balance": 0
            },
            "doctor": {
                "id": "fb70e225-d268-3d00-b3a2-4bf4a22086b1",
                "name": "Dr. Diego McLaughlin DVM Prof. Wilhelm Rohan Jr.",
                "username": "Kirsten Jenkins",
                "phone": "+18783555454"
            },
            "notes": "Placeat et autem dolore animi.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "7c3691a6-58bd-4c54-bb09-5c60a1bfc95a",
            "start_at": "2025-09-28T15:05:16.000000Z",
            "end_at": "2025-10-05T15:36:53.000000Z",
            "status": {
                "key": 5,
                "value": "CANCELLED"
            },
            "total_amount": 9723,
            "created_by": {
                "id": "02fee3e0-5316-3152-8257-ca192a99dd9e",
                "name": "Prof. Bobby McKenzie Prof. Twila Fritsch DVM"
            },
            "created_at": "2025-09-28T14:50:16.000000Z",
            "company": {
                "id": "4924409e-b85c-4495-a5c3-fdebfa347913",
                "name": "Javier Adams"
            },
            "patient": {
                "id": "261627be-82ce-4d6f-bf77-731438736645",
                "name": "Emma Bruen Gudrun Cronin",
                "balance": 0
            },
            "doctor": {
                "id": "6d5bd27e-d8c8-38a0-ab5b-7a0a0bea70a8",
                "name": "Prof. Felix Bayer PhD Alverta Carroll",
                "username": "Dr. Johnny Spencer",
                "phone": "+1.281.917.8830"
            },
            "notes": "Aut vitae et ut possimus ab.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "7c363dd4-e4ed-4522-8b3e-404bc5aae458",
            "start_at": "2025-09-28T18:35:17.000000Z",
            "end_at": "2025-10-20T01:27:47.000000Z",
            "status": {
                "key": 3,
                "value": "PROCESSING"
            },
            "total_amount": 7497,
            "created_by": {
                "id": "812bba68-24d9-3efe-a95a-7b9f9cba54c3",
                "name": "Leonie Armstrong Tressa Swift"
            },
            "created_at": "2025-09-28T14:50:17.000000Z",
            "company": {
                "id": "4924409e-b85c-4495-a5c3-fdebfa347913",
                "name": "Javier Adams"
            },
            "patient": {
                "id": "e89e5ca8-b316-4fde-8c78-67c304b6bba4",
                "name": "Lilly Nitzsche Milton Labadie",
                "balance": 0
            },
            "doctor": {
                "id": "00b47b49-83ba-37c3-abc8-c95d06119aee",
                "name": "Shaylee Cartwright Lucy Bosco",
                "username": "Kavon Hoeger",
                "phone": "+1.661.497.4439"
            },
            "notes": "In fugit doloremque quia fugiat natus.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "7a00264f-851b-42ff-b2f2-60a1d35fe2fd",
            "start_at": "2025-09-28T15:20:16.000000Z",
            "end_at": "2025-10-26T16:10:57.000000Z",
            "status": {
                "key": 2,
                "value": "SCHEDULED"
            },
            "total_amount": 2073,
            "created_by": {
                "id": "6d90adf7-e3d6-3ef4-a167-8149c1c5d415",
                "name": "Dr. Dayana Auer PhD Dr. Dereck Kertzmann"
            },
            "created_at": "2025-09-28T14:50:16.000000Z",
            "company": {
                "id": "4924409e-b85c-4495-a5c3-fdebfa347913",
                "name": "Javier Adams"
            },
            "patient": {
                "id": "2b83442d-b33d-42e1-be07-b98d03a3ab64",
                "name": "Prof. Lon Lesch III Afton Ritchie DDS",
                "balance": 0
            },
            "doctor": {
                "id": "4b9b4761-533e-362f-8337-1701af70ac37",
                "name": "Wendy Miller V Dr. Rogelio Heathcote",
                "username": "Prof. Dayne Corkery",
                "phone": "+19046926768"
            },
            "notes": "Similique natus corporis facere sint omnis reprehenderit.",
            "is_current": false,
            "is_next": false
        },
        {
            "id": "71b8bc74-eba9-408a-ae22-d37444fe8144",
            "start_at": "2025-09-28T17:05:17.000000Z",
            "end_at": "2025-10-01T09:01:59.000000Z",
            "status": {
                "key": 4,
                "value": "COMPLETED"
            },
            "total_amount": 3006,
            "created_by": {
                "id": "b6fc8929-3429-3e88-912f-1fadc025b54d",
                "name": "Marielle Labadie Dortha Leuschke"
            },
            "created_at": "2025-09-28T14:50:17.000000Z",
            "company": {
                "id": "4924409e-b85c-4495-a5c3-fdebfa347913",
                "name": "Javier Adams"
            },
            "patient": {
                "id": "944756e2-4d12-44f3-ad32-700e56f09b5d",
                "name": "Dejon Grady Dr. Rachael Jerde",
                "balance": 0
            },
            "doctor": {
                "id": "c7b614b5-93c8-3466-9ae8-90e2c0439daa",
                "name": "Dr. Irwin Sawayn I Dr. Dovie West",
                "username": "Camren Torp",
                "phone": "+1-818-655-0399"
            },
            "notes": "Fugit omnis sapiente ab fugit veritatis et.",
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d/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\": \"2051-10-23\",
    \"end_at\": \"2051-10-22\",
    \"total_amount\": 39,
    \"notes\": \"g\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/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": "2051-10-23",
    "end_at": "2051-10-22",
    "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/019990ce-ad68-7013-9041-d91c2b1b369d/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' => '2051-10-23',
            'end_at' => '2051-10-22',
            'total_amount' => 39,
            'notes' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-9b1b-7206-944b-b75c924c1211",
        "start_at": "2025-09-28T16:50:17.000000Z",
        "end_at": "2025-09-28T17:20:17.000000Z",
        "status": {
            "key": 1,
            "value": "PENDING"
        },
        "total_amount": 200,
        "created_by": {
            "id": "e321992f-faaa-3c63-b45a-856c313ee906",
            "name": "Guadalupe Walter Jr. Natalie Jacobi PhD"
        },
        "created_at": "2025-09-28T14:50:17.000000Z",
        "company": {
            "id": "c63ab6e2-374a-421f-9d7e-c26de264aa6b",
            "name": "Ara Leffler"
        },
        "patient": {
            "id": "9094b913-68a7-4ab5-8242-62e2193c44b7",
            "name": "Dr. Wade McLaughlin Fern Dach",
            "balance": 0
        },
        "doctor": {
            "id": "8677c5f3-a64d-31d7-8d67-bea84c8087a8",
            "name": "Sarai Muller III Kenyon Ward",
            "username": "Mr. Andrew Parker Jr.",
            "phone": "+1-646-903-8392"
        },
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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: 2051-10-23

end_at   string   

Must be a valid date. Must be a date after start_at. Example: 2051-10-22

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3';
$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": "9c306604-57c1-4a59-8272-1a4ff20aa09f",
        "start_at": "2025-10-28T03:12:25.000000Z",
        "end_at": "2025-10-28T03:58:25.000000Z",
        "status": {
            "key": 4,
            "value": "COMPLETED"
        },
        "total_amount": 3138,
        "created_by": {
            "id": "ddfcd4fa-b72d-326d-853e-222f203aa660",
            "name": "Verona Bartoletti Mr. Milan McCullough IV"
        },
        "created_at": "2025-09-28T14:50:17.000000Z",
        "company": {
            "id": "d974be86-9644-4567-9723-57ebd1e8b238",
            "name": "Melvina Powlowski"
        },
        "patient": {
            "id": "dd6e699f-97b3-4fdf-b88f-bf08eeb95d64",
            "name": "Kaylee Stroman Jeramie Block",
            "balance": 0
        },
        "doctor": {
            "id": "6b13b572-e45e-3e6f-a9ef-d79412afb17d",
            "name": "Retta Eichmann Wilson VonRueden",
            "username": "Milton Pollich",
            "phone": "+1-341-760-8517"
        },
        "notes": "Nostrum beatae maiores aut enim vel rerum aut.",
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the appointment. Example: 019990ce-b877-73a3-89bd-f8a6eba38cf3

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"start_at\": \"2051-10-23\",
    \"end_at\": \"2051-10-22\",
    \"total_amount\": 39,
    \"status\": 1,
    \"notes\": \"g\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3"
);

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

let body = {
    "start_at": "2051-10-23",
    "end_at": "2051-10-22",
    "total_amount": 39,
    "status": 1,
    "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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'start_at' => '2051-10-23',
            'end_at' => '2051-10-22',
            'total_amount' => 39,
            'status' => 1,
            'notes' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "4f91c638-b4cb-496c-8ca2-9ff2f9a56624",
        "start_at": "2025-09-28T18:50:17.000000Z",
        "end_at": "2025-09-28T19:35:17.000000Z",
        "status": {
            "key": 4,
            "value": "COMPLETED"
        },
        "total_amount": 400,
        "created_by": {
            "id": "6c23d5cc-dbff-3615-8365-31c25a57f10e",
            "name": "Magnolia Carroll Garrick Parker"
        },
        "created_at": "2025-09-28T14:50:17.000000Z",
        "company": {
            "id": "16c6e4a3-c5b3-40cf-b6b1-e6282a457025",
            "name": "Verla Bechtelar"
        },
        "patient": {
            "id": "7dd2b9c4-e69b-4184-8d30-cb413d1afc43",
            "name": "Emie Sawayn Sr. Uriel Cartwright",
            "balance": 0
        },
        "doctor": {
            "id": "6c74e26d-b12f-3291-9440-625523e871e3",
            "name": "Mr. Vincenzo Dicki DDS Erich Nicolas II",
            "username": "Crawford McLaughlin",
            "phone": "+1.305.352.6673"
        },
        "notes": "Voluptatem consequuntur delectus occaecati.",
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the appointment. Example: 019990ce-b877-73a3-89bd-f8a6eba38cf3

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: 2051-10-23

end_at   string  optional  

Must be a valid date. Must be a date after start_at. Example: 2051-10-22

total_amount   number  optional  

Must be at least 0. Example: 39

status   integer  optional  

Example: 1

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/appointments/019990ce-b877-73a3-89bd-f8a6eba38cf3';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the appointment. Example: 019990ce-b877-73a3-89bd-f8a6eba38cf3

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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": "a2f23563-79db-411b-9f80-48249d20b37c",
            "name": "Dr. Arch Schuster DVM",
            "name_ar": "Maeve Sauer",
            "phone": "+15205022553",
            "email": "[email protected]",
            "notes": "Dolor natus illo dignissimos totam labore.",
            "company": {
                "id": "b5693d15-ab1b-48d3-be02-aa0ab0380510",
                "name": "Prof. Jess Nicolas Sr."
            }
        },
        {
            "id": "9e8f0453-aa01-4f5e-83c7-50f9e863594b",
            "name": "Melvina Armstrong",
            "name_ar": "Simeon Jast PhD",
            "phone": "+1-740-746-8902",
            "email": "[email protected]",
            "notes": "Similique officiis sint tempora blanditiis.",
            "company": {
                "id": "b5693d15-ab1b-48d3-be02-aa0ab0380510",
                "name": "Prof. Jess Nicolas Sr."
            }
        },
        {
            "id": "94872438-b04f-4b0e-9df5-8ff013a4c21b",
            "name": "Berenice Hackett",
            "name_ar": "Sterling Sipes",
            "phone": "(410) 834-3820",
            "email": "[email protected]",
            "notes": "Optio corporis beatae possimus voluptas possimus.",
            "company": {
                "id": "b5693d15-ab1b-48d3-be02-aa0ab0380510",
                "name": "Prof. Jess Nicolas Sr."
            }
        },
        {
            "id": "8873f01f-0e4d-488b-a78b-c6b942cf4431",
            "name": "Allene Watsica",
            "name_ar": "Adan Ullrich",
            "phone": "580.593.0814",
            "email": "[email protected]",
            "notes": "Quia fuga in recusandae in ipsa.",
            "company": {
                "id": "b5693d15-ab1b-48d3-be02-aa0ab0380510",
                "name": "Prof. Jess Nicolas Sr."
            }
        },
        {
            "id": "7e031d05-76b9-4cc5-bf97-b489cb9be9ff",
            "name": "Alexane Koch IV",
            "name_ar": "Doris Kshlerin PhD",
            "phone": "+18649428081",
            "email": "[email protected]",
            "notes": "Dolor soluta porro voluptatibus illo cumque quos consequatur.",
            "company": {
                "id": "b5693d15-ab1b-48d3-be02-aa0ab0380510",
                "name": "Prof. Jess Nicolas Sr."
            }
        }
    ],
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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": "019990cd-cc28-723c-8bb0-62c489913846",
        "name": "Test",
        "name_ar": "Test",
        "phone": "+963945345844",
        "email": "[email protected]",
        "notes": "this test test",
        "company": {
            "id": "ac3b3380-5173-4d1a-91f8-7d57dd855322",
            "name": "Prof. Giles Franecki"
        }
    },
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f';
$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": "0dcbed29-16eb-4fec-b487-bc16c0448ccb",
        "name": "Mr. Rashad Koelpin Jr.",
        "name_ar": "Prof. Justyn Cartwright",
        "phone": "+18059272648",
        "email": "[email protected]",
        "notes": "Et veritatis et quam vel deserunt id.",
        "company": {
            "id": "25ac4a34-0367-4745-bf20-b97855ce96f9",
            "name": "Elvis Leuschke DVM"
        }
    },
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f';
$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": "40a671ca-8da0-4433-bbfe-fee18da11585",
        "name": "Laboratory",
        "name_ar": "Test",
        "phone": "+963945345845",
        "email": "[email protected]",
        "notes": "this test test",
        "company": {
            "id": "e17a7971-7e7f-4ec1-bc0d-8393d4bdbf82",
            "name": "Floyd Roob"
        }
    },
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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": "acf17f2d-2162-3566-8b91-863f324db8c0",
            "name": "Kamren Rempel Jarrell Berge",
            "first_name": "Kamren Rempel",
            "last_name": "Jarrell Berge",
            "username": "Geovanni Heidenreich",
            "email": "[email protected]",
            "phone": "+1.760.966.1577",
            "status": {
                "key": 1,
                "value": "ACTIVE"
            },
            "type": {
                "key": 2,
                "value": "LABORATORY"
            },
            "notes": null,
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true
        },
        {
            "id": "95f610fd-5238-3041-872b-36fe352af4c2",
            "name": "Cary Casper IV Prof. Brandy Johnson PhD",
            "first_name": "Cary Casper IV",
            "last_name": "Prof. Brandy Johnson PhD",
            "username": "Mr. Rudolph Purdy MD",
            "email": "[email protected]",
            "phone": "+1 (775) 330-8669",
            "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
        },
        {
            "id": "8ace4c6e-e3a4-33f3-b74e-81e5697d13b0",
            "name": "Alphonso Casper Dr. Al Turcotte PhD",
            "first_name": "Alphonso Casper",
            "last_name": "Dr. Al Turcotte PhD",
            "username": "Elbert Reynolds",
            "email": "[email protected]",
            "phone": "+1-660-499-8880",
            "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": "72ce241e-42fa-3691-ba16-41380f781735",
            "name": "Johan Brekke Mrs. Simone Olson",
            "first_name": "Johan Brekke",
            "last_name": "Mrs. Simone Olson",
            "username": "Sadie Casper MD",
            "email": "[email protected]",
            "phone": "+1-539-367-1660",
            "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
        },
        {
            "id": "6417f6e4-14ac-32cb-8d7d-371d1ec57c2e",
            "name": "Noe Friesen Mr. Jesus Farrell",
            "first_name": "Noe Friesen",
            "last_name": "Mr. Jesus Farrell",
            "username": "Dr. Jaren Heller IV",
            "email": "[email protected]",
            "phone": "+1-571-996-5035",
            "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
        }
    ],
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566';
$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": "0aed3c5a-fe6f-3ab5-bfbd-11867c41c106",
        "name": "Mr. Vernon Roberts Sr. Prof. Carrie O'Conner DDS",
        "first_name": "Mr. Vernon Roberts Sr.",
        "last_name": "Prof. Carrie O'Conner DDS",
        "username": "Ronaldo Hermiston",
        "email": "[email protected]",
        "phone": "+1 (520) 597-1543",
        "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
    },
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

user_id   string   

The ID of the user. Example: 019990ce-ae94-7379-8c99-96169fc5b566

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/019990ce-ad68-7013-9041-d91c2b1b369d/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/phpicleBg" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/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/019990ce-ad68-7013-9041-d91c2b1b369d/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/phpicleBg', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-d2e1-733b-89e0-b305f7f95a9c",
        "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: 019990ce-ad68-7013-9041-d91c2b1b369d

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/phpicleBg

type   integer   

Example: 4

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

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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566" \
    --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=2"\
    --form "status=2"\
    --form "notes=w"\
    --form "image=@/tmp/phpEaNLnd" 
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566"
);

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', '2');
body.append('status', '2');
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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566';
$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' => '2'
            ],
            [
                'name' => 'status',
                'contents' => '2'
            ],
            [
                'name' => 'notes',
                'contents' => 'w'
            ],
            [
                'name' => 'image',
                'contents' => fopen('/tmp/phpEaNLnd', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "9497926d-367e-3179-afba-98560a18d621",
        "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": 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: 019990ce-ad68-7013-9041-d91c2b1b369d

user_id   string   

The ID of the user. Example: 019990ce-ae94-7379-8c99-96169fc5b566

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/phpEaNLnd

type   integer  optional  

Example: 2

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

Example: 2

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

Must not be greater than 255 characters. Example: w

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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/users/019990ce-ae94-7379-8c99-96169fc5b566';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

user_id   string   

The ID of the user. Example: 019990ce-ae94-7379-8c99-96169fc5b566

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tooth_number\": 29,
    \"message\": \"b\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes"
);

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

let body = {
    "tooth_number": 29,
    "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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tooth_number' => 29,
            'message' => 'b',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-b014-7223-8b3d-5a868bff7ddf",
        "patient_id": "f0552669-3634-4121-9377-56b1e05aa4b4",
        "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": "6eb3ec84-4cc6-321f-862a-773652fae535",
            "name": "Santa Wolf Steve Homenick"
        },
        "created_at": "2025-09-28T14:50:23.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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

Body Parameters

tooth_number   integer  optional  

Example: 29

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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": "019990cd-b5b9-7267-8975-4a07b2145616",
            "patient_id": "c09f991b-afce-4c51-9d3f-5c6e62fc618c",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "d5ad262c-2f15-35f8-a0a2-5e2acc8dd2e8",
                "name": "Dr. Rollin Cartwright Sr. Ricardo Dach"
            },
            "created_at": "2025-09-28T14:50:24.000000Z"
        },
        {
            "id": "019990cd-b5bd-7096-b054-011b02afaaac",
            "patient_id": "c09f991b-afce-4c51-9d3f-5c6e62fc618c",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "d5ad262c-2f15-35f8-a0a2-5e2acc8dd2e8",
                "name": "Dr. Rollin Cartwright Sr. Ricardo Dach"
            },
            "created_at": "2025-09-28T14:50:24.000000Z"
        },
        {
            "id": "019990cd-b5c0-721f-93f8-a51f4e5b8647",
            "patient_id": "c09f991b-afce-4c51-9d3f-5c6e62fc618c",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "d5ad262c-2f15-35f8-a0a2-5e2acc8dd2e8",
                "name": "Dr. Rollin Cartwright Sr. Ricardo Dach"
            },
            "created_at": "2025-09-28T14:50:24.000000Z"
        },
        {
            "id": "019990cd-b5c4-716b-b6c7-ddc19408bb23",
            "patient_id": "c09f991b-afce-4c51-9d3f-5c6e62fc618c",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "d5ad262c-2f15-35f8-a0a2-5e2acc8dd2e8",
                "name": "Dr. Rollin Cartwright Sr. Ricardo Dach"
            },
            "created_at": "2025-09-28T14:50:24.000000Z"
        },
        {
            "id": "019990cd-b5c9-72b8-9238-b607c72486bc",
            "patient_id": "c09f991b-afce-4c51-9d3f-5c6e62fc618c",
            "tooth_number": {
                "key": 8,
                "value": "TOOTH_8"
            },
            "tooth_label": "Upper Right Central Incisor",
            "message": "test message",
            "created_by": {
                "id": "d5ad262c-2f15-35f8-a0a2-5e2acc8dd2e8",
                "name": "Dr. Rollin Cartwright Sr. Ricardo Dach"
            },
            "created_at": "2025-09-28T14:50:24.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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes/019990ce-b865-73aa-ad09-f5e52cde1b70" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tooth_number\": 3,
    \"message\": \"b\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes/019990ce-b865-73aa-ad09-f5e52cde1b70"
);

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

let body = {
    "tooth_number": 3,
    "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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes/019990ce-b865-73aa-ad09-f5e52cde1b70';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tooth_number' => 3,
            'message' => 'b',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-b26d-736f-af2a-714025cfba5c",
        "patient_id": "5f255d59-cf23-4059-a9f1-d65afb18b0ea",
        "tooth_number": {
            "key": 9,
            "value": "TOOTH_9"
        },
        "tooth_label": "Upper Left Central Incisor",
        "message": "تم تعديل الملاحظة",
        "created_by": {
            "id": "24a55b2e-d4c6-3ebe-9af5-4e881ed8506a",
            "name": "Patricia Keeling David Hayes"
        },
        "created_at": "2025-09-28T14:50:23.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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

note_id   string   

The ID of the note. Example: 019990ce-b865-73aa-ad09-f5e52cde1b70

Body Parameters

tooth_number   integer  optional  

Example: 3

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes/019990ce-b865-73aa-ad09-f5e52cde1b70" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes/019990ce-b865-73aa-ad09-f5e52cde1b70"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/notes/019990ce-b865-73aa-ad09-f5e52cde1b70';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

note_id   string   

The ID of the note. Example: 019990ce-b865-73aa-ad09-f5e52cde1b70

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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": "6054c0c8-6b50-4f56-82c1-ce864a871863",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "cff6cf80-d40e-361f-8527-4740f3da2b48",
                "name": "Cary Okuneva Estell Wilderman"
            },
            "created_at": "2025-09-28T14:50:21.000000Z",
            "patient": {
                "id": "03e6bb94-c8e5-408d-b987-3ff0a79e4057",
                "name": "Joannie Doyle Camren Jakubowski Jr.",
                "balance": 0
            },
            "appointment": {
                "id": "d50fdbfa-9d21-41f1-b7f7-9c8e3af23ec6",
                "status": {
                    "key": 1,
                    "value": "PENDING"
                },
                "total_amount": 3000,
                "paid_amount": 500,
                "remaining_amount": 2500
            }
        },
        {
            "id": "4f1ca837-d203-4064-bb89-4a00e3323826",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "83dca11b-b07a-31f6-b70b-23b4a211fb2e",
                "name": "Ms. Astrid Hirthe Addie Fahey"
            },
            "created_at": "2025-09-28T14:50:21.000000Z",
            "patient": {
                "id": "03e6bb94-c8e5-408d-b987-3ff0a79e4057",
                "name": "Joannie Doyle Camren Jakubowski Jr.",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "3ff120dc-8eff-49a1-a74b-d0975fcfeebe",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "4070af6b-a87c-3a71-b7f3-71f96823e303",
                "name": "Santa Will Freda Mayer DVM"
            },
            "created_at": "2025-09-28T14:50:21.000000Z",
            "patient": {
                "id": "03e6bb94-c8e5-408d-b987-3ff0a79e4057",
                "name": "Joannie Doyle Camren Jakubowski Jr.",
                "balance": 0
            },
            "appointment": null
        },
        {
            "id": "1bc04202-6147-4514-b7b6-07697717bdc2",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "d476d575-04a8-3e74-a7e1-b01a42baae36",
                "name": "Daisha Haley Tamia Goldner"
            },
            "created_at": "2025-09-28T14:50:21.000000Z",
            "patient": {
                "id": "03e6bb94-c8e5-408d-b987-3ff0a79e4057",
                "name": "Joannie Doyle Camren Jakubowski Jr.",
                "balance": 0
            },
            "appointment": {
                "id": "d50fdbfa-9d21-41f1-b7f7-9c8e3af23ec6",
                "status": {
                    "key": 1,
                    "value": "PENDING"
                },
                "total_amount": 3000,
                "paid_amount": 500,
                "remaining_amount": 2500
            }
        },
        {
            "id": "0f6ff246-1f95-409b-bd8d-26d4e2cb5564",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "2ac2192e-1c5a-353c-ab5d-521c2cca48ba",
                "name": "Ms. Octavia Weber Prof. Rowan Howell"
            },
            "created_at": "2025-09-28T14:50:21.000000Z",
            "patient": {
                "id": "03e6bb94-c8e5-408d-b987-3ff0a79e4057",
                "name": "Joannie Doyle Camren Jakubowski Jr.",
                "balance": 0
            },
            "appointment": {
                "id": "d50fdbfa-9d21-41f1-b7f7-9c8e3af23ec6",
                "status": {
                    "key": 1,
                    "value": "PENDING"
                },
                "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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "eb48168d-3aef-45ff-9ee6-2003b5f7937c",
        "amount": 100,
        "notes": "No thing",
        "created_by": {
            "id": "b5c67a61-56bd-344c-9c6e-43c251d9aa2b",
            "name": "Ezekiel McLaughlin Terence Blick"
        },
        "created_at": "2025-09-28T14:50:21.000000Z",
        "patient": {
            "id": "df46796b-14c7-459e-ba02-bcddbfa28506",
            "name": "Denis Toy Brandi Moore",
            "balance": 0
        },
        "appointment": {
            "id": "2bc7cbd7-f94c-4984-b1f8-2f7f65c4f305",
            "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}/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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

payment_id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/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": "019990cd-ab81-739a-acae-aace5515a496",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "7b2837ef-678f-3d90-89be-b9a311847c52",
            "name": "Dr. Adolphus Lowe Daphney Cassin"
        },
        "created_at": "2025-09-28T14:50:21.000000Z",
        "patient": {
            "id": "9eea7ce4-2338-4cf2-a056-a5b10829d2af",
            "name": "Stefan Gibson Milton Bernier II",
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "1a5f0170-a604-4eaf-bd57-b593e6173a03",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "4ec084b7-b4ec-3644-84c3-0acc7141a390",
            "name": "Prof. Nestor Conroy Estrella Lynch"
        },
        "created_at": "2025-09-28T14:50:21.000000Z",
        "patient": {
            "id": "e32575a8-6809-4b82-a31a-0434f65c1638",
            "name": "Davin Orn Letha Hudson",
            "balance": 0
        },
        "appointment": {
            "id": "eb3f9f32-eda0-415e-bdc2-a7f5ce774dda",
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

payment_id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/patients/019990ce-b85d-7346-8ef0-3aadc3375c5a/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

patient_id   string   

The ID of the patient. Example: 019990ce-b85d-7346-8ef0-3aadc3375c5a

payment_id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/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": "6d878c42-edd4-47f6-8fae-c7fc8fddcb4b",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 6,
                "value": "DENTURE"
            },
            "tooth_number": {
                "key": 12,
                "value": "TOOTH_12"
            },
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "created_by": {
                "id": "624d54b2-8ab1-39de-96d9-333959c7f09c",
                "name": "Tyson Brown MD Esperanza Dickinson"
            },
            "created_at": "2025-09-28T14:50:28.000000Z",
            "patient": {
                "id": "6d1afff0-c49f-41be-80e9-ff3d320d2284",
                "name": "Yvette Kilback Ed Cronin",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "49c60bdf-871c-4c9a-9eb4-258e56026342",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 8,
                "value": "ONLAY"
            },
            "tooth_number": {
                "key": 7,
                "value": "TOOTH_7"
            },
            "status": {
                "key": 2,
                "value": "IN_PROGRESS"
            },
            "created_by": {
                "id": "72f77c59-d71e-372d-8dbf-6eef9008ada9",
                "name": "Theodora Bernier Dr. Zula Block"
            },
            "created_at": "2025-09-28T14:50:28.000000Z",
            "patient": {
                "id": "f19ffb19-be3c-4eaa-bd11-5b9abfab2647",
                "name": "Mrs. Angeline Abbott III Kristy McDermott",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "468420b8-a62c-4326-beed-2daa715c1780",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 1,
                "value": "CROWN"
            },
            "tooth_number": {
                "key": 27,
                "value": "TOOTH_27"
            },
            "status": {
                "key": 4,
                "value": "CANCELED"
            },
            "created_by": {
                "id": "db76c484-e5c8-3adf-b159-5ef52636c3fa",
                "name": "Mr. Jordan Eichmann Sr. Ms. Serena Ziemann"
            },
            "created_at": "2025-09-28T14:50:28.000000Z",
            "patient": {
                "id": "11fde6df-cddc-4b9a-8a6d-77f7c4c24c05",
                "name": "Mary Keebler Calista Gottlieb",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "44dc46e7-76f4-40c4-b014-284a945965fa",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 7,
                "value": "INLAY"
            },
            "tooth_number": {
                "key": 12,
                "value": "TOOTH_12"
            },
            "status": {
                "key": 3,
                "value": "COMPLETED"
            },
            "created_by": {
                "id": "06258807-0f70-3bf8-8563-52db67ce42db",
                "name": "Dr. Alan Lakin Ismael Kling"
            },
            "created_at": "2025-09-28T14:50:28.000000Z",
            "patient": {
                "id": "a2578b75-b0c9-4ef0-9256-87438dcef36d",
                "name": "Lonnie Gerhold Lavonne Ortiz",
                "balance": 0
            },
            "supplier": null
        },
        {
            "id": "1573b85a-6ef4-4ba6-b9e7-61bfb88b53c0",
            "notes": "No thing",
            "amount": 100,
            "compensation_type": {
                "key": 2,
                "value": "BRIDGE"
            },
            "tooth_number": {
                "key": 25,
                "value": "TOOTH_25"
            },
            "status": {
                "key": 1,
                "value": "PENDING"
            },
            "created_by": {
                "id": "fab4505c-039f-3988-a8ee-b8f874583afa",
                "name": "Dr. Emilie Larkin Jazmyne Feeney"
            },
            "created_at": "2025-09-28T14:50:28.000000Z",
            "patient": {
                "id": "6d1afff0-c49f-41be-80e9-ff3d320d2284",
                "name": "Yvette Kilback Ed Cronin",
                "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da';
$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": "814bf008-72bd-496a-96cf-cd5f6b44f3f4",
        "notes": "No thing",
        "amount": 100,
        "compensation_type": {
            "key": 2,
            "value": "BRIDGE"
        },
        "tooth_number": {
            "key": 11,
            "value": "TOOTH_11"
        },
        "status": {
            "key": 2,
            "value": "IN_PROGRESS"
        },
        "created_by": {
            "id": "d8b421a1-14ea-3ef4-acd1-2395e85c9a47",
            "name": "Jamaal Marvin Ms. Melyna Prosacco"
        },
        "created_at": "2025-09-28T14:50:28.000000Z",
        "patient": {
            "id": "817201a1-4941-4324-bd12-2f06b6d7c36b",
            "name": "Carolina Gislason Jacklyn Conn",
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"patient_id\": \"architecto\",
    \"tooth_number\": 27,
    \"compensation_type\": 7,
    \"amount\": 39,
    \"notes\": \"g\"
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders"
);

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

let body = {
    "patient_id": "architecto",
    "tooth_number": 27,
    "compensation_type": 7,
    "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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'patient_id' => 'architecto',
            'tooth_number' => 27,
            'compensation_type' => 7,
            'amount' => 39,
            'notes' => 'g',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "019990cd-c6c5-72d9-8152-37d49db451a6",
        "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": "58d159f7-7c9c-3044-bd8c-bd271fea803f",
            "name": "Oran McCullough Bennett Shanahan"
        },
        "created_at": "2025-09-28T14:50:28.000000Z",
        "patient": {
            "id": "131428ec-9c92-4c67-9fd4-0c2264c8d8df",
            "name": "Shemar Rodriguez Lucius Hansen",
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

Body Parameters

patient_id   string   

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

tooth_number   integer  optional  

Example: 27

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

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"tooth_number\": 5,
    \"compensation_type\": 2,
    \"amount\": 27,
    \"notes\": \"n\",
    \"status\": 4
}"
const url = new URL(
    "https://api-dev-medlab.qomratech.com/api/v1/companies/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da"
);

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

let body = {
    "tooth_number": 5,
    "compensation_type": 2,
    "amount": 27,
    "notes": "n",
    "status": 4
};

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'tooth_number' => 5,
            'compensation_type' => 2,
            'amount' => 27,
            'notes' => 'n',
            'status' => 4,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": "65fcbbd4-11ae-4ae9-ae4c-83e308b0b2a0",
        "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": "a6ce3429-bb74-34b7-9418-914c282667ef",
            "name": "Laila Stiedemann Everette Grimes"
        },
        "created_at": "2025-09-28T14:50:28.000000Z",
        "patient": {
            "id": "d7362de4-4952-4ea1-a1ad-2361bd7335ab",
            "name": "Ashtyn Abshire Aryanna Ortiz III",
            "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

Body Parameters

patient_id   string  optional  

The id of an existing record in the patients table.

tooth_number   integer  optional  

Example: 5

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

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

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/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": "b2995be9-7b90-40b1-8761-5be1afe68964",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "3adfe80e-97f9-3158-bcf5-fefd2f46757e",
                "name": "Corbin Hodkiewicz Laila Wilderman Jr."
            },
            "created_at": "2025-09-28T14:50:30.000000Z",
            "patient": {
                "id": "20190061-4a5d-45da-9c5d-50b662493806",
                "name": "Shany Fisher Sr. Germaine Gorczany MD",
                "balance": 0
            },
            "order": {
                "id": "978d5ba8-4107-45b0-843a-0ad935b6d33d",
                "amount": 300,
                "status": {
                    "key": 3,
                    "value": "COMPLETED"
                }
            }
        },
        {
            "id": "9977b02f-84eb-427e-ba83-b30fae9d56ad",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "64add064-3070-30cb-848a-2de6a5231a7c",
                "name": "Elmer Spinka Chad O'Connell"
            },
            "created_at": "2025-09-28T14:50:29.000000Z",
            "patient": {
                "id": "20190061-4a5d-45da-9c5d-50b662493806",
                "name": "Shany Fisher Sr. Germaine Gorczany MD",
                "balance": 0
            },
            "order": {
                "id": "978d5ba8-4107-45b0-843a-0ad935b6d33d",
                "amount": 300,
                "status": {
                    "key": 3,
                    "value": "COMPLETED"
                }
            }
        },
        {
            "id": "94db9cc4-e606-493b-bed5-4336f7aa3128",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "170ae42b-cbf5-32ff-b18f-40b5402bc639",
                "name": "Emery Dietrich Dr. Marilou Rosenbaum"
            },
            "created_at": "2025-09-28T14:50:29.000000Z",
            "patient": {
                "id": "20190061-4a5d-45da-9c5d-50b662493806",
                "name": "Shany Fisher Sr. Germaine Gorczany MD",
                "balance": 0
            },
            "order": {
                "id": "978d5ba8-4107-45b0-843a-0ad935b6d33d",
                "amount": 300,
                "status": {
                    "key": 3,
                    "value": "COMPLETED"
                }
            }
        },
        {
            "id": "780f9927-df00-4995-a497-56d0d8a07c08",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "a44954da-8222-37fa-837b-e3fcf572b24e",
                "name": "Cierra Kulas Furman Balistreri MD"
            },
            "created_at": "2025-09-28T14:50:30.000000Z",
            "patient": {
                "id": "20190061-4a5d-45da-9c5d-50b662493806",
                "name": "Shany Fisher Sr. Germaine Gorczany MD",
                "balance": 0
            },
            "order": {
                "id": "978d5ba8-4107-45b0-843a-0ad935b6d33d",
                "amount": 300,
                "status": {
                    "key": 3,
                    "value": "COMPLETED"
                }
            }
        },
        {
            "id": "235b0ce1-c066-4b96-beda-9a734581cd20",
            "amount": 100,
            "notes": "No thing",
            "created_by": {
                "id": "22b71fe9-a811-31b9-b578-357c03c14d54",
                "name": "Finn Bailey Prof. Tressa Lockman"
            },
            "created_at": "2025-09-28T14:50:29.000000Z",
            "patient": {
                "id": "20190061-4a5d-45da-9c5d-50b662493806",
                "name": "Shany Fisher Sr. Germaine Gorczany MD",
                "balance": 0
            },
            "order": {
                "id": "978d5ba8-4107-45b0-843a-0ad935b6d33d",
                "amount": 300,
                "status": {
                    "key": 3,
                    "value": "COMPLETED"
                }
            }
        }
    ],
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/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": "019990cd-c8c9-7297-9b1a-835275161af7",
        "amount": -200,
        "notes": "this payment",
        "created_by": {
            "id": "37d1f0b2-342f-3ee0-bf22-78bf961a4d0c",
            "name": "Derrick Dietrich V Alia Lehner"
        },
        "created_at": "2025-09-28T14:50:29.000000Z",
        "patient": {
            "id": "65bdd1d2-3f2b-4ab8-a183-12bae8cdb5ef",
            "name": "Timothy Tromp Simone Botsford III",
            "balance": 0
        },
        "order": {
            "id": "96d344e2-7436-4103-ac26-c7f70e96f749",
            "amount": 100,
            "status": {
                "key": 2,
                "value": "IN_PROGRESS"
            }
        }
    },
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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": "db3c1d8a-2230-49a9-a91f-dce33dc1d901",
        "amount": 200,
        "notes": "No thing",
        "created_by": {
            "id": "e4bda6f3-f4fb-327c-99b3-839ed385588d",
            "name": "Madaline Balistreri Novella Wilkinson"
        },
        "created_at": "2025-09-28T14:50:29.000000Z",
        "patient": {
            "id": "c0b6d86b-9878-4b96-97ee-42ed21e218c4",
            "name": "Dr. Cloyd Leuschke Ms. Retha Schaden DDS",
            "balance": 0
        },
        "order": {
            "id": "85202c5d-2c5a-46d3-8066-fc3c65ccdbf0",
            "amount": 100,
            "status": {
                "key": 2,
                "value": "IN_PROGRESS"
            }
        }
    },
    "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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

payment_id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/payments/019990ce-b8a8-725a-8a61-42797e32200a" \
    --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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/payments/019990ce-b8a8-725a-8a61-42797e32200a"
);

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/019990ce-ad68-7013-9041-d91c2b1b369d/suppliers/019990ce-b90e-7115-b06f-be671561204f/orders/019990ce-b917-726f-8b71-7d784f1f42da/payments/019990ce-b8a8-725a-8a61-42797e32200a';
$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: 019990ce-ad68-7013-9041-d91c2b1b369d

supplier_id   string   

The ID of the supplier. Example: 019990ce-b90e-7115-b06f-be671561204f

order_id   string   

The ID of the order. Example: 019990ce-b917-726f-8b71-7d784f1f42da

payment_id   string   

The ID of the payment. Example: 019990ce-b8a8-725a-8a61-42797e32200a

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": "GgVmkkl6M2BpNP1VEGTa8OskVWOycxm78fppXvVP",
        "access_expires_at": "2025-10-28T14:50:15.000000Z",
        "profile": {
            "id": "27d6c9bb-953d-3406-b075-2990a5572355",
            "name": "Prof. Carmen Reinger Sr. Dr. Laron Jerde Jr.",
            "username": "Cecil Doyle",
            "email": "[email protected]",
            "phone": "+963994635477",
            "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": "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": "0Kz9l7TB5swFgDnM6Sr1lAbagYKarhA4CxTmS6Pm",
        "access_expires_at": "2025-10-28T14:50:14.000000Z",
        "profile": {
            "id": "b917d463-a99d-35da-b7df-af477f88a598",
            "name": "Pink Ondricka I Ray Bartell",
            "username": "root",
            "email": "[email protected]",
            "phone": "+1-564-707-9814",
            "status": {
                "key": 2,
                "value": "INACTIVE"
            },
            "type": {
                "key": 4,
                "value": "DATA_ENTRY"
            },
            "image": "http://localhost/storage/users/user.png",
            "has_verified_email": true,
            "has_verified_phone": true,
            "roles": [
                {
                    "id": "019990cd-8f1e-72b2-89da-c95dd143d4af",
                    "name": "ADMINISTRATOR",
                    "description": "Accusantium dolorem maxime ea at corrupti."
                }
            ],
            "permissions": [
                {
                    "name": "INDEX_USER"
                }
            ],
            "company": {
                "id": "2937b37b-8b00-4f08-b205-839a26bae6f0",
                "name": "Lilla O'Keefe"
            }
        }
    },
    "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

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_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

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