Read the packing list progress of the items on a lead, and record items as loaded. This is the endpoint to use when you connect a scanning or warehouse system to your packing lists.
| Action | Method | URL | API key permission | Package |
|---|---|---|---|---|
| List your packing list statuses | GET | https://rental.software/api6/packinglists | Settings Packing List Statuses: Read Only or Full Access | WP/API |
| Get the loading details of a lead | GET | https://rental.software/api6/packinglists?lead_id={id} | Leads: Read Only or Full Access | WP/API |
| Record an item as loaded | POST | https://rental.software/api6/packinglists | Leads: Full Access | WP/API |
Base URL: https://rental.software/api6. Every request needs your apiKey.
GET /packinglists
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| lead_id | integer | No | The lead to read |
| rental_id | integer | No | One rental item on that lead. Only used together with lead_id |
| easyrfid | integer (0 or 1) | No | Send 1 to include only easyrfid items. Only used together with lead_id |
What you get back depends on which parameters you send:
- No parameters: a list of all the packing list statuses available in your account, in order.
- lead_id and rental_id: all the loaded quantities and statuses the rental item has, in order of earliest to latest status. The quantity on the lead is returned as quantity.
- lead_id only: an object containing all items on the lead. Each key is a Rental ID and each value has the same format as the single item response.
Example Request
curl "https://rental.software/api6/packinglists?apiKey=YOUR_API_KEY&lead_id=520247&rental_id=30083"
Example Response
{
"0": {
"loading_timestamp": "1758301109",
"loading_loaded": "3",
"loading_notes": "",
"loading_skip": "0",
"loading_plstatusid": {
"plstatus_id": "1234",
"plstatus_name": "prepare",
"plstatus_requirescan": "0",
"plstatus_order": "0",
"plstatus_delivered": "0",
"plstatus_intransit": "0",
"plstatus_possession": "1"
}
},
"1": {
"loading_timestamp": "1758304709",
"loading_loaded": "3",
"loading_notes": "",
"loading_skip": "0",
"loading_plstatusid": {
"plstatus_id": "1235",
"plstatus_name": "loaded",
"plstatus_requirescan": "1",
"plstatus_order": "1",
"plstatus_delivered": "0",
"plstatus_intransit": "1",
"plstatus_possession": "1"
}
},
"quantity": "5",
"request_time": 1760000000
}Response Fields
| Field | Description | Example |
|---|---|---|
| loading_timestamp | Unix timestamp of when the loading entry was last updated | 1758301109 |
| loading_loaded | Loaded quantity | 3 |
| loading_skip | Loading was skipped | 0 or 1 |
| loading_notes | Loading notes | |
| loading_plstatusid | The packing list status this entry belongs to. It is an object holding the plstatus_ fields below | |
| plstatus_id | Packing list status ID | 1234 |
| plstatus_name | Packing list status name | prepare |
| plstatus_requirescan | Packing list status requires items to be physically scanned | 0 or 1 |
| plstatus_order | Packing list status order | 0, 1, 2 and so on |
| plstatus_delivered | Packing list status is delivered | 0 or 1 |
| plstatus_intransit | Packing list status is in transit | 0 or 1 |
| plstatus_possession | Packing list status is in company possession | 0 or 1 |
| quantity | Requested quantity of the item on the lead | 5 |
| request_time | The current request time as a Unix timestamp in seconds |
POST /packinglists
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| lead_id | integer | Yes | The lead the item is on |
| rental_id | integer | Yes | The rental item |
| plstatus_id | integer | Yes | The packing list status to record the loading on. Get the IDs with GET /packinglists |
| loaded_qty | number | Yes | The quantity loaded |
| notes | string | No | Notes about the specific item |
| skip | integer (0 or 1) | No | Skip loading the item on the specified packing list status. If the loaded quantity does not match what is specified on the lead, this needs to be set for the status to be considered complete |
| remove | integer (0 or 1) | No | Removes the item from the packing list, starting at the specified status. Send the item again without remove to put it back |
Example Request
curl -X POST "https://rental.software/api6/packinglists" \ -d "apiKey=YOUR_API_KEY" \ -d "lead_id=520247" \ -d "rental_id=30083" \ -d "plstatus_id=1235" \ -d "loaded_qty=3"
Example Responses
Successful response:
200 OK
Content-Type: application/json
{
"request_time": 1760000000
}Error responses:
403 Forbidden
{
"status": 403,
"message": "Permission access restricted. Lead Full Access Required."
}404 Not Found
{
"status": 404,
"message": "lead_id not found"
}422 Unprocessable Content
{
"status": 422,
"message": "The lead id, item id, plstatus id, and loaded quantity are required."
}Errors
| Status | Message | What to do |
|---|---|---|
| 403 | Permission access restricted. Packing List Statuses Access Required. | Listing the statuses needs the Settings Packing List Statuses permission on the API key |
| 403 | Permission access restricted. Lead Full Access Required. | Recording a loading needs Leads set to Full Access on the API key |
| 404 | lead_id not found, rental_id not found, or plstatus_id not found | The ID named in the message does not exist in your account |
| 404 | Not found | Your account has no packing list statuses set up |
| 422 | The lead id, item id, plstatus id, and loaded quantity are required. | Send all four required parameters |
| 405 | Only accepts GET AND POST requests | Use GET or POST |
See API - Errors and Rate Limits for errors that apply to every call.