Xero Assets API

API for managing fixed assets in Xero. Supports registering and depreciating assets, managing asset types, and running depreciation calculations. Enables automated fixed asset lifecycle management integrated with Xero accounting.

OpenAPI Specification

xero-assets-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 11.1.0
  title: Xero Assets API
  description: The Assets API exposes fixed asset related functions of the Xero Accounting application and can be used for a variety of purposes such as creating assets, retrieving asset valuations etc.
  termsOfService: https://developer.xero.com/xero-developer-platform-terms-conditions/
  contact:
    name: Xero Platform Team
    email: [email protected]
    url: https://developer.xero.com
  license:
    name: MIT
    url: https://github.com/XeroAPI/Xero-OpenAPI/blob/master/LICENSE
servers:
  - description: Xero API servers
    url: https://api.xero.com/assets.xro/1.0
paths:
  /Assets:
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    get:
      security:
        - OAuth2:
            - assets
            - assets.read
      tags:
        - Asset
      summary: Xero searches fixed asset
      operationId: getAssets
      description: By passing in the appropriate options, you can search for available fixed asset in the system
      parameters:
        - name: status
          in: query
          description: Required when retrieving a collection of assets. See Asset Status Codes
          schema:
            $ref: "#/components/schemas/AssetStatusQueryParam"
          required: true
        - name: page
          in: query
          description: Results are paged. This specifies which page of the results to return. The default page is 1.
          schema:
            type: integer
            example: 1
        - name: pageSize
          x-snake: page_size
          in: query
          description: The number of records returned per page. By default the number of records returned is 10.
          schema:
            type: integer
            example: 5
        - name: orderBy
          x-snake: order_by
          in: query
          description: Requests can be ordered by AssetType, AssetName, AssetNumber, PurchaseDate and PurchasePrice. If the asset status is DISPOSED it also allows DisposalDate and DisposalPrice.
          schema:
            type: string
            enum:
              - AssetType
              - AssetName
              - AssetNumber
              - PurchaseDate
              - PurchasePrice
              - DisposalDate
              - DisposalPrice
            example: AssetName
        - name: sortDirection
          x-snake: sort_direction
          in: query
          description: ASC or DESC
          schema:
            type: string
            enum:
              - asc
              - desc
            example: ASC
        - name: filterBy
          x-snake: filter_by
          in: query
          description: A string that can be used to filter the list to only return assets containing the text. Checks it against the AssetName, AssetNumber, Description and AssetTypeName fields.
          schema:
            type: string
            example: Company Car
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Assets"
              example:
                pagination:
                  page: 1
                  pageSize: 10
                  pageCount: 2
                  itemCount: 11
                  links:
                    first:
                      href: http://asset.favorit.xero.com/v1/assets?status=DRAFT&page=1
                    next:
                      href: http://asset.favorit.xero.com/v1/assets?status=DRAFT&page=2
                    last:
                      href: http://asset.favorit.xero.com/v1/assets?status=DRAFT&page=2
                items:
                  - assetId: 68f17094-af97-4f1b-b36b-013b45b6ad3c
                    assetName: Computer47822
                    assetNumber: "123478074"
                    purchaseDate: 2020-01-01T00:00:00
                    purchasePrice: 100.0000
                    disposalPrice: 0.0
                    assetStatus: Draft
                    trackingItems: []
                    bookDepreciationSetting:
                      depreciableObjectId: 68f17094-af97-4f1b-b36b-013b45b6ad3c
                      depreciableObjectType: Asset
                      bookEffectiveDateOfChangeId: 5da77739-7f22-4109-b0a0-67480fb89af0
                      depreciationMethod: StraightLine
                      averagingMethod: ActualDays
                      depreciationRate: 0.50
                      depreciationCalculationMethod: None
                    bookDepreciationDetail:
                      depreciationStartDate: 2020-01-02T00:00:00
                      priorAccumDepreciationAmount: 0.000000
                      currentAccumDepreciationAmount: 0.000000
                      currentCapitalGain: 0.000000
                      currentGainLoss: 0.000000
                    taxDepreciationSettings: []
                    taxDepreciationDetails: []
                    canRollback: true
                    accountingBookValue: 100.000000
                    taxValues: []
                    isDeleteEnabledForDate: false
                  - assetId: 52ea3adf-f04a-4577-8fd2-43c52a256bd5
                    assetName: Computer4148
                    assetNumber: "123466620"
                    purchaseDate: 2020-01-01T00:00:00
                    purchasePrice: 100.0000
                    disposalPrice: 0.0
                    assetStatus: Draft
                    trackingItems: []
                    bookDepreciationSetting:
                      depreciableObjectId: 52ea3adf-f04a-4577-8fd2-43c52a256bd5
                      depreciableObjectType: Asset
                      bookEffectiveDateOfChangeId: c0d5280f-28b6-4329-b5b7-36e08c662010
                      depreciationMethod: StraightLine
                      averagingMethod: ActualDays
                      depreciationRate: 0.50
                      depreciationCalculationMethod: None
                    bookDepreciationDetail:
                      depreciationStartDate: 2020-01-02T00:00:00
                      priorAccumDepreciationAmount: 0.000000
                      currentAccumDepreciationAmount: 0.000000
                      currentCapitalGain: 0.000000
                      currentGainLoss: 0.000000
                    taxDepreciationSettings: []
                    taxDepreciationDetails: []
                    canRollback: true
                    accountingBookValue: 100.000000
                    taxValues: []
                    isDeleteEnabledForDate: false
        "400":
          description: bad input parameter
    post:
      security:
        - OAuth2:
            - assets
      tags:
        - Asset
      summary: Xero adds a fixed asset
      parameters:
        - $ref: "#/components/parameters/idempotencyKey"
      operationId: createAsset
      x-hasAssetsValidationError: true
      x-example:
        - asset:
          is_object: true
          key: asset
          keyPascal: Asset
        - assetName:
          key: assetname
          keyPascal: assetName
          keySnake: asset_name
          csharp: AssetName
          default: Other Computer
          object: asset
        - assetNumber:
          key: assetnumber
          keyPascal: assetNumber
          keySnake: asset_number
          csharp: AssetNumber
          default: FA-00210
          object: asset
        - status:
          is_last: true
          nonString: true
          key: status
          keyPascal: Status
          default: Draft
          php: XeroAPI\XeroPHP\Models\Asset\AssetStatus::Draft
          node: Asset.StatusEnum.DRAFT
          ruby: XeroRuby::Asset::AssetStatus::DRAFT
          python_string: DRAFT
          java: com.xero.models.assets.AssetStatus.DRAFT
          csharp: AssetStatus.Draft
          object: asset
      description: Adds an asset to the system
      responses:
        "200":
          description: return single object - create new asset
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Asset"
              example:
                assetId: 2257c64a-77ca-444c-a5ea-fa9a588c7039
                assetName: Computer74863
                assetNumber: "123477544"
                purchaseDate: 2020-01-01T00:00:00
                purchasePrice: 100.0000
                disposalPrice: 23.2300
                assetStatus: Draft
                trackingItems: []
                bookDepreciationSetting:
                  depreciableObjectId: 2257c64a-77ca-444c-a5ea-fa9a588c7039
                  depreciableObjectType: Asset
                  bookEffectiveDateOfChangeId: b58a2ace-1213-4681-9f11-2e30f57b5b8c
                  depreciationMethod: StraightLine
                  averagingMethod: ActualDays
                  depreciationRate: 0.50
                  depreciationCalculationMethod: None
                bookDepreciationDetail:
                  depreciationStartDate: 2020-01-02T00:00:00
                  priorAccumDepreciationAmount: 0.000000
                  currentAccumDepreciationAmount: 0.000000
                  currentCapitalGain: 0.000000
                  currentGainLoss: 0.000000
                taxDepreciationSettings: []
                taxDepreciationDetails: []
                canRollback: true
                accountingBookValue: 76.770000
                taxValues: []
                isDeleteEnabledForDate: true
        "400":
          description: invalid input, object invalid
          content:
            application/json:
              example:
                resourceValidationErrors: []
                fieldValidationErrors:
                  - fieldName: BookDepreciationSetting.DepreciationRate
                    valueProvided: ""
                    localisedMessage: Can''t have both Depreciation Rate and Effective Life
                    type: http://common.service.xero.com/errors/validation/field
                    title: Validation Error
                    detail: Can''t have both Depreciation Rate and Effective Life
                type: http://common.service.xero.com/errors/validation
                title: The resource update failed validation.
                detail: Validation Errors
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Asset"
            example:
              assetName: Computer74863
              assetNumber: "123477544"
              purchaseDate: "2020-01-01"
              purchasePrice: 100.0
              disposalPrice: 23.23
              assetStatus: Draft
              bookDepreciationSetting:
                depreciationMethod: StraightLine
                averagingMethod: ActualDays
                depreciationRate: 0.5
                depreciationCalculationMethod: None
              bookDepreciationDetail:
                currentCapitalGain: 5.32
                currentGainLoss: 3.88
                depreciationStartDate: "2020-01-02"
                costLimit: 100.0
                currentAccumDepreciationAmount: 2.25
              AccountingBookValue: 99.5
        description: Fixed asset you are creating
  /Assets/{id}:
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    get:
      security:
        - OAuth2:
            - assets
            - assets.read
      tags:
        - Asset
      summary: Xero Retrieves fixed asset by id
      operationId: getAssetById
      description: |
        By passing in the appropriate asset id, you can search for
        a specific fixed asset in the system
      parameters:
        - name: id
          in: path
          required: true
          description: fixed asset id for single object
          schema:
            type: string
            format: uuid
            example: 00000000-0000-0000-0000-000000000000
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Asset"
              example:
                assetId: 68f17094-af97-4f1b-b36b-013b45b6ad3c
                assetName: Computer47822
                assetNumber: "123478074"
                purchaseDate: 2020-01-01T00:00:00
                purchasePrice: 100.0000
                disposalPrice: 23.0000
                assetStatus: Draft
                trackingItems: []
                bookDepreciationSetting:
                  depreciableObjectId: 68f17094-af97-4f1b-b36b-013b45b6ad3c
                  depreciableObjectType: Asset
                  bookEffectiveDateOfChangeId: 5da77739-7f22-4109-b0a0-67480fb89af0
                  depreciationMethod: StraightLine
                  averagingMethod: ActualDays
                  depreciationRate: 0.50
                  depreciationCalculationMethod: None
                bookDepreciationDetail:
                  depreciationStartDate: 2020-01-02T00:00:00
                  priorAccumDepreciationAmount: 0.000000
                  currentAccumDepreciationAmount: 0.000000
                  currentCapitalGain: 0.000000
                  currentGainLoss: 0.000000
                taxDepreciationSettings: []
                taxDepreciationDetails: []
                canRollback: true
                metaData:
                  bookDepreciationDetailsCanChange: true
                  taxDepreciationDetailsCanChange: true
                accountingBookValue: 77.000000
                taxValues: []
                isDeleteEnabledForDate: true
        "400":
          description: bad input parameter
  /AssetTypes:
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    get:
      security:
        - OAuth2:
            - assets
            - assets.read
      tags:
        - Asset
      summary: Xero searches fixed asset types
      operationId: getAssetTypes
      description: By passing in the appropriate options, you can search for available fixed asset types in the system
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AssetType"
              example:
                - assetTypeId: 710255c6-d2ed-4463-b992-06c8685add5e
                  assetTypeName: Computer Equipment
                  fixedAssetAccountId: 37c35de7-8df0-44bf-8e7c-f1f67cf6a278
                  depreciationExpenseAccountId: 0fbd1820-9dd0-454a-9515-6ec076a84cf7
                  accumulatedDepreciationAccountId: 512eac06-6894-47cd-b421-673b4ca2693a
                  bookDepreciationSetting:
                    depreciableObjectId: 710255c6-d2ed-4463-b992-06c8685add5e
                    depreciableObjectType: AssetType
                    bookEffectiveDateOfChangeId: 39b9c2e9-62b1-4efc-ab75-fa9152ffaa5f
                    depreciationMethod: StraightLine
                    averagingMethod: FullMonth
                    depreciationRate: 25.00
                    depreciationCalculationMethod: None
                  taxDepreciationSettings: []
                  locks: 0
                  lockPrivateUseAccount: false
                - assetTypeId: 1a398a67-9d9d-4783-8689-14a8efce89d9
                  assetTypeName: Machinery97704
                  fixedAssetAccountId: 5c93f577-c48f-44cd-8593-01489e319c2b
                  depreciationExpenseAccountId: adc14376-c960-43f0-b7f3-4063e5098039
                  accumulatedDepreciationAccountId: 9195cadd-8645-41e6-9f67-7bcd421defe8
                  bookDepreciationSetting:
                    depreciableObjectId: 1a398a67-9d9d-4783-8689-14a8efce89d9
                    depreciableObjectType: AssetType
                    bookEffectiveDateOfChangeId: 6d09a96d-7768-4f28-95e8-c9ac870fe36e
                    depreciationMethod: DiminishingValue100
                    averagingMethod: ActualDays
                    depreciationRate: 40.00
                    depreciationCalculationMethod: None
                  taxDepreciationSettings: []
                  locks: 0
                  lockPrivateUseAccount: false
        "400":
          description: bad input parameter
    post:
      security:
        - OAuth2:
            - assets
      tags:
        - Asset
      summary: Xero adds a fixed asset type
      parameters:
        - $ref: "#/components/parameters/idempotencyKey"
      operationId: createAssetType
      x-example:
        - bookDepreciationSetting:
          is_object: true
          key: bookDepreciationSetting
          keyPascal: BookDepreciationSetting
          keySnake: book_depreciation_setting
        - depreciationMethod:
          key: depreciationMethod
          keyPascal: DepreciationMethod
          keySnake: depreciation_method
          object: bookDepreciationSetting
          default: DiminishingValue100
        - averagingMethod:
          key: averagingMethod
          keyPascal: AveragingMethod
          keySnake: averaging_method
          object: bookDepreciationSetting
          default: ActualDays
        - depreciationRate:
          nonString: true
          key: depreciationRate
          keyPascal: DepreciationRate
          keySnake: deprecitation_rate
          object: bookDepreciationSetting
          default: 40
        - depreciationCalculationMethod:
          key: depreciationCalculationMethod
          keyPascal: DepreciationCalculationMethod
          keySnake: depreciation_calculation_method
          object: bookDepreciationSetting
          default: None
          is_last: true
        - assetType:
          key: assetType
          keyPascal: AssetType
          keySnake: asset_type
          x-snake: asset_type
          is_object: true
        - assetTypeName:
          key: assetTypeName
          keyPascal: AssetTypeName
          keySnake: asset_type_name
          object: assetType
          default: Computer Equipment
        - fixedAssetAccountId:
          is_uuid: true
          key: fixedAssetAccountId
          keyPascal: FixedAssetAccountId
          keySnake: fixed_asset_account_id
          object: assetType
          default: 00000000-0000-0000-0000-000000000000
        - depreciationExpenseAccountId:
          is_uuid: true
          key: depreciationExpenseAccountId
          keyPascal: DepreciationExpenseAccountId
          keySnake: depreciation_expense_account_id
          object: assetType
          default: 00000000-0000-0000-0000-000000000000
        - accumulatedDepreciationAccountId:
          is_uuid: true
          key: accumulatedDepreciationAccountId
          keyPascal: AccumulatedDepreciationAccountId
          keySnake: accumulated_depreciation_account_id
          object: assetType
          default: 00000000-0000-0000-0000-000000000000
        - set_bookDepreciationSetting:
          is_last: true
          is_variable: true
          nonString: true
          key: bookDepreciationSetting
          keyPascal: BookDepreciationSetting
          keySnake: book_depreciation_setting
          default: bookDepreciationSetting
          python: book_depreciation_setting
          ruby: book_depreciation_setting
          object: assetType
      x-hasAssetsValidationError: true
      description: Adds an fixed asset type to the system
      responses:
        "200":
          description: results single object -  created fixed type
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssetType"
              example:
                assetTypeId: 85509b5d-308e-420d-9532-b85105058916
                assetTypeName: Machinery11004
                fixedAssetAccountId: 3d8d063a-c148-4bb8-8b3c-a5e2ad3b1e82
                depreciationExpenseAccountId: d1602f69-f900-4616-8d34-90af393fa368
                accumulatedDepreciationAccountId: 9195cadd-8645-41e6-9f67-7bcd421defe8
                bookDepreciationSetting:
                  depreciableObjectId: 00000000-0000-0000-0000-000000000000
                  depreciableObjectType: None
                  depreciationMethod: DiminishingValue100
                  averagingMethod: ActualDays
                  depreciationRate: 0.05
                  depreciationCalculationMethod: None
                locks: 0
                lockPrivateUseAccount: false
        "400":
          description: invalid input, object invalid
          content:
            application/json:
              example:
                resourceValidationErrors: []
                fieldValidationErrors:
                  - fieldName: FixedAssetAccountId
                    valueProvided: ""
                    localisedMessage: Fixed Asset Account Id is invalid
                    type: http://common.service.xero.com/errors/validation/field
                    title: Validation Error
                    detail: Fixed Asset Account Id is invalid
                  - fieldName: DepreciationExpenseAccountId
                    valueProvided: ""
                    localisedMessage: Depreciation Expense Account Id is invalid
                    type: http://common.service.xero.com/errors/validation/field
                    title: Validation Error
                    detail: Depreciation Expense Account Id is invalid
                type: http://common.service.xero.com/errors/validation
                title: The resource update failed validation.
                detail: Validation Errors
        "409":
          description: a type already exists
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssetType"
            example:
              assetTypeName: Machinery11004
              fixedAssetAccountId: 3d8d063a-c148-4bb8-8b3c-a5e2ad3b1e82
              depreciationExpenseAccountId: d1602f69-f900-4616-8d34-90af393fa368
              accumulatedDepreciationAccountId: 9195cadd-8645-41e6-9f67-7bcd421defe8
              bookDepreciationSetting:
                depreciationMethod: DiminishingValue100
                averagingMethod: ActualDays
                depreciationRate: 0.05
                depreciationCalculationMethod: None
        description: Asset type to add
  /Settings:
    parameters:
      - $ref: "#/components/parameters/requiredHeader"
    get:
      security:
        - OAuth2:
            - assets
            - assets.read
      tags:
        - Asset
      summary: Xero searches fixed asset settings
      operationId: getAssetSettings
      description: By passing in the appropriate options, you can search for available fixed asset types in the system
      responses:
        "200":
          description: search results matching criteria
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Setting"
              example:
                assetNumberPrefix: FA-
                assetNumberSequence: "0007"
                assetStartDate: 2016-01-01T00:00:00
                optInForTax: false
        "400":
          description: bad input parameter
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      description: For more information
      flows:
        authorizationCode:
          authorizationUrl: https://login.xero.com/identity/connect/authorize
          tokenUrl: https://identity.xero.com/connect/token
          scopes:
            email: Grant read-only access to your email
            openid: Grant read-only access to your open id
            profile: your profile information
            assets: Grant read-write access to fixed assets
            assets.read: Grant read-only access to fixed assets
  parameters:
    requiredHeader:
      in: header
      name: xero-tenant-id
      x-snake: xero_tenant_id
      description: Xero identifier for Tenant
      example: YOUR_XERO_TENANT_ID
      schema:
        type: string
      required: true
    idempotencyKey:
      in: header
      name: Idempotency-Key
      x-snake: idempotency_key
      description: This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
      example: KEY_VALUE
      schema:
        type: string
  schemas:
    Assets:
      type: object
      properties:
        pagination:
          $ref: "#/components/schemas/Pagination"
        items:
          type: array
          items:
            $ref: "#/components/schemas/Asset"
    Pagination:
      properties:
        page:
          type: integer
          example: 1
        pageSize:
          type: integer
          example: 10
        pageCount:
          type: integer
          example: 1
        itemCount:
          type: integer
          example: 2
    Asset:
      type: object
      required:
        - assetName
      properties:
        assetId:
          type: string
          format: uuid
          description: The Xero-generated Id for the asset
          example: 3b5b3a38-5649-495f-87a1-14a4e5918634
        assetName:
          type: string
          description: The name of the asset
          example: Awesome Truck 3
        assetTypeId:
          type: string
          format: uuid
          description: The Xero-generated Id for the asset type
          example: 3b5b3a38-5649-495f-87a1-14a4e5918634
        assetNumber:
          type: string
          description: Must be unique.
          example: FA-0013
        purchaseDate:
          type: string
          format: date
          description: The date the asset was purchased YYYY-MM-DD
          example: 2015-07-01T00:00:00
        purchasePrice:
          type: number
          format: double
          x-is-money: true
          description: The purchase price of the asset
          example: "1000.0000"
        disposalDate:
          type: string
          format: date
          description: The date the asset was disposed
          example: 2020-07-01T00:00:00
        disposalPrice:
          type: number
          format: double
          x-is-money: true
          description: The price the asset was disposed at
          example: "1.0000"
        assetStatus:
          $ref: "#/components/schemas/AssetStatus"
        warrantyExpiryDate:
          type: string
          description: The date the asset’s warranty expires (if needed) YYYY-MM-DD
          example: ca4c6b39-4f4f-43e8-98da-5e1f350a6694
        serialNumber:
          type: string
          description: The asset's serial number
          example: ca4c6b39-4f4f-43e8-98da-5e1f350a6694
        bookDepreciationSetting:
          $ref: "#/components/schemas/BookDepreciationSetting"
        bookDepreciationDetail:
          $ref: "#/components/schemas/BookDepreciationDetail"
        canRollback:
          type: boolean
          description: Boolean to indicate whether depreciation can be rolled back for this asset individually. This is true if it doesn't have 'legacy' journal entries and if there is no lock period that would prevent this asset from rolling back.
          example: true
        accountingBookValue:
          type: number
          format: double
          x-is-money: true
          description: The accounting value of the asset
          example: 0
        isDeleteEnabledForDate:
          type: boolean
          description: Boolean to indicate whether delete is enabled
          example: true
    AssetStatus:
      type: string
      description: See Asset Status Codes.
      example: Draft
      enum:
        - Draft
        - Registered
        - Disposed
    AssetStatusQueryParam:
      type: string
      description: See Asset Status Codes.
      example: DRAFT
      enum:
        - DRAFT
        - REGISTERED
        - DISPOSED
    AssetType:
      type: object
      x-snake: asset_type
      required:
        - assetTypeName
        - bookDepreciationSetting
      properties:
        assetTypeId:
          type: string
          format: uuid
          example: 5da209c5-5e19-4a43-b925-71b776c49ced
          description: Xero generated unique identifier for asset types
        assetTypeName:
          type: string
          example: Computer Equipment
          description: The name of the asset type
        fixedAssetAccountId:
          type: string
          format: uuid
          example: 24e260f1-bfc4-4766-ad7f-8a8ce01de879
          description: The asset account for fixed assets of this type
        depreciationExpenseAccountId:
          type: string
          format: uuid
          example: b23fc79b-d66b-44b0-a240-e138e086fcbc
          description: The expense account for the depreciation of fixed assets of this type
        accumulatedDepreciationAccountId:
          type: string
          format: uuid
          example: ca4c6b39-4f4f-43e8-98da-5e1f350a6694
          description: The account for accumulated depreciation of fixed assets of this type
        bookDepreciationSetting:
          $ref: "#/components/schemas/BookDepreciationSetting"
        locks:
          type: integer
          example: 33
          description: All asset types that have accumulated depreciation for any assets that use them are deemed ‘locked’ and cannot be removed.
    BookDepreciationSetting:
      properties:
        depreciationMethod:
          type: string
          enum:
            - NoDepreciation
            - StraightLine
            - DiminishingValue100
            - DiminishingValue150
            - DiminishingValue200
            - FullDepreciation
          example: StraightLine
          description: The method of depreciation applied to this asset. See Depreciation Methods
        averagingMethod:
          type: string
          enum:
            - FullMonth
            - ActualDays
          example: ActualDays
          description: The method of averaging applied to this asset. See Averaging Methods
        depreciationRate:
          type: number
          format: double
          x-is-money: true
          example: 0.05
          description: The rate of depreciation (e.g. 0.05)
        effectiveLifeYears:
          type: integer
          example: 5
          description: Effective life of the asset in years (e.g. 5)
        depreciationCalculationMethod:
          type: string
          enum:
            - Rate
            - Life
            - None
          example: None
          description: See Depreciation Calculation Methods
        depreciableObjectId:
          type: string
          format: uuid
          example: 68f17094-af97-4f1b-b36b-013b45b6ad3c
          description: Unique Xero identifier for the depreciable object
        depreciableObjectType:
          type: string
          example: Asset
          description: The type of asset object
        bookEffectiveDateOfChangeId:
          type: string
          format: uuid
          example: 68f17094-af97-4f1b-b36b-013b45b6ad3c
          description: Unique Xero identifier for the effective date change
    BookDepreciationDetail:
      properties:
        currentCapitalGain:
          type: number
          format: double
          x-is-money: true
          example: 5.25
          description: When an asset is disposed, this will be the sell price minus the purchase price if a profit was made.
        currentGainLoss:
          type: number
          format: double
          x-is-money: true
          example: 10.50
          description: When an asset is disposed, this will be the lowest one of sell price or purchase price, minus the current book value.
        depreciationStartDate:
          type: string
          format: date
          example: 2015-07-01T00:00:00
          description: YYYY-MM-DD
        costLimit:
          type: number
          format: double
          x-is-money: true
          example: 9000.0000
          description: The value of the asset you want to depreciate, if this is less than the cost of the asset.
        residualValue:
          type: number
          format: double
          x-is-money: true
          example: 10000.0000
          description: The value of the asset remaining when you've fully depreciated it.
        priorAccumDepreciationAmount:
          type: number
          format: double
          x-is-money: true
          example: 0.45
          description: All depreciation prior to the current financial year.
        currentAccumDepreciationAmount:
          type: number
          format: double
          x-is-money: true
          example: 5.0000
          description: All depreciation occurring in the current financial year.
        businessUseCapitalGain:
          type: number
      

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xero/refs/heads/main/openapi/xero-assets-openapi.yml