Skip to main content
The Courier Profile endpoint is your central control surface for managing your courier’s identity, contact details, integration URLs, and authentication credentials within the Shiipp platform. Both read and write operations are performed against the same endpoint, with the HTTP method and request body determining the action taken.

Endpoint

/api/CourierSettingsAPI.php
Authentication: JWT Bearer token — include your token as Authorization: Bearer <token> on every request.

GET — Retrieve Profile

Send a GET request to retrieve the full profile record for the authenticated courier. Admins and managers may fetch any courier’s profile by appending ?id=<courier_id> to the request URL.

Query Parameters

id
string
The UUID of the target courier. Required only for admin or manager roles fetching another courier’s profile. Omit to return the authenticated courier’s own profile.

Response Fields

status
string
required
Outcome of the request. "success" on a successful retrieval.
data
object
required

Example Response

{
  "status": "success",
  "data": {
    "courier_id": "courier-uuid",
    "courier_name": "Express Couriers",
    "company_name": "Express Couriers Ltd.",
    "email": "ops@your-company.com",
    "phone_number1": "+1-876-555-0100",
    "api_key": "your_current_api_key",
    "api_url_get_customers": "https://your-system.com/api/customers",
    "api_url_add_package": "https://your-system.com/webhook/package",
    "api_url_update_package": "https://your-system.com/webhook/status",
    "api_token": "your_outbound_bearer_token",
    "house_color": "#065ea1"
  }
}

POST — Update Profile Settings

Send a POST request with a JSON body containing any combination of the updatable fields below. Only the fields you include are modified; all other profile values remain unchanged.

Request Body

courier_name
string
Display name for the courier shown in the Shiipp dashboard and customer-facing interfaces.
company_name
string
Registered legal name of the courier’s company.
email
string
Primary contact email address for the courier account.
phone_number1
string
Primary contact phone number.
phone_number2
string
Secondary contact phone number.
address1
string
First line of the courier’s physical address.
address2
string
Second line of the courier’s physical address (suite, unit, etc.).
city_town
string
City or town of the courier’s address.
parish_province
string
Parish, province, or state of the courier’s address.
api_url_get_customers
string
The endpoint on your system that Shiipp calls to synchronise customer records.
api_url_add_package
string
Webhook URL on your system that Shiipp POSTs to when a new package is created in the platform.
api_url_update_package
string
Webhook URL on your system that Shiipp POSTs to when a package status is updated.
api_token
string
Bearer token that Shiipp sends in the Authorization header with every outbound call to your webhook URLs.

Example Request

{
  "api_url_get_customers": "https://your-system.com/api/customers",
  "api_token": "your_outbound_bearer_token",
  "email": "ops@your-company.com"
}

POST — Regenerate API Key

To rotate the API key used to authenticate inbound prealert calls from your system, send a POST request using application/x-www-form-urlencoded or multipart/form-data with action=regenerate_key.
The old API key is immediately invalidated the moment you regenerate. Update your systems with the new key before triggering a rotation to avoid authentication failures.

Request

action
string
required
Must be "regenerate_key" to trigger key rotation.

Example Request

cURL
curl -X POST https://app.shiipp.com/api/CourierSettingsAPI.php \
  -H "Authorization: Bearer <your_jwt_token>" \
  -F "action=regenerate_key"

Response Fields

status
string
"success" when the new key has been generated and saved.
message
string
Human-readable confirmation, e.g. "New API key generated".
data
object

Example Response

{
  "status": "success",
  "message": "New API key generated",
  "data": {
    "api_key": "new_64_char_hex_key"
  }
}

Upload your courier’s brand logo by sending a multipart/form-data request with the logo field containing the image file.

Request

The logo image to upload. Accepted formats: JPG, PNG, SVG. Maximum recommended file size is 2 MB.

Example Request

cURL
curl -X POST https://app.shiipp.com/api/CourierSettingsAPI.php \
  -H "Authorization: Bearer <your_jwt_token>" \
  -F "logo=@/path/to/your-logo.png"

Response Fields

status
string
"success" when the logo has been stored successfully.
message
string
Human-readable confirmation, e.g. "Logo updated successfully".
data
object

Example Response

{
  "status": "success",
  "message": "Logo updated successfully",
  "data": {
    "path": "assets/uploads/logos/logo_courier-uuid_1705123456.png"
  }
}
After a successful logo upload, reference the returned path value in your integration to display the logo within your application or customer portal.