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

This API is not authenticated.

User profile

Register

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/register" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"full_name\": \"consequatur\",
    \"email\": \"qkunze@example.com\",
    \"phone\": \"consequatur\",
    \"tin\": \"consequatur\",
    \"passport\": \"consequatur\",
    \"address\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/register"
);

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

let body = {
    "full_name": "consequatur",
    "email": "qkunze@example.com",
    "phone": "consequatur",
    "tin": "consequatur",
    "passport": "consequatur",
    "address": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/register';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'full_name' => 'consequatur',
            'email' => 'qkunze@example.com',
            'phone' => 'consequatur',
            'tin' => 'consequatur',
            'passport' => 'consequatur',
            'address' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Account created successfully",
    "data": {
        "full_name": "Thembo Charles",
        "email": "ashley7520charles@gmail.com",
        "phone": "0787444081",
        "tin": "110023452",
        "passport": "65748",
        "address": "Kampala",
        "updated_at": "2025-12-05T06:42:09.000000Z",
        "created_at": "2025-12-05T06:42:09.000000Z",
        "id": 1
    }
}
 

Request      

POST api/auth/register

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

full_name   string     

Example: consequatur

email   string     

Example: qkunze@example.com

phone   string     

Example: consequatur

tin   string  optional    

Example: consequatur

passport   string  optional    

Example: consequatur

address   string  optional    

Example: consequatur

Send OTP

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/send_otp" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"validation_text\": \"Email or Password\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/send_otp"
);

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

let body = {
    "validation_text": "Email or Password"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/send_otp';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'validation_text' => 'Email or Password',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "An OTP has been sent to your phone and email",
      }
  }
 

Request      

POST api/auth/send_otp

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

validation_text   string     

Example: Email or Password

Verify OTP

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/verify_otp" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"validation_text\": \"Email or phone number\",
    \"otp\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/verify_otp"
);

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

let body = {
    "validation_text": "Email or phone number",
    "otp": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/verify_otp';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'validation_text' => 'Email or phone number',
            'otp' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "An OTP has been sent to your phone and email",
      }
  }
 

Request      

POST api/auth/verify_otp

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

validation_text   string     

Example: Email or phone number

otp   string     

Example: consequatur

Set or change password

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/change_password" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"password_confirmation\": \"consequatur\",
    \"user_id\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/change_password"
);

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

let body = {
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "password_confirmation": "consequatur",
    "user_id": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/change_password';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'password' => 'O[2UZ5ij-e/dl4m{o,',
            'password_confirmation' => 'consequatur',
            'user_id' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Account Password has been reset",
      }
  }
 

Request      

POST api/auth/change_password

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

password   string     

Example: O[2UZ5ij-e/dl4m{o,

password_confirmation   string     

Example: consequatur

user_id   required  optional    

Example: consequatur

Login

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/login" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"email\": \"qkunze@example.com\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/login"
);

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

let body = {
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "email": "qkunze@example.com"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/login';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'password' => 'O[2UZ5ij-e/dl4m{o,',
            'email' => 'qkunze@example.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Successfully loged in",
    "authorization": {
        "token": "1|ipsfUoT7lmvPZaeKNtyU5GDIarzgv084cW0RLfxl80a3b2ec",
        "token_type": "Bearer"
    },
    "data": {
        "id": 1,
        "full_name": "Thembo Charles",
        "email": "ashley7520charles@gmail.com",
        "phone": "0787444081",
        "email_verified_at": null,
        "tin": "110023452",
        "passport": "65748",
        "address": "Kampala",
        "otp": "4782",
        "status": "active",
        "user_type": "user",
        "created_at": "2025-12-05T06:42:09.000000Z",
        "updated_at": "2025-12-05T07:58:28.000000Z",
        "deleted_at": null
    }
}
 

Request      

POST api/auth/login

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

password   string     

Example: O[2UZ5ij-e/dl4m{o,

email   string     

Example: qkunze@example.com

Log Out User

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/logout" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/logout"
);

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

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/logout';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Successfully logged out",
      }
  }
 

Request      

POST api/auth/logout

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

User Profile

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/auth/user" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/user"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/user';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "User Profile",
    "data": {
        "id": 1,
        "full_name": "Thembo Charles",
        "email": "ashley7520charles@gmail.com",
        "phone": "0787444081",
        "email_verified_at": null,
        "tin": "110023452",
        "passport": "65748",
        "address": "Kampala",
        "otp": "4782",
        "status": "active",
        "user_type": "user",
        "created_at": "2025-12-05T06:42:09.000000Z",
        "updated_at": "2025-12-05T07:58:28.000000Z",
        "deleted_at": null
    }
}
 

Request      

GET api/auth/user

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Create User account

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/create_user" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"full_name\": \"consequatur\",
    \"email\": \"qkunze@example.com\",
    \"phone\": \"consequatur\",
    \"tin\": \"consequatur\",
    \"passport\": \"consequatur\",
    \"address\": \"consequatur\",
    \"user_type\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/create_user"
);

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

let body = {
    "full_name": "consequatur",
    "email": "qkunze@example.com",
    "phone": "consequatur",
    "tin": "consequatur",
    "passport": "consequatur",
    "address": "consequatur",
    "user_type": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/create_user';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'full_name' => 'consequatur',
            'email' => 'qkunze@example.com',
            'phone' => 'consequatur',
            'tin' => 'consequatur',
            'passport' => 'consequatur',
            'address' => 'consequatur',
            'user_type' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Account created successfully",
    "data": {
        "full_name": "Thembo Charles",
        "email": "ashley7520charles@gmail.com",
        "phone": "0787444081",
        "tin": "110023452",
        "passport": "65748",
        "address": "Kampala",
        "updated_at": "2025-12-05T06:42:09.000000Z",
        "created_at": "2025-12-05T06:42:09.000000Z",
        "id": 1
    }
}
 

Request      

POST api/auth/create_user

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

full_name   string     

Example: consequatur

email   string     

Example: qkunze@example.com

phone   string     

Example: consequatur

tin   string  optional    

Example: consequatur

passport   string  optional    

Example: consequatur

address   string  optional    

Example: consequatur

user_type   string  optional    

E.g: user,staff,super_user,agent Example: consequatur

Update user

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/auth/update_user" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"full_name\": \"consequatur\",
    \"phone\": \"consequatur\",
    \"tin\": \"consequatur\",
    \"passport\": \"consequatur\",
    \"address\": \"consequatur\",
    \"street\": \"consequatur\",
    \"city\": \"consequatur\",
    \"region\": \"consequatur\",
    \"country\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/update_user"
);

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

let body = {
    "full_name": "consequatur",
    "phone": "consequatur",
    "tin": "consequatur",
    "passport": "consequatur",
    "address": "consequatur",
    "street": "consequatur",
    "city": "consequatur",
    "region": "consequatur",
    "country": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/update_user';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'full_name' => 'consequatur',
            'phone' => 'consequatur',
            'tin' => 'consequatur',
            'passport' => 'consequatur',
            'address' => 'consequatur',
            'street' => 'consequatur',
            'city' => 'consequatur',
            'region' => 'consequatur',
            'country' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "status": "success",
  "message": "Successfully logged out",
}
 

Request      

PUT api/auth/update_user

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

full_name   string     

Example: consequatur

phone   string     

Example: consequatur

tin   string  optional    

Example: consequatur

passport   string  optional    

Example: consequatur

address   string  optional    

Example: consequatur

street   string  optional    

Example: consequatur

city   string  optional    

Example: consequatur

region   string  optional    

Example: consequatur

country   string  optional    

Example: consequatur

Account profiles

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/auth/all_profiles" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/all_profiles"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/all_profiles';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/auth/all_profiles could not be found."
}
 

Request      

GET api/auth/all_profiles

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Allocate an Account a WareHouse

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/auth/user_warehouse" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 17,
    \"warehouse_location_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/auth/user_warehouse"
);

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

let body = {
    "user_id": 17,
    "warehouse_location_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/auth/user_warehouse';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 17,
            'warehouse_location_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/auth/user_warehouse

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

user_id   integer     

Example: 17

warehouse_location_id   integer     

Example: 17

CRM Customers

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/customers" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/customers"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/customers';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/customers could not be found."
}
 

Request      

GET api/customers

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Customer Details

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/customers/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/customers/consequatur"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/customers/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/customers/consequatur could not be found."
}
 

Request      

GET api/customers/{user_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

user_id   string     

The ID of the user. Example: consequatur

Warehouse Location

Warehouse Locations

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/settings/locations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/locations"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/locations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Warehouse Locations",
    "data": [
        {
            "id": 1,
            "created_at": "2025-12-05T09:12:00.000000Z",
            "updated_at": "2025-12-05T09:12:00.000000Z",
            "deleted_at": null,
            "country": "Uganda",
            "address": "A",
            "rack_count": "01",
            "is_occupied": 0
        }
    ]
}
 

Request      

GET api/settings/locations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Create Warehouse Location

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/settings/locations" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"consequatur\",
    \"address\": \"consequatur\",
    \"manager\": \"consequatur\",
    \"active\": false,
    \"rack_count\": \"consequatur\",
    \"name\": \"consequatur\",
    \"country\": \"consequatur\",
    \"city\": \"consequatur\",
    \"state\": \"consequatur\",
    \"zip\": \"consequatur\",
    \"phone_number\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/locations"
);

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

let body = {
    "code": "consequatur",
    "address": "consequatur",
    "manager": "consequatur",
    "active": false,
    "rack_count": "consequatur",
    "name": "consequatur",
    "country": "consequatur",
    "city": "consequatur",
    "state": "consequatur",
    "zip": "consequatur",
    "phone_number": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/locations';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'code' => 'consequatur',
            'address' => 'consequatur',
            'manager' => 'consequatur',
            'active' => false,
            'rack_count' => 'consequatur',
            'name' => 'consequatur',
            'country' => 'consequatur',
            'city' => 'consequatur',
            'state' => 'consequatur',
            'zip' => 'consequatur',
            'phone_number' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/settings/locations

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

code   string     

Example: consequatur

address   string     

Example: consequatur

manager   string  optional    

Example: consequatur

active   boolean  optional    

Request parameter: active. Example: false

rack_count   string     

Example: consequatur

name   string  optional    

Example: consequatur

country   string  optional    

Example: consequatur

city   string  optional    

Example: consequatur

state   string  optional    

Example: consequatur

zip   string  optional    

Example: consequatur

phone_number   string  optional    

Example: consequatur

Update Warehouse Location

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/settings/locations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"code\": \"consequatur\",
    \"address\": \"consequatur\",
    \"manager\": \"consequatur\",
    \"active\": false,
    \"rack_count\": \"consequatur\",
    \"name\": \"consequatur\",
    \"country\": \"consequatur\",
    \"city\": \"consequatur\",
    \"state\": \"consequatur\",
    \"zip\": \"consequatur\",
    \"phone_number\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/locations/consequatur"
);

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

let body = {
    "code": "consequatur",
    "address": "consequatur",
    "manager": "consequatur",
    "active": false,
    "rack_count": "consequatur",
    "name": "consequatur",
    "country": "consequatur",
    "city": "consequatur",
    "state": "consequatur",
    "zip": "consequatur",
    "phone_number": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/locations/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'code' => 'consequatur',
            'address' => 'consequatur',
            'manager' => 'consequatur',
            'active' => false,
            'rack_count' => 'consequatur',
            'name' => 'consequatur',
            'country' => 'consequatur',
            'city' => 'consequatur',
            'state' => 'consequatur',
            'zip' => 'consequatur',
            'phone_number' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/settings/locations/{id}

PATCH api/settings/locations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the location. Example: consequatur

warehouseLocation_id   integer     

Example: 17

Body Parameters

code   string     

Example: consequatur

address   string     

Example: consequatur

manager   string  optional    

Example: consequatur

active   boolean  optional    

Request parameter: active. Example: false

rack_count   string     

Example: consequatur

name   string  optional    

Example: consequatur

country   string  optional    

Example: consequatur

city   string  optional    

Example: consequatur

state   string  optional    

Example: consequatur

zip   string  optional    

Example: consequatur

phone_number   string  optional    

Example: consequatur

Delete Warehouse Location

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/settings/locations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/locations/consequatur"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/locations/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Warehouse Location deleted successfully"
}
 

Request      

DELETE api/settings/locations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the location. Example: consequatur

warehouseLocation_id   integer     

Example: 17

Create Warehouse Rack

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"zone_name\": \"consequatur\",
    \"bin_start\": \"consequatur\",
    \"bin_end\": \"consequatur\",
    \"capacity\": \"consequatur\",
    \"type\": \"consequatur\",
    \"warehouse_location_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks"
);

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

let body = {
    "zone_name": "consequatur",
    "bin_start": "consequatur",
    "bin_end": "consequatur",
    "capacity": "consequatur",
    "type": "consequatur",
    "warehouse_location_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/warehouse_racks';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'zone_name' => 'consequatur',
            'bin_start' => 'consequatur',
            'bin_end' => 'consequatur',
            'capacity' => 'consequatur',
            'type' => 'consequatur',
            'warehouse_location_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/settings/warehouse_racks

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

zone_name   string     

Example: consequatur

bin_start   string     

Example: consequatur

bin_end   string     

Example: consequatur

capacity   string  optional    

Example: consequatur

type   string  optional    

Example SHELF,PALLET,COLD,FRAGILE Example: consequatur

warehouse_location_id   integer     

Example: 17

Update Warehouse Rack

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"zone_name\": \"consequatur\",
    \"bin_start\": \"consequatur\",
    \"bin_end\": \"consequatur\",
    \"capacity\": \"consequatur\",
    \"type\": \"consequatur\",
    \"warehouse_location_id\": 1000,
    \"warehouseRack_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks/17"
);

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

let body = {
    "zone_name": "consequatur",
    "bin_start": "consequatur",
    "bin_end": "consequatur",
    "capacity": "consequatur",
    "type": "consequatur",
    "warehouse_location_id": 1000,
    "warehouseRack_id": 17
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/warehouse_racks/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'zone_name' => 'consequatur',
            'bin_start' => 'consequatur',
            'bin_end' => 'consequatur',
            'capacity' => 'consequatur',
            'type' => 'consequatur',
            'warehouse_location_id' => 1000,
            'warehouseRack_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/settings/warehouse_racks/{id}

PATCH api/settings/warehouse_racks/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the warehouse rack. Example: 17

Body Parameters

zone_name   string  optional    

sometimes Example: consequatur

bin_start   string  optional    

sometimes Example: consequatur

bin_end   string  optional    

sometimes Example: consequatur

capacity   string  optional    

sometimes Example: consequatur

type   string  optional    

sometimes Example SHELF,PALLET,COLD,FRAGILE Example: consequatur

warehouse_location_id   integer  optional    

Request parameter: warehouse_location_id. The id of an existing record in the warehouse_locations table. Example: 1000

warehouseRack_id   integer     

Example: 17

Delete Warehouse Rack

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"warehouseRack_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks/17"
);

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

let body = {
    "warehouseRack_id": 17
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/warehouse_racks/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'warehouseRack_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/settings/warehouse_racks/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the warehouse rack. Example: 17

Body Parameters

warehouseRack_id   integer     

Example: 17

Shipments

Shipments

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/orders" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/orders"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/orders';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 5,
                "created_at": "2025-12-05T12:20:11.000000Z",
                "updated_at": "2025-12-05T12:20:11.000000Z",
                "deleted_at": null,
                "tracking_number": "ORD-20251205-00002",
                "user_id": 1,
                "origin_country": "ITALY",
                "receiver_name": "Tom Mboya",
                "receiver_phone": "0789887766",
                "receiver_email": "tom.mboya@gmail.com",
                "receiver_address": "Uganda - Kampala",
                "status": "PENDING",
                "received_at": null,
                "dispatched_at": null,
                "arrived_at": null,
                "released_at": null,
                "delivered_at": null,
                "status_history": [
                    {
                        "id": 4,
                        "created_at": "2025-12-05T12:27:49.000000Z",
                        "updated_at": "2025-12-05T12:27:49.000000Z",
                        "deleted_at": null,
                        "order_id": 5,
                        "status": "CONSOLIDATED",
                        "notes": "Well received",
                        "location": "USA",
                        "user_id": 1,
                        "user": {
                            "id": 1,
                            "full_name": "Thembo Charles",
                            "email": "ashley7520charles@gmail.com",
                            "phone": "0787444081",
                            "email_verified_at": null,
                            "tin": "110023452",
                            "passport": "65748",
                            "address": "Kampala",
                            "otp": "4782",
                            "status": "active",
                            "user_type": "user",
                            "created_at": "2025-12-05T06:42:09.000000Z",
                            "updated_at": "2025-12-05T07:58:28.000000Z",
                            "deleted_at": null
                        }
                    }
                ],
                "user": {
                    "id": 1,
                    "full_name": "Thembo Charles",
                    "email": "ashley7520charles@gmail.com",
                    "phone": "0787444081",
                    "email_verified_at": null,
                    "tin": "110023452",
                    "passport": "65748",
                    "address": "Kampala",
                    "otp": "4782",
                    "status": "active",
                    "user_type": "user",
                    "created_at": "2025-12-05T06:42:09.000000Z",
                    "updated_at": "2025-12-05T07:58:28.000000Z",
                    "deleted_at": null
                }
            },
            {
                "id": 2,
                "created_at": "2025-12-05T11:29:08.000000Z",
                "updated_at": "2025-12-05T11:29:08.000000Z",
                "deleted_at": null,
                "tracking_number": "ORD-20251205-00001",
                "user_id": 1,
                "origin_country": "USA",
                "receiver_name": "Tom Mboya",
                "receiver_phone": "0789887766",
                "receiver_email": "tom.mboya@gmail.com",
                "receiver_address": "Uganda - Kampala",
                "status": "PENDING",
                "received_at": null,
                "dispatched_at": null,
                "arrived_at": null,
                "released_at": null,
                "delivered_at": null,
                "status_history": [
                    {
                        "id": 2,
                        "created_at": "2025-12-05T12:03:09.000000Z",
                        "updated_at": "2025-12-05T12:03:09.000000Z",
                        "deleted_at": null,
                        "order_id": 2,
                        "status": "CONSOLIDATED",
                        "notes": "Well received",
                        "location": "USA",
                        "user_id": 1,
                        "user": {
                            "id": 1,
                            "full_name": "Thembo Charles",
                            "email": "ashley7520charles@gmail.com",
                            "phone": "0787444081",
                            "email_verified_at": null,
                            "tin": "110023452",
                            "passport": "65748",
                            "address": "Kampala",
                            "otp": "4782",
                            "status": "active",
                            "user_type": "user",
                            "created_at": "2025-12-05T06:42:09.000000Z",
                            "updated_at": "2025-12-05T07:58:28.000000Z",
                            "deleted_at": null
                        }
                    },
                    {
                        "id": 1,
                        "created_at": "2025-12-05T12:01:16.000000Z",
                        "updated_at": "2025-12-05T12:01:16.000000Z",
                        "deleted_at": null,
                        "order_id": 2,
                        "status": "RECEIVED",
                        "notes": "Well received",
                        "location": "USA",
                        "user_id": null,
                        "user": null
                    }
                ],
                "user": {
                    "id": 1,
                    "full_name": "Thembo Charles",
                    "email": "ashley7520charles@gmail.com",
                    "phone": "0787444081",
                    "email_verified_at": null,
                    "tin": "110023452",
                    "passport": "65748",
                    "address": "Kampala",
                    "otp": "4782",
                    "status": "active",
                    "user_type": "user",
                    "created_at": "2025-12-05T06:42:09.000000Z",
                    "updated_at": "2025-12-05T07:58:28.000000Z",
                    "deleted_at": null
                }
            }
        ],
        "first_page_url": "http://127.0.0.1:8000/api/orders?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "http://127.0.0.1:8000/api/orders?page=1",
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://127.0.0.1:8000/api/orders?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "http://127.0.0.1:8000/api/orders",
        "per_page": 20,
        "prev_page_url": null,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/orders

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Create a Shipments

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/orders" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"warehouse_location_id\": 17,
    \"origin_country\": \"consequatur\",
    \"receiver_name\": \"consequatur\",
    \"receiver_phone\": \"consequatur\",
    \"receiver_email\": \"qkunze@example.com\",
    \"receiver_address\": \"consequatur\",
    \"shipping_mode\": \"consequatur\",
    \"expected_delivery_time\": \"Any string\",
    \"user_id\": 17,
    \"tracking_number\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/orders"
);

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

let body = {
    "warehouse_location_id": 17,
    "origin_country": "consequatur",
    "receiver_name": "consequatur",
    "receiver_phone": "consequatur",
    "receiver_email": "qkunze@example.com",
    "receiver_address": "consequatur",
    "shipping_mode": "consequatur",
    "expected_delivery_time": "Any string",
    "user_id": 17,
    "tracking_number": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/orders';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'warehouse_location_id' => 17,
            'origin_country' => 'consequatur',
            'receiver_name' => 'consequatur',
            'receiver_phone' => 'consequatur',
            'receiver_email' => 'qkunze@example.com',
            'receiver_address' => 'consequatur',
            'shipping_mode' => 'consequatur',
            'expected_delivery_time' => 'Any string',
            'user_id' => 17,
            'tracking_number' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Order created successfully.",
    "data": {
        "origin_country": "ITALY",
        "receiver_name": "Tom Mboya",
        "receiver_phone": "0789887766",
        "receiver_email": "tom.mboya@gmail.com",
        "receiver_address": "Uganda - Kampala",
        "tracking_number": "ORD-20251205-00002",
        "user_id": 1,
        "updated_at": "2025-12-05T12:20:11.000000Z",
        "created_at": "2025-12-05T12:20:11.000000Z",
        "id": 5,
        "status_history": [],
        "user": {
            "id": 1,
            "full_name": "Thembo Charles",
            "email": "ashley7520charles@gmail.com",
            "phone": "0787444081",
            "email_verified_at": null,
            "tin": "110023452",
            "passport": "65748",
            "address": "Kampala",
            "otp": "4782",
            "status": "active",
            "user_type": "user",
            "created_at": "2025-12-05T06:42:09.000000Z",
            "updated_at": "2025-12-05T07:58:28.000000Z",
            "deleted_at": null
        }
    }
}
 

Request      

POST api/orders

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

warehouse_location_id   integer     

Example: 17

origin_country   string     

Example: consequatur

receiver_name   string     

Example: consequatur

receiver_phone   string     

Example: consequatur

receiver_email   string  optional    

Example: qkunze@example.com

receiver_address   string  optional    

Example: consequatur

shipping_mode   string  optional    

e.g: 'express','standard' Example: consequatur

expected_delivery_time   string  optional    

Request parameter: expected_delivery_time. Example: Any string

user_id   integer  optional    

optional Example: 17

tracking_number   string  optional    

optional Example: consequatur

Show Shipment

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/orders/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/orders/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/orders/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "data": {
        "id": 5,
        "created_at": "2025-12-05T12:20:11.000000Z",
        "updated_at": "2025-12-05T12:20:11.000000Z",
        "deleted_at": null,
        "tracking_number": "ORD-20251205-00002",
        "user_id": 1,
        "origin_country": "ITALY",
        "receiver_name": "Tom Mboya",
        "receiver_phone": "0789887766",
        "receiver_email": "tom.mboya@gmail.com",
        "receiver_address": "Uganda - Kampala",
        "status": "PENDING",
        "received_at": null,
        "dispatched_at": null,
        "arrived_at": null,
        "released_at": null,
        "delivered_at": null,
        "status_history": [
            {
                "id": 4,
                "created_at": "2025-12-05T12:27:49.000000Z",
                "updated_at": "2025-12-05T12:27:49.000000Z",
                "deleted_at": null,
                "order_id": 5,
                "status": "CONSOLIDATED",
                "notes": "Well received",
                "location": "USA",
                "user_id": 1,
                "user": {
                    "id": 1,
                    "full_name": "Thembo Charles",
                    "email": "ashley7520charles@gmail.com",
                    "phone": "0787444081",
                    "email_verified_at": null,
                    "tin": "110023452",
                    "passport": "65748",
                    "address": "Kampala",
                    "otp": "4782",
                    "status": "active",
                    "user_type": "user",
                    "created_at": "2025-12-05T06:42:09.000000Z",
                    "updated_at": "2025-12-05T07:58:28.000000Z",
                    "deleted_at": null
                }
            }
        ],
        "user": {
            "id": 1,
            "full_name": "Thembo Charles",
            "email": "ashley7520charles@gmail.com",
            "phone": "0787444081",
            "email_verified_at": null,
            "tin": "110023452",
            "passport": "65748",
            "address": "Kampala",
            "otp": "4782",
            "status": "active",
            "user_type": "user",
            "created_at": "2025-12-05T06:42:09.000000Z",
            "updated_at": "2025-12-05T07:58:28.000000Z",
            "deleted_at": null
        }
    }
}
 

Request      

GET api/orders/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order. Example: 17

order_id   integer     

Example: 17

Update Shipments

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/orders/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"origin_country\": \"consequatur\",
    \"receiver_name\": \"consequatur\",
    \"receiver_phone\": \"consequatur\",
    \"receiver_email\": \"qkunze@example.com\",
    \"receiver_address\": \"consequatur\",
    \"warehouse_location_id\": 17,
    \"shipping_mode\": \"consequatur\",
    \"expected_delivery_time\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/orders/17"
);

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

let body = {
    "origin_country": "consequatur",
    "receiver_name": "consequatur",
    "receiver_phone": "consequatur",
    "receiver_email": "qkunze@example.com",
    "receiver_address": "consequatur",
    "warehouse_location_id": 17,
    "shipping_mode": "consequatur",
    "expected_delivery_time": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/orders/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'origin_country' => 'consequatur',
            'receiver_name' => 'consequatur',
            'receiver_phone' => 'consequatur',
            'receiver_email' => 'qkunze@example.com',
            'receiver_address' => 'consequatur',
            'warehouse_location_id' => 17,
            'shipping_mode' => 'consequatur',
            'expected_delivery_time' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Order updated successfully.",
      }
  }
 

Request      

PUT api/orders/{id}

PATCH api/orders/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order. Example: 17

order_id   integer     

Example: 17

Body Parameters

origin_country   string     

Example: consequatur

receiver_name   string     

Example: consequatur

receiver_phone   string     

Example: consequatur

receiver_email   string  optional    

Example: qkunze@example.com

receiver_address   string  optional    

Example: consequatur

warehouse_location_id   integer  optional    

Example: 17

shipping_mode   string  optional    

e.g:'express','standard', Example: consequatur

expected_delivery_time   date  optional    

Example: consequatur

Delete Shipment

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/orders/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/orders/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/orders/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Shipment deleted successfully.",
      }
  }
 

Request      

DELETE api/orders/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order. Example: 17

order_id   integer     

Example: 17

Get Shipments By Tracking Number

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/orders/tracking/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/orders/tracking/consequatur"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/orders/tracking/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "data": {
        "id": 5,
        "created_at": "2025-12-05T12:20:11.000000Z",
        "updated_at": "2025-12-05T12:20:11.000000Z",
        "deleted_at": null,
        "tracking_number": "ORD-20251205-00002",
        "user_id": 1,
        "origin_country": "ITALY",
        "receiver_name": "Tom Mboya",
        "receiver_phone": "0789887766",
        "receiver_email": "tom.mboya@gmail.com",
        "receiver_address": "Uganda - Kampala",
        "status": "PENDING",
        "received_at": null,
        "dispatched_at": null,
        "arrived_at": null,
        "released_at": null,
        "delivered_at": null,
        "status_history": [],
        "user": {},
        "packages": []
    }
}
 

Example response (404):


{
    "message": "No query results for model [App\\Models\\Order]."
}
 

Request      

GET api/orders/tracking/{tracking_number}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

tracking_number   string     

The tracking number of the order. Example: consequatur

Package

Add Package to order

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/packages" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_id\": 17,
    \"contents\": \"consequatur\",
    \"declared_value\": 11613.31890586,
    \"weight\": 11613.31890586,
    \"length\": 11613.31890586,
    \"width\": 11613.31890586,
    \"height\": 11613.31890586,
    \"is_fragile\": false,
    \"is_hazardous\": false,
    \"is_damaged\": false,
    \"warehouse_rack_id\": \"consequatur\",
    \"received_at\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/packages"
);

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

let body = {
    "order_id": 17,
    "contents": "consequatur",
    "declared_value": 11613.31890586,
    "weight": 11613.31890586,
    "length": 11613.31890586,
    "width": 11613.31890586,
    "height": 11613.31890586,
    "is_fragile": false,
    "is_hazardous": false,
    "is_damaged": false,
    "warehouse_rack_id": "consequatur",
    "received_at": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/packages';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'order_id' => 17,
            'contents' => 'consequatur',
            'declared_value' => 11613.31890586,
            'weight' => 11613.31890586,
            'length' => 11613.31890586,
            'width' => 11613.31890586,
            'height' => 11613.31890586,
            'is_fragile' => false,
            'is_hazardous' => false,
            'is_damaged' => false,
            'warehouse_rack_id' => 'consequatur',
            'received_at' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Package created successfully.",
    "data": {
        "order_id": "5",
        "hwb_number": "HWB-2025128-0021",
        "contents": "Computer - Desktop",
        "declared_value": "2500000",
        "weight": "5",
        "length": "4",
        "width": "6",
        "height": "2",
        "is_fragile": true,
        "is_hazardous": false,
        "is_damaged": false,
        "location_id": "1",
        "received_at": "2025-12-03T00:00:00.000000Z",
        "updated_at": "2025-12-08T07:32:17.000000Z",
        "created_at": "2025-12-08T07:32:17.000000Z",
        "id": 2
    }
}
 

Request      

POST api/packages

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

order_id   integer     

Example: 17

contents   string     

Example: consequatur

declared_value   number  optional    

Example: 11613.31890586

weight   number     

Example: 11613.31890586

length   number     

Example: 11613.31890586

width   number     

Example: 11613.31890586

height   number     

Example: 11613.31890586

is_fragile   boolean  optional    

Example: false

is_hazardous   boolean  optional    

Example: false

is_damaged   boolean  optional    

Example: false

package_photos   object  optional    

Request parameter: package_photos.

warehouse_rack_id   required  optional    

Example: consequatur

received_at   required  optional    

Example: consequatur

Update order Package

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/packages/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_id\": \"Any string\",
    \"contents\": \"consequatur\",
    \"declared_value\": 11613.31890586,
    \"weight\": 11613.31890586,
    \"length\": 11613.31890586,
    \"width\": 11613.31890586,
    \"height\": 11613.31890586,
    \"is_fragile\": false,
    \"is_hazardous\": false,
    \"is_damaged\": false,
    \"received_at\": \"consequatur\",
    \"warehouse_rack_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/packages/17"
);

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

let body = {
    "order_id": "Any string",
    "contents": "consequatur",
    "declared_value": 11613.31890586,
    "weight": 11613.31890586,
    "length": 11613.31890586,
    "width": 11613.31890586,
    "height": 11613.31890586,
    "is_fragile": false,
    "is_hazardous": false,
    "is_damaged": false,
    "received_at": "consequatur",
    "warehouse_rack_id": 17
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/packages/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'order_id' => 'Any string',
            'contents' => 'consequatur',
            'declared_value' => 11613.31890586,
            'weight' => 11613.31890586,
            'length' => 11613.31890586,
            'width' => 11613.31890586,
            'height' => 11613.31890586,
            'is_fragile' => false,
            'is_hazardous' => false,
            'is_damaged' => false,
            'received_at' => 'consequatur',
            'warehouse_rack_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "status": "success",
    "message": "Package updated successfully.",
    "data": {
        "order_id": "5",
        "hwb_number": "HWB-2025128-0021",
        "contents": "Computer - Desktop",
        "declared_value": "2500000",
        "weight": "5",
        "length": "4",
        "width": "6",
        "height": "2",
        "is_fragile": true,
        "is_hazardous": false,
        "is_damaged": false,
        "location_id": "1",
        "received_at": "2025-12-03T00:00:00.000000Z",
        "updated_at": "2025-12-08T07:32:17.000000Z",
        "created_at": "2025-12-08T07:32:17.000000Z",
        "id": 2
    }
}
 

Request      

PUT api/packages/{package_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

package_id   integer     

Example: 17

Body Parameters

order_id   string  optional    

Request parameter: order_id. The id of an existing record in the orders table. Example: Any string

contents   string     

Example: consequatur

declared_value   number  optional    

Example: 11613.31890586

weight   number     

Example: 11613.31890586

length   number     

Example: 11613.31890586

width   number     

Example: 11613.31890586

height   number     

Example: 11613.31890586

is_fragile   boolean  optional    

Example: false

is_hazardous   boolean  optional    

Example: false

is_damaged   boolean  optional    

Example: false

package_photos   object  optional    

Request parameter: package_photos.

received_at   date     

Example: consequatur

warehouse_rack_id   integer  optional    

Example: 17

Delete Package

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/packages/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/packages/consequatur"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/packages/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Package deleted successfully.",
      }
  }
 

Request      

DELETE api/packages/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the package. Example: consequatur

package_id   integer     

Example: 17

Add Package images

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/packages/consequatur/package-photos" \
    --header "Bearer: Token" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "photos[]=@/tmp/php4fXnIj" \
    --form "photos[]=@/tmp/phptaeLXJ" 
const url = new URL(
    "https://www.constell.agent.co.ug/api/packages/consequatur/package-photos"
);

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

const body = new FormData();
body.append('photos[]', document.querySelector('input[name="photos[]"]').files[0]);
body.append('photos[]', document.querySelector('input[name="photos[]"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/packages/consequatur/package-photos';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'photos[]',
                'contents' => fopen('/tmp/php4fXnIj', 'r')
            ],
            [
                'name' => 'photos[]',
                'contents' => fopen('/tmp/phptaeLXJ', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Package photos uploaded successfully",
    "data": {
        "id": 1,
        "created_at": "2025-12-08T07:19:43.000000Z",
        "updated_at": "2025-12-08T07:39:24.000000Z",
        "deleted_at": null,
        "order_id": 5,
        "hwb_number": "HWB-2025128-0002",
        "contents": "Computer - Desktop",
        "declared_value": "2500000.00",
        "weight": "5.00",
        "length": "4.00",
        "width": "6.00",
        "height": "2.00",
        "is_fragile": true,
        "is_hazardous": false,
        "is_damaged": false,
        "package_photos": [
            "package_photos/ngtZoTVR3mPb8G8otpFTeKnD78maftxCL7UXRcuD.jpg",
            "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
            "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
            "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
        ],
        "location_id": 1,
        "received_at": "2025-12-03T00:00:00.000000Z"
    }
}
 

Request      

POST api/packages/{id}/package-photos

Headers

Bearer        

Example: Token

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the package. Example: consequatur

packageId   integer     

Example: 17

Body Parameters

photos   file[]  optional    

Must be an image.

photos[]   file     

Example: /tmp/phptaeLXJ

Delete a Package image

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/packages/consequatur/package-photos" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"photo\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/packages/consequatur/package-photos"
);

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

let body = {
    "photo": "consequatur"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/packages/consequatur/package-photos';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'photo' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Package photo deleted successfully",
    "data": {
        "id": 1,
        "created_at": "2025-12-08T07:19:43.000000Z",
        "updated_at": "2025-12-08T07:39:24.000000Z",
        "deleted_at": null,
        "order_id": 5,
        "hwb_number": "HWB-2025128-0002",
        "contents": "Computer - Desktop",
        "declared_value": "2500000.00",
        "weight": "5.00",
        "length": "4.00",
        "width": "6.00",
        "height": "2.00",
        "is_fragile": true,
        "is_hazardous": false,
        "is_damaged": false,
        "package_photos": [
            "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
            "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
            "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
        ],
        "location_id": 1,
        "received_at": "2025-12-03T00:00:00.000000Z"
    }
}
 

Request      

DELETE api/packages/{id}/package-photos

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the package. Example: consequatur

packageId   integer     

Example: 17

Body Parameters

photo   string     

e.g package_photos/ngtZoTVR3mPb8G8otpFTeKnD78maftxCL7UXRcuD.jpg Example: consequatur

Consolidation Batch

Consolidation Batches

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/consolidation-batches" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/consolidation-batches"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/consolidation-batches';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


[
    {
        "id": 1,
        "created_at": "2025-12-08T08:21:32.000000Z",
        "updated_at": "2025-12-08T08:40:10.000000Z",
        "deleted_at": null,
        "mawb_number": "MAWB-20251208-001",
        "transport_mode": "AIR",
        "container_flight_number": "AB001",
        "departure_date": "2025-12-10T00:00:00.000000Z",
        "status": "FINALIZED",
        "package_count": 0,
        "total_weight": "0.00",
        "created_by": 1,
        "finalized_at": "2025-12-09T00:00:00.000000Z",
        "departed_at": "2025-12-10T00:00:00.000000Z",
        "arrived_at": "2025-12-10T00:00:00.000000Z",
        "packages": [
            {
                "id": 1,
                "created_at": "2025-12-08T07:19:43.000000Z",
                "updated_at": "2025-12-08T07:42:06.000000Z",
                "deleted_at": null,
                "order_id": 5,
                "hwb_number": "HWB-2025128-0002",
                "contents": "Computer - Desktop",
                "declared_value": "2500000.00",
                "weight": "5.00",
                "length": "4.00",
                "width": "6.00",
                "height": "2.00",
                "is_fragile": true,
                "is_hazardous": false,
                "is_damaged": false,
                "package_photos": [
                    "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
                    "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
                    "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
                ],
                "location_id": 1,
                "received_at": "2025-12-03T00:00:00.000000Z",
                "pivot": {
                    "batch_id": 1,
                    "package_id": 1,
                    "created_at": "2025-12-08T08:57:19.000000Z",
                    "updated_at": "2025-12-08T08:57:19.000000Z"
                },
                "order": {
                    "id": 5,
                    "created_at": "2025-12-05T12:20:11.000000Z",
                    "updated_at": "2025-12-05T12:20:11.000000Z",
                    "deleted_at": null,
                    "tracking_number": "ORD-20251205-00002",
                    "user_id": 1,
                    "origin_country": "ITALY",
                    "receiver_name": "Tom Mboya",
                    "receiver_phone": "0789887766",
                    "receiver_email": "tom.mboya@gmail.com",
                    "receiver_address": "Uganda - Kampala",
                    "status": "PENDING",
                    "received_at": null,
                    "dispatched_at": null,
                    "arrived_at": null,
                    "released_at": null,
                    "delivered_at": null,
                    "user": {
                        "id": 1,
                        "full_name": "Thembo Charles",
                        "email": "ashley7520charles@gmail.com",
                        "phone": "0787444081",
                        "email_verified_at": null,
                        "tin": "110023452",
                        "passport": "65748",
                        "address": "Kampala",
                        "otp": "4782",
                        "status": "active",
                        "user_type": "user",
                        "created_at": "2025-12-05T06:42:09.000000Z",
                        "updated_at": "2025-12-05T07:58:28.000000Z",
                        "deleted_at": null
                    }
                }
            }
        ]
    }
]
 

Request      

GET api/consolidation-batches

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Create a Consolidation Batch

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/consolidation-batches" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transport_mode\": \"consequatur\",
    \"container_flight_number\": \"consequatur\",
    \"departure_date\": \"consequatur\",
    \"status\": \"Any string\",
    \"created_by\": \"Any string\",
    \"finalized_at\": \"Any string\",
    \"departed_at\": \"Any string\",
    \"arrived_at\": \"Any string\",
    \"origin_country\": \"consequatur\",
    \"destination_country\": \"consequatur\",
    \"warehouse_location_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/consolidation-batches"
);

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

let body = {
    "transport_mode": "consequatur",
    "container_flight_number": "consequatur",
    "departure_date": "consequatur",
    "status": "Any string",
    "created_by": "Any string",
    "finalized_at": "Any string",
    "departed_at": "Any string",
    "arrived_at": "Any string",
    "origin_country": "consequatur",
    "destination_country": "consequatur",
    "warehouse_location_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/consolidation-batches';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'transport_mode' => 'consequatur',
            'container_flight_number' => 'consequatur',
            'departure_date' => 'consequatur',
            'status' => 'Any string',
            'created_by' => 'Any string',
            'finalized_at' => 'Any string',
            'departed_at' => 'Any string',
            'arrived_at' => 'Any string',
            'origin_country' => 'consequatur',
            'destination_country' => 'consequatur',
            'warehouse_location_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Consolidation batch created successfully",
    "data": {
        "mawb_number": "MAWB-20251208-002",
        "transport_mode": "AIR",
        "container_flight_number": "AB001",
        "departure_date": "2025-12-10T00:00:00.000000Z",
        "departed_at": "2025-12-10T00:00:00.000000Z",
        "created_by": 1,
        "updated_at": "2025-12-08T08:27:36.000000Z",
        "created_at": "2025-12-08T08:27:36.000000Z",
        "id": 3,
        "user": {
            "id": 1,
            "full_name": "Thembo Charles",
            "email": "ashley7520charles@gmail.com",
            "phone": "0787444081",
            "email_verified_at": null,
            "tin": "110023452",
            "passport": "65748",
            "address": "Kampala",
            "otp": "4782",
            "status": "active",
            "user_type": "user",
            "created_at": "2025-12-05T06:42:09.000000Z",
            "updated_at": "2025-12-05T07:58:28.000000Z",
            "deleted_at": null
        }
    }
}
 

Request      

POST api/consolidation-batches

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

transport_mode   string     

e.g 'AIR', 'SEA', 'ROAD', 'TRAIN' Example: consequatur

container_flight_number   string     

Example: consequatur

departure_date   date     

Example: consequatur

status   string  optional    

Request parameter: status. Example: Any string

Must be one of:
  • OPEN
  • FINALIZED
  • DEPARTED
  • ARRIVED
created_by   string  optional    

Request parameter: created_by. The id of an existing record in the users table. Example: Any string

finalized_at   string  optional    

Request parameter: finalized_at. Must be a valid date. Example: Any string

departed_at   string  optional    

Request parameter: departed_at. Must be a valid date. Example: Any string

arrived_at   string  optional    

Request parameter: arrived_at. Must be a valid date. Example: Any string

origin_country   string  optional    

E.g. USA, UG, CHINA,UAE Example: consequatur

destination_country   string  optional    

Example: consequatur

warehouse_location_id   integer     

Example: 17

Update a Consolidation Batch

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/consolidation-batches/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"transport_mode\": \"consequatur\",
    \"container_flight_number\": \"consequatur\",
    \"departure_date\": \"consequatur\",
    \"status\": \"consequatur\",
    \"package_count\": 1000,
    \"total_weight\": 1000,
    \"created_by\": \"Any string\",
    \"finalized_at\": \"consequatur\",
    \"departed_at\": \"consequatur\",
    \"arrived_at\": \"consequatur\",
    \"origin_country\": \"consequatur\",
    \"destination_country\": \"consequatur\",
    \"warehouse_location_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/consolidation-batches/consequatur"
);

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

let body = {
    "transport_mode": "consequatur",
    "container_flight_number": "consequatur",
    "departure_date": "consequatur",
    "status": "consequatur",
    "package_count": 1000,
    "total_weight": 1000,
    "created_by": "Any string",
    "finalized_at": "consequatur",
    "departed_at": "consequatur",
    "arrived_at": "consequatur",
    "origin_country": "consequatur",
    "destination_country": "consequatur",
    "warehouse_location_id": 17
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/consolidation-batches/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'transport_mode' => 'consequatur',
            'container_flight_number' => 'consequatur',
            'departure_date' => 'consequatur',
            'status' => 'consequatur',
            'package_count' => 1000,
            'total_weight' => 1000.0,
            'created_by' => 'Any string',
            'finalized_at' => 'consequatur',
            'departed_at' => 'consequatur',
            'arrived_at' => 'consequatur',
            'origin_country' => 'consequatur',
            'destination_country' => 'consequatur',
            'warehouse_location_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Consolidation batch updated successfully",
    "data": {
        "mawb_number": "MAWB-20251208-002",
        "transport_mode": "AIR",
        "container_flight_number": "AB001",
        "departure_date": "2025-12-10T00:00:00.000000Z",
        "departed_at": "2025-12-10T00:00:00.000000Z",
        "created_by": 1,
        "updated_at": "2025-12-08T08:27:36.000000Z",
        "created_at": "2025-12-08T08:27:36.000000Z",
        "id": 3,
        "user": {
            "id": 1,
            "full_name": "Thembo Charles",
            "email": "ashley7520charles@gmail.com",
            "phone": "0787444081",
            "email_verified_at": null,
            "tin": "110023452",
            "passport": "65748",
            "address": "Kampala",
            "otp": "4782",
            "status": "active",
            "user_type": "user",
            "created_at": "2025-12-05T06:42:09.000000Z",
            "updated_at": "2025-12-05T07:58:28.000000Z",
            "deleted_at": null
        }
    }
}
 

Request      

PUT api/consolidation-batches/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the consolidation batch. Example: consequatur

consolidationBatche_id   integer     

Example: 17

Body Parameters

transport_mode   string     

e.g 'AIR', 'SEA', 'ROAD', 'TRAIN' Example: consequatur

container_flight_number   string     

Example: consequatur

departure_date   date     

Example: consequatur

status   string  optional    

e.g OPEN,FINALIZED,DEPARTED,ARRIVED Example: consequatur

package_count   integer  optional    

Request parameter: package_count. Must be at least 0. Example: 1000

total_weight   number  optional    

Request parameter: total_weight. Must be at least 0. Example: 1000

created_by   string  optional    

Request parameter: created_by. The id of an existing record in the users table. Example: Any string

finalized_at   date     

Example: consequatur

departed_at   date     

Example: consequatur

arrived_at   date     

Example: consequatur

origin_country   string  optional    

E.g. USA, UG, CHINA,UAE Example: consequatur

destination_country   string  optional    

Example: consequatur

warehouse_location_id   integer     

Example: 17

Delete Consolidation Batch

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/consolidation-batches/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/consolidation-batches/consequatur"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/consolidation-batches/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Consolidation batch deleted successfully.",
      }
  }
 

Request      

DELETE api/consolidation-batches/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the consolidation batch. Example: consequatur

consolidationBatche_id   integer     

Example: 17

Consolidation Batch

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/consolidation-batches/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/consolidation-batches/consequatur"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/consolidation-batches/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


[
    {
        "id": 1,
        "created_at": "2025-12-08T08:21:32.000000Z",
        "updated_at": "2025-12-08T08:40:10.000000Z",
        "deleted_at": null,
        "mawb_number": "MAWB-20251208-001",
        "transport_mode": "AIR",
        "container_flight_number": "AB001",
        "departure_date": "2025-12-10T00:00:00.000000Z",
        "status": "FINALIZED",
        "package_count": 0,
        "total_weight": "0.00",
        "created_by": 1,
        "finalized_at": "2025-12-09T00:00:00.000000Z",
        "departed_at": "2025-12-10T00:00:00.000000Z",
        "arrived_at": "2025-12-10T00:00:00.000000Z",
        "packages": [
            {
                "id": 1,
                "created_at": "2025-12-08T07:19:43.000000Z",
                "updated_at": "2025-12-08T07:42:06.000000Z",
                "deleted_at": null,
                "order_id": 5,
                "hwb_number": "HWB-2025128-0002",
                "contents": "Computer - Desktop",
                "declared_value": "2500000.00",
                "weight": "5.00",
                "length": "4.00",
                "width": "6.00",
                "height": "2.00",
                "is_fragile": true,
                "is_hazardous": false,
                "is_damaged": false,
                "package_photos": [
                    "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
                    "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
                    "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
                ],
                "location_id": 1,
                "received_at": "2025-12-03T00:00:00.000000Z",
                "pivot": {
                    "batch_id": 1,
                    "package_id": 1,
                    "created_at": "2025-12-08T08:57:19.000000Z",
                    "updated_at": "2025-12-08T08:57:19.000000Z"
                },
                "order": {
                    "id": 5,
                    "created_at": "2025-12-05T12:20:11.000000Z",
                    "updated_at": "2025-12-05T12:20:11.000000Z",
                    "deleted_at": null,
                    "tracking_number": "ORD-20251205-00002",
                    "user_id": 1,
                    "origin_country": "ITALY",
                    "receiver_name": "Tom Mboya",
                    "receiver_phone": "0789887766",
                    "receiver_email": "tom.mboya@gmail.com",
                    "receiver_address": "Uganda - Kampala",
                    "status": "PENDING",
                    "received_at": null,
                    "dispatched_at": null,
                    "arrived_at": null,
                    "released_at": null,
                    "delivered_at": null,
                    "user": {
                        "id": 1,
                        "full_name": "Thembo Charles",
                        "email": "ashley7520charles@gmail.com",
                        "phone": "0787444081",
                        "email_verified_at": null,
                        "tin": "110023452",
                        "passport": "65748",
                        "address": "Kampala",
                        "otp": "4782",
                        "status": "active",
                        "user_type": "user",
                        "created_at": "2025-12-05T06:42:09.000000Z",
                        "updated_at": "2025-12-05T07:58:28.000000Z",
                        "deleted_at": null
                    }
                }
            }
        ]
    }
]
 

Request      

GET api/consolidation-batches/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the consolidation batch. Example: consequatur

Batch Package

Add Package to Batch

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/batch-packages" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"batch_id\": 17,
    \"package_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/batch-packages"
);

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

let body = {
    "batch_id": 17,
    "package_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/batch-packages';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'batch_id' => 17,
            'package_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Package added to batch successfully.",
      }
  }
 

Request      

POST api/batch-packages

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

batch_id   integer     

Example: 17

package_id   integer     

Example: 17

Delete Consolidation Batch

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/batch-packages" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"batch_id\": 17,
    \"package_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/batch-packages"
);

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

let body = {
    "batch_id": 17,
    "package_id": 17
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/batch-packages';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'batch_id' => 17,
            'package_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Package removed from batch.",
      }
  }
 

Request      

DELETE api/batch-packages

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

batch_id   integer     

Example: 17

package_id   integer     

Example: 17

Invoice

Invoices

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/billing/invoices" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoices"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoices';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoices fetched successfully",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 2,
                "created_at": "2025-12-08T10:31:55.000000Z",
                "updated_at": "2025-12-08T10:42:55.000000Z",
                "deleted_at": null,
                "invoice_number": "INV-20251208-00002",
                "user_id": 1,
                "order_id": 5,
                "type": "FREIGHT",
                "status": "PAID",
                "due_date": "2005-12-09T00:00:00.000000Z",
                "order": {
                    "id": 5,
                    "created_at": "2025-12-05T12:20:11.000000Z",
                    "updated_at": "2025-12-05T12:20:11.000000Z",
                    "deleted_at": null,
                    "tracking_number": "ORD-20251205-00002",
                    "user_id": 1,
                    "origin_country": "ITALY",
                    "receiver_name": "Tom Mboya",
                    "receiver_phone": "0789887766",
                    "receiver_email": "tom.mboya@gmail.com",
                    "receiver_address": "Uganda - Kampala",
                    "status": "PENDING",
                    "received_at": null,
                    "dispatched_at": null,
                    "arrived_at": null,
                    "released_at": null,
                    "delivered_at": null,
                    "user": {
                        "id": 1,
                        "full_name": "Thembo Charles",
                        "email": "ashley7520charles@gmail.com",
                        "phone": "0787444081",
                        "email_verified_at": null,
                        "tin": "110023452",
                        "passport": "65748",
                        "address": "Kampala",
                        "otp": "4782",
                        "status": "active",
                        "user_type": "user",
                        "created_at": "2025-12-05T06:42:09.000000Z",
                        "updated_at": "2025-12-05T07:58:28.000000Z",
                        "deleted_at": null
                    }
                },
                "line_items": [],
                "payments": []
            },
            {
                "id": 1,
                "created_at": "2025-12-08T10:31:08.000000Z",
                "updated_at": "2025-12-08T10:31:08.000000Z",
                "deleted_at": null,
                "invoice_number": "ORD-20251208-00001",
                "user_id": 1,
                "order_id": 5,
                "type": "FREIGHT",
                "status": "UNPAID",
                "due_date": "2005-12-09T00:00:00.000000Z",
                "order": {
                    "id": 5,
                    "created_at": "2025-12-05T12:20:11.000000Z",
                    "updated_at": "2025-12-05T12:20:11.000000Z",
                    "deleted_at": null,
                    "tracking_number": "ORD-20251205-00002",
                    "user_id": 1,
                    "origin_country": "ITALY",
                    "receiver_name": "Tom Mboya",
                    "receiver_phone": "0789887766",
                    "receiver_email": "tom.mboya@gmail.com",
                    "receiver_address": "Uganda - Kampala",
                    "status": "PENDING",
                    "received_at": null,
                    "dispatched_at": null,
                    "arrived_at": null,
                    "released_at": null,
                    "delivered_at": null,
                    "user": {
                        "id": 1,
                        "full_name": "Thembo Charles",
                        "email": "ashley7520charles@gmail.com",
                        "phone": "0787444081",
                        "email_verified_at": null,
                        "tin": "110023452",
                        "passport": "65748",
                        "address": "Kampala",
                        "otp": "4782",
                        "status": "active",
                        "user_type": "user",
                        "created_at": "2025-12-05T06:42:09.000000Z",
                        "updated_at": "2025-12-05T07:58:28.000000Z",
                        "deleted_at": null
                    }
                },
                "line_items": [],
                "payments": []
            }
        ],
        "first_page_url": "http://127.0.0.1:8000/api/billing/invoices?page=1",
        "from": 1,
        "last_page": 1,
        "last_page_url": "http://127.0.0.1:8000/api/billing/invoices?page=1",
        "links": [
            {
                "url": null,
                "label": "&laquo; Previous",
                "active": false
            },
            {
                "url": "http://127.0.0.1:8000/api/billing/invoices?page=1",
                "label": "1",
                "active": true
            },
            {
                "url": null,
                "label": "Next &raquo;",
                "active": false
            }
        ],
        "next_page_url": null,
        "path": "http://127.0.0.1:8000/api/billing/invoices",
        "per_page": 20,
        "prev_page_url": null,
        "to": 2,
        "total": 2
    }
}
 

Request      

GET api/billing/invoices

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Make an Invoice

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/billing/invoices" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_id\": \"consequatur\",
    \"user_id\": 17,
    \"type\": \"FREIGHT,STORAGE,CUSTOMS,OTHER\",
    \"due_date\": \"consequatur\",
    \"currency\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoices"
);

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

let body = {
    "order_id": "consequatur",
    "user_id": 17,
    "type": "FREIGHT,STORAGE,CUSTOMS,OTHER",
    "due_date": "consequatur",
    "currency": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoices';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'order_id' => 'consequatur',
            'user_id' => 17,
            'type' => 'FREIGHT,STORAGE,CUSTOMS,OTHER',
            'due_date' => 'consequatur',
            'currency' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoice created successfully",
    "data": {
        "order_id": "5",
        "type": "FREIGHT",
        "due_date": "2005-12-09T00:00:00.000000Z",
        "user_id": 1,
        "invoice_number": "INV-20251208-00002",
        "updated_at": "2025-12-08T10:31:55.000000Z",
        "created_at": "2025-12-08T10:31:55.000000Z",
        "id": 2,
        "order": {
            "id": 5,
            "created_at": "2025-12-05T12:20:11.000000Z",
            "updated_at": "2025-12-05T12:20:11.000000Z",
            "deleted_at": null,
            "tracking_number": "ORD-20251205-00002",
            "user_id": 1,
            "origin_country": "ITALY",
            "receiver_name": "Tom Mboya",
            "receiver_phone": "0789887766",
            "receiver_email": "tom.mboya@gmail.com",
            "receiver_address": "Uganda - Kampala",
            "status": "PENDING",
            "received_at": null,
            "dispatched_at": null,
            "arrived_at": null,
            "released_at": null,
            "delivered_at": null
        }
    }
}
 

Request      

POST api/billing/invoices

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

order_id   string  optional    

optional Example: consequatur

user_id   integer  optional    

optional Example: 17

type   string     

Example: FREIGHT,STORAGE,CUSTOMS,OTHER

due_date   date     

Example: consequatur

currency   string     

Example: consequatur

Single Invoice Details

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/billing/invoices/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoices/consequatur"
);

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

let body = {
    "invoice_id": 17
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoices/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'invoice_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/billing/invoices/consequatur could not be found."
}
 

Request      

GET api/billing/invoices/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the invoice. Example: consequatur

Body Parameters

invoice_id   integer     

Example: 17

Update an Invoice

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/billing/invoices/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"FREIGHT,STORAGE,CUSTOMS,OTHER\",
    \"status\": \"UNPAID,PAID,OVERDUE,CANCELLED\",
    \"due_date\": \"consequatur\",
    \"currency\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoices/17"
);

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

let body = {
    "type": "FREIGHT,STORAGE,CUSTOMS,OTHER",
    "status": "UNPAID,PAID,OVERDUE,CANCELLED",
    "due_date": "consequatur",
    "currency": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoices/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'type' => 'FREIGHT,STORAGE,CUSTOMS,OTHER',
            'status' => 'UNPAID,PAID,OVERDUE,CANCELLED',
            'due_date' => 'consequatur',
            'currency' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoice Updated successfully",
    "data": {
        "order_id": "5",
        "type": "FREIGHT",
        "due_date": "2005-12-09T00:00:00.000000Z",
        "user_id": 1,
        "invoice_number": "INV-20251208-00002",
        "updated_at": "2025-12-08T10:31:55.000000Z",
        "created_at": "2025-12-08T10:31:55.000000Z",
        "id": 2,
        "order": {
            "id": 5,
            "created_at": "2025-12-05T12:20:11.000000Z",
            "updated_at": "2025-12-05T12:20:11.000000Z",
            "deleted_at": null,
            "tracking_number": "ORD-20251205-00002",
            "user_id": 1,
            "origin_country": "ITALY",
            "receiver_name": "Tom Mboya",
            "receiver_phone": "0789887766",
            "receiver_email": "tom.mboya@gmail.com",
            "receiver_address": "Uganda - Kampala",
            "status": "PENDING",
            "received_at": null,
            "dispatched_at": null,
            "arrived_at": null,
            "released_at": null,
            "delivered_at": null
        }
    }
}
 

Request      

PUT api/billing/invoices/{id}

PATCH api/billing/invoices/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice. Example: 17

Body Parameters

type   string     

Example: FREIGHT,STORAGE,CUSTOMS,OTHER

status   string  optional    

Example: UNPAID,PAID,OVERDUE,CANCELLED

due_date   date     

Example: consequatur

currency   string  optional    

Example: consequatur

Delete Invoice

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/billing/invoices/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoices/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoices/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Invoice deleted successfully",
      }
  }
 

Request      

DELETE api/billing/invoices/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice. Example: 17

invoice_id   integer     

Example: 17

Restore Invoice

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/billing/invoices/17/restore" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoices/17/restore"
);

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

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoices/17/restore';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Invoice restored successfully",
      }
  }
 

Request      

POST api/billing/invoices/{id}/restore

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice. Example: 17

invoice_id   integer     

Example: 17

Add Item to Invoice

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_id\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"quantity\": 17,
    \"unit_price\": 11613.31890586
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items"
);

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

let body = {
    "invoice_id": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "quantity": 17,
    "unit_price": 11613.31890586
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoice-line-items';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'invoice_id' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
            'quantity' => 17,
            'unit_price' => 11613.31890586,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoice line item created successfully",
    "data": {
        "invoice_id": "1",
        "description": "Cargo A",
        "quantity": "1",
        "unit_price": "30000",
        "updated_at": "2025-12-08T13:30:52.000000Z",
        "created_at": "2025-12-08T13:30:52.000000Z",
        "id": 1
    }
}
 

Request      

POST api/billing/invoice-line-items

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

invoice_id   string     

Example: consequatur

description   string     

Example: Dolores dolorum amet iste laborum eius est dolor.

quantity   integer     

Example: 17

unit_price   number     

Example: 11613.31890586

Edit Invoice Item

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"quantity\": 17,
    \"unit_price\": 11613.31890586,
    \"invoice_id\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17"
);

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

let body = {
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "quantity": 17,
    "unit_price": 11613.31890586,
    "invoice_id": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoice-line-items/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
            'quantity' => 17,
            'unit_price' => 11613.31890586,
            'invoice_id' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoice line item updated successfully",
    "data": {
        "id": 2,
        "created_at": "2025-12-08T13:32:09.000000Z",
        "updated_at": "2025-12-08T13:32:09.000000Z",
        "deleted_at": null,
        "invoice_id": 1,
        "description": "Cargo A",
        "quantity": 1,
        "unit_price": 30000
    }
}
 

Request      

PUT api/billing/invoice-line-items/{id}

PATCH api/billing/invoice-line-items/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice line item. Example: 17

Body Parameters

description   string     

Example: Dolores dolorum amet iste laborum eius est dolor.

quantity   integer     

Example: 17

unit_price   number     

Example: 11613.31890586

invoice_id   string     

Example: consequatur

Delete Invoice Item

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoice-line-items/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoice line item deleted successfully"
}
 

Request      

DELETE api/billing/invoice-line-items/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice line item. Example: 17

Restore Invoice Item

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17/restore" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17/restore"
);

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

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoice-line-items/17/restore';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Invoice line item deleted successfully"
}
 

Request      

POST api/billing/invoice-line-items/{id}/restore

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice line item. Example: 17

invoiceLineItem_id   integer     

Example: 17

Record Invoice Payment

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/billing/payments" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"invoice_id\": 17,
    \"assisted_shopping_id\": 17,
    \"amount\": 11613.31890586,
    \"method\": \"MOBILE_MONEY,CARD,BANK_TRANSFER,CASH\",
    \"transaction_reference\": \"Any string\",
    \"gateway_reference\": \"Any string\",
    \"status\": \"Any string\",
    \"paid_at\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/payments"
);

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

let body = {
    "invoice_id": 17,
    "assisted_shopping_id": 17,
    "amount": 11613.31890586,
    "method": "MOBILE_MONEY,CARD,BANK_TRANSFER,CASH",
    "transaction_reference": "Any string",
    "gateway_reference": "Any string",
    "status": "Any string",
    "paid_at": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/payments';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'invoice_id' => 17,
            'assisted_shopping_id' => 17,
            'amount' => 11613.31890586,
            'method' => 'MOBILE_MONEY,CARD,BANK_TRANSFER,CASH',
            'transaction_reference' => 'Any string',
            'gateway_reference' => 'Any string',
            'status' => 'Any string',
            'paid_at' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Payment recorded successfully",
    "data": {
        "invoice_id": "1",
        "amount": "30000",
        "method": "CASH",
        "paid_at": "2025-12-08",
        "updated_at": "2025-12-08T13:47:08.000000Z",
        "created_at": "2025-12-08T13:47:08.000000Z",
        "id": 1
    }
}
 

Request      

POST api/billing/payments

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

invoice_id   integer  optional    

Example: 17

assisted_shopping_id   integer  optional    

Example: 17

amount   number     

Example: 11613.31890586

method   string     

Example: MOBILE_MONEY,CARD,BANK_TRANSFER,CASH

transaction_reference   string  optional    

Request parameter: transaction_reference. Example: Any string

gateway_reference   string  optional    

Request parameter: gateway_reference. Example: Any string

status   string  optional    

Request parameter: status. Example: Any string

Must be one of:
  • PENDING
  • COMPLETED
  • FAILED
paid_at   date     

Example: consequatur

All Payments

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/billing/payments" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/payments"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/payments';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/billing/payments could not be found."
}
 

Request      

GET api/billing/payments

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Delete Invoice Payment

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/billing/payments/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/payments/consequatur"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/payments/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
      "message": "Payment deleted successfully",
  }
 

Request      

DELETE api/billing/payments/{payment_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

payment_id   string  optional    

date required Example: consequatur

Send Invoice Notification

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/billing/send_invoice/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/send_invoice/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/send_invoice/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Invoice Sent successfully",
      }
  }
 

Request      

GET api/billing/send_invoice/{invoice_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

invoice_id   integer     

Example: 17

Shipment Delivery

Shipment Delivery

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/delivery/orders" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "current_page": 1,
  "data": [
      {
          "id": 4,
          "created_at": "2025-12-09T07:41:36.000000Z",
          "updated_at": "2025-12-09T08:12:25.000000Z",
          "deleted_at": null,
          "delivery_number": "DEL-000001",
          "order_id": 5,
          "rider_id": null,
          "delivery_address": "Kasese",
          "delivery_date": "2025-12-10",
          "status": "PENDING",
          "pod_signature": null,
          "pod_photo_path": "pod_photos/2akLAes8oj4j5OIxC71O5GxwEN8fSJ1jxtotKyxk.jpg",
          "delivery_notes": null,
          "delivered_at": null,
          "order": {
              "id": 5,
              "created_at": "2025-12-05T12:20:11.000000Z",
              "updated_at": "2025-12-05T12:20:11.000000Z",
              "deleted_at": null,
              "tracking_number": "ORD-20251205-00002",
              "user_id": 1,
              "origin_country": "ITALY",
              "receiver_name": "Tom Mboya",
              "receiver_phone": "0789887766",
              "receiver_email": "tom.mboya@gmail.com",
              "receiver_address": "Uganda - Kampala",
              "status": "PENDING",
              "received_at": null,
              "dispatched_at": null,
              "arrived_at": null,
              "released_at": null,
              "delivered_at": null,
              "packages": [
                  {
                      "id": 1,
                      "created_at": "2025-12-08T07:19:43.000000Z",
                      "updated_at": "2025-12-08T07:42:06.000000Z",
                      "deleted_at": null,
                      "order_id": 5,
                      "hwb_number": "HWB-2025128-0002",
                      "contents": "Computer - Desktop",
                      "declared_value": "2500000.00",
                      "weight": "5.00",
                      "length": "4.00",
                      "width": "6.00",
                      "height": "2.00",
                      "is_fragile": true,
                      "is_hazardous": false,
                      "is_damaged": false,
                      "package_photos": [
                          "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
                          "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
                          "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
                      ],
                      "location_id": 1,
                      "received_at": "2025-12-03T00:00:00.000000Z"
                  },

              ]
          }
      }
  ],
  "first_page_url": "http://127.0.0.1:8000/api/delivery/orders?page=1",
  "from": 1,
  "last_page": 1,
  "last_page_url": "http://127.0.0.1:8000/api/delivery/orders?page=1",
  "links": [
      {
          "url": null,
          "label": "&laquo; Previous",
          "active": false
      },
      {
          "url": "http://127.0.0.1:8000/api/delivery/orders?page=1",
          "label": "1",
          "active": true
      },
      {
          "url": null,
          "label": "Next &raquo;",
          "active": false
      }
  ],
  "next_page_url": null,
  "path": "http://127.0.0.1:8000/api/delivery/orders",
  "per_page": 20,
  "prev_page_url": null,
  "to": 1,
  "total": 1
}
 

Request      

GET api/delivery/orders

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Create Shipment Delivery

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/delivery/orders" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"rider_id\": \"Any string\",
    \"package_id\": 17,
    \"delivery_address\": \"consequatur\",
    \"delivery_date\": \"consequatur\",
    \"status\": \"Any string\",
    \"pod_signature\": \"Any string\",
    \"pod_photo_path\": \"Any string\",
    \"delivery_notes\": \"consequatur\",
    \"delivered_at\": \"Any string\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders"
);

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

let body = {
    "rider_id": "Any string",
    "package_id": 17,
    "delivery_address": "consequatur",
    "delivery_date": "consequatur",
    "status": "Any string",
    "pod_signature": "Any string",
    "pod_photo_path": "Any string",
    "delivery_notes": "consequatur",
    "delivered_at": "Any string"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'rider_id' => 'Any string',
            'package_id' => 17,
            'delivery_address' => 'consequatur',
            'delivery_date' => 'consequatur',
            'status' => 'Any string',
            'pod_signature' => 'Any string',
            'pod_photo_path' => 'Any string',
            'delivery_notes' => 'consequatur',
            'delivered_at' => 'Any string',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Shipment Delivery created successfully",
    "data": {
        "order_id": "5",
        "delivery_address": "Kasese",
        "delivery_date": "2025-12-10",
        "delivery_number": "DEL-000001",
        "updated_at": "2025-12-09T07:41:36.000000Z",
        "created_at": "2025-12-09T07:41:36.000000Z",
        "id": 4,
        "order": {
            "id": 5,
            "created_at": "2025-12-05T12:20:11.000000Z",
            "updated_at": "2025-12-05T12:20:11.000000Z",
            "deleted_at": null,
            "tracking_number": "ORD-20251205-00002",
            "user_id": 1,
            "origin_country": "ITALY",
            "receiver_name": "Tom Mboya",
            "receiver_phone": "0789887766",
            "receiver_email": "tom.mboya@gmail.com",
            "receiver_address": "Uganda - Kampala",
            "status": "PENDING",
            "received_at": null,
            "dispatched_at": null,
            "arrived_at": null,
            "released_at": null,
            "delivered_at": null,
            "packages": [
                {
                    "id": 1,
                    "created_at": "2025-12-08T07:19:43.000000Z",
                    "updated_at": "2025-12-08T07:42:06.000000Z",
                    "deleted_at": null,
                    "order_id": 5,
                    "hwb_number": "HWB-2025128-0002",
                    "contents": "Computer - Desktop",
                    "declared_value": "2500000.00",
                    "weight": "5.00",
                    "length": "4.00",
                    "width": "6.00",
                    "height": "2.00",
                    "is_fragile": true,
                    "is_hazardous": false,
                    "is_damaged": false,
                    "package_photos": [
                        "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
                        "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
                        "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
                    ],
                    "location_id": 1,
                    "received_at": "2025-12-03T00:00:00.000000Z"
                },
                {
                    "id": 2,
                    "created_at": "2025-12-08T07:32:17.000000Z",
                    "updated_at": "2025-12-08T07:32:17.000000Z",
                    "deleted_at": null,
                    "order_id": 5,
                    "hwb_number": "HWB-2025128-0021",
                    "contents": "Computer - Desktop",
                    "declared_value": "2500000.00",
                    "weight": "5.00",
                    "length": "4.00",
                    "width": "6.00",
                    "height": "2.00",
                    "is_fragile": true,
                    "is_hazardous": false,
                    "is_damaged": false,
                    "package_photos": null,
                    "location_id": 1,
                    "received_at": "2025-12-03T00:00:00.000000Z"
                }
            ]
        }
    }
}
 

Request      

POST api/delivery/orders

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

rider_id   string  optional    

Request parameter: rider_id. The id of an existing record in the users table. Example: Any string

package_id   integer     

Example: 17

delivery_address   string     

Example: consequatur

delivery_date   date     

Example: consequatur

status   string  optional    

Request parameter: status. Example: Any string

Must be one of:
  • PENDING
  • ASSIGNED
  • OUT_FOR_DELIVERY
  • DELIVERED
  • FAILED
pod_signature   string  optional    

Request parameter: pod_signature. Example: Any string

pod_photo_path   string  optional    

Request parameter: pod_photo_path. Example: Any string

delivery_notes   string  optional    

Example: consequatur

delivered_at   string  optional    

Request parameter: delivered_at. Must be a valid date. Example: Any string

Single Shipment Delivery

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/delivery/orders/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Shipment Delivery",
    "data": {
        "id": 4,
        "created_at": "2025-12-09T07:41:36.000000Z",
        "updated_at": "2025-12-09T08:12:25.000000Z",
        "deleted_at": null,
        "delivery_number": "DEL-000001",
        "order_id": 5,
        "rider_id": null,
        "delivery_address": "Kasese",
        "delivery_date": "2025-12-10",
        "status": "PENDING",
        "pod_signature": null,
        "pod_photo_path": "pod_photos/2akLAes8oj4j5OIxC71O5GxwEN8fSJ1jxtotKyxk.jpg",
        "delivery_notes": null,
        "delivered_at": null,
        "order": {
            "id": 5,
            "created_at": "2025-12-05T12:20:11.000000Z",
            "updated_at": "2025-12-05T12:20:11.000000Z",
            "deleted_at": null,
            "tracking_number": "ORD-20251205-00002",
            "user_id": 1,
            "origin_country": "ITALY",
            "receiver_name": "Tom Mboya",
            "receiver_phone": "0789887766",
            "receiver_email": "tom.mboya@gmail.com",
            "receiver_address": "Uganda - Kampala",
            "status": "PENDING",
            "received_at": null,
            "dispatched_at": null,
            "arrived_at": null,
            "released_at": null,
            "delivered_at": null,
            "packages": [
                {
                    "id": 1,
                    "created_at": "2025-12-08T07:19:43.000000Z",
                    "updated_at": "2025-12-08T07:42:06.000000Z",
                    "deleted_at": null,
                    "order_id": 5,
                    "hwb_number": "HWB-2025128-0002",
                    "contents": "Computer - Desktop",
                    "declared_value": "2500000.00",
                    "weight": "5.00",
                    "length": "4.00",
                    "width": "6.00",
                    "height": "2.00",
                    "is_fragile": true,
                    "is_hazardous": false,
                    "is_damaged": false,
                    "package_photos": [
                        "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
                        "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
                        "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
                    ],
                    "location_id": 1,
                    "received_at": "2025-12-03T00:00:00.000000Z"
                },
                {
                    "id": 2,
                    "created_at": "2025-12-08T07:32:17.000000Z",
                    "updated_at": "2025-12-08T07:32:17.000000Z",
                    "deleted_at": null,
                    "order_id": 5,
                    "hwb_number": "HWB-2025128-0021",
                    "contents": "Computer - Desktop",
                    "declared_value": "2500000.00",
                    "weight": "5.00",
                    "length": "4.00",
                    "width": "6.00",
                    "height": "2.00",
                    "is_fragile": true,
                    "is_hazardous": false,
                    "is_damaged": false,
                    "package_photos": null,
                    "location_id": 1,
                    "received_at": "2025-12-03T00:00:00.000000Z"
                }
            ],
            "user": {
                "id": 1,
                "full_name": "Thembo Charles",
                "email": "ashley7520charles@gmail.com",
                "phone": "0787444081",
                "email_verified_at": null,
                "tin": "110023452",
                "passport": "65748",
                "address": "Kampala",
                "otp": "4782",
                "status": "active",
                "user_type": "user",
                "created_at": "2025-12-05T06:42:09.000000Z",
                "updated_at": "2025-12-05T07:58:28.000000Z",
                "deleted_at": null
            }
        }
    }
}
 

Request      

GET api/delivery/orders/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order. Example: 17

Update Shipment Delivery

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/delivery/orders/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"rider_id\": \"Any string\",
    \"delivery_address\": \"consequatur\",
    \"delivery_date\": \"consequatur\",
    \"pod_signature\": \"Any string\",
    \"pod_photo_path\": \"Any string\",
    \"delivery_notes\": \"consequatur\",
    \"delivered_at\": \"Any string\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders/17"
);

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

let body = {
    "rider_id": "Any string",
    "delivery_address": "consequatur",
    "delivery_date": "consequatur",
    "pod_signature": "Any string",
    "pod_photo_path": "Any string",
    "delivery_notes": "consequatur",
    "delivered_at": "Any string"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'rider_id' => 'Any string',
            'delivery_address' => 'consequatur',
            'delivery_date' => 'consequatur',
            'pod_signature' => 'Any string',
            'pod_photo_path' => 'Any string',
            'delivery_notes' => 'consequatur',
            'delivered_at' => 'Any string',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Shipment Delivery updated successfully",
    "data": {
        "order_id": "5",
        "delivery_address": "Kasese",
        "delivery_date": "2025-12-10",
        "delivery_number": "DEL-000001",
        "updated_at": "2025-12-09T07:41:36.000000Z",
        "created_at": "2025-12-09T07:41:36.000000Z",
        "id": 4,
        "order": {
            "id": 5,
            "created_at": "2025-12-05T12:20:11.000000Z",
            "updated_at": "2025-12-05T12:20:11.000000Z",
            "deleted_at": null,
            "tracking_number": "ORD-20251205-00002",
            "user_id": 1,
            "origin_country": "ITALY",
            "receiver_name": "Tom Mboya",
            "receiver_phone": "0789887766",
            "receiver_email": "tom.mboya@gmail.com",
            "receiver_address": "Uganda - Kampala",
            "status": "PENDING",
            "received_at": null,
            "dispatched_at": null,
            "arrived_at": null,
            "released_at": null,
            "delivered_at": null,
            "packages": [
                {
                    "id": 1,
                    "created_at": "2025-12-08T07:19:43.000000Z",
                    "updated_at": "2025-12-08T07:42:06.000000Z",
                    "deleted_at": null,
                    "order_id": 5,
                    "hwb_number": "HWB-2025128-0002",
                    "contents": "Computer - Desktop",
                    "declared_value": "2500000.00",
                    "weight": "5.00",
                    "length": "4.00",
                    "width": "6.00",
                    "height": "2.00",
                    "is_fragile": true,
                    "is_hazardous": false,
                    "is_damaged": false,
                    "package_photos": [
                        "package_photos/LXHHmhE4YM0YoTn1Lva95FSyQi31i89dskkPv2il.jpg",
                        "package_photos/thtdPXJtqtkpECHhbeyXIOAIMSGt564ZFIXBqdcp.jpg",
                        "package_photos/Uc34hnpyAPsAT1QINJfca0msaFdudcYfaY2Qs21h.jpg"
                    ],
                    "location_id": 1,
                    "received_at": "2025-12-03T00:00:00.000000Z"
                },
                {
                    "id": 2,
                    "created_at": "2025-12-08T07:32:17.000000Z",
                    "updated_at": "2025-12-08T07:32:17.000000Z",
                    "deleted_at": null,
                    "order_id": 5,
                    "hwb_number": "HWB-2025128-0021",
                    "contents": "Computer - Desktop",
                    "declared_value": "2500000.00",
                    "weight": "5.00",
                    "length": "4.00",
                    "width": "6.00",
                    "height": "2.00",
                    "is_fragile": true,
                    "is_hazardous": false,
                    "is_damaged": false,
                    "package_photos": null,
                    "location_id": 1,
                    "received_at": "2025-12-03T00:00:00.000000Z"
                }
            ]
        }
    }
}
 

Request      

PUT api/delivery/orders/{id}

PATCH api/delivery/orders/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order. Example: 17

deliveryOrder_id   integer     

Example: 17

Body Parameters

rider_id   string  optional    

Request parameter: rider_id. The id of an existing record in the user table. Example: Any string

delivery_address   string     

Example: consequatur

delivery_date   date     

Example: consequatur

pod_signature   string  optional    

Request parameter: pod_signature. Example: Any string

pod_photo_path   string  optional    

Request parameter: pod_photo_path. Example: Any string

delivery_notes   string  optional    

Example: consequatur

delivered_at   string  optional    

Request parameter: delivered_at. Must be a valid date. Example: Any string

Delete Shipment Delivery

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/delivery/orders/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Shipment Delivery deleted successfully",
      }
 

Request      

DELETE api/delivery/orders/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order. Example: 17

deliveryOrder_id   integer     

Example: 17

Upload a point of Shipment Delivery photo

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/delivery/orders/17/upload-pod" \
    --header "Bearer: Token" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "pod_photo=@/tmp/phpZMk0Iy" 
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders/17/upload-pod"
);

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

const body = new FormData();
body.append('pod_photo', document.querySelector('input[name="pod_photo"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders/17/upload-pod';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'pod_photo',
                'contents' => fopen('/tmp/phpZMk0Iy', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Point Of Delivery photo uploaded successfully",
    "photo_url": "pod_photos/2akLAes8oj4j5OIxC71O5GxwEN8fSJ1jxtotKyxk.jpg"
}
 

Request      

POST api/delivery/orders/{delivery_order}/upload-pod

Headers

Bearer        

Example: Token

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

URL Parameters

delivery_order   integer     

Example: 17

delivery_order_id   integer     

Example: 17

Body Parameters

pod_photo   file     

Example: /tmp/phpZMk0Iy

Upload Customer Delivery Signature

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/delivery/orders/17/upload-signature" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"signature\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/orders/17/upload-signature"
);

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

let body = {
    "signature": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/orders/17/upload-signature';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'signature' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
      "message": "Signature saved successfully",
  }
 

Request      

POST api/delivery/orders/{delivery_order}/upload-signature

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

delivery_order   integer     

Example: 17

delivery_order_id   integer     

Example: 17

Body Parameters

signature   string     

Example: consequatur

Update Shipment Delivery status

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/delivery/update-orders-status/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"status\": \"PENDING,ASSIGNED,OUT_FOR_DELIVERY,DELIVERED,FAILED\",
    \"rider_id\": 17,
    \"reason\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/update-orders-status/consequatur"
);

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

let body = {
    "status": "PENDING,ASSIGNED,OUT_FOR_DELIVERY,DELIVERED,FAILED",
    "rider_id": 17,
    "reason": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/update-orders-status/consequatur';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'status' => 'PENDING,ASSIGNED,OUT_FOR_DELIVERY,DELIVERED,FAILED',
            'rider_id' => 17,
            'reason' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
      "message": "Rider assigned successfully",
  }
 

Request      

POST api/delivery/update-orders-status/{delivery_order}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

delivery_order   string     

Example: consequatur

delivery_order_id   integer     

Example: 17

Body Parameters

status   string     

Example: PENDING,ASSIGNED,OUT_FOR_DELIVERY,DELIVERED,FAILED

rider_id   integer  optional    

Example: 17

reason   string  optional    

Example: consequatur

Dashboard

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/delivery/dashboard" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/dashboard"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/dashboard';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "total": 1,
    "pending": 1,
    "assigned": 0,
    "out": 0,
    "delivered": 0,
    "failed": 0,
    "today_deliveries": []
}
 

Request      

GET api/delivery/dashboard

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Riders

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/delivery/riders" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/delivery/riders"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/delivery/riders';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Riders",
    "data": [
        {
            "id": 1,
            "full_name": "Thembo Charles",
            "phone": "0787444081",
            "email": "ashley7520charles@gmail.com"
        }
    ]
}
 

Request      

GET api/delivery/riders

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

AssistedShopping

Assisted shopping lists

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/assisted_shopping" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
  "message": "Assisted Shoppings",
  "data": {
      "current_page": 1,
      "data": [
          {
              "id": 3,
              "created_at": "2025-12-19T14:05:32.000000Z",
              "updated_at": "2025-12-19T14:05:32.000000Z",
              "deleted_at": null,
              "name": "iPhones 16",
              "url": "https://www.jumia.ug/mlp-oraimo-store/",
              "quantity": 1,
              "status": "requested",
              "notes": "All packages are in good condition",
              "user_id": 1,
              "user": {
                  "id": 1,
                  "full_name": "Samson Tusiime",
                  "email": "tusiimesam@gmail.com",
                  "phone": "+256775926572",
                  "tin": null,
                  "passport": null,
                  "address": "Kampala",
                  "status": "active",
                  "user_type": "super_user",
                  "created_at": "2025-12-10T08:58:27.000000Z",
                  "updated_at": "2025-12-10T08:58:27.000000Z",
                  "deleted_at": null
              }
          },

      ],
      "first_page_url": "http://127.0.0.1:8000/api/assisted_shopping?page=1",
      "from": 1,
      "last_page": 1,
      "last_page_url": "http://127.0.0.1:8000/api/assisted_shopping?page=1",
      "links": [
          {
              "url": null,
              "label": "&laquo; Previous",
              "active": false
          },
          {
              "url": "http://127.0.0.1:8000/api/assisted_shopping?page=1",
              "label": "1",
              "active": true
          },
          {
              "url": null,
              "label": "Next &raquo;",
              "active": false
          }
      ],
      "next_page_url": null,
      "path": "http://127.0.0.1:8000/api/assisted_shopping",
      "per_page": 20,
      "prev_page_url": null,
      "to": 4,
      "total": 4
  }
}
 

Request      

GET api/assisted_shopping

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Add Assisted shopping

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/assisted_shopping" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"insured\": false,
    \"shipping_mode\": \"consequatur\",
    \"items\": [
        \"consequatur\"
    ],
    \"name\": \"consequatur\",
    \"url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
    \"quantity\": 17,
    \"notes\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping"
);

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

let body = {
    "insured": false,
    "shipping_mode": "consequatur",
    "items": [
        "consequatur"
    ],
    "name": "consequatur",
    "url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "quantity": 17,
    "notes": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'insured' => false,
            'shipping_mode' => 'consequatur',
            'items' => [
                'consequatur',
            ],
            'name' => 'consequatur',
            'url' => 'http://kunze.biz/iste-laborum-eius-est-dolor.html',
            'quantity' => 17,
            'notes' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Assisted Shopping item added to successfully",
    "data": {
        "name": "Phones",
        "url": "https://www.jumia.ug/mlp-oraimo-store/",
        "notes": "All packages are in good condition",
        "user_id": 1,
        "updated_at": "2025-12-19T13:58:47.000000Z",
        "created_at": "2025-12-19T13:58:47.000000Z",
        "id": 1
    }
}
 

Request      

POST api/assisted_shopping

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

insured   boolean  optional    

Request parameter: insured. Example: false

shipping_mode   string  optional    

e.g: 'express','standard' Example: consequatur

items   string[]     

List of shipping items

name   string     

Name of the cargo item Example: consequatur

url   string     

link to the product Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

quantity   number     

Quantity to buy Example: 11613.31890586

notes   string     

Other required information Example: consequatur

name   string     

Example: consequatur

url   string     

Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

quantity   integer  optional    

Example: 17

notes   string  optional    

Example: consequatur

Assisted shopping

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/assisted_shopping/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/assisted_shopping/17 could not be found."
}
 

Request      

GET api/assisted_shopping/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the assisted shopping. Example: 17

assistedShopping_id   integer     

Example: 17

Updated Assisted shopping

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/assisted_shopping/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
    \"quantity\": 17,
    \"status\": \"[\'requested\',\'quoted\',\'paid\',\'declined\']\",
    \"notes\": \"consequatur\",
    \"insured\": false,
    \"shipping_mode\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping/17"
);

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

let body = {
    "name": "consequatur",
    "url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "quantity": 17,
    "status": "['requested','quoted','paid','declined']",
    "notes": "consequatur",
    "insured": false,
    "shipping_mode": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'url' => 'http://kunze.biz/iste-laborum-eius-est-dolor.html',
            'quantity' => 17,
            'status' => '[\'requested\',\'quoted\',\'paid\',\'declined\']',
            'notes' => 'consequatur',
            'insured' => false,
            'shipping_mode' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Assisted Shopping item added to successfully",
    "data": {
        "name": "Phones",
        "url": "https://www.jumia.ug/mlp-oraimo-store/",
        "notes": "All packages are in good condition",
        "user_id": 1,
        "updated_at": "2025-12-19T13:58:47.000000Z",
        "created_at": "2025-12-19T13:58:47.000000Z",
        "id": 1
    }
}
 

Request      

PUT api/assisted_shopping/{id}

PATCH api/assisted_shopping/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the assisted shopping. Example: 17

assistedShopping_id   integer     

Example: 17

Body Parameters

name   string  optional    

Example: consequatur

url   string  optional    

Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

quantity   integer  optional    

Example: 17

status   string  optional    

Example: ['requested','quoted','paid','declined']

notes   string  optional    

Example: consequatur

insured   boolean  optional    

Request parameter: insured. Example: false

shipping_mode   string  optional    

e.g: 'express','standard' Example: consequatur

Updated Assisted shopping

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/assisted_shopping/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
      "message": "Assisted Shopping item deleted to successfully",

  }
 

Request      

DELETE api/assisted_shopping/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the assisted shopping. Example: 17

assistedShopping_id   integer     

Example: 17

Add Assistedshopping Quote Item

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"item_name\": \"consequatur\",
    \"quantity\": 17,
    \"unit_price\": 11613.31890586,
    \"currency\": \"consequatur\",
    \"assisted_shopping_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote"
);

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

let body = {
    "item_name": "consequatur",
    "quantity": 17,
    "unit_price": 11613.31890586,
    "currency": "consequatur",
    "assisted_shopping_id": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping_quote';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'item_name' => 'consequatur',
            'quantity' => 17,
            'unit_price' => 11613.31890586,
            'currency' => 'consequatur',
            'assisted_shopping_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/assisted_shopping_quote

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

item_name   string     

Example: consequatur

quantity   integer     

Example: 17

unit_price   number     

Example: 11613.31890586

currency   string  optional    

Example: consequatur

assisted_shopping_id   integer     

Example: 17

Update Assisted shopping Quote

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"item_name\": \"consequatur\",
    \"quantity\": 17,
    \"unit_price\": 11613.31890586,
    \"currency\": \"consequatur\",
    \"assisted_shopping_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote/17"
);

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

let body = {
    "item_name": "consequatur",
    "quantity": 17,
    "unit_price": 11613.31890586,
    "currency": "consequatur",
    "assisted_shopping_id": 17
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping_quote/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'item_name' => 'consequatur',
            'quantity' => 17,
            'unit_price' => 11613.31890586,
            'currency' => 'consequatur',
            'assisted_shopping_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/assisted_shopping_quote/{id}

PATCH api/assisted_shopping_quote/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the assisted shopping quote. Example: 17

assistedShoppingQuote_id   integer     

Example: 17

Body Parameters

item_name   string  optional    

Example: consequatur

quantity   integer  optional    

Example: 17

unit_price   number  optional    

Example: 11613.31890586

currency   string  optional    

Example: consequatur

assisted_shopping_id   integer  optional    

Example: 17

Delete Assisted shopping Quote item

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping_quote/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/assisted_shopping_quote/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the assisted shopping quote. Example: 17

assistedShoppingQuote_id   integer     

Example: 17

Order

Update Order status

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/order_status_hisory" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"order_id\": 17,
    \"status\": \"consequatur\",
    \"location\": \"consequatur\",
    \"notes\": \"consequatur\",
    \"user_id\": 1000
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/order_status_hisory"
);

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

let body = {
    "order_id": 17,
    "status": "consequatur",
    "location": "consequatur",
    "notes": "consequatur",
    "user_id": 1000
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/order_status_hisory';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'order_id' => 17,
            'status' => 'consequatur',
            'location' => 'consequatur',
            'notes' => 'consequatur',
            'user_id' => 1000,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Order history created successfully.",
      }
 

Request      

POST api/order_status_hisory

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

order_id   integer     

Example: 17

status   string     

e.g PENDING,RECEIVED,CONSOLIDATED,DISPATCHED,IN_TRANSIT,ARRIVED,READY_FOR_RELEASE,RELEASED,DELIVERED Example: consequatur

location   string  optional    

Example: consequatur

notes   string     

Example: consequatur

user_id   integer  optional    

Request parameter: user_id. Example: 1000

Delete Order status history

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/order_status_hisory/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/order_status_hisory/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/order_status_hisory/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
         "status": "success",
          "message": "Order status history deleted.",
      }
  }
 

Request      

DELETE api/order_status_hisory/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the order status hisory. Example: 17

orderStatusHistory_id   integer     

Example: 17

Order This is a delivery request

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/cargo_decleration" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_decleration"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_decleration';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Order",
    "data": [
        {
            "id": 1,
            "created_at": "2025-12-30T08:08:52.000000Z",
            "updated_at": "2025-12-30T08:29:31.000000Z",
            "deleted_at": null,
            "warehouse_location_id": 1,
            "internal_curier": "DHL",
            "tracking_number": "DHL-009874",
            "cargo_details": "Laptops",
            "value": "34000",
            "weight": "50",
            "status": "pending",
            "files": [
                "package_photos/mCJHMcA4IyQl1Ws54K3OllAgVNWm1pYB3gNCKrY0.pdf",
                "package_photos/p9FvfMIqBxNwePlG4RsR2DN6IoBZOaUGOtv29cAJ.pdf"
            ],
            "user_id": 1,
            "user": {
                "id": 1,
                "full_name": "Samson Tusiime",
                "email": "tusiimesam@gmail.com",
                "phone": "+256775926572",
                "tin": null,
                "passport": null,
                "address": "Kampala",
                "status": "active",
                "user_type": "super_user",
                "created_at": "2025-12-22T07:51:55.000000Z",
                "updated_at": "2025-12-22T07:51:55.000000Z",
                "deleted_at": null,
                "delivery_address": null
            },
            "location": {
                "id": 1,
                "created_at": "2025-12-22T13:00:03.000000Z",
                "updated_at": "2025-12-22T13:03:02.000000Z",
                "deleted_at": null,
                "code": "ZM",
                "name": "Zamaleto",
                "address": "Kampala",
                "manager": "Charles",
                "active": 1,
                "rack_count": "4",
                "country": "Uganda"
            }
        }
    ]
}
 

Request      

GET api/cargo_decleration

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Store Order This is a delivery request

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/cargo_decleration" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"warehouse_location_id\": 17,
    \"internal_curier\": \"consequatur\",
    \"tracking_number\": \"consequatur\",
    \"insured\": false,
    \"shipping_mode\": \"consequatur\",
    \"cargo_details\": [
        \"consequatur\"
    ]
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_decleration"
);

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

let body = {
    "warehouse_location_id": 17,
    "internal_curier": "consequatur",
    "tracking_number": "consequatur",
    "insured": false,
    "shipping_mode": "consequatur",
    "cargo_details": [
        "consequatur"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_decleration';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'warehouse_location_id' => 17,
            'internal_curier' => 'consequatur',
            'tracking_number' => 'consequatur',
            'insured' => false,
            'shipping_mode' => 'consequatur',
            'cargo_details' => [
                'consequatur',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/cargo_decleration

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

warehouse_location_id   integer     

Example: 17

internal_curier   string  optional    

optional Example: consequatur

tracking_number   string  optional    

optional Example: consequatur

insured   boolean  optional    

Example: false

shipping_mode   string  optional    

sometimes e.g:express,standard' Example: consequatur

cargo_details   string[]     

List of cargo items

cargo_item   string     

Name of the cargo item Example: consequatur

value   number     

Declared value Example: 11613.31890586

weight   number     

Weight of the cargo Example: 11613.31890586

Order This is a delivery request

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/cargo_decleration/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_decleration/consequatur"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_decleration/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/cargo_decleration/consequatur could not be found."
}
 

Request      

GET api/cargo_decleration/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cargo decleration. Example: consequatur

cargoDeclation_id   integer     

Example: 17

Update Order This is a delivery request

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/cargo_decleration/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"internal_curier\": \"consequatur\",
    \"tracking_number\": \"consequatur\",
    \"cargo_details\": \"consequatur\",
    \"value\": \"consequatur\",
    \"weight\": \"consequatur\",
    \"status\": \"pending,received,declined\",
    \"insured\": false,
    \"shipping_mode\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_decleration/consequatur"
);

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

let body = {
    "internal_curier": "consequatur",
    "tracking_number": "consequatur",
    "cargo_details": "consequatur",
    "value": "consequatur",
    "weight": "consequatur",
    "status": "pending,received,declined",
    "insured": false,
    "shipping_mode": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_decleration/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'internal_curier' => 'consequatur',
            'tracking_number' => 'consequatur',
            'cargo_details' => 'consequatur',
            'value' => 'consequatur',
            'weight' => 'consequatur',
            'status' => 'pending,received,declined',
            'insured' => false,
            'shipping_mode' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/cargo_decleration/{id}

PATCH api/cargo_decleration/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cargo decleration. Example: consequatur

cargoDeclation_id   integer     

Example: 17

Body Parameters

internal_curier   string  optional    

optional Example: consequatur

tracking_number   string  optional    

optional Example: consequatur

cargo_details   string     

Example: consequatur

value   string     

Example: consequatur

weight   string  optional    

Example: consequatur

status   string  optional    

Example: pending,received,declined

insured   boolean  optional    

Example: false

shipping_mode   string  optional    

Example: consequatur

Delete Order This is a delivery request

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/cargo_decleration/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_decleration/consequatur"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_decleration/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/cargo_decleration/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the cargo decleration. Example: consequatur

cargoDeclation_id   integer     

Example: 17

Uplaod Order files This is a delivery request

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/cargo_files/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"files\": [
        \"consequatur\"
    ]
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_files/consequatur"
);

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

let body = {
    "files": [
        "consequatur"
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_files/consequatur';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'files' => [
                'consequatur',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/cargo_files/{cargo_decleration_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

cargo_decleration_id   string     

The ID of the cargo decleration. Example: consequatur

cargoDeclation_id   integer     

Example: 17

Body Parameters

files   string[]  optional    

Delete Order file This is a delivery request

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/cargo_files/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"file_name\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/cargo_files/consequatur"
);

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

let body = {
    "file_name": "consequatur"
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/cargo_files/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'file_name' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/cargo_files/{cargo_decleration_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

cargo_decleration_id   string     

The ID of the cargo decleration. Example: consequatur

cargodelceration_id   integer     

Example: 17

Body Parameters

file_name   string     

Example: consequatur

Chat

Chat conversations

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/tickets/chats" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/tickets/chats"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/tickets/chats';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/tickets/chats could not be found."
}
 

Request      

GET api/tickets/chats

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Send a Chat

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/tickets/chats" \
    --header "Bearer: Token" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "receiver_id=17"\
    --form "message=consequatur"\
    --form "file_url=@/tmp/phprrN2y8" 
const url = new URL(
    "https://www.constell.agent.co.ug/api/tickets/chats"
);

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

const body = new FormData();
body.append('receiver_id', '17');
body.append('message', 'consequatur');
body.append('file_url', document.querySelector('input[name="file_url"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/tickets/chats';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'receiver_id',
                'contents' => '17'
            ],
            [
                'name' => 'message',
                'contents' => 'consequatur'
            ],
            [
                'name' => 'file_url',
                'contents' => fopen('/tmp/phprrN2y8', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/tickets/chats

Headers

Bearer        

Example: Token

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

Body Parameters

receiver_id   integer     

bodyParam message string bodyParam file_url file Example: 17

message   string  optional    

Example: consequatur

file_url   file  optional    

Must be a file. Example: /tmp/phprrN2y8

Chat messages with a person

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/tickets/chats/consequatur" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/tickets/chats/consequatur"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/tickets/chats/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/tickets/chats/consequatur could not be found."
}
 

Request      

GET api/tickets/chats/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the chat. Example: consequatur

user_id   integer     

Example: 17

Mark chat as read

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/tickets/mark-as-read" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"user_id\": 17,
    \"message_status\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/tickets/mark-as-read"
);

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

let body = {
    "user_id": 17,
    "message_status": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/tickets/mark-as-read';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'user_id' => 17,
            'message_status' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/tickets/mark-as-read

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

user_id   integer     

Example: 17

message_status   string  optional    

e.g: sent,read,closed Example: consequatur

Expenditures

Categories list

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/expenditures/category" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/category"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/category';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/expenditures/category could not be found."
}
 

Request      

GET api/expenditures/category

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Create Categories

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/expenditures/category" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/category"
);

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

let body = {
    "name": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor."
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/category';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/expenditures/category

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Example: consequatur

description   string  optional    

Example: Dolores dolorum amet iste laborum eius est dolor.

Update Category

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/expenditures/category/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/category/17"
);

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

let body = {
    "name": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor."
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/category/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/expenditures/category/{id}

PATCH api/expenditures/category/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the category. Example: 17

expenseCategory_id   integer     

Example: 17

Body Parameters

name   string     

Example: consequatur

description   string  optional    

Example: Dolores dolorum amet iste laborum eius est dolor.

Delete Category

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/expenditures/category/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/category/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/category/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/expenditures/category/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the category. Example: 17

expenseCategory_id   integer     

Example: 17

List Expenses

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/expenditures/expenses" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"from\": \"consequatur\",
    \"to\": \"consequatur\",
    \"category_id\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/expenses"
);

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

let body = {
    "from": "consequatur",
    "to": "consequatur",
    "category_id": 17
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/expenses';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'from' => 'consequatur',
            'to' => 'consequatur',
            'category_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/expenditures/expenses could not be found."
}
 

Request      

GET api/expenditures/expenses

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

from   date  optional    

Example: consequatur

to   date  optional    

Example: consequatur

category_id   integer  optional    

Example: 17

Record Expenses

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/expenditures/expenses" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"consequatur\",
    \"expense_category_id\": 17,
    \"particular\": \"consequatur\",
    \"quantity\": 17,
    \"unit_price\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/expenses"
);

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

let body = {
    "date": "consequatur",
    "expense_category_id": 17,
    "particular": "consequatur",
    "quantity": 17,
    "unit_price": 17
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/expenses';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'date' => 'consequatur',
            'expense_category_id' => 17,
            'particular' => 'consequatur',
            'quantity' => 17,
            'unit_price' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/expenditures/expenses

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

date   date     

Example: consequatur

expense_category_id   integer     

Example: 17

particular   string     

Example: consequatur

quantity   integer     

Example: 17

unit_price   integer     

Example: 17

Update Expenses

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/expenditures/expenses/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"date\": \"consequatur\",
    \"expense_category_id\": 17,
    \"particular\": \"consequatur\",
    \"quantity\": 17,
    \"unit_price\": 17
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/expenses/17"
);

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

let body = {
    "date": "consequatur",
    "expense_category_id": 17,
    "particular": "consequatur",
    "quantity": 17,
    "unit_price": 17
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/expenses/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'date' => 'consequatur',
            'expense_category_id' => 17,
            'particular' => 'consequatur',
            'quantity' => 17,
            'unit_price' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/expenditures/expenses/{id}

PATCH api/expenditures/expenses/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the expense. Example: 17

expense_id   integer  optional    

Example: 17

Body Parameters

date   date  optional    

Example: consequatur

expense_category_id   integer     

Example: 17

particular   string  optional    

Example: consequatur

quantity   integer  optional    

Example: 17

unit_price   integer  optional    

Example: 17

Delete Expenses

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/expenditures/expenses/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/expenditures/expenses/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/expenditures/expenses/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/expenditures/expenses/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the expense. Example: 17

expense_id   integer     

Example: 17

Policy documents

Policy documents

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/documents" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/documents"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/documents';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/documents could not be found."
}
 

Request      

GET api/documents

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Uplaod Policy documents

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/documents" \
    --header "Bearer: Token" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=consequatur"\
    --form "description=Dolores dolorum amet iste laborum eius est dolor."\
    --form "file_url=@/tmp/phpUpC5NG" 
const url = new URL(
    "https://www.constell.agent.co.ug/api/documents"
);

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

const body = new FormData();
body.append('name', 'consequatur');
body.append('description', 'Dolores dolorum amet iste laborum eius est dolor.');
body.append('file_url', document.querySelector('input[name="file_url"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/documents';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'name',
                'contents' => 'consequatur'
            ],
            [
                'name' => 'description',
                'contents' => 'Dolores dolorum amet iste laborum eius est dolor.'
            ],
            [
                'name' => 'file_url',
                'contents' => fopen('/tmp/phpUpC5NG', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

POST api/documents

Headers

Bearer        

Example: Token

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

Body Parameters

name   string     

Example: consequatur

file_url   file  optional    

mimes:jpg,jpeg,png,webp,pdf Example: /tmp/phpUpC5NG

description   string  optional    

Example: Dolores dolorum amet iste laborum eius est dolor.

Policy document

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/documents/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/documents/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/documents/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/documents/17 could not be found."
}
 

Request      

GET api/documents/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

Example: 17

Updated Policy document

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/documents/17" \
    --header "Bearer: Token" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "name=consequatur"\
    --form "description=Dolores dolorum amet iste laborum eius est dolor."\
    --form "file_url=@/tmp/phpGNT1ix" 
const url = new URL(
    "https://www.constell.agent.co.ug/api/documents/17"
);

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

const body = new FormData();
body.append('name', 'consequatur');
body.append('description', 'Dolores dolorum amet iste laborum eius est dolor.');
body.append('file_url', document.querySelector('input[name="file_url"]').files[0]);

fetch(url, {
    method: "PUT",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/documents/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'name',
                'contents' => 'consequatur'
            ],
            [
                'name' => 'description',
                'contents' => 'Dolores dolorum amet iste laborum eius est dolor.'
            ],
            [
                'name' => 'file_url',
                'contents' => fopen('/tmp/phpGNT1ix', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PUT api/documents/{id}

PATCH api/documents/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: multipart/form-data

Accept        

Example: application/json

URL Parameters

id   integer     

Example: 17

Body Parameters

name   string     

Example: consequatur

file_url   file  optional    

mimes:jpg,jpeg,png,webp,pdf Example: /tmp/phpGNT1ix

description   string  optional    

Example: Dolores dolorum amet iste laborum eius est dolor.

Delete Policy document

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/documents/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/documents/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/documents/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

DELETE api/documents/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

Example: 17

Notifications

Notifications

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/settings/notifications" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/notifications"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/notifications';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/settings/notifications could not be found."
}
 

Request      

GET api/settings/notifications

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Update Notification status

requires authentication

Example request:
curl --request PATCH \
    "https://www.constell.agent.co.ug/api/settings/notification/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"notification_status\": \"\'read\',\'not_read\'\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/notification/17"
);

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

let body = {
    "notification_status": "'read','not_read'"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/notification/17';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'notification_status' => '\'read\',\'not_read\'',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request      

PATCH api/settings/notification/{user_message_id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

user_message_id   integer     

Example: 17

Body Parameters

notification_status   string     

Example: 'read','not_read'

Others

Display the specified resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/settings/locations/consequatur" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/locations/consequatur"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/locations/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/settings/locations/consequatur could not be found."
}
 

Request      

GET api/settings/locations/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   string     

The ID of the location. Example: consequatur

Display a listing of the resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/settings/warehouse_racks" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/warehouse_racks';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/settings/warehouse_racks could not be found."
}
 

Request      

GET api/settings/warehouse_racks

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/settings/warehouse_racks/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/settings/warehouse_racks/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/settings/warehouse_racks/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/settings/warehouse_racks/17 could not be found."
}
 

Request      

GET api/settings/warehouse_racks/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the warehouse rack. Example: 17

Display a listing of the resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/billing/invoice-line-items" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoice-line-items';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/billing/invoice-line-items could not be found."
}
 

Request      

GET api/billing/invoice-line-items

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/billing/invoice-line-items/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/billing/invoice-line-items/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/billing/invoice-line-items/17 could not be found."
}
 

Request      

GET api/billing/invoice-line-items/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the invoice line item. Example: 17

Display a listing of the resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/assisted_shopping_quote" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping_quote';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/assisted_shopping_quote could not be found."
}
 

Request      

GET api/assisted_shopping_quote

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Display the specified resource.

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/assisted_shopping_quote/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/assisted_shopping_quote/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/assisted_shopping_quote/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/assisted_shopping_quote/17 could not be found."
}
 

Request      

GET api/assisted_shopping_quote/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the assisted shopping quote. Example: 17

GET api/activity_logs

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/activity_logs" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/activity_logs"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/activity_logs';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/activity_logs could not be found."
}
 

Request      

GET api/activity_logs

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/shipping_address/create

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/shipping_address/create" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address/create"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address/create';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/shipping_address/create could not be found."
}
 

Request      

GET api/shipping_address/create

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/shipping_address/{id}

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/shipping_address/17" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address/17"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address/17';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/shipping_address/17 could not be found."
}
 

Request      

GET api/shipping_address/{id}

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the shipping address. Example: 17

GET api/shipping_address/{shipping_address_id}/edit

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/shipping_address/17/edit" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address/17/edit"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address/17/edit';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/shipping_address/17/edit could not be found."
}
 

Request      

GET api/shipping_address/{shipping_address_id}/edit

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

shipping_address_id   integer     

The ID of the shipping address. Example: 17

GET api/pesal_pal

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/pesal_pal" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/pesal_pal"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/pesal_pal';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/pesal_pal could not be found."
}
 

Request      

GET api/pesal_pal

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/ipn_url

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/ipn_url" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/ipn_url"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/ipn_url';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/ipn_url could not be found."
}
 

Request      

GET api/ipn_url

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

GET api/call_back_url

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/call_back_url" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/call_back_url"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/call_back_url';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (404):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "The route api/call_back_url could not be found."
}
 

Request      

GET api/call_back_url

Headers

Content-Type        

Example: application/json

Accept        

Example: application/json

Shipping address

Fetch Shipping address

requires authentication

Example request:
curl --request GET \
    --get "https://www.constell.agent.co.ug/api/shipping_address" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address"
);

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

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Shipping Address fetched successfully",
    "data": [
        {
            "id": 1,
            "created_at": "2026-01-23T08:01:06.000000Z",
            "updated_at": "2026-01-23T08:01:06.000000Z",
            "name": "USA - AIR",
            "address_line1": "4720 Boston Way",
            "address_line2": "Suite C Shypt",
            "city": "Lanham",
            "state": "MD",
            "zip": "20706",
            "phone_number": "+1 301 317 0512",
            "deleted_at": null
        }
    ]
}
 

Request      

GET api/shipping_address

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Record Shipping address

requires authentication

Example request:
curl --request POST \
    "https://www.constell.agent.co.ug/api/shipping_address" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"address_line1\": \"consequatur\",
    \"address_line2\": \"consequatur\",
    \"city\": \"consequatur\",
    \"state\": \"consequatur\",
    \"zip\": \"consequatur\",
    \"phone_number\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address"
);

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

let body = {
    "name": "consequatur",
    "address_line1": "consequatur",
    "address_line2": "consequatur",
    "city": "consequatur",
    "state": "consequatur",
    "zip": "consequatur",
    "phone_number": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'address_line1' => 'consequatur',
            'address_line2' => 'consequatur',
            'city' => 'consequatur',
            'state' => 'consequatur',
            'zip' => 'consequatur',
            'phone_number' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Shipping Address created successfully",
    "data": {
        "name": "USA - AIR",
        "address_line1": "4720 Boston Way",
        "address_line2": "Suite C Shypt",
        "city": "Lanham",
        "state": "MD",
        "zip": "20706",
        "phone_number": "+1 301 317 0512",
        "updated_at": "2026-01-23T08:01:06.000000Z",
        "created_at": "2026-01-23T08:01:06.000000Z",
        "id": 1
    }
}
 

Request      

POST api/shipping_address

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

Example: consequatur

address_line1   string  optional    

Example: consequatur

address_line2   string  optional    

Example: consequatur

city   string  optional    

Example: consequatur

state   string  optional    

Example: consequatur

zip   string  optional    

Example: consequatur

phone_number   string  optional    

Example: consequatur

Update Shipping address

requires authentication

Example request:
curl --request PUT \
    "https://www.constell.agent.co.ug/api/shipping_address/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"address_line1\": \"consequatur\",
    \"address_line2\": \"consequatur\",
    \"city\": \"consequatur\",
    \"state\": \"consequatur\",
    \"zip\": \"consequatur\",
    \"phone_number\": \"consequatur\"
}"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address/17"
);

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

let body = {
    "name": "consequatur",
    "address_line1": "consequatur",
    "address_line2": "consequatur",
    "city": "consequatur",
    "state": "consequatur",
    "zip": "consequatur",
    "phone_number": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address/17';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'address_line1' => 'consequatur',
            'address_line2' => 'consequatur',
            'city' => 'consequatur',
            'state' => 'consequatur',
            'zip' => 'consequatur',
            'phone_number' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Shipping Address updated successfully",
    "data": {
        "name": "USA - AIR",
        "address_line1": "4720 Boston Way",
        "address_line2": "Suite C Shypt",
        "city": "Lanham",
        "state": "MD",
        "zip": "20706",
        "phone_number": "+1 301 317 0512",
        "updated_at": "2026-01-23T08:01:06.000000Z",
        "created_at": "2026-01-23T08:01:06.000000Z",
        "id": 1
    }
}
 

Request      

PUT api/shipping_address/{id}

PATCH api/shipping_address/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the shipping address. Example: 17

Body Parameters

name   string     

Example: consequatur

address_line1   string  optional    

Example: consequatur

address_line2   string  optional    

Example: consequatur

city   string  optional    

Example: consequatur

state   string  optional    

Example: consequatur

zip   string  optional    

Example: consequatur

phone_number   string  optional    

Example: consequatur

Delete Shipping address

requires authentication

Example request:
curl --request DELETE \
    "https://www.constell.agent.co.ug/api/shipping_address/17" \
    --header "Bearer: Token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://www.constell.agent.co.ug/api/shipping_address/17"
);

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

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://www.constell.agent.co.ug/api/shipping_address/17';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Bearer' => 'Token',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
      "message": "Shipping Address deleted successfully",     *
  }
 

Request      

DELETE api/shipping_address/{id}

Headers

Bearer        

Example: Token

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

id   integer     

The ID of the shipping address. Example: 17