POST
WorkingTime.Save
Create or update a completed working-time row in The route checks customer access, validates start/stop UTC date-times, writes time_counter, runs workingtime.created or workingtime.updated automation, and emits the matching realtime event.
Permissions
- User must be logged in with a valid bearer token.
- Returned or changed records are limited by the user permissions, team access, folder access, and account settings.
Action
- Updates the requested WorkingTime record after validating permissions and input fields.
Push Service
Pushes event workingtime.created to users who should see this change.
Automation
Runs automation event workingtime.created with the record id and submitted parameters after the action succeeds.
Special Instructions
- Send the bearer token on protected calls with Authorization: Bearer YOUR TOKEN.
- Send parameters as POST body fields exactly as documented.
- Send date/time values in UTC Y-m-d H:i:s format when a date or datetime field is used.
Required Parameters
| Name | Type | Sample | Explanation |
|---|---|---|---|
customer_idpost | int | 123 | Customer id that owns the working-time row. |
start_datepost | datetime | 2026-07-17 09:00:00 | UTC start date/time for the work row. Send UTC date/time as Y-m-d H:i:s, for example 2026-07-20 10:00:00. The SDK converts user local Date/local datetime input to UTC before posting. |
stop_datepost | datetime | 2026-07-17 10:00:00 | UTC stop date/time for the work row. Send UTC date/time as Y-m-d H:i:s, for example 2026-07-20 10:00:00. The SDK converts user local Date/local datetime input to UTC before posting. |
Optional Parameters
| Name | Type | Sample | What it gives |
|---|---|---|---|
working_time_idpost | int | 55 | When sent, updates an existing row instead of creating a new one. |
categorypost | string | support | Classifies the work row by category. |
notespost | string | Finished setup call | Saves notes on the work row. |
Authentication
Send the bearer token returned by Login in the request header.
Authorization: Bearer YOUR TOKEN
Sample Request
{
"url": "\/app\/WorkingTime.Save",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR TOKEN"
},
"body": {
"customer_id": "123",
"start_date": "2026-07-17 09:00:00",
"stop_date": "2026-07-17 10:00:00"
},
"url_user": "https:\/\/{user}.bull36.com\/app\/WorkingTime.Save",
"url_domain": "https:\/\/{domain}\/app\/WorkingTime.Save"
}Endpoint
POST /app/WorkingTime.Save
POST https://{user}.bull36.com/app/WorkingTime.Save
POST https://{domain}/app/WorkingTime.SaveSample Output
{
"success": 1,
"message": "Success",
"id": 55,
"automation_event": "workingtime.created",
"socket_event": "workingtime.created"
}JavaScript Example
const token = 'YOUR TOKEN';
const body = new URLSearchParams({});
// Fill body fields from the Sample Request JSON above.
const res = await fetch('/app/WorkingTime.Save', { method: 'POST', headers: { Authorization: 'Bearer ' + token }, body });
const data = await res.json();
console.log(data);Error Example
{
"success": 0,
"message": "Please select correct time."
}