Skip to main content
The ManageCustomers endpoint provides create, update, and delete access to customer profiles in your Shiipp account. All operations are scoped to the authenticated user’s role — courier users can only access and modify customers within their own organization.

Endpoint

/api/ManageCustomers.php
Authentication: JWT Bearer token required for all methods.
Authorization: Bearer <your_token>

POST — Create a Customer

Create a new customer record. Returns a 409 Conflict if the provided user_code already exists within the courier account.

Request Body

user_code
string
required
A unique identifier for the customer within the courier account (e.g., "CUST001").
first_name
string
required
Customer’s first name.
last_name
string
required
Customer’s last name.
branch
string
The branch or pickup location to assign this customer to.
is_active
integer
default:"1"
Whether the customer is active. Pass 1 for active, 0 for inactive.
courier_id
string
The courier organization to assign this customer to. Required for admin and manager roles. Courier role users have this field auto-set to their own account.

Example Request

{
  "user_code": "CUST042",
  "first_name": "Alicia",
  "last_name": "Thompson",
  "branch": "Kingston",
  "is_active": 1
}

Response

{
  "status": "success",
  "message": "Customer profile created",
  "data": {
    "id": "cust-new-uuid"
  }
}
If a customer with the same user_code already exists in the courier account, the API returns 409 Conflict. Use the PUT method to update an existing record, or the Upload Customers endpoint for upsert behaviour in bulk.

PUT — Update a Customer

Update one or more fields on an existing customer record. Only the fields you include in the request body are changed.

Request Body

courier_customer_id
string
required
The UUID of the customer record to update.
user_code
string
Update the customer’s unique user code.
first_name
string
Update the customer’s first name.
last_name
string
Update the customer’s last name.
branch
string
Update the customer’s assigned branch.
is_active
integer
Set to 1 to activate or 0 to deactivate the customer.

Example Request

{
  "courier_customer_id": "cust-uuid",
  "branch": "Montego Bay",
  "is_active": 0
}

Response

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

DELETE — Remove a Customer

Permanently delete a customer record. This action cannot be undone. You can identify the target customer using either method:
Pass the customer UUID as a query string parameter:
DELETE /api/ManageCustomers.php?id=cust-uuid

Response

{
  "status": "success",
  "message": "Customer removed from system."
}
Deleting a customer does not delete their associated packages. Package records retain the customer’s name and user code as stored values at the time of intake.

Role-Based Access

Courier role users can only create, update, and delete customers within their own courier organization. Admin and manager roles have cross-courier access and must pass courier_id when creating customers.
OperationCourier RoleManager RoleAdmin Role
Create customerOwn account onlyAny courierAny courier
Update customerOwn account onlyAny courierAny courier
Delete customerOwn account onlyAny courierAny courier
Filter by courier_idIgnored (auto-scoped)SupportedSupported