{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/Expense", "title": "Expense", "type": "object", "x-apideck-schema-id": "Expense", "additionalProperties": false, "x-apideck-weights": { "id": "critical", "display_id": "high", "transaction_date": "critical", "account_id": "critical", "account": "critical", "supplier_id": "high", "supplier": "high", "line_items": "high", "currency": "high", "type": "high", "number": "medium", "memo": "medium", "total_amount": "medium", "sub_total": "high", "total_tax": "high", "tax_inclusive": "medium", "tracking_categories": "medium", "currency_rate": "edge-case", "company_id": "edge-case", "location": "medium", "department_id": "medium", "department": "medium", "payment_type": "medium", "tax_rate": "medium", "reference": "medium", "custom_fields": "medium", "source_document_url": "low", "custom_mappings": "low", "pass_through": "low", "status": "medium", "updated_at": "medium", "created_at": "medium", "updated_by": "low", "created_by": "low", "row_version": "low" }, "required": [ "transaction_date", "line_items" ], "x-apideck-strict-required": [ "transaction_date", "line_items" ], "x-apideck-strict-any-of": [ { "required": [ "account_id" ] }, { "required": [ "account" ] } ], "properties": { "id": { "$ref": "#/components/schemas/Id" }, "display_id": { "$ref": "#/components/schemas/DisplayId" }, "number": { "type": "string", "title": "Number", "description": "Number.", "example": "OIT00546", "nullable": true }, "transaction_date": { "$ref": "#/components/schemas/TransactionDate" }, "account_id": { "title": "Account ID", "description": "The unique identifier for the ledger account that this expense should be credited to. Deprecated, use account instead.", "type": "string", "example": "123456", "deprecated": true }, "account": { "$ref": "#/components/schemas/LinkedFinancialAccount" }, "supplier_id": { "type": "string", "title": "Supplier ID", "description": "The ID of the supplier this entity is linked to. Deprecated, use supplier instead.", "example": "12345", "deprecated": true }, "supplier": { "$ref": "#/components/schemas/LinkedSupplier" }, "company_id": { "$ref": "#/components/schemas/AccountingCompanyId" }, "location": { "$ref": "#/components/schemas/LinkedLocation" }, "department_id": { "$ref": "#/components/schemas/DepartmentId" }, "department": { "$ref": "#/components/schemas/LinkedDepartment" }, "payment_type": { "type": "string", "title": "Payment type", "description": "The type of payment for the expense.", "x-apideck-enum-id": "expenses.payment_type", "enum": [ "cash", "check", "credit_card", "other" ], "example": "cash", "nullable": true }, "currency": { "$ref": "#/components/schemas/Currency" }, "currency_rate": { "$ref": "#/components/schemas/CurrencyRate" }, "type": { "type": "string", "title": "Expense type", "description": "The type of expense.", "x-apideck-enum-id": "expenses.type", "enum": [ "expense", "refund" ], "example": "expense", "nullable": true }, "memo": { "type": "string", "title": "Memo", "description": "The memo of the expense.", "example": "For travel expenses incurred on 2024-05-15", "nullable": true }, "tax_rate": { "$ref": "#/components/schemas/LinkedTaxRate" }, "tax_inclusive": { "$ref": "#/components/schemas/TaxInclusive" }, "sub_total": { "$ref": "#/components/schemas/SubTotal" }, "total_tax": { "$ref": "#/components/schemas/TotalTax" }, "total_amount": { "type": "number", "title": "Total amount", "description": "The total amount of the expense line item.", "example": 275, "nullable": true }, "tracking_categories": { "$ref": "#/components/schemas/LinkedTrackingCategories" }, "line_items": { "type": "array", "minItems": 1, "description": "Expense line items linked to this expense.", "items": { "$ref": "#/components/schemas/ExpenseLineItem" } }, "reference": { "$ref": "#/components/schemas/Reference" }, "source_document_url": { "type": "string", "title": "Source document URL", "description": "URL link to a source document - shown as 'Go to [appName]' in the downstream app. Currently only supported for Xero.", "example": "https://www.invoicesolution.com/expense/123456", "nullable": true }, "custom_fields": { "type": "array", "items": { "$ref": "#/components/schemas/CustomField" } }, "custom_mappings": { "$ref": "#/components/schemas/CustomMappings" }, "status": { "type": "string", "title": "Status", "description": "Expense status", "example": "draft", "x-apideck-enum-id": "expenses.status", "enum": [ "draft", "posted", "voided" ], "nullable": true }, "updated_at": { "$ref": "#/components/schemas/UpdatedAt" }, "created_at": { "$ref": "#/components/schemas/CreatedAt" }, "row_version": { "$ref": "#/components/schemas/RowVersion" }, "updated_by": { "$ref": "#/components/schemas/UpdatedBy" }, "created_by": { "$ref": "#/components/schemas/CreatedBy" }, "pass_through": { "$ref": "#/components/schemas/PassThroughBody" } } }