Time entries
List all time entries
Returns a paginated list of all time entries in the administration.
The filter
argument allows you to filter the list of time entries. Filters are a combination of keys and values,
separated by a comma: period:this_year,state:all
. The available options for filtering are:
Filter | Type | Default | Description |
state | String |
all |
all , open or non_billable |
period | String |
this_year |
This can either be the description of a period (this_month , prev_month , next_month , this_quarter , prev_quarter , next_quarter , this_year , prev_year , next_year ) or a custom period (201301..201302 , 20130101..20130131 ) |
contact_id | Integer |
Select time entries belonging to a certain contact | |
include_nil_contacts | Boolean |
false | Whether to include time entries that have no assigned contact |
include_active | Boolean |
false | Whether to include active time entries i.e. time entries without ended_at |
project_id | Integer |
Select time entries belonging to a certain project | |
user_id | Integer |
Select time entries belonging to a certain user | |
day | Date |
Select time entries on a specific date |
You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: state:open|non_billable
.
Parameters
Parameter | Type | Description |
---|---|---|
filter |
String |
|
query |
String |
Allows filtering by time entry description. |
Example: returns all time entries of an administration
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?
Response
Status: 200 OK
[
{
"id": "316892691354879291",
"administration_id": 123,
"contact_id": "316892691208078647",
"project_id": "316892691265750329",
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T18:00:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:42.509Z",
"updated_at": "2021-03-22T17:00:42.509Z",
"contact": {
"id": "316892691208078647",
"firstname": "",
"lastname": "",
"company_name": "Foobar Holding B.V."
},
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": {
"id": "316892691265750329",
"name": "My project name",
"state": "active"
},
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:42.522Z",
"updated_at": "2021-03-22T17:00:42.522Z"
}
],
"notes": [
]
},
{
"id": "316892691403113789",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": false,
"created_at": "2021-03-22T17:00:42.555Z",
"updated_at": "2021-03-22T17:00:42.555Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:42.563Z",
"updated_at": "2021-03-22T17:00:42.563Z"
}
],
"notes": [
]
},
{
"id": "316892691450299711",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:42.600Z",
"updated_at": "2021-03-22T17:00:42.600Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:42.612Z",
"updated_at": "2021-03-22T17:00:42.612Z"
}
],
"notes": [
]
}
]
Example: returns all time entries filtered on period
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?filter=period%3Athis_month
Response
Status: 200 OK
[
{
"id": "316892691891750215",
"administration_id": 123,
"contact_id": "316892691776406851",
"project_id": "316892691842467141",
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T18:00:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:43.021Z",
"updated_at": "2021-03-22T17:00:43.021Z",
"contact": {
"id": "316892691776406851",
"firstname": "",
"lastname": "",
"company_name": "Foobar Holding B.V."
},
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": {
"id": "316892691842467141",
"name": "My project name",
"state": "active"
},
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:43.029Z",
"updated_at": "2021-03-22T17:00:43.029Z"
}
],
"notes": [
]
},
{
"id": "316892691934741833",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": false,
"created_at": "2021-03-22T17:00:43.062Z",
"updated_at": "2021-03-22T17:00:43.062Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:43.071Z",
"updated_at": "2021-03-22T17:00:43.071Z"
}
],
"notes": [
]
},
{
"id": "316892691977733451",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:43.103Z",
"updated_at": "2021-03-22T17:00:43.103Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:43.113Z",
"updated_at": "2021-03-22T17:00:43.113Z"
}
],
"notes": [
]
}
]
Example: returns all time entries filtered on search query
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?query=Custom
Response
Status: 200 OK
[
{
"id": "316892702283138395",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Custom description",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:52.919Z",
"updated_at": "2021-03-22T17:00:52.919Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:52.927Z",
"updated_at": "2021-03-22T17:00:52.927Z"
}
],
"notes": [
]
}
]
Example: returns all time entries filtered on state
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?filter=state%3Anon_billable
Response
Status: 200 OK
[
{
"id": "316892703192253797",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": false,
"created_at": "2021-03-22T17:00:53.784Z",
"updated_at": "2021-03-22T17:00:53.784Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:53.797Z",
"updated_at": "2021-03-22T17:00:53.797Z"
}
],
"notes": [
]
}
]
Example: returns paginated time entries on page 1
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?per_page=1
Response
Status: 200 OK
[
{
"id": "316892703969248623",
"administration_id": 123,
"contact_id": "316892703780504939",
"project_id": "316892703893751149",
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T18:00:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:54.522Z",
"updated_at": "2021-03-22T17:00:54.522Z",
"contact": {
"id": "316892703780504939",
"firstname": "",
"lastname": "",
"company_name": "Foobar Holding B.V."
},
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": {
"id": "316892703893751149",
"name": "My project name",
"state": "active"
},
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:54.539Z",
"updated_at": "2021-03-22T17:00:54.539Z"
}
],
"notes": [
]
}
]
Example: returns paginated time entries on page 2
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?page=2&per_page=1
Response
Status: 200 OK
[
{
"id": "316892705106953597",
"administration_id": 123,
"contact_id": null,
"project_id": null,
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T17:01:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": false,
"created_at": "2021-03-22T17:00:55.599Z",
"updated_at": "2021-03-22T17:00:55.599Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": null,
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:55.628Z",
"updated_at": "2021-03-22T17:00:55.628Z"
}
],
"notes": [
]
}
]
Example: returns an error when too many time entries are requested
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?per_page=101
Response
Status: 400 Bad Request
{
"error": "Per Page is too big",
"symbolic": {
"per_page": "max"
}
}
Example: returns an error message if filter contact_id is not found
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?filter=contact_id%3A123
Response
Status: 404 Not Found
{
"error": "record not found",
"symbolic": {
"contact_id": "not_found"
}
}
Example: returns an error message if filter user_id is not found
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries.json?filter=user_id%3A123
Response
Status: 404 Not Found
{
"error": "record not found",
"symbolic": {
"user_id": "not_found"
}
}
Get a time entry by id
Returns a time entry in the administration.
Example: returns time entry by given id
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries/316892708750755243.json?
Response
Status: 200 OK
{
"id": "316892708750755243",
"administration_id": 123,
"contact_id": "316892708643800487",
"project_id": "316892708699375017",
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T18:00:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:00:59.081Z",
"updated_at": "2021-03-22T17:00:59.081Z",
"contact": {
"id": "316892708643800487",
"firstname": "",
"lastname": "",
"company_name": "Foobar Holding B.V."
},
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": {
"id": "316892708699375017",
"name": "My project name",
"state": "active"
},
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:00:59.089Z",
"updated_at": "2021-03-22T17:00:59.089Z"
}
],
"notes": [
]
}
Example: returns 404 when time entry does not exist
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XGET \
https://moneybird.com/api/v2/123/time_entries/34123123.json?
Response
Status: 404 Not Found
{
"error": "record not found",
"symbolic": {
"id": "not_found"
}
}
Create a time entry
Api user needs access to both sales invoices and time entries for this action.
started_at
and ended_at
are rounded down to full minutes when creating a time entry, with a minimum of 1 minute between them.
Parameters
Parameter | Type | Description |
---|---|---|
time_entry[user_id] |
Integer |
Required Should be a valid user id. |
time_entry[started_at] |
Datetime |
Required |
time_entry[ended_at] |
Datetime |
Required. |
time_entry[description] |
String |
Required |
time_entry[contact_id] |
Integer |
Should be a valid contact id. |
time_entry[project_id] |
Integer |
Should be a valid project id. |
time_entry[detail_id] |
Integer |
Should be a valid detail id. |
time_entry[billable] |
Boolean |
|
time_entry[paused_duration] |
Integer |
Total paused duration in seconds, is rounded down to full minutes. |
user_agent |
String |
Example: create a basic time entry
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XPOST \
-d '{"time_entry":{"started_at":"2021-03-22 17:00:00 UTC","ended_at":"2021-03-22 18:00:00 UTC","description":"Test","contact_id":316892709643093431,"project_id":316892709717542329,"user_id":161643187974,"billable":false}}' \
https://moneybird.com/api/v2/123/time_entries
Response
Status: 201 Created
{
"id": "316892709874828731",
"administration_id": 123,
"contact_id": "316892709643093431",
"project_id": "316892709717542329",
"user_id": 161643187974,
"started_at": "2021-03-22T17:00:00.000Z",
"ended_at": "2021-03-22T18:00:00.000Z",
"description": "Test",
"paused_duration": 0,
"billable": false,
"created_at": "2021-03-22T17:01:00.150Z",
"updated_at": "2021-03-22T17:01:00.150Z",
"contact": {
"id": "316892709643093431",
"firstname": "",
"lastname": "",
"company_name": "Foobar Holding B.V."
},
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": {
"id": "316892709717542329",
"name": "My project name",
"state": "active"
},
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:01:00.160Z",
"updated_at": "2021-03-22T17:01:00.160Z"
}
],
"notes": [
]
}
Example: returns an error when invalid details are provided
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XPOST \
-d '{"time_entry":{"started_at":"2021-03-22 17:01:00 UTC","ended_at":"2021-03-22 16:01:00 UTC","user_id":161643187974,"billable":false}}' \
https://moneybird.com/api/v2/123/time_entries
Response
Status: 422 Unprocessable Entity
{
"error": {
"ended_at": [
"cannot be before the start time"
],
"description": [
"cannot be empty"
]
}
}
Update a time entry
When updating a time entry, provide only the attributes you want to update. The other attributes will not be changed.
started_at
and ended_at
are rounded down to full minutes when updating a time entry, with a minimum of 1 minute between them.
Parameters
Parameter | Type | Description |
---|---|---|
time_entry[started_at] |
Datetime |
|
time_entry[ended_at] |
Datetime |
Required. |
time_entry[paused_duration] |
Integer |
Total paused duration in seconds, is rounded down to full minutes. |
time_entry[contact_id] |
Integer |
Should be a valid contact id. |
time_entry[project_id] |
Integer |
Should be a valid project id. |
time_entry[description] |
String |
|
time_entry[billable] |
Boolean |
Example: updating the time entry description
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XPATCH \
-d '{"time_entry":{"description":"Updated description"}}' \
https://moneybird.com/api/v2/123/time_entries/316892710427428291
Response
Status: 200 OK
{
"id": "316892710427428291",
"administration_id": 123,
"contact_id": null,
"project_id": "316892710365562305",
"user_id": 161643187974,
"started_at": "2021-03-22T17:01:00.000Z",
"ended_at": "2021-03-22T18:01:00.000Z",
"description": "Updated description",
"paused_duration": 0,
"billable": true,
"created_at": "2021-03-22T17:01:00.677Z",
"updated_at": "2021-03-22T17:01:00.826Z",
"contact": null,
"detail": null,
"user": {
"id": 161643187974,
"name": "Moneybird",
"created_at": "2021-03-22T16:51:19.110Z",
"updated_at": "2021-03-22T16:51:19.573Z"
},
"project": {
"id": "316892710365562305",
"name": "My project name",
"state": "active"
},
"events": [
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_created",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:01:00.686Z",
"updated_at": "2021-03-22T17:01:00.686Z"
},
{
"administration_id": 123,
"user_id": 161643187974,
"action": "time_entry_updated",
"link_entity_id": null,
"link_entity_type": null,
"data": {
},
"created_at": "2021-03-22T17:01:00.836Z",
"updated_at": "2021-03-22T17:01:00.836Z"
}
],
"notes": [
]
}
Delete a time entry
Example: deletes given time entry
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XDELETE \
-d '{}' \
https://moneybird.com/api/v2/123/time_entries/316892710971639244.json
Response
Adds note to entity
Parameters
Parameter | Type | Description |
---|---|---|
note[note] |
String |
Required. Text for the note or to-do. |
note[todo] |
Boolean |
If |
note[assignee_id] |
Integer |
Assign to-do to user. Should be a valid user id. |
Example: create a note
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XPOST \
-d '{"note":{"note":"Text of the note","assignee_id":16164324616490929,"todo":true}}' \
https://moneybird.com/api/v2/123/time_entries/316892711692010966/notes.json
Response
Status: 201 Created
{
"id": "316892711862928856",
"administration_id": 123,
"entity_id": "316892711692010966",
"entity_type": "TimeEntry",
"user_id": 161643187974,
"assignee_id": "16164324616490929",
"todo": true,
"note": "Text of the note",
"completed_at": null,
"completed_by_id": null,
"todo_type": null,
"data": {
},
"created_at": "2021-03-22T17:01:02.075Z",
"updated_at": "2021-03-22T17:01:02.075Z"
}
Destroys note from entity
Example: destroy a note
Request
curl -s -H "Content-Type: application/json" -H "Authorization: Bearer 84ec207ad0154a508f798e615a998ac1fd752926d00f955fb1df3e144cba44ab" \
-XDELETE \
-d '{}' \
https://moneybird.com/api/v2/123/time_entries/316892712177501664/notes/316892712214201826.json