Smokeball · Schema

Smokeball ExpenseDto

LegalLaw FirmPractice ManagementMattersContactsDocumentsBillingTrust AccountingTime Tracking

Properties

Name Type Description
updatedByUserId string Unique identifier of the user updating the expense. This field is reserved for server-to-server operations.
staffId string Unique identifier of the associated staff member. When StaffId is not provided, the API will attempt to match your User Id to a Staff Id automatically.
invoiceId string Unique identifier of the associated invoice.
expenseDate string The date of the expense.
activityCode string The activity code associated to the expense.
subject string The subject - this should be a short description of the expense.
description string Optional detailed description 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.
tax number Tax amount of the expense in dollars. Only applicable in AU and UK regions. When TaxOutOfScope or TaxExempt is true, this value must be 0. When TaxZeroRated is true, this value can be greater than 0.
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 tax inclusive, otherwise tax exclusive. Only applicable in AU and UK regions. Tax inclusive means: Amount exc. tax = Amount - Tax, Amount inc. tax = Amount. Tax exclusive means:
taxZeroRated boolean True if the expense is zero-rated for tax purposes. Only supported in UK regions. This field is mutually exclusive with TaxInclusive, TaxOutOfScope and TaxExempt. When true, OutputTax must be 0.
taxOutOfScope boolean True if the expense is out of scope for tax purposes. Only supported in UK regions. This field is mutually exclusive with TaxInclusive, TaxZeroRated and TaxExempt. When true, both Tax and OutputTax mu
taxExempt boolean True if the expense is exempt from tax. This field is mutually exclusive with TaxInclusive, TaxZeroRated and TaxOutOfScope. When true, Tax must be 0 but OutputTax can be greater than 0.
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.
assignToFirmOwner boolean Assigns expense to a firm owner if true. Ignored if a StaffId is provided. Note: If there are multiple firm owners, it is not guaranteed that the same firm owner will be assigned everytime.
View JSON Schema on GitHub

JSON Schema

smokeball-expensedto.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/smokeball/json-schema/smokeball-expensedto.json",
  "title": "Smokeball ExpenseDto",
  "type": "object",
  "properties": {
    "updatedByUserId": {
      "type": "string",
      "description": "Unique identifier of the user updating the expense.\r\n\r\nThis field is reserved for server-to-server operations.",
      "nullable": true,
      "example": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8"
    },
    "staffId": {
      "type": "string",
      "description": "Unique identifier of the associated staff member.\r\n\r\nWhen StaffId is not provided, the API will attempt to match your User Id to a Staff Id automatically.",
      "nullable": true,
      "example": "47efff74-3e4b-45b3-bddf-affc6649db0b"
    },
    "invoiceId": {
      "type": "string",
      "description": "Unique identifier of the associated invoice.",
      "nullable": true,
      "example": "fdb766bc-eb20-4bc1-9417-08b51a7b2286"
    },
    "expenseDate": {
      "type": "string",
      "description": "The date of the expense.",
      "format": "date-time",
      "example": "2022-07-01"
    },
    "activityCode": {
      "type": "string",
      "description": "The activity code associated to the expense.",
      "nullable": true,
      "example": "PRT"
    },
    "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"
    },
    "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
    },
    "tax": {
      "type": "number",
      "description": "Tax amount of the expense in dollars. Only applicable in AU and UK regions.\r\n\r\nWhen TaxOutOfScope or TaxExempt is true, this value must be 0.\r\nWhen TaxZeroRated is true, this value can be greater than 0.",
      "format": "double",
      "nullable": true,
      "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",
      "nullable": true,
      "example": 85
    },
    "taxInclusive": {
      "type": "boolean",
      "description": "If true, the amount is tax inclusive, otherwise tax exclusive. Only applicable in AU and UK regions.\r\n\r\nTax inclusive means: Amount exc. tax = Amount - Tax, Amount inc. tax = Amount.\r\n\r\nTax exclusive means: Amount exc. tax = Amount, Amount inc. tax = Amount + Tax.\r\n(Amount = Price * Quantity, Tax = value of the Tax field)\r\n\r\nThis field is mutually exclusive with TaxZeroRated, TaxOutOfScope and TaxExempt.",
      "example": false
    },
    "taxZeroRated": {
      "type": "boolean",
      "description": "True if the expense is zero-rated for tax purposes. Only supported in UK regions.\r\n\r\nThis field is mutually exclusive with TaxInclusive, TaxOutOfScope and TaxExempt.\r\nWhen true, OutputTax must be 0.",
      "example": false
    },
    "taxOutOfScope": {
      "type": "boolean",
      "description": "True if the expense is out of scope for tax purposes. Only supported in UK regions.\r\n\r\nThis field is mutually exclusive with TaxInclusive, TaxZeroRated and TaxExempt.\r\nWhen true, both Tax and OutputTax must be 0.",
      "example": false
    },
    "taxExempt": {
      "type": "boolean",
      "description": "True if the expense is exempt from tax.\r\n\r\nThis field is mutually exclusive with TaxInclusive, TaxZeroRated and TaxOutOfScope.\r\nWhen true, Tax must be 0 but OutputTax can be greater than 0.",
      "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
    },
    "assignToFirmOwner": {
      "type": "boolean",
      "description": "Assigns expense to a firm owner if true. Ignored if a StaffId is provided.\r\n\r\nNote: If there are multiple firm owners, it is not guaranteed that the same firm owner will be assigned everytime."
    }
  },
  "additionalProperties": false
}