Smokeball · Schema

Smokeball Expense

LegalLaw FirmPractice ManagementMattersContactsDocumentsBillingTrust AccountingTime Tracking

Properties

Name Type Description
id string
href string
relation string
method string
self object
versionId string Unique version identifier of the expense.
createdByUserId string Unique identifier of the user that created the expense.
staff object The staff member associated to the expense.
matter object The matter associated to the expense.
invoice object The invoice associated to the expense.
staffId string Deprecated, use Staff.
matterId string Deprecated, use Matter.
invoiceId string Unique identifier of the associated invoice.
origin string Where the expense originated from.
activityCode string The activity code associated to the expense.
utbmsTaskCode string The UTBMS task code associated to the expense, where UTBMS is enabled. Only applicable in US.
subject string The subject - this should be a short description of the expense.
description string Optional detailed description of the expense.
expenseDate string The date of the expense.
costType string The cost type of the expense. * Hard - Direct cost such as travel, accommodation, or materials. * Soft - Indirect cost such as administrative fees or overhead.
quantity number The quantity of the expense in units (if not applicable, use 1). The expense amount will be calculated as Quantity * Price.
price number The price of the expense in dollars. Limited to 2 decimal places (cents). The expense amount will be calculated as Quantity * Price.
amount number Total amount of the expense. Calculated as Price * Quantity. This amount ignores GST (if applicable). See AmountExcTax and AmountIncTax.
amountExcTax number Amount excluding tax. Calculated from Amount and Tax depending on the TaxInclusive property. If tax is not applicable (outside AU), this will be the same as Amount.
amountIncTax number Amount including tax. Calculated from Amount and Tax depending on the TaxInclusive property. If tax is not applicable (outside AU), this will be the same as Amount.
tax number GST amount of the expense in dollars. Only applicable in AU.
outputTax number Output tax amount of the expense in dollars. Only applicable in AU and UK regions. When TaxOutOfScope or TaxZeroRated is true, this value must be 0. When TaxExempt is true, this value can be greater t
taxInclusive boolean If true, the amount is GST inclusive, otherwise GST exclusive. Only applicable in AU. GST inclusive means: Amount exc. GST = Amount - GST, Amount inc. GST = Amount. GST exclusive means: Amount exc. GS
taxZeroRated boolean True if the expense is zero-rated for tax purposes.
taxOutOfScope boolean True if the expense is out of scope for tax purposes.
taxExempt boolean True if the expense is exempt from tax.
finalized boolean True if the expense has been finalized.
isWrittenOff boolean True if the expense is written off. True only allowed if IsBillable is true. Written off expenses will show on an invoice with their amount, but will not be counted in the invoice total.
isBillable boolean True if the expense is billable. Non-billable expense will, by default, not be shown on invoices (and, if shown, the amount will be 0).
isInvoicedExternally boolean True if the expense is invoiced externally.
isDeleted boolean True if the expense is deleted.
View JSON Schema on GitHub

JSON Schema

smokeball-expense.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/smokeball/json-schema/smokeball-expense.json",
  "title": "Smokeball Expense",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "nullable": true
    },
    "href": {
      "type": "string",
      "nullable": true
    },
    "relation": {
      "type": "string",
      "nullable": true
    },
    "method": {
      "type": "string",
      "default": "GET",
      "nullable": true
    },
    "self": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Link"
        }
      ],
      "nullable": true
    },
    "versionId": {
      "type": "string",
      "description": "Unique version identifier of the expense.",
      "nullable": true,
      "example": "23d2a4bc-8529-462e-8560-dfbf4fa24e49"
    },
    "createdByUserId": {
      "type": "string",
      "description": "Unique identifier of the user that created the expense.",
      "nullable": true,
      "example": "8a7f40ea-4123-4ebe-bb05-e9b4b666e706"
    },
    "staff": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Link"
        }
      ],
      "description": "The staff member associated to the expense.",
      "nullable": true
    },
    "matter": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Link"
        }
      ],
      "description": "The matter associated to the expense.",
      "nullable": true
    },
    "invoice": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Link"
        }
      ],
      "description": "The invoice associated to the expense.",
      "nullable": true
    },
    "staffId": {
      "type": "string",
      "description": "Deprecated, use Staff.",
      "nullable": true
    },
    "matterId": {
      "type": "string",
      "description": "Deprecated, use Matter.",
      "nullable": true
    },
    "invoiceId": {
      "type": "string",
      "description": "Unique identifier of the associated invoice.",
      "nullable": true,
      "example": "fdb766bc-eb20-4bc1-9417-08b51a7b2286"
    },
    "origin": {
      "type": "string",
      "description": "Where the expense originated from.",
      "nullable": true
    },
    "activityCode": {
      "type": "string",
      "description": "The activity code associated to the expense.",
      "nullable": true,
      "example": "PRT"
    },
    "utbmsTaskCode": {
      "type": "string",
      "description": "The UTBMS task code associated to the expense, where UTBMS is enabled. Only applicable in US.",
      "nullable": true,
      "example": "E101"
    },
    "subject": {
      "type": "string",
      "description": "The subject - this should be a short description of the expense.",
      "nullable": true,
      "example": "Review contract"
    },
    "description": {
      "type": "string",
      "description": "Optional detailed description of the expense.",
      "nullable": true,
      "example": "Print documents"
    },
    "expenseDate": {
      "type": "string",
      "description": "The date of the expense.",
      "format": "date-time",
      "example": "2022-07-01"
    },
    "costType": {
      "type": "string",
      "description": "The cost type of the expense.\r\n\r\n* Hard - Direct cost such as travel, accommodation, or materials.\r\n\r\n* Soft - Indirect cost such as administrative fees or overhead.",
      "example": "Hard"
    },
    "quantity": {
      "type": "number",
      "description": "The quantity of the expense in units (if not applicable, use 1).\r\n\r\nThe expense amount will be calculated as Quantity * Price.",
      "format": "double",
      "example": 3
    },
    "price": {
      "type": "number",
      "description": "The price of the expense in dollars. Limited to 2 decimal places (cents).\r\n\r\nThe expense amount will be calculated as Quantity * Price.",
      "format": "double",
      "example": 350.32
    },
    "amount": {
      "type": "number",
      "description": "Total amount of the expense. Calculated as Price * Quantity.\r\n\r\nThis amount ignores GST (if applicable). See AmountExcTax and AmountIncTax.",
      "format": "double",
      "example": 900.21
    },
    "amountExcTax": {
      "type": "number",
      "description": "Amount excluding tax. Calculated from Amount and Tax depending on the TaxInclusive property.\r\n\r\nIf tax is not applicable (outside AU), this will be the same as Amount.",
      "format": "double",
      "example": 810.01
    },
    "amountIncTax": {
      "type": "number",
      "description": "Amount including tax. Calculated from Amount and Tax depending on the TaxInclusive property.\r\n\r\nIf tax is not applicable (outside AU), this will be the same as Amount.",
      "format": "double",
      "example": 900.21
    },
    "tax": {
      "type": "number",
      "description": "GST amount of the expense in dollars. Only applicable in AU.",
      "format": "double",
      "example": 90
    },
    "outputTax": {
      "type": "number",
      "description": "Output tax amount of the expense in dollars. Only applicable in AU and UK regions.\r\n\r\nWhen TaxOutOfScope or TaxZeroRated is true, this value must be 0.\r\nWhen TaxExempt is true, this value can be greater than 0.",
      "format": "double",
      "example": 85
    },
    "taxInclusive": {
      "type": "boolean",
      "description": "If true, the amount is GST inclusive, otherwise GST exclusive. Only applicable in AU.\r\n\r\nGST inclusive means: Amount exc. GST = Amount - GST, Amount inc. GST = Amount.\r\n\r\nGST exclusive means: Amount exc. GST = Amount, Amount inc. GST = Amount + GST.\r\n(Amount = Price * Quantity, GST = value of the Tax field)",
      "example": false
    },
    "taxZeroRated": {
      "type": "boolean",
      "description": "True if the expense is zero-rated for tax purposes.",
      "example": false
    },
    "taxOutOfScope": {
      "type": "boolean",
      "description": "True if the expense is out of scope for tax purposes.",
      "example": false
    },
    "taxExempt": {
      "type": "boolean",
      "description": "True if the expense is exempt from tax.",
      "example": false
    },
    "finalized": {
      "type": "boolean",
      "description": "True if the expense has been finalized.",
      "example": false
    },
    "isWrittenOff": {
      "type": "boolean",
      "description": "True if the expense is written off. True only allowed if IsBillable is true. \r\n\r\nWritten off expenses will show on an invoice with their amount, but will not be counted in the invoice total.",
      "example": false
    },
    "isBillable": {
      "type": "boolean",
      "description": "True if the expense is billable. Non-billable expense will, by default, not be shown on invoices (and, if shown, the amount will be 0).",
      "example": false
    },
    "isInvoicedExternally": {
      "type": "boolean",
      "description": "True if the expense is invoiced externally.",
      "example": false
    },
    "isDeleted": {
      "type": "boolean",
      "description": "True if the expense is deleted.",
      "example": false
    }
  },
  "additionalProperties": false
}