Expense Entry
Expense Entry is used to enter expenses. It allows you to see a range of expenses incurred on various projects. Expense Entries help managers and reviewers track down expenses. Expense Entry object allows you to perform the following operations:
- Retrieve a specific expense or a list of expense entries
- Create an expense entry
- Update an expense entry
- Delete an expense entry
- cURL
- NODE.JS
- PHP
- C#
- PYTHON
- JAVA
The Expense Entry Object
asterisk denotes requiredName | Description | Format | Attributes |
---|---|---|---|
date | Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time | Filterable, Sortable |
description | Description of an expense incurred | string | MaxLength = 100 |
expenseId | Identifier of an expense entry | uuid | |
projectId | Identifier of a project against which expense is entered | uuid | Filterable |
resourceId | Identifier of an employee or vendor logging the expense | uuid | Filterable |
billable | Indicates whether an expense entry is billable or not | boolean | Filterable, Sortable |
billStatus | Provides the status of a bill, e.g., unbilled or billed | BilledStatus Enumerated type: Click to see possible values and their descriptions. | Filterable, Sortable |
chargeAmount | Total charge amount for the expense entry billed to the client | double | |
class | Name of the class | string | Filterable, Sortable |
classId | Identifier of the class | uuid | Filterable |
classification | Job classification or title of an employee | string | MaxLength = 100 |
client | Name of the client | string | Filterable |
costRate | Cost rate of each unit of an expense | double | |
createdById | Identifier of the user who created this object | uuid | Filterable |
createdOn | Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time | Filterable, Sortable |
currencyMultiplierId | Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to use | uuid | Filterable |
currencyName | Name of the currency | string | |
customFields []Array: Parent object can have multiple instances of this nested object under it. | Represents a list of custom fields | CustomFieldData Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. | |
expense | Name of an expense entry | string | Sortable |
expenseAccount | Name of an expense account for an expense entry that keeps track of any expenditure associated with it | string | |
expenseAccountId | Identifier of an expense account for an expense entry that keeps track of any expenditure associated with it | uuid | |
extra | Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extra | boolean | |
flag1 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible | boolean | Filterable |
flag2 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean | Filterable |
flag3 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean | Filterable |
foreignCost | Determines the cost in the foreign currency | double | |
foreignMultiplier | Determines the current exchange rate of a foreign currency | double | |
id | Object identifier | uuid | Filterable |
incomeAccount | Name of an income account for an expense entry that keeps track of any income or revenue associated with it | string | |
incomeAccountId | Identifier of an income account for an expense entry that keeps track of any income or revenue associated with it | uuid | |
integrationSourceId | Identifier of the integration source for this object. This property is only used by internal BQE apps and does not have any significance for external users | string | Filterable, Sortable |
invoiceId | Identifier of an invoice associated with an expense | uuid | Filterable |
invoiceNumber | Invoice number on an invoice associated with an expense | string | Filterable, Sortable |
lastUpdated | Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time | Filterable, Sortable |
lastUpdatedById | Identifier of the user who last updated this object | uuid | Filterable |
markup | Percentage increase or decrease in the value of an expense entry | double | |
memo | Records any extra information or details about an expense | string | |
objectState | Represents the state of the object. e.g., new, unchanged, modified or deleted | ObjectState Enumerated type: Click to see possible values and their descriptions. | |
paid | Indicates whether an expense has been paid or not | boolean | Filterable, Sortable |
paidDate | Date on which an expense was paid to the employee or vendor in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time | Filterable, Sortable |
project | Name of a project against which expense is entered | string | Sortable |
purchaseTaxRate | Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the client | double | |
reimbursable | Indicates whether an expense is reimbursable or not | boolean | Filterable, Sortable |
resource | Name of an employee or vendor logging the expense | string | Sortable |
tax1 | Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double | |
tax2 | Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double | |
tax3 | Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double | |
token | Represents the token for update operations | int32 | |
units | Number of expense units consumed | double | |
vendorBillId | Identifier of a vendor bill associated with an expense | uuid | Filterable |
vendorBillNumber | Vendor bill number associated with an expense | string | Filterable, Sortable |
version | Implements concurrency on this object | byte | |
workflow []Array: Parent object can have multiple instances of this nested object under it. | List of workflow | WorkflowState Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
Expense Entry List
Use this method to retrieve a list of expense entries. Optionally pass where, orderBy and page as the query parameters to filter the result. Use the fields parameter to request a subset of the model. By default, a complete model is returned. The expand parameter is used to request nested properties in the model.
Request URL
Method Overview
HTTP Method:
GET
Content Type:
application/json
Response Format:
json
Requires Authentication?
Yes
Headers:
Module:
Expense Entry
Required Scopes:
read:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
fields | Query | Specifies the model properties you want in the response body | string |
where | Query | Specifies only those records that match an expression in the query | string |
orderBy | Query | Specifies the order of the records | string |
page | Query | Specifies the page number and number of records on each page | string |
expand | Query | Specifies the nested model properties you want in the response body | string |
Response Body
Name | Description | Format |
---|---|---|
date | Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
description | Description of an expense incurred | string |
expenseId | Identifier of an expense entry | uuid |
projectId | Identifier of a project against which expense is entered | uuid |
resourceId | Identifier of an employee or vendor logging the expense | uuid |
billable | Indicates whether an expense entry is billable or not | boolean |
billStatus | Provides the status of a bill, e.g., unbilled or billed | BilledStatusEnumerated type: Click to see possible values and their descriptions. |
chargeAmount | Total charge amount for the expense entry billed to the client | double |
class | Name of the class | string |
classId | Identifier of the class | uuid |
classification | Job classification or title of an employee | string |
client | Name of the client | string |
costRate | Cost rate of each unit of an expense | double |
createdById | Identifier of the user who created this object | uuid |
createdOn | Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
currencyMultiplierId | Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to use | uuid |
currencyName | Name of the currency | string |
customFields []Array: Parent object can have multiple instances of this nested object under it. | Represents a list of custom fields | CustomFieldData Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
expense | Name of an expense entry | string |
expenseAccount | Name of an expense account for an expense entry that keeps track of any expenditure associated with it | string |
expenseAccountId | Identifier of an expense account for an expense entry that keeps track of any expenditure associated with it | uuid |
extra | Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extra | boolean |
flag1 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible | boolean |
flag2 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
flag3 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
foreignCost | Determines the cost in the foreign currency | double |
foreignMultiplier | Determines the current exchange rate of a foreign currency | double |
id | Object identifier | uuid |
incomeAccount | Name of an income account for an expense entry that keeps track of any income or revenue associated with it | string |
incomeAccountId | Identifier of an income account for an expense entry that keeps track of any income or revenue associated with it | uuid |
integrationSourceId | Identifier of the integration source for this object. This property is only used by internal BQE apps and does not have any significance for external users | string |
invoiceId | Identifier of an invoice associated with an expense | uuid |
invoiceNumber | Invoice number on an invoice associated with an expense | string |
lastUpdated | Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
lastUpdatedById | Identifier of the user who last updated this object | uuid |
markup | Percentage increase or decrease in the value of an expense entry | double |
memo | Records any extra information or details about an expense | string |
objectState | Represents the state of the object. e.g., new, unchanged, modified or deleted | ObjectStateEnumerated type: Click to see possible values and their descriptions. |
paid | Indicates whether an expense has been paid or not | boolean |
paidDate | Date on which an expense was paid to the employee or vendor in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
project | Name of a project against which expense is entered | string |
purchaseTaxRate | Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the client | double |
reimbursable | Indicates whether an expense is reimbursable or not | boolean |
resource | Name of an employee or vendor logging the expense | string |
tax1 | Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax2 | Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax3 | Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
token | Represents the token for update operations | int32 |
units | Number of expense units consumed | double |
vendorBillId | Identifier of a vendor bill associated with an expense | uuid |
vendorBillNumber | Vendor bill number associated with an expense | string |
version | Implements concurrency on this object | byte |
workflow []Array: Parent object can have multiple instances of this nested object under it. | List of workflow | WorkflowState Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
[
{
"date": "2025-04-24T05:08:31Z",
"description": "ExpenseEntry Description",
"expenseId": "841d7c99-773f-4e86-b912-4a5cdb287a9e",
"projectId": "53be4457-d6a6-4f2e-b4f6-886a26a8c39a",
"resourceId": "6f326799-9dbc-41db-aebf-ba6f9286fc1f",
"billable": true,
"billStatus": null,
"chargeAmount": 1,
"class": "class",
"classId": "b52448f3-f7f2-42fa-9645-3d3807ff2f8f",
"classification": "classification",
"client": "client",
"costRate": 1,
"createdById": "90d88b58-614f-4263-8d51-3586adf33d9a",
"createdOn": "2025-04-24T05:08:31Z",
"currencyMultiplierId": "f45eb5e6-288b-4718-864b-ef0204707596",
"currencyName": "currencyName",
"customFields": [
{
"definitionId": "b9874dac-98d2-4883-b33f-1bac38be7bff",
"createdById": "2ca7c6eb-d863-4a4c-a16c-65023e433c6a",
"createdOn": "2025-04-24T05:08:31Z",
"description": "CustomFieldData Description",
"id": "f9cd32cb-cbff-49bd-bad2-2fa4e601896d",
"integrationSourceId": "integrationSourceId",
"label": "label",
"lastUpdated": "2025-04-24T05:08:31Z",
"lastUpdatedById": "e74ef868-57a0-4aef-9d5f-3d2ba4aa5c39",
"objectState": null,
"token": 0,
"type": null,
"value": "value",
"version": "U3dhZ2dlciByb2Nrcw=="
}
],
"expense": "expense",
"expenseAccount": "expenseAccount",
"expenseAccountId": "0b6e5577-cec0-4624-965f-d0303ffa5102",
"extra": true,
"flag1": true,
"flag2": true,
"flag3": true,
"foreignCost": 1,
"foreignMultiplier": 1,
"id": "93784cf9-a042-4a74-9e2b-0b3334c1bed7",
"incomeAccount": "incomeAccount",
"incomeAccountId": "34bd586b-6c9d-4482-bc4f-f00a36f2e77f",
"integrationSourceId": "integrationSourceId",
"invoiceId": "3721a339-1371-4557-9cf0-74d854daaac1",
"invoiceNumber": "invoiceNumber",
"lastUpdated": "2025-04-24T05:08:31Z",
"lastUpdatedById": "0ff09ccc-8c68-4c18-b4e5-78f5230e9921",
"markup": 1,
"memo": "memo",
"objectState": null,
"paid": true,
"paidDate": "2025-04-24T05:08:31Z",
"project": "project",
"purchaseTaxRate": 1,
"reimbursable": true,
"resource": "resource",
"tax1": 1,
"tax2": 1,
"tax3": 1,
"token": 0,
"units": 1,
"vendorBillId": "61fe06d7-99b5-49c8-a345-85425c4217f8",
"vendorBillNumber": "vendorBillNumber",
"version": "U3dhZ2dlciByb2Nrcw==",
"workflow": [
{
"actionById": "fdd6fe3c-19da-4827-ba6f-512afcf749c8",
"action": null,
"actionBy": "actionBy",
"createdById": "45e01396-a622-48f5-ab9b-2b52b9255db4",
"createdOn": "2025-04-24T05:08:31Z",
"date": "2025-04-24T05:08:31Z",
"id": "b893d7a5-31bc-49b0-985d-213f8fbf7c07",
"integrationSourceId": "integrationSourceId",
"lastUpdated": "2025-04-24T05:08:31Z",
"lastUpdatedById": "9f26fd41-bcb1-4a1d-9de1-01d3f0738813",
"memo": "memo",
"objectState": null,
"sendTo": "sendTo",
"sendToId": "ac300a09-dcd8-4722-96c0-c1299158b1a9",
"submitTo": null,
"token": 0,
"type": null,
"version": "U3dhZ2dlciByb2Nrcw=="
}
]
}
]
Retrieve an Expense Entry
Use this method to retrieve a specific expense entry. Pass id as the parameter.
Request URL
Method Overview
HTTP Method:
GET
Content Type:
application/json
Response Format:
json
Requires Authentication?
Yes
Headers:
Module:
Expense Entry
Required Scopes:
read:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
id | Path | Expense identifier | string |
Response Body
Name | Description | Format |
---|---|---|
date | Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
description | Description of an expense incurred | string |
expenseId | Identifier of an expense entry | uuid |
projectId | Identifier of a project against which expense is entered | uuid |
resourceId | Identifier of an employee or vendor logging the expense | uuid |
billable | Indicates whether an expense entry is billable or not | boolean |
billStatus | Provides the status of a bill, e.g., unbilled or billed | BilledStatusEnumerated type: Click to see possible values and their descriptions. |
chargeAmount | Total charge amount for the expense entry billed to the client | double |
class | Name of the class | string |
classId | Identifier of the class | uuid |
classification | Job classification or title of an employee | string |
client | Name of the client | string |
costRate | Cost rate of each unit of an expense | double |
createdById | Identifier of the user who created this object | uuid |
createdOn | Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
currencyMultiplierId | Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to use | uuid |
currencyName | Name of the currency | string |
customFields []Array: Parent object can have multiple instances of this nested object under it. | Represents a list of custom fields | CustomFieldData Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
expense | Name of an expense entry | string |
expenseAccount | Name of an expense account for an expense entry that keeps track of any expenditure associated with it | string |
expenseAccountId | Identifier of an expense account for an expense entry that keeps track of any expenditure associated with it | uuid |
extra | Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extra | boolean |
flag1 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible | boolean |
flag2 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
flag3 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
foreignCost | Determines the cost in the foreign currency | double |
foreignMultiplier | Determines the current exchange rate of a foreign currency | double |
id | Object identifier | uuid |
incomeAccount | Name of an income account for an expense entry that keeps track of any income or revenue associated with it | string |
incomeAccountId | Identifier of an income account for an expense entry that keeps track of any income or revenue associated with it | uuid |
integrationSourceId | Identifier of the integration source for this object. This property is only used by internal BQE apps and does not have any significance for external users | string |
invoiceId | Identifier of an invoice associated with an expense | uuid |
invoiceNumber | Invoice number on an invoice associated with an expense | string |
lastUpdated | Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
lastUpdatedById | Identifier of the user who last updated this object | uuid |
markup | Percentage increase or decrease in the value of an expense entry | double |
memo | Records any extra information or details about an expense | string |
objectState | Represents the state of the object. e.g., new, unchanged, modified or deleted | ObjectStateEnumerated type: Click to see possible values and their descriptions. |
paid | Indicates whether an expense has been paid or not | boolean |
paidDate | Date on which an expense was paid to the employee or vendor in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
project | Name of a project against which expense is entered | string |
purchaseTaxRate | Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the client | double |
reimbursable | Indicates whether an expense is reimbursable or not | boolean |
resource | Name of an employee or vendor logging the expense | string |
tax1 | Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax2 | Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax3 | Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
token | Represents the token for update operations | int32 |
units | Number of expense units consumed | double |
vendorBillId | Identifier of a vendor bill associated with an expense | uuid |
vendorBillNumber | Vendor bill number associated with an expense | string |
version | Implements concurrency on this object | byte |
workflow []Array: Parent object can have multiple instances of this nested object under it. | List of workflow | WorkflowState Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
{
"date": "2025-04-24T05:08:32Z",
"description": "ExpenseEntry Description",
"expenseId": "f4a90a8d-218c-4b6f-ba49-da368da36a02",
"projectId": "5a54ddef-e4ac-4227-bc9e-2002dbab95d9",
"resourceId": "411dcdd0-d652-4d60-a5db-f6e6de70cd82",
"billable": true,
"billStatus": null,
"chargeAmount": 1,
"class": "class",
"classId": "7eddc8b6-0012-48c4-9180-5e77173076bd",
"classification": "classification",
"client": "client",
"costRate": 1,
"createdById": "cd9dded6-efe4-4eff-b7eb-6aa350b64731",
"createdOn": "2025-04-24T05:08:32Z",
"currencyMultiplierId": "c55ae8d5-c0f2-4d32-9ae8-12603ccf7f98",
"currencyName": "currencyName",
"customFields": [
{
"definitionId": "70a12484-0b33-4433-839c-4c467c0b541c",
"createdById": "d223bb6d-984c-4f22-8500-022952ea20ce",
"createdOn": "2025-04-24T05:08:32Z",
"description": "CustomFieldData Description",
"id": "94340d47-4656-49a7-8550-b14da577a7c0",
"integrationSourceId": "integrationSourceId",
"label": "label",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "871732c5-6fb3-4181-a04d-16aeaf13a645",
"objectState": null,
"token": 0,
"type": null,
"value": "value",
"version": "U3dhZ2dlciByb2Nrcw=="
}
],
"expense": "expense",
"expenseAccount": "expenseAccount",
"expenseAccountId": "f7b5edfd-0a82-426e-b26f-da27365b1afc",
"extra": true,
"flag1": true,
"flag2": true,
"flag3": true,
"foreignCost": 1,
"foreignMultiplier": 1,
"id": "27ff11e5-59cc-434c-b910-fdede9e3f8e1",
"incomeAccount": "incomeAccount",
"incomeAccountId": "a92beb15-dd42-4263-bb86-60551155a5f2",
"integrationSourceId": "integrationSourceId",
"invoiceId": "191b0d96-35d2-42f5-aa46-928b99545264",
"invoiceNumber": "invoiceNumber",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "a228fcab-f49e-413b-bc61-cddcf80e140e",
"markup": 1,
"memo": "memo",
"objectState": null,
"paid": true,
"paidDate": "2025-04-24T05:08:32Z",
"project": "project",
"purchaseTaxRate": 1,
"reimbursable": true,
"resource": "resource",
"tax1": 1,
"tax2": 1,
"tax3": 1,
"token": 0,
"units": 1,
"vendorBillId": "98ad20e2-80a1-4ce5-9647-b827d42c06d7",
"vendorBillNumber": "vendorBillNumber",
"version": "U3dhZ2dlciByb2Nrcw==",
"workflow": [
{
"actionById": "176613ca-f912-4e3e-bdda-7f5c09c0db33",
"action": null,
"actionBy": "actionBy",
"createdById": "0fcee3a4-168b-42e4-8baf-abce5ab85e15",
"createdOn": "2025-04-24T05:08:32Z",
"date": "2025-04-24T05:08:32Z",
"id": "cf95590f-1af0-4f8c-a990-546b40548813",
"integrationSourceId": "integrationSourceId",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "aeb655d3-3134-40ab-b9aa-a90af5ec5e49",
"memo": "memo",
"objectState": null,
"sendTo": "sendTo",
"sendToId": "55bef89f-e86c-4c90-a2fd-97eebd0ea17c",
"submitTo": null,
"token": 0,
"type": null,
"version": "U3dhZ2dlciByb2Nrcw=="
}
]
}
Create an Expense Entry
Use this method to save an expense entry. Pass ExpenseEntry as the parameter.
Request URL
Method Overview
HTTP Method:
POST
Content Type:
application/json
Response Format:
json
Requires Authentication?
Yes
Headers:
Module:
Expense Entry
Required Scopes:
readwrite:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
body | Body | Expense entry object | ExpenseEntry |
Response Body
Name | Description | Format |
---|---|---|
date | Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
description | Description of an expense incurred | string |
expenseId | Identifier of an expense entry | uuid |
projectId | Identifier of a project against which expense is entered | uuid |
resourceId | Identifier of an employee or vendor logging the expense | uuid |
billable | Indicates whether an expense entry is billable or not | boolean |
billStatus | Provides the status of a bill, e.g., unbilled or billed | BilledStatusEnumerated type: Click to see possible values and their descriptions. |
chargeAmount | Total charge amount for the expense entry billed to the client | double |
class | Name of the class | string |
classId | Identifier of the class | uuid |
classification | Job classification or title of an employee | string |
client | Name of the client | string |
costRate | Cost rate of each unit of an expense | double |
createdById | Identifier of the user who created this object | uuid |
createdOn | Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
currencyMultiplierId | Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to use | uuid |
currencyName | Name of the currency | string |
customFields []Array: Parent object can have multiple instances of this nested object under it. | Represents a list of custom fields | CustomFieldData Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
expense | Name of an expense entry | string |
expenseAccount | Name of an expense account for an expense entry that keeps track of any expenditure associated with it | string |
expenseAccountId | Identifier of an expense account for an expense entry that keeps track of any expenditure associated with it | uuid |
extra | Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extra | boolean |
flag1 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible | boolean |
flag2 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
flag3 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
foreignCost | Determines the cost in the foreign currency | double |
foreignMultiplier | Determines the current exchange rate of a foreign currency | double |
id | Object identifier | uuid |
incomeAccount | Name of an income account for an expense entry that keeps track of any income or revenue associated with it | string |
incomeAccountId | Identifier of an income account for an expense entry that keeps track of any income or revenue associated with it | uuid |
integrationSourceId | Identifier of the integration source for this object. This property is only used by internal BQE apps and does not have any significance for external users | string |
invoiceId | Identifier of an invoice associated with an expense | uuid |
invoiceNumber | Invoice number on an invoice associated with an expense | string |
lastUpdated | Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
lastUpdatedById | Identifier of the user who last updated this object | uuid |
markup | Percentage increase or decrease in the value of an expense entry | double |
memo | Records any extra information or details about an expense | string |
objectState | Represents the state of the object. e.g., new, unchanged, modified or deleted | ObjectStateEnumerated type: Click to see possible values and their descriptions. |
paid | Indicates whether an expense has been paid or not | boolean |
paidDate | Date on which an expense was paid to the employee or vendor in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
project | Name of a project against which expense is entered | string |
purchaseTaxRate | Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the client | double |
reimbursable | Indicates whether an expense is reimbursable or not | boolean |
resource | Name of an employee or vendor logging the expense | string |
tax1 | Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax2 | Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax3 | Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
token | Represents the token for update operations | int32 |
units | Number of expense units consumed | double |
vendorBillId | Identifier of a vendor bill associated with an expense | uuid |
vendorBillNumber | Vendor bill number associated with an expense | string |
version | Implements concurrency on this object | byte |
workflow []Array: Parent object can have multiple instances of this nested object under it. | List of workflow | WorkflowState Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
{
"date": "2025-04-24T05:08:32Z",
"description": "ExpenseEntry Description",
"expenseId": "a13f4e50-abb2-475b-9508-7b2ed027497d",
"projectId": "980209be-d087-47b5-b7a9-ae928ff09aa0",
"resourceId": "af8ded62-eef7-464b-babb-2bdbf8a6c20a",
"billable": true,
"billStatus": null,
"chargeAmount": 1,
"class": "class",
"classId": "500fc314-6527-4bb4-9e66-061be4fdf9cc",
"classification": "classification",
"client": "client",
"costRate": 1,
"createdById": "087af0ab-8fa4-4a38-b9ab-e3bc746d76c5",
"createdOn": "2025-04-24T05:08:32Z",
"currencyMultiplierId": "af51c4fa-4930-4566-a9ea-4cba0d67aa77",
"currencyName": "currencyName",
"customFields": [
{
"definitionId": "22a4e7f1-4ea4-4cc3-b298-720c979837bf",
"createdById": "d8e52cce-f101-4c86-aada-d793f7e06102",
"createdOn": "2025-04-24T05:08:32Z",
"description": "CustomFieldData Description",
"id": "1b43fb73-4d6f-49b0-bbb2-5b49dfdbd66f",
"integrationSourceId": "integrationSourceId",
"label": "label",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "f049cde0-47d5-41be-9c0a-0a9704864aba",
"objectState": null,
"token": 0,
"type": null,
"value": "value",
"version": "U3dhZ2dlciByb2Nrcw=="
}
],
"expense": "expense",
"expenseAccount": "expenseAccount",
"expenseAccountId": "cfaf1276-7c44-49ed-b933-a2cbe0a06dd6",
"extra": true,
"flag1": true,
"flag2": true,
"flag3": true,
"foreignCost": 1,
"foreignMultiplier": 1,
"id": "9ec35480-3bae-4c01-9317-b741a06e8b90",
"incomeAccount": "incomeAccount",
"incomeAccountId": "ddeb108b-f113-48a0-8078-ef5dbcba1bd0",
"integrationSourceId": "integrationSourceId",
"invoiceId": "1eabcc60-68c8-407f-9132-4ed2cc57681a",
"invoiceNumber": "invoiceNumber",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "1840d5cd-15b5-40a3-a190-f43aa54b0958",
"markup": 1,
"memo": "memo",
"objectState": null,
"paid": true,
"paidDate": "2025-04-24T05:08:32Z",
"project": "project",
"purchaseTaxRate": 1,
"reimbursable": true,
"resource": "resource",
"tax1": 1,
"tax2": 1,
"tax3": 1,
"token": 0,
"units": 1,
"vendorBillId": "9729635e-6b9a-4851-b835-df6c142ad722",
"vendorBillNumber": "vendorBillNumber",
"version": "U3dhZ2dlciByb2Nrcw==",
"workflow": [
{
"actionById": "f19ce13e-75c2-437b-8acc-c802ee395708",
"action": null,
"actionBy": "actionBy",
"createdById": "8fa7f29e-39f9-42ea-8c65-f3ab0100056d",
"createdOn": "2025-04-24T05:08:32Z",
"date": "2025-04-24T05:08:32Z",
"id": "1fdf5ca6-40dd-4d48-b146-e421d5e2dbe6",
"integrationSourceId": "integrationSourceId",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "bd23afe2-ef29-4cdb-ab6f-bad74dd3024c",
"memo": "memo",
"objectState": null,
"sendTo": "sendTo",
"sendToId": "9cc0bc06-9384-4233-839c-8fdcb3402f6d",
"submitTo": null,
"token": 0,
"type": null,
"version": "U3dhZ2dlciByb2Nrcw=="
}
]
}
Create an Expense Entry List
Use this method to save multiple expense entries. Pass model as the parameter.
Request URL
Method Overview
HTTP Method:
POST
Content Type:
application/json
Response Format:
json
Requires Authentication?
Yes
Headers:
Module:
Expense Entry
Required Scopes:
readwrite:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
body | Body | Expense entry object | ExpenseEntryBatchRequest |
Response Body
Name | Description | Format |
---|---|---|
batchSize | Represents the number of entities in a batch | int64 |
createdById | Identifier of the user who created this object | uuid |
createdOn | Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
id | Object identifier | uuid |
integrationSourceId | Identifier of the integration source for this object. This property is only used by internal BQE apps and does not have any significance for external users | string |
lastUpdated | Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
lastUpdatedById | Identifier of the user who last updated this object | uuid |
objectState | Represents the state of the object. e.g., new, unchanged, modified or deleted | ObjectStateEnumerated type: Click to see possible values and their descriptions. |
progress | Represents the total number of entities processed | int64 |
status | Represents the status of a job e.g., ready, running, completed, or terminated | string |
token | Represents the token for update operations | int32 |
type | Represents the type of a job e.g., create, update, or delete | string |
version | Implements concurrency on this object | byte |
{
"batchSize": 0,
"createdById": "293cda34-32b9-46da-b429-677c0c386541",
"createdOn": "2025-04-24T05:08:32Z",
"id": "3be88c3b-b64f-47bf-9982-febaec2301a9",
"integrationSourceId": "integrationSourceId",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "64e6596a-fa9f-41de-98e0-9e2ba5d18462",
"objectState": null,
"progress": 0,
"status": "status",
"token": 0,
"type": "type",
"version": "U3dhZ2dlciByb2Nrcw=="
}
Update an Expense Entry
Use this method to update an expense entry. Pass id and expenseEntry as the parameters.
Request URL
Method Overview
HTTP Method:
PUT
Content Type:
application/json
Response Format:
json
Requires Authentication?
Yes
Headers:
Module:
Expense Entry
Required Scopes:
readwrite:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
id | Path | Expense entry identifier | string |
body | Body | Expense entry object | ExpenseEntry |
Response Body
Name | Description | Format |
---|---|---|
date | Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
description | Description of an expense incurred | string |
expenseId | Identifier of an expense entry | uuid |
projectId | Identifier of a project against which expense is entered | uuid |
resourceId | Identifier of an employee or vendor logging the expense | uuid |
billable | Indicates whether an expense entry is billable or not | boolean |
billStatus | Provides the status of a bill, e.g., unbilled or billed | BilledStatusEnumerated type: Click to see possible values and their descriptions. |
chargeAmount | Total charge amount for the expense entry billed to the client | double |
class | Name of the class | string |
classId | Identifier of the class | uuid |
classification | Job classification or title of an employee | string |
client | Name of the client | string |
costRate | Cost rate of each unit of an expense | double |
createdById | Identifier of the user who created this object | uuid |
createdOn | Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
currencyMultiplierId | Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to use | uuid |
currencyName | Name of the currency | string |
customFields []Array: Parent object can have multiple instances of this nested object under it. | Represents a list of custom fields | CustomFieldData Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
expense | Name of an expense entry | string |
expenseAccount | Name of an expense account for an expense entry that keeps track of any expenditure associated with it | string |
expenseAccountId | Identifier of an expense account for an expense entry that keeps track of any expenditure associated with it | uuid |
extra | Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extra | boolean |
flag1 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible | boolean |
flag2 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
flag3 | Flags are used to track any characteristic of the expense entry. For example, you can use a flag to mark expense entries that are tax deductible. | boolean |
foreignCost | Determines the cost in the foreign currency | double |
foreignMultiplier | Determines the current exchange rate of a foreign currency | double |
id | Object identifier | uuid |
incomeAccount | Name of an income account for an expense entry that keeps track of any income or revenue associated with it | string |
incomeAccountId | Identifier of an income account for an expense entry that keeps track of any income or revenue associated with it | uuid |
integrationSourceId | Identifier of the integration source for this object. This property is only used by internal BQE apps and does not have any significance for external users | string |
invoiceId | Identifier of an invoice associated with an expense | uuid |
invoiceNumber | Invoice number on an invoice associated with an expense | string |
lastUpdated | Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
lastUpdatedById | Identifier of the user who last updated this object | uuid |
markup | Percentage increase or decrease in the value of an expense entry | double |
memo | Records any extra information or details about an expense | string |
objectState | Represents the state of the object. e.g., new, unchanged, modified or deleted | ObjectStateEnumerated type: Click to see possible values and their descriptions. |
paid | Indicates whether an expense has been paid or not | boolean |
paidDate | Date on which an expense was paid to the employee or vendor in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ss | date-time |
project | Name of a project against which expense is entered | string |
purchaseTaxRate | Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the client | double |
reimbursable | Indicates whether an expense is reimbursable or not | boolean |
resource | Name of an employee or vendor logging the expense | string |
tax1 | Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax2 | Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
tax3 | Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expense | double |
token | Represents the token for update operations | int32 |
units | Number of expense units consumed | double |
vendorBillId | Identifier of a vendor bill associated with an expense | uuid |
vendorBillNumber | Vendor bill number associated with an expense | string |
version | Implements concurrency on this object | byte |
workflow []Array: Parent object can have multiple instances of this nested object under it. | List of workflow | WorkflowState Nested object: Click to see its details. To retrieve the details of this object via list endpoints, you must use the Expand parameter. |
{
"date": "2025-04-24T05:08:32Z",
"description": "ExpenseEntry Description",
"expenseId": "2f65bb8b-c00b-4d53-abd7-39d3057633d7",
"projectId": "e83a7a0d-f461-40b3-9466-6764b2949087",
"resourceId": "2bb41220-10c8-4dd3-9828-09c9bdd0e81a",
"billable": true,
"billStatus": null,
"chargeAmount": 1,
"class": "class",
"classId": "7e790887-4218-4b88-97ba-9c5a572b8884",
"classification": "classification",
"client": "client",
"costRate": 1,
"createdById": "8e69fe5b-13d9-49c8-853e-7c2f965dc0f7",
"createdOn": "2025-04-24T05:08:32Z",
"currencyMultiplierId": "b37da949-403a-4852-8dc8-c13d2e37188c",
"currencyName": "currencyName",
"customFields": [
{
"definitionId": "375e1461-1966-4b96-8d17-2363793262e9",
"createdById": "09a49433-37b9-4910-a9c7-449810b72372",
"createdOn": "2025-04-24T05:08:32Z",
"description": "CustomFieldData Description",
"id": "b301f241-9f91-4172-b47d-26e65d83ac91",
"integrationSourceId": "integrationSourceId",
"label": "label",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "86761abf-fa8f-4c98-8eab-221a07efc3f7",
"objectState": null,
"token": 0,
"type": null,
"value": "value",
"version": "U3dhZ2dlciByb2Nrcw=="
}
],
"expense": "expense",
"expenseAccount": "expenseAccount",
"expenseAccountId": "07b65846-6e6b-47bd-927c-f3534aafacef",
"extra": true,
"flag1": true,
"flag2": true,
"flag3": true,
"foreignCost": 1,
"foreignMultiplier": 1,
"id": "852d90a1-901e-4213-8871-c9b3fbc3b1ad",
"incomeAccount": "incomeAccount",
"incomeAccountId": "74f5308c-362c-49b1-83ed-1ff2fb57c079",
"integrationSourceId": "integrationSourceId",
"invoiceId": "2039012c-4f4a-410a-a00e-603d8ce7e398",
"invoiceNumber": "invoiceNumber",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "5adaeee2-66a5-47e0-87d6-ec2b41d04743",
"markup": 1,
"memo": "memo",
"objectState": null,
"paid": true,
"paidDate": "2025-04-24T05:08:32Z",
"project": "project",
"purchaseTaxRate": 1,
"reimbursable": true,
"resource": "resource",
"tax1": 1,
"tax2": 1,
"tax3": 1,
"token": 0,
"units": 1,
"vendorBillId": "33e90811-bf40-4d1d-ac52-9c125b23065b",
"vendorBillNumber": "vendorBillNumber",
"version": "U3dhZ2dlciByb2Nrcw==",
"workflow": [
{
"actionById": "9330c73f-31e1-4228-9c81-9ee48078a4bb",
"action": null,
"actionBy": "actionBy",
"createdById": "a97a49f4-5239-4c80-a22d-2fdc67175331",
"createdOn": "2025-04-24T05:08:32Z",
"date": "2025-04-24T05:08:32Z",
"id": "b75d53c9-2860-4226-9714-83077fc49c3c",
"integrationSourceId": "integrationSourceId",
"lastUpdated": "2025-04-24T05:08:32Z",
"lastUpdatedById": "320a70bd-7526-4427-97ce-71ede8f599e8",
"memo": "memo",
"objectState": null,
"sendTo": "sendTo",
"sendToId": "1f60e6f1-e1a3-470a-a81d-a6965289780a",
"submitTo": null,
"token": 0,
"type": null,
"version": "U3dhZ2dlciByb2Nrcw=="
}
]
}
Delete an Expense Entry
Use this method to delete an expense entry. Pass id as the parameter.
Request URL
Method Overview
HTTP Method:
DELETE
Content Type:
application/json
Response Format:
N/A
Requires Authentication?
Yes
Headers:
Required Scopes:
readwrite:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
id | Path | Expense identifier | string |
Patch an Expense Entry
Use this method to perform partial modifications to an expense entry. Pass id and patch document as parameters.
Request URL
Method Overview
HTTP Method:
PATCH
Content Type:
application/json
Response Format:
json
Requires Authentication?
Yes
Headers:
Module:
Expense Entry
Required Scopes:
readwrite:core
Required Subscription:
View Subscription
Request Parameters asterisk denotes required
Name | Parameter Type | Description | Format |
---|---|---|---|
id | Path | Expense identifier | string |
body | Body | A document containing an array of objects with each object representing a single operation | ExpenseEntryPatchDocument |
Response Body
Name | Description | Format |
---|