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
NameDescriptionFormatAttributes
date Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-timeFilterable, Sortable
description Description of an expense incurredstringMaxLength = 100
expenseId Identifier of an expense entryuuid
projectId Identifier of a project against which expense is entereduuidFilterable
resourceId Identifier of an employee or vendor logging the expenseuuidFilterable
billable Indicates whether an expense entry is billable or notbooleanFilterable, 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 clientdouble
class Name of the classstringFilterable, Sortable
classId Identifier of the classuuidFilterable
classification Job classification or title of an employeestringMaxLength = 100
client Name of the clientstringFilterable
costRate Cost rate of each unit of an expensedouble
createdById Identifier of the user who created this objectuuidFilterable
createdOn Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-timeFilterable, Sortable
currencyMultiplierId Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to useuuidFilterable
currencyName Name of the currencystring
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 entrystringSortable
expenseAccount Name of an expense account for an expense entry that keeps track of any expenditure associated with itstring
expenseAccountId Identifier of an expense account for an expense entry that keeps track of any expenditure associated with ituuid
extra Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extraboolean
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 deductiblebooleanFilterable
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.booleanFilterable
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.booleanFilterable
foreignCost Determines the cost in the foreign currencydouble
foreignMultiplier Determines the current exchange rate of a foreign currencydouble
id Object identifieruuidFilterable
incomeAccount Name of an income account for an expense entry that keeps track of any income or revenue associated with itstring
incomeAccountId Identifier of an income account for an expense entry that keeps track of any income or revenue associated with ituuid
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 usersstringFilterable, Sortable
invoiceId Identifier of an invoice associated with an expenseuuidFilterable
invoiceNumber Invoice number on an invoice associated with an expensestringFilterable, Sortable
lastUpdated Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-timeFilterable, Sortable
lastUpdatedById Identifier of the user who last updated this objectuuidFilterable
markup Percentage increase or decrease in the value of an expense entrydouble
memo Records any extra information or details about an expensestring
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 notbooleanFilterable, 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:ssdate-timeFilterable, Sortable
project Name of a project against which expense is enteredstringSortable
purchaseTaxRate Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the clientdouble
reimbursable Indicates whether an expense is reimbursable or notbooleanFilterable, Sortable
resource Name of an employee or vendor logging the expensestringSortable
tax1 Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax2 Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax3 Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
token Represents the token for update operationsint32
units Number of expense units consumeddouble
vendorBillId Identifier of a vendor bill associated with an expenseuuidFilterable
vendorBillNumber Vendor bill number associated with an expensestringFilterable, Sortable
version Implements concurrency on this objectbyte
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.

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
base_url/expenseentry

Method Overview

HTTP Method:

GET

Content Type:

application/json

Response Format:

json

Requires Authentication?

Yes

Headers:

Access Token

Module:

Expense Entry

Required Scopes:

read:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
fields Query Specifies the model properties you want in the response bodystring
where Query Specifies only those records that match an expression in the querystring
orderBy Query Specifies the order of the recordsstring
page Query Specifies the page number and number of records on each pagestring
expand Query Specifies the nested model properties you want in the response bodystring
Response Body
NameDescriptionFormat
date Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
description Description of an expense incurredstring
expenseId Identifier of an expense entryuuid
projectId Identifier of a project against which expense is entereduuid
resourceId Identifier of an employee or vendor logging the expenseuuid
billable Indicates whether an expense entry is billable or notboolean
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 clientdouble
class Name of the classstring
classId Identifier of the classuuid
classification Job classification or title of an employeestring
client Name of the clientstring
costRate Cost rate of each unit of an expensedouble
createdById Identifier of the user who created this objectuuid
createdOn Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
currencyMultiplierId Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to useuuid
currencyName Name of the currencystring
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 entrystring
expenseAccount Name of an expense account for an expense entry that keeps track of any expenditure associated with itstring
expenseAccountId Identifier of an expense account for an expense entry that keeps track of any expenditure associated with ituuid
extra Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extraboolean
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 deductibleboolean
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 currencydouble
foreignMultiplier Determines the current exchange rate of a foreign currencydouble
id Object identifieruuid
incomeAccount Name of an income account for an expense entry that keeps track of any income or revenue associated with itstring
incomeAccountId Identifier of an income account for an expense entry that keeps track of any income or revenue associated with ituuid
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 usersstring
invoiceId Identifier of an invoice associated with an expenseuuid
invoiceNumber Invoice number on an invoice associated with an expensestring
lastUpdated Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
lastUpdatedById Identifier of the user who last updated this objectuuid
markup Percentage increase or decrease in the value of an expense entrydouble
memo Records any extra information or details about an expensestring
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 notboolean
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:ssdate-time
project Name of a project against which expense is enteredstring
purchaseTaxRate Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the clientdouble
reimbursable Indicates whether an expense is reimbursable or notboolean
resource Name of an employee or vendor logging the expensestring
tax1 Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax2 Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax3 Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
token Represents the token for update operationsint32
units Number of expense units consumeddouble
vendorBillId Identifier of a vendor bill associated with an expenseuuid
vendorBillNumber Vendor bill number associated with an expensestring
version Implements concurrency on this objectbyte
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.
Example Request
Example Response
[
  {
    "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=="
      }
    ]
  }
]

Use this method to retrieve a specific expense entry. Pass id as the parameter.

Request URL
base_url/expenseentry/{id}

Method Overview

HTTP Method:

GET

Content Type:

application/json

Response Format:

json

Requires Authentication?

Yes

Headers:

Access Token

Module:

Expense Entry

Required Scopes:

read:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
id Path Expense identifierstring
Response Body
NameDescriptionFormat
date Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
description Description of an expense incurredstring
expenseId Identifier of an expense entryuuid
projectId Identifier of a project against which expense is entereduuid
resourceId Identifier of an employee or vendor logging the expenseuuid
billable Indicates whether an expense entry is billable or notboolean
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 clientdouble
class Name of the classstring
classId Identifier of the classuuid
classification Job classification or title of an employeestring
client Name of the clientstring
costRate Cost rate of each unit of an expensedouble
createdById Identifier of the user who created this objectuuid
createdOn Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
currencyMultiplierId Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to useuuid
currencyName Name of the currencystring
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 entrystring
expenseAccount Name of an expense account for an expense entry that keeps track of any expenditure associated with itstring
expenseAccountId Identifier of an expense account for an expense entry that keeps track of any expenditure associated with ituuid
extra Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extraboolean
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 deductibleboolean
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 currencydouble
foreignMultiplier Determines the current exchange rate of a foreign currencydouble
id Object identifieruuid
incomeAccount Name of an income account for an expense entry that keeps track of any income or revenue associated with itstring
incomeAccountId Identifier of an income account for an expense entry that keeps track of any income or revenue associated with ituuid
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 usersstring
invoiceId Identifier of an invoice associated with an expenseuuid
invoiceNumber Invoice number on an invoice associated with an expensestring
lastUpdated Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
lastUpdatedById Identifier of the user who last updated this objectuuid
markup Percentage increase or decrease in the value of an expense entrydouble
memo Records any extra information or details about an expensestring
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 notboolean
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:ssdate-time
project Name of a project against which expense is enteredstring
purchaseTaxRate Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the clientdouble
reimbursable Indicates whether an expense is reimbursable or notboolean
resource Name of an employee or vendor logging the expensestring
tax1 Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax2 Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax3 Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
token Represents the token for update operationsint32
units Number of expense units consumeddouble
vendorBillId Identifier of a vendor bill associated with an expenseuuid
vendorBillNumber Vendor bill number associated with an expensestring
version Implements concurrency on this objectbyte
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.
Example Request
Example Response
{
  "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=="
    }
  ]
}

Use this method to save an expense entry. Pass ExpenseEntry as the parameter.

Request URL
base_url/expenseentry

Method Overview

HTTP Method:

POST

Content Type:

application/json

Response Format:

json

Requires Authentication?

Yes

Headers:

Access Token

Module:

Expense Entry

Required Scopes:

readwrite:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
body Body Expense entry objectExpenseEntry
Response Body
NameDescriptionFormat
date Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
description Description of an expense incurredstring
expenseId Identifier of an expense entryuuid
projectId Identifier of a project against which expense is entereduuid
resourceId Identifier of an employee or vendor logging the expenseuuid
billable Indicates whether an expense entry is billable or notboolean
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 clientdouble
class Name of the classstring
classId Identifier of the classuuid
classification Job classification or title of an employeestring
client Name of the clientstring
costRate Cost rate of each unit of an expensedouble
createdById Identifier of the user who created this objectuuid
createdOn Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
currencyMultiplierId Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to useuuid
currencyName Name of the currencystring
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 entrystring
expenseAccount Name of an expense account for an expense entry that keeps track of any expenditure associated with itstring
expenseAccountId Identifier of an expense account for an expense entry that keeps track of any expenditure associated with ituuid
extra Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extraboolean
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 deductibleboolean
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 currencydouble
foreignMultiplier Determines the current exchange rate of a foreign currencydouble
id Object identifieruuid
incomeAccount Name of an income account for an expense entry that keeps track of any income or revenue associated with itstring
incomeAccountId Identifier of an income account for an expense entry that keeps track of any income or revenue associated with ituuid
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 usersstring
invoiceId Identifier of an invoice associated with an expenseuuid
invoiceNumber Invoice number on an invoice associated with an expensestring
lastUpdated Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
lastUpdatedById Identifier of the user who last updated this objectuuid
markup Percentage increase or decrease in the value of an expense entrydouble
memo Records any extra information or details about an expensestring
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 notboolean
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:ssdate-time
project Name of a project against which expense is enteredstring
purchaseTaxRate Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the clientdouble
reimbursable Indicates whether an expense is reimbursable or notboolean
resource Name of an employee or vendor logging the expensestring
tax1 Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax2 Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax3 Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
token Represents the token for update operationsint32
units Number of expense units consumeddouble
vendorBillId Identifier of a vendor bill associated with an expenseuuid
vendorBillNumber Vendor bill number associated with an expensestring
version Implements concurrency on this objectbyte
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.
Example Request
Example Response
{
  "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=="
    }
  ]
}

Use this method to save multiple expense entries. Pass model as the parameter.

Request URL
base_url/expenseentry/batch

Method Overview

HTTP Method:

POST

Content Type:

application/json

Response Format:

json

Requires Authentication?

Yes

Headers:

Access Token

Module:

Expense Entry

Required Scopes:

readwrite:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
body Body Expense entry objectExpenseEntryBatchRequest
Response Body
NameDescriptionFormat
batchSize Represents the number of entities in a batchint64
createdById Identifier of the user who created this objectuuid
createdOn Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
id Object identifieruuid
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 usersstring
lastUpdated Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
lastUpdatedById Identifier of the user who last updated this objectuuid
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 processedint64
status Represents the status of a job e.g., ready, running, completed, or terminatedstring
token Represents the token for update operationsint32
type Represents the type of a job e.g., create, update, or deletestring
version Implements concurrency on this objectbyte
Example Request
Example Response
{
  "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=="
}

Use this method to update an expense entry. Pass id and expenseEntry as the parameters.

Request URL
base_url/expenseentry/{id}

Method Overview

HTTP Method:

PUT

Content Type:

application/json

Response Format:

json

Requires Authentication?

Yes

Headers:

Access Token

Module:

Expense Entry

Required Scopes:

readwrite:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
id Path Expense entry identifierstring
body Body Expense entry objectExpenseEntry
Response Body
NameDescriptionFormat
date Date of an expense entry in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
description Description of an expense incurredstring
expenseId Identifier of an expense entryuuid
projectId Identifier of a project against which expense is entereduuid
resourceId Identifier of an employee or vendor logging the expenseuuid
billable Indicates whether an expense entry is billable or notboolean
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 clientdouble
class Name of the classstring
classId Identifier of the classuuid
classification Job classification or title of an employeestring
client Name of the clientstring
costRate Cost rate of each unit of an expensedouble
createdById Identifier of the user who created this objectuuid
createdOn Date and time when this object was created (UTC Now), in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
currencyMultiplierId Identifier of the currency multiplier. Currency multiplier denotes the current exchange rate for the foreign currency you want to useuuid
currencyName Name of the currencystring
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 entrystring
expenseAccount Name of an expense account for an expense entry that keeps track of any expenditure associated with itstring
expenseAccountId Identifier of an expense account for an expense entry that keeps track of any expenditure associated with ituuid
extra Indicates whether an expense entry is marked as extra or not. Expenses incurred over the contract amount should be marked as extraboolean
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 deductibleboolean
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 currencydouble
foreignMultiplier Determines the current exchange rate of a foreign currencydouble
id Object identifieruuid
incomeAccount Name of an income account for an expense entry that keeps track of any income or revenue associated with itstring
incomeAccountId Identifier of an income account for an expense entry that keeps track of any income or revenue associated with ituuid
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 usersstring
invoiceId Identifier of an invoice associated with an expenseuuid
invoiceNumber Invoice number on an invoice associated with an expensestring
lastUpdated Last updated date and time value of this object in ISO 8601 date-time format, such as YYYY-MM-DDThh:mm:ssdate-time
lastUpdatedById Identifier of the user who last updated this objectuuid
markup Percentage increase or decrease in the value of an expense entrydouble
memo Records any extra information or details about an expensestring
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 notboolean
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:ssdate-time
project Name of a project against which expense is enteredstring
purchaseTaxRate Tax paid by the company on an expense subtracted from the expense amount to avoid double-taxation for the clientdouble
reimbursable Indicates whether an expense is reimbursable or notboolean
resource Name of an employee or vendor logging the expensestring
tax1 Tax 1 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax2 Tax 2 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
tax3 Tax 3 rate assigned to an expense. All the taxes are summed up to calculate the bill amount for an expensedouble
token Represents the token for update operationsint32
units Number of expense units consumeddouble
vendorBillId Identifier of a vendor bill associated with an expenseuuid
vendorBillNumber Vendor bill number associated with an expensestring
version Implements concurrency on this objectbyte
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.
Example Request
Example Response
{
  "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=="
    }
  ]
}

Use this method to delete an expense entry. Pass id as the parameter.

Request URL
base_url/expenseentry/{id}

Method Overview

HTTP Method:

DELETE

Content Type:

application/json

Response Format:

N/A

Requires Authentication?

Yes

Headers:

Access Token

Required Scopes:

readwrite:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
id Path Expense identifierstring
Example Request

Use this method to perform partial modifications to an expense entry. Pass id and patch document as parameters.

Request URL
base_url/expenseentry/{id}

Method Overview

HTTP Method:

PATCH

Content Type:

application/json

Response Format:

json

Requires Authentication?

Yes

Headers:

Access Token

Module:

Expense Entry

Required Scopes:

readwrite:core

Required Subscription:

View Subscription


Request Parameters asterisk denotes required
NameParameter TypeDescriptionFormat
id Path Expense identifierstring
body Body A document containing an array of objects with each object representing a single operationExpenseEntryPatchDocument
Response Body
NameDescriptionFormat
Example Request
Example Response