Apideck · Schema

ExpenseReport

IntegrationsUnified API

Properties

Name Type Description
id object
display_id object
number string The expense report number.
title string Title or purpose of the expense report.
employee object The employee who submitted the expense report.
status string The status of the expense report.
transaction_date object
posting_date string The date the expense report was posted to the general ledger.
due_date string Date when reimbursement is due.
currency object
currency_rate object
sub_total object
total_tax object
total_amount number Total amount of all expense lines including tax.
reimbursable_amount number Total reimbursable amount (may differ from total if some expenses are non-reimbursable).
memo string The memo of the expense report.
department object
location object
account object
accounting_period object The accounting period the expense report is posted to.
line_items array Expense line items linked to this expense report.
subsidiary object
tracking_categories object
tax_inclusive object
approved_by object The person who approved the expense report.
custom_fields array
custom_mappings object
row_version object
updated_by object
created_by object
updated_at object
created_at object
pass_through object
View JSON Schema on GitHub

JSON Schema

apideck-expensereport-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ExpenseReport",
  "title": "ExpenseReport",
  "type": "object",
  "x-apideck-schema-id": "ExpenseReport",
  "additionalProperties": false,
  "x-apideck-weights": {
    "id": "critical",
    "display_id": "high",
    "number": "medium",
    "title": "high",
    "employee": "critical",
    "status": "critical",
    "transaction_date": "critical",
    "posting_date": "low",
    "due_date": "medium",
    "currency": "high",
    "currency_rate": "edge-case",
    "sub_total": "high",
    "total_tax": "high",
    "total_amount": "critical",
    "reimbursable_amount": "medium",
    "memo": "medium",
    "department": "medium",
    "location": "medium",
    "account": "medium",
    "accounting_period": "low",
    "line_items": "critical",
    "subsidiary": "medium",
    "tracking_categories": "medium",
    "tax_inclusive": "edge-case",
    "approved_by": "low",
    "custom_fields": "medium",
    "custom_mappings": "low",
    "row_version": "low",
    "updated_by": "edge-case",
    "created_by": "edge-case",
    "updated_at": "medium",
    "created_at": "medium",
    "pass_through": "low"
  },
  "required": [
    "employee",
    "transaction_date",
    "line_items"
  ],
  "x-apideck-strict-required": [
    "id",
    "employee",
    "transaction_date",
    "line_items",
    "status",
    "total_amount"
  ],
  "properties": {
    "id": {
      "$ref": "#/components/schemas/Id"
    },
    "display_id": {
      "$ref": "#/components/schemas/DisplayId"
    },
    "number": {
      "type": "string",
      "title": "Number",
      "description": "The expense report number.",
      "example": "ER-001",
      "nullable": true
    },
    "title": {
      "type": "string",
      "title": "Title",
      "description": "Title or purpose of the expense report.",
      "example": "Q1 Business Travel",
      "nullable": true
    },
    "employee": {
      "type": "object",
      "title": "Employee",
      "description": "The employee who submitted the expense report.",
      "properties": {
        "id": {
          "type": "string",
          "title": "Employee ID",
          "description": "A unique identifier for the employee.",
          "example": "12345"
        },
        "display_name": {
          "type": "string",
          "title": "Employee Display Name",
          "description": "The display name of the employee.",
          "example": "John Doe",
          "nullable": true
        }
      }
    },
    "status": {
      "type": "string",
      "title": "Status",
      "description": "The status of the expense report.",
      "x-apideck-enum-id": "expense_reports.status",
      "enum": [
        "draft",
        "submitted",
        "approved",
        "reimbursed",
        "rejected",
        "reversed",
        "voided"
      ],
      "example": "submitted",
      "nullable": true
    },
    "transaction_date": {
      "$ref": "#/components/schemas/TransactionDate"
    },
    "posting_date": {
      "type": "string",
      "title": "Posting Date",
      "description": "The date the expense report was posted to the general ledger.",
      "format": "date",
      "example": "2024-06-01",
      "nullable": true
    },
    "due_date": {
      "type": "string",
      "title": "Due Date",
      "description": "Date when reimbursement is due.",
      "format": "date",
      "example": "2024-06-15",
      "nullable": true
    },
    "currency": {
      "$ref": "#/components/schemas/Currency"
    },
    "currency_rate": {
      "$ref": "#/components/schemas/CurrencyRate"
    },
    "sub_total": {
      "$ref": "#/components/schemas/SubTotal"
    },
    "total_tax": {
      "$ref": "#/components/schemas/TotalTax"
    },
    "total_amount": {
      "type": "number",
      "title": "Total Amount",
      "description": "Total amount of all expense lines including tax.",
      "example": 1250.75,
      "nullable": true
    },
    "reimbursable_amount": {
      "type": "number",
      "title": "Reimbursable Amount",
      "description": "Total reimbursable amount (may differ from total if some expenses are non-reimbursable).",
      "example": 1100,
      "nullable": true
    },
    "memo": {
      "type": "string",
      "title": "Memo",
      "description": "The memo of the expense report.",
      "example": "Business travel expenses for Q1 client meetings",
      "nullable": true
    },
    "department": {
      "$ref": "#/components/schemas/LinkedDepartment"
    },
    "location": {
      "$ref": "#/components/schemas/LinkedLocation"
    },
    "account": {
      "$ref": "#/components/schemas/LinkedLedgerAccount"
    },
    "accounting_period": {
      "type": "object",
      "title": "Accounting Period",
      "description": "The accounting period the expense report is posted to.",
      "nullable": true,
      "properties": {
        "id": {
          "type": "string",
          "title": "Accounting Period ID",
          "description": "A unique identifier for the accounting period.",
          "example": "12345"
        },
        "name": {
          "type": "string",
          "title": "Accounting Period Name",
          "description": "The name of the accounting period.",
          "example": "Q1 2024",
          "nullable": true
        }
      }
    },
    "line_items": {
      "type": "array",
      "minItems": 1,
      "description": "Expense line items linked to this expense report.",
      "items": {
        "$ref": "#/components/schemas/ExpenseReportLineItem"
      }
    },
    "subsidiary": {
      "$ref": "#/components/schemas/LinkedSubsidiary"
    },
    "tracking_categories": {
      "$ref": "#/components/schemas/LinkedTrackingCategories"
    },
    "tax_inclusive": {
      "$ref": "#/components/schemas/TaxInclusive"
    },
    "approved_by": {
      "type": "object",
      "title": "Approved By",
      "description": "The person who approved the expense report.",
      "nullable": true,
      "properties": {
        "id": {
          "type": "string",
          "title": "Approver ID",
          "description": "A unique identifier for the approver.",
          "example": "12345"
        },
        "display_name": {
          "type": "string",
          "title": "Approver Display Name",
          "description": "The display name of the approver.",
          "example": "Jane Smith",
          "nullable": true
        }
      }
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CustomField"
      }
    },
    "custom_mappings": {
      "$ref": "#/components/schemas/CustomMappings"
    },
    "row_version": {
      "$ref": "#/components/schemas/RowVersion"
    },
    "updated_by": {
      "$ref": "#/components/schemas/UpdatedBy"
    },
    "created_by": {
      "$ref": "#/components/schemas/CreatedBy"
    },
    "updated_at": {
      "$ref": "#/components/schemas/UpdatedAt"
    },
    "created_at": {
      "$ref": "#/components/schemas/CreatedAt"
    },
    "pass_through": {
      "$ref": "#/components/schemas/PassThroughBody"
    }
  }
}