Smokeball · Schema

Smokeball API Schemas

JSON Schema definitions for the Smokeball legal practice management API domain objects.

LegalLaw FirmPractice ManagementMattersContactsDocumentsBillingTrust AccountingTime Tracking
View JSON Schema on GitHub

JSON Schema

smokeball-schemas.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/smokeball/json-schema/smokeball-schemas.json",
  "title": "Smokeball API Schemas",
  "description": "JSON Schema definitions for the Smokeball legal practice management API domain objects.",
  "$defs": {
    "AccountState": {
      "enum": [
        0,
        1
      ],
      "type": "integer",
      "format": "int32"
    },
    "BankAccount": {
      "type": "object",
      "properties": {
        "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
        },
        "id": {
          "type": "string",
          "description": "Unique identifier of the bank account.",
          "nullable": true,
          "example": "b471682e-fa17-4e46-b7fe-9b2b8fdcb3c2"
        },
        "type": {
          "type": "string",
          "description": "The type of the bank account (Operating, Trust, Credit, ControlledMoney).",
          "example": "Trust"
        },
        "status": {
          "allOf": [
            {
              "$ref": "#/components/schemas/AccountState"
            }
          ],
          "description": "The status of the account (Open, Closed)."
        },
        "matter": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The Matter associated to the account. \r\n\r\nApplies to 'ControlledMoney' accounts only.",
          "nullable": true
        },
        "accountType": {
          "type": "integer",
          "description": "The type of the bank account (Operating = 0, Trust = 1, Credit = 2, ControlledMoney = 3).\r\n\r\nThis field is deprecated and scheduled for removal - use the Type field instead.",
          "format": "int32",
          "example": 0
        },
        "accountName": {
          "type": "string",
          "description": "Account Name.",
          "nullable": true,
          "example": "John Smith"
        },
        "accountNumber": {
          "type": "string",
          "description": "Account Number.",
          "nullable": true,
          "example": "10436489"
        },
        "bankName": {
          "type": "string",
          "description": "Bank Name.",
          "nullable": true,
          "example": "Commonwealth Bank"
        },
        "branchNumber": {
          "type": "string",
          "description": "Branch Number.",
          "nullable": true,
          "example": "062201"
        },
        "branchName": {
          "type": "string",
          "description": "Branch Name.",
          "nullable": true,
          "example": "Sydney"
        },
        "balance": {
          "type": "number",
          "description": "Total balance of the bank account.",
          "format": "double",
          "example": 1000
        },
        "contactBalances": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BankAccountContactBalance"
          },
          "description": "List of contact balances.\r\n\r\nIf balances are stored by matter, not by contact, then there can be\r\na contact balance with no contact id. In this case, MatterBalances are used instead.\r\n\r\nOnly supported in US.",
          "nullable": true
        },
        "matterBalances": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BankAccountMatterBalance"
          },
          "description": "List of matter balances.\r\n\r\nA matter balance will be equal to the sum of all contact balances with the same MatterId.",
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankAccountCollection": {
      "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
        },
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BankAccount"
          },
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankAccountContactBalance": {
      "type": "object",
      "properties": {
        "matter": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated matter.",
          "nullable": true
        },
        "contact": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated contact.",
          "nullable": true
        },
        "balance": {
          "type": "number",
          "description": "The balance belonging for the specified matter contact.",
          "format": "double",
          "example": 1000
        },
        "protectedBalance": {
          "type": "number",
          "description": "The protected balance for the specified matter and contact.",
          "format": "double",
          "example": 1000
        },
        "availableBalance": {
          "type": "number",
          "description": "The available balance for the specified matter and contact.\r\n            \r\nThis value is calculated as the total balance minus the protected balance.",
          "format": "double",
          "example": 1000
        },
        "lastUpdated": {
          "type": "string",
          "description": "Date and time that the balance was last updated.",
          "format": "date-time",
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankAccountMatterBalance": {
      "type": "object",
      "properties": {
        "matter": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated matter.",
          "nullable": true
        },
        "balance": {
          "type": "number",
          "description": "The balance belonging for the specified matter.",
          "format": "double",
          "example": 1000
        },
        "protectedBalance": {
          "type": "number",
          "description": "The protected balance for the specified matter.",
          "format": "double",
          "example": 1000
        },
        "availableBalance": {
          "type": "number",
          "description": "The available balance for the specified matter.\r\n            \r\nThis value is calculated as the total balance minus the protected balance.",
          "format": "double",
          "example": 1000
        },
        "unpresentedChequesBalance": {
          "type": "number",
          "description": "Balance of the unpresented cheques for this matter. A cheque is considered \r\nunpresented if the related transaction has not been reconciled. If this balance is not zero,\r\nsome actions on the matter are restricted (e.g. closing or cancelling the matter).",
          "format": "double",
          "example": 0
        },
        "lastUpdated": {
          "type": "string",
          "description": "Date and time that the balance was last updated.",
          "format": "date-time",
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "BankAccountMatterBalancePagedCollection": {
      "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
        },
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BankAccountMatterBalance"
          },
          "nullable": true
        },
        "offset": {
          "type": "integer",
          "format": "int32",
          "nullable": true
        },
        "limit": {
          "type": "integer",
          "format": "int32",
          "nullable": true
        },
        "size": {
          "type": "integer",
          "format": "int64"
        },
        "first": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "nullable": true
        },
        "previous": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "nullable": true
        },
        "next": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "nullable": true
        },
        "last": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "Link": {
      "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
        }
      },
      "additionalProperties": false
    },
    "ProblemDetails": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "nullable": true
        },
        "title": {
          "type": "string",
          "nullable": true
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "nullable": true
        },
        "detail": {
          "type": "string",
          "nullable": true
        },
        "instance": {
          "type": "string",
          "nullable": true
        }
      },
      "additionalProperties": {}
    },
    "ProtectFundsDto": {
      "required": [
        "amount",
        "effectiveDate",
        "matterId"
      ],
      "type": "object",
      "properties": {
        "matterId": {
          "minLength": 1,
          "type": "string",
          "description": "Unique identifier of the associated matter. Required.",
          "example": "da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262"
        },
        "contactId": {
          "type": "string",
          "description": "Unique identifier of the associated contact. Required in US only.",
          "nullable": true,
          "example": "18c05819-c321-4907-800c-d5a608729c5a"
        },
        "reason": {
          "type": "string",
          "description": "Reason for protecting the funds.",
          "nullable": true,
          "example": "Court order requiring protection of funds"
        },
        "effectiveDate": {
          "type": "string",
          "description": "Date of protecting the funds.",
          "format": "date-time"
        },
        "amount": {
          "minimum": 0.01,
          "type": "number",
          "description": "The amount to protect in dollars. Limited to 2 decimal places (cents).",
          "format": "double",
          "example": 100.5
        }
      },
      "additionalProperties": false
    },
    "ProtectedAccountBalance": {
      "type": "object",
      "properties": {
        "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
        },
        "id": {
          "type": "string",
          "description": "Unique identifier of the protection record.",
          "nullable": true,
          "example": "p1"
        },
        "bankAccount": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The bank account where the protection was applied.",
          "nullable": true
        },
        "matter": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated matter.",
          "nullable": true
        },
        "contact": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated contact (US only).",
          "nullable": true
        },
        "amount": {
          "type": "number",
          "description": "The amount protected in dollars. Limited to 2 decimal places (cents).",
          "format": "double",
          "example": 100.5
        },
        "reason": {
          "type": "string",
          "description": "Reason for protecting the funds.",
          "nullable": true,
          "example": "Court order requiring protection of funds"
        },
        "effectiveDate": {
          "type": "string",
          "description": "Date the protection took effect.",
          "format": "date-time",
          "example": "2024-01-15T00:00:00Z"
        },
        "timestamp": {
          "type": "string",
          "description": "Timestamp when the protection was created.",
          "format": "date-time",
          "example": "2024-01-15T10:30:00Z"
        },
        "isProtected": {
          "type": "boolean",
          "description": "True if the funds are currently protected.",
          "example": true
        },
        "userId": {
          "type": "string",
          "description": "Unique identifier of the user who protected the funds.",
          "nullable": true,
          "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        },
        "unprotectingUserId": {
          "type": "string",
          "description": "Unique identifier of the user who unprotected the funds (if applicable).",
          "nullable": true,
          "example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
        },
        "lastUpdated": {
          "type": "string",
          "description": "Timestamp when the protection was last updated (e.g. protected or unprotected).",
          "format": "date-time",
          "example": "2024-01-15T10:30:00Z"
        }
      },
      "additionalProperties": false
    },
    "Requisition": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Requisition ID if requisition requires approval.",
          "nullable": true,
          "example": "18c05819-c321-4907-800c-d5a608729c5a"
        },
        "status": {
          "type": "string",
          "description": "Status of the requisition (e.g., Pending, Approved).",
          "example": "Approved"
        },
        "protectedBalance": {
          "type": "number",
          "description": "Protected balance after the requisition.",
          "format": "double",
          "example": 1000
        },
        "availableBalance": {
          "type": "number",
          "description": "Available balance after the requisition.",
          "format": "double",
          "example": 5000
        },
        "totalBalance": {
          "type": "number",
          "description": "Total balance after the requisition.",
          "format": "double",
          "example": 6000
        },
        "pdfPaymentDetail": {
          "type": "string",
          "description": "Link to the PDF payment detail document.",
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "RequisitionDto": {
      "required": [
        "amount",
        "matterId",
        "payeeId",
        "source"
      ],
      "type": "object",
      "properties": {
        "matterId": {
          "minLength": 1,
          "type": "string",
          "description": "Unique identifier of the associated matter. Required.",
          "example": "da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262"
        },
        "approverUserId": {
          "type": "string",
          "description": "Approver user ID.\r\n\r\nCannot be the same user ID as the user making the requisition request. If provided, must be a valid user ID in the system.\r\n\r\nOptional. If not provided, default approver will be used.",
          "nullable": true,
          "example": "18c05819-c321-4907-800c-d5a608729c5a"
        },
        "payorId": {
          "type": "string",
          "description": "Unique identifier of the Payor/Contact ID. Required in US region only.",
          "nullable": true,
          "example": "18c05819-c321-4907-800c-d5a608729c5a"
        },
        "payeeId": {
          "minLength": 1,
          "type": "string",
          "description": "Unique identifier of the person or organisation being paid. Required.",
          "example": "18c05819-c321-4907-800c-d5a608729c5a"
        },
        "source": {
          "minLength": 1,
          "type": "string",
          "description": "Payment source. Required.\r\nPossible values:\r\n- \"Bank Transfer\" - always available\r\n- \"Bank Check\" - available in AU and UK only\r\n- \"Trust Check\" - available in AU and UK only\r\n- \"Direct Debit\" - available in AU and UK only\r\n- \"Check\" - available in US only",
          "example": "Bank Transfer"
        },
        "reference": {
          "type": "string",
          "description": "Payment reference.",
          "nullable": true,
          "example": "REF123456"
        },
        "amount": {
          "minimum": 0.01,
          "type": "number",
          "description": "The payment amount in dollars. Limited to 2 decimal places (cents).",
          "format": "double",
          "example": 100.5
        },
        "effectiveDate": {
          "type": "string",
          "description": "Date of requisition.",
          "format": "date-time"
        },
        "accountName": {
          "type": "string",
          "description": "Account name. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and transfer is expected to be via Direct Deposit (provide AccountName, BSB, and AccountNumber).",
          "nullable": true,
          "example": "John Doe"
        },
        "bsb": {
          "type": "string",
          "description": "BSB (Bank State Branch). Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and transfer is expected to be via Direct Deposit (provide AccountName, BSB, and AccountNumber).",
          "nullable": true,
          "example": "123456"
        },
        "accountNumber": {
          "type": "string",
          "description": "Account number. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and transfer is expected to be via Direct Deposit (provide AccountName, BSB, and AccountNumber).",
          "nullable": true,
          "example": "12345678"
        },
        "organizationOrCompanyName": {
          "type": "string",
          "description": "Organization or company name. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and transfer is expected to be via BPAY (provide OrganizationOrCompanyName, BillerCode, and BillerReference).",
          "nullable": true,
          "example": "ACME Corporation"
        },
        "billerCode": {
          "type": "string",
          "description": "Biller code. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and transfer is expected to be via BPAY (provide OrganizationOrCompanyName, BillerCode, and BillerReference).",
          "nullable": true,
          "example": "12345"
        },
        "billerReference": {
          "type": "string",
          "description": "Biller reference. Required when Source is an electronic payment ('Bank Transfer' or 'Direct Debit') and transfer is expected to be via BPAY (provide OrganizationOrCompanyName, BillerCode, and BillerReference).",
          "nullable": true,
          "example": "REF123456"
        },
        "reason": {
          "type": "string",
          "description": "Reason for the payment. Free format string.",
          "nullable": true,
          "example": "Payment for services rendered"
        },
        "internalNote": {
          "type": "string",
          "description": "Internal note. Free format string.",
          "nullable": true,
          "example": "Internal note about this payment"
        }
      },
      "additionalProperties": false
    },
    "Transaction": {
      "type": "object",
      "properties": {
        "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
        },
        "id": {
          "type": "string",
          "description": "Unique identifier of the transaction.",
          "nullable": true,
          "example": "64818ee0-c7b4-46ec-862e-514d8b29540a"
        },
        "payorName": {
          "type": "string",
          "description": "The name of the associated contact.",
          "nullable": true,
          "example": "John Smith"
        },
        "matter": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated matter.",
          "nullable": true
        },
        "payor": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The associated contact that paid the funds.",
          "nullable": true
        },
        "bankAccount": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The bank account where the transaction took place.",
          "nullable": true
        },
        "type": {
          "type": "string",
          "description": "The type of the transaction.\r\n\r\nPossible values:\r\n    Deposit, DepositReversal, InvoicePayment, InvoicePaymentReversal, \r\n    VendorPayment, VendorPaymentReversal Transfer, \r\n    BankFees, BankFeesReversal, Interest, InterestReversal.",
          "nullable": true,
          "example": "Deposit"
        },
        "amount": {
          "type": "number",
          "description": "The amount of the transaction in dollars. Limited to 2 decimal places (cents).",
          "format": "double",
          "example": 102.65
        },
        "enteredDate": {
          "type": "string",
          "description": "Date the transaction was entered.",
          "format": "date-time"
        },
        "effectiveDate": {
          "type": "string",
          "description": "Date the transaction took effect.",
          "format": "date-time"
        },
        "reference": {
          "type": "string",
          "description": "Reference for the transaction.",
          "nullable": true
        },
        "reason": {
          "type": "string",
          "description": "Reason for the transaction.",
          "nullable": true
        },
        "description": {
          "type": "string",
          "description": "Description of the transaction.",
          "nullable": true
        },
        "note": {
          "type": "string",
          "description": "Note for the transaction (for internal use).",
          "nullable": true
        },
        "reversed": {
          "type": "boolean",
          "description": "True if this transaction has been reversed.",
          "example": true
        },
        "reversedToTransaction": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The transaction that was created as a result of reversing this transaction.",
          "nullable": true
        },
        "reversedFromTransaction": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Link"
            }
          ],
          "description": "The transaction that was recversed to create this transaction.",
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "TransactionDto": {
      "type": "object",
      "properties": {
        "matterId": {
          "type": "string",
          "description": "Unique identifier of the associated matter.",
          "nullable": true,
          "example": "da4e7fd1-5394-4ca9-b1c6-e18c4e2bf262"
        },
        "payorId": {
          "type": "string",
          "description": "Unique identifier of the associated contact.",
          "nullable": true
        },
        "type": {
          "type": "string",
          "description": "The type of the transaction.\r\n\r\nPossible values: Deposit.",
          "nullable": true,
          "example": "Deposit"
        },
        "amount": {
          "type": "number",
          "description": "The amount of the transaction in dollars. Limited to 2 decimal places (cents).",
          "format": "double",
          "example": 102.65
        },
        "effectiveDate": {
          "type": "string",
          "description": "Date of the transaction.",
          "format": "date-time"
        },
        "reference": {
          "type": "string",
          "description": "Reference for the transaction.",
          "nullable": true
        },
        "reason": {
          "type": "string",
          "description": "Reason for the transaction.",
          "nullable": true
        },
        "description": {
          "type": "string",
          "description": "Description of the transaction.",
          "nullable": true
        },
        "note": {
          "type": "string",
          "description": "Note for the transaction (for internal use).",
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "UnprotectFundsDto": {
      "type": "object",
      "properties": {
        "amount": {
          "minimum": 0.01,
          "type": "number",
          "description": "The amount to unprotect in dollars. Limited to 2 decimal places (cents).\r\n            \r\nThis value must exactly match the originally protected amount.\r\nPartial unprotect is not supported - the full protected amount must be unprotected.\r\n            \r\nIf not specified, the full protected amount will be unprotected automatically.\r\nSpecifying this value provides validation to ensure you're unprotecting the expected amount.",
          "format": "double",
          "nullable": true,
          "example": 50.25
        }
      },
      "additionalProperties": false
    },
    "Activity": {
      "type": "object",
      "properties": {
        "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
        },
        "id": {
          "type": "string",
          "description": "Unique identifier of the activity.",
          "nullable": true,
          "example": "23d2a4bc-8529-462e-8560-dfbf4fa24e49"
        },
        "versionId": {
          "type": "string",
          "description": "Unique version identifier of the activity.",
          "nullable": true,
          "example": "23d2a4bc-8529-462e-8560-dfbf4fa24e49"
        },
        "updatedByUserId": {
          "type": "string",
          "description": "Unique identifier of the user that last updated the activity.",
          "nullable": true,
          "example": "750eb5c5-ac0b-7d11-4997-e0ce9d8896c8"
        },
        "type": {
          "allOf": [
            {
              "$ref": "#/components/schemas/EntryType"
            }
          ],
          "description": "Type of the activity.\r\n\r\nPossible values: Fixed = '0', Time = '1', Expense = '2'",
          "example": 0
        },
        "description": {
          "type": "string",
          "description": "Description of the activity.",
          "nullable": true,
          "example": "Contract review"
        },
        "code": {
          "type": "string",
          "description": "Code of the activity.",
          "nullable": true,
          "example": "CR"
        },
        "isBillable": {
          "type": "boolean",
          "description": "True if the activity is billable.",
          "example": true
        },
        "rateType": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ActivityRateType"
            }
          ],
          "description": "The activity rate type.\r\n\r\nPossible values: UseDefaultStaffRate = '0', OverrideRateForAllStaff = '1', OverrideRatePerStaff = '2'",
          "example": 2
        },
        "rate": {
          "type": "number",
          "description": "Rate of the activity in dollars.\r\n\r\nIf set, rate type must be OverrideRateForAllStaff",
          "format": "double",
          "example": 23.2
        },
        "quantity": {
          "type": "number",
          "description": "Quantity of the activity. This is the default value used when creating an expense or time-based fee.\r\n\r\nFor type 'Expense', this field represents the quantity of the expense in units.\r\nFor type 'Time', this field represents the duration of in minutes, divided by 100,\r\ne.g. for 1 hour duration, quantity is 0.6, which is 60 minutes divided by 100.\r\n\r\nApplies only for 'Time' and 'Expense' types. Not applicable for activity type 'Fixed'.",
          "format": "double",
          "example": 0.6
        },
        "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.",
          "example": true
        },
        "taxExempt": {
          "type": "boolean",
          "description": "Sets tax rate to 0 for the entry (e.g. expense).",
          "example": true
        },
        "taxZeroRated": {
          "type": "boolean",
          "description": "Indicates the entry is zero-rated for tax purposes. Mutually exclusive with other tax settings.",
          "example": false
        },
        "taxOutOfScope": {
          "type": "boolean",
          "description": "Indicates the entry is out of scope for tax purposes. Mutually exclusive with other tax settings.",
          "example": false
        },
        "isDeleted": {
          "type": "boolean",
          "description": "True if the activity is deleted.",
          "example": true
        },
        "inputTaxRate": {
          "type": "number",
          "description": "Input tax rate of the activity percentage accurate to two decimal places.",
          "format": "double",
          "nullable": true,
          "example": 45.63
        },
        "outputTaxRate": {
          "type": "number",
          "description": "Output tax rate of the activity percentage accurate to two decimal places.",
          "format": "double",
          "nullable": true,
          "example": 45.63
        

# --- truncated at 32 KB (511 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/smokeball/refs/heads/main/json-schema/smokeball-schemas.json